Показать сообщение отдельно
Старый 10.07.2010, 19:55   #26
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

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.
__________________
L2Ext - project closed.

Последний раз редактировалось alexteam, 10.07.2010 в 23:06.
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился спасибкой от: