Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - slawik_s

Pages: [1]
1
Структуры бывают разные. Для линейки это:
Указатель на начало таблицы объектов(ТО) +4 байта счетчик объектов в приделах видимости клиентом(СЧ) <- для нахождения в тихом месте ищешь неизвестное значение, загружаешь второго перса - СЧ увеличился, отсеиваешь и тд.
Когда нашел адрес СЧ, в CE переходишь к поиску указателя на адрес (их будет много). После перезагрузки клиента ищешь адрес снова, потом в поиске указателя загружаешь предыдущие результаты и отсеиваешь новый адрес. И так несколько раз. В итоге останутся только устойчивые цепочки БА+смещения ведущие к СЧ.

В Reclass начинаешь заполнение структуры от БА+первое смещение (обычно считают от engine.dll, кое что удобней искать от NWindow.dll). На указатель на начало ТО ставишь pointer. Переходишь туда. А там сразу видно что записи повторяются с шагом в 3 строчки по 4 байта каждая.
1 неизвестно
2 ID объекта
3 указатель на начало структуры объекта.
Индексация объектов идет от 0 до СЧ-1(здесь указатель на структуру перса). Если количество объектов уменьшилось все записи после удаленного объекта сдвигаются на -1 индекс, а в конце таблицы остается мусор в виде повторов последней записи. По умолчанию в начало ТО пишутся объекты надетые на перса.

В ТО объекты разнотипные и струкура у них разная. Вещи перса и дроп не разбирал. Перс, игроки, мобы, npc - одинаковая структура, но полная инфа заполняется только по персу(его и опишу), кое что заполняется по таргету.
Первый переход - непонятно что, но есть какие то указатели. Ставим pointer везде где похоже на указатель, смотрим куда ведет.

Первый же указатель идет в структуру USER(тип, ID, Имя, HP, MP, CP, указатель на AActor)
В структуре AActor указателя обратно в USER нет, есть ID, XYZ координаты камеры от 3-го лица, текущие координаты в клиенте, координаты где стоит или куда бежит (мышкой ткнул) - передаются с сервера, указатель на структуру AActor серверный.
В нем записываются координаты пришедшие с сервера(локальных нет) и если выбрана цель указатель на AActor цели. Выбрал себя свой AActor, выбрал моба - AActor моба из ТО.

Это путь от общего к частному.
Ты ищешь от частного к общему. Он нужен что бы знать в какую область адресов в Reclass визуально искать указатель или цепочку указателей.

А еще в CE формулы смещений можно вытащить из дизассемблера и данных регистров. Но цепочка смещений может уйти в динамический массив. Поэтому нужен Reclass.

В видео разбирается самый простой случай. Без динамических массивов и от БА не больше 5 смещений. При 6 смещениях автоматический поиск может занять пол часа (результат миллионы комбинаций). При полностью ручном устанешь искать концы к БА.
На ручнике удобно отсеять последнее смещение (получить начало структуры+смещение=HP). И на автомате искать не HP, а начало структуры.

Ох, вот это мощный ответ!  :) Спасибо большое, за столь подробное описание, очень круто, завтра буду вчитываться и пытаться разобраться, а то сегодня первый день как более - менее серьезно за СЕ сел :)
Не знаешь, можно ли как то отдавать в клиент команды через память, например? К примеру, мы видим моба, хотим взять его в таргет, отправляем что - нибудь куда - то вместо нажатия кнопки и таргет выбирается, или например прожатие атаки в свернутое окно или скилла :)
Или это все пакетный уровень? Там тоже уже вроде другая степь, плюс разносортные защиты, которые еще и расшифровать надо  :(
Еще раз спасибо, ответом очень доволен!

 Для запуск второго окна нужно оплатить премиум подписку.  Не подскажите как обойти защиту загрузить второго перса бесплатно?

2
спасибо за помощь буду экспериментировать ;)

3
совершенно верно, после манипуляций следует поиск картинки. Если картинка не найдена, как повторить, эти манипуляции до тех пор пока картинка не совпадет?

4
Доброго времени суток, собственно вопрос в названии темы. Игра, не всегда реагирует, на действие кликера. Поэтому, я  решил проверять его работу, с помощью скриншота.

