[7720] Fixed crash at .character level use from console. Include GM name in message for command target if report need.

This commit is contained in:
VladimirMangos 2009-04-26 23:28:16 +04:00
parent b62c142425
commit b9853cb958
5 changed files with 26 additions and 13 deletions

View file

@ -3904,12 +3904,15 @@ void ChatHandler::HandleCharacterLevel(Player* player, uint64 player_guid, uint3
player->InitTalentForLevel();
player->SetUInt32Value(PLAYER_XP,0);
if(oldlevel == newlevel)
ChatHandler(player).SendSysMessage(LANG_YOURS_LEVEL_PROGRESS_RESET);
else if(oldlevel < newlevel)
ChatHandler(player).PSendSysMessage(LANG_YOURS_LEVEL_UP,newlevel-oldlevel);
else // if(oldlevel > newlevel)
ChatHandler(player).PSendSysMessage(LANG_YOURS_LEVEL_DOWN,newlevel-oldlevel);
if(needReportToTarget(player))
{
if(oldlevel == newlevel)
ChatHandler(player).PSendSysMessage(LANG_YOURS_LEVEL_PROGRESS_RESET,GetNameLink().c_str());
else if(oldlevel < newlevel)
ChatHandler(player).PSendSysMessage(LANG_YOURS_LEVEL_UP,GetNameLink().c_str(),newlevel);
else // if(oldlevel > newlevel)
ChatHandler(player).PSendSysMessage(LANG_YOURS_LEVEL_DOWN,GetNameLink().c_str(),newlevel);
}
}
else
{
@ -4002,7 +4005,7 @@ bool ChatHandler::HandleCharacterLevelCommand(const char* args)
HandleCharacterLevel(chr,chr_guid,oldlevel,newlevel);
if(m_session->GetPlayer() != chr) // including player==NULL
if(m_session && m_session->GetPlayer() != chr) // including player==NULL
{
std::string nameLink = playerLink(name);
PSendSysMessage(LANG_YOU_CHANGE_LVL,nameLink.c_str(),newlevel);
@ -4087,11 +4090,12 @@ bool ChatHandler::HandleLevelUpCommand(const char* args)
HandleCharacterLevel(chr,chr_guid,oldlevel,newlevel);
if(m_session->GetPlayer() != chr) // including chr==NULL
if(m_session && m_session->GetPlayer() != chr) // including chr==NULL
{
std::string nameLink = playerLink(name);
PSendSysMessage(LANG_YOU_CHANGE_LVL,nameLink.c_str(),newlevel);
}
return true;
}