#include <amxmodx> #include <amxmisc> #include <ColorChat> #include <fakemeta> #include <hamsandwich> new const gNazwaPluginu[] = "Interp Menu"; new const gWersjaPluginu[] = "0.5"; new const gAutorPluginu[] = "MisieQ"; #define ADMIN_UPRAWNIENIA ADMIN_BAN #define MAX_PLAYERS 32 #define SetUserReversed(%1) g_bMigraineux |= 1<<(%1 & 31) #define ClearUserReversed(%1) g_bMigraineux &= ~( 1<<(%1 & 31) ) #define HasUserMigraine(%1) g_bMigraineux & 1<<(%1 & 31) new bool:wybral_interp[33]; new bool:dostal_kare[33]; new const interp[][] = { "^x03 wybral interp^x04 0.01", "^x03 wybral interp^x04 0.02", "^x03 wybral interp^x04 0.03", "^x03 wybiera interp..." } new Map[32], Name[32]; new g_bMigraineux public plugin_init() { register_plugin(gNazwaPluginu, gWersjaPluginu, gAutorPluginu); RegisterHam(Ham_Spawn, "player", "fwSpawn", 1); register_concmd("amx_interp", "ustaw", ADMIN_UPRAWNIENIA, "<Nazwa Gracza>"); get_mapname(Map,sizeof Map - 1); } public client_authorized(id) { wybral_interp[id] = false dostal_kare[id] = false ClearUserReversed(id) } public client_disconnect(id) { wybral_interp[id] = false dostal_kare[id] = false ClearUserReversed(id) } public fwSpawn(id) { if (!is_user_alive(id)) return HAM_IGNORED; if(!wybral_interp[id]) { menu_interpu(id); } return HAM_IGNORED; } public menu_interpu(id) { new menu = menu_create("\wWybor \yInterpu:", "menu_interpu_1"); menu_additem(menu, "\w0.01", "0", 0); menu_addblank(menu,0) menu_additem(menu, "\y0.02", "1", 0); menu_addblank(menu,0) menu_additem(menu, "\r0.03", "2", 0); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_display(id,menu,0); return PLUGIN_CONTINUE; } public menu_interpu_1(id, menu, item) { new data[6], iName[64], acces, callback; menu_item_getinfo(menu, item, acces, data,sizeof data - 1, iName, sizeof iName - 1, callback); get_user_name(id, Name, sizeof Name - 1); new key = str_to_num(data); switch(key) { case 0: { client_cmd(id,"ex_interp 0.01") wybral_interp[id] = true; informacja(id, 0); menu_destroy(menu); } case 1: { client_cmd(id,"ex_interp 0.02") wybral_interp[id] = true; informacja(id, 1); menu_destroy(menu); } case 2: { client_cmd(id,"ex_interp 0.03") wybral_interp[id] = true; informacja(id, 2); menu_destroy(menu); } } return PLUGIN_HANDLED; } public informacja(id,itp) { get_user_name(id, Name, sizeof Name - 1); ColorChat(0, GREEN, "[^x03 %s^x04 ]^x03 Gracz^x04 %s %s",Map, Name, interp[itp]); } public ustaw(id,level,cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED; read_argv(1, Name, sizeof Name - 1); new player = cmd_target(id, Name, 0); if (!player) { console_print(id, "Przepraszamy, gracz %s nie moze zostac zlokalizowany!", Name); return PLUGIN_HANDLED; } else { ColorChat(0, GREEN, "[^x03 %s^x04 ]^x03 Admin wymusil ponowny wybor interpu dla gracza^x04 %s", Map, Name); wybral_interp[player] = false } return PLUGIN_CONTINUE; }
Wyjścia z menu nie da się raczej usunąć zrobiłem tak aby nie było kary. I jeżeli nie wybierze się interpu to on się sam ustawi.