diff options
| author | Nay <dnpd.dd@gmail.com> | 2013-07-13 23:07:01 +0100 | 
|---|---|---|
| committer | Nay <dnpd.dd@gmail.com> | 2013-07-13 23:07:01 +0100 | 
| commit | d6f3460796c3326d3d9aa64bc90de2b14afb0c48 (patch) | |
| tree | d2bbc9963eee6a25ae63ebe1a284490e40416938 /src/server/scripts/Commands | |
| parent | 330dd624b6f979df9bae087a7fc2e55fdc9ee360 (diff) | |
Script/Commands: Fix a crash in .arena captain command
Diffstat (limited to 'src/server/scripts/Commands')
| -rw-r--r-- | src/server/scripts/Commands/cs_arena.cpp | 26 | 
1 files changed, 14 insertions, 12 deletions
diff --git a/src/server/scripts/Commands/cs_arena.cpp b/src/server/scripts/Commands/cs_arena.cpp index b631bab0764..b6a1b27b830 100644 --- a/src/server/scripts/Commands/cs_arena.cpp +++ b/src/server/scripts/Commands/cs_arena.cpp @@ -228,9 +228,9 @@ public:          if (!handler->extractPlayerTarget(nameStr, &target, &targetGuid))              return false; -        ArenaTeam* Arena = sArenaTeamMgr->GetArenaTeamById(teamId); +        ArenaTeam* arena = sArenaTeamMgr->GetArenaTeamById(teamId); -        if (!Arena) +        if (!arena)          {              handler->PSendSysMessage(LANG_ARENA_ERROR_NOT_FOUND, teamId);              handler->SetSentErrorMessage(true); @@ -244,36 +244,38 @@ public:              return false;          } -        if (Arena->IsFighting()) +        if (arena->IsFighting())          {              handler->SendSysMessage(LANG_ARENA_ERROR_COMBAT);              handler->SetSentErrorMessage(true);              return false;          } -        if (!Arena->IsMember(targetGuid)) +        if (!arena->IsMember(targetGuid))          { -            handler->PSendSysMessage(LANG_ARENA_ERROR_NOT_MEMBER, nameStr, Arena->GetName().c_str()); +            handler->PSendSysMessage(LANG_ARENA_ERROR_NOT_MEMBER, nameStr, arena->GetName().c_str());              handler->SetSentErrorMessage(true);              return false;          } -        if (Arena->GetCaptain() == targetGuid) +        if (arena->GetCaptain() == targetGuid)          { -            handler->PSendSysMessage(LANG_ARENA_ERROR_CAPTAIN, nameStr, Arena->GetName().c_str()); +            handler->PSendSysMessage(LANG_ARENA_ERROR_CAPTAIN, nameStr, arena->GetName().c_str());              handler->SetSentErrorMessage(true);              return false;          } -        Player* oldCaptain = sObjectMgr->GetPlayerByLowGUID(Arena->GetCaptain()); -        Arena->SetCaptain(targetGuid); -        handler->PSendSysMessage(LANG_ARENA_CAPTAIN, Arena->GetName().c_str(), Arena->GetId(), oldCaptain->GetName().c_str(), target->GetName().c_str()); +        std::string oldCaptainName; +        sObjectMgr->GetPlayerNameByGUID(arena->GetCaptain(), oldCaptainName); +        arena->SetCaptain(targetGuid); + +        handler->PSendSysMessage(LANG_ARENA_CAPTAIN, arena->GetName().c_str(), arena->GetId(), oldCaptainName.c_str(), target->GetName().c_str());          if (handler->GetSession())              TC_LOG_DEBUG(LOG_FILTER_ARENAS, "GameMaster: %s [GUID: %u] promoted player: %s [GUID: %u] to leader of arena team \"%s\"[Id: %u]", -                handler->GetSession()->GetPlayer()->GetName().c_str(), handler->GetSession()->GetPlayer()->GetGUIDLow(), target->GetName().c_str(), target->GetGUIDLow(), Arena->GetName().c_str(), Arena->GetId()); +                handler->GetSession()->GetPlayer()->GetName().c_str(), handler->GetSession()->GetPlayer()->GetGUIDLow(), target->GetName().c_str(), target->GetGUIDLow(), arena->GetName().c_str(), arena->GetId());          else              TC_LOG_DEBUG(LOG_FILTER_ARENAS, "Console: promoted player: %s [GUID: %u] to leader of arena team \"%s\"[Id: %u]", -                target->GetName().c_str(), target->GetGUIDLow(), Arena->GetName().c_str(), Arena->GetId()); +                target->GetName().c_str(), target->GetGUIDLow(), arena->GetName().c_str(), arena->GetId());          return true;      }  | 
