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 | |
| parent | 330dd624b6f979df9bae087a7fc2e55fdc9ee360 (diff) | |
Script/Commands: Fix a crash in .arena captain command
Diffstat (limited to 'src/server/scripts')
| -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; } |
