имеется скрипт он должен отключать клиент от сервера. по непонятной причине отключает только одно соединение(из чего делаю вывод что скрипт функционирует),а все последующие отключатся отказываются, и клиент находится в игре. поиск ничего толкового не дал может быть плохо ищу.
l2ph v.3.5.33.164
сервер локальная фришка Gracia Epilogue какая либо защита или кодировка отсутсвует.
Delphi Код:
const
n = 100;
fs_netping = #$D9;
fc_EnterWorld = #$11;
fc_logout = #$00;
fc_netping = #$B1;
var
NetPing: string;
LogOutOk: array of boolean;
playid : array of integer;
i,cnt:integer;
procedure init;
begin
cnt:=0;
NoCloseFrameAfterDisconnect;
NoCloseClientAfterServerDisconnect;
NoCloseServerAfterClientDisconnect;
end;
procedure onfromserver;
begin
case pck[1] of
fs_netping: begin
for i:=0 to cnt do
if (playid[i]=connectid) and (LogOutOk[i]) then begin
buf:=NetPing;
SendToServerEx(connectname);
end;
end;
end;
end;
procedure onfromclient;
begin
case pck[1] of
fc_logout: begin
pck:='';
buf:=#$20;
SendToClientEx(connectname);
for i:=0 to cnt do
if (playid[i]=connectid) then begin
LogOutOk[i]:=true;
end;
end;
fc_netping: begin
NetPing:=pck;
pck:='';
end;
fc_enterworld: begin
playid[cnt]:=connectid;
logoutok[cnt]:=false;
inc(cnt);
if cnt >= 101 then cnt := 0;
end;
end;
end;
begin
if fromServer then
onfromserver
else
onfromclient;
end.
прошу помочь.
P.S.: для тех кто не понял суть скрита чтобы отключить более 2 клиентов(соединений).