BossHP: Adding 2 forwards

This commit is contained in:
neon 2018-10-13 18:15:06 +02:00
parent 7160defcaa
commit 7e5168f85c
2 changed files with 30 additions and 0 deletions

View File

@ -17,7 +17,9 @@ ArrayList g_aConfig;
ArrayList g_aBoss;
StringMap g_aHadOnce;
Handle g_hFwd_OnBossInitialized;
Handle g_hFwd_OnBossDamaged;
Handle g_hFwd_OnBossKilled;
char g_sHUDText[256];
@ -32,7 +34,9 @@ public Plugin myinfo =
public void OnPluginStart()
{
g_hFwd_OnBossInitialized = CreateGlobalForward("OnBossInitialized", ET_Ignore, Param_Any);
g_hFwd_OnBossDamaged = CreateGlobalForward("OnBossDamaged", ET_Ignore, Param_Any, Param_Cell, Param_Cell);
g_hFwd_OnBossKilled = CreateGlobalForward("OnBossKilled", ET_Ignore, Param_Any, Param_Cell);
HookEvent("round_end", Event_RoundEnd, EventHookMode_PostNoCopy);
HookEntityOutput("env_entity_maker", "OnEntitySpawned", OnEnvEntityMakerEntitySpawned);
@ -60,6 +64,12 @@ void Cleanup()
for(int i = 0; i < g_aBoss.Length; i++)
{
CBoss Boss = g_aBoss.Get(i);
Call_StartForward(g_hFwd_OnBossKilled);
Call_PushCell(Boss);
Call_PushCell(0);
Call_Finish();
delete Boss;
}
delete g_aBoss;
@ -721,6 +731,10 @@ void OnKillTrigger(int entity, const char[] output, SDKHookType HookType = view_
}
else
{
Call_StartForward(g_hFwd_OnBossKilled);
Call_PushCell(Boss);
Call_PushCell(1);
Call_Finish();
delete Boss;
g_aBoss.Erase(j);
j--;
@ -878,6 +892,10 @@ 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--;
@ -900,6 +918,10 @@ 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--;
@ -1241,6 +1263,10 @@ bool BossInit(CBoss _Boss)
_Config.GetName(sBoss, sizeof(sBoss));
LogMessage("Initialized boss %s (template = %d)", sBoss, iTemplateNum);
Call_StartForward(g_hFwd_OnBossInitialized);
Call_PushCell(_Boss);
Call_Finish();
return true;
}

View File

@ -5,3 +5,7 @@
#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"