Как передать определенному игроку costom нож через меню.
как правильно сделать, что я делаю не так?
"заранее благодарю"
как правильно сделать, что я делаю не так?
"заранее благодарю"
Код:
#include < amxmodx >
#include < hamsandwich >
#include < reapi >
#define PLUGIN "setknife"
#define VERSION "0.1"
#define AUTHOR "????"
#define ACCESS_FLAG ADMIN_LEVEL_C // Флаг которому доступно оружие. Закоментировать чтобы было доступно всем
new const KN_V_MODEL[] = "models/setknife/v_knife.mdl";
new const KN_P_MODEL[] = "models/setknife/p_knife.mdl";
//new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_0
new bool:g_bKnife[33]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("set_knife", "MenuPlayer")
RegisterHam(Ham_Item_Deploy, "weapon_knife", "HookItemDeploy", 1);
//register_menu("MenuCase", keys, "Menu_Handller")
}
public plugin_precache() {
precache_model(KN_V_MODEL);
precache_model(KN_P_MODEL);
}
public MenuPlayer(id)
{
new i_Menu = menu_create("Выберите игрока:", "menu_handle")
new s_Players[32], i_Num, i_Player
new s_Name[32], s_Player[10], text[128]
get_players(s_Players, i_Num)
for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]
get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))
formatex(text, charsmax(text), "%s", s_Name)
menu_additem(i_Menu, text, s_Player, 0)
}
menu_setprop(i_Menu, MPROP_EXITNAME, "Выход")
menu_setprop(i_Menu, MPROP_NEXTNAME, "Далее")
menu_setprop(i_Menu, MPROP_BACKNAME, "Назад")
menu_display(id, i_Menu, 0)
}
public menu_handle(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new s_Data[6], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Player = str_to_num(s_Data)
new name[32], name2[32]
get_user_name(id, name, 31)
get_user_name(i_Player, name2, 31)
if(g_bKnife[i_Player])
{
g_bKnife[i_Player] = false
client_print (id, print_chat, "Убрать нож - %s", name2);
}
else
{
g_bKnife[i_Player] = true
client_print (id, print_chat, "Дать нож - %s", name2);
}
menu_destroy(menu)
return PLUGIN_HANDLED
}
public HookItemDeploy(const weapon, const i_Player) {
new id = get_member(weapon, m_pPlayer);
if (!(get_user_flags(id) & ACCESS_FLAG)) {
return HAM_IGNORED;
}
if(is_user_alive(id) && g_bKnife[i_Player] == true) {
set_entvar(id, var_viewmodel, KN_V_MODEL);
set_entvar(id, var_weaponmodel, KN_P_MODEL);
}
return HAM_IGNORED;
}
Последнее редактирование: