Просмотр полной версии : Пати баф
Breadfan
17.12.2012, 12:17
Осмелюсь подумать что надо сделать чтото типа
boolean funck;
function target;
function buf_otkat;
funktion pol_pers; // - не удивляйтесь, есть маг, или и полумили профы. которым то берс добафать то еще че....
  if pers mag then.....
и далее needsfb(i)= if pers need buf then/....
и еще банки учитывать надо всякие....
тока по откату юза делайте.
if pol_rs(i)=ХХ and akum and needstfs then buf.
как вариант добавить контроль итемов, контроль на себе и прочею хрень. типа влез первым - а он фулбаф. учитывать аналоги.
И не забудьте что мага во время каста станом накрыть могут
и болят руки написать - но не могу,......с настоящей Мариной обсуждаем реал....потом мб
Добавлено через 18 часов 1 минуту
итак надо:
function otkat;
function cast;
function profa;
function buf;
function beg_lider;
function otbeg_pri_attacke;
function heal;
function res;
можно аналогами, или свое.
Добавлено через 19 часов 50 минут
никто не хочет сваять ?
Breadfan, на форуме примеров много
Breadfan
18.12.2012, 00:54
Breadfan, на форуме примеров много
это не мое. у меня оббафывают под завязку. я - теоретик :) не л2пх пользую.
Но было бы любопытно посмотреть на решение задачи поставленной..Помню у АлексТима был бот шикарный...надо глянуть.
Нашел - http://coderx.ru/showthread.php?t=2415
Breadfan, хы) ну я вот как то занимался что та подобное делал) вот нашол)
//by Avrelio
const
NameKomandos='';
NameSE='';
NameBD='';
NamePP='';
NameEE='';
NameSWS='';
//se buffs
bse1=1059;    // Empower
//bd buffs
bbd1=276;    //Dance of Consentration
bbd2=273;    //Dance of Mystic
//sws buffs
bsws1=268;    //song1
bsws2=349;    //song1
bsws3=363;    //song1
//ee buffs 
bee1=1303;  //wild Magic
{
//songs
264=Song of Earth
265=Song of Life
266=Song of Water
267=Song of Warding
268=Song of Wind
269=Song of Hunter
270=Song of Invocation
304=Song of Vitality
305=Song of Vengeance
306=Song of Flame Guard
308=Song of Storm Guard
349=Song of Renewal
363=Song of Meditation
364=Song of Champion
//dances
365=Siren's Dance
366=Dance of Shadows
367=Dance of Medusa
271=Dance of the Warrior
272=Dance of Inspiration
273=Dance of the Mystic
274=Dance of Fire
275=Dance of Fury
276=Dance of Concentration
277=Dance of Light
307=Dance of Aqua Guard
309=Dance of Earth Guard
310=Dance of the Vampire
311=Dance of Protection
}
RechargeEE='mpEE';
RechargeSE='mpSE';
runSE='runSE';
runBD='runBD';
runPP='runPP';
runEE='runEE';
runSWS='runSWS';
sit_standSE='sitSE';
sit_standBD='sitBD';
sit_standPP='sitPP';
sit_standEE='sitEE';
sit_standSWS='sitSWS';
exitPartySE='exitSE';
exitPartyBD='exitBD';
exitPartyPP='exitPP';
exitPartyEE='exitEE';
exitPartySWS='exitSWS';
yBuffSE='buffse';
yBuffBD='buffbd';
yBuffSWS='buffsws';
yBuffEE='buffee';
var
CoordBufX, CoordBufY, CoordBufZ, IDPartyMember ,x,x1,x2,x3: integer; 
name: string;
BuffSE: TTimer;
BuffBD: TTimer;
BuffSWS: TTimer;
BuffEE: TTimer;
procedure xBuffSE(Sender: TObject);
begin
 case x of
 1: begin
    Target;
    skilluse(bse1,NameSE);
    x:=x+1;
    end;  
