Mensajes: 85
Temas: 23
Registro en: Apr 2014
Reputación:
0
me pueden hacer un menu de /mute algo asi como aca:
que se pueda a mutear a todos apretando el numero 1 para no andar muteando 1 cada 1 player
Mensajes: 2,571
Temas: 40
Registro en: Feb 2014
Reputación:
72
06/07/2014, 05:29 PM
(Última modificación: 29/07/2014, 02:48 AM por Mía.)
Código PHP: #include <amxmodx> #include <fakemeta>
#define PLUGIN "Menu de Mute" #define VERSION "0.1"
new g_bMuted[33], g_players[32], g_menucallback, cvar_alltalk;
#define is_player_muted(%0,%1) (g_bMuted[%0] & (1 << %1-1)) #define player_muted_all(%0) (g_bMuted[0] & (1 << %0-1))
public plugin_init() { register_plugin(PLUGIN, VERSION, "Mario AR."); register_clcmd("say /mute", "clcmd_mute", 0); register_forward(FM_Voice_SetClientListening, "fw_Voice"); g_menucallback = menu_makecallback("menu_mute_cb"); cvar_alltalk = get_cvar_pointer("sv_alltalk"); }
public client_putinserver(id) { g_bMuted[id] = 0; for (new i = 0; i <= 32; i++) g_bMuted[i] &= ~(1 << id-1); }
public fw_Voice(id, sender, listen) { if (id != sender && (player_muted_all(id) || is_player_muted(id, sender))) { engfunc(EngFunc_SetClientListening, id, sender, 0); return FMRES_SUPERCEDE; } return FMRES_IGNORED; }
public clcmd_mute(id, page) { static i, num, menu, szItem[46], szData[1]; menu = menu_create("Menu de Mute", "menu_mute"); menu_additem(menu, player_muted_all(id) ? "\rMutear a todos [\yON\r]" : "\rMutear a todos [\dOFF\r]"); if (!(num = get_pcvar_num(cvar_alltalk))) get_user_team(id, szItem, 11); get_players(g_players, num, num ? "" : "e", num ? "" : szItem); for (new a = 0; a < num; a++) { i = g_players[a]; get_user_name(i, szItem, 31); if (!player_muted_all(id) && is_player_muted(id, i)) add(szItem, charsmax(szItem), "\y [Muteado]"); szData[0] = i; menu_additem(menu, szItem, szData, 0, g_menucallback); } menu_setprop(menu, MPROP_BACKNAME, "Atras"); menu_setprop(menu, MPROP_NEXTNAME, "Siguiente^n"); menu_setprop(menu, MPROP_EXITNAME, "Salir"); menu_display(id, menu, page); }
public menu_mute_cb(id, menu, item) { if (player_muted_all(id) || id == g_players[item-1]) return ITEM_DISABLED; return ITEM_ENABLED; }
public menu_mute(id, menu, item) { switch (item) { case 0: { g_bMuted[0] ^= (1 << id-1); } case MENU_EXIT: { menu_destroy(menu); return PLUGIN_HANDLED; } default: { new szData[1], Junk; menu_item_getinfo(menu, item, Junk, szData, sizeof(szData), .callback = Junk); g_bMuted[id] ^= (1 << szData[0]-1); } } clcmd_mute(id, item/7); menu_destroy(menu); return PLUGIN_HANDLED; }
Mensajes: 144
Temas: 33
Registro en: May 2017
Reputación:
0
(06/07/2014, 05:29 PM)Mario AR. escribió: Código PHP: #include <amxmodx> #include <fakemeta>
#define PLUGIN "Menu de Mute" #define VERSION "0.1"
new g_bMuted[33], g_players[32], g_menucallback, cvar_alltalk;
#define is_player_muted(%0,%1) (g_bMuted[%0] & (1 << %1-1)) #define player_muted_all(%0) (g_bMuted[0] & (1 << %0-1))
public plugin_init() { register_plugin(PLUGIN, VERSION, "Mario AR."); register_clcmd("say /mute", "clcmd_mute", 0); register_forward(FM_Voice_SetClientListening, "fw_Voice"); g_menucallback = menu_makecallback("menu_mute_cb"); cvar_alltalk = get_cvar_pointer("sv_alltalk"); }
public client_putinserver(id) { g_bMuted[id] = 0; for (new i = 0; i <= 32; i++) g_bMuted[i] &= ~(1 << id-1); }
public fw_Voice(id, sender, listen) { if (id != sender && (player_muted_all(id) || is_player_muted(id, sender))) { engfunc(EngFunc_SetClientListening, id, sender, 0); return FMRES_SUPERCEDE; } return FMRES_IGNORED; }
public clcmd_mute(id, page) { static i, num, menu, szItem[46], szData[1]; menu = menu_create("Menu de Mute", "menu_mute"); menu_additem(menu, player_muted_all(id) ? "\rMutear a todos [\yON\r]" : "\rMutear a todos [\dOFF\r]"); if (!(num = get_pcvar_num(cvar_alltalk))) get_user_team(id, szItem, 11); get_players(g_players, num, num ? "" : "e", num ? "" : szItem); for (new a = 0; a < num; a++) { i = g_players[a]; get_user_name(i, szItem, 31); if (!player_muted_all(id) && is_player_muted(id, i)) add(szItem, charsmax(szItem), "\y [Muteado]"); szData[0] = i; menu_additem(menu, szItem, szData, 0, g_menucallback); } menu_setprop(menu, MPROP_BACKNAME, "Atras"); menu_setprop(menu, MPROP_NEXTNAME, "Siguiente^n"); menu_setprop(menu, MPROP_EXITNAME, "Salir"); menu_display(id, menu, page); }
public menu_mute_cb(id, menu, item) { if (player_muted_all(id) || id == g_players[item-1]) return ITEM_DISABLED; return ITEM_ENABLED; }
public menu_mute(id, menu, item) { switch (item) { case 0: { g_bMuted[0] ^= (1 << id-1); } case MENU_EXIT: { menu_destroy(menu); return PLUGIN_HANDLED; } default: { new szData[1], Junk; menu_item_getinfo(menu, item, Junk, szData, sizeof(szData), .callback = Junk); g_bMuted[id] ^= (1 << szData[0]-1); } } clcmd_mute(id, item/7); menu_destroy(menu); return PLUGIN_HANDLED; }
Este es solo para admins? (es que yo tengo el clasico mute menu) pero quiero uno solo para admins que mutie a x jugador para todos, y dejando igual el mute menu para usuario normal.
|