Yoko

All sides of Injection
It is currently 2017-09-25 18:51:47

All times are UTC+02:00




Post new topic  Reply to topic  [ 246 posts ]  Go to page 1 2 3 4 513 Next
Author Message
 Post subject: Injection 2015
PostPosted: 2015-01-18 00:24:19 
Offline

Joined: 2011-06-11 19:54:23
Posts: 823
Ждём новых релизов и обсуждаем новые баги тут


Версия 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, для большинства функций описание пока что отсутствует, только параметры.


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-01-31 10:20:25 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
господа, как добавить во вкладке "Displey" отмычки или другой предмет в игре? постоянно разделитель ставится


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-01 13:51:42 
Offline

Joined: 2011-06-11 19:54:23
Posts: 823
Gromiz wrote:
господа, как добавить во вкладке "Displey" отмычки или другой предмет в игре? постоянно разделитель ставится
Проверил.
На вкладке Display жмем Add. В появившемся окне вводим в Identifier: - тип предмета, ниже - цвет предмета, устанавливаем галочку Have Image и нажимаем Done. Предмет появляется в заголовке.


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-01 14:32:22 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
Juicy Fruit wrote:
Gromiz wrote:
господа, как добавить во вкладке "Displey" отмычки или другой предмет в игре? постоянно разделитель ставится
Проверил.
На вкладке Display жмем Add. В появившемся окне вводим в Identifier: - тип предмета, ниже - цвет предмета, устанавливаем галочку Have Image и нажимаем Done. Предмет появляется в заголовке.


сейчас все получилось и без картинки добавляет предмет в строку, и хоть как.
В прошлый раз делал также, но постоянно разделитель ставился.
сегодня отказался работать таргет на ножницы в скрипте, для порезки кожи.
перезапуск клиента с инжектом помог. Затрудняюсь описать действия предшествующие этому, т.к. не сразу обратил внимание.
В общем, присутствуют странности в этой сборке о.О.


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-03 05:13:30 
Offline

Joined: 2007-12-19 14:33:44
Posts: 6
Any help on this? client 5.0.8.3 runuo shard named Cataclystuo. log below is the furthest ive come so far, i can come to select shard page but not to character page..
Autoaccount, login.cataclysmuo.com,2593

i come this far with both noencrypt ignintion and noencrypt sphere

Clear log. Juicy Fruit


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-05 15:11:33 
Offline

Joined: 2011-06-11 19:54:23
Posts: 823
Еще что–либо негативное замечено? Или у остальных все работает без сбоев?

2Gromiz
С таргетом от ножниц – ножницы лежали в паке или в закрытой сумке в паке?
Если были открыты некоторые сумки в паке и после этого был открыт основной пак персонажа – содержимое открытых сумок удалится из памяти до следующего открытия их.


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-05 20:32:36 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
Juicy Fruit wrote:
Еще что–либо негативное замечено? Или у остальных все работает без сбоев?

2Gromiz
С таргетом от ножниц – ножницы лежали в паке или в закрытой сумке в паке?
Если были открыты некоторые сумки в паке и после этого был открыт основной пак персонажа – содержимое открытых сумок удалится из памяти до следующего открытия их.


лежали в открытой подсумке.
И как следствие после этого скрипта, при клике на ножницы, они резали кожу сами, как бы таргет перешел на кожу и ее порезал.
да мож глюк какой был или типо того.


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-05 22:43:56 
Offline

Joined: 2011-06-11 19:54:23
Posts: 823
Gromiz wrote:
Juicy Fruit wrote:
Еще что–либо негативное замечено? Или у остальных все работает без сбоев?

2Gromiz
С таргетом от ножниц – ножницы лежали в паке или в закрытой сумке в паке?
Если были открыты некоторые сумки в паке и после этого был открыт основной пак персонажа – содержимое открытых сумок удалится из памяти до следующего открытия их.


