// - Sistema de Cuchillos Simple y Rápido -
// - Creado por Emanuelitop15 | v1.0 -
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
new g_cuchi[33];
const CUCHI_ELEGIDO_PARA_TODOS = 0; // 0 Sería el primer cuchillo de la lista de abajo.
enum _: _data_cuchis { KNOMBRE[32], KMDL_V[121], KMDL_P[121] };
new const LISTA_DE_CUCHILLOS[][_data_cuchis] =
{
{ "Cuchillo de la Comu" , "models/v_knife.mdl", "models/p_knife.mdl", /*num del cuchillo = 0*/ },
{ "Cuchillo XD" , "models/v_knife.mdl", "models/p_knife.mdl", /*num del cuchillo = 1*/ },
{ "Cuchillo Buenardium" , "models/v_knife.mdl", "models/p_knife.mdl", /*num del cuchillo = 2*/ }
};
public plugin_init()
{
register_plugin("cuchillos S&R", "1.0", "Emanuelitop15");
RegisterHam(Ham_Item_Deploy, "weapon_knife", "ham_item_despositado_POST", true);
register_clcmd("say /cuchillos", "clcmd_menucuchis");
}
public plugin_precache() for (new k = 0; k < sizeof (LISTA_DE_CUCHILLOS); k++) precache_model(LISTA_DE_CUCHILLOS[k][KMDL_V]), precache_model(LISTA_DE_CUCHILLOS[k][KMDL_P]);
public client_putinserver(id)
{
g_cuchi[id] = CUCHI_ELEGIDO_PARA_TODOS;
}
public ham_item_despositado_POST(arma)
{
new id; id = fm_cs_get_weapon_ent_owner(arma);
if (!is_user_alive(id) || g_cuchi[id] == -1) return;
set_cuchi_mdl(id);
}
//----------- MENÚ -------------------
public clcmd_menucuchis(id)
{
menu_cuchis(id);
return PLUGIN_HANDLED;
}
menu_cuchis(id)
{
new menu, txt[91], pos[3];
menu = menu_create("\yLISTA DE CUCHILLOS\R\d", "hdr_cuchis");
for (new k = 0; k < sizeof (LISTA_DE_CUCHILLOS); k++)
{
if (g_cuchi[id] == k) format(txt, charsmax(txt), "\d%s \r(ACTUAL)", LISTA_DE_CUCHILLOS[k][KNOMBRE]);
else format(txt, charsmax(txt), LISTA_DE_CUCHILLOS[k][KNOMBRE]);
num_to_str(k, pos, 2);
menu_additem(menu, txt, pos);
}
menu_setprop(menu, MPROP_BACKNAME, "Volver");
menu_setprop(menu, MPROP_NEXTNAME, "Siguiente");
menu_setprop(menu, MPROP_EXITNAME, "Salir");
menu_display(id, menu);
}
public hdr_cuchis(id, m, i)
{
if (!is_user_connected(id) || i == MENU_EXIT)
{
menu_destroy(m);
return PLUGIN_HANDLED;
}
new szkey[6], acceso, cback, cuchi_num; menu_item_getinfo(m, i, acceso, szkey, charsmax(szkey), _, _, cback);
cuchi_num = str_to_num(szkey);
menu_destroy(m);
if (g_cuchi[id] == cuchi_num)
{
g_cuchi[id] = -1;
client_print_color(id, 0, "^4(CUCHILLOS)^1 | Se te ha removido tu cuchillo.");
return PLUGIN_HANDLED;
}
g_cuchi[id] = cuchi_num, client_print_color(id, 0, "^4(CUCHILLOS)^1 | Se te ha colocado el cuchillo:^3 %s^1", LISTA_DE_CUCHILLOS[ g_cuchi[id] ][KNOMBRE]);
if (get_user_weapon(id) == CSW_KNIFE) set_cuchi_mdl(id);
return PLUGIN_HANDLED;
}
// -----------------------------------------------------------------------------------------
stock fm_cs_get_weapon_ent_owner(ent)
{
return get_pdata_cbase(ent, 41, 4);
}
set_cuchi_mdl(id)
{
entity_set_string(id, EV_SZ_viewmodel, LISTA_DE_CUCHILLOS[ g_cuchi[id] ][KMDL_V]);
entity_set_string(id, EV_SZ_weaponmodel, LISTA_DE_CUCHILLOS[ g_cuchi[id] ][KMDL_P]);
}