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

L2PacketHack Форум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела! Обсуждение багов Lineage ЗАПРЕЩЕНО!

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 13.05.2008, 15:42   #11
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Цитата:
Сообщение от nezabudkin Посмотреть сообщение
Чето у меня не получается рассчитать смещение данных по ЦП в пакете юзеринфо под ИЛ.
В смысле, не получается? Берешь лог - смотришь в нем пакет, структуру и ручками высчитываешь.
QaK вне форума   Ответить с цитированием
Старый 13.05.2008, 19:06   #12
Пользователь
 
Аватар для APXAHGEJI
 
Регистрация: 08.03.2008
Сообщений: 77
Сказал Спасибо: 31
Имеет 19 спасибок в 15 сообщенях
APXAHGEJI
По умолчанию

Прошу, мне не жалко, это старая версия моего ПВП скрипта.
Правда комментариев почти нет, но переменные сами за себя говорят.
И да кстати, С6 не существует, хроники заканчиваются либо на 4 либо 5.
delphi Код:
Const   Name='ник';   Health= 80;   ResCP= 35;   GCP= 5592;//Greater CP Potion   GHP= 1539;//Greater Healing Potion   SHP= 1061; Var   NSHP, NGCP, NGHP, CharID, OidSHP, OidGHP, OidGCP,   MaxHP, CurHP, MaxCP, CurCP, FirTargID, SecTargID, i, HP: Integer;   TimerHP, TimerCP: TTimer;   PressCTRL, Res, Switch: boolean; //****************************************************************************** //                 Вызывается при включении скрипта //****************************************************************************** procedure Init; begin   PressCTRL:= False;   Res:= False;   Switch:= False;   FirTargID:= 0;   SecTargID:= 0;   NGCP:= 0;   NGHP:= 0;   NSHP:= 0;   MaxHP:= 1;   MaxCP:= 1;   HP:= Round ((MaxHP/100)*Health);   TimerHP:=TTimer.Create(nil);   TimerHP.OnTimer:=@OnTimerHP;   TimerHP.enabled:= False;   TimerHP.interval:=15000;   TimerCP:=TTimer.Create(nil);   TimerCP.OnTimer:=@OnTimerCP;   TimerCP.Enabled:= False;   TimerCP.Interval:= 1000;   buf:=#$0F;   SendToServerEx(Name);   Say ('Cпам ЦП и ХП выключен');   Say ('ПВП режим не активен'); end; //****************************************************************************** //****************************************************************************** //                 Вызывается при выключении скрипта //****************************************************************************** procedure Free; begin   TimerHP.Free;   TimerCP.Free; end; //****************************************************************************** //****************************************************************************** //             Посылаем сообщение, которое видно только в окне бота //****************************************************************************** Procedure Say(msg:string); begin   buf:=hstr('4A 00 00 00 00');   WriteD(2);   WriteS(Name);   WriteS(msg);   SendToClientEx(Name); end; //****************************************************************************** //****************************************************************************** //                        Использование Вещей //****************************************************************************** Procedure UseItem(OID: Integer); begin   buf:= #$14;   WriteD(OID);   WriteD(00);   SendToServerEx(Name) end; //****************************************************************************** //****************************************************************************** //                        Востановление ХП //****************************************************************************** Procedure OnTimerHP(Sender: TObject); begin   if Switch then begin     UseItem (OidGHP);     Dec (NGHP);   end else begin     UseItem (OidSHP);     Dec (NSHP);   end; end; //****************************************************************************** //****************************************************************************** //                        Востановление ЦП //****************************************************************************** Procedure OnTimerCP(Sender: TObject); begin   UseItem (OidGCP);   Dec (NGCP); end; //****************************************************************************** //****************************************************************************** //     Вызывается при приходе каждого пакета, если скрипт включен //****************************************************************************** Begin   //****************************************************************************   //****************************************************************************   //Не обрабатываем пустые пакеты   If pck='' then exit;   //****************************************************************************   //****************************************************************************   //****************************************************************************   //****************************************************************************   //Обрабатываем пакеты от сервера   If FromServer and (ConnectName=Name) then begin     //**************************************************************************     //Если от сервака принят пакет UserInfo.     If (pck[1]=#$04) then begin       CharID:= ReadD(18);       i:= 2*(Length(Name))+ 72;       MaxHP:= ReadD(i);       CurHP:= ReadD(i);       MaxCP:= ReadD(length(pck)-49);       CurCP:= ReadD(length(pck)-45);     end;     //**************************************************************************     //**************************************************************************     //Если от сервака принят пакет StatusUpdate.     if (pck[1]=#$0E) and (pck[6]=#$04)then begin       CurHP:=ReadD(14);       MaxHP:=ReadD(22);       CurCP:=ReadD(30);       MaxCP:=ReadD(38);     end;     //**************************************************************************     //**************************************************************************     //Записываем ObjectID всех нужных предметов     if pck[1]=#$1B then begin       for i:= 0 to round(length(pck)/36) do begin         if (ReadH(i*36+4+8) = GCP) then begin           OidGCP:= ReadD(i*36+8);           NGCP:= ReadH(i*36+4+4+8);         end;         if (ReadH(i*36+4+8) = GHP) then begin           OidGHP:= ReadD(i*36+8);           NGHP:= ReadH(i*36+4+4+8);         end;         if (ReadH(i*36+4+8) = SHP) then begin           OidSHP:= ReadD(i*36+8);           NSHP:= ReadH(i*36+4+4+8);         end;       end;     end;     //**************************************************************************   end;   //****************************************************************************   //****************************************************************************   //****************************************************************************   //****************************************************************************   //Обрабатываем пакеты от клиента   If FromClient and (ConnectName=Name) then begin     //**************************************************************************     //Уменьшеньки счетчика банок при использовании в игре     if (pck[1]= #$14) then begin       case ReadD(2) of         OidGCP: Dec(NGCP);         OidGHP: Dec(NGHP);         OidSHP: Dec(NSHP);       end;     end;     //**************************************************************************     //**************************************************************************     //Авто CTRL     if PressCTRL then begin       If(pck[1]=#$2F) then pck[6]:=#$01;       If (pck[1]= #$04) or (pck[1]= #$0A) then begin         FirTargID:= SecTargID;         SecTargID:= ReadD(2);         if (FirTargID = SecTargID) and (FirTargID<> 0) then pck[1]:=#$0A;       end;     end;     //**************************************************************************     //**************************************************************************     //Управление     if (pck[1]=#$38) and (pck[10]=#$03) then begin       case ReadS(2) of         '234': if Switch then begin                  Say ('Врубили маленькие бутылки');                  Switch:= False;                end else begin                  Say ('Врубили большие бутылки');                  UseItem(OidGHP);                  Switch:= True;                end;         '123': if Res then begin                  Say ('Cпам ЦП и ХП выключен');                  TimerHP.Enabled:= False;                  TimerCP.Enabled:= False;                  Res:= False;                end else begin                  Say ('Cпам ЦП и ХП включен');                  Res:= True;                end;       end;       pck:='';       exit;     end;     //**************************************************************************     //**************************************************************************     //Активация ПВП режима     if (pck[1]=#$57) then begin       if PressCTRL then begin         PressCTRL:= False;         Say ('ПВП режим не активен');       end else begin         PressCTRL:= True;         Say ('ПВП режим активен');       end;       pck:='';       exit;     end;     //**************************************************************************     //**************************************************************************     //Уменьшеньки счетчика банок при использовании в игре     if (pck[1]= #$14) then       case ReadD(2) of         OidGCP: Dec(NGCP);         OidGHP: Dec(NGHP);         OidSHP: Dec(NSHP);       end;     //**************************************************************************   end;   //****************************************************************************   //****************************************************************************   //****************************************************************************   //****************************************************************************   //Условия начала востановления, запуск вотсановления   //****************************************************************************   If Res then begin     //**************************************************************************     //Активация востановления ЦП     if PressCTRL then begin       If (((CurHP+CurCP)/(MaxHP+MaxCP)*100)<= ResCP) then         if  (CurCP>0) and (NGCP>0) then begin           if not TimerCP.Enabled then begin             TimerCP.Enabled:= True;             UseItem (OidGCP);             Dec (NGCP);           end;         end;       If (CurCP>=(MaxCP-200)) then         if TimerCP.Enabled then TimerCP.Enabled:= False;     end;     //**************************************************************************     //**************************************************************************     //Активация востановления ХП     if (CurHP <= HP) and (CurHP>0) then  begin       if (not TimerHP.Enabled) then         if Switch then begin           if (NGHP>0) then begin             TimerHP.Enabled:= True;             UseItem (OidGHP);             Dec (NGHP);           end;         end else           if (NSHP>0) then begin             TimerHP.Enabled:= True;             UseItem (OidSHP);             Dec (NSHP);           end;     end else If TimerHP.Enabled then TimerHP.Enabled:= False;     //**************************************************************************   end;   //****************************************************************************   //****************************************************************************   //**************************************************************************** End. //******************************************************************************  

Добавлено через 7 минут
А да чуть не забыл.
Управление:
123 в пати чат включение/выключение слежения за ЦП иХП
234 опять же в пати чат переключение между обычными НР и GHP банками (всё можно забить в макрос для удобства)
Клавиша B активация ПВП режима (не надо CTRL нажимать)

Последний раз редактировалось APXAHGEJI, 13.05.2008 в 19:06. Причина: Добавлено сообщение
APXAHGEJI вне форума   Ответить с цитированием
За это сообщение APXAHGEJI нажился 2 спасибками от:
Старый 13.05.2008, 19:48   #13
Местный
 
Аватар для nezabudkin
 
Регистрация: 06.03.2008
Сообщений: 154
Сказал Спасибо: 46
Имеет 130 спасибок в 38 сообщенях
nezabudkin
По умолчанию

MaxCP:= ReadD(length(pck)-49);
CurCP:= ReadD(length(pck)-45);

Вот это самое интересное место!!!
APXAHGEJI респект тебе!
nezabudkin вне форума   Ответить с цитированием
Старый 13.05.2008, 20:04   #14
Заблокирован
 
Регистрация: 10.03.2008
Адрес: Тула
Сообщений: 1,098
Сказал Спасибо: 188
Имеет 108 спасибок в 60 сообщенях
DashKAaa
По умолчанию

