diff --git a/BossHP/configs/bosshp/ze_pirates_port_royal_v3_6.cfg b/BossHP/configs/bosshp/ze_pirates_port_royal_v3_6.cfg new file mode 100644 index 00000000..531fd28e --- /dev/null +++ b/BossHP/configs/bosshp/ze_pirates_port_royal_v3_6.cfg @@ -0,0 +1,59 @@ +"bosses" +{ + "0" // Stage 2 + { + "name" "Cannon" + "method" "hpbar" + "trigger" "delo_boss_hity:OnStartTouch" + + "iterator" "boss_hp_iterations" + "counter" "delo_counter" + "backup" "boss_hp_backup" + } + "1" // Stage 3 + { + "name" "Pirate" + "method" "hpbar" + "trigger" "pirate_add_hit:OnStartTouch" + + "iterator" "pirate_hp_iterations" + "counter" "pirate_counter" + "backup" "pirate_hp_backup" + } + "2" // Stage 4 + { + "name" "Barbossa" + "method" "hpbar" + "trigger" "barbossa2_pocty:OnStartTouch" + + "iterator" "barbossa_hp_iterations" + "counter" "barbossa_counter" + "backup" "barbossa_hp_backup" + } + "3" // Stage 5 + { + "name" "Kraken" + "method" "hpbar" + "trigger" "kraken_multipl:OnStartTouch" + + "iterator" "kraken_hp_iterations" + "counter" "kraken_counter" + "backup" "kraken_hp_backup" + } + "4" + { + "name" "Barbossa" + "method" "counter" + "trigger" "final_barbossa_hity:OnStartTouch" + + "counter" "final_barbossa_counter" + } + "5" + { + "name" "Barbossa" + "method" "counter" + "trigger" "bb_pocty:OnStartTouch" + + "counter" "final_barbossa_counter2" + } +} \ No newline at end of file diff --git a/BossHP/configs/bosshp/ze_pkmn_adventure_v7_2s.cfg b/BossHP/configs/bosshp/ze_pkmn_adventure_v7_2s.cfg new file mode 100644 index 00000000..8e603e82 --- /dev/null +++ b/BossHP/configs/bosshp/ze_pkmn_adventure_v7_2s.cfg @@ -0,0 +1,129 @@ +"bosses" +{ + // Stage 1 - Bosses + "0" + { + "name" "Nidoqueen" + "method" "breakable" + "trigger" "nidoqueen_template:OnEntitySpawned" + + "breakable" "nidoqueen" + } + // Stage 2 - Bosses + "1" + { + "name" "Regice" + "method" "counter" + "trigger" "addhealth_regi:OnStartTouch:3" + "killtrigger" "regiiceboss:OnBreak" + + "counter" "regicehealth" + } + // Stage 3 - Bosses + "2" + { + "name" "Kirlia" + "method" "breakable" + "trigger" "KirliaSpawn:OnEntitySpawned" + + "breakable" "kirlia" + } + "3" + { + "name" "Crobat" + "method" "breakable" + "trigger" "CrobatSpawn:OnEntitySpawned" + + "breakable" "Crobat" + } + "4" + { + "name" "Groudon" + "method" "counter" + "trigger" "groudonaddhealth:OnStartTouch:1" + "killtrigger" "Groudon:OnBreak" + + "counter" "groudonhp" + } + "5" + { + "name" "Kirlia" + "method" "counter" + "trigger" "crobatfinalbossspawn:OnEntitySpawned" + "killtrigger" "CrobatFinalboss:OnBreak" + + "counter" "finalkirlia_hp" + } + "6" // Stage 4 - Bosses + { + "name" "Skuntank" + "method" "counter" + "trigger" "skuntank_spawn:OnEntitySpawned" + "killtrigger" "Skuntank:OnBreak" + + "counter" "skuntankhealth" + } + "7" + { + "name" "Purugly" + "method" "counter" + "trigger" "purugly_spawn:OnEntitySpawned" + "killtrigger" "Purugly:OnBreak" + + "counter" "puruglyhealth" + } + "8" + { + "name" "Honchkrow" + "method" "counter" + "trigger" "HonchkrowSpawn:OnEntitySpawned" + "killtrigger" "Honchkrow:OnBreak" + + "counter" "honchkrowhp" + } + "9" + { + "name" "Crobat" + "method" "counter" + "trigger" "CrobatSpawnCyrus:OnEntitySpawned" + "killtrigger" "CrobatCyrus:OnBreak" + + "counter" "crobatcyrushp" + } + "10" + { + "name" "Weavile" + "method" "counter" + "trigger" "WaevileSpawn:OnEntitySpawned" + "killtrigger" "Weavile:OnBreak" + + "counter" "weavilehp" + } + "11" + { + "name" "Giratina" + "method" "counter" + "trigger" "addhealth_gira:OnStartTouch" + "killtrigger" "Giratina:OnBreak" + + "counter" "giratinahp" + } + "12" + { + "name" "Crobat" + "method" "counter" + "trigger" "bottom_2_medium:OnStartTouch:1" + "killtrigger" "CrobatFinalPart2:OnBreak" + + "counter" "crobatfinal2_health" + } + "13" + { + "name" "Weavile" + "method" "counter" + "trigger" "cyrusfinalspawner:OnEntitySpawned" + "killtrigger" "WeavileFinal:OnBreak" + + "counter" "weavilefinalhp" + } +} \ No newline at end of file diff --git a/BossHP/configs/bosshp/ze_portal_story_v3_2.cfg b/BossHP/configs/bosshp/ze_portal_story_v3_2.cfg index 8526c4da..b76de3fe 100644 --- a/BossHP/configs/bosshp/ze_portal_story_v3_2.cfg +++ b/BossHP/configs/bosshp/ze_portal_story_v3_2.cfg @@ -1,11 +1,11 @@ -"bosses" -{ - "0" // Glados - { - "name" "Glados" - "method" "counter" - "trigger" "lvl1_cts_counter_trigger:OnTrigger" - - "counter" "lvl1_health_counter" - } +"bosses" +{ + "0" // Glados + { + "name" "Glados" + "method" "counter" + "trigger" "lvl1_cts_counter_trigger:OnTrigger" + + "counter" "lvl1_health_counter" + } } \ No newline at end of file diff --git a/BossHP/scripting/BossHP.sp b/BossHP/scripting/BossHP.sp index ca200854..501ece20 100644 --- a/BossHP/scripting/BossHP.sp +++ b/BossHP/scripting/BossHP.sp @@ -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(-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(-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(-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(-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(-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; }