lQaKl ы делаю, но из-за кривизны рук и недостатка свободного времени пишеться медлено тем более делаю по аналогии других скриптов.
Добавлено спустя 11 часов 56 минут 56 секунд:
Код:
const
Name='xxx';//скилы от ПП для теста
b1='2F 3D 04 00 00 00 00 00 00 00 '; //Acumen
b2='2F 18 04 00 00 00 00 00 00 00 '; //BtS
b3='2F 15 04 00 00 00 00 00 00 00 '; //BtB
b4='2F 2C 04 00 00 00 00 00 00 00 '; //Might
b5='2F 10 04 00 00 00 00 00 00 00 '; //Shield
b6='2F 36 04 00 00 00 00 00 00 00 '; //concentration
b7='2F 35 04 00 00 00 00 00 00 00 '; //Focus
b8='2F DA 04 00 00 00 00 00 00 00 '; //DW
b9='2F D8 04 00 00 00 00 00 00 00 '; //Точночть
b10='2F B4 04 00 00 00 00 00 00 00 '; //WW
b11='2F 0C 04 00 00 00 00 00 00 00 '; // MB
b12='2F 0B 04 00 00 00 00 00 00 00 '; // Mental
b13='2F 3E 04 00 00 00 00 00 00 00 '; // Haste
b14='2F 48 05 00 00 00 00 00 00 00 '; // EP
b15='2F DB 04 00 00 00 00 00 00 00 '; // щит
var
prof,x, SkilID, SkilHIT : integer;
timer1: TTimer;
Target: string;
procedure Say(msg:string);
begin
buf:=hstr('4A 00 00 00 00');
WriteD(2);
WriteS(Name);
WriteS(msg);
SendToClientEx(Name);
end;
procedure Init; //Вызывается при включении скрипта
begin
timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer;
timer1.enabled:=true;
timer1.interval:=SkilHIT;// главная трабла или не всё так просто :( значение не присваивается динамически изначальео его
просто нет пробовал менять на 2000 там ниже вместа адреса числа
Say('НУ РАБОТАЙ!');
end;
procedure OnTimer(Sender: TObject);
begin
case x of
1: begin
buf:=hstr(b1);
sendtoserver;
x:=x+1;
end;
2: begin
buf:=hstr(b2);
sendtoserver;
x:=x+1;
end;
3: begin
buf:=hstr(b3);
sendtoserver;
x:=x+1;
end;
4: begin
buf:=hstr(b4);
sendtoserver;
x:=x+1;
end;
5: begin
buf:=hstr(b5);
sendtoserver;
x:=x+1;
end;
6: begin
buf:=hstr(b6);
sendtoserver;
x:=x+1;
end;
7: begin
buf:=hstr(b7);
sendtoserver;
x:=x+1;
end;
8: begin
buf:=hstr(b8);
sendtoserver;
x:=x+1;
end;
9: begin
buf:=hstr(b9);
sendtoserver;
x:=x+1;
end;
10: begin
buf:=hstr(b10);
sendtoserver;
x:=x+1;
end;
11: begin
buf:=hstr(b11);
sendtoserver;
x:=x+1;
end;
12: begin
buf:=hstr(b12);
sendtoserver;
x:=x+1;
end;
13: begin
buf:=hstr(b13);
sendtoserver;
x:=x+1;
end;
14: begin
buf:=hstr(b14);
sendtoserver;
x:=x+1;
end;
15: begin
buf:=hstr(b15);
sendtoserver;
x:=0;
end;
end;
end;
procedure Free; //Вызывается при выключении скрипта
begin
timer1.enabled:=false;
timer1.Free;
x:=0;
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if FromServer and (ConnectName=Name) and (pck[1]=#$48) then
begin
SkilHIT:=ReadD(18);
SkilID:= ReadD(10);
Say('Скил='+inttostr(SkilID)); // иди скрипта так для самопроверке кстате можно тестить бафы на ускорение каста и шмот
Say('Откат='+inttostr(SkilHIT)); //время каста скила
end;
if FromClient and (pck[1]+pck[2]=#$38#$31)then //1- нажимаем в любой чат окуратней я пакет не убил
begin
prof:=1
end;
if prof=1 then begin
x:=1;
prof:=0;
end;
Say('x='+inttostr(x))// так что б мониторить измение в чате
end.
ЗЫ НЕ РАБОТАЕТ в чём трабла?