delphi Код:
const
Name='Glav';
Name1='1';
Name2='2';
Name3='3';
Name4='4';
Name5='EVS';
var
NamesArray:array [1..20] of string;
panelki:array [1..20] of string;
i:integer;
nashel,nashel1:boolean;
msgg:string;
procedure Init; //Вызывается при включении скрипта
begin
NamesArray[1]:=Name;
NamesArray[2]:=Name1;
NamesArray[3]:=Name2;
NamesArray[4]:=Name3;
NamesArray[5]:=Name4;
NamesArray[6]:=Name5;
nashel:=false;
nashel1:=false;
end;
procedure Free; //Вызывается при выключении скрипта
begin
end;
procedure Say(msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(3);
WriteS('1');
WriteS(msg);
SendToClient;
end;
procedure scanpanelki;
begin
say('начался скан');
for i:=1 to 20 do
if (ConnectName=NamesArray[i]) then
begin
panelki[i]:=pck;
nashel:=true;
say('сосканил панельку у '+ConnectName+'.');
break;
end;
if (i=20) and (nashel=false) then
begin
say('не нашел имя');
break;
end;
end;
//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
begin
if FromServer and (pck[1]=#$45) then
begin
scanpanelki;
end;
end;
begin
if FromClient and (pck[1]=#$49) then
begin
msgg:=ReadS(2);
for i:=1 to 20 do
if (NamesArray[i]=msgg) then
begin
pck:='';
say('я сделаю вам панельку ' + NamesArray[i]+'.');
buf:=panelki[i];
SendToClient;
nashel1:=true;
break;
end;
if (i=20) and (nashel1=true) then
begin
say('че-то хз.');
end;
end;
end;
end.
Добавлено через 1 минуту
PS обрезает пакет и прилывает всего 2 байта, причем второй байт тоже битый