feat(Scripts/Commands): Show boss name in instance setbossstate (#27818)

This commit is contained in:
Andrew
2026-09-26 21:04:43 -03:00
committed by GitHub
parent 614fa285b7
commit 742305fa93
2 changed files with 33 additions and 16 deletions
@@ -0,0 +1,5 @@
--
DELETE FROM `acore_string` WHERE `entry` IN (5057, 5058);
INSERT INTO `acore_string` (`entry`, `content_default`, `locale_koKR`, `locale_frFR`, `locale_deDE`, `locale_zhCN`, `locale_zhTW`, `locale_esES`, `locale_esMX`, `locale_ruRU`) VALUES
(5057,'Boss id {} ({}) state is now set to {} ({}).',NULL,NULL,'Boss-ID {} ({}) Status wurde auf {} ({}) gesetzt.',NULL,NULL,'Estado del jefe {} ({}) establecido a {} ({}).','Estado del jefe {} ({}) establecido a {} ({}).',NULL),
(5058,'Boss id {} ({}) state is {} ({}).',NULL,NULL,'Boss-ID {} ({}) Status ist {} ({}).',NULL,NULL,'Estado del jefe {} ({}) es {} ({}).','Estado del jefe {} ({}) es {} ({}).',NULL);
+28 -16
View File
@@ -198,7 +198,8 @@ public:
map->GetInstanceScript()->SetBossState(encounterId, EncounterState(state));
std::string stateName = InstanceScript::GetBossStateName(state);
handler->PSendSysMessage(LANG_COMMAND_INST_SET_BOSS_STATE, encounterId, state, stateName);
std::string bossName = GetBossName(GetEncounterNames(map), encounterId);
handler->PSendSysMessage(LANG_COMMAND_INST_SET_BOSS_STATE, encounterId, bossName, state, stateName);
return true;
}
@@ -233,7 +234,26 @@ public:
return false;
}
// Build a map of encounterIndex -> encounterName from DBC data
std::unordered_map<uint32, char const*> encounterNames = GetEncounterNames(map);
for (uint8 i = 0; i < map->GetInstanceScript()->GetEncounterCount(); ++i)
{
uint32 state = map->GetInstanceScript()->GetBossState(i);
std::string stateName = InstanceScript::GetBossStateName(state);
std::string bossName = GetBossName(encounterNames, i);
handler->PSendSysMessage(
LANG_COMMAND_INST_GET_BOSS_STATE,
i, bossName, state, stateName);
}
return true;
}
private:
// Maps encounterIndex -> encounterName from DBC data
static std::unordered_map<uint32, char const*> GetEncounterNames(InstanceMap const* map)
{
std::unordered_map<uint32, char const*> encounterNames;
Difficulty difficulty = map->GetDifficulty();
@@ -266,21 +286,13 @@ public:
= encounter->dbcEntry->encounterName[0];
}
for (uint8 i = 0; i < map->GetInstanceScript()->GetEncounterCount(); ++i)
{
uint32 state = map->GetInstanceScript()->GetBossState(i);
std::string stateName = InstanceScript::GetBossStateName(state);
return encounterNames;
}
auto it = encounterNames.find(i);
std::string bossName = (it != encounterNames.end()
&& it->second) ? it->second : "Unknown";
handler->PSendSysMessage(
LANG_COMMAND_INST_GET_BOSS_STATE,
i, bossName, state, stateName);
}
return true;
static std::string GetBossName(std::unordered_map<uint32, char const*> const& encounterNames, uint32 encounterId)
{
auto it = encounterNames.find(encounterId);
return (it != encounterNames.end() && it->second) ? it->second : "Unknown";
}
};