Witajcie, stworzyłem sobie menu z VIP Generatora, wygląda następująco:
Sprawa ma się tak:
1. Próbuję ustawić, aby opcja P90 była niedostępna i wyszarzała dla osoby bez Flagi ADMIN_LEVEL_H.
2. Chciałbym również, aby była możliwość wybrania broni poprzedniej, dopóki gracz nie wpisze np. komendy /bronie i wyskoczy mu menu na nowo.
Dodanie komendy register_clcmd nie uruchamia mi menu.
#include <amxmodx> #include <cstrike> #include <engine> #include <fun> #include <hamsandwich> forward amxbans_admin_connect(id); new bool:g_Vip[33], menu, menu_callback_handler, weapon_id; public plugin_init(){ register_plugin("VIP Ultimate", "12.3.0.2", "benio101 & speedkill"); RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1); } public client_authorized(id , const authid[]){ if(get_user_flags(id)){ client_authorized_vip(id); } } public client_authorized_vip(id){ g_Vip[id]=true; } public client_disconnected(id){ if(g_Vip[id]){ client_disconnect_vip(id); } } public client_disconnect_vip(id){ g_Vip[id]=false; } public menu_1_handler(id){ if(get_pdata_cbase(id, 368)==-1){ give_item(id, "weapon_mp5navy"); give_item(id, "ammo_9mm"); weapon_id=find_ent_by_owner(-1, "weapon_mp5navy", id); if(weapon_id)cs_set_weapon_ammo(weapon_id, 30); cs_set_user_bpammo(id, CSW_MP5NAVY, 120); } } public menu_4_handler(id){ if(get_pdata_cbase(id, 368)==-1){ give_item(id, "weapon_p90"); give_item(id, "ammo_57mm"); weapon_id=find_ent_by_owner(-1, "weapon_p90", id); if(weapon_id)cs_set_weapon_ammo(weapon_id, 50); cs_set_user_bpammo(id, CSW_P90, 100); } } public menu_2_handler(id){ if(get_pdata_cbase(id, 368)==-1){ give_item(id, "weapon_famas"); give_item(id, "ammo_556nato"); weapon_id=find_ent_by_owner(-1, "weapon_famas", id); if(weapon_id)cs_set_weapon_ammo(weapon_id, 25); cs_set_user_bpammo(id, CSW_FAMAS, 90); } } public menu_3_handler(id){ if(get_pdata_cbase(id, 368)==-1){ give_item(id, "weapon_ak47"); give_item(id, "ammo_762nato"); weapon_id=find_ent_by_owner(-1, "weapon_ak47", id); if(weapon_id)cs_set_weapon_ammo(weapon_id, 30); cs_set_user_bpammo(id, CSW_AK47, 90); } } public SpawnedEventPre(id){ if(g_Vip[id]){ if(is_user_alive(id)){ SpawnedEventPreVip(id); } } } public SpawnedEventPreVip(id){ show_vip_menu(id); } public show_vip_menu(id){ menu=menu_create("\rMenu VIPa","menu_handler"); menu_callback_handler=menu_makecallback("menu_callback"); new bool:active=false, num=-1; menu_additem(menu,"\wMP5","",0,menu_callback_handler); if(menu_callback(id, menu, ++num)==ITEM_ENABLED){ active=true; } menu_additem(menu,"\wFAMAS","",0,menu_callback_handler); if(menu_callback(id, menu, ++num)==ITEM_ENABLED){ active=true; } menu_additem(menu,"\wAK47","",0,menu_callback_handler); if(menu_callback(id, menu, ++num)==ITEM_ENABLED){ active=true; } menu_additem(menu,"\wP90","",0,menu_callback_handler); if(menu_callback(id, menu, ++num)==ITEM_ENABLED){ active=true; } if(active){ menu_setprop(menu,MPROP_EXITNAME,"Wyjscie"); menu_setprop(menu,MPROP_TITLE,"\yMenu Broni"); menu_setprop(menu,MPROP_NUMBER_COLOR,"\r"); menu_display(id, menu); } else { menu_destroy(menu); } } public menu_callback(id, menu, item){ if(is_user_alive(id)){ if(item==0){ return ITEM_ENABLED; } if(item==1){ return ITEM_ENABLED; } if(item==2){ return ITEM_ENABLED; } if(item==3){ return ITEM_ENABLED; } } return ITEM_DISABLED; } public menu_handler(id, menu, item){ if(is_user_alive(id)){ if(item==0){ menu_1_handler(id); } if(item==1){ menu_2_handler(id); } if(item==2){ menu_3_handler(id); } if(item==3){ menu_4_handler(id); } } menu_destroy(menu); return PLUGIN_HANDLED; } public amxbans_admin_connect(id){ client_authorized(id,""); }
Użytkownik szczypek1g edytował ten post 04.11.2021 20:28