[7252] Move all world global broadcast string (all arena/bg related) to mangos_string.

PLEASE, NOT USE string world broadcasts in real code. This function _only_ for debug purposes.

    Really allow with .debug bg start bg with 1 player.
    Added helps for some existed .debug commands.

Author: VladimirMangos

--HG--
branch : trunk
This commit is contained in:
megamage
2009-02-10 00:59:10 -06:00
parent 7f39dbd848
commit fe85f52142
8 changed files with 125 additions and 64 deletions

View File

@@ -767,10 +767,23 @@ bool ChatHandler::HandleNamegoCommand(const char* args)
if(pMap->IsBattleGroundOrArena())
{
// cannot summon to bg
PSendSysMessage(LANG_CANNOT_SUMMON_TO_BG,nameLink.c_str());
SetSentErrorMessage(true);
return false;
// only allow if gm mode is on
if (!chr->isGameMaster())
{
PSendSysMessage(LANG_CANNOT_GO_TO_BG_GM,chr->GetName());
SetSentErrorMessage(true);
return false;
}
// if both players are in different bgs
else if (chr->GetBattleGroundId() && m_session->GetPlayer()->GetBattleGroundId() != chr->GetBattleGroundId())
{
PSendSysMessage(LANG_CANNOT_GO_TO_BG_FROM_BG,chr->GetName());
SetSentErrorMessage(true);
return false;
}
// all's well, set bg id
// when porting out from the bg, it will be reset to 0
chr->SetBattleGroundId(m_session->GetPlayer()->GetBattleGroundId());
}
else if(pMap->IsDungeon())
{
@@ -877,8 +890,8 @@ bool ChatHandler::HandleGonameCommand(const char* args)
SetSentErrorMessage(true);
return false;
}
// if already in a bg, don't let port to other
else if (_player->GetBattleGroundId())
// if both players are in different bgs
else if (_player->GetBattleGroundId() && _player->GetBattleGroundId() != chr->GetBattleGroundId())
{
PSendSysMessage(LANG_CANNOT_GO_TO_BG_FROM_BG,chrNameLink.c_str());
SetSentErrorMessage(true);
@@ -888,7 +901,7 @@ bool ChatHandler::HandleGonameCommand(const char* args)
// when porting out from the bg, it will be reset to 0
_player->SetBattleGroundId(chr->GetBattleGroundId());
}
else if(cMap->IsDungeon())
else if(cMap->IsDungeon() && cMap->Instanceable())
{
Map* pMap = MapManager::Instance().GetMap(_player->GetMapId(),_player);