PDA

Просмотр полной версии : Пати баф


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 минут
никто не хочет сваять ?

wimax
17.12.2012, 17:56
Breadfan, на форуме примеров много

Breadfan
18.12.2012, 00:54
Breadfan, на форуме примеров много

это не мое. у меня оббафывают под завязку. я - теоретик :) не л2пх пользую.
Но было бы любопытно посмотреть на решение задачи поставленной..Помню у АлексТима был бот шикарный...надо глянуть.
Нашел - http://coderx.ru/showthread.php?t=2415

wimax
20.12.2012, 01:18
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.