end;
end;
procedure xBuffBD(Sender: TObject);
begin
 case x2 of
 1: begin
    skilluse(bbd1,NameBD);
    x2:=x2+1;
    end;  
 2: begin
    skilluse(bbd2,NameBD);
    x2:=x2+1;
    end; 
end;
end;
procedure xBuffSWS(Sender: TObject);
begin
 case x3 of
 1: begin
    skilluse(bsws1,NameSWS);
    x3:=x3+1;
    end; 
 2: begin
    skilluse(bsws2,NameSWS);
    x3:=x3+1;
    end; 
 3: begin
    skilluse(bsws3,NameSWS);
    x3:=x3+1;
    end;   
end;
end;
procedure xBuffEE(Sender: TObject);
begin
 case x1 of
 1: begin
    skilluse(bee1,NameEE);
    x1:=x1+1;
    end; 
end;
end;
procedure run(name:string);
begin
    buf:=hstr('04');
    WriteD(IDPartyMember);
    WriteD(CoordBufX);
    WriteD(CoordBufY);
    WriteD(CoordBufZ);
    WriteC(0);
    SendToServerEX(name);
    buf:=hstr('04');
    WriteD(IDPartyMember);
    WriteD(CoordBufX);
    WriteD(CoordBufY);
    WriteD(CoordBufZ);
    WriteC(0);
    SendToServerEX(name);
end;
procedure Target;
begin
    buf:=hstr('04');
    WriteD(IDPartyMember);
    WriteD(CoordBufX);
    WriteD(CoordBufY);
    WriteD(CoordBufZ);
    WriteC(0);
    SendToServerEX(NameSE);
end;
procedure sit_stand(name:string);
begin
buf:=hstr('45 00 00 00 00 00 00 00 00 00'); //RequestActionUse
SendToServerEx(name);
end;
procedure exitParty(name:string);
begin
buf:=hstr('2B'); //RequestWithDrawalParty
SendToServerEx(name);
end;
procedure AceptParty(name:string);
begin
buf:=hstr('2A 01 00 00 00'); //RequestWithDrawalParty
SendToServerEx(name);
end;
procedure DeceptParty(name:string);
begin
buf:=hstr('2A 00 00 00 00'); //RequestWithDrawalParty
SendToServerEx(name);
end;
 
procedure Recharge(name:string);
begin
Target;
buf:=hstr('2F F5 03 00 00 00 00 00 00 00'); // Recharge
SendToServerEx(name);
end;
 
procedure skilluse(skill: integer;name:string);
begin
    buf:=hstr('2F'); 
    WriteD(skill);
    writeD(0);
    WriteC(0);
    SendToServerEx(name);
end;
procedure Init;
begin
     BuffSE:=TTimer.Create(nil);
     BuffSE.OnTimer:=@xBuffSE;
     BuffSE.enabled:=false;
     BuffSE.interval:=2000;
     
     BuffBD:=TTimer.Create(nil);
     BuffBD.OnTimer:=@xBuffBD;
     BuffBD.enabled:=false;
     BuffBD.interval:=2000;
     
     BuffSWS:=TTimer.Create(nil);
     BuffSWS.OnTimer:=@xBuffSWS;
     BuffSWS.enabled:=false;
     BuffSWS.interval:=2000; 
     
     BuffEE:=TTimer.Create(nil);
     BuffEE.OnTimer:=@xBuffEE;
     BuffEE.enabled:=false;
     BuffEE.interval:=2000;
     x:=0;
     x1:=0;
     x2:=0;
     x3:=0;
end;
procedure Free;
begin
    BuffSE.Free;
