BossHP: HammerID support and more configs

This commit is contained in:
BotoX
2017-03-19 00:38:21 +01:00
parent 81f79c51ca
commit c932ee868c
4 changed files with 275 additions and 30 deletions
+77 -20
View File
@@ -23,7 +23,7 @@ public Plugin myinfo =
name = "BossHP",
author = "BotoX",
description = "",
version = "0.1",
version = "0.2",
url = ""
};
@@ -351,8 +351,9 @@ public void OnEntitySpawned(int entity)
return;
char sTargetname[64];
if(!GetEntPropString(entity, Prop_Data, "m_iName", sTargetname, sizeof(sTargetname)))
return;
GetEntPropString(entity, Prop_Data, "m_iName", sTargetname, sizeof(sTargetname));
int iHammerID = GetEntProp(entity, Prop_Data, "m_iHammerID");
for(int i = 0; i < g_aConfig.Length; i++)
{
@@ -361,7 +362,11 @@ public void OnEntitySpawned(int entity)
char sTrigger[64];
Config.GetTrigger(sTrigger, sizeof(sTrigger));
if(StrEqual(sTargetname, sTrigger))
int iTriggerHammerID = -1;
if(sTrigger[0] == '#')
iTriggerHammerID = StringToInt(sTrigger[1]);
if((iTriggerHammerID == -1 && sTargetname[0] && StrEqual(sTargetname, sTrigger)) || iTriggerHammerID == iHammerID)
{
char sOutput[64];
Config.GetOutput(sOutput, sizeof(sOutput));
@@ -382,7 +387,11 @@ public void OnEntitySpawned(int entity)
char sShowTrigger[64];
Config.GetShowTrigger(sShowTrigger, sizeof(sShowTrigger));
if(sShowTrigger[0] && StrEqual(sTargetname, sShowTrigger))
int iShowTriggerHammerID = -1;
if(sShowTrigger[0] == '#')
iShowTriggerHammerID = StringToInt(sShowTrigger[1]);
if((iShowTriggerHammerID == -1 && sShowTrigger[0] && StrEqual(sTargetname, sShowTrigger)) || iShowTriggerHammerID == iHammerID)
{
char sShowOutput[64];
Config.GetShowOutput(sShowOutput, sizeof(sShowOutput));
@@ -403,7 +412,11 @@ public void OnEntitySpawned(int entity)
char sKillTrigger[64];
Config.GetKillTrigger(sKillTrigger, sizeof(sKillTrigger));
if(sKillTrigger[0] && StrEqual(sTargetname, sKillTrigger))
int iKillTriggerHammerID = -1;
if(sKillTrigger[0] == '#')
iKillTriggerHammerID = StringToInt(sKillTrigger[1]);
if((iKillTriggerHammerID == -1 && sKillTrigger[0] && StrEqual(sTargetname, sKillTrigger)) || iKillTriggerHammerID == iHammerID)
{
char sKillOutput[64];
Config.GetKillOutput(sKillOutput, sizeof(sKillOutput));
@@ -426,8 +439,11 @@ public void OnEntitySpawned(int entity)
void OnTrigger(int entity, const char[] output, SDKHookType HookType = view_as<SDKHookType>(-1))
{
char sTargetname[64];
if(!GetEntPropString(entity, Prop_Data, "m_iName", sTargetname, sizeof(sTargetname)))
return;
GetEntPropString(entity, Prop_Data, "m_iName", sTargetname, sizeof(sTargetname));
int iHammerID = GetEntProp(entity, Prop_Data, "m_iHammerID");
PrintToServer("OnTrigger(%d:\"%s\":#%d, \"%s\")", entity, sTargetname, iHammerID, output);
for(int i = 0; i < g_aConfig.Length; i++)
{
@@ -436,7 +452,15 @@ void OnTrigger(int entity, const char[] output, SDKHookType HookType = view_as<S
char sTrigger[64];
Config.GetTrigger(sTrigger, sizeof(sTrigger));
if(!StrEqual(sTargetname, sTrigger))
int iTriggerHammerID = -1;
if(sTrigger[0] == '#')
{
iTriggerHammerID = StringToInt(sTrigger[1]);
if(iTriggerHammerID != iHammerID)
continue;
}
else if(!sTargetname[0] || !StrEqual(sTargetname, sTrigger))
continue;
char sOutput[64];
@@ -490,7 +514,10 @@ void OnTrigger(int entity, const char[] output, SDKHookType HookType = view_as<S
if(Once)
g_aHadOnce.SetValue(sTemp, true);
LogMessage("Triggered boss %s(%d) from output %s", sTargetname, entity, output);
if(iTriggerHammerID == -1)
LogMessage("Triggered boss %s(%d) from output %s", sTargetname, entity, output);
else
LogMessage("Triggered boss #%d(%d) from output %s", iTriggerHammerID, entity, output);
}
}
}
@@ -498,8 +525,9 @@ void OnTrigger(int entity, const char[] output, SDKHookType HookType = view_as<S
void OnShowTrigger(int entity, const char[] output, SDKHookType HookType = view_as<SDKHookType>(-1))
{
char sTargetname[64];
if(!GetEntPropString(entity, Prop_Data, "m_iName", sTargetname, sizeof(sTargetname)))
return;
GetEntPropString(entity, Prop_Data, "m_iName", sTargetname, sizeof(sTargetname));
int iHammerID = GetEntProp(entity, Prop_Data, "m_iHammerID");
int iTemplateNum = -1;
int iTemplateLoc = FindCharInString(sTargetname, '&', true);
@@ -516,7 +544,18 @@ void OnShowTrigger(int entity, const char[] output, SDKHookType HookType = view_
char sShowTrigger[64];
Config.GetShowTrigger(sShowTrigger, sizeof(sShowTrigger));
if(!StrEqual(sTargetname, sShowTrigger))
if(!sShowTrigger[0])
continue;
int iShowTriggerHammerID = -1;
if(sShowTrigger[0] == '#')
{
iShowTriggerHammerID = StringToInt(sShowTrigger[1]);
if(iShowTriggerHammerID != iHammerID)
continue;
}
else if(!sTargetname[0] || !StrEqual(sTargetname, sShowTrigger))
continue;
char sShowOutput[64];
@@ -525,7 +564,10 @@ void OnShowTrigger(int entity, const char[] output, SDKHookType HookType = view_
if(!StrEqual(output, sShowOutput))
continue;
LogMessage("Triggered show boss %s(%d) from output %s", sTargetname, entity, output);
if(iShowTriggerHammerID == -1)
LogMessage("Triggered show boss %s(%d) from output %s", sTargetname, entity, output);
else
LogMessage("Triggered show boss #%d(%d) from output %s", iShowTriggerHammerID, entity, output);
if(HookType != view_as<SDKHookType>(-1) && !Config.bMultiTrigger)
{
@@ -562,8 +604,9 @@ void OnShowTrigger(int entity, const char[] output, SDKHookType HookType = view_
void OnKillTrigger(int entity, const char[] output, SDKHookType HookType = view_as<SDKHookType>(-1))
{
char sTargetname[64];
if(!GetEntPropString(entity, Prop_Data, "m_iName", sTargetname, sizeof(sTargetname)))
return;
GetEntPropString(entity, Prop_Data, "m_iName", sTargetname, sizeof(sTargetname));
int iHammerID = GetEntProp(entity, Prop_Data, "m_iHammerID");
int iTemplateNum = -1;
int iTemplateLoc = FindCharInString(sTargetname, '&', true);
@@ -580,7 +623,18 @@ void OnKillTrigger(int entity, const char[] output, SDKHookType HookType = view_
char sKillTrigger[64];
Config.GetKillTrigger(sKillTrigger, sizeof(sKillTrigger));
if(!sKillTrigger[0] || !StrEqual(sTargetname, sKillTrigger))
if(!sKillTrigger[0])
continue;
int iKillTriggerHammerID = -1;
if(sKillTrigger[0] == '#')
{
iKillTriggerHammerID = StringToInt(sKillTrigger[1]);
if(iKillTriggerHammerID != iHammerID)
continue;
}
else if(!sTargetname[0] || !StrEqual(sTargetname, sKillTrigger))
continue;
char sKillOutput[64];
@@ -589,7 +643,10 @@ void OnKillTrigger(int entity, const char[] output, SDKHookType HookType = view_
if(!StrEqual(output, sKillOutput))
continue;
LogMessage("Triggered kill boss %s(%d) from output %s", sTargetname, entity, output);
if(iKillTriggerHammerID == -1)
LogMessage("Triggered kill boss %s(%d) from output %s", sTargetname, entity, output);
else
LogMessage("Triggered kill boss #%d(%d) from output %s", iKillTriggerHammerID, entity, output);
if(HookType != view_as<SDKHookType>(-1) && !Config.bMultiTrigger)
{
@@ -636,8 +693,8 @@ public void OnEnvEntityMakerEntitySpawned(const char[] output, int caller, int a
if(!StrEqual(sClassname, "env_entity_maker"))
{
//LogError("[SOURCEMOD BUG] output: \"%s\", caller: %d, activator: %d, delay: %f, classname: \"%s\"",
// output, caller, activator, delay, sClassname);
LogError("[SOURCEMOD BUG] output: \"%s\", caller: %d, activator: %d, delay: %f, classname: \"%s\"",
output, caller, activator, delay, sClassname);
return;
}