UORPG.net Free UO Shard
http://forum.uorpg.net/

Injection 2015, оригинальное описание релизов
http://forum.uorpg.net/viewtopic.php?f=28&t=14420
Page 1 of 1

Author:  Wap [ 08 Sep 2016, 22:43 ]
Post subject:  Injection 2015, оригинальное описание релизов

* Данное сообщение является копией сообщения разработчика Juicy Fruit. Оригинал здесь:
Это официальное описание релиза, для того, чтобы перейти к FAQ по установке и часто задаваемым вопросам, перейдите по ссылке.

Версия 1508.09 <--- Injection качать тут

Список изменений:
    - Исправлено зависание скриптов в окошке скриптов.
    - Исправлена ошибка с появлением предупреждения "Creation thread error".
    - Добавлена проверка на нахождение функции в теле скрипта UO.SubExists(SubName).
    - Реализована возможность вызова функции через UO.CallSub(SubName, Params...)
    Может принимать различное количество параметров (минимум 1 - название функции), сканирует тело скрипта на предмет нахождения указанной функции в нем с указанным количеством параметров и выполняет ее в стандартном режиме.
    - Исправлена работа функции UO.FunRunning(SubName), теперь работает правильно и без сбоев.
    - Некоторые корректировки в Script.dll.
    - Исправления в поисковых функциях.
    - Исправлена работа UO.mfgi.
    - Реализован доступ к списку найденного с помощью поисковых фукнций (FindItem/FindList) через UO.FindItem(index). Индексы от 0 до UO.FindCount() - 1.
    - Добавлен спецификатор вызова __runonce#ScriptName. При вызове скрипта с таким спецификатором через хоткеи или через uo.exec('exec __runonce#MyScript') - скриптовый движок проверит, запущена ли функция MyScript в данный момент, если запущена - ничего не произойдет, иначе - запустит скрипт в штатном режиме.
    - Улучшена стабильность инжекта.



Версия 1503.08

