Solved Best Def/Inf (Bug)

Coding Help/Re-API Supported
Post Reply
User avatar
Spir0x
Veteran Member
Veteran Member
Tunisia
Posts: 641
Joined: 7 years ago
Location: Tunisia
Contact:

Best Def/Inf (Bug)

#1

Post by Spir0x » 6 years ago

Yo guys i tryed to let best infector and defender message apprear on round end time not on round start. buts there's a little problem when round ends plugin show 2 messages on chat.
Screenshot:

Image

Code Best infector :

Code: Select all

#include <zombie_escape>
#include <ze_multijump>
#include <ze_levels>

// Variables
new g_iKills[33], g_iBestInfecIndex

// Cvars
new cvar_give_multijump, cvar_show_chat_notice, cvar_give_xp, cvar_give_escape_coins, cvar_show_stats

public plugin_init()
{
	register_plugin("[ZE] Best Infector", "1.3", "Raheem")
	
	// Hook Chains
	RegisterHookChain(RG_CBasePlayer_Spawn, "Fw_PlayerSpawn_Post", 1)
	
	// Cvars
	cvar_give_multijump = register_cvar("ze_give_best_infector_multijump", "1")
	cvar_show_chat_notice = register_cvar("ze_best_infc_chat_notice", "1")
	cvar_give_xp = register_cvar("ze_best_infc_give_xp", "40")
	cvar_give_escape_coins = register_cvar("ze_best_infc_give_ec", "20")
	cvar_show_stats = register_cvar("ze_show_best_infec_stats", "1")
	
	// Commands
	register_clcmd("say /myinfects", "Cmd_BestInfectorStats")
}

public ze_roundend()
{
	Get_Best_Infector()
}

public ze_user_infected(iVictim, iInfector)
{
	if (iInfector == 0)
		return

	g_iKills[iInfector]++
}

public Cmd_BestInfectorStats(id)
{
	Get_Best_Infector()
	
	switch (get_pcvar_num(cvar_show_stats))
	{
		case 1:
		{
			if (id == g_iBestInfecIndex)
			{
				ze_colored_print(id, "!tYou are now Best Infector !y[!g%d!y] !y:)", g_iKills[g_iBestInfecIndex])
			}
			else
			{
				ze_colored_print(id, "!tYour Infects !g%d!y, !tYou need !g%d !tInfects To be Best Infector!y.", g_iKills[id], g_iKills[g_iBestInfecIndex] - g_iKills[id])
			}
		}
		case 2:
		{
			if (id == g_iBestInfecIndex)
			{
				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_hudmessage(id, "You are now Best Infector [%d] :)", g_iKills[g_iBestInfecIndex])
			}
			else
			{
				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_hudmessage(id, "Your Infects %d, You need %d Infects To be Best Infector.", g_iKills[id], g_iKills[g_iBestInfecIndex] - g_iKills[id])
			}
		}
		case 3:
		{
			if (id == g_iBestInfecIndex)
			{
				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_dhudmessage(id, "You are now Best Infector [%d] :)", g_iKills[g_iBestInfecIndex])
			}
			else
			{
				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_dhudmessage(id, "Your Infects %d, You need %d Infects To be Best Infector.", g_iKills[id], g_iKills[g_iBestInfecIndex] - g_iKills[id])
			}
		}
	}
}

