Скрипт для мага. Тот же самый скрипт на нeвидимoсть, но с возможностью
использовать скилы.
Код:
//Invisible Mode
var
pck48:string;
hidden:boolean;
i,x,y,targetid:integer;
t2:ttimer;
procedure Init;
begin
hidden:=false;
pck48:='';
randomize;
t2:=TTimer.Create(nil);
t2.OnTimer:=@OnTimer2; //
t2.enabled:=false; //
t2.interval:=3250;
end;
procedure inshadow;
begin
if pck48='' then exit;
hidden:=true;
pck:=pck48;
i:=2;
x:=ReadD(i);
y:=ReadD(i);
x:=x+1000+round(random*200)-100;
y:=y+1000+round(random*200)-100;
buf:=pck;
WriteD(x,2);
WriteD(y,6);
SendToServer;
end;
procedure outshadow;
begin
buf:=#$30;
SendToServer;
hidden:=false;
buf:=hstr('04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00');
WriteD(targetid,2);
SendToServer;
end;
procedure Free; //Вызывается при выключении скрипта
begin
end;
procedure OnTimer(Sender: TObject);
begin
end;
procedure OnTimer2(Sender: TObject);
begin
outshadow;
t2.enabled:=false;
end;
begin
if FromServer then begin
case ord(pck[1]) of
$28:pck:=#$48;
$64: if pck[2]=#$23 then inshadow;
$12:if hidden=true then pck:=#$48;
$2A:if hidden=true then pck:=#$48;
$6d: begin t2.interval:=(readd(6)-850);
t2.enabled:=true;
end;
$06: if hidden=true then begin
buf:=hstr('12 00 00 00 00 00 00 00 00');
writed(readd(2),2);
sendtoserver;
end;
end;
end;
if FromServer then exit;
case ord(pck[1]) of
$04:targetid:=ReadD(2);
$2F:if not(pck[2]=#$7f) then begin
outshadow;
buf:=pck;
SendToServer;
inshadow;
end;
$1B:case ord(pck[2]) of
$05:outshadow;
$06:inshadow;
end;
$48:pck48:=pck;
$30:if hidden then pck:='';
end;
end.