Скорость движения чара....

ASM, Perl, IRW, other injections and script modules

Moderators: Murderator+, Murderator

Post Reply
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Скорость движения чара....

Post by omi4 »

Скорость движения чара задается клиентом, весь вопрос как с ним синхронизироваться?
Без этого создание правильной беголки не получается.
Варианты с жесткой задержкой не проходят, приходится или откровенно занижать скорость или 100% попадание на бан за СХ(за час теста три случая детекта, но админам этого будет достаточно.).

Какие будут мысли?
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Может быть вот так? + проверка лага. Бегать быстрее чем лаг - нехорошо. А вообще, клиентские проверки - брехня, если хочешь бегать через отсылку пакетов с определённой паузой, то паузу надо узнавать у админа сервера, но такой способ - тоже фигня, т.к. один пакет может "обогнать" другой, у особо "хороших" провайдеров.

Code: Select all

 ; какой-то код функции хождения
x = uo.getX()
y = uo.getY()
sendMove() ; отправим персонажа делать 1 шаг
uo.exec('checklag')
 ; подождём, пока запустится checklag - на всякий случай
repeat
   wait(10)
until uo.getGlobal('checklag') == 'false'
 ; ждём пока чар не шагнёт, или пока не ответит сервер, можно ещё на всякий случай добавить минимальное время паузы
while x == uo.getX() && y == uo.getY() && uo.getGlobal('checklag') == 'false'
   wait(50)
wend
 ; если не шагнули, а checklag закончил выполнение
if uo.getGlobal('checklag') == 'true' && uo.getX() == x && uo.getY() == y then
    ; пройти на тайл нельзя
else
    ; пройти на тайл можно
endif
 ; какой-то код функции хождения

 ; special checklag
Sub checklag()
   uo.setGlobal('checklag', 'false')
   uo.click('backpack')
   repeat
      wait(100)
   until uo.injournal('ackpack')
   uo.setGlobal('checklag', 'true')
endsub


Всё писалось на коленке, и является только моим ИМХО.

PS: На первый взгляд может показаться, что можно организовать подобное без глобалок - делать чеклаг, а потом проверять сделан шаг или нет, но вариант хуже - т.к. шагнуть может быстрее чеклага. Идеальным я думаю сделать для быстрой ходилки - отсылка сразу нескольких шагов поочерёдно, а потом одна пауза с проверкой.

PPS: Скорость можно примерно замерять скриптом, а потом более точно узнать покапавшись в памяти клиента или округлив, т.к. скорее всего используется какой-то круглое число.

Кстате, касательно быстрого хождения - тайлы на котые можно пройти можно попробывать кэшировать куда-нибудь в файл и при хождении примерно одним маршрутом скорость хождения сильно возрастёт, т.к. можно будет без проверки делать несколько шагов. Есть и минус - если кто-то воткнёт дом, то скрипт хождения должен это учитывать, но из-за этого пауза может получится несколько больше, чем при обычном хождении. Но вопрос - как часто ставят новые дома там, где вы рубите лес или делаете что-либо ещё на скрипте? :-)
admir
Posts: 528
Joined: 2005-01-13 07:20:54

Post by admir »

изя же имитирует движение .
все для альфы , [url=http://newvlad.nm.ru/prog]здесь[/url]
модернизация ремонт продажа игровых консолей
Sky: admirka1 Москва
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

И правда нахрен клиент, главное чтобы сервер не выделывался..
Как сам не додумался…
У админов спрашивать дохлый номер, они сами не ведают.

Разобрал пару серверов.
Вот типовые настройки

WalkFoot = 0.4сек
RunFoot = 0.2сек
WalkMount = 0.2сек
RunMount = 0.1сек

Обход мульти объектов не великая задача, пакет о них получаем, далее пометить, основываясь на данных о нем тайлы как не проходимые.
Есть проблема с базами, нагромождение домов с заборами…

Изя и инжект сами не ходят, они это делают через клиента.
Post Reply