мой пример:

KEYPRESS(#M)
WAIT(2)
DBLCLICK(1233,413)
WAIT(2)
DBLCLICK(1270,510)
WAIT(1)
DBLCLICK(1118,863)

далее, контрольный скриншот, для проверки вышеперечисленных действий.

GETSCREEN
IF_PICTURE_IN (754,889, 764,897, "search.bmp", -1, 100)
END_IF

если скриншот не совпадает, как вернуть выполнение скрипта на исходную позицию?
 

5
спасибочки   

6
Доброго времени суток, собственно вопрос названии темы. Как приостановить выполнение скрипта, на время поиска?

мой пример:

GETSCREEN
IF_PICTURE_IN (754,889, 764,897, "search.bmp", -1, 100)
   KEYPRESS(#3)
END_IF

тут, нужно приостановить дальнейшее выполнение скрипта до тех пор, пока кликерман находит скрин "search.bmp"

IF_PICTURE_IN (816,921, 822,924, "1f.bmp", -1, 100)
   KEYPRESS(#1)
   WAITMS(100)
   KEYPRESS(#1)
   WAITMS(100)
END_IF
WAITMS (1237)
LCLICK(977,1034)
WAITMS(150)
LCLICK(661,1039)

8
Собственно, вопрос в названии темы, какая команда выключает PC по завершению скрипта?

9
нет

А если запустить параллельно два  кликермана. И в указанное время, заставить их кликнуть одновременно в разные места, тоже не получиться?

10
Собственно вопрос в названии темы, возможно ли так сделать?

Cэмулировать одновременный щелчок мышки, в разных местах,. А не так, вначале в одно место щелкнул, затем в другое место и т д.

11
после перезагрузки все запустилось огромное спасибо за помощь  ;)

12
Спасибо за подсказку, к сожалению ничего не изменилось, клавиша 8 работает без задержки.  Кликер жмякает ее по откату. Необходимо, что бы клавиша восемь имела собственную задержку на семь секунд.  А, скрипт продолжал работать, в течении этих семи секунд, не нажимая клавишу восемь.
Брехун
с чего такое умозаключение?

только что проверил отдельно этот скрипт задержку специально увеличил кликер жмет клавишу 8 по откату игнорируя задержку в 25 сек.
GETSCREEN
IF($time < $_ms)
   IF_PICTURE_IN (796,1010, 806,1018, "QPVE.bmp", -1, 100)
      KEYPRESS(#8)
      WAITMS(100)
      $time = $_ms + 25000
   END_IF

13
Спасибо за подсказку, к сожалению ничего не изменилось, клавиша 8 работает без задержки.  Кликер жмякает ее по откату. Необходимо, что бы клавиша восемь имела собственную задержку на семь секунд.  А, скрипт продолжал работать, в течении этих семи секунд, не нажимая клавишу восемь. Дело в том, что на клавише восемь активируется баф, а остальные клавиши, отвечают за бой мобами. Получается так, что чар в игре вместо того, что бы бить моба, по откату бафается:(

14
GETSCREEN
IF_PICTURE_IN (754,889, 764,897, "FT.bmp", -1, 100)
   KEYPRESS(#3)
   WAITMS(100)
END_IF
IF_PICTURE_IN (748,951, 766,960, "FB.bmp", -1, 100)
   KEYPRESS(#TAB)
   WAITMS(100)
END_IF
IF_PICTURE_IN (796,1010, 806,1018, "QPVE.bmp", -1, 100)
   KEYPRESS(#8)
   WAITMS(7000)
END_IF
После нажатия клавиши восемь есть задержка 7 секнуд

 Эта задержка тормозит нажатие двух клавишь (три и тав) Поэтому, хотелось бы сделать так, что бы задержка в 7 секнуд влияла индивидуально на одну клавишу клавишу а не на весь скрипт.


15
Всем доброго времени суток. Столкнулся с проблемой задржки. Очень не удобно что задержка одной клавиши влияет на выполнение всего скрипта. Как реализовать в кликере индивидуальную задержку под каждую клавишу?

Pages: [1]