diff options
| -rw-r--r-- | sql/updates/world/3.3.5/2019_08_06_04_world.sql | 4 | ||||
| -rw-r--r-- | src/server/game/Miscellaneous/Language.h | 5 | ||||
| -rw-r--r-- | src/server/scripts/Commands/cs_go.cpp | 36 |
3 files changed, 28 insertions, 17 deletions
diff --git a/sql/updates/world/3.3.5/2019_08_06_04_world.sql b/sql/updates/world/3.3.5/2019_08_06_04_world.sql new file mode 100644 index 00000000000..650d1272b8c --- /dev/null +++ b/sql/updates/world/3.3.5/2019_08_06_04_world.sql @@ -0,0 +1,4 @@ +-- +UPDATE `trinity_string` SET `content_default`='Failed to teleport you to the entrance to mapid %u (%s) - are you maybe not attuned to/missing an expansion for parent map %u?' WHERE `entry`=1197; +DELETE FROM `trinity_string` WHERE `entry`=1198; +INSERT INTO `trinity_string` (`entry`,`content_default`) VALUES (1198, 'Failed to teleport you to the start of mapid %u (%s) - are you maybe not attuned to/missing an expansion for the instance?'); diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h index 5e57449a5e6..133deee6347 100644 --- a/src/server/game/Miscellaneous/Language.h +++ b/src/server/game/Miscellaneous/Language.h @@ -920,8 +920,9 @@ 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, - // Room for more level 3 1197-1199 not used + LANG_COMMAND_GO_INSTANCE_GATE_FAILED = 1197, + LANG_COMMAND_GO_INSTANCE_START_FAILED = 1198, + // Room for more level 3 1199 not used // Debug commands LANG_CINEMATIC_NOT_EXIST = 1200, diff --git a/src/server/scripts/Commands/cs_go.cpp b/src/server/scripts/Commands/cs_go.cpp index 8ea58e407c2..d22f6776c04 100644 --- a/src/server/scripts/Commands/cs_go.cpp +++ b/src/server/scripts/Commands/cs_go.cpp @@ -406,6 +406,7 @@ public: if (matches.empty()) { handler->SendSysMessage(LANG_COMMAND_NO_INSTANCES_MATCH); + handler->SetSentErrorMessage(true); return false; } auto it = matches.rbegin(); @@ -440,28 +441,33 @@ public: player->SaveRecallPosition(); // try going to entrance - AreaTrigger const* exit = sObjectMgr->GetGoBackTrigger(mapid); - if (!exit) - handler->PSendSysMessage(LANG_COMMAND_INSTANCE_NO_EXIT, mapid, scriptname); - - if (exit && player->TeleportTo(exit->target_mapId, exit->target_X, exit->target_Y, exit->target_Z, exit->target_Orientation + M_PI)) + if (AreaTrigger const* exit = sObjectMgr->GetGoBackTrigger(mapid)) { - handler->PSendSysMessage(LANG_COMMAND_WENT_TO_INSTANCE_GATE, mapid, scriptname); - 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 - AreaTrigger const* entrance = sObjectMgr->GetMapEntranceTrigger(mapid); - if (!entrance) - handler->PSendSysMessage(LANG_COMMAND_INSTANCE_NO_ENTRANCE, mapid, scriptname); - - if (entrance && player->TeleportTo(entrance->target_mapId, entrance->target_X, entrance->target_Y, entrance->target_Z, entrance->target_Orientation)) + if (AreaTrigger const* entrance = sObjectMgr->GetMapEntranceTrigger(mapid)) { - handler->PSendSysMessage(LANG_COMMAND_WENT_TO_INSTANCE_START, mapid, scriptname); - 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, exit ? exit->target_mapId : uint32(-1)); handler->SetSentErrorMessage(true); return false; } |