Список изменений:
    - Исправлено отображение дистанции до цели при стягивании статуса.
    - Исправлено добавление системных сообщений в журнал (с серийником 0).
    - Добавлены опции для команды _set:
    - corpsetimer - задает таймер (в мс) для очереди трупов для открытия;
    - autoparty - автовыбор действий при приглашении в группу: 1 - принять; 2 - отклонить; другое значение - дать выбор пользователю.
    - Теперь автооткрытие трупов ожидает, когда персонаж приблизится к трупу, стандартное время ожидания 30 сек с момента появления трупа на экране, после чего, труп удаляется из очереди.
    - Добавлена возможность замены текста в Replace по фрагменту текста. Для этого необходимо в начало поисковой строки дописать /*
    - Добавлена функция ClientMarkChar(ActionIndex, Serial), при ActionIndex:
    1 - устанавливает LastTarget клиента на Serial (отображает полоску ХП под чаром);
    2 - устанавливает LastAttack клиента на Serial (подсвечивает персонажа и отображает полоску ХП);
    3 - совместно первые 2 вариации.
    - Вход на шард Xhearon. В лаунчере прописать /xhearon и заиметь UserKeys:
    [Keys]
    Key1=0x2E43ED9D
    Key2=0x2E43ED9D
    Key3=0xA234227F
    SeedKey=0x00001357
    Type=5
    - Вход на шард Naderia. В лаунчере прописать /naderia, шифрование 2.0.3.
    - Вход на шард Nebula. В лаунчере прописать /nebula и заиметь UserKeys:
    [Keys]
    Key1=0x2E43ED9D
    Key2=0x2E43ED9D
    Key3=0xA234227F
    SeedKey=0x00001357
    Type=5
    - Вход на шард Empire UO. В лаунчере прописать /empireuo, шифрование 2.0.3.
    - Исправлены недочеты в работе с магазином.
    - Косметические баги в окнах инжекта.
    - Работа хоткеев, исправлены ошибки по сохранению/загрузке/удалению. Необходимо перезаписать хоткеи с использованием Insert/Home/Delete/End/PgUp/Down/Стрелки.
    - Исправлено отображение элементов в окне Object Types.
    - Исправлена работа massmove, emptycontainer. Выполнение этих функций больше не вешает клиент. Во время выполнения НЕЛЬЗЯ вручную перетаскивать какие-либо предметы до завершения работы функции. Все глюки/краши/потери потерь при несоблюдении этого условия - вина юзера.
    - Добавлена возможность изменять цвет абсолютно всех сообщений от сервера одним цветом (Соответствующая галочка и текстовое окно расположено на главной вкладке инжекта).
    - Исправлена работа функций UseType/UseFromGround.
    - Добавлена возможность поиска/использования гапов по одному из параметров Serial/ID, второй параметр указать как 0.
    - Добавлена возможность скармливать функции Uo.GetDistance различное количество параметров:
    UO.GetDistance(Serial) - стандартный вызов;
    UO.GetDistance(X, Y) - Расстояние от персонажа до заданных координат;
    UO.GetDistance(X1, Y1, X2, Y2) - Расстояние между заданными координатами.
    - Исправлено сохранение значений для LastStatusX, LastStatusY, LastTargetX, LastTargetY.
    - Добавлены функции для работы с вышеперечисленными переменными:
    UO.LastStatusX()
    UO.LastStatusY()
    UO.LastTargetX()
    UO.LastTargetY()
    - Добавлены глобальные переменные работы с журналом:
    UO.GetFoundedTextIndex() - получить индекс строки найденного текста;
    UO.GetFoundedTextSerial() - получить серийник, связанный со строкой текста в журнале;
    UO.GetFoundedTextTimer() - получить время добавления текста в журнал;
    UO.GetFoundedTextColor() - получить цвет.
    - Исправлено игнорирование банка при использовании UseType-подобных комманд.
    - Исправлена работа FPS патча для всех клиентов.
    - Размер игрового окна теперь не изменяется при применении настроек в опциях клиента и сообщение с пожеланиями разработчиков на этот счет не показывается.
    - Добавлена функция UO.Exists(Serial) для проверки наличия в памяти инжекта объекта.
    - Добавлена функция UO.UpdateObject(Serial) для синхронизации координат предмета в памяти инжекта с предметом в памяти клиента (актуально для своего персонажа).
    - Исправлена работа указателя * в элементах заголовка.
    - Изменения/исправления/добавления в Injection.chm.
    - Некоторые корректировки в Script.dll.



Версия 1501.17

Список изменений:
    - Переписаны системы хранения и обработки данных.
    - Переписана и исправлена отрисовка заголовка окна УО.
    - Появилась возможность самому задавать фон заголовка.
    - Исправлена работа Display On/Off.
    - Доабвлена возможность изменять цвет ника персонажа в заголовке. Текущий конфиг необходимо подкорректировать.
    - Добавлена возможность переключения стиля статусбаров в заголовке, командой _set sbgreen 0/1
    - Исправлены проблеммы, которые возникали при чтении/записи конфига.
    - Переписана работа с гампами:
    Для LastGump появились пара новых идентификаторов:
    Code:
    InjID - узнать ИДшник гампа в памяти инжекта (грубо говоря его адрес, можно скармливать его инжекту что бы не было конфликтов с другими гампами, у которых одинаковые Serial и GumpID
    InClient - узнать, отображен ли гамп в клиенте, или был обработан инжектом и ответ отправлен на сервер минуя клиент, либо клиент уже закрыл этот гамп


    Функции по работе с гампами:
    Code:
    UO.GetGumpCount() - получить количество гампов в памяти инжекта
    UO.SelectGump(InjID) - выбрать гамп, с которым будем работать
    UO.GumpExists(InjID) / UO.GumpExists(Serial, GumpID) - проверить, есть ли указанный гамп в памяти
    UO.GetGump(ident [n]) - работа с гампом, аналогично работе с LastGump, но, если первым параметром является InjID то:
       UO.GetGump(ident, GumpIndex) / UO.GetGump(ident, Serial, GumpID) - будут возвращать InjID гампа в строке, либо пустую строку. GumpIndex - порядковый номер гампа от 0 до GumpCount() - 1
    UO.SetGump(ident, id, state) - работа с гампом, который выбрали в UO.SelectGump(), если гамп исчез - ничего не произойдет.
       ident может быть: checkbox, radio, state для этого случая число 0 или 1. Переключает значения чекбоксов и радио-кнопок. Для радио кнопок срабатывает только на 1.
          textentry - для этого случая, state - строка, на которую нужно заменить текст
    И уже давно существующая функция UO.SendGumpSelect(index, ...) - index это номер кнопки, которую нужно нажать.
    Параметры:
    UO.SendGumpSelect(index) - нажать в последнем гампе
    UO.SendGumpSelect(index, gump_index) - нажать в гампе с порядковым номером
    UO.SendGumpSelect(index, serial, gump_id) - нажать в гампе по серийнику и ид
    UO.SendGumpSelect(index, serial = 0, gump_id = 0, InjID) - нажать в гампе по InjID гампа, серийник и ИД гампа могут быть любыми значениями и не используются в этом варианте.


    - Расширена возможность работы с шоплистами. А точнее - с текущими списками покупки/продажи вендоров:
    Добавлены классы: VendorList и VendorReply

    Функции VendorList:
    Code:
    var list = VendorList() - создать лист. Создавать самому его не нужно, для этого есть функция (после описания классов)
    list.Serial() - получить серийник вендора
    list.Count() - получить количество предметов в листе
    list.IsBuyList() - бай/селл лист
    list.InClient() - гамп ушел клиенту или был обработан инжектом, минуя клиент. (пока что работает не как нужно)
    list.ItemSerial(index) - серийник предмета по порядковому номеру (от 0 до list.Count() - 1)
    list.ItemGraphic(index) - тип предмета
    list.ItemColor(index) - цвет предмета
    list.ItemPrice(index) - цена предмета
    list.ItemCount(index) - доступное количество
    list.ItemName(index) - имя предмета


    Функции VendorReply:
    Code:
    var reply = VendorReply(VendorSerial, MaxCount) - создать тело ответа для шоппинга. Принимает параметры: серийник вендора, с которым оперируем и максимальное колчество предметов в ответе (list.Count())
    reply.Count(count) - указать реальное количество предметов в ответе. Задается после формирования списка.
    reply.ItemSerial(index, serial) - задать серийник предмета в указанном порядковом номере (от 0 до MaxCount - 1)
    reply.ItemCount(index, count) - задать количество предметов


    Функции инжекта по работе с магазином:
    Code:
    var list = UO.GetShopList() - получить класс VendorList()
    UO.SendShopReply(VendorReply) - послать заранее сформированный запрос о купле/продаже на сервер


    Пример кода для скупки:
    Code:
    sub testshop()
       var list = uo.GetShopList() #получим доступный лист из инжекта
     
       #тут можно будет сделать всякие проверки list.IsBuyList() и list.InClient() для коррекции
     
       var i, item = '', count = list.Count()
       if count then
          uo.print(str(count)) 
          uo.textclear()
          count = count - 1
          for i = 0 to count #вывод вендор листа в текстовое окошко
             uo.print(str(i)) 
             item = 'serial=' + list.ItemSerial(i) + ' graphic=' + list.ItemGraphic(i)
             item = item + ' color=' + list.ItemColor(i) + ' price=' + str(list.ItemPrice(i))
             item = item + ' count=' + str(list.ItemCount(i)) + ' name=' + list.ItemName(i)
             uo.textprint(item)
          next
          uo.textopen()
          count = count + 1
         
          var reply = VendorReply(list.Serial(), count) #создадим ответ для указанного вендора
          reply.ItemSerial(0, list.ItemSerial(1)) #укажем серийник предмета в позиции 0
          uo.print('send count of items = ' + str(reply.ItemCount(0, 2))) #укажем количество предметов в 0 позиции списка равное 2 (двум)
          reply.Count(1) #Реальное количество предетов в ответе, если известно заранее - можно указатьв  самом начале
          uo.SendShopReply(reply) #отправка запроса на сервер
       endif
    end sub


    Пример скрипта для докупки регов до 50 штук:
    Code:
    sub testshop()
       uo.msg('bye')
       wait(500)
       uo.msg('buy')
       wait(500)
       
       var BuyItemsCount = 8 #Сколько предметов проверяем для докупки
       var BuyDelay = 300 #Задержка для покупки одного итема
       
       dim BuyType[20], BuyColor[20], BuyCount[20]
       
       #Описание предмета 1:
       BuyType[0] = 'bm' #Тип предмета
       BuyColor[0] = 0 #Цвет предмета
       BuyCount[0] = 50 #До какого количества докупаем
       
       #Описание предмета 2:
       BuyType[1] = 'bp'
       BuyColor[1] = 0
       BuyCount[1] = 50
       
       #Описание предмета 3:
       BuyType[2] = 'ga'
       BuyColor[2] = 0
       BuyCount[2] = 50
       
       BuyType[3] = 'gs'
       BuyColor[3] = 0
       BuyCount[3] = 50
       
       BuyType[4] = 'mr'
       BuyColor[4] = 0
       BuyCount[4] = 50
       
       BuyType[5] = 'ns'
       BuyColor[5] = 0
       BuyCount[5] = 50
       
       BuyType[6] = 'sa'
       BuyColor[6] = 0
       BuyCount[6] = 50
       
       BuyType[7] = 'ss'
       BuyColor[7] = 0
       BuyCount[7] = 50
       
       if BuyItemsCount < 1 then
          uo.print('Не указано количество предметов для докупки.')
          return
       endif
       
       var list = uo.GetShopList() #получим доступный лист из инжекта
       
       if not list.IsBuyList() then
          uo.print('Это не байлист.')
          return
       endif
       
       if not list.InClient() then
          uo.print('Этот байлист уже обработан инжектом/клиентом.')
          return
       endif
       
       var i = 0, j = 0, ReplyCount = 0, want = 0, count = list.Count()
       
       if count then
          count = count - 1
         
          var reply = VendorReply(list.Serial(), BuyItemsCount) #создадим ответ для указанного вендора
         
          BuyItemsCount = BuyItemsCount - 1
         
          for i = 0 to count
             for j = 0 to BuyItemsCount
               
                want = BuyCount[j] - uo.Count(BuyType[j], BuyColor[j])
               
                if want > 0 && list.ItemGraphic(i) == uo.GetGraphic(BuyType[j]) then
                   if BuyColor[j] == -1 || list.ItemColor(i) == uo.GetGraphic(BuyColor[j]) then
                     
                      if want > list.ItemCount(i) then
                         want = list.ItemCount(i)
                      endif

                      if want > 0 then #На всякий случай
                         reply.ItemSerial(ReplyCount, list.ItemSerial(i))
                         reply.ItemCount(ReplyCount, want)
                     
                         ReplyCount = ReplyCount + 1
                      endif
                   endif
                endif
             next
          next
         
          if ReplyCount then
             uo.print('ReplyCount = ' + str(ReplyCount) + ' waiting ' + str(BuyDelay * ReplyCount) + ' ms')
             wait(BuyDelay * ReplyCount)
             
             reply.Count(ReplyCount) #Реальное количество предетов в ответе, если известно заранее - можно указатьв  самом начале
             uo.SendShopReply(reply) #отправка запроса на сервер
          else
             uo.print('На вендоре нет доступных предметов для докупки')
          endif
       else
          uo.print('Это пустой байлист')
       endif
    end sub


    - Исправлен учет трейдеров (UO.TradeCount() и прочие).
    - Добавлена возможность задания цветов полоскам во внешнем статусбаре для <33%, 34-66% и >67% значения характеристики.
    - Созданы адекватные интерфейсы для функций ожидания и событий.
    - Equipment (Arm/Dress/Disarm и прочие) переписан полностью и работает адекватно.
    - В лаунчере добавлена возможность сделать мульти-клиент, пока еще нормально не проверил.
    - Возможность самому создавать настройки расположения и названия элементов в окнах инжекта с помощью Injection Forms Designer (в архиве, должен находиться в папке с инжектом, пока что не применим к окну от Script.dll).
    - Все доступные на данный момент функции с возможными принимаемыми параметрами выведены в Injection.chm, для большинства функций описание пока что отсутствует, только параметры.

Данное сообщение является копией сообщения разработчика Juicy Fruit. Оригинал: http://forum.yoko.com.ua/viewtopic.php?f=1&t=17527

Author:  BanneD [ 27 Apr 2017, 15:15 ]
Post subject:  Re: Injection 2015, оригинальное описание релизов

Добрый день.Уважаемые коллеги и разраб,подскажите,что может быть?Клиент стартует,входит в игру,но как только пытаешься открыть бэгпэк или любой другой объект вроде сумки или сундучка-клиент зависает.
Винда десятка. Но не думаю что в этом косяк
Спасибо

Author:  nmy [ 28 Apr 2017, 20:24 ]
Post subject:  Re: Injection 2015, оригинальное описание релизов

Image

Author:  MakarR [ 21 Jun 2017, 13:41 ]
Post subject:  Re: Injection 2015, оригинальное описание релизов

А подробнее?

Author:  Totalwar [ 03 Apr 2019, 13:58 ]
Post subject:  Re: Injection 2015, оригинальное описание релизов

nmy wrote:
Image



:-bd
помогло!

Page 1 of 1 All times are UTC + 2 hours [ DST ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/