From abb97bac18d4d38feacad37a3f60e79dd3b9606c Mon Sep 17 00:00:00 2001 From: Dehravor Date: Thu, 24 Apr 2014 14:34:19 +0200 Subject: Core/Handlers: Add inspect distance and target checks --- src/server/game/Handlers/ArenaTeamHandler.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/server/game/Handlers/ArenaTeamHandler.cpp') diff --git a/src/server/game/Handlers/ArenaTeamHandler.cpp b/src/server/game/Handlers/ArenaTeamHandler.cpp index f3aedeeeb48..632bd02def0 100644 --- a/src/server/game/Handlers/ArenaTeamHandler.cpp +++ b/src/server/game/Handlers/ArenaTeamHandler.cpp @@ -37,15 +37,23 @@ void WorldSession::HandleInspectArenaTeamsOpcode(WorldPacket& recvData) recvData >> guid; TC_LOG_DEBUG("network", "Inspect Arena stats (GUID: %u TypeId: %u)", GUID_LOPART(guid), GuidHigh2TypeId(GUID_HIPART(guid))); - if (Player* player = ObjectAccessor::FindPlayer(guid)) + Player* player = ObjectAccessor::FindPlayer(guid); + + if (!player) + return; + + if (!GetPlayer()->IsWithinDistInMap(player, INSPECT_DISTANCE, false)) + return; + + if (GetPlayer()->IsValidAttackTarget(player)) + return; + + for (uint8 i = 0; i < MAX_ARENA_SLOT; ++i) { - for (uint8 i = 0; i < MAX_ARENA_SLOT; ++i) + if (uint32 a_id = player->GetArenaTeamId(i)) { - if (uint32 a_id = player->GetArenaTeamId(i)) - { - if (ArenaTeam* arenaTeam = sArenaTeamMgr->GetArenaTeamById(a_id)) - arenaTeam->Inspect(this, player->GetGUID()); - } + if (ArenaTeam* arenaTeam = sArenaTeamMgr->GetArenaTeamById(a_id)) + arenaTeam->Inspect(this, player->GetGUID()); } } } -- cgit v1.2.3