end;
begin
     if pck='' then exit;
     if FromServer and (pck[1]=#$39) then
        begin
            if (reads(2)=NameKomandos) then
                begin 
                    AceptParty(ConnectName);
                    exit;
                end; 
            if (reads(2)<>NameKomandos) then
                begin 
                    DeceptParty(ConnectName);
                    exit;
                end;   
        end;
        
   { if FromServer and (pck[1]=#$4A) then 
      case ReadS(26) of 
      //run 
      runSE:begin pck:=''; Run(NameSE);exit;end;
      runBD:begin pck:=''; Run(NameBD);exit;end;
      runPP:begin pck:=''; Run(NamePP);exit;end;
      runSWS:begin pck:=''; Run(NameSWS);exit;end;
      runEE:begin pck:=''; Run(NameEE);exit;end; 
      //sit/stand
      sit_standSE:begin pck:=''; sit_stand(NameSE);exit;end;
      sit_standBD:begin pck:=''; sit_stand(NameBD);exit;end;
      sit_standPP:begin pck:=''; sit_stand(NamePP);exit;end;
      sit_standSWS:begin pck:='';sit_stand(NameSWS);exit;end;
      sit_standEE:begin pck:=''; sit_stand(NameEE);exit;end;
      //exitParty
      exitPartySE:begin pck:=''; exitParty(NameSE);exit;end;
      exitPartyBD:begin pck:=''; exitParty(NameBD);exit;end;
      exitPartyPP:begin pck:=''; exitParty(NamePP);exit;end;
      exitPartySWS:begin pck:='';exitParty(NameSWS);exit;end;
      exitPartyEE:begin pck:=''; exitParty(NameEE);exit;end;
      //Recharge
      RechargeEE:begin pck:=''; Recharge(NameEE);exit;end; 
      RechargeSE:begin pck:=''; Recharge(NameSE);exit;end; 
      //buffs
      yBuffSE:begin pck:='';BuffSE.enabled:=true;x:=1;exit;end;
      end;
     }
        
     //запоминаем ИД командира и Координат
    if FromClient and (ConnectName=NameKomandos) and (pck[1]=#$04) then
        begin
            IDPartyMember:=ReadD(2);
            CoordBufX:= ReadD(6);
            CoordBufY:= ReadD(10);
            CoordBufZ:= ReadD(14);
            exit;
        end;
   //spisok komand dlya obrabotki skripta
   if FromClient and (ConnectName=NameKomandos) and (pck[1]=#$38) then
      case ReadS(2) of 
      //run 
      runSE:begin pck:=''; Run(NameSE);exit;end;
      runBD:begin pck:=''; Run(NameBD);exit;end;
      runPP:begin pck:=''; Run(NamePP);exit;end;
      runSWS:begin pck:=''; Run(NameSWS);exit;end;
      runEE:begin pck:=''; Run(NameEE);exit;end; 
      //sit/stand
      sit_standSE:begin pck:=''; sit_stand(NameSE);exit;end;
      sit_standBD:begin pck:=''; sit_stand(NameBD);exit;end;
      sit_standPP:begin pck:=''; sit_stand(NamePP);exit;end;
      sit_standSWS:begin pck:='';sit_stand(NameSWS);exit;end;
      sit_standEE:begin pck:=''; sit_stand(NameEE);exit;end;
      //exitParty
      exitPartySE:begin pck:=''; exitParty(NameSE);exit;end;
      exitPartyBD:begin pck:=''; exitParty(NameBD);exit;end;
      exitPartyPP:begin pck:=''; exitParty(NamePP);exit;end;
      exitPartySWS:begin pck:='';exitParty(NameSWS);exit;end;
      exitPartyEE:begin pck:=''; exitParty(NameEE);exit;end;
      //Recharge
      RechargeEE:begin pck:=''; Recharge(NameEE);exit;end; 
      RechargeSE:begin pck:=''; Recharge(NameSE);exit;end; 
      //buffs
      yBuffSE:begin pck:='';BuffSE.enabled:=true;x:=1;exit;end;
      yBuffEE:begin pck:='';BuffEE.enabled:=true;x1:=1;exit;end;
      yBuffBD:begin pck:='';BuffBD.enabled:=true;x2:=1;exit;end;
      yBuffSWS:begin pck:='';BuffSWS.enabled:=true;x3:=1;exit;end;
      end;
end.
vBulletin® v3.6.11, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot