Показать сообщение отдельно
Старый 01.10.2011, 08:06   #31
Пользователь
 
Регистрация: 01.08.2010
Сообщений: 82
Сказал Спасибо: 49
Имеет 5 спасибок в 4 сообщенях
semiromid пока неопределено
По умолчанию

Код:
const
 Name1='AntBuf'; 
var  
    mana1,mana2,mana3,info1,info2,info3,X1,y1,z1: integer;    
    Paname,mana: String;
    timer:TTimer;
    TimerStep:byte;
procedure Init; 
begin
    TimerStep:=1;
    timer:=TTimer.Create(nil);
    timer.OnTimer:=@OnTimer;
    timer.enabled:=false;
    timer.interval:=1000; //время задержки между отправкой пакетов.
end;

procedure Free;
begin
    timer.free;
end;

procedure OnTimer;
    begin
        case TimerStep of
        
        //////////////Таймер пока не используетсья в тест скрипте
            1: 
                begin  
                    timer.interval:=1000;          
                    buf:=Hstr('');
                    SendToServerEx(name1);
                    Inc(TimerStep);
                end;        
        
            2:                                      
                begin
                    timer.interval:=1000;         
                    buf:=Hstr('');
                    SendToServerEx(name1);
                    Inc(TimerStep);
                end;
            3: 
                begin 
                    timer.interval:=2000;
                    buf := HStr('');
                    SendToServerEx(name1);
                    Inc(TimerStep);               
                end;             
                
        end;
    end;


   
 begin  
   
 /////////////////////////////////////////Блок проверки количество сопартийцев PartySmallWindowAll


if FromServer and (pck[1] = #$4E) and (ConnectName=Name1) then   begin        //Пакет о информации о пати 
                
                mana1:= ReadD(14); //ОверОК
                mana2:= ReadD(88);
                mana3:= ReadD(166); 
if (ReadD(10)=3)  then         //Сколко человек в пати   
            buf:=Hstr('49 31 04 4B 04 3B 04 3E 04 20 00 32 00 2D 00 30 04 20 00 47 04 35 04 3B 04 3E 04 32 04 35 04 30 04 20 00 32 04 20 00 3F 04 30 04 42 04 38 04 20 00 20 00 2C 00 20 00 42 04 35 04 3F 04 35 04 40 04 4C 04 20 00 33 00 2D 00 38 04 20 00 3D 00 29 00 00 00 03 00 00 00');                                                            
            SendToServer;      

 end;

 
/////////////////////////////////////////////перехватываем пакет ЧарИнфо для каждого сопартийца отдельный   
    if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then   begin              
 if    ReadD(18) = mana1  then        //Пакет от номера 1 СверяемПакет чар инфо с ObjectID от пакета  PartySmallWindowAll  
       buf:=hstr('49 4F 04 20 00 10 04 3D 04 42 04 11 04 30 04 44 04 00 00 03 00 00 00');                                                
       SendToServer;                              
     end;  
  

     if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then   begin       
  if   ReadD(18) = mana2  then      //Пакет от номера 2 СверяемПакет чар инфо с ObjectID от пакета  PartySmallWindowAll       
       buf:=hstr('49 2F 04 20 00 21 04 4D 04 34 04 40 04 38 04 3A 04 00 00 03 00 00 00');            
       SendToServer;                      
     end; 
  
     if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then   begin             
  if   ReadD(18) = mana3  then         //Пакет от номера 3 СверяемПакет чар инфо с ObjectID от пакета  PartySmallWindowAll    
       buf:=hstr('49 2F 04 20 00 1D 04 4D 04 3B 04 4F 04 00 00 03 00 00 00');                                                  
       SendToServer;                              
    end;   
end.
Странно как то пакеты отсылаються ..Вот в таком порядке

Пакет от номера 1 -- сразу 3-и шт
Пакет от номера 2 -- сразу 2-е шт
Пакет от номера 3 -- 1-а шт

Подскажите в чем косяк?



Странно я если добовляю сюда условие else , то пакеты идут по порядку .. 1.2.3 Тойсть как и должны идти .Но хочеться узнать саму суть .


Код:
/////////////////////////////////////////////перехватываем пакет ЧарИнфо для каждого сопартийца отдельный   
    if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then   begin 
              
 if    ReadD(18) = mana1  then        //Пакет от номера 1 СверяемПакет чат инфо с ObjectID от пакета  PartySmallWindowAll  
       buf:=hstr('49 4F 04 20 00 10 04 3D 04 42 04 11 04 30 04 44 04 00 00 03 00 00 00')
       else
       buf:=hstr('');                                         
       SendToServer;                              
     end;  
  

     if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then   begin 
       
  if   ReadD(18) = mana2  then      //Пакет от номера 2 СверяемПакет чат инфо с ObjectID от пакета  PartySmallWindowAll       
       buf:=hstr('49 2F 04 20 00 21 04 4D 04 34 04 40 04 38 04 3A 04 00 00 03 00 00 00')
       else
       buf:=hstr('');           
       SendToServer;                      
     end; 
  
     if FromServer and (pck[1] = #$31) and (ConnectName=Name1) then   begin 
             
  if   ReadD(18) = mana3  then         //Пакет от номера 3 СверяемПакет чат инфо с ObjectID от пакета  PartySmallWindowAll    
       buf:=hstr('49 2F 04 20 00 1D 04 4D 04 3B 04 4F 04 00 00 03 00 00 00') 
       else
       buf:=hstr('');                                                 
       SendToServer;                              
    end;

Последний раз редактировалось semiromid, 01.10.2011 в 08:19.
semiromid вне форума   Ответить с цитированием