#include <amxmodx>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#define PLUGIN "KNIFES MENU"
#define VERSION "1.0"
#define AUTHOR "author"
new g_arma_knife[33], kNivel[33], kReset[33], kSreset[33]
enum _:knife_caracter { Nombre[20], Csw_nombre, Nivel, Reset, Sreset, Float:Damage, Modelo_v[90], Modelo_p[90]}
new const knife_menu[][knife_caracter] =
{
{ "Seal Knife", CSW_KNIFE, 0, 0, 0, 0.8, "models/v_knife.mdl", "models/p_knife.mdl"},
{ "Claw Hammer", CSW_KNIFE, 30, 0, 0, 0.9, "models/weapons/v_clawhammer.mdl", "models/weapons/p_clawhammer.mdl"},
{ "Hunting Dagger", CSW_KNIFE, 240, 0, 0, 1.0, "models/weapons/v_hdagger.mdl", "models/weapons/p_hdagger.mdl"},
{ "Crowbar", CSW_KNIFE, 20, 1, 0, 1.1, "models/weapons/v_crowbar.mdl", "models/weapons/p_crowbar.mdl"},
{ "Nata Knife", CSW_KNIFE, 340, 1, 0, 1.2, "models/weapons/v_strong_knife.mdl", "models/weapons/p_strong_knife.mdl"},
{ "Machete", CSW_KNIFE, 25, 2, 0, 1.4, "models/weapons/v_machete.mdl", "models/weapons/p_machete.mdl"},
{ "Dragon Knife", CSW_KNIFE, 400, 2, 0, 1.5, "models/weapons/v_knifedragon.mdl", "models/weapons/p_knifedragon.mdl"},
{ "Combat Knife", CSW_KNIFE, 15, 4, 0, 1.5, "models/weapons/v_combatknife.mdl", "models/weapons/p_combatknife.mdl"},
{ "Master Combat Knife", CSW_KNIFE, 10, 5, 0, 1.5, "models/weapons/v_mastercombatknife.mdl", "models/weapons/p_mastercombatknife.mdl"},
{ "Parang", CSW_KNIFE, 50, 0, 1, 1.5, "models/weapons/v_axe.mdl", "models/weapons/p_axe.mdl"}
}
public plugin_init()
{
register_clcmd("say /knifes", "cmd_knife_ct")
register_event("CurWeapon", "event_CurWeapon_knife", "be", "1=1")
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
}
public plugin_precache() {
for(new i = 0 ; i < sizeof knife_menu ; i++)
{
if(!(equal(knife_menu[i][Modelo_v] , "default")))
precache_model(knife_menu[i][Modelo_v])
if(!(equal(knife_menu[i][Modelo_p] , "default")))
precache_model(knife_menu[i][Modelo_p])
}
}
public cmd_knife_ct(id) {
if(get_user_team(id) == 2) {
cmd_knife(id)
}
else {
}
}
public cmd_knife(id) {
new len[999] , temp[22], page
new menu_armas = menu_create("\y[\r\y]Knifes", "handler_knifes")
for(new i = 0 ; i < sizeof knife_menu ; i++)
{
if (kSreset[id] && kReset[id] && kNivel[id] >= knife_menu[i][Nivel], knife_menu[i][Reset], knife_menu[i][Sreset])
formatex(len , charsmax(len) , "\y%s \r[\yDisponible\r]" , knife_menu[i][Nombre])
else
formatex(len , charsmax(len) , "\d%s \y[Nivel:\r%d\y|Reset:\r%d\y|Super Reset:\r%d\y]", knife_menu[i][Nombre], knife_menu[i][Nivel], knife_menu[i][Reset], knife_menu[i][Sreset])
num_to_str(i, temp, 2)
menu_additem(menu_armas, len, temp)
}
menu_setprop(menu_armas , MPROP_BACKNAME,"\rAtras")
menu_setprop(menu_armas , MPROP_NEXTNAME,"\rSiguiente")
menu_setprop(menu_armas , MPROP_EXITNAME,"\r[Salir]")
menu_display(id, menu_armas , page)
return PLUGIN_HANDLED
}
public handler_knifes(id, menu, item)
{
if(item==MENU_EXIT)
return
for(new i = 0 ; i < sizeof knife_menu ; i++)
if(kSreset[id] && kReset[id] && kNivel[id] >= knife_menu[i][Nivel], knife_menu[i][Reset], knife_menu[i][Sreset])
{
give_item(id, "weapon_knife")
g_arma_knife[id] = item
}
else
{
client_print(id, print_center, "Nivel, Reset o Super Reset insuficiente para esta Knife")
cmd_knife(id)
return
}
return
}
public event_CurWeapon_knife(id)
{
if(!is_user_alive(id))
return 1
new weaponid = read_data(2)
if(weaponid == knife_menu[g_arma_knife[id]][Csw_nombre])
{
if(!equal(knife_menu[g_arma_knife[id]][Modelo_v] , "default"))
set_pev(id , pev_viewmodel2 , knife_menu[g_arma_knife[id]][Modelo_v])
if(!equal(knife_menu[g_arma_knife[id]][Modelo_p] , "default"))
set_pev(id , pev_weaponmodel2 , knife_menu[g_arma_knife[id]][Modelo_p])
}
return 0
}
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, bits)
{
if ( victim == attacker || !is_user_connected(attacker))
return HAM_IGNORED
if(get_user_weapon(attacker) == knife_menu[g_arma_knife[attacker]][Csw_nombre]) {
SetHamParamFloat(4 , damage *= knife_menu[g_arma_knife[attacker]][Damage])
}
return HAM_IGNORED;
}