BossHP: Adding 2 forwards
This commit is contained in:
parent
7160defcaa
commit
7e5168f85c
@ -17,7 +17,9 @@ ArrayList g_aConfig;
|
|||||||
ArrayList g_aBoss;
|
ArrayList g_aBoss;
|
||||||
StringMap g_aHadOnce;
|
StringMap g_aHadOnce;
|
||||||
|
|
||||||
|
Handle g_hFwd_OnBossInitialized;
|
||||||
Handle g_hFwd_OnBossDamaged;
|
Handle g_hFwd_OnBossDamaged;
|
||||||
|
Handle g_hFwd_OnBossKilled;
|
||||||
|
|
||||||
char g_sHUDText[256];
|
char g_sHUDText[256];
|
||||||
|
|
||||||
@ -32,7 +34,9 @@ public Plugin myinfo =
|
|||||||
|
|
||||||
public void OnPluginStart()
|
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_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);
|
HookEvent("round_end", Event_RoundEnd, EventHookMode_PostNoCopy);
|
||||||
HookEntityOutput("env_entity_maker", "OnEntitySpawned", OnEnvEntityMakerEntitySpawned);
|
HookEntityOutput("env_entity_maker", "OnEntitySpawned", OnEnvEntityMakerEntitySpawned);
|
||||||
@ -60,6 +64,12 @@ void Cleanup()
|
|||||||
for(int i = 0; i < g_aBoss.Length; i++)
|
for(int i = 0; i < g_aBoss.Length; i++)
|
||||||
{
|
{
|
||||||
CBoss Boss = g_aBoss.Get(i);
|
CBoss Boss = g_aBoss.Get(i);
|
||||||
|
|
||||||
|
Call_StartForward(g_hFwd_OnBossKilled);
|
||||||
|
Call_PushCell(Boss);
|
||||||
|
Call_PushCell(0);
|
||||||
|
Call_Finish();
|
||||||
|
|
||||||
delete Boss;
|
delete Boss;
|
||||||
}
|
}
|
||||||
delete g_aBoss;
|
delete g_aBoss;
|
||||||
@ -721,6 +731,10 @@ void OnKillTrigger(int entity, const char[] output, SDKHookType HookType = view_
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Call_StartForward(g_hFwd_OnBossKilled);
|
||||||
|
Call_PushCell(Boss);
|
||||||
|
Call_PushCell(1);
|
||||||
|
Call_Finish();
|
||||||
delete Boss;
|
delete Boss;
|
||||||
g_aBoss.Erase(j);
|
g_aBoss.Erase(j);
|
||||||
j--;
|
j--;
|
||||||
@ -878,6 +892,10 @@ public void OnGameFrame()
|
|||||||
if(Boss.fKillAt && Boss.fKillAt < GetGameTime())
|
if(Boss.fKillAt && Boss.fKillAt < GetGameTime())
|
||||||
{ // Delete Boss
|
{ // Delete Boss
|
||||||
LogMessage("Deleting boss %d (KillAt)", i);
|
LogMessage("Deleting boss %d (KillAt)", i);
|
||||||
|
Call_StartForward(g_hFwd_OnBossKilled);
|
||||||
|
Call_PushCell(Boss);
|
||||||
|
Call_PushCell(1);
|
||||||
|
Call_Finish();
|
||||||
delete Boss;
|
delete Boss;
|
||||||
g_aBoss.Erase(i);
|
g_aBoss.Erase(i);
|
||||||
i--;
|
i--;
|
||||||
@ -900,6 +918,10 @@ public void OnGameFrame()
|
|||||||
if(!BossProcess(Boss))
|
if(!BossProcess(Boss))
|
||||||
{ // Delete Boss
|
{ // Delete Boss
|
||||||
LogMessage("Deleting boss %d (dead)", i);
|
LogMessage("Deleting boss %d (dead)", i);
|
||||||
|
Call_StartForward(g_hFwd_OnBossKilled);
|
||||||
|
Call_PushCell(Boss);
|
||||||
|
Call_PushCell(2);
|
||||||
|
Call_Finish();
|
||||||
delete Boss;
|
delete Boss;
|
||||||
g_aBoss.Erase(i);
|
g_aBoss.Erase(i);
|
||||||
i--;
|
i--;
|
||||||
@ -1241,6 +1263,10 @@ bool BossInit(CBoss _Boss)
|
|||||||
_Config.GetName(sBoss, sizeof(sBoss));
|
_Config.GetName(sBoss, sizeof(sBoss));
|
||||||
LogMessage("Initialized boss %s (template = %d)", sBoss, iTemplateNum);
|
LogMessage("Initialized boss %s (template = %d)", sBoss, iTemplateNum);
|
||||||
|
|
||||||
|
Call_StartForward(g_hFwd_OnBossInitialized);
|
||||||
|
Call_PushCell(_Boss);
|
||||||
|
Call_Finish();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,3 +5,7 @@
|
|||||||
#define BossHP_included
|
#define BossHP_included
|
||||||
|
|
||||||
forward void OnBossDamaged(any Boss, int entity, int activator);
|
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