BossHP: HammerID support and more configs
This commit is contained in:
		
							parent
							
								
									81f79c51ca
								
							
						
					
					
						commit
						c932ee868c
					
				
							
								
								
									
										59
									
								
								BossHP/configs/bosshp/ze_pirates_port_royal_v3_6.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								BossHP/configs/bosshp/ze_pirates_port_royal_v3_6.cfg
									
									
									
									
									
										Normal file
									
								
							@ -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"
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										129
									
								
								BossHP/configs/bosshp/ze_pkmn_adventure_v7_2s.cfg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										129
									
								
								BossHP/configs/bosshp/ze_pkmn_adventure_v7_2s.cfg
									
									
									
									
									
										Normal file
									
								
							@ -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"
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@ -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);
 | 
			
		||||
 | 
			
		||||
			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;
 | 
			
		||||
 | 
			
		||||
		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;
 | 
			
		||||
 | 
			
		||||
		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;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user