[10563] Implement CMSG_PET_STOP_ATTACK.

Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
zergtmn 2010-09-30 21:02:03 +04:00 committed by VladimirMangos
parent 98f36e4652
commit f9fcf5e055
4 changed files with 29 additions and 2 deletions

View file

@ -772,7 +772,7 @@ OpcodeHandler opcodeTable[NUM_MSG_TYPES] =
/*0x2E7*/ { "CMSG_WARDEN_DATA", STATUS_LOGGEDIN, &WorldSession::HandleWardenDataOpcode }, /*0x2E7*/ { "CMSG_WARDEN_DATA", STATUS_LOGGEDIN, &WorldSession::HandleWardenDataOpcode },
/*0x2E8*/ { "SMSG_GROUP_JOINED_BATTLEGROUND", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2E8*/ { "SMSG_GROUP_JOINED_BATTLEGROUND", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2E9*/ { "MSG_BATTLEGROUND_PLAYER_POSITIONS", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundPlayerPositionsOpcode}, /*0x2E9*/ { "MSG_BATTLEGROUND_PLAYER_POSITIONS", STATUS_LOGGEDIN, &WorldSession::HandleBattleGroundPlayerPositionsOpcode},
/*0x2EA*/ { "CMSG_PET_STOP_ATTACK", STATUS_UNHANDLED,&WorldSession::Handle_NULL }, /*0x2EA*/ { "CMSG_PET_STOP_ATTACK", STATUS_LOGGEDIN, &WorldSession::HandlePetStopAttack },
/*0x2EB*/ { "SMSG_BINDER_CONFIRM", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2EB*/ { "SMSG_BINDER_CONFIRM", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2EC*/ { "SMSG_BATTLEGROUND_PLAYER_JOINED", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2EC*/ { "SMSG_BATTLEGROUND_PLAYER_JOINED", STATUS_NEVER, &WorldSession::Handle_ServerSide },
/*0x2ED*/ { "SMSG_BATTLEGROUND_PLAYER_LEFT", STATUS_NEVER, &WorldSession::Handle_ServerSide }, /*0x2ED*/ { "SMSG_BATTLEGROUND_PLAYER_LEFT", STATUS_NEVER, &WorldSession::Handle_ServerSide },

View file

@ -272,6 +272,32 @@ void WorldSession::HandlePetAction( WorldPacket & recv_data )
} }
} }
void WorldSession::HandlePetStopAttack(WorldPacket& recv_data)
{
DEBUG_LOG("WORLD: Received CMSG_PET_STOP_ATTACK");
ObjectGuid petGuid;
recv_data >> petGuid;
Unit* pet = GetPlayer()->GetMap()->GetUnit(petGuid); // pet or controlled creature/player
if (!pet)
{
sLog.outError("%s doesn't exist.", petGuid.GetString().c_str());
return;
}
if (GetPlayer()->GetGUID() != pet->GetCharmerOrOwnerGUID())
{
sLog.outError("HandlePetStopAttack: %s isn't charm/pet of %s.", petGuid.GetString().c_str(), GetPlayer()->GetObjectGuid().GetString().c_str());
return;
}
if (!pet->isAlive())
return;
pet->AttackStop();
}
void WorldSession::HandlePetNameQueryOpcode( WorldPacket & recv_data ) void WorldSession::HandlePetNameQueryOpcode( WorldPacket & recv_data )
{ {
DETAIL_LOG( "HandlePetNameQuery. CMSG_PET_NAME_QUERY" ); DETAIL_LOG( "HandlePetNameQuery. CMSG_PET_NAME_QUERY" );

View file

@ -642,6 +642,7 @@ class MANGOS_DLL_SPEC WorldSession
//Pet //Pet
void HandlePetAction( WorldPacket & recv_data ); void HandlePetAction( WorldPacket & recv_data );
void HandlePetStopAttack(WorldPacket& recv_data);
void HandlePetNameQueryOpcode( WorldPacket & recv_data ); void HandlePetNameQueryOpcode( WorldPacket & recv_data );
void HandlePetSetAction( WorldPacket & recv_data ); void HandlePetSetAction( WorldPacket & recv_data );
void HandlePetAbandon( WorldPacket & recv_data ); void HandlePetAbandon( WorldPacket & recv_data );

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "10562" #define REVISION_NR "10563"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__