mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Scripts/Commands: enhanced .instance get/setbossstate commands
(cherry picked from commit 1ffec02d76)
# Conflicts:
# src/server/game/Instances/InstanceScript.cpp
# src/server/scripts/Commands/cs_instance.cpp
This commit is contained in:
4
sql/updates/world/2015_11_06_35_world_2015_10_10_05.sql
Normal file
4
sql/updates/world/2015_11_06_35_world_2015_10_10_05.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
DELETE FROM `trinity_string` WHERE `entry` IN (5057, 5058);
|
||||
INSERT INTO `trinity_string` (`entry`, `content_default`, `content_loc1`, `content_loc2`, `content_loc3`, `content_loc4`, `content_loc5`, `content_loc6`, `content_loc7`, `content_loc8`) VALUES
|
||||
(5057, 'Boss id %i state is now set to %i (%s).', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL),
|
||||
(5058, 'Boss id %i state is %i (%s).', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
|
||||
@@ -659,3 +659,25 @@ void InstanceScript::UpdatePhasing()
|
||||
if (Player* player = itr->GetSource())
|
||||
player->SendUpdatePhasing();
|
||||
}
|
||||
|
||||
std::string InstanceScript::GetBossStateName(uint8 state)
|
||||
{
|
||||
// See enum EncounterState in InstanceScript.h
|
||||
switch (state)
|
||||
{
|
||||
case NOT_STARTED:
|
||||
return "NOT_STARTED";
|
||||
case IN_PROGRESS:
|
||||
return "IN_PROGRESS";
|
||||
case FAIL:
|
||||
return "FAIL";
|
||||
case DONE:
|
||||
return "DONE";
|
||||
case SPECIAL:
|
||||
return "SPECIAL";
|
||||
case TO_BE_DECIDED:
|
||||
return "TO_BE_DECIDED";
|
||||
default:
|
||||
return "INVALID";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -224,6 +224,7 @@ class InstanceScript : public ZoneScript
|
||||
|
||||
virtual bool SetBossState(uint32 id, EncounterState state);
|
||||
EncounterState GetBossState(uint32 id) const { return id < bosses.size() ? bosses[id].state : TO_BE_DECIDED; }
|
||||
static std::string GetBossStateName(uint8 state);
|
||||
BossBoundaryMap const* GetBossBoundary(uint32 id) const { return id < bosses.size() ? &bosses[id].boundary : NULL; }
|
||||
|
||||
// Achievement criteria additional requirements check
|
||||
|
||||
@@ -252,7 +252,8 @@ public:
|
||||
}
|
||||
|
||||
map->GetInstanceScript()->SetBossState(encounterId, EncounterState(state));
|
||||
handler->PSendSysMessage(LANG_COMMAND_INST_SET_BOSS_STATE, encounterId, state);
|
||||
std::string stateName = InstanceScript::GetBossStateName(state);
|
||||
handler->PSendSysMessage(LANG_COMMAND_INST_SET_BOSS_STATE, encounterId, state, stateName);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -316,7 +317,8 @@ public:
|
||||
}
|
||||
|
||||
uint32 state = map->GetInstanceScript()->GetBossState(encounterId);
|
||||
handler->PSendSysMessage(LANG_COMMAND_INST_GET_BOSS_STATE, encounterId, state);
|
||||
std::string stateName = InstanceScript::GetBossStateName(state);
|
||||
handler->PSendSysMessage(LANG_COMMAND_INST_GET_BOSS_STATE, encounterId, state, stateName);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user