Menu de Jugadores + Acciones
#1
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_maxplayersg_iPlayerName[65];

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
/** 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(szBuffercharsmax(szBuffer), "\wMenu de Jugadores \d(%i)"get_playersnum())
    
    new 
iMenu menu_create(szBuffer"mij_iHandler")
    
    for(new 
0<= g_maxplayersi++) {
        if(
is_user_connected(i)) {
            
get_user_name(ig_iPlayers32)
            
menu_additem(iMenug_iPlayers)
        }
    }
    
    
menu_setprop(iMenuMPROP_EXITNAME"Salir")
    
menu_setprop(iMenuMPROP_NEXTNAME"Siguiente")
    
menu_setprop(iMenuMPROP_BACKNAME"Atras")
    
menu_display(idiMenu0)
}
public 
mij_iHandler(idiMenuitem) {
    
    if(
item == MENU_EXIT) {
        
menu_destroy(iMenu)
        return 
PLUGIN_HANDLED;
    }
    
    new 
iData[6], iAccessiCallbackiName[64];
    
menu_item_getinfo(iMenuitemiAccessiData5iName63iCallback)
    
    switch(
item) {
        default: {
            new 
szBuffer[33];
            
formatex(szBuffercharsmax(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(menuMPROP_EXITNAME"Salir")
            
menu_setprop(menuMPROP_NEXTNAME"Siguiente")
            
menu_setprop(menuMPROP_BACKNAME"Atras")
            
menu_display(idmenu0)
        }
    }
    
    return 
PLUGIN_HANDLED;
}
public 
iActionsHandler(idmenuitem) {
    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_iKickMsgcharsmax(sz_iKickMsg), "< Has expulsado a: %s >"g_iPlayerName)
                
ShowHUD_Message(id, { 3025530 }, -1.00.651.0sz_iKickMsg)
            } else {
                
ColorChat(idprint_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_iBanMsgcharsmax(sz_iBanMsg), "< Has baneado a: %s >"g_iPlayerName)
                
ShowHUD_Message(id, { 3025530 }, -1.00.651.0sz_iBanMsg)
            } else {
                
ColorChat(idprint_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_iSlayMsgcharsmax(sz_iSlayMsg), "< Has matado a: %s >"g_iPlayerName)
                
ShowHUD_Message(id, { 3025530 }, -1.00.651.0sz_iSlayMsg)
            } else {
                
ColorChat(idprint_chat"!g[ADMIN]!y No tienes permisos requeridos! !g(!yADMIN SLAY!g)")
                return 
PLUGIN_HANDLED;
            }
        }
        
    }
    
    return 
PLUGIN_HANDLED;
}

/** STOCK: Gracias CsAxel **/
stock ShowHUD_Message(idiColors[3] = { 255255255 }, Float:fPosX = -1.0Float:fPosY = -1.0Float:fTime 0.0szMessage[])
{
    
set_hudmessage(000, -1.00, -1.0000.000.000.000.00false);
    for (new 
08i++) show_hudmessage(id"");
    
    
set_hudmessage(iColors[0], iColors[1], iColors[2], fPosXfPosY00.0fTime1.02.0false);
    
show_hudmessage(idszMessage);



Archivos adjuntos
.sma   Descargar AMXX / Menu+Acciones.sma (Tamaño: 3.86 KB / Descargas: 9)
Responder
#2
(19/05/2020, 11:32 AM)Nazy.- escribió: 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_maxplayersg_iPlayerName[65];

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
/** 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(szBuffercharsmax(szBuffer), "\wMenu de Jugadores \d(%i)"get_playersnum())
    
    new 
iMenu menu_create(szBuffer"mij_iHandler")
    
    for(new 
0<= g_maxplayersi++) {
        if(
is_user_connected(i)) {
            
get_user_name(ig_iPlayers32)
            
menu_additem(iMenug_iPlayers)
        }
    }
    
    
menu_setprop(iMenuMPROP_EXITNAME"Salir")
    
menu_setprop(iMenuMPROP_NEXTNAME"Siguiente")
    
menu_setprop(iMenuMPROP_BACKNAME"Atras")
    
menu_display(idiMenu0)
}
public 
mij_iHandler(idiMenuitem) {
    
    if(
item == MENU_EXIT) {
        
menu_destroy(iMenu)
        return 
PLUGIN_HANDLED;
    }
    
    new 
iData[6], iAccessiCallbackiName[64];
    
menu_item_getinfo(iMenuitemiAccessiData5iName63iCallback)
    
    switch(
item) {
        default: {
            new 
szBuffer[33];
            
formatex(szBuffercharsmax(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(menuMPROP_EXITNAME"Salir")
            
menu_setprop(menuMPROP_NEXTNAME"Siguiente")
            
menu_setprop(menuMPROP_BACKNAME"Atras")
            
menu_display(idmenu0)
        }
    }
    
    return 
PLUGIN_HANDLED;
}
public 
iActionsHandler(idmenuitem) {
    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_iKickMsgcharsmax(sz_iKickMsg), "< Has expulsado a: %s >"g_iPlayerName)
                
ShowHUD_Message(id, { 3025530 }, -1.00.651.0sz_iKickMsg)
            } else {
                
ColorChat(idprint_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_iBanMsgcharsmax(sz_iBanMsg), "< Has baneado a: %s >"g_iPlayerName)
                
ShowHUD_Message(id, { 3025530 }, -1.00.651.0sz_iBanMsg)
            } else {
                
ColorChat(idprint_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_iSlayMsgcharsmax(sz_iSlayMsg), "< Has matado a: %s >"g_iPlayerName)
                
ShowHUD_Message(id, { 3025530 }, -1.00.651.0sz_iSlayMsg)
            } else {
                
ColorChat(idprint_chat"!g[ADMIN]!y No tienes permisos requeridos! !g(!yADMIN SLAY!g)")
                return 
PLUGIN_HANDLED;
            }
        }
        
    }
    
    return 
PLUGIN_HANDLED;
}

/** STOCK: Gracias CsAxel **/
stock ShowHUD_Message(idiColors[3] = { 255255255 }, Float:fPosX = -1.0Float:fPosY = -1.0Float:fTime 0.0szMessage[])
{
    
set_hudmessage(000, -1.00, -1.0000.000.000.000.00false);
    for (new 
08i++) show_hudmessage(id"");
    
    
set_hudmessage(iColors[0], iColors[1], iColors[2], fPosXfPosY00.0fTime1.02.0false);
    
show_hudmessage(idszMessage);


Bro, no le puedes hacer que los bots/HLTV no te salgan en el menu, ni los usuarios con flag "a" (Inmunidad), solo los players normales?
espero lo hagas xd me ayudaria mucho. Mario
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)