Approved Best Defender

Gameplay Addons
User avatar
Raheem
Mod Developer
Mod Developer
Egypt
Posts: 1720
Joined: 1 Year Ago
Location: Egypt
Has thanked: 28 times
Been thanked: 78 times
Age: 21
Contact:

Re: Best Defender

#21

Post by Raheem » 4 Months Ago

In our new ZE version we make that native can't set user coins if he is not connected, so always should check if user connected or not. This is just a log error.

Fix here:
  • 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 ze_roundend()
    {
    	Get_Best_Defender()
    }
    
    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 Fw_PlayerSpawn_Post(id)
    {
    	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)
    		{
    			ze_colored_print(id, "!tBest Defender: !g%s. !tDamage: !g%i. !tAwards: !g%d XP, %d EC!y.", szName, floatround(g_fDamage[g_iBestDefIndex]), get_pcvar_num(cvar_give_xp), get_pcvar_num(cvar_give_escape_coins))
    		}
    		else
    		{
    			ze_colored_print(id, "!tBest Defender: !g%s. !tDamage: !g%i. !tAwards: !g%d XP, %d EC, Multi-Jump!y.", szName, floatround(g_fDamage[g_iBestDefIndex]), get_pcvar_num(cvar_give_xp), get_pcvar_num(cvar_give_escape_coins))
    		}
    	}
    	
    	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
    		
    		if (!is_user_connected(g_iBestDefIndex))
    			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
    		}
    	}
    }
You don't know? Learn and you will know.

User avatar
Muhammet20
Member
Member
Turkey
Posts: 43
Joined: 4 Months Ago
Has thanked: 2 times
Been thanked: 0
Contact:

#22

Post by Muhammet20 » 4 Months Ago

oh , raheem , good job bro , if i want anything i see you posted them , thanks you so much , but i have problem i want your help , in ze_no_block plugin when some one blocking , its not damaging , please help me and fast answer , thanks for best deffender plugin , bye

User avatar
Raheem
Mod Developer
Mod Developer
Egypt
Posts: 1720
Joined: 1 Year Ago
Location: Egypt
Has thanked: 28 times
Been thanked: 78 times
Age: 21
Contact:

#23

Post by Raheem » 4 Months Ago

Hey bro, You need to post your problem here: viewtopic.php?f=15&t=1929

About No Block plugin, it will not work with latest ReHLDS. In latest ReHLDS they removed the ability of player to block moving entity. So no need to use no block plugin.
You don't know? Learn and you will know.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest