Skip to content

Commit a9bc344

Browse files
authored
feat: Add Player Event OnReleasedGhost (#355)
1 parent 73a5c5d commit a9bc344

5 files changed

Lines changed: 18 additions & 2 deletions

File tree

src/ALE_SC.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,8 @@ class ALE_PlayerScript : public PlayerScript
643643
PLAYERHOOK_ON_CAN_UPDATE_SKILL,
644644
PLAYERHOOK_ON_BEFORE_UPDATE_SKILL,
645645
PLAYERHOOK_ON_UPDATE_SKILL,
646-
PLAYERHOOK_CAN_RESURRECT
646+
PLAYERHOOK_CAN_RESURRECT,
647+
PLAYERHOOK_ON_PLAYER_RELEASED_GHOST
647648
}) { }
648649

649650
void OnPlayerResurrect(Player* player, float /*restore_percent*/, bool /*applySickness*/) override
@@ -955,11 +956,16 @@ class ALE_PlayerScript : public PlayerScript
955956
{
956957
sALE->OnPlayerUpdateSkill(player, skill_id, value, max, step, new_value);
957958
}
958-
959+
959960
bool OnPlayerCanResurrect(Player* player) override
960961
{
961962
return sALE->CanPlayerResurrect(player);
962963
}
964+
965+
void OnPlayerReleasedGhost(Player* player) override
966+
{
967+
sALE->OnPlayerReleasedGhost(player);
968+
}
963969
};
964970

965971
class ALE_ServerScript : public ServerScript

src/LuaEngine/Hooks.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ namespace Hooks
237237
PLAYER_EVENT_ON_MODIFY_SPELL_DAMAGE_TAKEN = 70, // (event, player, target, damage, spellInfo) - Can return new damage amount
238238
PLAYER_EVENT_ON_MODIFY_HEAL_RECEIVED = 71, // (event, player, target, heal, spellInfo) - Can return new heal amount
239239
PLAYER_EVENT_ON_DEAL_DAMAGE = 72, // (event, player, target, damage, damagetype) - Can return new damage amount
240+
PLAYER_EVENT_ON_RELEASED_GHOST = 73, // (event, player)
240241

241242
PLAYER_EVENT_COUNT
242243
};

src/LuaEngine/LuaEngine.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,7 @@ class ALE_GAME_API ALE
512512
void OnPlayerModifySpellDamageTaken(Player* player, Unit* target, int32& damage, SpellInfo const* spellInfo);
513513
void OnPlayerModifyHealReceived(Player* player, Unit* target, uint32& heal, SpellInfo const* spellInfo);
514514
uint32 OnPlayerDealDamage(Player* player, Unit* pVictim, uint32 damage, DamageEffectType damagetype);
515+
void OnPlayerReleasedGhost(Player* player);
515516

516517
/* Vehicle */
517518
void OnInstall(Vehicle* vehicle);

src/LuaEngine/hooks/PlayerHooks.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -761,6 +761,13 @@ bool ALE::CanPlayerResurrect(Player* player)
761761
return CallAllFunctionsBool(PlayerEventBindings, key);
762762
}
763763

764+
void ALE::OnPlayerReleasedGhost(Player* player)
765+
{
766+
START_HOOK(PLAYER_EVENT_ON_RELEASED_GHOST);
767+
Push(player);
768+
CallAllFunctions(PlayerEventBindings, key);
769+
}
770+
764771
void ALE::OnPlayerQuestAccept(Player* player, Quest const* quest)
765772
{
766773
START_HOOK(PLAYER_EVENT_ON_QUEST_ACCEPT);

src/LuaEngine/methods/GlobalMethods.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -793,6 +793,7 @@ namespace LuaGlobalFunctions
793793
* PLAYER_EVENT_ON_MODIFY_SPELL_DAMAGE_TAKEN = 70, // (event, player, target, damage, spellInfo) - Can return new damage amount
794794
* PLAYER_EVENT_ON_MODIFY_HEAL_RECEIVED = 71, // (event, player, target, heal, spellInfo) - Can return new heal amount
795795
* PLAYER_EVENT_ON_DEAL_DAMAGE = 72, // (event, player, target, damage, damagetype) - Can return new damage amount
796+
* PLAYER_EVENT_ON_RELEASED_GHOST = 73, // (event, player)
796797
* };
797798
* </pre>
798799
*

0 commit comments

Comments
 (0)