Показать сообщение отдельно
Старый 09.06.2009, 14:28   #471
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

klemberg, для лучшего отображения расшифровки пакета можно в packetsT0.ini заменить на это
Код:
53=PledgeShowMemberListAll:d(mainOrSubpledge)d(clanID)d(pledgeType)s(clanName)s(LeaderName)d(clanCrestId)d(clanLvl)d(hasCastle)d(hasHideOut)d(Rank)d(reputation)d(d)d(d)d(AllyID)s(AllyName)d(AllyCrestId)d(isAtWar)d(memberCount:For.0007)s(memberName)d(memLvl)d(memClassId:Get.ClassID)d(d)d(memObjId)d(isOnLine)d(d)
54=PledgeShowMemberListUpdate:s(playerName)d(Lvl)d(ClassId:Get.ClassID)d(d)d(objectID)d(isOnLine)d(pledgeType)d(hasSponsor)
55=PledgeShowMemberListAdd:s(Name)d(Lvl)d(ClassId:Get.ClassID)d(d)d(d)d(isOnLine)d(pledgeType)
Код:
              [Начало повторяющегося блока 1/21]
0100 s  memberName: pendurka
0118 d  memLvl: 66
0122 d  memClassId: Bounty Hunter ID:55 (0x0037)
0126 d  d: 0
0130 d  memObjId: 272074089
0134 d  isOnLine: 0
0138 d  d: 0
              [Конец повторяющегося блока  1/21]
              [Начало повторяющегося блока 2/21]
0142 s  memberName: shandaris
0162 d  memLvl: 76
0166 d  memClassId: Maestro ID:118 (0x0076)
0170 d  d: 0
0174 d  memObjId: 268629906
0178 d  isOnLine: 1
0182 d  d: 0
              [Конец повторяющегося блока  2/21]
Вот скрипт (без проверки на работоспособность) по сбору данных MemberList
delphi Код:
const   max=50; var   BaseMemberName:  array[1..max] of string;   BaseMemberList:  array[1..max, 1..2] of integer;   {   1-memLvl   2-memClassId   } procedure Init; //Вызывается при включении скрипта begin end; procedure Free; //Вызывается при выключении скрипта begin end; procedure MemberList; {Создаем базу Tип: 0x53 (PledgeShowMemberListAll) Pазмер: 981+2 Время прихода: 13:22:34:140 0002 d  mainOrSubpledge: 0 (0x00000000) 0006 d  clanID: 271334376 (0x102C3BE8) 0010 d  pledgeType: 0 (0x00000000) 0014 s  clanName: UMIX 0024 s  LeaderName: oopsarin 0042 d  clanCrestId: 272491961 (0x103DE5B9) 0046 d  clanLvl: 6 (0x00000006) 0050 d  hasCastle: 0 (0x00000000) 0054 d  hasHideOut: 61 (0x0000003D) 0058 d  Rank: 0 (0x00000000) 0062 d  reputation: 6180 (0x00001824) 0066 d  d: 0 (0x00000000) 0070 d  d: 0 (0x00000000) 0074 d  AllyID: 271334376 (0x102C3BE8) 0078 s  AllyName: UMIX 0088 d  AllyCrestId: 272490996 (0x103DE1F4) 0092 d  isAtWar: 0 (0x00000000) 0096 d  memberCount: 21 (0x00000015)               [Начало повторяющегося блока 1/21] 0100 s  memberName: pendurka 0118 d  memLvl: 66 0122 d  memClassId: Bounty Hunter ID:55 (0x0037) 0126 d  d: 0 0130 d  memObjId: 272074089 0134 d  isOnLine: 0 0138 d  d: 0               [Конец повторяющегося блока  1/21]               [Начало повторяющегося блока 2/21] 0142 s  memberName: shandaris 0162 d  memLvl: 76 0166 d  memClassId: Maestro ID:118 (0x0076) 0170 d  d: 0 0174 d  memObjId: 268629906 0178 d  isOnLine: 1 0182 d  d: 0               [Конец повторяющегося блока  2/21]               [Начало повторяющегося блока 3/21] 0186 s  memberName: evacuator 0206 d  memLvl: 80 0210 d  memClassId: Doomcryer ID:116 (0x0074) 0214 d  d: 0 0218 d  memObjId: 269309061 0222 d  isOnLine: 1 0226 d  d: 0               [Конец повторяющегося блока  3/21] } var   i, j, k: integer;   memberCount: integer; begin   j:=96; //смещение для memberCount   memberCount:=ReadD(j); //количество итемов не должно превышать max!   for i:=1 to max do   begin     if (i<=memberCount) then begin       BaseMemberName[i]:=ReadS(j);    //memberName       BaseMemberList[i,1]:=ReadD(j)//memLvl       BaseMemberList[i,2]:=ReadD(j)//memClassId       inc(j,16);     end else begin       for k:=1 to 2 do BaseMemberList[i,k]:=0; // забиваем нулями       BaseMemberName[i]:='';                  //стираем     end;   end; end; //****************************************************************************** { основная часть скрипта, вызывается при приходе каждого пакета, если скрипт включен } //****************************************************************************** begin   //****************************************************************************   //не обрабатываем пустые пакеты   if pck='' then exit;   //****************************************************************************   if FromServer then   begin     case pck[1] of       //************************************************************************       #$53: MemberList;       //пакет 0x53 (PledgeShowMemberListAll)     end;   end; end.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни



Последний раз редактировалось NLObP, 09.06.2009 в 14:47.
NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился спасибкой от: