aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Miscellaneous/Language.h46
-rw-r--r--src/server/scripts/Commands/cs_go.cpp83
2 files changed, 63 insertions, 66 deletions
diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h
index 36fd7717b2c..d251276ac76 100644
--- a/src/server/game/Miscellaneous/Language.h
+++ b/src/server/game/Miscellaneous/Language.h
@@ -929,19 +929,22 @@ enum TrinityStrings
LANG_GUILD_INFO_BANK_GOLD = 1181,
LANG_GUILD_INFO_MOTD = 1182,
LANG_GUILD_INFO_EXTRA_INFO = 1183,
- LANG_GUILD_INFO_LEVEL = 1184,
- LANG_ACCOUNT_BNET_LINKED = 1185,
- LANG_ACCOUNT_OR_BNET_DOES_NOT_EXIST = 1186,
- LANG_ACCOUNT_ALREADY_LINKED = 1187,
- LANG_ACCOUNT_BNET_UNLINKED = 1188,
- LANG_ACCOUNT_BNET_NOT_LINKED = 1189,
- LANG_DISALLOW_TICKETS_CONFIG = 1190,
- LANG_BAN_EXISTS = 1191,
- LANG_CHANGEACCOUNT_SUCCESS = 1192,
- LANG_GROUP_NOT_IN_RAID_GROUP = 1193,
- LANG_GROUP_ROLE_CHANGED = 1194,
- LANG_LEADER_CANNOT_BE_ASSISTANT = 1195,
- // Room for more level 3 1196-1198 not used
+ LANG_CHANGEACCOUNT_SUCCESS = 1184, // log
+ LANG_GROUP_NOT_IN_RAID_GROUP = 1185,
+ LANG_GROUP_ROLE_CHANGED = 1186,
+ LANG_LEADER_CANNOT_BE_ASSISTANT = 1187,
+ LANG_BAN_EXISTS = 1188,
+ LANG_COMMAND_NO_INSTANCES_MATCH = 1189,
+ LANG_COMMAND_MULTIPLE_INSTANCES_MATCH = 1190,
+ LANG_COMMAND_MULTIPLE_INSTANCES_ENTRY = 1191,
+ LANG_COMMAND_MAP_NOT_INSTANCE = 1192,
+ LANG_COMMAND_INSTANCE_NO_ENTRANCE = 1193,
+ 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
+ // Room for more level 3 1199 not used
// Debug commands
LANG_CINEMATIC_NOT_EXIST = 1200,
@@ -950,7 +953,22 @@ enum TrinityStrings
LANG_DEBUG_AREATRIGGER_OFF = 1203,
LANG_DEBUG_AREATRIGGER_ENTERED = 1204,
- // 1205-1999 - free
+ LANG_COMMAND_NO_BOSSES_MATCH = 1205, // 3.3.5 RESERVED
+ LANG_COMMAND_MULTIPLE_BOSSES_MATCH = 1206, // 3.3.5 RESERVED
+ LANG_COMMAND_MULTIPLE_BOSSES_ENTRY = 1207, // 3.3.5 RESERVED
+ LANG_COMMAND_BOSS_MULTIPLE_SPAWNS = 1208, // 3.3.5 RESERVED
+ LANG_COMMAND_BOSS_MULTIPLE_SPAWN_ETY = 1209, // 3.3.5 RESERVED
+ LANG_COMMAND_GO_BOSS_FAILED = 1210, // 3.3.5 RESERVED
+ LANG_COMMAND_WENT_TO_BOSS = 1211, // 3.3.5 RESERVED
+ LANG_GUILD_INFO_LEVEL = 1212,
+ LANG_ACCOUNT_BNET_LINKED = 1213,
+ LANG_ACCOUNT_OR_BNET_DOES_NOT_EXIST = 1214,
+ LANG_ACCOUNT_ALREADY_LINKED = 1215,
+ LANG_ACCOUNT_BNET_UNLINKED = 1216,
+ LANG_ACCOUNT_BNET_NOT_LINKED = 1217,
+ LANG_DISALLOW_TICKETS_CONFIG = 1218,
+ // 1219-1499 - free
+
LANG_DEBUG_AREATRIGGER_LEFT = 1999,
// Ticket Strings 2003-2028
LANG_COMMAND_TICKETCLOSED = 2003,
diff --git a/src/server/scripts/Commands/cs_go.cpp b/src/server/scripts/Commands/cs_go.cpp
index 7c0936bf371..1fa71b48468 100644
--- a/src/server/scripts/Commands/cs_go.cpp
+++ b/src/server/scripts/Commands/cs_go.cpp
@@ -635,33 +635,11 @@ public:
if (!*args)
return false;
- std::vector<std::string> labels;
-
- // tokenize and convert to lowercase
char* pos = const_cast<char*>(args);
- char* last = nullptr;
- do
- {
- if (*pos == ' ')
- {
- if (last)
- {
- *pos = '\0';
- labels.emplace_back(last);
- last = nullptr;
- }
- }
- else
- {
- if (!last)
- last = pos;
- *pos = tolower(*pos);
- }
- } while (*++pos);
- if (last)
- labels.emplace_back(last);
- // tokenizing done
+ do *pos = tolower(*pos);
+ while (*(++pos));
+ Tokenizer labels(args, ' ');
uint32 mapid = 0;
if (labels.size() == 1)
{
@@ -671,12 +649,12 @@ public:
if (!mapid)
{
- std::multimap<uint32, std::pair<uint16, std::string>> matches;
+ std::multimap<uint32, std::pair<uint32, std::string>> matches;
for (auto const& pair : sObjectMgr->GetInstanceTemplates())
{
uint32 count = 0;
std::string const& scriptName = sObjectMgr->GetScriptName(pair.second.ScriptId);
- for (std::string const& label : labels)
+ for (char const* label : labels)
if (scriptName.find(label) != std::string::npos)
++count;
@@ -685,7 +663,7 @@ public:
}
if (matches.empty())
{
- handler->SendSysMessage("No matches found for your input");
+ handler->SendSysMessage(LANG_COMMAND_NO_INSTANCES_MATCH);
return false;
}
auto it = matches.rbegin();
@@ -693,10 +671,10 @@ public:
mapid = it->second.first;
if (++it != matches.rend() && it->first == maxCount)
{
- handler->SendSysMessage("Multiple matches found for your input - please specify:");
+ handler->SendSysMessage(LANG_COMMAND_MULTIPLE_INSTANCES_MATCH);
--it;
do
- handler->PSendSysMessage("* Map %03u: '%s'", it->second.first, it->second.second);
+ handler->PSendSysMessage(LANG_COMMAND_MULTIPLE_INSTANCES_ENTRY, it->second.first, it->second.second.c_str());
while (++it != matches.rend() && it->first == maxCount);
handler->SetSentErrorMessage(true);
return false;
@@ -708,42 +686,43 @@ public:
InstanceTemplate const* temp = sObjectMgr->GetInstanceTemplate(mapid);
if (!temp)
{
- handler->PSendSysMessage("Map %u is not instanced", mapid);
+ handler->PSendSysMessage(LANG_COMMAND_MAP_NOT_INSTANCE, mapid);
handler->SetSentErrorMessage(true);
return false;
}
std::string const& scriptname = sObjectMgr->GetScriptName(temp->ScriptId);
- AreaTriggerStruct const* entrance = sObjectMgr->GetMapEntranceTrigger(mapid);
- if (!entrance)
- {
- handler->PSendSysMessage("Could not find entrance for instance %u (%s)", mapid, scriptname);
- handler->SetSentErrorMessage(true);
- return false;
- }
-
Player* player = handler->GetSession()->GetPlayer();
if (player->IsInFlight())
player->FinishTaxiFlight();
else
player->SaveRecallPosition();
- if (player->TeleportTo(entrance->target_mapId, entrance->target_X, entrance->target_Y, entrance->target_Z, entrance->target_Orientation))
- handler->PSendSysMessage("Teleported you to entrance of mapid %u (%s)", mapid, scriptname);
- else
+ // 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))
{
- AreaTriggerStruct const* exit = sObjectMgr->GetGoBackTrigger(mapid);
- if (player->TeleportTo(exit->target_mapId, exit->target_X, exit->target_Y, exit->target_Z, exit->target_Orientation + M_PI))
- handler->PSendSysMessage("Teleported you in front of entrance to mapid %u (%s)", mapid, scriptname);
- else
- {
- handler->PSendSysMessage("Failed to teleport you to entrance of mapid %u (%s) - missing attunement/expansion for parent map?", mapid, scriptname);
- handler->SetSentErrorMessage(true);
- return false;
- }
+ handler->PSendSysMessage(LANG_COMMAND_WENT_TO_INSTANCE_GATE, mapid, scriptname.c_str());
+ return true;
}
- return true;
+ // 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))
+ {
+ handler->PSendSysMessage(LANG_COMMAND_WENT_TO_INSTANCE_START, mapid, scriptname.c_str());
+ return true;
+ }
+
+ handler->PSendSysMessage(LANG_COMMAND_GO_INSTANCE_FAILED, mapid, scriptname.c_str(), exit->target_mapId);
+ handler->SetSentErrorMessage(true);
+ return false;
}
};