Тема: radar + packetHack
Показать сообщение отдельно
Старый 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 спасибками от: