Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Пакеты
Войти через OpenID

Пакеты Форум о форматах отдельных пакетов или групп пакетов

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 15.04.2009, 05:35   #1
Новичок
 
Регистрация: 15.04.2009
Сообщений: 10
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
Pat пока неопределено
По умолчанию Пытаюсь разобраться

Пробовал подключить два скрипта, но активация действий обоих происходит при нажатии socialHello,таким образом работает только один из скриптов .В приведенном ниже скрипте меняю ID socialHello (1B 02) на ID socialYes (06 00)-неработает

1 Код:
var     Bot1X,Bot1Y,Bot1Z:string; //координаты варки     IDAssistTarget:string; //таргет командира     rnd:integer;  // вспомогательная для случайного события     bafWC: array [1..100] of string; //список бафов WС     NameKom,NameBot1:string; //имена чаров учавствующих в процессе     MaxHPKom,MaxHPBot1:integer; //максимальные уровни ХП (лимиты)     CurHPKom,CurHPBot1:integer; //текущие значения ХП     IDKomandos,IDbot1:string; // идешники командира и варки     timer4,timer3:TTimer; //таймеры бафа     i,x:integer;     tempS:String;     ///////////////////////////////////////// buff's////////////////////////////////////////////// procedure OnTimer4 (Sender: TObject); begin case x of 1: begin //выделяем командира, эмулируя щелчек мыши buf:=hstr('04') + IDKomandos + Bot1X + Bot1Y + Bot1Z + hstr('00'); SendToServerEX(NameBot1); buf:=bafWC[6]; SendToServerEx(NameBot1); x:=x+1; end; 2: begin buf:=bafWC[1]; SendToServerEx(NameBot1); x:=x+1; end; 3: begin buf:=bafWC[2]; SendToServerEx(NameBot1); x:=x+1; end; 4: begin buf:=bafWC[3]; SendToServerEx(NameBot1); x:=x+1; end; 5: begin buf:=bafWC[4]; SendToServerEx(NameBot1); x:=x+1; end; 6: begin buf:=bafWC[5]; SendToServerEx(NameBot1); x:=x+1; end; 7: begin buf:=bafWC[7]; SendToServerEx(NameBot1); x:=0; timer4.enabled:=false; end; end; end; ///////////////////////// // buff 20min procedure OnTimer3 (Sender: TObject); //баффы через 20 мин begin     timer3.interval:=1150000; //каждые 20 мин (за вычетом времени самих бафов)     timer4.enabled:=true;//вкл. бафы   end;     //*************************БЕЖИМ ЗА ЛИДЕРОМ*******************************************     //процедура заставляет бежать ботов за лидером     procedure BotBeg;     begin     //проверяем условие чтоб координаты ботов небыли равными '' и ИД был перехвачен     if  IDKomandos <> '' then         begin        //выделяем командира, эмулируя щелчек мыши         buf:=hstr('04') + IDKomandos + Bot1X + Bot1Y + Bot1Z + hstr('00');         if IDBot1<>'' then SendToServerEX(NameBot1);         //бежим за командиром эмулируя повторный щелчек мыши по таргету         buf:=hstr('04') + IDKomandos + Bot1X + Bot1Y + Bot1Z + hstr('00');         if IDBot1<>'' then SendToServerEX(NameBot1);         end;      end;     procedure Init; //Вызывается при включении скрипта     begin     NameKom:='XXX';              //командир     NameBot1:='XXX';       //варка         //список бафов:     //само собой вы его можете расширить новыми бафами которых тут нет..     //это те бафы кторые я использую от ПП      bafWC[1]:=hstr('2F EF 03 00 00 00 00 00 00 00');  //chant of battle      bafWC[2]:=hstr('2F E5 04 00 00 00 00 00 00 00');  //chant of rage      bafWC[3]:=hstr('2F F1 03 00 00 00 00 00 00 00');  //chant of sheilding      bafWC[4]:=hstr('2F E4 04 00 00 00 00 00 00 00');  //chant of evansion      bafWC[5]:=hstr('2F EE 03 00 00 00 00 00 00 00');  //chant of fire ( m def )      bafWC[6]:=hstr('2F EA 03 00 00 00 00 00 00 00');  //flame chant ( acum )      bafWC[7]:=hstr('2F 1E 05 00 00 00 00 00 00 00');  // vampiric  //при старте скрипта значения переменных =0     //поетому скрипт подумает что у всех 0 ХП и начнется хаос.. все начнут друг друга хилить без остановки     //чтоб избежать етого выставим начальные значения.. то что ХП у нас- дожопы.. много.. 15к.. т.е. хилить ненадо.     //а потом скрипт сам захватит текущее знасение.. и всё коректно будет...     CurHPKom:=15000;     CurHPBot1:=15000;         //дело в том что скрипт расчитывает хилить или нет в зависимости от % от шкалы.. если вся шкала =0 (по дефолту)     //то ето както некоректно там будет хотя вроде пофиг..     //но для коректности понимания процесса мы пишем что максимальная шкала ХП у нас оч маленькая а текущие значения- оч большие..     //поетому никакие хилы небудут происходить при старте скрипта..     MaxHPKom:=10;     MaxHPBot1:=10;    //новый баф кастовать через 4 секунды       timer4:=TTimer.Create(nil);       timer4.OnTimer:=@OnTimer4; //       timer4.enabled:=false; //       timer4.interval:=5300;  //5300 для варки       // добавляем функцию что бы бафал сам каждые 20 мин ( NLobP )        //баффы   timer3:=TTimer.Create(nil);   timer3.OnTimer:=@OnTimer3; //   timer3.enabled:=true; // таймер по умолчанию выключен   timer3.interval:=60000; // первый баф через 60 сек     // ЗАПРОС НА ОТКРЫТИЕ ИНВЕНТОРЯ!!!! ДЛЯ ЗАХВАТА ИДЕШНИКА!     // чтобы принудительно вызвать от сервера пакет ЮЗЕР ИНФО в котором ИД указан     //а также для того чтобы захвватить ИД банок для питья         buf:=hstr('0F');         SendToServerEX(NameKom);         SendToServerEX(NameBot1);     end;     procedure Free; //Вызывается при выключении скрипта     begin     timer4.Free;     end;     //основная часть скрипта     //вызывается при приходе каждого пакета если скрипт включен     begin     //для тго чтоб 2-3 скрипта коректно работали  одновременно..     if pck='' then exit;  // нех пустые пакеты обрабатывать типа       //*******************ЗАХВАТ КООРДИНАТ***************************************************     //если принят пакет от клиента с кординатами бота то     if FromClient then     if ConnectName=NameBot1 then     if pck[1]=#$48 then         begin     //запоминаем координаты         Bot1X:= pck[2] + pck[3] + pck[4] + pck[5];         Bot1Y:= pck[6] + pck[7] + pck[8] + pck[9];         Bot1Z:= pck[10] + pck[11] + pck[12] + pck[13];         end;       //********************ОСТСЛЕЖИВАЕМ ТРУПАКИ********************************************************     //если кто то умер то приходит пакет DIE.. то хилить его ненадо...     //нефиг трупы хилить...     //для того чтоб трупяков боты не хилили ставим кодом то что ХП (текущее) у них до жопы... т.е. 15к     if FromServer then     if ConnectName=NameKom then     if pck[1]=#$06 then     if pck[2] + pck[3] + pck[4] + pck[5] = IDKomandos then       CurHPKom:=15000;     if FromServer then     if ConnectName=NameBot1 then     if pck[1]=#$06 then     if pck[2] + pck[3] + pck[4] + pck[5] = IDBot1 then       CurHPBot1:=15000;           //*************************УЗНАЕМ ЛИМИТЫ ХП и МП и ИД***********************************************     //из пакета UserInfo который приходит во время бафа и не только     //как тока скрипт начинает свою работу то он на все аки отправляет запрос на открытие ИНВЕНТОРЯ     //вместе с ответом сервера всегда приходит пакет ЮЗЕР ИНФО.. из етого замечательного пакета мы считываем  максимальные значения ХП и МП     //а так жэ  ИД чара (бота- бафера)     //КОМАНДИР     if FromServer then     if ConnectName = NameKom then     if pck[1]=#$04 then       begin       IDKomandos:=pck[18]+pck[19]+pck[20]+pck[21]; //тут выдергиваем ИД чара       i:=22;       tempS:=readS(i); // ето используем для удобства.. имя типа пропускаем.. потому как каждый раз оно из разного кол-ва букв состоит.. в скобках переменная автоматом увеличивается на кол-во букв (ну там по формуле.. в юникоде 1 буква=2 байта, и символ окончания строки еще 00 00)       i:=i+48; // через 48 байтофъ после имени указывается лимиты и текущие значения для ХП и МП     //запоминаем их.. тут нам не особо важны текущие значения.. хотя лишний раз не помешают     //но важно- максимальное значение- ЛИМИТЫ       MaxHPKom:=readD(i);       CurHPKOM:=readD(i);       end;     //1-й бот     if FromServer then     if ConnectName = NameBot1 then     if pck[1]=#$04 then       begin       IDBot1:=pck[18]+pck[19]+pck[20]+pck[21];       i:=22;       tempS:=readS(i);       i:=i+48;       MaxHPBot1:=readD(i);       CurHPBot1:=readD(i);       end;     //*************************СЛЕДИМ ЗА ХП и МП******************************************           if FromServer then       if ConnectName = NameKom then       if pck[1]=#$0e then       if (pck[2] + pck[3] + pck[4] + pck[5] + pck[6] = IDKomandos + #$04) then       begin     //считываем текущее состояние ХП!!-)         CurHPKom:=ReadD(14);     //ну собственно ето уже можно править под желания каждого:     //если жизни текущие меньше 0,5 от шкалы (50%) то..          if (CurHPKom < round(MaxHPKom*0.5)) then          begin           buf:=hstr('04') + IDKomandos + Bot1X + Bot1Y + Bot1Z + hstr('00');           SendToServerEX(NameBot1);           buf:=hstr('2F CD 04 00 00 00 00 00 00 00'); // chant of life           SendToServerEX(NameBot1);          end;          end;               //socialHELLO буф Война не по ассисту а по ИДкомандира т.е самого его      if FromClient then       if ConnectName=NameKom then       if pck[1]+pck[2]=hstr('1B 02') then    // 02 -   socialHELLO       begin  //убиваем этот пакет, чтоб сервер его не получил   pck:=''; // бафы timer4.enabled:=true; x:=1; exit; end;         end.