Цитата:
Сообщение от APXAHGEJI Посмотреть сообщение
Прошу, мне не жалко, это старая версия моего ПВП скрипта.
Правда комментариев почти нет, но переменные сами за себя говорят.
И да кстати, С6 не существует, хроники заканчиваются либо на 4 либо 5.
delphi Код:
Const   Name='ник';   Health= 80;   ResCP= 35;   GCP= 5592;//Greater CP Potion   GHP= 1539;//Greater Healing Potion   SHP= 1061; Var   NSHP, NGCP, NGHP, CharID, OidSHP, OidGHP, OidGCP,   MaxHP, CurHP, MaxCP, CurCP, FirTargID, SecTargID, i, HP: Integer;   TimerHP, TimerCP: TTimer;   PressCTRL, Res, Switch: boolean; //****************************************************************************** //                 Вызывается при включении скрипта //****************************************************************************** procedure Init; begin   PressCTRL:= False;   Res:= False;   Switch:= False;   FirTargID:= 0;   SecTargID:= 0;   NGCP:= 0;   NGHP:= 0;   NSHP:= 0;   MaxHP:= 1;   MaxCP:= 1;   HP:= Round ((MaxHP/100)*Health);   TimerHP:=TTimer.Create(nil);   TimerHP.OnTimer:=@OnTimerHP;   TimerHP.enabled:= False;   TimerHP.interval:=15000;   TimerCP:=TTimer.Create(nil);   TimerCP.OnTimer:=@OnTimerCP;   TimerCP.Enabled:= False;   TimerCP.Interval:= 1000;   buf:=#$0F;   SendToServerEx(Name);   Say ('Cпам ЦП и ХП выключен');   Say ('ПВП режим не активен'); end; //****************************************************************************** //****************************************************************************** //                 Вызывается при выключении скрипта //****************************************************************************** procedure Free; begin   TimerHP.Free;   TimerCP.Free; end; //****************************************************************************** //****************************************************************************** //             Посылаем сообщение, которое видно только в окне бота //****************************************************************************** Procedure Say(msg:string); begin   buf:=hstr('4A 00 00 00 00');   WriteD(2);   WriteS(Name);   WriteS(msg);   SendToClientEx(Name); end; //****************************************************************************** //****************************************************************************** //                        Использование Вещей //****************************************************************************** Procedure UseItem(OID: Integer); begin   buf:= #$14;   WriteD(OID);   WriteD(00);   SendToServerEx(Name) end; //****************************************************************************** //****************************************************************************** //                        Востановление ХП //****************************************************************************** Procedure OnTimerHP(Sender: TObject); begin   if Switch then begin     UseItem (OidGHP);     Dec (NGHP);   end else begin     UseItem (OidSHP);     Dec (NSHP);   end; end; //****************************************************************************** //****************************************************************************** //                        Востановление ЦП //****************************************************************************** Procedure OnTimerCP(Sender: TObject); begin   UseItem (OidGCP);   Dec (NGCP); end; //****************************************************************************** //****************************************************************************** //     Вызывается при приходе каждого пакета, если скрипт включен //****************************************************************************** Begin   //****************************************************************************   //****************************************************************************   //Не обрабатываем пустые пакеты   If pck='' then exit;   //****************************************************************************   //****************************************************************************   //****************************************************************************   //****************************************************************************   //Обрабатываем пакеты от сервера   If FromServer and (ConnectName=Name) then begin     //**************************************************************************     //Если от сервака принят пакет UserInfo.     If (pck[1]=#$04) then begin       CharID:= ReadD(18);       i:= 2*(Length(Name))+ 72;       MaxHP:= ReadD(i);       CurHP:= ReadD(i);       MaxCP:= ReadD(length(pck)-49);       CurCP:= ReadD(length(pck)-45);     end;     //**************************************************************************     //**************************************************************************     //Если от сервака принят пакет StatusUpdate.     if (pck[1]=#$0E) and (pck[6]=#$04)then begin       CurHP:=ReadD(14);       MaxHP:=ReadD(22);       CurCP:=ReadD(30);       MaxCP:=ReadD(38);     end;     //**************************************************************************     //**************************************************************************     //Записываем ObjectID всех нужных предметов     if pck[1]=#$1B then begin       for i:= 0 to round(length(pck)/36) do begin         if (ReadH(i*36+4+8) = GCP) then begin           OidGCP:= ReadD(i*36+8);           NGCP:= ReadH(i*36+4+4+8);         end;         if (ReadH(i*36+4+8) = GHP) then begin           OidGHP:= ReadD(i*36+8);           NGHP:= ReadH(i*36+4+4+8);         end;         if (ReadH(i*36+4+8) = SHP) then begin           OidSHP:= ReadD(i*36+8);           NSHP:= ReadH(i*36+4+4+8);         end;       end;     end;     //**************************************************************************   end;   //****************************************************************************   //****************************************************************************   //****************************************************************************   //****************************************************************************   //Обрабатываем пакеты от клиента   If FromClient and (ConnectName=Name) then begin     //**************************************************************************     //Уменьшеньки счетчика банок при использовании в игре     if (pck[1]= #$14) then begin       case ReadD(2) of         OidGCP: Dec(NGCP);         OidGHP: Dec(NGHP);         OidSHP: Dec(NSHP);       end;     end;     //**************************************************************************     //**************************************************************************     //Авто CTRL     if PressCTRL then begin       If(pck[1]=#$2F) then pck[6]:=#$01;       If (pck[1]= #$04) or (pck[1]= #$0A) then begin         FirTargID:= SecTargID;         SecTargID:= ReadD(2);         if (FirTargID = SecTargID) and (FirTargID<> 0) then pck[1]:=#$0A;       end;     end;     //**************************************************************************     //**************************************************************************     //Управление     if (pck[1]=#$38) and (pck[10]=#$03) then begin       case ReadS(2) of         '234': if Switch then begin                  Say ('Врубили маленькие бутылки');                  Switch:= False;                end else begin                  Say ('Врубили большие бутылки');                  UseItem(OidGHP);                  Switch:= True;                end;         '123': if Res then begin                  Say ('Cпам ЦП и ХП выключен');                  TimerHP.Enabled:= False;                  TimerCP.Enabled:= False;                  Res:= False;                end else begin                  Say ('Cпам ЦП и ХП включен');                  Res:= True;                end;       end;       pck:='';       exit;     end;     //**************************************************************************     //**************************************************************************     //Активация ПВП режима     if (pck[1]=#$57) then begin       if PressCTRL then begin         PressCTRL:= False;         Say ('ПВП режим не активен');       end else begin         PressCTRL:= True;         Say ('ПВП режим активен');       end;       pck:='';       exit;     end;     //**************************************************************************     //**************************************************************************     //Уменьшеньки счетчика банок при использовании в игре     if (pck[1]= #$14) then       case ReadD(2) of         OidGCP: Dec(NGCP);         OidGHP: Dec(NGHP);         OidSHP: Dec(NSHP);       end;     //**************************************************************************   end;   //****************************************************************************   //****************************************************************************   //****************************************************************************   //****************************************************************************   //Условия начала востановления, запуск вотсановления   //****************************************************************************   If Res then begin     //**************************************************************************     //Активация востановления ЦП     if PressCTRL then begin       If (((CurHP+CurCP)/(MaxHP+MaxCP)*100)<= ResCP) then         if  (CurCP>0) and (NGCP>0) then begin           if not TimerCP.Enabled then begin             TimerCP.Enabled:= True;             UseItem (OidGCP);             Dec (NGCP);           end;         end;       If (CurCP>=(MaxCP-200)) then         if TimerCP.Enabled then TimerCP.Enabled:= False;     end;     //**************************************************************************     //**************************************************************************     //Активация востановления ХП     if (CurHP <= HP) and (CurHP>0) then  begin       if (not TimerHP.Enabled) then         if Switch then begin           if (NGHP>0) then begin             TimerHP.Enabled:= True;             UseItem (OidGHP);             Dec (NGHP);           end;         end else           if (NSHP>0) then begin             TimerHP.Enabled:= True;             UseItem (OidSHP);             Dec (NSHP);           end;     end else If TimerHP.Enabled then TimerHP.Enabled:= False;     //**************************************************************************   end;   //****************************************************************************   //****************************************************************************   //**************************************************************************** End. //******************************************************************************  