лежали в открытой подсумке.
И как следствие после этого скрипта, при клике на ножницы, они резали кожу сами, как бы таргет перешел на кожу и ее порезал.
да мож глюк какой был или типо того.
А, ну waittargettype() успешно завершился, а вот ножницы не нашлись для юза...


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-05 23:21:21 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2745
Location: Иваново
У меня скрипт при луте режет кожу. Иногда кожа порезана, а прицел все еще висит. :roll:

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-05 23:49:28 
Offline

Joined: 2011-06-11 19:54:23
Posts: 823
Прицел инжекта (waittargettype)? Или в клиенте таргет виден?


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-06 10:21:19 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2745
Location: Иваново
В клиенте таргет виден. При клике на предмет пишет - неверная цель. У меня паузы минимальные на изменение свойст предмета настроены.
Порезали кожу
ждем пока есть кожа.
С другой стороны прицел же должен после действия пропасть как бы. Не особо напрягает но нипонятно. :shock:

PS Немного поправил 1 пост, а то были моменты недопонимания :roll:

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-06 11:04:32 
Offline

Joined: 2011-06-11 19:54:23
Posts: 823
А, ну то что в клиенте он периодически остается – это вполне нормально. Если кожа кончилась, но цикл все еще воспроизвелся из–за маленьких задержек то ловушка не поставится, но ножницы юзанутся, и после дальнейших действий таргет на сервере отменится, а в клиенте останется, при попытке тыка на предме или отмене напишется Unexpected target (что–то подобное).
Не, когда инжект ставит ловушку на таргет – графичаски ничего не изменяется, просто пакет с таргетом клиенту не приходит.


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-07 00:49:49 
Offline

Joined: 2011-06-11 19:54:23
Posts: 823
peke wrote:
Any help on this? client 5.0.8.3 runuo shard named Cataclystuo. log below is the furthest ive come so far, i can come to select shard page but not to character page..
Autoaccount, login.cataclysmuo.com,2593

i come this far with both noencrypt ignintion and noencrypt sphere
With this connection config I can login:
Image

I use clean client.


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-07 01:55:53 
Offline

Joined: 2007-12-19 14:33:44
Posts: 6
i still cant.... what could be wrong :S do you use other version of injection then me? i use 1501.17

nevermind i reinstalled injection without pearl and it worked! Thanks a million


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-07 16:00:41 
Offline

Joined: 2011-06-11 19:54:23
Posts: 823
VeL wrote:
Спасибо за релиз)))
Нашел ошибку:
UO.GetFoundedTextID() - возвращает неправильный результат
Кхм, у меня все правильно выдает. Индексы результата поиска с 0 до <кол-во>-1.


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-14 04:13:17 
Offline

Joined: 2013-08-09 00:13:57
Posts: 44
Ошибка в UO.WaitingForJournalText, после первого запуска начинает пролетать. Ощущение такое, что не с того места в журнале начинается поиск, если чистить журнал, то работает правильно.

Code:
sub Test()  
  UO.WaitingForJournalText(Now(), 5000, '0|1|2')
  switch UO.GetFoundedTextID()
    case 0
      UO.CharPrint('self', 0x0026, '[0]')
    case 1
      UO.CharPrint('self', 0x0026, '[1]')
    case 2
      UO.CharPrint('self', 0x0026, '[2]')
  end switch
end sub


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-14 09:44:53 
Offline

Joined: 2005-02-08 18:39:50
Posts: 444
Location: Moscow
Изменил путь к макросам в файле и пошло поехало:

Image
при запуске из окна макросов,
удалил файлик и по новой все вбил в игре - норм


недавно не мог в чат писать, помог перезаход


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-16 08:14:23 
Offline

Joined: 2011-06-11 19:54:23
Posts: 823
Gromiz wrote:
Изменил путь к макросам в файле и пошло поехало:

Image
при запуске из окна макросов,
удалил файлик и по новой все вбил в игре - норм


недавно не мог в чат писать, помог перезаход
Проверю.

2 snaiperr
Баг уже исправлен, в релизе все будет впорядке.


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-17 14:25:30 
Offline

