Показать сообщение отдельно
Старый 17.02.2010, 23:36   #10
Новичок
 
Аватар для spiritofsands
 
Регистрация: 04.10.2009
Сообщений: 27
Сказал Спасибо: 14
Имеет 12 спасибок в 10 сообщенях
spiritofsands пока неопределено
По умолчанию Status update проблема

Сам пакет:
пример1
Код:
 18 EE 42 A9 10 04 00 00 00 09 00 00 00 43 05 00 00 0B 00 00 00 DC 04 00 00 21 00 00 00 A2 02 00 00 22 00 00 00 A2 02 00 00
пример2
Код:
 18 EE 42 A9 10 01 00 00 00 0B 00 00 00 DC 04 00 00
Код:
Var
i,p,mid,currentmainhp,currentmainmp,currentmaincp,maxmaincp : integer;
begin
   case pck[1] of
    #$18:    //status update
    begin
    i:=2;
    if readd(i)=mid then
     begin
     p:=1;
     while p <= (readd(i)*2) do
      begin
       case readd(i) of
       9: currentmainhp:=readd(i);
       11: currentmainmp:=readd(i);
       33: 
        begin
        sendmsg('test1');
        currentmaincp:=readd(i);
        end;
       34:
        begin
        sendmsg('test2');
        maxmaincp:=readd(i);
        end;
       end;
      p:=p+1;
      end;
     end;
    end;
   end;
end.
Скрипт не считівает никакое цп. Даже сообщения в лог тест1 и тест2 не пишутся. В чем я ошибся?

<это часть скрипта, отвечающая за обновление инфы>

Добавлено через 23 минуты
Проблему решил сам. Что было не так - хз, но вот рабочий вариант:
Код:
Var
i,p,mid,currentmainhp,currentmainmp,currentmaincp,maxmaincp : integer;
begin
   case pck[1] of
    #$18:    //status update
    begin
    i:=2;
    mid:=readd(i);
    if mid=mid then
     begin
     for p:=1 to (readd(i)*2) do
      begin
       case readd(i) of
       9:
        begin
        sendmsg('currentmainhp='+inttostr(currentmainhp));
        currentmainhp:=readd(i);
        end;
       11:
        begin
        sendmsg('currentmainmp='+inttostr(currentmainmp));
        currentmainmp:=readd(i);
        end;
       33: 
        begin
        sendmsg('currentmaincp='+inttostr(currentmaincp));
        currentmaincp:=readd(i);
        end;
       34:
        begin
        sendmsg('maxmaincp='+inttostr(maxmaincp));
        maxmaincp:=readd(i);
        end;
       end;
      end;
     end;
    end;
   end;
end.

Последний раз редактировалось spiritofsands, 17.02.2010 в 23:36. Причина: Добавлено сообщение
spiritofsands вне форума   Ответить с цитированием