Page 7 of 30

Re: Injection 2014 !

Posted: 2014-02-23 13:20:16
by Juicy Fruit
1402.23 beta

Список изменений:
    - Исправлена работа 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 с русским текстом

Code: Select all

sub TestWaitingForMenu()
   if uo.WaitingForMenu(5000,1,1,'Tracking','Tracking') then
      uo.print('Menu received')
   else
      uo.print('WaitingForMenu Failed')
   endif
end sub
5000 - 5 секунд ожидания меню
1 - одно меню пропускаем
1 - блокируем меню (не пропускаем клиенту)
Tracking - имя меню, которое ждем
Tracking - скилл, который используем для вызова меню

Диапазоны ИД тайлов пещер:

Code: Select all

{616,  618},
{1339, 1363},
{2272, 2282},
{4963, 4973},
{6001, 6012},
{13121,13369},
{13446,13455},
{13484,13492},
{13625,13628}

ИД тайлов деревьев:

Code: Select all

3274,3275,3277,3280,3283,
3286,3288,3290,3293,3296,
3299,3302,3320,3323,3326,
3329,3393,3394,3395,3396,
3415,3416,3417,3418,3419,
3438,3439,3440,3441,3442,
3460,3461,3462,3476,3478,
3480,3482,3484,3492,3496,
3276,3289,3291,3292,3294,
3295

Диапазон тайлов воды:

Code: Select all

6038,6066

Если будут предложения по добавлению тайлов - пишите, доабвлю.
Не учтены (или частично учтены) тайлы скал.
Воду и пещеры брал из скрипта Миражика.

Re: Injection 2014 !

Posted: 2014-02-23 13:48:05
by Incorrect User
Спасибо, качаем. Что такое [Maxteps] и [Hidden]

Re: Injection 2014 !

Posted: 2014-02-23 13:53:34
by Incorrect User
Не заходит в УО. Виснет либо на Entering britaniaлибо даже до выбора чара не доходит.

Re: Injection 2014 !

Posted: 2014-02-23 13:57:37
by Juicy Fruit
Incorrect User wrote:Спасибо, качаем. Что такое [Maxteps] и [Hidden]
Юзаем хайд? Сколько максимум делать шагов, работает пока что не так, как планируется)

Incorrect User wrote:Не заходит в УО. Виснет либо на Entering britaniaлибо даже до выбора чара не доходит.
оО В протокол не лез. Проверь шифрование, версию клиента, заходит ли с чистого клиента?

Re: Injection 2014 !

Posted: 2014-02-23 14:00:21
by Incorrect User
Настройки ок. Без инжекта и на предыдущей версии заходит нормально. Юзаем хайд? - не понял.

Re: Injection 2014 !

Posted: 2014-02-23 14:06:47
by Juicy Fruit
Ну при ходьбе юзает хайд, перед каждым шагом, если не в хайде.
Логинсервер в личку с тестовым акком.

Re: Injection 2014 !

Posted: 2014-02-23 14:12:53
by Incorrect User
Аа, сама ходилка юзает, я думал типа можно выбирать идти или не идти если ты в хайде :mrgreen: Логин в ЛС.

Re: Injection 2014 !

Posted: 2014-02-23 16:25:23
by Incorrect User
uo.move(2916, 682, 0, 0, 0, 0) правильно? Кстати в новой версии нет системных сообщений, типа Contains, Now menu waiting... и тд

Re: Injection 2014 !

Posted: 2014-02-23 16:31:25
by Juicy Fruit
MaxSteps не должно быть 0, 50 или 100 ставь.
А вообще можно uo.move(2916, 682, 0) остальное стандартно будет, без хайда, идти (не бежать), 100 шагов максимум.

Re: Injection 2014 !

Posted: 2014-02-23 16:49:09
by Incorrect User
Ходит. Немного плавности не хватает но уже хорошо. Скиньте функцию InString у кого есть.

Re: Injection 2014 !

Posted: 2014-02-23 17:35:26
by Incorrect User
Так же бывает иногда старый глюк, отредактируешь скрипт, запускаешь его а он не работает, видно что запущен но ничего не делает, помогает только перезаход.

Re: Injection 2014 !