Добавлено через 7 минут
А да чуть не забыл.
Управление:
123 в пати чат включение/выключение слежения за ЦП иХП
234 опять же в пати чат переключение между обычными НР и GHP банками (всё можно забить в макрос для удобства)
Клавиша B активация ПВП режима (не надо CTRL нажимать)
ну как и ожидалось не пашет, оно под с6 по твоему в интерлюде! коль с6 не существует

Последний раз редактировалось DashKAaa, 13.05.2008 в 20:12.
DashKAaa вне форума   Ответить с цитированием
Старый 13.05.2008, 20:50   #15
Пользователь
 
Аватар для APXAHGEJI
 
Регистрация: 08.03.2008
Сообщений: 77
Сказал Спасибо: 31
Имеет 19 спасибок в 15 сообщенях
APXAHGEJI
По умолчанию

А я говорю пашет)))
Я тестил его уже не раз. Спокойно выжирает ЦП банки.
Может не были выполнены условия начала использования ЦП.
За это отвечает константа ResCP. Мона поставить больше.
А можно изменить условия, это в самом конце под заголовком "Активация востановления ЦП".
Да и к тому же мониторинг ЦП и ХП по умолчанию выключены, для активации нужно в пати чат отправить 123

Добавлено через 1 минуту
Упс забыл, еще обязаловкой надо ПВП режим активировать 234 в пати чат))))

