delphi Код:
var
NamesArray : array of string;
panelki : array of string;
procedure Init; //Вызывается при включении скрипта
begin
setlength(NamesArray, 6);
setlength(panelki, 6);
NamesArray[0]:='Glav';
NamesArray[1]:='1';
NamesArray[2]:='2';
NamesArray[3]:='3';
NamesArray[4]:='4';
NamesArray[5]:='EVS';
ClearPackets;
end;
procedure Free; //Вызывается при выключении скрипта
begin
end;
procedure Say(msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(3);
WriteS('1');
WriteS(msg);
SendToClient;
end;
procedure ClearPackets; //чистим масив с пакетами
var
i : integer;
begin
for i := 0 to length(NamesArray) - 1 do panelki[i] := '';
end;
Function GetArrayIndexByName(name:string):integer; //а это я уже выкладывал.. правда щас модифицировал малех.
begin
result := 0;
while (result < length(NamesArray)) and (lowercase(name) <> lowercase(NamesArray[result])) do inc(result);
if result = length(NamesArray) then result := -1;
end;
procedure scanpanelki; //ну и имя у функции
var
ind,i : integer;
b : byte;
begin
ind := GetArrayIndexByName(ConnectName);
if ind >= 0 then
begin
panelki[ind] := '';
i := 1;
while i <= length(pck) do //дети, тут я учу плохому, не стоит так делать )
begin
B := ReadC(i);
if b = 0 then
panelki[ind] := panelki[ind] + '00'
else
panelki[ind] := panelki[ind] + strtohex(chr(b));
end;
say('сосканил панельку у '+ConnectName+'. '+panelki[ind]);
end
else
say('не нашел имя');
end;
procedure ActPanelki; //и у моей тоже
var
msgg : string;
ind : integer;
begin
msgg := ReadS(2); //читаем чтота
ind := GetArrayIndexByName(ConnectName); //получаем по этому чемуто индекс в массиве
if ind >= 0 then //если имя существовало в масиве
if panelki[ind] <> '' then //и пакет был запомнен ранее
begin
//то делаем хз чо
pck := '';
say('я сделаю вам панельку ' + NamesArray[ind]+'.');
buf := hstr(panelki[ind]);
SendToClient;
end
else
say('Не был запомнен пакет для : ' + msgg) //если пакет не бул запомнен
else
say('Не нашел имя: ' + msgg); //либо отсутствует имя в массиве с именами
end;
begin
if pck = '' then exit; //при юзаньи старой версии пх эта строчка в большинстве случаях обязательна.
if FromServer and (pck[1]=#$45) then scanpanelki;
if FromClient and (pck[1]=#$49) then actpanelki;
end.