L2PacketHackФорум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела!
Категорически запрещено:
* Просить пакеты/скрипты на шмот/адену/другие вещи;
* Просить (помочь) взломать/сломать сервак/аккаунт или раздеть/наказать кого-то на любом серваке;
* Просить научить работать с программой, если не понимаете элементарных вещей в отношениях клиент-сервер (так как, если вы их понимаете, то вопросов по основным возможностям программы быть недолжно);
* Все посты не удовлетворяющие этим запретам, а так же не относящиеся к теме будут удаляться при первой возможности.
* Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы.
* Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
* Данные запреты неподлежат обсуждению.
//QaK:отдельная тема по подкючению пакетхака к серверу >>>>>>>>тут
любые вопросы по данной тематике в этом топе будут удаляться без предупреждения.
Код:
const
mp='8A 1B 15 01 10';
hp='8A 1A 15 01 10';
begin
if fromclient and (pck[1]=#$38#$F5#$00#$EF#$00#$00#$00#$03#$00#$00#$00) then
begin
buf:=hstr(hp);
SendToServer;
end;
if fromclient and (pck[2]=#$33#$F5#$00#$EF#$00#$40#$00#$03#$00#$00#$00) then
begin
buf:=hstr(mp);
SendToServer;
end;
end.
где я ошибся?
Последний раз редактировалось QaK, 30.08.2010 в 18:56.
манор сдаем? читорррррр! а не... не так... фуриец! убить фурийца!!! (с) хроники риддика
PHP код:
вар объявление таймера переменная А
процедура таймера отправка пакета конец процедуры таймера
процедура инит описание таймера переменная A = 0 конец процедуры инит
процедура фри отключение таймера переменная А = 0 конец процедуры фри
обработка всех пакетов
если приходит тот пакет и переменная A = 0 то старт таймера переменная А = 1 end;
если пришло подтверждение о сдачи манора то отключение таймера переменная А = 0 end;
конец обработки всех пакетов
вот так должно быть. нужна переменная А для того, чтобы не запускать сто писят миллионов таймеров. то есть мы дали команду на старт - пошел тот пакет первый раз - то таймер будет слать тот же самый, который все это активизирует, а значит каждый раз будет запускаться таймер. а тут мы А ввели - и она позволяет не запускать таймер повторно. таймер выключится только по отключению скрипта, либо когда придет инфа, что манор принялся.
ах да! нужна еще одна переменная, которая сохранит весь пакет и передаст его таймеру. ну это уж сам добавь
__________________
хочу картинку в подпись!
Последний раз редактировалось SeregaZ, 29.12.2011 в 18:58.
теперь у меня вопрос помню был хелп онлайновый к л2пх... который умер и ссылка не пашет. и помню там был пример СоколА, СоколБ... то есть передача команды от одного окна другому. назрела и мне нужда в такой же фишке. чтобы из одного окна травить второе окно командой фас. получается у каждого окна свой скрипт. глобальных переменных нет и не предвидится, однако они решили бы мою проблему... ну не суть.
вопрос! в моем случае происходит посылка сообщения в анаунс чат из одного окна второму с текстом типа "фас". во втором окне стоит обработчик пакета на приход сообщения в анаунс и соответствующие действия. в логе второго окна я вижу анаунс от первого окна, он приходят якобы от сервера. однако скрипт второго окна его не кушает я так полагаю виноват пункт if FromServer? ведь на самом деле пришло то не от сервера в л2пх, а из л2пх в клиент, и как бы обработчик скрипта поэтому его и "не поймал".
как быть?
не предлагать слать реально на сервер, чтобы он потом с сервера пришел тому окну, ибо палевно. хотелось бы только в клиент без участия сервера, и даже без чата. а то думаю подтекает память клиента как раз из-за чата. что сообщения не удаляются, даже если ушли за зону видимости.
__________________
хочу картинку в подпись!
Последний раз редактировалось SeregaZ, 08.01.2012 в 06:31.
SeregaZ, а слать пакеты второму окну через SendToServerEx не катит?
может SendToClientEx? на сервер не хочется ничего слать. я ж говорю... палевно. сейчас схему нарисую что мне нужно, и код вроде-бы рабочий, тем не менее свой же посланный л2пхом пакет от одного клиента второму, л2пх повторно обрабатывать не хочет. то есть этот пакет из первого окна, я вижу и в логах л2пх и в самом клиенте второго, но скриптом он не обрабатывается.
(версия 166)
я вчера доэксперементировался. думал посылать клиенту незадокументированный пакет и выбрал что-то типа F9 - а это какой-то геймгвардовский. и клиент при получении этого пакета взял и отсылал на сервер что-то там геймгвардовское... вот это ж палево емае теперь боюсь на спойлера заходить
схему перерисовал. так чтоб более понятно было.
NLObP, хм... а вчера заходил не работало. хотя может я по другой ссылке... там 2-3 годичной давности из избранного в эксплорере.
__________________
хочу картинку в подпись!
Последний раз редактировалось SeregaZ, 09.01.2012 в 00:09.
Для всех соединений один скрипт. Проблема решается очень просто. Вот пример:
Код:
var
fas: boolean;
Procedure Init;
begin
fas:=false;
end;
begin
if (FromClient) and (ConnectName='первое окно') and (pck=HStr('тут типа пакет написания в чат слова _фас_')) then
begin
fas:=true;
pck:='';
end;
if (FromClient) and (ConnectName='второе окно') and (fas) then
begin
fas:=false;
//ботик бежит и кусает все что движется :)
end;
end.
__________________
В любом из нас спит гений. И с каждым днем все крепче.
вариант. там у меня правда юзфорконнекшион стоит. и третье окно бафера, которому этот скрипт не нужен...
я пока на социалку "вперед" переделал фас, но не удобно. зато дамагер исправно дроп поднимает, а спойл сам свипает
в твоем варианте сразу по приходу успешного заспойливания автоматом должен фас срабатывать. ну попробую... отпишу что вышло.
по замыслу таймер включится только для одного окна. правильно ли будет применен следующий код в Init'e?:
PHP код:
procedure Init; //Вызывается при включении скрипта begin if (ConnectName=Damager) then begin Timer01:=TTimer.Create(nil); Timer01.OnTimer:=@OnTimer01; Timer01.enabled:=true; Timer01.interval:=500; timera:=1; end; end;
Добавлено через 2 часа 21 минуту
такм. ну критовало критовало... но вроде наладилось. инит неправильный получился но в целом вроде пока пашет. посмотрим. но все равно хотелось бы глобальных переменных для разных скриптов
__________________
хочу картинку в подпись!
Последний раз редактировалось SeregaZ, 09.01.2012 в 04:53.
Причина: Добавлено сообщение
Для всех соединений один скрипт. Проблема решается очень просто. Вот пример:
Код:
var
fas: boolean;
Procedure Init;
begin
fas:=false;
end;
begin
if (FromClient) and (ConnectName='первое окно') and (pck=HStr('тут типа пакет написания в чат слова _фас_')) then
begin
fas:=true;
pck:='';
end;
if (FromClient) and (ConnectName='второе окно') and (fas) then
begin
fas:=false;
//ботик бежит и кусает все что движется :)
end;
end.
дык это ещё должен придти от второго окна пакет на сервер чтобы проверилось условие
не проще ли че-нить типо
delphi Код:
if FromClient and(ConnectName='первое окно')and(pck=HStr('тут типа пакет написания в чат слова _фас_'))thenbegin
pck:='';
SendToServerEx(HStr('тут типа пакет атаки или че там надо'),'второе окно');
end;
команда фас посылается после прихода с сервера системного сообщения, что спойл удачный. то есть как бы фас я не посылаю, оно само по приходу успешного спойла. то есть на сервер от первого окна, получившего сообщение о спойле, ничего не посылается. как я и хотел. это сообщение инициирует старт атаки во втором окне без участия сервера. так что все путем
за пример синтаксиса SendToServerEx с двумя переменными спасибо. не знал что так можно (хелп по командам не читал... ну балбес балбес признаю)
дык это ещё должен придти от второго окна пакет на сервер чтобы проверилось условие
не проще ли че-нить типо
delphi Код:
if FromClient and(ConnectName='первое окно')and(pck=HStr('тут типа пакет написания в чат слова _фас_'))thenbegin
pck:='';
SendToServerEx(HStr('тут типа пакет атаки или че там надо'),'второе окно');
end;
Это должен был быть мой следующий пример Я собирался его написать когда поймут первый алгоритм
__________________
В любом из нас спит гений. И с каждым днем все крепче.