diff options
| -rw-r--r-- | sql/updates/world/master/2021_12_18_21_world_2019_08_06_04_world.sql | 4 | ||||
| -rw-r--r-- | src/server/game/Miscellaneous/Language.h | 4 | ||||
| -rw-r--r-- | src/server/scripts/Commands/cs_go.cpp | 36 |
3 files changed, 27 insertions, 17 deletions
diff --git a/sql/updates/world/master/2021_12_18_21_world_2019_08_06_04_world.sql b/sql/updates/world/master/2021_12_18_21_world_2019_08_06_04_world.sql new file mode 100644 index 00000000000..650d1272b8c --- /dev/null +++ b/sql/updates/world/master/2021_12_18_21_world_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 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; } |
