feat(Scripts/Commands): Add group revive command (#22204)
This commit is contained in:
@@ -0,0 +1,4 @@
|
|||||||
|
--
|
||||||
|
DELETE FROM `command` WHERE `name` = 'group revive';
|
||||||
|
INSERT INTO `command` (`name`, `security`, `help`) VALUES
|
||||||
|
('group revive', 2, 'Syntax: .group revive\r\n\r\nRevives all players in your group.');
|
||||||
@@ -36,6 +36,7 @@ public:
|
|||||||
{ "join", HandleGroupJoinCommand, SEC_GAMEMASTER, Console::No },
|
{ "join", HandleGroupJoinCommand, SEC_GAMEMASTER, Console::No },
|
||||||
{ "remove", HandleGroupRemoveCommand, SEC_GAMEMASTER, Console::No },
|
{ "remove", HandleGroupRemoveCommand, SEC_GAMEMASTER, Console::No },
|
||||||
{ "disband", HandleGroupDisbandCommand, SEC_GAMEMASTER, Console::No },
|
{ "disband", HandleGroupDisbandCommand, SEC_GAMEMASTER, Console::No },
|
||||||
|
{ "revive", HandleGroupReviveCommand, SEC_GAMEMASTER, Console::No },
|
||||||
{ "leader", HandleGroupLeaderCommand, SEC_GAMEMASTER, Console::No }
|
{ "leader", HandleGroupLeaderCommand, SEC_GAMEMASTER, Console::No }
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -257,6 +258,39 @@ public:
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool HandleGroupReviveCommand(ChatHandler* handler, Optional<PlayerIdentifier> target)
|
||||||
|
{
|
||||||
|
if (!target)
|
||||||
|
target = PlayerIdentifier::FromTargetOrSelf(handler);
|
||||||
|
|
||||||
|
if (!target)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
Player* targetPlayer = target->GetConnectedPlayer();
|
||||||
|
Group* group = targetPlayer->GetGroup();
|
||||||
|
std::string nameLink = handler->playerLink(target->GetName());
|
||||||
|
|
||||||
|
if (!group)
|
||||||
|
{
|
||||||
|
handler->SendErrorMessage(LANG_NOT_IN_GROUP, nameLink);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (GroupReference* it = group->GetFirstMember(); it != nullptr; it = it->next())
|
||||||
|
{
|
||||||
|
Player* target = it->GetSource();
|
||||||
|
if (target)
|
||||||
|
{
|
||||||
|
target->RemoveAurasDueToSpell(27827); // Spirit of Redemption
|
||||||
|
target->ResurrectPlayer(!AccountMgr::IsPlayerAccount(target->GetSession()->GetSecurity()) ? 1.0f : 0.5f);
|
||||||
|
target->SpawnCorpseBones();
|
||||||
|
target->SaveToDB(false, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void AddSC_group_commandscript()
|
void AddSC_group_commandscript()
|
||||||
|
|||||||
Reference in New Issue
Block a user