#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <engine>
#define PLUGIN "Knife menu"
#define VERSION "1.0"
#define AUTHOR "kikizon"
new gKeys = ( (1<<0) | (1<<1) | (1<<2) | (1<<3) )
new gMenu[200], HasKnife[33]
new gNum[33]
//Aqui Van los modelos V_ de los knifes
new V_MODELS[][] = {
"v_knife1",
"v_knife2",
"v_knife3",
"v_knife4"
}
//Aqui van los modelos P_ de los knifes
new const P_MODELS[][] = {
"p_knife1",
"p_knife2",
"p_knife3",
"p_knife4"
}
//Aqui van los nombres que se mostraran en el menu
new const szModelNames[][] = {
"Knife 1",
"knife 2",
"knife 3",
"knife 4"
}
public plugin_precache()
{
new knifes[60]
for(new i; i < sizeof(V_MODELS); i++)
{
formatex(knifes, 99, "models/knifes_new/%s.mdl", V_MODELS[i]) // Aqui se puede editar la direccion de donde se encontraran los models
precache_model(knifes)
}
for(new i; i < sizeof(P_MODELS); i++)
{
formatex(knifes, 99, "models/knifes_new/%s.mdl", P_MODELS[i]) // Aqui se puede editar la direccion de donde se encontraran los models
precache_model(knifes)
}
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /knife", "show_knife_menu")
register_menucmd(register_menuid("\rEscoge tu knife:^n"), gKeys, "menu_handler")
RegisterHam(Ham_Item_Deploy, "weapon_knife", "fw_ItemDeploy_Knife", true)
}
public show_knife_menu(id, level, cid)
{
new len, b
new _new[100]
for(new i; i < sizeof(V_MODELS); i++)
{
len = len + formatex(_new[len], charsmax(_new) - len, "%s\y%d. \w%s", len ? "^n" : "", ++b, szModelNames[i])
}
formatex(gMenu, charsmax(gMenu), "\rEscoge tu knife:^n%s", _new)
show_menu(id, gKeys, gMenu, 15)
return PLUGIN_CONTINUE
}
public menu_handler(id, key)
{
HasKnife[id] = 1
gNum[id] = key
engclient_cmd(id, "weapon_knife")
return PLUGIN_CONTINUE
}
public fw_ItemDeploy_Knife(ent) {
if(!is_valid_ent(ent))
return
new id = get_pdata_cbase(ent, 41, 4)
if(!is_user_admin(id) || get_user_team(id) != 2)
return
if(HasKnife[id] == 1) {
static model[150]
formatex(model, charsmax(model), "models/knifes_new/%s.mdl", V_MODELS[gNum[id]]) // Aqui Editas la direccion igual que en el precache
entity_set_string(id, EV_SZ_viewmodel, model)
formatex(model, charsmax(model), "models/knifes_new/%s.mdl", P_MODELS[HasKnife[id]]) // Aqui Editas la direccion igual que en el precache
entity_set_string(id, EV_SZ_weaponmodel, model)
}
}
public client_putinserver(id)
{
HasKnife[id] = 0
gNum[id] = 0
}
public client_disconnect(id)
{
HasKnife[id] = 0
gNum[id] = 0
}