forked from UNLOZE/sm-plugins
BossHP: HammerID support and more configs
This commit is contained in:
+77
-20
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user