diff --git a/BossHP/scripting/BossHP.sp b/BossHP/scripting/BossHP.sp index 27661ebb..b0de4978 100644 --- a/BossHP/scripting/BossHP.sp +++ b/BossHP/scripting/BossHP.sp @@ -731,14 +731,16 @@ void OnKillTrigger(int entity, const char[] output, SDKHookType HookType = view_ } else { + LogMessage("Killed boss %d", j); + Call_StartForward(g_hFwd_OnBossKilled); Call_PushCell(Boss); Call_PushCell(1); Call_Finish(); + delete Boss; g_aBoss.Erase(j); j--; - LogMessage("Killed boss %d", j + 1); } } } @@ -803,7 +805,6 @@ void OnHurtTrigger(int entity, const char[] output, int activator) Call_StartForward(g_hFwd_OnBossDamaged); Call_PushCell(Boss); - Call_PushCell(entity); Call_PushCell(activator); Call_Finish(); } @@ -892,13 +893,16 @@ public void OnGameFrame() if(Boss.fKillAt && Boss.fKillAt < GetGameTime()) { // Delete Boss LogMessage("Deleting boss %d (KillAt)", i); + Call_StartForward(g_hFwd_OnBossKilled); Call_PushCell(Boss); Call_PushCell(1); Call_Finish(); + delete Boss; g_aBoss.Erase(i); i--; + continue; } @@ -918,10 +922,12 @@ public void OnGameFrame() if(!BossProcess(Boss)) { // Delete Boss LogMessage("Deleting boss %d (dead)", i); + Call_StartForward(g_hFwd_OnBossKilled); Call_PushCell(Boss); Call_PushCell(2); Call_Finish(); + delete Boss; g_aBoss.Erase(i); i--; diff --git a/BossHP/scripting/include/BossHP.inc b/BossHP/scripting/include/BossHP.inc index ec8aa4a1..6c403043 100644 --- a/BossHP/scripting/include/BossHP.inc +++ b/BossHP/scripting/include/BossHP.inc @@ -4,8 +4,8 @@ #define BossHP_included -forward void OnBossDamaged(any Boss, int entity, int activator); - forward void OnBossIntialized(any Boss); -forward void OnBossKilled(any Boss, int reason); //reason: 0 = RoundEnd/MapEnd, 1 = KillTrigger, 2 = "normal death" +forward void OnBossDamaged(any Boss, int activator); + +forward void OnBossKilled(any Boss, int reason); //reason: 0 = RoundEnd/MapEnd, 1 = KillTrigger, 2 = Death.