Последний раз редактировалось APXAHGEJI, 13.05.2008 в 20:50. Причина: Добавлено сообщение
APXAHGEJI вне форума   Ответить с цитированием
Старый 14.05.2008, 09:10   #16
Заблокирован
 
Регистрация: 10.03.2008
Адрес: Тула
Сообщений: 1,098
Сказал Спасибо: 188
Имеет 108 спасибок в 60 сообщенях
DashKAaa
По умолчанию

Цитата:
Сообщение от APXAHGEJI Посмотреть сообщение
А я говорю пашет)))
Я тестил его уже не раз. Спокойно выжирает ЦП банки.
Может не были выполнены условия начала использования ЦП.
За это отвечает константа ResCP. Мона поставить больше.
А можно изменить условия, это в самом конце под заголовком "Активация востановления ЦП".
Да и к тому же мониторинг ЦП и ХП по умолчанию выключены, для активации нужно в пати чат отправить 123

Добавлено через 1 минуту
Упс забыл, еще обязаловкой надо ПВП режим активировать 234 в пати чат))))
Никуя се просветил насчет 234, и 234 и 123 все пробовал ХП пьет цп не пьет, на каком сервере у тебя работаеТ? пади с4 какая нить сборка
DashKAaa вне форума   Ответить с цитированием
Старый 14.05.2008, 11:04   #17
Пользователь
 
Аватар для APXAHGEJI
 
Регистрация: 08.03.2008
Сообщений: 77
Сказал Спасибо: 31
Имеет 19 спасибок в 15 сообщенях
APXAHGEJI
По умолчанию

А ты прям таки на офе гамаешь, может это у тя С4 сборка.(тьфу на офе же камаэлька давно)))
Кароче можешь скока угодно залупаться и базарить о том что не рабоает, но если после определения в скрипте MaxCP и CurCP как из пакета UserInfo так и StatusUpdate поставишь
Say(IntToStr(MaxCP));
Say(IntToStr(CurCP));
И эта хрень будет выводить значеня твоего ЦП то значит скрипт не активирован или не достигнуты условия начала использования ЦП.
Пакет UserInfo приходит при нажатии Tab вместе с инвентарем так что эти значени должы вывестись сразу, а со StatusUpdate надо еще как то убавить значение ЦП.
И очень интересен такой вопрос, я не думаю что ты там что то переделывал(а) в мое скрипте связанное с ХП, а там у меня баг,
и хп то вот как раз использоваться никак не должно)) удивительно))

Добавлено через 20 минут
Звиняюсь ПВП режим активируется на клавишу B аглицкую,
и кстати если работает скрипт при нажатии всех управляющих
клавиш выводится особое сообщение.

Добавлено через 1 минуту
Тока что проверил еще раз. ЦП работает.

Добавлено через 1 минуту
В моих условиях использования банок ЦП начинается если нету всего ЦП, и больше половины ХП

Последний раз редактировалось APXAHGEJI, 14.05.2008 в 11:04. Причина: Добавлено сообщение
APXAHGEJI вне форума   Ответить с цитированием
Старый 14.05.2008, 12:10   #18
Заблокирован
 
Регистрация: 10.03.2008
Адрес: Тула
Сообщений: 1,098
Сказал Спасибо: 188
Имеет 108 спасибок в 60 сообщенях
DashKAaa
По умолчанию

Цитата:
Сообщение от APXAHGEJI Посмотреть сообщение
А ты прям таки на офе гамаешь, может это у тя С4 сборка.(тьфу на офе же камаэлька давно)))
Кароче можешь скока угодно залупаться и базарить о том что не рабоает, но если после определения в скрипте MaxCP и CurCP как из пакета UserInfo так и StatusUpdate поставишь
Say(IntToStr(MaxCP));
Say(IntToStr(CurCP));
И эта хрень будет выводить значеня твоего ЦП то значит скрипт не активирован или не достигнуты условия начала использования ЦП.
Пакет UserInfo приходит при нажатии Tab вместе с инвентарем так что эти значени должы вывестись сразу, а со StatusUpdate надо еще как то убавить значение ЦП.
И очень интересен такой вопрос, я не думаю что ты там что то переделывал(а) в мое скрипте связанное с ХП, а там у меня баг,
и хп то вот как раз использоваться никак не должно)) удивительно))

Добавлено через 20 минут
Звиняюсь ПВП режим активируется на клавишу B аглицкую,
и кстати если работает скрипт при нажатии всех управляющих
клавиш выводится особое сообщение.

Добавлено через 1 минуту
Тока что проверил еще раз. ЦП работает.

Добавлено через 1 минуту
В моих условиях использования банок ЦП начинается если нету всего ЦП, и больше половины ХП
и правду удивительно с ХП, а оно работает фантастика?? оОо а цп не работает,
да и на оффе уже давно не камаэль... умник)
DashKAaa вне форума   Ответить с цитированием
Старый 14.05.2008, 13:45   #19
Пользователь
 
Аватар для APXAHGEJI
 
Регистрация: 08.03.2008
Сообщений: 77
Сказал Спасибо: 31
Имеет 19 спасибок в 15 сообщенях
APXAHGEJI
По умолчанию

Ды мне пох че на оффе.
С хп сам(а) написал(а) что работает, а не должно.
Такое ощущение ты вообщемто уже и не хочешь что бы заработало.
Повторяю самое главное это чтобы поступала инфа о о состоянии ЦП, все остальное мона переделать без проблем, а чтобы узнать поступает ли она втавь в скрипте:
Say(IntToStr(MaxCP));
Say(IntToStr(CurCP)); хотя нафиг тя, лучше сам напишу.
Код:
Const
  Name='Ник'; 
  Health= 101;
  ResCP= 101;
  GCP= 5592;//Greater CP Potion
  GHP= 1539;//Greater Healing Potion
  SHP= 1061;

Var
  NSHP, NGCP, NGHP, CharID, OidSHP, OidGHP, OidGCP,
  MaxHP, CurHP, MaxCP, CurCP, FirTargID, SecTargID, i, HP: Integer;
  TimerHP, TimerCP: TTimer;
  PressCTRL, Res, Switch: boolean;

