19/05/2020, 11:32 AM
Primero que nada, se que el AMXMODX ya trae esto por default, si, lo se, pero que pasa, esto puede servir para otras cosas, se puede modificar el menú, a base de esto se puede hacer tipo un Menu para regalar AmmoPacks para el ZP o un menú distinto, tipo si tienes un server donde hayan comandos los podes poner ahí, para regalar cosas como niveles y eso, lo hice también los primeros días de mi baneo y vuelvo y repito, ahorrense comentarios negativos que no ayudan en nada, cualquier CRITICA CONSTRUCTIVA me lo hacen saber...
Código PHP:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <api_chatcolor>
#define PLUGIN "Menu de Jugadores + Acciones"
#define VERSION "1.0"
#define AUTHOR "Nazy.-"
new g_maxplayers, g_iPlayerName[65];
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
/** Para abrir el menu necesitan tener el Flag A **/
register_concmd("amxx_jugadores", "cmd_iJugadores", ADMIN_LEVEL_A)
register_clcmd("say /jugadores", "cmd_iJugadores", ADMIN_LEVEL_A)
g_maxplayers = get_maxplayers();
}
public cmd_iJugadores(id) {
new g_iPlayers[33], szBuffer[100]
formatex(szBuffer, charsmax(szBuffer), "\wMenu de Jugadores \d(%i)", get_playersnum())
new iMenu = menu_create(szBuffer, "mij_iHandler")
for(new i = 0; i <= g_maxplayers; i++) {
if(is_user_connected(i)) {
get_user_name(i, g_iPlayers, 32)
menu_additem(iMenu, g_iPlayers)
}
}
menu_setprop(iMenu, MPROP_EXITNAME, "Salir")
menu_setprop(iMenu, MPROP_NEXTNAME, "Siguiente")
menu_setprop(iMenu, MPROP_BACKNAME, "Atras")
menu_display(id, iMenu, 0)
}
public mij_iHandler(id, iMenu, item) {
if(item == MENU_EXIT) {
menu_destroy(iMenu)
return PLUGIN_HANDLED;
}
new iData[6], iAccess, iCallback, iName[64];
menu_item_getinfo(iMenu, item, iAccess, iData, 5, iName, 63, iCallback)
switch(item) {
default: {
new szBuffer[33];
formatex(szBuffer, charsmax(szBuffer), "\wJugador: \d%s", iName)
new menu = menu_create(szBuffer, "iActionsHandler")
g_iPlayerName = iName
menu_additem(menu, "Expulsar")
menu_additem(menu, "Banear")
menu_additem(menu, "Asesinar")
menu_setprop(menu, MPROP_EXITNAME, "Salir")
menu_setprop(menu, MPROP_NEXTNAME, "Siguiente")
menu_setprop(menu, MPROP_BACKNAME, "Atras")
menu_display(id, menu, 0)
}
}
return PLUGIN_HANDLED;
}
public iActionsHandler(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu)
return PLUGIN_HANDLED;
}
switch(item) {
/* Expulsar */
case 0: {
if(get_user_flags(id) && ADMIN_KICK) {
server_cmd("kick %s ^"Has sido expulsado del servidor.^"", g_iPlayerName)
new sz_iKickMsg[40];
formatex(sz_iKickMsg, charsmax(sz_iKickMsg), "< Has expulsado a: %s >", g_iPlayerName)
ShowHUD_Message(id, { 30, 255, 30 }, -1.0, 0.65, 1.0, sz_iKickMsg)
} else {
ColorChat(id, print_chat, "!g[ADMIN]!y No tienes permisos requeridos! !g(!yADMIN KICK!g)")
return PLUGIN_HANDLED;
}
}
/* Banear */
case 1: {
if(get_user_flags(id) && ADMIN_BAN) {
server_cmd("amx_ban %s ^"Has sido baneado del servidor.^"", g_iPlayerName)
new sz_iBanMsg[40];
formatex(sz_iBanMsg, charsmax(sz_iBanMsg), "< Has baneado a: %s >", g_iPlayerName)
ShowHUD_Message(id, { 30, 255, 30 }, -1.0, 0.65, 1.0, sz_iBanMsg)
} else {
ColorChat(id, print_chat, "!g[ADMIN]!y No tienes permisos requeridos! !g(!yADMIN BAN!g)")
return PLUGIN_HANDLED;
}
}
/* Asesinar */
case 2: {
if(get_user_flags(id) && ADMIN_SLAY) {
server_cmd("amx_slay %s", g_iPlayerName)
new sz_iSlayMsg[40];
formatex(sz_iSlayMsg, charsmax(sz_iSlayMsg), "< Has matado a: %s >", g_iPlayerName)
ShowHUD_Message(id, { 30, 255, 30 }, -1.0, 0.65, 1.0, sz_iSlayMsg)
} else {
ColorChat(id, print_chat, "!g[ADMIN]!y No tienes permisos requeridos! !g(!yADMIN SLAY!g)")
return PLUGIN_HANDLED;
}
}
}
return PLUGIN_HANDLED;
}
/** STOCK: Gracias CsAxel **/
stock ShowHUD_Message(id, iColors[3] = { 255, 255, 255 }, Float:fPosX = -1.0, Float:fPosY = -1.0, Float:fTime = 0.0, szMessage[])
{
set_hudmessage(0, 0, 0, -1.00, -1.00, 0, 0.00, 0.00, 0.00, 0.00, false);
for (new i = 0; i < 8; i++) show_hudmessage(id, "");
set_hudmessage(iColors[0], iColors[1], iColors[2], fPosX, fPosY, 0, 0.0, fTime, 1.0, 2.0, false);
show_hudmessage(id, szMessage);
}