BossHP: Adding 2 forwards
This commit is contained in:
parent
7160defcaa
commit
7e5168f85c
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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"
|
||||
|
Loading…
Reference in New Issue
Block a user