Joined: 2013-08-09 00:13:57
Posts: 44
Quote:
Имя оно и есть полное, а то что видно сколько предметов – сервер посылает это сообщение клиенту как пакет речи, там может быть написано что угодно, если нужно сконструировать эту строку – добавь к имени нужный суффикс, количество итемов можно узнать используя uo.FindType(–1, –1, container), или ткнув на предмет и взяв последнюю строчку журнала (или последнюю, связанную с этим объектом).

Полное имя так же нужно для получения приписки к вендорам, приписки к игрокам ну и т.д. Как раз и надо то что падает в журнал после клика. Но в некоторых случаях тыкать по объектам не вариант, так как каждый раз приходится ждать прихода сообщения в журнал, тогда как UO.GetAltName() достаточно 1 раз вызвать и имя будет храниться в памяти инжекта и можно обращаться к нему без каких либо задержек. Можно конечно сохранять имена и ID в массивах, но опять же в инжекте нет массивов к которым можно обращаться из разных макросов.

uo.Ignore( '0x12345678') для слабаков?
В поиске игроков я использую игнор "друзей", так же есть игнор "извесных" НПС, так же игнор некоторых НПС по типу и цвету, так же приходится вносить НПС в игнор как говориться по ходу дела. Я в принципе решил эту проблему, но там есть свои неудобства.

Написал как раз под эти все вещи, но было бы неплохо реализовать это со стороны скриптового движка:
Code:
;------------------------------------------------------------------
; Работа со списками
;------------------------------------------------------------------

;--------------------------------------------------------
; Добавить элемент в список
;--------------------------------------------------------

Sub AddList(ListName, ListElem)
  UO.SetGlobal(ListName + Str(CountList(ListName)), ListElem)
  UO.SetGlobal(ListName + 'Count', Str(CountList(ListName) + 1))
end sub

;--------------------------------------------------------
; Удалить элемент из списка
;--------------------------------------------------------

Sub DeleteList(ListName, ListElem)
var Index, Flag = False
  if CountList(ListName) > 0 then
    for Index = 0 to CountList(ListName) - 1
      Flag = Flag || GetList(ListName, Index) == ListElem
      UO.SetGlobal(ListName + Str(Index), GetList(ListName, Index + Flag))
    next
    UO.SetGlobal(ListName + 'Count', Str(CountList(ListName) - Flag))
  end if
  return Flag
end sub

;--------------------------------------------------------
; Поиск элемента в списке
;--------------------------------------------------------

Sub FindList(ListName, Elem)
var Index
  if CountList(ListName) > 0 then
    for Index = 0 to CountList(ListName) - 1
      if GetList(ListName, Index) == Elem then
        return Index
      end if
    next
  end if
  return -1
end sub

;--------------------------------------------------------
; Очистить список
;--------------------------------------------------------

Sub ClearList(ListName)
  UO.SetGlobal(ListName + 'Count', '0')
end sub

;--------------------------------------------------------
; Извлечь элемент из списка
;--------------------------------------------------------

Sub GetList(ListName, ElemIndex)
  return UO.GetGlobal(ListName + Str(ElemIndex))
end sub

;--------------------------------------------------------
; Число элементов в списке
;--------------------------------------------------------

Sub CountList(ListName)
  return Val(UO.GetGlobal(ListName + 'Count'))
end sub

;--------------------------------------------------------
; Снять/установить игнор на список
;--------------------------------------------------------

Sub IgnoreList(ListName, Flag)
var Index
  if CountList(ListName) > 0 then
    for Index = 0 to CountList(ListName) - 1
      UO.Ignore(GetList(ListName, Index), Flag)
    next
  end if
end sub


Top
   
 Post subject: Re: Injection 2015
PostPosted: 2015-02-18 07:26:18 
Offline

Joined: 2013-08-09 00:13:57
Posts: 44
Code:
Ага, похоже что они так и получают это имя. Такой вариант не подходит, проще скриптом это сделать)

Да я уже понял)))

Вот еще бы добавить:
- возможность задавать дальность поиска по высоте 'findvertical' по типу 'finddistance'


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 246 posts ]  Go to page 1 2 3 4 513 Next

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited