mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-13 01:08:35 +00:00
fix(Core): enable .freeze and .unfreeze gm cmd for NPCS (#8688)
This commit is contained in:
@@ -3049,7 +3049,9 @@ public:
|
||||
static bool HandleFreezeCommand(ChatHandler* handler, char const* args)
|
||||
{
|
||||
std::string name;
|
||||
Unit* target = handler->getSelectedUnit();
|
||||
Player* player;
|
||||
constexpr int Freeze = 9454;
|
||||
char const* TargetName = strtok((char*)args, " "); // get entered name
|
||||
if (!TargetName) // if no name entered use target
|
||||
{
|
||||
@@ -3067,12 +3069,6 @@ public:
|
||||
player = ObjectAccessor::FindPlayerByName(name);
|
||||
}
|
||||
|
||||
if (!player)
|
||||
{
|
||||
handler->SendSysMessage(LANG_COMMAND_FREEZE_WRONG);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (player == handler->GetSession()->GetPlayer())
|
||||
{
|
||||
handler->SendSysMessage(LANG_COMMAND_FREEZE_ERROR);
|
||||
@@ -3082,19 +3078,42 @@ public:
|
||||
if (player && (player != handler->GetSession()->GetPlayer()))
|
||||
{
|
||||
handler->PSendSysMessage(LANG_COMMAND_FREEZE, name.c_str());
|
||||
if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(9454))
|
||||
if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(Freeze))
|
||||
Aura::TryRefreshStackOrCreate(spellInfo, MAX_EFFECT_MASK, player, player);
|
||||
}
|
||||
|
||||
if (!target || !handler->GetSession()->GetPlayer()->GetTarget())
|
||||
{
|
||||
handler->SendSysMessage(LANG_SELECT_CHAR_OR_CREATURE);
|
||||
handler->SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (target->IsAlive())
|
||||
{
|
||||
handler->PSendSysMessage(LANG_COMMAND_FREEZE, name.c_str());
|
||||
if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(Freeze))
|
||||
Aura::TryRefreshStackOrCreate(spellInfo, MAX_EFFECT_MASK, target, target);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleUnFreezeCommand(ChatHandler* handler, char const* args)
|
||||
{
|
||||
std::string name;
|
||||
Unit* target = handler->getSelectedUnit();
|
||||
Player* player;
|
||||
constexpr int Freeze = 9454;
|
||||
char* targetName = strtok((char*)args, " "); // Get entered name
|
||||
|
||||
if (target->HasAura(Freeze))
|
||||
{
|
||||
handler->PSendSysMessage(LANG_COMMAND_UNFREEZE, name.c_str());
|
||||
target->RemoveAurasDueToSpell(Freeze);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (targetName)
|
||||
{
|
||||
name = targetName;
|
||||
|
||||
Reference in New Issue
Block a user