//******************************************************************************
//                 Вызывается при включении скрипта
//******************************************************************************
procedure Init;
begin
  PressCTRL:= False;
  Res:= False;
  Switch:= False;
  FirTargID:= 0;
  SecTargID:= 0;
  NGCP:= 0;
  NGHP:= 0;
  NSHP:= 0;
  MaxHP:= 1;
  MaxCP:= 1;
  TimerHP:=TTimer.Create(nil);
  TimerHP.OnTimer:=@OnTimerHP;
  TimerHP.enabled:= False;
  TimerHP.interval:=15000;
  TimerCP:=TTimer.Create(nil);
  TimerCP.OnTimer:=@OnTimerCP;
  TimerCP.Enabled:= False;
  TimerCP.Interval:= 1000;
  buf:=#$0F;
  SendToServerEx(Name);
  Say ('Cпам ЦП и ХП выключен');
  Say ('ПВП режим не активен');
end;
//******************************************************************************

//******************************************************************************
//                 Вызывается при выключении скрипта
//******************************************************************************
procedure Free;
begin
  TimerHP.Free;
  TimerCP.Free;
end;
//******************************************************************************

//******************************************************************************
//             Посылаем сообщение, которое видно только в окне бота
//******************************************************************************
Procedure Say(msg:string);
begin
  buf:=hstr('4A 00 00 00 00');
  WriteD(2);
  WriteS(Name);
  WriteS(msg);
  SendToClientEx(Name);
end;
//******************************************************************************

//******************************************************************************
//                        Использование Вещей
//******************************************************************************
Procedure UseItem(OID: Integer);
begin
  buf:= #$14;
  WriteD(OID);
  WriteD(00);
  SendToServerEx(Name)
end;
//******************************************************************************

//******************************************************************************
//                        Востановление ХП
//******************************************************************************
Procedure OnTimerHP(Sender: TObject);
begin
  if Switch then begin
    UseItem (OidGHP);
    Dec (NGHP);
  end else begin
    UseItem (OidSHP);
    Dec (NSHP);
  end;
end;
//******************************************************************************

//******************************************************************************
//                        Востановление ЦП
//******************************************************************************
Procedure OnTimerCP(Sender: TObject);
begin
  UseItem (OidGCP);
  Dec (NGCP);
end;
//******************************************************************************