Posted: 2014-02-23 18:10:58
by Juicy Fruit
Incorrect User wrote:Так же бывает иногда старый глюк, отредактируешь скрипт, запускаешь его а он не работает, видно что запущен но ничего не делает, помогает только перезаход.
Включи галку Debug на закладке скриптов инжекта, найди в редакторе свой скрипт и посмотри, есть ли там изменения, которые ты вносил или нет?
Если нет - нажми на иконку "Обновить" на закладке скриптов, рядом с запускаемой функцией находится.

Исправлена комманда _msg с русским текстом.
Обновил ссылки.

Re: Injection 2014 !

Posted: 2014-02-23 20:58:18
by Incorrect User
- Исправлена комманда _msg с русским текстом

Все равно с русским падает.

Re: Injection 2014 !

Posted: 2014-02-23 21:18:34
by Juicy Fruit
Incorrect User wrote:
- Исправлена комманда _msg с русским текстом

Все равно с русским падает.

оО перекачивал после увиденного сообщения?
Или использовал ту, что скачал до этого?

Re: Injection 2014 !

Posted: 2014-02-23 21:38:39
by Incorrect User
Скачивал, даже для полной уверенности скачал еще раз эту http://rghost.ru/52623164 - падает. И с этим uo.WaitingForMenu проблемы. Получается сама менюшка выбора кого трекать называется так же Tracking и если поставить ожидание меню сразу после юза трекинга то она сработает на это окошко выбора, то есть ты можешь трекнуть любой тип, например животных, и даже если никого нет вокруг напишет что меню нашло, потому что поймало меню выбора кого трекать. А если поставить задержку между ними wait(100)

Code: Select all

sub Test()
   uo.waitmenu("Tracking", "Animals")
   uo.useskill("Tracking")
   wait(100)
   if uo.WaitingForMenu(1000) then
      uo.print('Menu received')
   else
      uo.print('WaitingForMenu Failed')
   endif
end sub


Тогда даже если натрекал кого то пишет что меню не нашло.

Re: Injection 2014 !

Posted: 2014-02-23 21:45:32
by Juicy Fruit
Да, т.к. меню уже приходило за эти 100 мс и уже обработано инжектом.
uo.WaitingForMenu() работает только с момента вызова и до MaxDelay.
Если за время MaxDelay не приходило меню от сервера - возвращает 0.

Code: Select all

sub Test()
   uo.waitmenu("Tracking", "Animals")
   if uo.WaitingForMenu(1000,0,'','Tracking') then
      uo.print('Menu received')
   else
      uo.print('WaitingForMenu Failed')
   endif
end sub
Почему бы так не юзать? Зачем 100 задержка?
Так он будет ловить меню с любым названием, пропускать его клиенту и для вызова меню заюзает скилл Трэкинг.

Re: Injection 2014 !

Posted: 2014-02-23 21:52:21
by Incorrect User
Ты не понял, вот скрипт

Code: Select all

sub Test()
   uo.waitmenu("Tracking", "Animals")
   if uo.WaitingForMenu(1000,0,'Tracking','Tracking') then
      uo.print('Menu received')
   else
      uo.print('WaitingForMenu Failed')
   endif
end sub

Пишет что меню поймал, хотя никого не натрекал. Почему? Потому что само окно с выбором персонажа называется Tracking и уже иенюшка которая может появится когда кого-то натрекал так же называется Tracking. И получается скрипт срабатывает на окошко выбора персонажей. Вот поэтому я и пытался делать по другому,трекнуть, чтобы прошла эта менюшка, подождать и потом включить ожидание меню если кого натрекали.

Re: Injection 2014 !

Posted: 2014-02-23 22:01:46
by Juicy Fruit
Обновил ссылки

Code: Select all

sub Test()
   uo.waitmenu("Tracking", "Animals")
   if uo.WaitingForMenu(1000,1,0,'Tracking','Tracking') then
      uo.print('Menu received')
   else
      uo.print('WaitingForMenu Failed')
   endif
end sub
Теперь оно будет игнорить первое меню (второй параметр 1) и смотреть только на второе.
Описание параметра в посте с обновлением.

Re: Injection 2014 !

Posted: 2014-02-23 22:05:06
by Incorrect User
Теперь хорошо, спасибо. Что с русским?

Re: Injection 2014 !

Posted: 2014-02-23 22:09:06
by Juicy Fruit
Incorrect User wrote:Теперь хорошо, спасибо. Что с русским?
Пока что провал видимо, скинь в личку последние строк 20 лога после _msg с русским текстом, посмотрю что там напишется.
У меня не выкидывает больше...