[0012] Fix SMSG_QUERY_CREATURE_RESPONSE

Signed-off-by: Netcho <kkotlarski@abv.bg>
This commit is contained in:
Netcho 2012-08-07 22:19:00 +03:00 committed by Antz
parent 9398fc9735
commit 423aa72b2b
3 changed files with 13 additions and 8 deletions

View file

@ -141,8 +141,8 @@ void InitializeOpcodes()
//OPCODE(SMSG_QUEST_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_QUEST_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
//OPCODE(CMSG_GAMEOBJECT_QUERY, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGameObjectQueryOpcode ); //OPCODE(CMSG_GAMEOBJECT_QUERY, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGameObjectQueryOpcode );
//OPCODE(SMSG_GAMEOBJECT_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); //OPCODE(SMSG_GAMEOBJECT_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
//OPCODE(CMSG_CREATURE_QUERY, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleCreatureQueryOpcode ); OPCODE(CMSG_CREATURE_QUERY, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleCreatureQueryOpcode );
//OPCODE(SMSG_CREATURE_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_CREATURE_QUERY_RESPONSE, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
OPCODE(CMSG_WHO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleWhoOpcode ); OPCODE(CMSG_WHO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleWhoOpcode );
OPCODE(SMSG_WHO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide ); OPCODE(SMSG_WHO, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
OPCODE(CMSG_WHOIS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleWhoisOpcode ); OPCODE(CMSG_WHOIS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleWhoisOpcode );

View file

@ -135,8 +135,8 @@ enum Opcodes
SMSG_QUEST_QUERY_RESPONSE = 0x105E, SMSG_QUEST_QUERY_RESPONSE = 0x105E,
CMSG_GAMEOBJECT_QUERY = 0x105F, CMSG_GAMEOBJECT_QUERY = 0x105F,
SMSG_GAMEOBJECT_QUERY_RESPONSE = 0x1060, SMSG_GAMEOBJECT_QUERY_RESPONSE = 0x1060,
CMSG_CREATURE_QUERY = 0x1061, CMSG_CREATURE_QUERY = 0x2706, // 4.3.4 15595
SMSG_CREATURE_QUERY_RESPONSE = 0x1062, SMSG_CREATURE_QUERY_RESPONSE = 0x6024, // 4.3.4 15595
CMSG_WHO = 0x6C15, CMSG_WHO = 0x6C15,
SMSG_WHO = 0x6907, SMSG_WHO = 0x6907,
CMSG_WHOIS = 0x6B05, CMSG_WHOIS = 0x6B05,
@ -188,7 +188,7 @@ enum Opcodes
SMSG_GUILD_EVENT = 0x1093, SMSG_GUILD_EVENT = 0x1093,
SMSG_GUILD_COMMAND_RESULT = 0x1094, SMSG_GUILD_COMMAND_RESULT = 0x1094,
UMSG_UPDATE_GUILD = 0x1095, UMSG_UPDATE_GUILD = 0x1095,
CMSG_MESSAGECHAT = 0x1096, CMSG_MESSAGECHAT_SAY = 0x1154,
SMSG_MESSAGECHAT = 0x1097, SMSG_MESSAGECHAT = 0x1097,
CMSG_JOIN_CHANNEL = 0x0156, CMSG_JOIN_CHANNEL = 0x0156,
CMSG_LEAVE_CHANNEL = 0x1099, CMSG_LEAVE_CHANNEL = 0x1099,

View file

@ -157,8 +157,8 @@ void WorldSession::HandleCreatureQueryOpcode(WorldPacket& recv_data)
{ {
int loc_idx = GetSessionDbLocaleIndex(); int loc_idx = GetSessionDbLocaleIndex();
char const* name = ci->Name; std::string name = ci->Name;
char const* subName = ci->SubName; std::string subName = ci->SubName;
sObjectMgr.GetCreatureLocaleStrings(entry, loc_idx, &name, &subName); sObjectMgr.GetCreatureLocaleStrings(entry, loc_idx, &name, &subName);
DETAIL_LOG("WORLD: CMSG_CREATURE_QUERY '%s' - Entry: %u.", ci->Name, entry); DETAIL_LOG("WORLD: CMSG_CREATURE_QUERY '%s' - Entry: %u.", ci->Name, entry);
@ -166,10 +166,14 @@ void WorldSession::HandleCreatureQueryOpcode(WorldPacket& recv_data)
WorldPacket data(SMSG_CREATURE_QUERY_RESPONSE, 100); WorldPacket data(SMSG_CREATURE_QUERY_RESPONSE, 100);
data << uint32(entry); // creature entry data << uint32(entry); // creature entry
data << name; data << name;
data << uint8(0) << uint8(0) << uint8(0); // name2, name3, name4, always empty
for (uint8 i = 0; i < 7; ++i)
data << uint8(0); // name2, name3, name4, always empty
data << subName; data << subName;
data << ci->IconName; // "Directions" for guard, string for Icons 2.3.0 data << ci->IconName; // "Directions" for guard, string for Icons 2.3.0
data << uint32(ci->type_flags); // flags data << uint32(ci->type_flags); // flags
data << uint32(0); // unk
data << uint32(ci->type); // CreatureType.dbc data << uint32(ci->type); // CreatureType.dbc
data << uint32(ci->family); // CreatureFamily.dbc data << uint32(ci->family); // CreatureFamily.dbc
data << uint32(ci->rank); // Creature Rank (elite, boss, etc) data << uint32(ci->rank); // Creature Rank (elite, boss, etc)
@ -185,6 +189,7 @@ void WorldSession::HandleCreatureQueryOpcode(WorldPacket& recv_data)
for (uint32 i = 0; i < 6; ++i) for (uint32 i = 0; i < 6; ++i)
data << uint32(ci->questItems[i]); // itemId[6], quest drop data << uint32(ci->questItems[i]); // itemId[6], quest drop
data << uint32(ci->movementId); // CreatureMovementInfo.dbc data << uint32(ci->movementId); // CreatureMovementInfo.dbc
data << uint32(0); //unk
SendPacket(&data); SendPacket(&data);
DEBUG_LOG("WORLD: Sent SMSG_CREATURE_QUERY_RESPONSE"); DEBUG_LOG("WORLD: Sent SMSG_CREATURE_QUERY_RESPONSE");
} }