PDA

Просмотр полной версии : Скрипт заточки одной стопкой блесок, одного предмета.


kpa9pt
06.09.2012, 22:55
Вдруг кому понадобиться.


//Script Авто заточки одного предмета блесками до нужного уровня.
//FAQ:
//Вписываем имя, нажимаем соц. действие Victory и включаеться запись пакетов: юзаем точку, выбираем предмет, жмём точить.
//Выключаем соц. действием Advance запись пакетов.
//Соц. действием Yes включаеться автозаточка этой стопкой точек, этого предмета до нужного уровня. Соц. действие No останавливает скрипт.

//Created by JealouS 06.09.12

const
name='name';
Enchant=16;
var
CurrentEnch
:integer;
stepOFEnch:integer;
UseItem,SelectItem,EnchantItem
:string;
recordb:boolean;
Timer01:TTimer;
procedure Init; //Вызывается при включении скрипта
begin
CurrentEnch:=0;
stepOFEnch:=0;
UseItem:='';
SelectItem:='';
EnchantItem:='';
recordb:=false;;

Timer01:=TTimer.Create(nil);
Timer01.OnTimer:=@OnTimer01;
Timer01.enabled:=false;
Timer01.interval:=2000;
end;

procedure Free; //Вызывается при выключении скрипта
begin
Timer01.enabled:=false;
end;

procedure MsgSend(Msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
buf:=buf+#$FF#$FF#$FF#$FF;
WriteS(Msg);
SendToClientEx(Name);
end;

procedure OnTimer01(Sender:Tobject);
begin
while CurrentEnch<Enchant do
begin
case stepOfEnch of
0:
begin
SendPacket(UseItem);
inc(stepOfEnch);
end;
1:
begin
SendPacket(SelectItem);
inc(stepOfEnch);
end;
2:
begin
SendPacket(EnchantItem);
inc(stepOfEnch,-2);
end;
end;

exit;
end;
MsgSend('Поход точнулось');
Timer01.enabled:=false;
end;

procedure SendPacket(packet:string);
begin
buf:=packet;
SendToServerEx(name);
end;

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if fromclient and (connectname=name) then
begin
case pck[1] of
#$56:
begin
case Readd(2) of
13://Social action Victory
begin
recordb:=true;
MsgSend('Запись пакетов включена');
pck:='';
end;
14://Social action Advance
begin
recordb:=false;
MsgSend('Запись пакетов выключена');
pck:='';
end;
24://Social action Yes
begin
stepOfEnch:=0;
Timer01.enabled:=true;
MsgSend('Авто точение включено');
pck:='';
end;
25://Social action No
begin
stepOfEnch:=0;
Timer01.enabled:=false;
MsgSend('Авто точение выключено');
pck:='';
end;
end;
end;
#$19:
begin
if recordb then
begin
UseItem:=pck;
MsgSend('Заточка определена');
end;
end;
#$D0:
begin
if recordb then
begin
SelectItem:=pck;
MsgSend('Предмет выбран');
end;
end;
#$5F:
begin
if recordb then
begin
EnchantItem:=pck;
if (UseItem<>'') and (SelectItem<>'') then
begin
MsgSend('Готов точить');
end
end;
end;
end;
end;
if fromserver and (connectname=name) then
begin
case pck[1] of
#$87:
begin
case Readd(2) of
0:
begin
CurrentEnch:=CurrentEnch+1;
end;
3:
begin
CurrentEnch:=0;
end;
end;
end;
end;
end;
end.