diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Miscellaneous/Language.h | 4 | ||||
| -rw-r--r-- | src/server/scripts/Commands/cs_go.cpp | 36 |
2 files changed, 23 insertions, 17 deletions
diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h index f5c8f4144c5..23b7ceda1fc 100644 --- a/src/server/game/Miscellaneous/Language.h +++ b/src/server/game/Miscellaneous/Language.h @@ -966,8 +966,8 @@ enum TrinityStrings LANG_COMMAND_INSTANCE_NO_EXIT = 1194, LANG_COMMAND_WENT_TO_INSTANCE_GATE = 1195, LANG_COMMAND_WENT_TO_INSTANCE_START = 1196, - LANG_COMMAND_GO_INSTANCE_FAILED = 1197, - LANG_COMMAND_GO_INSTANCE_START_FAILED = 1198, // 3.3.5 RESERVED + LANG_COMMAND_GO_INSTANCE_GATE_FAILED = 1197, + LANG_COMMAND_GO_INSTANCE_START_FAILED = 1198, // Room for more level 3 1199 not used // Debug commands diff --git a/src/server/scripts/Commands/cs_go.cpp b/src/server/scripts/Commands/cs_go.cpp index edf75078b8a..c3ad199a587 100644 --- a/src/server/scripts/Commands/cs_go.cpp +++ b/src/server/scripts/Commands/cs_go.cpp @@ -478,6 +478,7 @@ public: if (matches.empty()) { handler->SendSysMessage(LANG_COMMAND_NO_INSTANCES_MATCH); + handler->SetSentErrorMessage(true); return false; } auto it = matches.rbegin(); @@ -512,28 +513,33 @@ public: player->SaveRecallPosition(); // try going to entrance - AreaTriggerStruct const* exit = sObjectMgr->GetGoBackTrigger(mapid); - if (!exit) - handler->PSendSysMessage(LANG_COMMAND_INSTANCE_NO_EXIT, mapid, scriptname.c_str()); - - if (exit && player->TeleportTo(exit->target_mapId, exit->target_X, exit->target_Y, exit->target_Z, exit->target_Orientation + M_PI)) + if (AreaTriggerStruct const* exit = sObjectMgr->GetGoBackTrigger(mapid)) { - handler->PSendSysMessage(LANG_COMMAND_WENT_TO_INSTANCE_GATE, mapid, scriptname.c_str()); - return true; + if (player->TeleportTo(exit->target_mapId, exit->target_X, exit->target_Y, exit->target_Z, exit->target_Orientation + M_PI)) + { + handler->PSendSysMessage(LANG_COMMAND_WENT_TO_INSTANCE_GATE, mapid, scriptname); + return true; + } + else + handler->PSendSysMessage(LANG_COMMAND_GO_INSTANCE_GATE_FAILED, mapid, scriptname, exit->target_mapId); } + else + handler->PSendSysMessage(LANG_COMMAND_INSTANCE_NO_EXIT, mapid, scriptname); // try going to start - AreaTriggerStruct const* entrance = sObjectMgr->GetMapEntranceTrigger(mapid); - if (!entrance) - handler->PSendSysMessage(LANG_COMMAND_INSTANCE_NO_ENTRANCE, mapid, scriptname.c_str()); - - if (entrance && player->TeleportTo(entrance->target_mapId, entrance->target_X, entrance->target_Y, entrance->target_Z, entrance->target_Orientation)) + if (AreaTriggerStruct const* entrance = sObjectMgr->GetMapEntranceTrigger(mapid)) { - handler->PSendSysMessage(LANG_COMMAND_WENT_TO_INSTANCE_START, mapid, scriptname.c_str()); - return true; + if (player->TeleportTo(entrance->target_mapId, entrance->target_X, entrance->target_Y, entrance->target_Z, entrance->target_Orientation)) + { + handler->PSendSysMessage(LANG_COMMAND_WENT_TO_INSTANCE_START, mapid, scriptname); + return true; + } + else + handler->PSendSysMessage(LANG_COMMAND_GO_INSTANCE_START_FAILED, mapid, scriptname); } + else + handler->PSendSysMessage(LANG_COMMAND_INSTANCE_NO_ENTRANCE, mapid, scriptname); - handler->PSendSysMessage(LANG_COMMAND_GO_INSTANCE_FAILED, mapid, scriptname.c_str(), exit ? exit->target_mapId : uint32(-1)); handler->SetSentErrorMessage(true); return false; } |
