Показать сообщение отдельно
Старый 20.05.2008, 00:19   #2
Пользователь
 
Регистрация: 10.12.2007
Сообщений: 52
Сказал Спасибо: 22
Имеет 16 спасибок в 9 сообщенях
ChiterEPT
По умолчанию

Обрати внимание на последнее If в твоем скрипте оно выполняется при каждом приходящем пакете.. так что х:=1 при каждом приходящем пакете... поэтому выполняется первый цикл постоянно . Попробуй последнее условие засунуть в обработку пакета #$27 или ввести дополнительную переменную лучше Boolean. Например так:

Добавлено через 3 минуты
delphi Код:
const name='name'//nick msg1='04 31 19 10 48 C1 C1 01 00 9D 47 FD FF 76 FC FF FF 00'; //пакеты закупки адены msg2='21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 36 00 32 00 37 00 00 00'; msg3='A7 73 02 00 00 01 00 00 00 01 00 00 00'; var d,i,k,l,x: integer; f :TStringList; m,t :String; timer: TTimer; Zanyat: Boolean; procedure by(Sender: TObject)//сама процедура покупки адены begin   case x of      1: begin              buf:=hstr(msg1);              SendToServerEx(name);              x:=x+1;         end;      2: begin              buf:=hstr(msg1);              SendToServerEx(name);              x:=x+1;         end;      3: begin              buf:=hstr(msg2);              SendToServerEx(name);              x:=x+1;         end;      4: begin              buf:=hstr(msg3);              SendToServerEx(name);              x:=x+1;              Zanyat:=false;              timer.enabled:=false;         end;     end; end; procedure Init; //вызывается при включении begin      timer:=TTimer.Create(nil);      timer.OnTimer:=@by;      timer.enabled:=false;      timer.interval:=600;      x:=0;     Zanyat:=false; end; begin       if FromServer and (ConnectName=name)and (pck[1]=#$27)and (pck[12]=#$39)then       begin            i:=12;            k:=ReadD(i);    //item ID            l:=ReadD(i);    //количество адены            //=IntToStr(l);            //=IntToStr(k);            //=TStringList.Create();            //Add(t+': '+m);            //SaveToFile('c:\adena.txt');            //Free;       end;       if (l<100000000) and (Zanyat=false) then          begin               timer.enabled:=true;               x:=1;               Zanyat:=true;          end; end.

Последний раз редактировалось ChiterEPT, 20.05.2008 в 01:01. Причина: Добавлено сообщение
ChiterEPT вне форума   Ответить с цитированием
За это сообщение ChiterEPT нажился 3 спасибками от: