L2PacketHackФорум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела!
Категорически запрещено:
* Просить пакеты/скрипты на шмот/адену/другие вещи;
* Просить (помочь) взломать/сломать сервак/аккаунт или раздеть/наказать кого-то на любом серваке;
* Просить научить работать с программой, если не понимаете элементарных вещей в отношениях клиент-сервер (так как, если вы их понимаете, то вопросов по основным возможностям программы быть недолжно);
* Все посты не удовлетворяющие этим запретам, а так же не относящиеся к теме будут удаляться при первой возможности.
* Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы.
* Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
* Данные запреты неподлежат обсуждению.
"I am support in party (healler/buffer)"
он не будет атаковать моба если он в патии и его бьет моб.
акцепт лайф - разрешать рес от патимемберов либо всех.
настройки парти как таковой появляются только тогда когда он в пати... там отдельная вкладка.
настройки парти как таковой появляются только тогда когда он в пати... там отдельная вкладка.
Ок, добрался)
Follow rest не понял
Rest near не понял
Protect - понятно, бьёт моба если бьют голову
Follow atack - бьёт моба, если голова бьёт моба
Active follow - бежит рядом с чаром.
Бегает он резво, но всегда лезет вперёд головного чара. Как то паливно, как сделать чтоб он двигался как будто на хвосте бегает?(или просто останавливался за основой а не перед ней)
Допустим если отключить атаку, и привязать его в клиенте, после бафа он отцепится(
__________________ Продаю адену на l2.ru Cadmus BlackBird Athebaldt
ICQ: 329-867-244
Последний раз редактировалось PIONER, 13.11.2009 в 18:47.
Причина: Добавлено сообщение
Follow rest садиться на рест следом за персонажем в сетингах которого установлена эта галочка.
Rest near садиться рядом с персонажем.. т.е. он подбежит.. а потом сядет.
Цитата:
Бегает он резво, но всегда лезет вперёд головного чара. Как то паливно, как сделать чтоб он двигался как будто на хвосте бегает?(или просто останавливался за основой а не перед ней)
"I am support in party (healler/buffer)" ?
__________________
L2Ext - project closed.
Последний раз редактировалось alexteam, 13.11.2009 в 19:54.
Тестировал некоторое время никак не мог понять почему при запуске (активации настроенного бота) он вылетал. По логике получилось что на сервере стоит некая проверка на частоту пакетов. Написал задержку в CallActionFunc, однако данное решение собирает не весь дроп. Возможны какие то еще решения?
Еще один вопрос: время в течении которого может работать бот (тестировал только соло режим) в среднем 1час (+-15 мин) далее идет
Тунель ($26316208) Отвалились от сервера
Закономерность найти не удалось
тестировал много, порог в 1.5 часа преодолеть не удалось
изредка (примерно 1 из 10 тестов) наблюдал непонятные пакеты, однако закономерности между отключением и подозрительными пакетами не нашел.
Собственно открыт для идей, предположений, мыслей...
Собственно, igExt я не намерен дальше разрабатывать.
уменьшить кол-во акшинов до нормального значения можно с помошью введения проверки на движение к цели(моб/дроп) и блокировки лишних акшинов ответственных за движение к цели если мы уже движемся к цели (жесткий каламбур).
а так же учетом пакета autoattackstart/stop.
и еще. скрипт - это парсер и конструктор. никакие "задержки" в скрипте не приемлимы.
мб кому пригодиться:
Долгое время не мог понять источника "Unknown" пакетов. Недавно нашел.
Для лечения надо:
в функции CallActionFunc добавить проверку на правильную сборку пакетов. Например:
Код:
...
'callnpcinfo':
begin
//params = [ObjId, x,y,z, npcname]
buf := #$0c;
WriteMask('ddddddddddddddddddffffdddcccccssddddddddccffdddd',[params[0], npcconst+PathNodeNpc,0,params[1],params[2],params[3],5000,0,10,10,10,10,10,10,10,10,10,10,1,1,1,22,0,0,0,1,0,0,0,0,params[4],'',0,0,0,0,0,0,0,0,0,0,1,22,0,0,0,0]);
if buf[1] := #$0c then SendToClientCheck;
end;
...
фишка в том что IgExt.dll оч шустрый =) Пока выполняется WriteMask происходит очередное обращение к CallActionFunc и выполняется строчка "buf := '';". Соответсвенно нарушается сборка пакета и получившийся мусор идет на сервер, который отключает флудера.
ПС: Недостаток решения - потеря пакетов, но вроде IgExt "держит руку на пульсе" и имеет от этого защиту. Можно еще конечно поиграть с локальными и глобальными переменными - будет надо напишу пример.
Последний раз редактировалось ZaN, 07.12.2009 в 10:31.
а вот это я не учел..
в самом плагине следует сделать очередь выполнения для callfunction дабы избежать подобное.
ибо callfunction вызывается одновременно с нескольких потоков и они естественно могут накладываться друг на друга.
делать это в igExt я не буду.. а вот в l2ext сделаю -)
Добавлено через 1 час 9 минут
нет, даже не так.. во время выполнение callfunction другие callfunction заблокированы по определению.
тут наоборот. во время выполнения callfunction может прийти пакет от сервера и сам пакетхак автоматически обнулит buf.
надо будет параметр в скриптовый движек пх добавить.. запрещающий это делать.
__________________
L2Ext - project closed.
Последний раз редактировалось alexteam, 07.12.2009 в 13:49.
Причина: Добавлено сообщение
Я нашел решение как обеспечить долгую жизнь боту (что бы он не вылетал)
качать и разбираться в компиляторе паскаля мне как то лень было поэтому я правил только сам скрипт.
Я добавил буфер в котором сохраняются действия сгенерированные длл-ем. Этот буфер читается по таймеру, раз в 100мсек и действия обрабатываются. Зачем буфер ? уже подчеркивалось что длл работает сильно быстро и возможно скрипт не успевает отрабатывать действия переданные ему, а насколько мне кажется занесение в буфер быстрее чем поиск нужного действия и выполнение его. Плюс таким образом добавляется задержка в ответах на присланные с сервера пакеты и пакеты успевают дойти до клиента раньше чем до сервера ответ на них...
Автор говорил что было бы не плохо запретить параллельное использование функции вызываемой длл-кой. Сделать это можно или синхронизируя все потоки или просто ввести переменную "функция_занята", что я и сделал. Но тут вступила в силу какая то мистика которую я не могу обьяснить,иногда переменная так и не освобождалась (я так понимаю в этот момент раньше происходило вылетание), поэтому в качестве переменной я использовал Timer.enabled и получилось что если переменная не освободилась сама, то таймер досчитает до 200мс и сам освободит переменную. И теперь что то в пх вылетает (не понимаю о чем в ошибке написано), но все продолжает работать.
Итого - 8 часов полет нормальный (пока бот ни разу не упал)
Вот скрипт
Это пакет формируется, когда вы настраиваете меню, но я заметил, что он отправляется на сервер =)
Т.о. мы здорово палимся господа, следует заменить на:
PHP код:
...
if FromClient then
case pck[1] of
...
#$86://(RequestTutorialPassCmdToServer)
begin
PckRequestTutorialPassCmdToServer(reads(2));
pck:='';
end;
end;
...
alexteam, спс за бота
__________________
Free инет хранилище 2.3 Гб сейчас и до 8 гб с прямыми ссылками рефферал