for gun restore can any body restore weapons with full ammo.
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#define VERSION "1.5"
new g_enable, knife_fight, g_maxplayers, g_IsBot[33],
g_msgsync, g_PlayerWeapons[33], g_playername[33][32],
g_msgCurWeapon, cvar_showhud, cvar_offnoadm
new gBuyCommands[][] =
{
"usp", "glock", "deagle", "p228", "elites", "fn57", "m3", "xm1014", "mp5", "tmp", "p90", "mac10", "ump45", "ak47",
"galil", "famas", "sg552", "m4a1", "aug", "scout", "awp", "g3sg1", "sg550", "m249", "vest", "vesthelm", "flash", "hegren",
"sgren", "defuser", "nvgs", "shield", "primammo", "secammo", "km45", "9x19mm", "nighthawk", "228compact", "12gauge",
"autoshotgun", "smg", "mp", "c90", "cv47", "defender", "clarion", "krieg552", "bullpup", "magnum", "d3au1", "krieg550",
"buyammo1", "buyammo2"
}
public plugin_init()
{
register_plugin("Knife Fight", VERSION, "alan_el_more")
register_cvar("kf_version", VERSION, FCVAR_SERVER|FCVAR_SPONLY)
register_dictionary("Knife_Fight.txt")
g_enable = register_cvar("kf_enable", "1")
cvar_showhud = register_cvar("kf_showhud", "1")
cvar_offnoadm = register_cvar("kf_offnoadm", "1")
register_clcmd("say /kf", "cmdkf", ADMIN_KICK)
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1)
RegisterHam(Ham_Touch, "weaponbox", "fw_TouchWeapon")
RegisterHam(Ham_Touch, "armoury_entity", "fw_TouchWeapon")
RegisterHam(Ham_Touch, "weapon_shield", "fw_TouchWeapon")
g_msgsync = CreateHudSyncObj()
g_maxplayers = get_maxplayers()
for (new i; i < sizeof gBuyCommands; i++)
register_clcmd(gBuyCommands[i], "BlockBuyCommands")
register_event("CurWeapon", "event_cur_weapon", "b", "1=1")
g_msgCurWeapon = get_user_msgid("CurWeapon")
}
public cmdkf(id, level, cid)
{
if(get_pcvar_num(g_enable))
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
if(knife_fight)
{
if(get_pcvar_num(cvar_showhud))
{
set_hudmessage(255, 0, 0, 0.3, 0.0, 1, 0.0, 5.0, 1.0, 1.0, -1)
ShowSyncHudMsg(0, g_msgsync, "[KF] %L", LANG_PLAYER, "HUD_DISABLE_ADM", g_playername[id])
}
knife_fight = false
for(new id = 1;id <= g_maxplayers;id++)
{
if(is_user_alive(id))
restore_weapons(id)
}
}
else
{
if(get_pcvar_num(cvar_showhud))
{
set_hudmessage(255, 0, 0, 0.3, 0.0, 1, 0.0, 5.0, 1.0, 1.0, -1)
ShowSyncHudMsg(0, g_msgsync, "[KF] %L", LANG_PLAYER, "HUD_ENABLE", g_playername[id])
}
knife_fight = true
for(new id = 1;id <= g_maxplayers;id++)
{
if(is_user_alive(id))
{
g_PlayerWeapons[id] = pev(id , pev_weapons) &~ ( 1 << 31 )
strip_user_weapons(id)
give_item(id, "weapon_knife")
}
}
}
}
else
client_print(id, print_chat, "[KF] %L", id, "KF_DISABLE")
return PLUGIN_HANDLED
}
public event_round_start()
{
if(get_pcvar_num(cvar_offnoadm) && !fnGetAdms() && knife_fight)
{
knife_fight = false
if(get_pcvar_num(cvar_showhud))
{
set_hudmessage(255, 0, 0, 0.4, 0.0, 1, 0.0, 5.0, 1.0, 1.0, -1)
ShowSyncHudMsg(0, g_msgsync, "[KF] %L", LANG_PLAYER, "HUD_DISABLE")
}
return PLUGIN_HANDLED
}
if(knife_fight)
{
if(get_pcvar_num(cvar_showhud))
{
set_hudmessage(255, 0, 0, 0.4, 0.0, 1, 0.0, 5.0, 1.0, 1.0, -1)
ShowSyncHudMsg(0, g_msgsync, "[KF] %L", LANG_PLAYER, "HUD_KF")
}
}
return PLUGIN_CONTINUE
}
public fw_PlayerSpawn_Post(id)
{
if (!is_user_alive(id))
return
if(get_pcvar_num(g_enable) && knife_fight)
{
strip_user_weapons(id)
give_item(id, "weapon_knife")
}
}
public fw_TouchWeapon(weapon, id)
{
if (knife_fight && (1 <= id <= g_maxplayers) && !g_IsBot[id])
return HAM_SUPERCEDE
return HAM_IGNORED
}
public client_putinserver(id)
{
g_IsBot[id] = is_user_bot(id)
get_user_name(id, g_playername[id], charsmax(g_playername[]))
}
public client_infochanged(id)
get_user_name(id, g_playername[id], charsmax(g_playername[]))
public restore_weapons(id)
{
new iValue = g_PlayerWeapons[id]
for(new j = 1 ; j <= 30 ; j++)
{
if ((1 & (iValue >> j)) && (j != 2) && (j != CSW_C4) && (j != CSW_KNIFE))
{
static szWeapon[32]
get_weaponname(j, szWeapon, 31)
give_item(id, szWeapon)
}
}
}
fnGetAdms()
{
new adms, id
adms = 0
for(id = 1;id <= g_maxplayers;id++)
{
if(get_user_flags(id) & ADMIN_KICK)
adms++
}
return adms
}
public BlockBuyCommands(id)
return knife_fight ? PLUGIN_HANDLED : PLUGIN_CONTINUE
public event_cur_weapon(id)
{
if (!is_user_alive(id))
return;
if (knife_fight && !((1<<read_data(2)) & (1<<CSW_KNIFE)))
{
engclient_cmd(id, "weapon_knife")
emessage_begin(MSG_ONE, g_msgCurWeapon, _, id)
ewrite_byte(1)
ewrite_byte(CSW_KNIFE)
ewrite_byte(-1)
emessage_end()
}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang3082\\ f0\\ fs16 \n\\ par }
*/