Скрипт ищет админа под invisible, запускать только перед входом в игру!!!,
иначе скрипт будет все передвижения считать неизвестными.
При моей личной проверке С4 PTS сервера, я бегал под админкой в Invisible и заметил что когда админ уходит в инвиз, клиентам тупо неприходит пакет чар инфо но пакеты мув то локатион от админа приходят.
Скрипт ищет неизвестные перемещения обьектов не обьявленных пакетом чар инфо.
Код
//Автор ATMS_DIFKS
var
m1: TMemo;
frm:TForm;
ListID:array[0..2500] of integer;
i,id,fr,fr2,mvid,x,y,z,n,uid,mid,stat,id2,ids,stat2,idd,i3,i2:integer;
name,n2:string;
procedure Init; //Вызывается при включении скрипта
begin
name:='****'; //ник перса
frm := TForm.Create(nil);
frm.Caption := '1';
frm.BorderStyle := bsSizeable;
frm.Position := poDesigned ;
frm.Width:=400;
frm.Height:=600;
m1:=TMemo.Create(frm);
m1.parent:=frm;
m1.align:=alClient;
m1.ReadOnly:=true;
m1.ScrollBars:=ssBoth;
end;
procedure SendMsc(msc:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(2); //тип сообщения 1 шаут 2 приват 10 аноним обьявление и тд
WriteS('Внимание'); //ник от кого
WriteS(msc);
SendToClientEX(name);
end;
procedure radar;
begin
buf:=#$EB;
WriteD(0);
WriteD(1); //тип радара
WriteD(X);//X
WriteD(Y); //Y
WriteD(Z); //Z
SendToClientEX(name);
end;
procedure Free; //Вызывается при выключении скрипта
begin
m1.free;
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if FromServer and (pck[1]=#$04) and (ConnectName=name) then
begin
n2:=ReadS(22);
if n2 = name then
begin
mid:=ReadD(18);
end;
end;
if FromServer and (pck[1]=#$03) and (ConnectName=name) then
begin
stat:=0; ids := ReadD(18);
for i2:=1 to 2500 do
begin
if ListID[i2] = ids then stat := 1;
end;
if stat = 0 then
begin
i:=i+1;
ListID[i] := ids;
if i >= 2500 then i:=0;
end;
end;
if FromServer and (pck[1]=#$16) and (ConnectName=name) then
begin
stat2:=0; idd := ReadD(2);
for i3:=1 to 2500 do
begin
if ListID[i3] = idd then stat2 := 1;
end;
if stat2 = 0 then
begin
i:=i+1;
ListID[i] := idd;
if i >= 2500 then i:=0;
end;
end;
if FromServer and (pck[1]=#$01) and (ConnectName=name) then
begin
mvid:=ReadD(2);
x:=ReadD(18);
y:=ReadD(22);
z:=ReadD(26);
n:=0;
for fr2 := 1 to 2500 do
begin
if ListID[fr2] = mvid then n:=1;
end;
if mid = mvid then n:=1;
if n = 0 then
begin
SendMsc('Обнаружены перемещения неизвестного обьекта.');
m1.lines.SaveToFile('C:\relog');//для автоматизации кликера ищи на форуме
radar;
end;
end;
end.