//******************************************************************************
//     Вызывается при приходе каждого пакета, если скрипт включен
//******************************************************************************
Begin
  //****************************************************************************
  //****************************************************************************
  //Не обрабатываем пустые пакеты
  If pck='' then exit;
  //****************************************************************************
  //****************************************************************************

  //****************************************************************************
  //****************************************************************************
  //Обрабатываем пакеты от сервера
  If FromServer and (ConnectName=Name) then begin

    //**************************************************************************
    //Если от сервака принят пакет UserInfo.
    If (pck[1]=#$04) then begin
      CharID:= ReadD(18);
      i:= 2*(Length(Name))+ 72;
      MaxHP:= ReadD(i);
      CurHP:= ReadD(i);
      MaxCP:= ReadD(length(pck)-49);
      CurCP:= ReadD(length(pck)-45);
      Say(inttostr(MaxCP));
      Say(inttostr(CurCP));
      HP:= Round ((MaxHP/100)*Health);
    end;
    //**************************************************************************

    //**************************************************************************
    //Если от сервака принят пакет StatusUpdate.
    if (pck[1]=#$0E) and (pck[6]=#$04)then begin
      CurHP:=ReadD(14);
      MaxHP:=ReadD(22);
      CurCP:=ReadD(30);
      MaxCP:=ReadD(38);
      Say(inttostr(MaxCP));
      Say(inttostr(CurCP));
    end;
    //**************************************************************************

    //**************************************************************************
    //Записываем ObjectID всех нужных предметов
    if pck[1]=#$1B then begin
      for i:= 0 to round(length(pck)/36) do begin
        if (ReadH(i*36+4+8) = GCP) then begin
          OidGCP:= ReadD(i*36+8);
          NGCP:= ReadH(i*36+4+4+8);
        end;
        if (ReadH(i*36+4+8) = GHP) then begin
          OidGHP:= ReadD(i*36+8);
          NGHP:= ReadH(i*36+4+4+8);
        end;
        if (ReadH(i*36+4+8) = SHP) then begin
          OidSHP:= ReadD(i*36+8);
          NSHP:= ReadH(i*36+4+4+8);
        end;
      end;
    end;
    //**************************************************************************

  end;
  //****************************************************************************
  //****************************************************************************

  //****************************************************************************
  //****************************************************************************
  //Обрабатываем пакеты от клиента
  If FromClient and (ConnectName=Name) then begin

    //**************************************************************************
    //Уменьшеньки счетчика банок при использовании в игре
    if (pck[1]= #$14) then begin
      case ReadD(2) of
        OidGCP: Dec(NGCP);
        OidGHP: Dec(NGHP);
        OidSHP: Dec(NSHP);
      end;
    end;
    //**************************************************************************

    //**************************************************************************
    //Авто CTRL
    if PressCTRL then begin
      If(pck[1]=#$2F) then pck[6]:=#$01;
      If (pck[1]= #$04) or (pck[1]= #$0A) then begin
        FirTargID:= SecTargID;
        SecTargID:= ReadD(2);
        if (FirTargID = SecTargID) and (FirTargID<> 0) then pck[1]:=#$0A;
      end;
    end;
    //**************************************************************************

    //**************************************************************************
    //Управление
    if (pck[1]=#$38) and (pck[10]=#$03) then begin
      case ReadS(2) of
        '234': if Switch then begin
                 Say ('Врубили маленькие бутылки');
                 Switch:= False;
               end else begin
                 Say ('Врубили большие бутылки');
                 UseItem(OidGHP);
                 Switch:= True;
               end;
        '123': if Res then begin
                 Say ('Cпам ЦП и ХП выключен');
                 TimerHP.Enabled:= False;
                 TimerCP.Enabled:= False;
                 Res:= False;
               end else begin
                 Say ('Cпам ЦП и ХП включен');
                 Res:= True;
               end;
      end;
      pck:='';
      exit;
    end;
    //**************************************************************************

    //**************************************************************************
    //Активация ПВП режима
    if (pck[1]=#$57) then begin
      if PressCTRL then begin
        PressCTRL:= False;
        Say ('ПВП режим не активен');
      end else begin
        PressCTRL:= True;
        Say ('ПВП режим активен');
      end;
      pck:='';
      exit;
    end;
    //**************************************************************************

    //**************************************************************************
    //Уменьшеньки счетчика банок при использовании в игре
    if (pck[1]= #$14) then
      case ReadD(2) of
        OidGCP: Dec(NGCP);
        OidGHP: Dec(NGHP);
        OidSHP: Dec(NSHP);
      end;
    //**************************************************************************

  end;
  //****************************************************************************
  //****************************************************************************

  //****************************************************************************
  //****************************************************************************
  //Условия начала востановления, запуск вотсановления

  //****************************************************************************
  //If Res then begin
    //**************************************************************************
    //Активация востановления ЦП
    //if PressCTRL then begin
      If (((CurHP+CurCP)/(MaxHP+MaxCP)*100)<= ResCP) then
        if  (CurCP>0) and (NGCP>0) then begin
          if not TimerCP.Enabled then begin
            TimerCP.Enabled:= True;
            UseItem (OidGCP);
            Dec (NGCP);
          end;
        end;
      If (CurCP>=(MaxCP-200)) then
        if TimerCP.Enabled then TimerCP.Enabled:= False;
    //end;
    //**************************************************************************

    //**************************************************************************
    //Активация востановления ХП
    if (not TimerHP.Enabled) then begin
      if (CurHP <= HP) and (CurHP>0) then
        if Switch then begin
          if (NGHP>0) then begin
            TimerHP.Enabled:= True;
            UseItem (OidGHP);
            Dec (NGHP);
          end;
        end else
          if (NSHP>0) then begin
            TimerHP.Enabled:= True;
            UseItem (OidSHP);
            Dec (NSHP);
          end;
    end else if (CurHP=MaxHP) then TimerHP.Enabled:= False;
    //**************************************************************************
  //end;
  //****************************************************************************

  //****************************************************************************
  //****************************************************************************

End.
//******************************************************************************
APXAHGEJI вне форума   Ответить с цитированием
Старый 14.05.2008, 14:28   #20
Заблокирован
 
Регистрация: 10.03.2008
Адрес: Тула
Сообщений: 1,098
Сказал Спасибо: 188
Имеет 108 спасибок в 60 сообщенях
DashKAaa
По умолчанию

Цитата:
Сообщение от APXAHGEJI Посмотреть сообщение
Ды мне пох че на оффе.
тогда не умничай насчет что такое с6 и что такое камаэль
DashKAaa вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack



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

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


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

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

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