PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <hamsandwich>
#define VERSION "1.2"
new g_enable, g_hud, kf_enable, knife_fight, g_maxplayers
new g_IsBot[33], g_IsConnected[33]
public plugin_init()
{
register_plugin("Knife Fight", "VERSION", "alan_el_more")
register_cvar("kf_version", VERSION, FCVAR_SERVER)
register_dictionary("Knife_Fight.txt")
g_enable = register_cvar("kf_enable", "1")
g_hud = register_cvar("kf_hud", "1")
register_clcmd("say /kf", "cmdkf", ADMIN_KICK)
register_clcmd("buy", "cmdbuy")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
RegisterHam(Ham_Touch, "weaponbox", "fw_TouchWeapon")
RegisterHam(Ham_Touch, "armoury_entity", "fw_TouchWeapon")
RegisterHam(Ham_Touch, "weapon_shield", "fw_TouchWeapon")
g_maxplayers = get_maxplayers()
}
public cmdkf(id, level, cid)
{
if(get_pcvar_num(g_enable))
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED;
if(kf_enable)
{
client_print(id, print_chat, "[KF] %L", id, "ALREADY_ENABLE")
return PLUGIN_HANDLED;
}
if(get_pcvar_num(g_hud))
{
new name[33]
get_user_name(id, name, 32)
set_hudmessage(255, 0, 0, 0.3, 0.0, 1, 0.0, 5.0, 1.0, 1.0, -1)
show_hudmessage(0, "[KF] %L", LANG_PLAYER, "HUD_ENABLE", name)
}
kf_enable = true
}
else
client_print(id, print_chat, "[KF] %L", id, "KF_DISABLE")
return PLUGIN_CONTINUE
}
public event_round_start()
{
if(!kf_enable)
return PLUGIN_HANDLED
if(!knife_fight)
knife_fight = true
else
knife_fight = false
set_hudmessage(255, 0, 0, 0.3, 0.0, 1, 0.0, 5.0, 1.0, 1.0, -1)
show_hudmessage(0, "[KF] %L", LANG_PLAYER, "HUD_FK")
for(new id = 1; id <= g_maxplayers; id++)
{
if(is_user_alive(id))
{
strip_user_weapons(id)
give_item(id, "weapon_knife")
}
}
kf_enable = false
return PLUGIN_CONTINUE
}
public fw_TouchWeapon(weapon, id)
{
if (knife_fight && (1 <= id <= g_maxplayers) && !g_IsBot[id])
return HAM_SUPERCEDE;
return HAM_IGNORED;
}
public cmdbuy(id)
{
if(knife_fight)
return PLUGIN_CONTINUE
return PLUGIN_HANDLED
}
public client_putinserver( id )
{
g_IsConnected[id] = true;
g_IsBot[id] = is_user_bot(id)
}
The problem is that when start a round with the knife fight on, the error (ED_Alloc: no free edicts) appears :S