diff options
author | megamage <none@none> | 2008-12-01 17:36:11 -0600 |
---|---|---|
committer | megamage <none@none> | 2008-12-01 17:36:11 -0600 |
commit | 920dae4f7fbc0852035da5f12c42e24d70e45786 (patch) | |
tree | 55265fff9454ad494fdaa58aa992eb98ebc3fd37 /src/game/ArenaTeamHandler.cpp | |
parent | 28e1aec6df5ce68d9878794cd57f515261b1b782 (diff) |
*Fix the bug about arena personal rating.
*Update to Mangos 6870. Source: Mangos. Main change: add a function SaveDataFieldToDB().
--HG--
branch : trunk
Diffstat (limited to 'src/game/ArenaTeamHandler.cpp')
-rw-r--r-- | src/game/ArenaTeamHandler.cpp | 52 |
1 files changed, 18 insertions, 34 deletions
diff --git a/src/game/ArenaTeamHandler.cpp b/src/game/ArenaTeamHandler.cpp index b5f8e69c918..1ce844c4a26 100644 --- a/src/game/ArenaTeamHandler.cpp +++ b/src/game/ArenaTeamHandler.cpp @@ -291,39 +291,29 @@ void WorldSession::HandleArenaTeamRemoveFromTeamOpcode(WorldPacket & recv_data) recv_data >> name; ArenaTeam *at = objmgr.GetArenaTeamById(ArenaTeamId); - if(!at) - { - // arena team not found + if(!at) // arena team not found return; - } - uint64 guid = objmgr.GetPlayerGUIDByName(name); - if(!guid) + if(at->GetCaptain() != _player->GetGUID()) { - // player guid not found + SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", "", ERR_ARENA_TEAM_PERMISSIONS); return; } - if(at->GetCaptain() == guid) - { - // unsure - SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", "", ERR_ARENA_TEAM_PERMISSIONS); + if(!normalizePlayerName(name)) return; - } - if(at->GetCaptain() != _player->GetGUID()) - { - SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", "", ERR_ARENA_TEAM_PERMISSIONS); + ArenaTeamMember* member = at->GetMember(name); + if(!member) // member not found return; - } - if(at->GetCaptain() == guid) + if(at->GetCaptain() == member->guid) { SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", "", ERR_ARENA_TEAM_LEADER_LEAVE_S); return; } - at->DelMember(guid); + at->DelMember(member->guid); // event WorldPacket data; @@ -345,32 +335,26 @@ void WorldSession::HandleArenaTeamPromoteToCaptainOpcode(WorldPacket & recv_data recv_data >> name; ArenaTeam *at = objmgr.GetArenaTeamById(ArenaTeamId); - if(!at) - { - // arena team not found + if(!at) // arena team not found return; - } - uint64 guid = objmgr.GetPlayerGUIDByName(name); - if(!guid) + if(at->GetCaptain() != _player->GetGUID()) { - // player guid not found + SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", "", ERR_ARENA_TEAM_PERMISSIONS); return; } - if(at->GetCaptain() == guid) - { - // target player already captain + if(!normalizePlayerName(name)) return; - } - if(at->GetCaptain() != _player->GetGUID()) - { - SendArenaTeamCommandResult(ERR_ARENA_TEAM_CREATE_S, "", "", ERR_ARENA_TEAM_PERMISSIONS); + ArenaTeamMember* member = at->GetMember(name); + if(!member) // member not found + return; + + if(at->GetCaptain() == member->guid) // target player already captain return; - } - at->SetCaptain(guid); + at->SetCaptain(member->guid); // event WorldPacket data; |