Показать сообщение отдельно
Старый 12.09.2010, 01:58   #2
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Цитата:
Сообщение от Fmut Посмотреть сообщение
Код:
01 00 00 00  - count ?

F3 35 1C F8 - timestamp
F3 35 1C F8 - timestamp 
50 02 00 00 - opcode (SMSG_SPELLNONMELEEDAMAGELOG)

----------------- далее блок аналогичный SMSG_SPELLNONMELEEDAMAGELOG
XX XX E7 F6 02 07
XX XX 06 F6 02 07
85 00 00 00 
13 00 00 00 
00 00 00 00 
04 
00 00 00 00 
00 00 00 00 
00 
00 
00 00 00 00 
05 00 00 00 
00
-------------------
Код:
signed int __cdecl Packet_SMSG_COMBAT_LOG_MULTIPLE(int a1, int a2, int a3, int a4)
{
  int v4; // edi@1
  int v5; // edi@4
  unsigned __int8 v6; // sf@17
  unsigned __int8 v7; // of@17
  int opcode; // [sp+8h] [bp-14h]@4
  int count; // [sp+Ch] [bp-10h]@1
  int v11; // [sp+10h] [bp-Ch]@1
  int time2; // [sp+14h] [bp-8h]@4
  int time1; // [sp+18h] [bp-4h]@1

  CDataStore__GetInt32(a4, (int)&count);
  v4 = 0;
  time1 = 0;
  CDataStore__GetInt32(a4, (int)&time1);
  v11 = 0;
  if ( count > 0 )
  {
      while ( 1 )
      {
          time2 = v4;
          CDataStore__GetInt32(a4, (int)&time2);
          v5 = time1 - time2;
          CDataStore__GetInt32(a4, (int)&opcode);
          if ( opcode > SMSG_SPELLLOGMISS )
          {
              switch ( opcode )
              {
                  case SMSG_PERIODICAURALOG:
                      CombatLog__HandlePeriodicAuraLog(a4, v5);
                      break;
                  case SMSG_SPELLNONMELEEDAMAGELOG:
                      CombatLog__HandleSpellNonMeleeDamageLog(a4, v5);
                      break;
                  case SMSG_SPELLLOGEXECUTE:
                      CombatLog__HandleSpellLogExecute(a4, v5);
                      break;
                  case SMSG_SPELLDISPELLOG:
                  case SMSG_SPELLSTEALLOG:
                      goto LABEL_16;
                  default:
                      break;
              }
          }
          else
          {
              switch ( opcode )
              {
                  case SMSG_SPELLLOGMISS:
                      CombatLog__HandleSpellLogMiss(a4, v5);
                      break;
                  case SMSG_SPELLBREAKLOG:
LABEL_16:
                      CombatLog__HandleSpellRemoveLog(opcode, a4, v5);
                      break;
                  case SMSG_SPELLHEALLOG:
                      CombatLog__HandleSpellHealLog(a4, v5);
                      break;
                  case SMSG_SPELLENERGIZELOG:
                      CombatLog__HandleSpellLogEnergizeLog(a4, v5);
                      break;
              }
          }
          v7 = __SETO__(v11 + 1, count);
          v6 = v11++ + 1 - count < 0;
          if ( !(v6 ^ v7) )
              break;
          v4 = 0;
      }
  }
  return 1;
}

Последний раз редактировалось TOM_RUS; 12.09.2010 в 02:11.
TOM_RUS вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Fmut (12.09.2010)