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

кусочки из проекта:

парсер.

delphi Код:
var   D, D2, Offset, Count : Integer;   values: array [0..200] of variant; begin if fromserver  then case pck[1] of   #$21 : //(InventoryUpdate)   begin     count := round((length(pck)-3)/ReadH(2));     for d:=0 to ReadH(2)-1 do       begin       readmask('hhdddqhhhdhhdd',4+d*count,values);       InventoryUpdateItem(values[0], values[1], values[2], values[3], values[4], values[5], values[6], values[8], values[9], values[10], values[12], values[13]);       end;     end;   #$11 : //(ItemList)     begin         count := round((length(pck)-5)/ReadH(4));         ItemListBegin();           for d:=0 to ReadH(4)-1 do             begin               readmask('hdddqhhhdhhdd',6+d*count,values);               ItemListItem(values[0], values[1], values[2], values[3], values[4], values[5], values[7], values[8], values[9], values[11], values[12]);             end;     end;   #$F4://(PartySpelled)     begin       D2  := readd(6);       count := readd(10);       PartySpelledBegin(d2);       offset := 14;       for d := 0 to count - 1 do         begin           readmask('dhd', offset, values);           PartySpelledItem(d2, values[0], values[1], values[2]);         end;     end; end;

объявления обработчиков:

delphi Код:
procedure InventoryUpdateItem(UpdateType,ItemType1:Word;ObjectId, ItemId, LocationSlot : integer;Count : int64;ItemType2, IsEquipped:word;BodyPart:integer;EnchantLevel:word;AugmentId,mana :integer); {   UpdateType: 01-add, 02-modify, 03-remove } procedure ItemListBegin; //очищает список вещей procedure ItemListItem(ItemType1:Word;ObjectId, ItemId, LocationSlot : integer;Count : int64;ItemType2, IsEquipped:word; BodyPart:integer; EnchantLevel:word; AugmentId,mana :integer); Procedure PartySpelledBegin(ObjId:integer); //очищает список бафов на объекте связанным с этим обжектайди. Procedure PartySpelledItem(ObjId,SkillId:integer; SkillLevel:word; Duration:integer);
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием