This plugin will get the best defender in Humans teams based on the damage made. It will compare all players damage and the highest damage is the best defender. Best defender will be awarded double jumb and will be printed at the new round that he was best defender in the previous round.
say /mydamage Show player his damage and how much damage needed to became Best Defender.
Installation & Instructions:
Simply install it like any plugin. [*]You should install Multi-Jump Plugin so best defender get Multijump. Also you should run Levels-XP System so he get XP.
Changelog:
Spoiler!
Version: 1.0
First Release.
Version: 1.1
New Algorithm used to detect Highest one made damage.
New Cvar Added so you can give Best Defender some XP.
New Cvar Added so you can give Best Defender Some Escape Coins.
Chat Notice Message Updated with XP, EC Amounts.
Some Problems in Spawn Event has been fixed.
Version: 1.2
Fixed chat message problem it was show wrong values.
Fixed If no one make damage. Message won't appear and No one will be awarded.
Fixed problem related to resting damage counter at new round.
Added New Chat/Hud/DHud message for stats by command.
Version: 1.3 [Current Version]
Fixed some problems in code, I don't know how i make these mistakes.
Add damage to show to the best defender when he say /mydamage
Instead of Multijump why don't we reward him Some Escape Coins ?
Re: Best Defender
Posted: 12 Mar 2017, 21:15
by Night Fury
johnnysins2000 wrote: ↑7 years ago
Instead of Multijump why don't we reward him Some Escape Coins ?
It does both, it'd be better if he made Cvar!
Re: Best Defender
Posted: 15 Mar 2017, 12:49
by Raheem
I'll make this in the next Update nice idea.
Re: Best Defender
Posted: 26 Mar 2017, 18:45
by johnnysins2000
Raheem wrote: ↑7 years ago
I'll make this in the next Update nice idea.
And Some XP too if the User is using Level xp system
Re: Best Defender
Posted: 28 Mar 2017, 20:22
by Raheem
When i get time i'll make these nice ideas in the next versions.
Re: Best Defender
Posted: 07 Apr 2017, 09:44
by Raheem
New version Released.
Current Version Now: 1.1
Re: Best Defender
Posted: 07 May 2017, 07:16
by sam_bhosale4
Good plugins but needs some fixes raheem bro!
It Gives xp and coins even if no one defends! and shows 0 defend awards!
Please fix the values like minimum 800 or 1000 damage done needed to become best defender otherwise it keeps giving free xp and coins!
so it will balance it!
thanks!
#include <zombie_escape>
#include <ze_levels>
// Variables
new Float:g_fDamage[33], g_iBestDefIndex
// Cvars
new 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_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
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))
}
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
}
}
}
Re: Best Defender
Posted: 19 Aug 2018, 18:01
by czirimbolo
L 08/19/2018 - 18:40:10: [ZE] Invalid Player id (6)
L 08/19/2018 - 18:40:10: [AMXX] Displaying debug trace (plugin "ze_best_defender.amxx", version "1.3")
L 08/19/2018 - 18:40:10: [AMXX] Run time error 10: native error (native "ze_get_escape_coins")
L 08/19/2018 - 18:40:10: [AMXX] [0] ze_best_defender.sma::Fw_PlayerSpawn_Post (line 123)
Re: Best Defender
Posted: 22 Aug 2018, 17:16
by czirimbolo
can you fix this? I have everyday this error couple of times