mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 01:37:00 +00:00
Implement CMSG_DISMISS_CRITTER handler
This commit is contained in:
parent
c74a8b9520
commit
29bbdd40bf
4 changed files with 24 additions and 2 deletions
|
|
@ -1252,7 +1252,7 @@ void InitializeOpcodes()
|
||||||
//OPCODE(CMSG_REMOVE_GLYPH, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRemoveGlyphOpcode );
|
//OPCODE(CMSG_REMOVE_GLYPH, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRemoveGlyphOpcode );
|
||||||
//OPCODE(CMSG_DUMP_OBJECTS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
//OPCODE(CMSG_DUMP_OBJECTS, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
||||||
//OPCODE(SMSG_DUMP_OBJECTS_DATA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
//OPCODE(SMSG_DUMP_OBJECTS_DATA, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
OPCODE(CMSG_DISMISS_CRITTER, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_NULL );
|
OPCODE(CMSG_DISMISS_CRITTER, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleDismissCritter);
|
||||||
//OPCODE(SMSG_NOTIFY_DEST_LOC_SPELL_CAST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
//OPCODE(SMSG_NOTIFY_DEST_LOC_SPELL_CAST, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
OPCODE(CMSG_AUCTION_LIST_PENDING_SALES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListPendingSales );
|
OPCODE(CMSG_AUCTION_LIST_PENDING_SALES, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAuctionListPendingSales );
|
||||||
OPCODE(SMSG_AUCTION_LIST_PENDING_SALES, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
OPCODE(SMSG_AUCTION_LIST_PENDING_SALES, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_ServerSide );
|
||||||
|
|
|
||||||
|
|
@ -1236,7 +1236,7 @@ enum Opcodes
|
||||||
CMSG_REMOVE_GLYPH = 0x0000,
|
CMSG_REMOVE_GLYPH = 0x0000,
|
||||||
CMSG_DUMP_OBJECTS = 0x0000,
|
CMSG_DUMP_OBJECTS = 0x0000,
|
||||||
SMSG_DUMP_OBJECTS_DATA = 0x0000,
|
SMSG_DUMP_OBJECTS_DATA = 0x0000,
|
||||||
CMSG_DISMISS_CRITTER = 0x0000,
|
CMSG_DISMISS_CRITTER = 0x4227, // 4.3.4 15595
|
||||||
SMSG_NOTIFY_DEST_LOC_SPELL_CAST = 0x0000,
|
SMSG_NOTIFY_DEST_LOC_SPELL_CAST = 0x0000,
|
||||||
CMSG_AUCTION_LIST_PENDING_SALES = 0x2C17, // 4.3.4 15595
|
CMSG_AUCTION_LIST_PENDING_SALES = 0x2C17, // 4.3.4 15595
|
||||||
SMSG_AUCTION_LIST_PENDING_SALES = 0x6A27, // 4.3.4 15595
|
SMSG_AUCTION_LIST_PENDING_SALES = 0x6A27, // 4.3.4 15595
|
||||||
|
|
|
||||||
|
|
@ -766,6 +766,7 @@ class WorldSession
|
||||||
void HandlePetCastSpellOpcode(WorldPacket& recvPacket);
|
void HandlePetCastSpellOpcode(WorldPacket& recvPacket);
|
||||||
void HandlePetLearnTalent(WorldPacket& recvPacket);
|
void HandlePetLearnTalent(WorldPacket& recvPacket);
|
||||||
void HandleLearnPreviewTalentsPet(WorldPacket& recvPacket);
|
void HandleLearnPreviewTalentsPet(WorldPacket& recvPacket);
|
||||||
|
void HandleDismissCritter(WorldPacket& recvData);
|
||||||
|
|
||||||
void HandleSetActionBarTogglesOpcode(WorldPacket& recv_data);
|
void HandleSetActionBarTogglesOpcode(WorldPacket& recv_data);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -768,3 +768,24 @@ void WorldSession::HandleLearnPreviewTalentsPet(WorldPacket& recv_data)
|
||||||
|
|
||||||
_player->SendTalentsInfoData(true);
|
_player->SendTalentsInfoData(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WorldSession::HandleDismissCritter(WorldPacket& recvData)
|
||||||
|
{
|
||||||
|
ObjectGuid guid;
|
||||||
|
recvData >> guid;
|
||||||
|
|
||||||
|
DEBUG_LOG("WORLD: Received CMSG_DISMISS_CRITTER for %s", guid.GetString().c_str());
|
||||||
|
Unit* pet = _player->GetMap()->GetAnyTypeCreature(guid);
|
||||||
|
if (!pet)
|
||||||
|
{
|
||||||
|
DEBUG_LOG("Vanitypet %s does not exist - Player %s (guid %u, account: %u) attempted to dismiss it (possibly lagged out)",
|
||||||
|
guid.GetString().c_str(), GetPlayer()->GetName(), GetPlayer()->GetGUIDLow(), GetAccountId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_player->GetCritterGuid() == guid)
|
||||||
|
{
|
||||||
|
if (pet->GetTypeId() == TYPEID_UNIT && ((Creature*)pet)->IsTemporarySummon())
|
||||||
|
((TemporarySummon*)pet)->UnSummon();
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue