Рейтинг@Mail.ru
Дракон помошник - Форум atms
Главная Мой профиль Регистрация Выход Вход
- Пятница, 04:33:1
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Скриптинг L2PHX "Lineage C4" (Давно заброшенный раздел) » Скрипты L2PHX "для хроник С4" » Дракон помошник
Дракон помошник
ПользовательДата: Вторник, 01 Января 2013, 22:40 | Сообщение # 1
Некто
Группа: Обычный пользователь
Сообщений: 141
Репутация: 19
Статус: Нет на форме
Ваш дракон стар бьет магией моба который вас атакует.
Если мана заканчивается бьет физически.
Если НР ниже определенного предела, юзает банки НР
Если НР ниже определенного предела и никто не атакует, юзает скилл лек Bright Heal
Юзает банки акума если каст ниже нужного числа.
Так же если на дракончика нападет моб, хозяин пета будет защищать дракончика, только при работающем боте.
Тоесть, если на дракончика нападает моб, скрипт имитирует пакет от сервера,
якобы этот моб нападает на персонажа а не на пета,
т.о. L2Walker думает что избивают перса и защищает пета убивая моба.
Работает и со страйдером старом
Код

//Автор ATMS_DIFKS
var  Tim01: TTimer;
atk,STG:boolean;
BufB,BufC,name:string;
attaker,target,x,y,z,id,delid,maxhp,hp,maxmp,mp,IDPet,useB,useHP,ihp,NoMP,Cast,CastPet, acm:integer;
procedure Init; //Вызывается при включении скрипта
begin
Tim01:=TTimer.Create(nil);    //Не менять!
     Tim01.OnTimer:=@OnTim011;   //Не менять!
     Tim01.enabled:=false;    //Не менять!
     Tim01.interval:=400;   //Не менять!
     Tim01.enabled:=true;   //Не менять!                      
     id:=0;      //Не менять!
     UseB:=500;  //юзать банки НР когда НР будет меньше этого числа
     useHp:=500; //юзать скилл НР когда НР будет меньше этого числа, и никто не атакует.
     NoMP:=30; //Если МР будет ниже этого числа, бить моба физом attack     
     Cast:=409; //Если скорость маг атаки пета ниже этого числа, юзать банку акума.
     name:='*****';//ник
     ihp:=0;   //Не менять!     
     bufB:=hstr('1B 06 00 00 00');
     bufC:=hstr('1B 06 00 00 00');
end;

procedure SendMsc(msc:string);     
begin     
buf:=#$4A;     
WriteD(0);     
WriteD(2); //тип сообщения 1 шаут 2 приват 10 аноним обьявление и тд
WriteS('Dracon'); //ник от кого
WriteS(msc);     
SendToClientEX(name);     
end;

procedure OnTim011;
begin     
       if atk = true then
       begin
       buf:=hstr('45 ED 03 00 00 00 00 00 00 00');
       SendToServerEX(name);     
       end;
end;

function action(ojid, xj, yj, zj:integer;):integer;
begin
       buf:=#$04;     
       WriteD(ojid);     
       WriteD(xj);     
       WriteD(yj);
       WriteD(zj);     
       WriteC(0);
       SendToServer;     
end;

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

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
     if id = 0 then begin SendMsc('Выдели себя в таргет'); id:=1; end;     
     if fromclient and (pck[1]=#$04) then begin if id = 1 then begin id:=ReadD(2); SendMsc('Тагрет запомнен: '+inttostr(id)); SendMsc('Перетащи банку НР в инвентарь пету, и используй.'); end; end;
         
      if fromClient and (pck[1]=#$8A) then     
      BEGIN                       
      IF ACM = 1 THEN begin ACM:=0; bufC:=pck; SendMsc('Пакет банок акума запомнен.'); end;
      IF IHP = 0 THEN begin IHP:=1; bufB:=pck; SendMsc('Пакет банок HP запомнен.'); SendMsc('Используйте банку акума в инвентаре пета.'); acm:=1; end;
      end;      
          
      if fromserver and (pck[1]=#$A6) then STG:=true;
      if fromserver and (pck[1]=#$2A) then STG:=false;
       if fromserver and (pck[1]=#$B1) then
      begin
      CastPet:=ReadD(38);
      if CastPet < Cast then begin buf:=bufC;  SendToServerEX(name); end;
      end;     
          
     if fromserver and (pck[1]=#$B5) then
      begin
      MaxHP:=ReadD(36);     
      HP:=ReadD(32);     
      MaxMP:=ReadD(44);     
      MP:=ReadD(40);     
      IDPet:=ReadD(6);       
          
      if HP < useHP then begin if atk = false then begin    buf:=hstr('45 EE 03 00 00 00 00 00 00 00');  SendToServerEX(name); end; end;
      if HP < useB then begin buf:=bufB;  SendToServerEX(name); end;
     // if MP < NoMP then begin atk := false; buf:=hstr('45 10 00 00 00 00 00 00 00 00');  SendToServerEX(name); end;     
      end;     
         
      if fromserver and (pck[1]=#$05) then     
      BEGIN       
      target:=ReadD(6);     
        if (target = id) OR (target = IDPet) then
        begin      
        attaker:=ReadD(2);
        x:=ReadD(15);
        y:=ReadD(19);
        z:=ReadD(23);
         if target = id then
         begin          
          // if STG = false then action(attaker,x,y,z);
         atk:=true;
         end;      
        end;     
        if target = IDPet then     
        begin
        attaker:=ReadD(2);
        x:=ReadD(15);
        y:=ReadD(19);
        z:=ReadD(23);
        if attaker <> id then
        begin
          buf:=#$05;     
          WriteD(attaker);     
          WriteD(id);
          WriteD(1);
          WriteC(0);     
          WriteD(x);
          WriteD(y);
          WriteD(z);
          WriteH(0);
          SendToClient;     
        end;
        end;
       END;
          
      if fromserver and (pck[1]=#$06) then
      begin
      delid:=ReadD(2);     
      if delid = attaker then atk:=false;
      end;     
           
end.


Да хранит вас Ctrl+S.
Да убережет вас Alt+F4 от порнобанера.
Админь...
 
Форум » Скриптинг L2PHX "Lineage C4" (Давно заброшенный раздел) » Скрипты L2PHX "для хроник С4" » Дракон помошник
  • Страница 1 из 1
  • 1
Поиск:

atms 2009 © 2021