public Fw_PlayerSpawn_Post(id)
{
	if (get_pcvar_num(cvar_show_chat_notice) != 0)
	{
		if (g_iBestInfecIndex == 0 || g_iKills[g_iBestInfecIndex] == 0)
			return
		
		new szName[32]
		get_user_name(g_iBestInfecIndex, szName, charsmax(szName))
		
		if (get_pcvar_num(cvar_give_multijump) == 0)
		{
			ze_colored_print(id, "!tBest Infector was!y: !g%s !y|| !tInfects!y: !g%i !y|| !tAwards!y: !g%d Golds, %d XP!y.", szName, g_iKills[g_iBestInfecIndex], get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
		}
		else
		{
			ze_colored_print(id, "!tBest Infector was!y: !g%s !y|| !tInfects!y: !g%i !y|| !tAwards!y: !g%d Golds!y, !g%d XP!y, !gDouble!y-!gJump!y.", szName, g_iKills[g_iBestInfecIndex], get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
		}
	}
	
	if (get_pcvar_num(cvar_give_multijump) != 0)
	{
		if (g_iBestInfecIndex == 0 || g_iBestInfecIndex != id || g_iKills[g_iBestInfecIndex] == 0)
			return
		
		ze_give_user_multijump(g_iBestInfecIndex)
	}
	
	if (get_pcvar_num(cvar_give_xp) != 0 || get_pcvar_num(cvar_give_escape_coins) != 0)
	{
		if (g_iBestInfecIndex == 0 || g_iBestInfecIndex != id || g_iKills[g_iBestInfecIndex] == 0)
			return
		
		ze_set_escape_coins(g_iBestInfecIndex, get_pcvar_num(cvar_give_escape_coins) + ze_get_escape_coins(g_iBestInfecIndex))
		ze_set_user_xp(g_iBestInfecIndex, get_pcvar_num(cvar_give_xp) + ze_get_user_xp(g_iBestInfecIndex))
	}
}

public ze_game_started()
{
	set_task(5.0, "RestKills")
}

public RestKills()
{
	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
	{
		g_iKills[i] = 0
	}
}

public Get_Best_Infector()
{
	new iTemp = 0
	
	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
	{
		if (!is_user_connected(i))
			continue
		
		if (g_iKills[i] > iTemp)
		{
			iTemp = g_iKills[i]
			g_iBestInfecIndex = i
		}
	}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1036\\ f0\\ fs16 \n\\ par }
*/
And this best defender with original code i want to convert it same with infector one but fixed.

Code: Select all

#include <zombie_escape>
#include <ze_multijump>
#include <ze_levels>

// Variables
new Float:g_fDamage[33], g_iBestDefIndex

// Cvars
new cvar_give_multijump, cvar_show_chat_notice, cvar_give_xp, cvar_give_escape_coins, cvar_show_stats

public plugin_init()
{
	register_plugin("[ZE] Best Defender", "1.3", "Raheem")
	
	// Hook Chains
	RegisterHookChain(RG_CBasePlayer_TakeDamage, "Fw_TakeDamage_Post", 1)
	RegisterHookChain(RG_CBasePlayer_Spawn, "Fw_PlayerSpawn_Post", 1)
	
	// Cvars
	cvar_give_multijump = register_cvar("ze_give_multijump", "1")
	cvar_show_chat_notice = register_cvar("ze_best_def_chat_notice", "1")
	cvar_give_xp = register_cvar("ze_best_def_give_xp", "40")
	cvar_give_escape_coins = register_cvar("ze_best_def_give_ec", "20")
	cvar_show_stats = register_cvar("ze_show_best_def_stats", "1")
	
	// Commands
	register_clcmd("say /mydamage", "Cmd_BestDefenderStats")
}

public Fw_TakeDamage_Post(iVictim, iInflictor, iAttacker, Float:fDamage, bitsDamageType)
{
	if (!is_user_alive(iVictim) || !is_user_alive(iAttacker))
		return HC_CONTINUE
	
	g_fDamage[iAttacker] += fDamage
	return HC_CONTINUE
}

public Cmd_BestDefenderStats(id)
{
	Get_Best_Defender()
	
	switch (get_pcvar_num(cvar_show_stats))
	{
		case 1:
		{
			if (id == g_iBestDefIndex)
			{
				ze_colored_print(id, "!tYou are now Best Defender !y[!g%d!y] !y:)", floatround(g_fDamage[g_iBestDefIndex]))
			}
			else
			{
				ze_colored_print(id, "!tYour Damage !g%d!y, !tYou need !g%d !tDamage To be Best Defender!y.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
			}
		}
		case 2:
		{
			if (id == g_iBestDefIndex)
			{
				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_hudmessage(id, "You are now Best Defender [%d] :)", floatround(g_fDamage[g_iBestDefIndex]))
			}
			else
			{
				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_hudmessage(id, "Your Damage %d, You need %d Damage To be Best Defender.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
			}
		}
		case 3:
		{
			if (id == g_iBestDefIndex)
			{
				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_dhudmessage(id, "You are now Best Defender [%d] :)", floatround(g_fDamage[g_iBestDefIndex]))
			}
			else
			{
				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_dhudmessage(id, "Your Damage %d, You need %d Damage To be Best Defender.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
			}
		}
	}
}

public ze_roundend(WinTeam)
{
	Get_Best_Defender()
	
	if (get_pcvar_num(cvar_show_chat_notice) != 0)
	{
		new szName[32]
		get_user_name(g_iBestDefIndex, szName, charsmax(szName))
		
		if (g_iBestDefIndex == 0 || g_fDamage[g_iBestDefIndex] == 0.0)
			return
		
		if (get_pcvar_num(cvar_give_multijump) == 0)
		{
			for(new id = 1; id <= 32; id++)
			{
				if (!is_user_connected(id))
					continue
				
				ze_colored_print(id, "!tBest Defender was!y: !g%s !y|| !tDamage!y: !g%i !y|| !tAwards!y: !g%d Golds!y, !g%d XP!y.", szName, floatround(g_fDamage[g_iBestDefIndex]), get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
			}
		}
		else
		{
			for(new id = 1; id <= 32; id++)
			{
				if (!is_user_connected(id))
					continue
				
				ze_colored_print(id, "!tBest Defender was!y: !g%s !y|| !tDamage!y: !g%i !y|| !tAwards!y: !g%d Golds!y, !g%d XP!y, !gDouble!y-!gJump!y.", szName, floatround(g_fDamage[g_iBestDefIndex]), get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
			}
		}
	}
}

public Fw_PlayerSpawn_Post(id)
{
	if (get_pcvar_num(cvar_give_multijump) != 0)
	{
		if (g_iBestDefIndex == 0 || g_iBestDefIndex != id || g_fDamage[g_iBestDefIndex] == 0.0)
			return
		
		ze_give_user_multijump(g_iBestDefIndex)
	}
	
	if (get_pcvar_num(cvar_give_xp) != 0 || get_pcvar_num(cvar_give_escape_coins) != 0)
	{
		if (g_iBestDefIndex == 0 || g_iBestDefIndex != id || g_fDamage[g_iBestDefIndex] == 0.0)
			return
		
		ze_set_escape_coins(g_iBestDefIndex, get_pcvar_num(cvar_give_escape_coins) + ze_get_escape_coins(g_iBestDefIndex))
		ze_set_user_xp(g_iBestDefIndex, get_pcvar_num(cvar_give_xp) + ze_get_user_xp(g_iBestDefIndex))
	}
}

public ze_game_started()
{
	set_task(5.0, "RestDamage")
}

public RestDamage()
{
	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
	{
		g_fDamage[i] = 0.0
	}
}

public Get_Best_Defender()
{
	new Float:fTemp = 0.0
	
	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
	{
		if (!is_user_connected(i))
			continue
		
		if (g_fDamage[i] > fTemp)
		{
			fTemp = g_fDamage[i]
			g_iBestDefIndex = i
		}
	}
}

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#2

Post by Raheem » 6 years ago

Basically this problem related to the Mod. The end round forward sometimes called 2 times not 1 that's why this happens. Fixing the Mod problem maybe done in the next version of the Mod. But right now we can fix the problem from this code itself. We can make a boolean variable and just make it false at every new round start. And we make thing like:
    1. public ze_roundend(WinTeam)
    2. {
    3.     if (!g_bOneTime)
    4.     {
    5.         // Messages Here
    6.        
    7.         g_bOneTime == true // Already shown one time then don't show it again else g_bOneTime goes false at the next start round
    8.     }
    9. }
    10.  
    11. public ze_game_started()
    12. {
    13.     g_bOneTime = false
    14. }
Full code:
    1. #include <zombie_escape>
    2. #include <ze_multijump>
    3. #include <ze_levels>
    4.  
    5. // Variables
    6. new Float:g_fDamage[33], g_iBestDefIndex, bool:g_bOneTime
    7.  
    8. // Cvars
    9. new cvar_give_multijump, cvar_show_chat_notice, cvar_give_xp, cvar_give_escape_coins, cvar_show_stats
    10.  
    11. public plugin_init()
    12. {
    13.     register_plugin("[ZE] Best Defender", "1.3", "Raheem")
    14.    
    15.     // Hook Chains
    16.     RegisterHookChain(RG_CBasePlayer_TakeDamage, "Fw_TakeDamage_Post", 1)
    17.     RegisterHookChain(RG_CBasePlayer_Spawn, "Fw_PlayerSpawn_Post", 1)
    18.    
    19.     // Cvars
    20.     cvar_give_multijump = register_cvar("ze_give_multijump", "1")
    21.     cvar_show_chat_notice = register_cvar("ze_best_def_chat_notice", "1")
    22.     cvar_give_xp = register_cvar("ze_best_def_give_xp", "40")
    23.     cvar_give_escape_coins = register_cvar("ze_best_def_give_ec", "20")
    24.     cvar_show_stats = register_cvar("ze_show_best_def_stats", "1")
    25.    
    26.     // Commands
    27.     register_clcmd("say /mydamage", "Cmd_BestDefenderStats")
    28. }
    29.  
    30. public Fw_TakeDamage_Post(iVictim, iInflictor, iAttacker, Float:fDamage, bitsDamageType)
    31. {
    32.     if (!is_user_alive(iVictim) || !is_user_alive(iAttacker))
    33.         return HC_CONTINUE
    34.    
    35.     g_fDamage[iAttacker] += fDamage
    36.     return HC_CONTINUE
    37. }
    38.  
    39. public Cmd_BestDefenderStats(id)
    40. {
    41.     Get_Best_Defender()
    42.    
    43.     switch (get_pcvar_num(cvar_show_stats))
    44.     {
    45.         case 1:
    46.         {
    47.             if (id == g_iBestDefIndex)
    48.             {
    49.                 ze_colored_print(id, "!tYou are now Best Defender !y[!g%d!y] !y:)", floatround(g_fDamage[g_iBestDefIndex]))
    50.             }
    51.             else
    52.             {
    53.                 ze_colored_print(id, "!tYour Damage !g%d!y, !tYou need !g%d !tDamage To be Best Defender!y.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
    54.             }
    55.         }
    56.         case 2:
    57.         {
    58.             if (id == g_iBestDefIndex)
    59.             {
    60.                 set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
    61.                 show_hudmessage(id, "You are now Best Defender [%d] :)", floatround(g_fDamage[g_iBestDefIndex]))
    62.             }
    63.             else
    64.             {
    65.                 set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
    66.                 show_hudmessage(id, "Your Damage %d, You need %d Damage To be Best Defender.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
    67.             }
    68.         }
    69.         case 3:
    70.         {
    71.             if (id == g_iBestDefIndex)
    72.             {
    73.                 set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
    74.                 show_dhudmessage(id, "You are now Best Defender [%d] :)", floatround(g_fDamage[g_iBestDefIndex]))
    75.             }
    76.             else
    77.             {
    78.                 set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
    79.                 show_dhudmessage(id, "Your Damage %d, You need %d Damage To be Best Defender.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
    80.             }
    81.         }
    82.     }
    83. }
    84.  
    85. public ze_roundend(WinTeam)
    86. {
    87.     if (!g_bOneTime)
    88.     {
    89.         g_bOneTime == true
    90.        
    91.         Get_Best_Defender()
    92.    
    93.         if (get_pcvar_num(cvar_show_chat_notice) != 0)
    94.         {
    95.             new szName[32]
    96.             get_user_name(g_iBestDefIndex, szName, charsmax(szName))
    97.        
    98.             if (g_iBestDefIndex == 0 || g_fDamage[g_iBestDefIndex] == 0.0)
    99.                 return
    100.        
    101.             if (get_pcvar_num(cvar_give_multijump) == 0)
    102.             {
    103.                 for(new id = 1; id <= 32; id++)
    104.                 {
    105.                     if (!is_user_connected(id))
    106.                         continue
    107.                
    108.                     ze_colored_print(id, "!tBest Defender was!y: !g%s !y|| !tDamage!y: !g%i !y|| !tAwards!y: !g%d Golds!y, !g%d XP!y.", szName, floatround(g_fDamage[g_iBestDefIndex]), get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
    109.                 }
    110.             }
    111.             else
    112.             {
    113.                 for(new id = 1; id <= 32; id++)
    114.                 {
    115.                     if (!is_user_connected(id))
    116.                         continue
    117.                
    118.                     ze_colored_print(id, "!tBest Defender was!y: !g%s !y|| !tDamage!y: !g%i !y|| !tAwards!y: !g%d Golds!y, !g%d XP!y, !gDouble!y-!gJump!y.", szName, floatround(g_fDamage[g_iBestDefIndex]), get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
    119.                 }
    120.             }
    121.         }
    122.     }
    123. }
    124.  
    125. public Fw_PlayerSpawn_Post(id)
    126. {
    127.     if (get_pcvar_num(cvar_give_multijump) != 0)
    128.     {
    129.         if (g_iBestDefIndex == 0 || g_iBestDefIndex != id || g_fDamage[g_iBestDefIndex] == 0.0)
    130.             return
    131.        
    132.         ze_give_user_multijump(g_iBestDefIndex)
    133.     }
    134.    
    135.     if (get_pcvar_num(cvar_give_xp) != 0 || get_pcvar_num(cvar_give_escape_coins) != 0)
    136.     {
    137.         if (g_iBestDefIndex == 0 || g_iBestDefIndex != id || g_fDamage[g_iBestDefIndex] == 0.0)
    138.             return
    139.        
    140.         ze_set_escape_coins(g_iBestDefIndex, get_pcvar_num(cvar_give_escape_coins) + ze_get_escape_coins(g_iBestDefIndex))
    141.         ze_set_user_xp(g_iBestDefIndex, get_pcvar_num(cvar_give_xp) + ze_get_user_xp(g_iBestDefIndex))
    142.     }
    143. }
    144.  
    145. public ze_game_started()
    146. {
    147.     set_task(5.0, "RestDamage")
    148.     g_bOneTime = false
    149. }
    150.  
    151. public RestDamage()
    152. {
    153.     for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
    154.     {
    155.         g_fDamage[i] = 0.0
    156.     }
    157. }
    158.  
    159. public Get_Best_Defender()
    160. {
    161.     new Float:fTemp = 0.0
    162.    
    163.     for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
    164.     {
    165.         if (!is_user_connected(i))
    166.             continue
    167.        
    168.         if (g_fDamage[i] > fTemp)
    169.         {
    170.             fTemp = g_fDamage[i]
    171.             g_iBestDefIndex = i
    172.         }
    173.     }
    174. }
He who fails to plan is planning to fail

User avatar
Spir0x
Veteran Member
Veteran Member
Tunisia
Posts: 641
Joined: 7 years ago
Location: Tunisia
Contact:

#3

Post by Spir0x » 6 years ago

Ok bro and the best infector still have 3 errors now

Code: Select all

#include <zombie_escape>
#include <ze_multijump>
#include <ze_levels>

// Variables
new g_iKills[33], g_iBestInfecIndex

// Cvars
new cvar_give_multijump, cvar_show_chat_notice, cvar_give_xp, cvar_give_escape_coins, cvar_show_stats

public plugin_init()
{
	register_plugin("[ZE] Best Infector", "1.3", "Raheem")
	
	// Hook Chains
	RegisterHookChain(RG_CBasePlayer_Spawn, "Fw_PlayerSpawn_Post", 1)
	
	// Cvars
	cvar_give_multijump = register_cvar("ze_give_best_infector_multijump", "1")
	cvar_show_chat_notice = register_cvar("ze_best_infc_chat_notice", "1")
	cvar_give_xp = register_cvar("ze_best_infc_give_xp", "40")
	cvar_give_escape_coins = register_cvar("ze_best_infc_give_ec", "20")
	cvar_show_stats = register_cvar("ze_show_best_infec_stats", "1")
	
	// Commands
	register_clcmd("say /myinfects", "Cmd_BestInfectorStats")
}

public ze_roundend(WinTeam)
{
    if (!g_bOneTime)
    {
        // Messages Here
       
        g_bOneTime == true // Already shown one time then don't show it again else g_bOneTime goes false at the next start round
    }
}

public ze_user_infected(iVictim, iInfector)
{
	if (iInfector == 0)
		return

	g_iKills[iInfector]++
}

public Cmd_BestInfectorStats(id)
{
	Get_Best_Infector()
	
	switch (get_pcvar_num(cvar_show_stats))
	{
		case 1:
		{
			if (id == g_iBestInfecIndex)
			{
				ze_colored_print(id, "!tYou are now Best Infector !y[!g%d!y] !y:)", g_iKills[g_iBestInfecIndex])
			}
			else
			{
				ze_colored_print(id, "!tYour Infects !g%d!y, !tYou need !g%d !tInfects To be Best Infector!y.", g_iKills[id], g_iKills[g_iBestInfecIndex] - g_iKills[id])
			}
		}
		case 2:
		{
			if (id == g_iBestInfecIndex)
			{
				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_hudmessage(id, "You are now Best Infector [%d] :)", g_iKills[g_iBestInfecIndex])
			}
			else
			{
				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_hudmessage(id, "Your Infects %d, You need %d Infects To be Best Infector.", g_iKills[id], g_iKills[g_iBestInfecIndex] - g_iKills[id])
			}
		}
		case 3:
		{
			if (id == g_iBestInfecIndex)
			{
				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_dhudmessage(id, "You are now Best Infector [%d] :)", g_iKills[g_iBestInfecIndex])
			}
			else
			{
				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_dhudmessage(id, "Your Infects %d, You need %d Infects To be Best Infector.", g_iKills[id], g_iKills[g_iBestInfecIndex] - g_iKills[id])
			}
		}
	}
}

public Fw_PlayerSpawn_Post(id)
{
	if (get_pcvar_num(cvar_show_chat_notice) != 0)
	{
		if (g_iBestInfecIndex == 0 || g_iKills[g_iBestInfecIndex] == 0)
			return
		
		new szName[32]
		get_user_name(g_iBestInfecIndex, szName, charsmax(szName))
		
		if (get_pcvar_num(cvar_give_multijump) == 0)
		{
			ze_colored_print(id, "!tBest Infector was!y: !g%s !y|| !tInfects!y: !g%i !y|| !tAwards!y: !g%d Golds, %d XP!y.", szName, g_iKills[g_iBestInfecIndex], get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
		}
		else
		{
			ze_colored_print(id, "!tBest Infector was!y: !g%s !y|| !tInfects!y: !g%i !y|| !tAwards!y: !g%d Golds!y, !g%d XP!y, !gDouble!y-!gJump!y.", szName, g_iKills[g_iBestInfecIndex], get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
		}
	}
	
	if (get_pcvar_num(cvar_give_multijump) != 0)
	{
		if (g_iBestInfecIndex == 0 || g_iBestInfecIndex != id || g_iKills[g_iBestInfecIndex] == 0)
			return
		
		ze_give_user_multijump(g_iBestInfecIndex)
	}
	
	if (get_pcvar_num(cvar_give_xp) != 0 || get_pcvar_num(cvar_give_escape_coins) != 0)
	{
		if (g_iBestInfecIndex == 0 || g_iBestInfecIndex != id || g_iKills[g_iBestInfecIndex] == 0)
			return
		
		ze_set_escape_coins(g_iBestInfecIndex, get_pcvar_num(cvar_give_escape_coins) + ze_get_escape_coins(g_iBestInfecIndex))
		ze_set_user_xp(g_iBestInfecIndex, get_pcvar_num(cvar_give_xp) + ze_get_user_xp(g_iBestInfecIndex))
	}
}

public ze_game_started()
{
    set_task(5.0, "RestDamage")
    g_bOneTime = false
}

public RestKills()
{
	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
	{
		g_iKills[i] = 0
	}
}

public Get_Best_Infector()
{
	new iTemp = 0
	
	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
	{
		if (!is_user_connected(i))
			continue
		
		if (g_iKills[i] > iTemp)
		{
			iTemp = g_iKills[i]
			g_iBestInfecIndex = i
		}
	}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1036\\ f0\\ fs16 \n\\ par }
*/
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1252\\ deff0\\ deflang1036{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/

User avatar
Spir0x
Veteran Member
Veteran Member
Tunisia
Posts: 641
Joined: 7 years ago
Location: Tunisia
Contact:

#4

Post by Spir0x » 6 years ago

bro still same bug on best defender code u gave me .

User avatar
Spir0x
Veteran Member
Veteran Member
Tunisia
Posts: 641
Joined: 7 years ago
Location: Tunisia
Contact:

#5

Post by Spir0x » 6 years ago

Any solution for this codes ? i just wanted to show the chat message on round end becuz on round start there's too many messages. thanks

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#6

Post by Raheem » 6 years ago

Bro i think i do it you one time, you lost the plugin?
He who fails to plan is planning to fail

User avatar
Spir0x
Veteran Member
Veteran Member
Tunisia
Posts: 641
Joined: 7 years ago
Location: Tunisia
Contact:

#7

Post by Spir0x » 6 years ago

you did it but it's like this double chat messages on round end.

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#8

Post by Raheem » 5 years ago

OK post it and i'll fix it to you.
He who fails to plan is planning to fail

User avatar
Spir0x
Veteran Member
Veteran Member
Tunisia
Posts: 641
Joined: 7 years ago
Location: Tunisia
Contact:

#9

Post by Spir0x » 5 years ago

Best infector. i just want it on round end and only one chat messahe not double chat messages.

Code: Select all

#include <zombie_escape>
#include <ze_multijump>
#include <ze_levels>

// Variables
new g_iKills[33], g_iBestInfecIndex

// Cvars
new cvar_give_multijump, cvar_show_chat_notice, cvar_give_xp, cvar_give_escape_coins, cvar_show_stats

public plugin_init()
{
	register_plugin("[ZE] Best Infector", "1.3", "Raheem")
	
	// Hook Chains
	RegisterHookChain(RG_CBasePlayer_Spawn, "Fw_PlayerSpawn_Post", 1)
	
	// Cvars
	cvar_give_multijump = register_cvar("ze_give_best_infector_multijump", "1")
	cvar_show_chat_notice = register_cvar("ze_best_infc_chat_notice", "1")
	cvar_give_xp = register_cvar("ze_best_infc_give_xp", "40")
	cvar_give_escape_coins = register_cvar("ze_best_infc_give_ec", "20")
	cvar_show_stats = register_cvar("ze_show_best_infec_stats", "1")
	
	// Commands
	register_clcmd("say /myinfects", "Cmd_BestInfectorStats")
}

public ze_roundend()
{
	Get_Best_Infector()
}

public ze_user_infected(iVictim, iInfector)
{
	if (iInfector == 0)
		return

	g_iKills[iInfector]++
}

public Cmd_BestInfectorStats(id)
{
	Get_Best_Infector()
	
	switch (get_pcvar_num(cvar_show_stats))
	{
		case 1:
		{
			if (id == g_iBestInfecIndex)
			{
				ze_colored_print(id, "!tYou are now Best Infector !y[!g%d!y] !y:)", g_iKills[g_iBestInfecIndex])
			}
			else
			{
				ze_colored_print(id, "!tYour Infects !g%d!y, !tYou need !g%d !tInfects To be Best Infector!y.", g_iKills[id], g_iKills[g_iBestInfecIndex] - g_iKills[id])
			}
		}
		case 2:
		{
			if (id == g_iBestInfecIndex)
			{
				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_hudmessage(id, "You are now Best Infector [%d] :)", g_iKills[g_iBestInfecIndex])
			}
			else
			{
				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_hudmessage(id, "Your Infects %d, You need %d Infects To be Best Infector.", g_iKills[id], g_iKills[g_iBestInfecIndex] - g_iKills[id])
			}
		}
		case 3:
		{
			if (id == g_iBestInfecIndex)
			{
				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_dhudmessage(id, "You are now Best Infector [%d] :)", g_iKills[g_iBestInfecIndex])
			}
			else
			{
				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_dhudmessage(id, "Your Infects %d, You need %d Infects To be Best Infector.", g_iKills[id], g_iKills[g_iBestInfecIndex] - g_iKills[id])
			}
		}
	}
}

public Fw_PlayerSpawn_Post(id)
{
	if (get_pcvar_num(cvar_show_chat_notice) != 0)
	{
		if (g_iBestInfecIndex == 0 || g_iKills[g_iBestInfecIndex] == 0)
			return
		
		new szName[32]
		get_user_name(g_iBestInfecIndex, szName, charsmax(szName))
		
		if (get_pcvar_num(cvar_give_multijump) == 0)
		{
			ze_colored_print(id, "!tBest Infector was!y: !g%s !y|| !tInfects!y: !g%i !y|| !tAwards!y: !g%d Golds, %d XP!y.", szName, g_iKills[g_iBestInfecIndex], get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
		}
		else
		{
			ze_colored_print(id, "!tBest Infector was!y: !g%s !y|| !tInfects!y: !g%i !y|| !tAwards!y: !g%d Golds!y, !g%d XP!y, !gDouble!y-!gJump!y.", szName, g_iKills[g_iBestInfecIndex], get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
		}
	}
	
	if (get_pcvar_num(cvar_give_multijump) != 0)
	{
		if (g_iBestInfecIndex == 0 || g_iBestInfecIndex != id || g_iKills[g_iBestInfecIndex] == 0)
			return
		
		ze_give_user_multijump(g_iBestInfecIndex)
	}
	
	if (get_pcvar_num(cvar_give_xp) != 0 || get_pcvar_num(cvar_give_escape_coins) != 0)
	{
		if (g_iBestInfecIndex == 0 || g_iBestInfecIndex != id || g_iKills[g_iBestInfecIndex] == 0)
			return
		
		ze_set_escape_coins(g_iBestInfecIndex, get_pcvar_num(cvar_give_escape_coins) + ze_get_escape_coins(g_iBestInfecIndex))
		ze_set_user_xp(g_iBestInfecIndex, get_pcvar_num(cvar_give_xp) + ze_get_user_xp(g_iBestInfecIndex))
	}
}

public ze_game_started()
{
	set_task(5.0, "RestKills")
}

public RestKills()
{
	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
	{
		g_iKills[i] = 0
	}
}

public Get_Best_Infector()
{
	new iTemp = 0
	
	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
	{
		if (!is_user_connected(i))
			continue
		
		if (g_iKills[i] > iTemp)
		{
			iTemp = g_iKills[i]
			g_iBestInfecIndex = i
		}
	}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1036\\ f0\\ fs16 \n\\ par }
*/
Best defender like infector too.

Code: Select all

#include <zombie_escape>
#include <ze_multijump>
#include <ze_levels>

// Variables
new Float:g_fDamage[33], g_iBestDefIndex

// Cvars
new cvar_give_multijump, cvar_show_chat_notice, cvar_give_xp, cvar_give_escape_coins, cvar_show_stats

public plugin_init()
{
	register_plugin("[ZE] Best Defender", "1.3", "Raheem")
	
	// Hook Chains
	RegisterHookChain(RG_CBasePlayer_TakeDamage, "Fw_TakeDamage_Post", 1)
	RegisterHookChain(RG_CBasePlayer_Spawn, "Fw_PlayerSpawn_Post", 1)
	
	// Cvars
	cvar_give_multijump = register_cvar("ze_give_multijump", "1")
	cvar_show_chat_notice = register_cvar("ze_best_def_chat_notice", "1")
	cvar_give_xp = register_cvar("ze_best_def_give_xp", "40")
	cvar_give_escape_coins = register_cvar("ze_best_def_give_ec", "20")
	cvar_show_stats = register_cvar("ze_show_best_def_stats", "1")
	
	// Commands
	register_clcmd("say /mydamage", "Cmd_BestDefenderStats")
}

public Fw_TakeDamage_Post(iVictim, iInflictor, iAttacker, Float:fDamage, bitsDamageType)
{
	if (!is_user_alive(iVictim) || !is_user_alive(iAttacker))
		return HC_CONTINUE
	
	g_fDamage[iAttacker] += fDamage
	return HC_CONTINUE
}

public Cmd_BestDefenderStats(id)
{
	Get_Best_Defender()
	
	switch (get_pcvar_num(cvar_show_stats))
	{
		case 1:
		{
			if (id == g_iBestDefIndex)
			{
				ze_colored_print(id, "!tYou are now Best Defender !y[!g%d!y] !y:)", floatround(g_fDamage[g_iBestDefIndex]))
			}
			else
			{
				ze_colored_print(id, "!tYour Damage !g%d!y, !tYou need !g%d !tDamage To be Best Defender!y.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
			}
		}
		case 2:
		{
			if (id == g_iBestDefIndex)
			{
				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_hudmessage(id, "You are now Best Defender [%d] :)", floatround(g_fDamage[g_iBestDefIndex]))
			}
			else
			{
				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_hudmessage(id, "Your Damage %d, You need %d Damage To be Best Defender.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
			}
		}
		case 3:
		{
			if (id == g_iBestDefIndex)
			{
				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_dhudmessage(id, "You are now Best Defender [%d] :)", floatround(g_fDamage[g_iBestDefIndex]))
			}
			else
			{
				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_dhudmessage(id, "Your Damage %d, You need %d Damage To be Best Defender.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
			}
		}
	}
}

public ze_roundend(WinTeam)
{
	Get_Best_Defender()
	
	if (get_pcvar_num(cvar_show_chat_notice) != 0)
	{
		new szName[32]
		get_user_name(g_iBestDefIndex, szName, charsmax(szName))
		
		if (g_iBestDefIndex == 0 || g_fDamage[g_iBestDefIndex] == 0.0)
			return
		
		if (get_pcvar_num(cvar_give_multijump) == 0)
		{
			for(new id = 1; id <= 32; id++)
			{
				if (!is_user_connected(id))
					continue
				
				ze_colored_print(id, "!tBest Defender was!y: !g%s !y|| !tDamage!y: !g%i !y|| !tAwards!y: !g%d Golds!y, !g%d XP!y.", szName, floatround(g_fDamage[g_iBestDefIndex]), get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
			}
		}
		else
		{
			for(new id = 1; id <= 32; id++)
			{
				if (!is_user_connected(id))
					continue
				
				ze_colored_print(id, "!tBest Defender was!y: !g%s !y|| !tDamage!y: !g%i !y|| !tAwards!y: !g%d Golds!y, !g%d XP!y, !gDouble!y-!gJump!y.", szName, floatround(g_fDamage[g_iBestDefIndex]), get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
			}
		}
	}
}

public Fw_PlayerSpawn_Post(id)
{
	if (get_pcvar_num(cvar_give_multijump) != 0)
	{
		if (g_iBestDefIndex == 0 || g_iBestDefIndex != id || g_fDamage[g_iBestDefIndex] == 0.0)
			return
		
		ze_give_user_multijump(g_iBestDefIndex)
	}
	
	if (get_pcvar_num(cvar_give_xp) != 0 || get_pcvar_num(cvar_give_escape_coins) != 0)
	{
		if (g_iBestDefIndex == 0 || g_iBestDefIndex != id || g_fDamage[g_iBestDefIndex] == 0.0)
			return
		
		ze_set_escape_coins(g_iBestDefIndex, get_pcvar_num(cvar_give_escape_coins) + ze_get_escape_coins(g_iBestDefIndex))
		ze_set_user_xp(g_iBestDefIndex, get_pcvar_num(cvar_give_xp) + ze_get_user_xp(g_iBestDefIndex))
	}
}

public ze_game_started()
{
	set_task(5.0, "RestDamage")
}

public RestDamage()
{
	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
	{
		g_fDamage[i] = 0.0
	}
}

public Get_Best_Defender()
{
	new Float:fTemp = 0.0
	
	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
	{
		if (!is_user_connected(i))
			continue
		
		if (g_fDamage[i] > fTemp)
		{
			fTemp = g_fDamage[i]
			g_iBestDefIndex = i
		}
	}
}

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#10

Post by Raheem » 5 years ago

Try:
  • Code: Select all

    #include <zombie_escape>
    #include <ze_multijump>
    #include <ze_levels>
    
    // Variables
    new g_iKills[33], g_iBestInfecIndex, bool:g_bPrinted = false
    
    // Cvars
    new cvar_give_multijump, cvar_show_chat_notice, cvar_give_xp, cvar_give_escape_coins, cvar_show_stats
    
    public plugin_init()
    {
    	register_plugin("[ZE] Best Infector", "1.3", "Raheem")
    	
    	// Hook Chains
    	RegisterHookChain(RG_CBasePlayer_Spawn, "Fw_PlayerSpawn_Post", 1)
    	
    	// Cvars
    	cvar_give_multijump = register_cvar("ze_give_best_infector_multijump", "1")
    	cvar_show_chat_notice = register_cvar("ze_best_infc_chat_notice", "1")
    	cvar_give_xp = register_cvar("ze_best_infc_give_xp", "40")
    	cvar_give_escape_coins = register_cvar("ze_best_infc_give_ec", "20")
    	cvar_show_stats = register_cvar("ze_show_best_infec_stats", "1")
    	
    	// Commands
    	register_clcmd("say /myinfects", "Cmd_BestInfectorStats")
    }
    
    public ze_roundend()
    {
    	Get_Best_Infector()
    	
    	if (!g_bPrinted)
    	{
    		if (get_pcvar_num(cvar_show_chat_notice) != 0)
    		{
    			if (g_iBestInfecIndex == 0 || g_iKills[g_iBestInfecIndex] == 0)
    				return
    			
    			new szName[32]
    			get_user_name(g_iBestInfecIndex, szName, charsmax(szName))
    			
    			if (get_pcvar_num(cvar_give_multijump) == 0)
    			{
    				ze_colored_print(0, "!tBest Infector was!y: !g%s !y|| !tInfects!y: !g%i !y|| !tAwards!y: !g%d Golds, %d XP!y.", szName, g_iKills[g_iBestInfecIndex], get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
    			}
    			else
    			{
    				ze_colored_print(0, "!tBest Infector was!y: !g%s !y|| !tInfects!y: !g%i !y|| !tAwards!y: !g%d Golds!y, !g%d XP!y, !gDouble!y-!gJump!y.", szName, g_iKills[g_iBestInfecIndex], get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
    			}
    		}
    		
    		g_bPrinted = true
    	}
    }
    
    public ze_user_infected(iVictim, iInfector)
    {
    	if (iInfector == 0)
    		return
    
    	g_iKills[iInfector]++
    }
    
    public Cmd_BestInfectorStats(id)
    {
    	Get_Best_Infector()
    	
    	switch (get_pcvar_num(cvar_show_stats))
    	{
    		case 1:
    		{
    			if (id == g_iBestInfecIndex)
    			{
    				ze_colored_print(id, "!tYou are now Best Infector !y[!g%d!y] !y:)", g_iKills[g_iBestInfecIndex])
    			}
    			else
    			{
    				ze_colored_print(id, "!tYour Infects !g%d!y, !tYou need !g%d !tInfects To be Best Infector!y.", g_iKills[id], g_iKills[g_iBestInfecIndex] - g_iKills[id])
    			}
    		}
    		case 2:
    		{
    			if (id == g_iBestInfecIndex)
    			{
    				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
    				show_hudmessage(id, "You are now Best Infector [%d] :)", g_iKills[g_iBestInfecIndex])
    			}
    			else
    			{
    				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
    				show_hudmessage(id, "Your Infects %d, You need %d Infects To be Best Infector.", g_iKills[id], g_iKills[g_iBestInfecIndex] - g_iKills[id])
    			}
    		}
    		case 3:
    		{
    			if (id == g_iBestInfecIndex)
    			{
    				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
    				show_dhudmessage(id, "You are now Best Infector [%d] :)", g_iKills[g_iBestInfecIndex])
    			}
    			else
    			{
    				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
    				show_dhudmessage(id, "Your Infects %d, You need %d Infects To be Best Infector.", g_iKills[id], g_iKills[g_iBestInfecIndex] - g_iKills[id])
    			}
    		}
    	}
    }
    
    public Fw_PlayerSpawn_Post(id)
    {
    	if (get_pcvar_num(cvar_give_multijump) != 0)
    	{
    		if (g_iBestInfecIndex == 0 || g_iBestInfecIndex != id || g_iKills[g_iBestInfecIndex] == 0)
    			return
    		
    		ze_give_user_multijump(g_iBestInfecIndex)
    	}
    	
    	if (get_pcvar_num(cvar_give_xp) != 0 || get_pcvar_num(cvar_give_escape_coins) != 0)
    	{
    		if (g_iBestInfecIndex == 0 || g_iBestInfecIndex != id || g_iKills[g_iBestInfecIndex] == 0)
    			return
    		
    		ze_set_escape_coins(g_iBestInfecIndex, get_pcvar_num(cvar_give_escape_coins) + ze_get_escape_coins(g_iBestInfecIndex))
    		ze_set_user_xp(g_iBestInfecIndex, get_pcvar_num(cvar_give_xp) + ze_get_user_xp(g_iBestInfecIndex))
    	}
    }
    
    public ze_game_started()
    {
    	set_task(5.0, "RestKills")
    	g_bPrinted = false
    }
    
    public RestKills()
    {
    	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
    	{
    		g_iKills[i] = 0
    	}
    }
    
    public Get_Best_Infector()
    {
    	new iTemp = 0
    	
    	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
    	{
    		if (!is_user_connected(i))
    			continue
    		
    		if (g_iKills[i] > iTemp)
    		{
    			iTemp = g_iKills[i]
    			g_iBestInfecIndex = i
    		}
    	}
    }
He who fails to plan is planning to fail

User avatar
Spir0x
Veteran Member
Veteran Member
Tunisia
Posts: 641
Joined: 7 years ago
Location: Tunisia
Contact:

#11

Post by Spir0x » 5 years ago

Good, bro best infector fixed. can you do it same as my best infector code ? the probleme is same as best infector doub chat messages

Code: Select all

#include <zombie_escape>
#include <ze_multijump>
#include <ze_levels>

// Variables
new Float:g_fDamage[33], g_iBestDefIndex

// Cvars
new cvar_give_multijump, cvar_show_chat_notice, cvar_give_xp, cvar_give_escape_coins, cvar_show_stats

public plugin_init()
{
	register_plugin("[ZE] Best Defender", "1.3", "Raheem")
	
	// Hook Chains
	RegisterHookChain(RG_CBasePlayer_TakeDamage, "Fw_TakeDamage_Post", 1)
	RegisterHookChain(RG_CBasePlayer_Spawn, "Fw_PlayerSpawn_Post", 1)
	
	// Cvars
	cvar_give_multijump = register_cvar("ze_give_multijump", "1")
	cvar_show_chat_notice = register_cvar("ze_best_def_chat_notice", "1")
	cvar_give_xp = register_cvar("ze_best_def_give_xp", "40")
	cvar_give_escape_coins = register_cvar("ze_best_def_give_ec", "20")
	cvar_show_stats = register_cvar("ze_show_best_def_stats", "1")
	
	// Commands
	register_clcmd("say /mydamage", "Cmd_BestDefenderStats")
}

public Fw_TakeDamage_Post(iVictim, iInflictor, iAttacker, Float:fDamage, bitsDamageType)
{
	if (!is_user_alive(iVictim) || !is_user_alive(iAttacker))
		return HC_CONTINUE
	
	g_fDamage[iAttacker] += fDamage
	return HC_CONTINUE
}

public Cmd_BestDefenderStats(id)
{
	Get_Best_Defender()
	
	switch (get_pcvar_num(cvar_show_stats))
	{
		case 1:
		{
			if (id == g_iBestDefIndex)
			{
				ze_colored_print(id, "!tYou are now Best Defender !y[!g%d!y] !y:)", floatround(g_fDamage[g_iBestDefIndex]))
			}
			else
			{
				ze_colored_print(id, "!tYour Damage !g%d!y, !tYou need !g%d !tDamage To be Best Defender!y.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
			}
		}
		case 2:
		{
			if (id == g_iBestDefIndex)
			{
				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_hudmessage(id, "You are now Best Defender [%d] :)", floatround(g_fDamage[g_iBestDefIndex]))
			}
			else
			{
				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_hudmessage(id, "Your Damage %d, You need %d Damage To be Best Defender.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
			}
		}
		case 3:
		{
			if (id == g_iBestDefIndex)
			{
				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_dhudmessage(id, "You are now Best Defender [%d] :)", floatround(g_fDamage[g_iBestDefIndex]))
			}
			else
			{
				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
				show_dhudmessage(id, "Your Damage %d, You need %d Damage To be Best Defender.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
			}
		}
	}
}

public ze_roundend(WinTeam)
{
	Get_Best_Defender()
	
	if (get_pcvar_num(cvar_show_chat_notice) != 0)
	{
		new szName[32]
		get_user_name(g_iBestDefIndex, szName, charsmax(szName))
		
		if (g_iBestDefIndex == 0 || g_fDamage[g_iBestDefIndex] == 0.0)
			return
		
		if (get_pcvar_num(cvar_give_multijump) == 0)
		{
			for(new id = 1; id <= 32; id++)
			{
				if (!is_user_connected(id))
					continue
				
				ze_colored_print(id, "!tBest Defender was!y: !g%s !y|| !tDamage!y: !g%i !y|| !tAwards!y: !g%d Golds!y, !g%d XP!y.", szName, floatround(g_fDamage[g_iBestDefIndex]), get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
			}
		}
		else
		{
			for(new id = 1; id <= 32; id++)
			{
				if (!is_user_connected(id))
					continue
				
				ze_colored_print(id, "!tBest Defender was!y: !g%s !y|| !tDamage!y: !g%i !y|| !tAwards!y: !g%d Golds!y, !g%d XP!y, !gDouble!y-!gJump!y.", szName, floatround(g_fDamage[g_iBestDefIndex]), get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
			}
		}
	}
}

public Fw_PlayerSpawn_Post(id)
{
	if (get_pcvar_num(cvar_give_multijump) != 0)
	{
		if (g_iBestDefIndex == 0 || g_iBestDefIndex != id || g_fDamage[g_iBestDefIndex] == 0.0)
			return
		
		ze_give_user_multijump(g_iBestDefIndex)
	}
	
	if (get_pcvar_num(cvar_give_xp) != 0 || get_pcvar_num(cvar_give_escape_coins) != 0)
	{
		if (g_iBestDefIndex == 0 || g_iBestDefIndex != id || g_fDamage[g_iBestDefIndex] == 0.0)
			return
		
		ze_set_escape_coins(g_iBestDefIndex, get_pcvar_num(cvar_give_escape_coins) + ze_get_escape_coins(g_iBestDefIndex))
		ze_set_user_xp(g_iBestDefIndex, get_pcvar_num(cvar_give_xp) + ze_get_user_xp(g_iBestDefIndex))
	}
}

public ze_game_started()
{
	set_task(5.0, "RestDamage")
}

public RestDamage()
{
	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
	{
		g_fDamage[i] = 0.0
	}
}

public Get_Best_Defender()
{
	new Float:fTemp = 0.0
	
	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
	{
		if (!is_user_connected(i))
			continue
		
		if (g_fDamage[i] > fTemp)
		{
			fTemp = g_fDamage[i]
			g_iBestDefIndex = i
		}
	}
}

User avatar
Spir0x
Veteran Member
Veteran Member
Tunisia
Posts: 641
Joined: 7 years ago
Location: Tunisia
Contact:

#12

Post by Spir0x » 5 years ago

[mention]Raheem[/mention] Bro !

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#13

Post by Raheem » 5 years ago

Here you are:
  • Code: Select all

    #include <zombie_escape>
    #include <ze_multijump>
    #include <ze_levels>
    
    // Variables
    new Float:g_fDamage[33], g_iBestDefIndex, bool:g_bPrinted = false
    
    // Cvars
    new cvar_give_multijump, cvar_show_chat_notice, cvar_give_xp, cvar_give_escape_coins, cvar_show_stats
    
    public plugin_init()
    {
    	register_plugin("[ZE] Best Defender", "1.3", "Raheem")
    	
    	// Hook Chains
    	RegisterHookChain(RG_CBasePlayer_TakeDamage, "Fw_TakeDamage_Post", 1)
    	RegisterHookChain(RG_CBasePlayer_Spawn, "Fw_PlayerSpawn_Post", 1)
    	
    	// Cvars
    	cvar_give_multijump = register_cvar("ze_give_multijump", "1")
    	cvar_show_chat_notice = register_cvar("ze_best_def_chat_notice", "1")
    	cvar_give_xp = register_cvar("ze_best_def_give_xp", "40")
    	cvar_give_escape_coins = register_cvar("ze_best_def_give_ec", "20")
    	cvar_show_stats = register_cvar("ze_show_best_def_stats", "1")
    	
    	// Commands
    	register_clcmd("say /mydamage", "Cmd_BestDefenderStats")
    }
    
    public Fw_TakeDamage_Post(iVictim, iInflictor, iAttacker, Float:fDamage, bitsDamageType)
    {
    	if (!is_user_alive(iVictim) || !is_user_alive(iAttacker))
    		return HC_CONTINUE
    	
    	g_fDamage[iAttacker] += fDamage
    	return HC_CONTINUE
    }
    
    public Cmd_BestDefenderStats(id)
    {
    	Get_Best_Defender()
    	
    	switch (get_pcvar_num(cvar_show_stats))
    	{
    		case 1:
    		{
    			if (id == g_iBestDefIndex)
    			{
    				ze_colored_print(id, "!tYou are now Best Defender !y[!g%d!y] !y:)", floatround(g_fDamage[g_iBestDefIndex]))
    			}
    			else
    			{
    				ze_colored_print(id, "!tYour Damage !g%d!y, !tYou need !g%d !tDamage To be Best Defender!y.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
    			}
    		}
    		case 2:
    		{
    			if (id == g_iBestDefIndex)
    			{
    				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
    				show_hudmessage(id, "You are now Best Defender [%d] :)", floatround(g_fDamage[g_iBestDefIndex]))
    			}
    			else
    			{
    				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
    				show_hudmessage(id, "Your Damage %d, You need %d Damage To be Best Defender.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
    			}
    		}
    		case 3:
    		{
    			if (id == g_iBestDefIndex)
    			{
    				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
    				show_dhudmessage(id, "You are now Best Defender [%d] :)", floatround(g_fDamage[g_iBestDefIndex]))
    			}
    			else
    			{
    				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
    				show_dhudmessage(id, "Your Damage %d, You need %d Damage To be Best Defender.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
    			}
    		}
    	}
    }
    
    public ze_roundend(WinTeam)
    {
    	Get_Best_Defender()
    	
    	if (!g_bPrinted)
    	{
    		if (get_pcvar_num(cvar_show_chat_notice) != 0)
    		{
    			new szName[32]
    			get_user_name(g_iBestDefIndex, szName, charsmax(szName))
    			
    			if (g_iBestDefIndex == 0 || g_fDamage[g_iBestDefIndex] == 0.0)
    				return
    			
    			if (get_pcvar_num(cvar_give_multijump) == 0)
    			{
    				for(new id = 1; id <= 32; id++)
    				{
    					if (!is_user_connected(id))
    						continue
    					
    					ze_colored_print(id, "!tBest Defender was!y: !g%s !y|| !tDamage!y: !g%i !y|| !tAwards!y: !g%d Golds!y, !g%d XP!y.", szName, floatround(g_fDamage[g_iBestDefIndex]), get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
    				}
    			}
    			else
    			{
    				for(new id = 1; id <= 32; id++)
    				{
    					if (!is_user_connected(id))
    						continue
    					
    					ze_colored_print(id, "!tBest Defender was!y: !g%s !y|| !tDamage!y: !g%i !y|| !tAwards!y: !g%d Golds!y, !g%d XP!y, !gDouble!y-!gJump!y.", szName, floatround(g_fDamage[g_iBestDefIndex]), get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
    				}
    			}
    		}
    		
    		g_bPrinted = true
    	}
    }
    
    public Fw_PlayerSpawn_Post(id)
    {
    	if (get_pcvar_num(cvar_give_multijump) != 0)
    	{
    		if (g_iBestDefIndex == 0 || g_iBestDefIndex != id || g_fDamage[g_iBestDefIndex] == 0.0)
    			return
    		
    		ze_give_user_multijump(g_iBestDefIndex)
    	}
    	
    	if (get_pcvar_num(cvar_give_xp) != 0 || get_pcvar_num(cvar_give_escape_coins) != 0)
    	{
    		if (g_iBestDefIndex == 0 || g_iBestDefIndex != id || g_fDamage[g_iBestDefIndex] == 0.0)
    			return
    		
    		ze_set_escape_coins(g_iBestDefIndex, get_pcvar_num(cvar_give_escape_coins) + ze_get_escape_coins(g_iBestDefIndex))
    		ze_set_user_xp(g_iBestDefIndex, get_pcvar_num(cvar_give_xp) + ze_get_user_xp(g_iBestDefIndex))
    	}
    }
    
    public ze_game_started()
    {
    	set_task(5.0, "RestDamage")
    	g_bPrinted = false
    }
    
    public RestDamage()
    {
    	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
    	{
    		g_fDamage[i] = 0.0
    	}
    }
    
    public Get_Best_Defender()
    {
    	new Float:fTemp = 0.0
    	
    	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
    	{
    		if (!is_user_connected(i))
    			continue
    		
    		if (g_fDamage[i] > fTemp)
    		{
    			fTemp = g_fDamage[i]
    			g_iBestDefIndex = i
    		}
    	}
    }
In the next version of the Mod the duplicate of calling the end round forward will be fixed.
He who fails to plan is planning to fail

johnnysins2000
Veteran Member
Veteran Member
Paraguay
Posts: 678
Joined: 7 years ago
Location: Paraguay
Contact:

#14

Post by johnnysins2000 » 5 years ago

Raheem wrote: 5 years ago Here you are:
  • Code: Select all

    #include <zombie_escape>
    #include <ze_multijump>
    #include <ze_levels>
    
    // Variables
    new Float:g_fDamage[33], g_iBestDefIndex, bool:g_bPrinted = false
    
    // Cvars
    new cvar_give_multijump, cvar_show_chat_notice, cvar_give_xp, cvar_give_escape_coins, cvar_show_stats
    
    public plugin_init()
    {
    	register_plugin("[ZE] Best Defender", "1.3", "Raheem")
    	
    	// Hook Chains
    	RegisterHookChain(RG_CBasePlayer_TakeDamage, "Fw_TakeDamage_Post", 1)
    	RegisterHookChain(RG_CBasePlayer_Spawn, "Fw_PlayerSpawn_Post", 1)
    	
    	// Cvars
    	cvar_give_multijump = register_cvar("ze_give_multijump", "1")
    	cvar_show_chat_notice = register_cvar("ze_best_def_chat_notice", "1")
    	cvar_give_xp = register_cvar("ze_best_def_give_xp", "40")
    	cvar_give_escape_coins = register_cvar("ze_best_def_give_ec", "20")
    	cvar_show_stats = register_cvar("ze_show_best_def_stats", "1")
    	
    	// Commands
    	register_clcmd("say /mydamage", "Cmd_BestDefenderStats")
    }
    
    public Fw_TakeDamage_Post(iVictim, iInflictor, iAttacker, Float:fDamage, bitsDamageType)
    {
    	if (!is_user_alive(iVictim) || !is_user_alive(iAttacker))
    		return HC_CONTINUE
    	
    	g_fDamage[iAttacker] += fDamage
    	return HC_CONTINUE
    }
    
    public Cmd_BestDefenderStats(id)
    {
    	Get_Best_Defender()
    	
    	switch (get_pcvar_num(cvar_show_stats))
    	{
    		case 1:
    		{
    			if (id == g_iBestDefIndex)
    			{
    				ze_colored_print(id, "!tYou are now Best Defender !y[!g%d!y] !y:)", floatround(g_fDamage[g_iBestDefIndex]))
    			}
    			else
    			{
    				ze_colored_print(id, "!tYour Damage !g%d!y, !tYou need !g%d !tDamage To be Best Defender!y.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
    			}
    		}
    		case 2:
    		{
    			if (id == g_iBestDefIndex)
    			{
    				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
    				show_hudmessage(id, "You are now Best Defender [%d] :)", floatround(g_fDamage[g_iBestDefIndex]))
    			}
    			else
    			{
    				set_hudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
    				show_hudmessage(id, "Your Damage %d, You need %d Damage To be Best Defender.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
    			}
    		}
    		case 3:
    		{
    			if (id == g_iBestDefIndex)
    			{
    				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
    				show_dhudmessage(id, "You are now Best Defender [%d] :)", floatround(g_fDamage[g_iBestDefIndex]))
    			}
    			else
    			{
    				set_dhudmessage(random(256), random(256), random(256), -1.0, 0.3, 2, 3.0, 5.0)
    				show_dhudmessage(id, "Your Damage %d, You need %d Damage To be Best Defender.", floatround(g_fDamage[id]), floatround(g_fDamage[g_iBestDefIndex] - g_fDamage[id]))
    			}
    		}
    	}
    }
    
    public ze_roundend(WinTeam)
    {
    	Get_Best_Defender()
    	
    	if (!g_bPrinted)
    	{
    		if (get_pcvar_num(cvar_show_chat_notice) != 0)
    		{
    			new szName[32]
    			get_user_name(g_iBestDefIndex, szName, charsmax(szName))
    			
    			if (g_iBestDefIndex == 0 || g_fDamage[g_iBestDefIndex] == 0.0)
    				return
    			
    			if (get_pcvar_num(cvar_give_multijump) == 0)
    			{
    				for(new id = 1; id <= 32; id++)
    				{
    					if (!is_user_connected(id))
    						continue
    					
    					ze_colored_print(id, "!tBest Defender was!y: !g%s !y|| !tDamage!y: !g%i !y|| !tAwards!y: !g%d Golds!y, !g%d XP!y.", szName, floatround(g_fDamage[g_iBestDefIndex]), get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
    				}
    			}
    			else
    			{
    				for(new id = 1; id <= 32; id++)
    				{
    					if (!is_user_connected(id))
    						continue
    					
    					ze_colored_print(id, "!tBest Defender was!y: !g%s !y|| !tDamage!y: !g%i !y|| !tAwards!y: !g%d Golds!y, !g%d XP!y, !gDouble!y-!gJump!y.", szName, floatround(g_fDamage[g_iBestDefIndex]), get_pcvar_num(cvar_give_escape_coins), get_pcvar_num(cvar_give_xp))
    				}
    			}
    		}
    		
    		g_bPrinted = true
    	}
    }
    
    public Fw_PlayerSpawn_Post(id)
    {
    	if (get_pcvar_num(cvar_give_multijump) != 0)
    	{
    		if (g_iBestDefIndex == 0 || g_iBestDefIndex != id || g_fDamage[g_iBestDefIndex] == 0.0)
    			return
    		
    		ze_give_user_multijump(g_iBestDefIndex)
    	}
    	
    	if (get_pcvar_num(cvar_give_xp) != 0 || get_pcvar_num(cvar_give_escape_coins) != 0)
    	{
    		if (g_iBestDefIndex == 0 || g_iBestDefIndex != id || g_fDamage[g_iBestDefIndex] == 0.0)
    			return
    		
    		ze_set_escape_coins(g_iBestDefIndex, get_pcvar_num(cvar_give_escape_coins) + ze_get_escape_coins(g_iBestDefIndex))
    		ze_set_user_xp(g_iBestDefIndex, get_pcvar_num(cvar_give_xp) + ze_get_user_xp(g_iBestDefIndex))
    	}
    }
    
    public ze_game_started()
    {
    	set_task(5.0, "RestDamage")
    	g_bPrinted = false
    }
    
    public RestDamage()
    {
    	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
    	{
    		g_fDamage[i] = 0.0
    	}
    }
    
    public Get_Best_Defender()
    {
    	new Float:fTemp = 0.0
    	
    	for (new i = 1; i <= get_member_game(m_nMaxPlayers); i++)
    	{
    		if (!is_user_connected(i))
    			continue
    		
    		if (g_fDamage[i] > fTemp)
    		{
    			fTemp = g_fDamage[i]
    			g_iBestDefIndex = i
    		}
    	}
    }
In the next version of the Mod the duplicate of calling the end round forward will be fixed.
I also did the same like u bro but I was getting compilation error... :/
Nobody Is That Busy If They Make Time :roll:

Post Reply

Create an account or sign in to join the discussion

You need to be a member in order to post a reply

Create an account

Not a member? register to join our community
Members can start their own topics & subscribe to topics
It’s free and only takes a minute

Register

Sign in

Who is online

Users browsing this forum: No registered users and 3 guests