Re: [req] mod menu
Try
PHP Code:
#include <amxmodx> #include <hamsandwich> #include <fun> #define PLUGIN "Menu" #define VERSION "1.0" #define AUTHOR "EFFx" new bool:godmode[33],bool:noclip[33] new BlockTeams new bool:ff = false new AdminName[32] new const szPrefixo[] = "!g[SMenu]!y" public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) BlockTeams = register_cvar("block_teams","0") RegisterHam(Ham_Spawn,"player","Reset",1) register_clcmd("jointeam 2","Block") register_clcmd("jointeam 5","Block") register_clcmd("say /menu","ShowMenu") } public Reset(id) { if(is_user_alive(id)) { godmode[id] = false noclip[id] = false set_user_noclip(id,0) set_user_godmode(id,0) } } public Block(id) { if(get_pcvar_num(BlockTeams) == 1) { console_print(id,"[AMXX]: O ADMIN %s bloqueou o JoinTeam!",AdminName) return PLUGIN_HANDLED } return PLUGIN_CONTINUE } public ShowMenu(id) { if(get_user_flags(id) & ADMIN_BAN) { new szMenu = menu_create("Menu de Mod","menu_de_mod_handler") menu_additem(szMenu,"FF") menu_additem(szMenu,"Revive") menu_additem(szMenu,"No Clip") menu_additem(szMenu,"GodMode") menu_additem(szMenu,"Transferir") menu_additem(szMenu,"Bloquear Equipas") menu_display(id,szMenu) } else ChatColor(id,"%s Tu nao tens acesso ao menu!",szPrefixo) return PLUGIN_HANDLED } public menu_de_mod_handler(id,menu,item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new szAdminName[32] get_user_name(id,szAdminName,31) switch(item) { case 0: { switch(ff) { case 0: { server_cmd("mp_friendlyfire 1") ff = true ChatColor(id,"%s O staff!t %s!g ativou!y o!t FF",szPrefixo,szAdminName) } case 1: { server_cmd("mp_friendlyfire 0") ff = false ChatColor(id,"%s O staff!t %s!g desativou!y o!t FF",szPrefixo,szAdminName) } } } case 1: { ShowRevive(id) } case 2: { ShowNoClip(id) } case 3: { ShowGodMenu(id) } case 4: { client_cmd(id,"amx_teammenu") } case 5: { switch(get_pcvar_num(BlockTeams)) { case 0: { set_pcvar_num(BlockTeams,1) ChatColor(id,"%s O staff!t %s!g desbloqueou!y o!t JoinTeam",szPrefixo,szAdminName) copy(AdminName,charsmax(AdminName),szAdminName) } case 1: { set_pcvar_num(BlockTeams,0) ChatColor(id,"%s O staff!t %s!g bloqueou!y o!t JoinTeam",szPrefixo,szAdminName) copy(AdminName,charsmax(AdminName),szAdminName) } } } } return PLUGIN_HANDLED } public ShowGodMenu(id) { new menu = menu_create("GodMode Menu","godmode_handler"); new players[32], pnum, tempid; new szName[32], szTempid[10]; get_players(players, pnum); for( new i; i<pnum; i++ ) { tempid = players[i]; get_user_name(tempid, szName, 31); num_to_str(tempid, szTempid, 9); new menutxt[256] formatex(menutxt,255,"%s %s",szName,godmode[tempid] ? "\rdesativar" : "\yativar") menu_additem(menu, menutxt, szTempid, 0); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) } menu_display(id, menu, 0); return PLUGIN_HANDLED; } public godmode_handler(id, menu, item) { if( item == MENU_EXIT ) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], iName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,5, iName, 63, callback); new tempid = str_to_num(data); if(is_user_alive(tempid)) { switch(godmode[tempid]) { case 0: { set_user_godmode(tempid,1) godmode[tempid] = true new szName[32],szName2[32] get_user_name(id,szName,31) ChatColor(id,"%s O staff!t %s!g ativou!y o godmode do!t %s",szPrefixo,szName,szName2) } case 1: { set_user_godmode(tempid,0) godmode[tempid] = false new szName[32],szName2[32] get_user_name(id,szName,31) ChatColor(id,"%s O staff!t %s!g desativou!y o godmode do!t %s",szPrefixo,szName,szName2) } } } return PLUGIN_HANDLED; } public ShowNoClip(id) { new menu = menu_create("NoClip Menu","noclip_handler"); new players[32], pnum, tempid; new szName[32], szTempid[10]; get_players(players, pnum); for( new i; i<pnum; i++ ) { tempid = players[i]; get_user_name(tempid, szName, 31); num_to_str(tempid, szTempid, 9); new menutxt[256] formatex(menutxt,255,"%s %s",szName,noclip[tempid] ? "\rdesativar" : "\yativar") menu_additem(menu, menutxt, szTempid, 0); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) } menu_display(id, menu, 0); return PLUGIN_HANDLED; } public noclip_handler(id, menu, item) { if( item == MENU_EXIT ) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], iName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,5, iName, 63, callback); new tempid = str_to_num(data); if(is_user_alive(tempid)) { switch(noclip[tempid]) { case 0: { set_user_noclip(tempid,1) noclip[tempid] = true new szName[32],szName2[32] get_user_name(id,szName,31) get_user_name(tempid,szName2,31) ChatColor(id,"%s O staff!t %s!g ativou!y o noclip do!t %s",szPrefixo,szName,szName2) } case 1: { set_user_noclip(tempid,0) noclip[tempid] = false new szName[32],szName2[32] get_user_name(id,szName,31) ChatColor(id,"%s O staff!t %s!g desativou!y o noclip do!t %s",szPrefixo,szName,szName2) } } } return PLUGIN_HANDLED; } public ShowRevive(id) { new menu = menu_create("Revive Menu","revive_handler"); new players[32], pnum, tempid; new szName[32], szTempid[10]; get_players(players, pnum); for( new i; i<pnum; i++ ) { tempid = players[i]; get_user_name(tempid, szName, 31); num_to_str(tempid, szTempid, 9); menu_additem(menu, szName, szTempid, 0); menu_setprop(menu, MPROP_EXIT, MEXIT_ALL) } menu_display(id, menu, 0); return PLUGIN_HANDLED; } public revive_handler(id, menu, item) { if( item == MENU_EXIT ) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], iName[64]; new access, callback; menu_item_getinfo(menu, item, access, data,5, iName, 63, callback); new tempid = str_to_num(data); if(is_user_alive(tempid)) { ExecuteHam(Ham_CS_RoundRespawn,id) new szName[32],szName2[32] get_user_name(id,szName,31) get_user_name(tempid,szName2,31) ChatColor(id,"%s O staff!t %s!g reviveu!y o!t %s",szPrefixo,szName,szName2) } return PLUGIN_HANDLED; } stock ChatColor(const id, const input[], any:...) { new count = 1, players[ 32 ] static msg[ 191 ] vformat( msg, 190, input, 3 ) replace_all( msg, 190, "!g", "^4" ) replace_all( msg, 190, "!y", "^1" ) replace_all( msg, 190, "!t", "^3" ) if(id) players[ 0 ] = id; else get_players( players, count, "ch" ) { for(new i = 0; i < count; i++) { if( is_user_connected( players[ i ] ) ) { message_begin( MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[ i ] ) write_byte( players[ i ] ) write_string( msg ) message_end( ) } } } }
|