Подскажите, что еще надо править чтобы заработал скрипт по нажатию socialYes?
Pat вне форума   Ответить с цитированием
Старый 15.04.2009, 11:23   #2
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от Pat Посмотреть сообщение
В приведенном ниже скрипте меняю ID socialHello (1B 02) на ID socialYes (06 00)-неработает
Надо было менять на ID socialYes (1B 06)

delphi Код:
//socialYES буф Война не по ассисту а по ИДкомандира т.е самого его    if FromClient then      if ConnectName=NameKom then        if pck[1]+pck[2]=hstr('1B 06') then    // 06 -   socialYES        begin           //убиваем этот пакет, чтоб сервер его не получил           pck:='';           // бафы           timer4.enabled:=true;           x:=1;           exit;        end;

Цитата:
Сообщение от Pat Посмотреть сообщение
Пробовал подключить два скрипта, но активация действий обоих происходит при нажатии socialHello,таким образом работает только один из скриптов
Чтобы одновременно перехватывать, надо здесь
delphi Код:
procedure Init; //Вызывается при включении скрипта begin     NameKom:='XXX';              //командир ...
вписывать правльно имена командиров, тогда будет правильно перехватывать здесь

delphi Код:
//socialHELLO буф Война не по ассисту а по ИДкомандира т.е самого его    if FromClient then      if ConnectName=NameKom then        if pck[1]+pck[2]=hstr('1B 02') then    // 02 -   socialHELLO        begin           //убиваем этот пакет, чтоб сервер его не получил           pck:='';           // бафы           timer4.enabled:=true;           x:=1;           exit;        end;
для того, от кого сообщение шло
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился спасибкой от:
Старый 15.04.2009, 12:50   #3
Новичок
 
Регистрация: 15.04.2009
Сообщений: 10
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
Pat пока неопределено
По умолчанию

Спасибо огромное!!!
Имена писал правильно иначе бы по отдельности скрипты не работали...
Pat вне форума   Ответить с цитированием
Старый 15.04.2009, 13:21   #4
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Социал YES надо нажимать в клиентах командиров по отдельности для запуска скриптов. Да и скриптов надо два, на каждого командира отдельный.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 16.04.2009, 10:08   #5
Новичок
 
Регистрация: 15.04.2009
Сообщений: 10
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
Pat пока неопределено
По умолчанию

Проблема как раз и была в том, что командир один, а скрипта два и каждый из них активировался командой socialHello, в итоге запускался один скрипт, у которого был приоритет(стоял выше). Но сейчас все работает. Еще раз спасибо
Pat вне форума   Ответить с цитированием
Старый 16.04.2009, 15:27   #6
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Если очень надо, то можно вот эту строчку удалить и пакет будет в другие скрипты попадать, то есть одной командой активируются и другие скрипты.
Код:
          //убиваем этот пакет, чтоб сервер его не получил
          pck:='';
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Пакеты



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 18:25.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!