Список изменений:
- - Добавлен параметр StartTime в функцию uo.WaitingForJournalText(StartTime,MaxDelay,Text,[Equals],[IgnoreCase],[SkillName/ObjectID])
- Добавлены функции uo.GetFoundedText() и uo.GetFoundedTextID()
uo.GetFoundedText() - служит для получения текстовой строки, в которой был найден искомый текст от всех поисковых функций журнала
uo.GetFoundedTextID() - индекс искомого текста
- Добавлена опция запуска инжекта /lowcpu или /lowcpu:<value> для включения снижения нагрузки на процессор. Не желательно ставить больше пяти /lowcpu:5
- Исправлена дистанция поиска в uo.Findtype и uo.FindList
- Поиск с использованием uo.FindList теперь производится по-порядку, как добавляли в лист типы
- Поисковые функции при поиске объектов на земле теперь всегда возвращают самый ближайший к игроку объект (если такой был найден и исключая Nearest=1)
- На вкладку скриптов добавлен чекбокс "Go to last line on load/show script", в включенном состоянии при открытии редактора скриптов каретка устанавливается на ту строку, где она была при закрытии редактора в последний раз
- Исправлено несколько незначительных багов в Script.dll
- Исправлен краш при вводе трех кавычек подряд в редакторе скриптов
- Добавлены операторы continue; break; switch->case->end switch
- Исправлен (скорее всего) краш при удалении/обновлении предметов
- В Script.dll добавлены функции:
Pos(Source,SearchText) - поиск текста SearchText в строке Source, при удачном поиске возвращает позицию в строке, при неудаче 0
GetWord(Source,WordIndex,[Separator]) - получение слова из строки Source под номером WordIndex разделенного пробелом (или Separator'ом, если он указан)
GetWordCount(Source,[Separator]) - получение общего кол-ва слов, содержащихся в строке Source разделенных пробелом (или Separator'ом, если он указан)
- Добавлена функция ReceiveObjectName(Serial,[MaxDelay]) для получения имени объекта. MaxDelay - время в мс за которое должно прийти имя от сервера (старндартно 1000). Актуально использовать взамен CheckLag()
- Теперь опции препарсера досвечиваются синим цветом. Начал подсвечиваться endsub (слитный)
Список изменений:
- - Убрано ограничение на кол-во символов в Original Text в диалоге Replaces
- Исправлено сохранение Replaces. Для корректной замены кастов необходимо в Original Text ставить пробел после текста каста
- Изменено действие Nearest для комманд uo.FindType и uo.FindList. При Nearest равном -1 производится поиск по всему списку предметов, при удачном поиске в finditem и в return_value будет самый ближайший к персонажу предмет (при поиске на земле)
- Исправлено изменение разрешения игрового окна УО. Теперь клиент запускается без ошибок и разрешение устанавливается согласно заданным параметрам
- Исправлен краш на стадии входа в игру (при закрытии клиента на окне выборе сервера или выбора персонажа)
- _msg работает с русским текстом (заглавные и прописные)
- Исправлена работа Clear Memory. Теперь мир чистится правильно и без ошибок
- Основная часть галок с вкладки Main собрана в отдельный список (пока только список)
- Добавлена галка Linked Logs. При включенной галке на стадии входа в игру создает файл в папке %injection%\logs\log_%account%_%data%(%time).txt и пишет лог туда отдельно для каждой сессии. Включение/выключение этой галки уже в игре ни к чему не приведет, актуальна только до начала коннекта к серверу.
- Исправлена работа Notoriety в коммандах uo.FindType и uo.FindList. Если кто-то обнаружил проблеммы с ней - забудьте.
- Добавлен параметр Nearest в комманду uo.FindMan([Notoriety],[Distance],[Nearest]). Работает аналогично uo.FindType и uo.FindList. Так же исправлена Notoriety
- На вкладке Skills кнопка Reset переименована в Refresh, удалена кнопка Req
- Добавлена функция uo.InJournalBetweenTimes(Text,StartTime,[EndTime],[MaxLines/IgnoreCase])
осуществляет поиск текста Text (фраза/набор фраз разделенных | ) в журнале за время от StartTime до EndTime
Если EndTime не указано - берется текущее время
MaxLines - количество строк в журнале, в котором производить поиск. Если указано -1 то поиск ведется без учета регистра
Изменено время сообщения в журнале. Раньше оно сохранялось как Now()/100, теперь же просто Now(). Что повлекло изменения в uo.JournalTimer() если кто-то пользовался ею - обратите внимание.
В Script.dll добавлена функция Now() - возвращает текущее время в мс. Вызывается без UO.*
- Добавлены комманды:
- uo.AddIgnoreList(ListName,Graphic,[Color]) - добавить тип,[цвет] в список игнорируемых типов с названием ListName
- uo.DeleteIgnoreList(ListName,Graphic,[Color]) - удалить тип,[цвет] их списка игнорируемых типов с названием ListName
- uo.ClearIgnoreList(ListName) - очистить игнорируемый список типов с названием ListName
- uo.SelectIgnoreList(ListName) - выбрать игнор-лист для использования в коммандах uo.FindType и uo.FindList
Если список не выбран - комманды поиска не будут игнорировать указанные в нем типы
Для выключения списка игнора достаточно вызвать uo.SelectIgnoreList(-1) - тогда поиск будет производиться без учета игнор-листа
uo.SelectIgnoreList можно вызвать 1 раз (в том же автостарте) и он будет учитываться поисковиками пока не выбрать другой список или не отключить список
- Добавлена локализация Лаунчера и Инжекта. Файл с русским текстом прилагается
Список изменений:
- - Исправлена работа стрелок вверх/вниз на закладке Display
- Исправлено добавление сообщений из FilterSpeech в журнал инжекта
- Изменена работа uo.InJournal(Pattern,[MaxLines/IgnoreCase]). Теперь если второй параметр указан -1 ведется поиск без учета регистра
- Добавлена возможность поиска по дистанции в uo.FindMan([Notoriety],[Distance])
- Добавлена комманда uo.ColorPrint(color,text) - печатает в системный чат сообщение указанного цвета
- Добавлена комманда uo.ChangeJournalLength(NewLength) - изменяет максимальное кол-во строк в журнале. При вызове этой комманды содержимое журнала удаляется
- Добавлена комманда uo.WaitingForJournalText(MaxDelay,Text,[Equals],[IgnoreCase],[SkillName/ObjectID])
Работает по принципу uo.WaitingForMenu()
MaxDelay - время в мс за которое должно появиться сообщение
Text - текст, или наборы текста, разделенные символом "|"
Equals - 0 - поиск фрагмента в пришедшем сообщении, 1 - точное соответствие строк (стандартно 0)
IgnoreCase - 0 поиск с учетом регистра, 1 - поиск без учета регистра (стандартно 0)
SkillName/ObjectID - название скилла или ИД объекта для использования (если требуется)
- Добавлены наборы типов и цветов для поиска:
- uo.AddFindList(ListName,Graphic,[Color]) - добавляет Graphic,Color в набор с названием ListName
- uo.DeleteFindList(ListName,Graphic,[Color]) - удаляет Graphic,Color из набора с названием ListName
- uo.ClearFindList(ListName) - полностью очищает набор с названием ListName
- uo.FindList(ListName,[Container],[Distance],[Notoriety],[Nearest]) - осуществляет поиск по набору. Возвращает серийник найденного объекта. Так же он доступен в finditem и кол-во найденного в uo.findcount()
ListName - название набора
Container - где ищем (стандартно земля)
Distance - дистанция поиска (стандартно 15)
Notoriety - набор "злобности" для поиска. Может принимать как отдельные значения, так и набор значений, разделенных символом "|" (стандартно -1 поиск всех злобностей)
Nearest - 1 - остановит поиск на первом найденном объекте, 0 - произведет поиск по всему списку предметов в памяти инжекта (стандартно 0)
- Добавлена закладка Replaces и все её действия (возможна переработка под более расширенные возможности фильтра)
- Добавлен константный хоткей Alt+Ctrl+Shift+F5 - отображает/скрывает окно инжекта. Работает только при активном окне УО, к которому привязан инжект (глобальный хоткей не стал делать, т.к. начали бы отображаться/скрываться все инжекты)
- Добавлена опция запуска для инжекта /hideinj - не отображает окно инжекта при старте (можно восстановить хоткеем)
- В лаунчер добавлена возможность запуска клиента с параметрами, пока что только /hideinj и /abysst для Абиссовского клиента (Абисст блокирует доступ к инжекту, в заголовке получается каша и много чего еще не приятного, что я еще даже не пытался фиксить)
- Изменена работа скриптовой функции uo.FindType(Graphic,[Color],[Container],[Distance],[Notoriety],[Nearest]) (то что вызывается из хоткеев или _findtype осталось без изменений)
Notoriety и Nearest - аналогично работе в uo.FindList()
Возвращает серийник finditem
Список изменений:
- - Исправлена работа Corpses Autoopen (вернул в состояние версии 1401.25)
- Исправлена обработка гампов (для сервера shard.uoex.net)
- Удалил комманды uo.PrivateMineTile(), uo.PrivatePrepare()
- Переписана комманда uo.PrivateGetTile(X,Y,GroundOrStatic,Tile1,Tile2)
Теперь 3 параметр указывает на тип тайла 0 - земля, 1 - статика.
При удачном поиске возвращает строку с найденными тайлами, попадающими в диапазон от Tile1 до Tile2, иначе - возвращает пустую строку.
- Добавил комманды uo.IsMineTile(X,Y), uo.IsTreeTile(X,Y), uo.IsWaterTile(X,Y)
Осуществляют поиск тайлов пещер/скал, деревьев, воды в заданных координатах.
При удачном поиске возвращает строку с найденными тайлами, попадающими в диапазон поиска, иначе - возвращает пустую строку.
- Добавил комманду uo.WaitingForMenu(MaxDelay,[MenuCount],[BlockMenu],[MenuName],[UseObjectID/SkillName to call menu])
MaxDelay - максимальное время ожидания меню в мс
MenuCount - сколько меню должно появиться до нужного
BlockMenu - 0 - отправлять меню клиенту, 1 - блокировать меню и отправлять на сервер пакет с закрытием меню правой кнопкой мыши
MenuName - ожидаемое название меню (с учетом регистра), если указано не пустое имя то функция будет ждать только меню с конкретным названием. При указании пустого имени - будет хавать любые менюшки.
UseObjectID/SkillName - ID объекта для использования или название скилла (для вызова меню)
- Первая более-менее рабочая версия ходилки.
Вызов move X Y [Distance] [Run] [Maxteps] [Hidden] - ходит отправляя запросы на шаг сразу от инжекта (анимации шага не будет, как в Стелсе)
pmove X Y [Distance] [Run] [Maxteps] [Hidden] - ходит имитируя нажатие в клиенте (коды кнопок 33-40)
Пока что только тестовая версия, не учитывает Z координату (почти), не ходит по ступенькам, не входит/выходит в дома с порогом, учитывает игровые объекты (заборы, сундуки, дома и т.п.) только если инжект их уже увидел (пока что так, дальше буду ковырять чтоб учитывались при самом передвижении), имеются проблеммы со входом в некоторые пещеры (непроходимые места при входе в пещеру, визуально ничего нет, но пройти там нельзя).
Требуется проверить как оно будет ходить по лесам/внутри пещер/в отдельных домах в городах (в вашем доме скорее всего заглохнет), с учетом игровых объектов.
Может использовать 2 почти одинаковых алгоритма, изменять их можно с помощью:
uo.Set('pfNoMap','1') - отключает создание виртуальной карты и пробирается "наощупь", предварительно прощитывая путь, требует значительно меньше времени на расчет пути, но пока что не стабильна.
uo.Set('pfNoMap','0') - включает создание виртуальной карты (включено при запуске инжекта, пока что не сохраняется), требуется больше времени на расчет пути, но работает стабильно, исключая то, что описал выше.
- Исправлена комманда _msg с русским текстом
Код
sub TestWaitingForMenu()
if uo.WaitingForMenu(5000,1,1,'Tracking','Tracking') then
uo.print('Menu received')
else
uo.print('WaitingForMenu Failed')
endif
end sub
1 - одно меню пропускаем
1 - блокируем меню (не пропускаем клиенту)
Tracking - имя меню, которое ждем
Tracking - скилл, который используем для вызова меню
Версия 1402.16
Список изменений:
- Исправлена работа кнопки изменения комманды хоткеев
- Исправлен краш с кнопкой Quit мэйнскрина клиента (Если будет хуже и всплывут какие-то баги - верну как было)
- Регистр в коммандах по работе с объектами игнорируется
- Всплывающее меню в закладке Display отображается и без визуальных стилей
- Исправлена работа комманды uo.target
- На кнопки Num Lock и Num Enter теперь можно ставить хоткеи
- Исправлен обход защиты Разоро-подобных шардов
- Исправлена работа галки Visual Styles в Launcher
- Добавлено несколько клиентов для FPS Patch
- Добавлена возможность изменять высоту шрифта в дисплее Font H2 отвечает за координаты, имя перса, название шарда и разделители, остальное - относится к Font H1
- Добавлена возможность свернуть инжект в трэй
- Добавлен инжектовский статусбар. Открывается в отдельном окне, всегда OnTop, можно изменять его размер (до отпределенных размеров), свободно перетаскивается по экрану, имеент свой конфиг (если нажать правой кнопкой мышки по нему - откроется всплывающее меню) в котором можно указать цвета полосок и режимы отображения окна
- Добавлена возможность шифрования аккаунтов и паролей в лаунчере, а так же расшифровка всего конфига в отдельный файл. Что бы зашифровать данные - необходимо нажать Save для каждого конфига