Выкладываю скрипт на баффера с возможностью выбора типа Баффа:
delphi Код:
const
RW=1182; //Resist Water
RWi=1189; //Wind
RF=1191; //Fire
Sacr=1392;
USacr=1393;
DWP=1242;
Might=1068;
MShield=1035;
MBarrier=1036;
Shield=1040;
BB=1045;
BS=1048;
Bers=1062;
GMight=1388;
Foc=1077;
Conc=1078;
Acu=1085;
Has=1086;
WW=1204;
Guid=1240;
BShield=1243;
GShield=1389;
var
timer1: TTimer;
TargetID,MyID, MyX, MyY, MyZ, x, DT, i,a: integer;
Paname, NickName,From, Choise: String;
WaitForAnswere, Bissy: Boolean;
procedure SendMsg(Msg,Adress: String);
begin
buf:=#$38;
WriteS(Msg);
WriteD(2);
WriteS(Adress);
SendToServerEX(NickName);
end;
procedure AnswerJoinParty;
begin
buf:=#$2A;
WriteD(1);
SendToServerEx(NickName);
end;
procedure Action;
begin
buf:=#$04;
WriteD(TargetID);
WriteD(MyX);
WriteD(MyY);
WriteD(MyZ);
SendToServerEx(NickName);
end;
procedure ActionMySelf;
begin
buf:=#$04;
WriteD(MyID);
WriteD(MyX);
WriteD(MyY);
WriteD(MyZ);
SendToServerEx(NickName);
end;
procedure UseBuff(buffID:integer);
begin
buf:=#$2f;
WriteD(buffID);
WriteD(0);
WriteC(0);
SendToServerEX(NickName);
end;
procedure OnTimer;
begin
case x of
1: begin
usebuff(MBarrier); //Начало блока мага
inc(x);
Bissy:=true;
end;
2: begin
usebuff(GShield);
inc(x);
end;
3: begin
usebuff(BB);
inc(x);
end;
4: begin
usebuff(Bers);
inc(x);
end;
5: begin // Завершение блока мага
x:=0;
Bissy:=False;
timer1.enabled:=false;
buf:=#$2B;
SendToServerEx(NickName);
ActionMySelf;
a:=0;
end;
6: begin //Начало блока война
usebuff(MShield);
Bissy:=True;
inc(x);
end;
7: begin
usebuff(MBarrier);
inc(x);
end;
8: begin
usebuff(Bers);
inc(x);
end;
9: begin
usebuff(DWP);
inc(x);
end;
10: begin
usebuff(WW);
inc(x);
end;
11: begin
usebuff(BB);
inc(x);
end;
12: begin
usebuff(Gmight);
inc(x);
end;
13: begin
usebuff(Foc);
inc(x);
end;
14: begin
usebuff(Has);
inc(x);
end;
15: begin
usebuff(Might);
inc(x);
end;
16: begin //Завершение блока Война
x:=0;
Bissy:=false;
timer1.enabled:=false;
buf:=#$2B;
SendToServerEx(NickName);
ActionMySelf;
a:=0;
end;
end;
end;
procedure OnConnect(WithClient: Boolean); //Вызывается при установке соединения
begin
NoFreeOnClientDisconnect;
NoFreeOnServerDisconnect;
end;
procedure OnDisonnect(WithClient: Boolean); //Вызывается при потере соединения
begin
end;
procedure Init;
begin
NoFreeOnClientDisconnect;
NoFreeOnServerDisconnect;
timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer;
timer1.enabled:=false;
timer1.interval:=3000;
x:=0;
NickName:= 'XXX'; // Ник сменить на ник бафера
end;
procedure Free; //Вызывается при выключении скрипта
begin
timer1.free;
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if fromserver and (pck[1]=#$04) and (ConnectName=NickName) then begin
MyX:= ReadD(2);
MyY:= ReadD(6);
MyZ:= ReadD(10);
MyID:= ReadD(18);
end;
if FromServer and (pck[1]=#$39) and (ConnectName=NickName) then begin
PAname:= ReadS(2);
if (PAName = 'XXX') then AnswerJoinParty; // Вместо иксов введите имя чара,
//пати которого примет бот.
//Можно ввсети много имен через "or"
//Внимание чувствителен к регистру.
end;
if FromServer and (pck[1]=#$EE) and (ConnectName=NickName) and (a=0) then begin
a:=1;
TargetID:=ReadD(6);
SendMsg('Какие бафы Вы желаете получить? 0 - Маг; 1 - Воин. Ответьте в ПМ',Paname);
WaitForAnswere:=true;
end;
if FromServer and (ConnectName=NickName) and (pck[1]=#$4a) then begin
If WaitForAnswere then begin
i:=10;
From:=ReadS(i);
Choise:=ReadS(i);
If (From = Paname) then begin
case Choise of
'0': begin
if not Bissy then begin
WaitForAnswere:=False;
x:=1; // Ссылка на начало блока Мага
Action;
timer1.enabled:=true;
end;
end;
'1': begin
if not Bissy then begin
WaitForAnswere:=False;
x:=6; //Ссылка на начало блока война
Action;
timer1.enabled:=true;
end;
end;
end;
end;
end;
end;
end.
Добавлено через 6 минут
Господа есть вопрос... Как реализовать сборку информации об окружающих мобах?? Я имею ввиду не пакеты с которых инфу брать, а как именно осуществить это программно. Если в теме ДА БУДЕТ БОТ есть подобные скрипты прошу указать на какой именно странице, а то нет времени там искать (27страниц) Заранее СПАСИБО