Menu Principal
#1
Tengo un MENU PRINCIPAL que me gustaria que tenga un "EFECTO" que pueda "ACTIVAR / DESACTIVAR*

Ejemplo: OnlyHS [ACTIVADO] -> OnlyHS [DESACTIVADO]

Imagen: http://imgfz.com/i/7qfMnVR.png

Código PHP:
#include <amxmodx>
#include <amxmisc>

/*
\y <- amarillo
\w <- blanco
\r <- rojo
\d <- Gris
^n <- Espacio
*/

public plugin_init()
{
    register_plugin("Menu DeathMatch""1.0""[Anti]")
    register_clcmd("say /m""cmdMenu"// en caso de que no abra con la M
    register_clcmd("chooseteam""cmdMenu")
    register_menucmdregister_menuid"Team_Select"true ), (1<<0)|(1<<1)|(1<<4)|(1<<5), "HookTeamChoosing" ); 

}
public 
m(id)
{
    cmdMenu(id)
    return PLUGIN_HANDLED;
}
public 
cmdMenu(id)
{
    new gMenu menu_create("\wMenu Prinipal""handlerMenu"///Modifica el nombre por el que quieras

    menu_additem(gMenu"\dMenu de Administradores""1")
    menu_additem(gMenu"\wLista de Servidores^n""2")
    menu_additem(gMenu"\wReglas del servidor""3")
    menu_additem(gMenu"\wBeneficios de Administrador^n""4")
    menu_additem(gMenu"\wComprar Administrador""5")
    menu_setprop(gMenuMPROP_EXITNAME"Salir")
    menu_display(idgMenu0)
}
public 
handlerMenu(idmenuitem)
{
    if ( item == MENU_EXIT )
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED;
    }
    switch(item)
    {
        case 0:
        {
            client_cmd(id"amxmodmenu")
        }
        case 1:
        {
            client_cmd(id"say /server")
        }
        case 2:
        {
            client_cmd(id"say /reglas")
        }
        case 3:
        {
            client_cmd(id"say /comprar")
        }
        case 4:
        {
            client_cmd(id"say /pedido")
        }
    }
    return PLUGIN_HANDLED;

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\ rtf1\ ansi\ deff0{\ fonttbl{\ f0\ fnil Tahoma;}}
\ viewkind4\ uc1\ pard\ lang3082\ f0\ fs16 
\ par }
*/ 

Responder
#2
new bool:activeHS = false;

//handler

activeHS = !activeHS;
"Only HS personal %sctivado", activeHS ? "A" : "De"
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#3
(24/05/2021, 10:02 PM)Hinami escribió: new bool:activeHS = false;

//handler

activeHS = !activeHS;
"Only HS personal %sctivado", activeHS ? "A" : "De"

me lo pasas como código y decirme donde los agrego?

Responder
#4
Código PHP:
/* Sublime AMXX Editor v2.2 */

#include <amxmodx>

#define PLUGIN  "New Plug-In"
#define VERSION "1.0"
#define AUTHOR  "Author"

new bool:g_onlyhead[33] = false // Grax [N]rds

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)

    
register_clcmd("say /test""clcmd_menu")
}

public 
clcmd_menu(id)
{
    static 
menuformat[12]

    new 
menu menu_create("\yTesting \rMenu""handler_menu")
    
formatex(menuformatcharsmax(menuformat), "OnlyHeadshot Personal:\r %s"onlyhead[id]? "habilitado" "deshabilitado"// Hacemos un format o formatex para que muestre los %s etc
    
menu_additem(menumenuformat)

    
menu_setprop(menuMPROP_EXITNAME"\dSalir.")
    
menu_setprop(menuMPROP_EXITMEXIT_ALL)
    
menu_display(idmenu0)
}

public 
handler_menu(idmenuitem)
{
    if(
item == MENU_EXITmenu_destroy(menu)

    switch(
item//para los casos (case)
    
{
        case 
0:
        {
            if(
g_onlyhead[id]) // Si está habilitado ejecutara el true si no el false
                
g_onlyhead[id] = false
            
else 
                
g_onlyhead[id] = true
        
}
    }
    return 
PLUGIN_HANDLED;

Responder
#5
(25/05/2021, 04:47 PM)CARNAGE escribió:
Código PHP:
/* Sublime AMXX Editor v2.2 */

#include <amxmodx>

#define PLUGIN  "New Plug-In"
#define VERSION "1.0"
#define AUTHOR  "Author"

new bool:g_onlyhead[33] = false // Grax [N]rds

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)

    
register_clcmd("say /test""clcmd_menu")
}

public 
clcmd_menu(id)
{
    static 
menuformat[12]

    new 
menu menu_create("\yTesting \rMenu""handler_menu")
    
formatex(menuformatcharsmax(menuformat), "OnlyHeadshot Personal:\r %s"onlyhead[id]? "habilitado" "deshabilitado"// Hacemos un format o formatex para que muestre los %s etc
    
menu_additem(menumenuformat)

    
menu_setprop(menuMPROP_EXITNAME"\dSalir.")
    
menu_setprop(menuMPROP_EXITMEXIT_ALL)
    
menu_display(idmenu0)
}

public 
handler_menu(idmenuitem)
{
    if(
item == MENU_EXITmenu_destroy(menu)

    switch(
item//para los casos (case)
    
{
        case 
0:
        {
            if(
g_onlyhead[id]) // Si está habilitado ejecutara el true si no el false
                
g_onlyhead[id] = false
            
else 
                
g_onlyhead[id] = true
        
}
    }
    return 
PLUGIN_HANDLED;


Gracias pero me gustaria adaptarlo al sma que pase porque es un menu que lo abris con la letra "n"

Responder
#6
(25/05/2021, 07:38 PM)Mecha escribió: Gracias pero me gustaria adaptarlo al sma que pase porque es un menu que lo abris con la letra "n"

¿Quieres adaptarlo con la función del headshot en traceattack (Para que sea un only y no solo una opcion)?
Responder
#7
(25/05/2021, 07:52 PM)CARNAGE escribió: ¿Quieres adaptarlo con la función del headshot en traceattack (Para que sea un only y no solo una opcion)?

Me gustaria adaptarlo y que sea una funcion,

ejemplo 

1- Administrador
2- Servidores
3- OnlyHs Personal [Desactivado] 
4- Admins Conectados

Responder
#8
Código PHP:
/* Sublime AMXX Editor v2.2 */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <reapi>

/*
\y <- amarillo
\w <- blanco
\r <- rojo
\d <- Gris
^n <- Espacio
*/

new bool:only_player[33] = false 

public plugin_init()
{
    
register_plugin("Menu DeathMatch""1.0""[Anti]")
    
RegisterHookChain(RG_CBasePlayer_TraceAttack"CBasePlayer_TraceAttack", .post false)
    
register_clcmd("say /m""cmdMenu"// en caso de que no abra con la M
    
register_clcmd("chooseteam""cmdMenu")
    
register_menucmdregister_menuid"Team_Select"true ), (1<<0)|(1<<1)|(1<<4)|(1<<5), "HookTeamChoosing" ); 

}
public 
m(id)
{
    
cmdMenu(id)
    return 
PLUGIN_HANDLED;
}


public 
CBasePlayer_TraceAttackvictimattackerFloat:damageFloat:direction[3], tracedamageBits 
{
    if(
only_player[attacker])
    {
        if(
victim != attacker && (<= attacker <= get_maxplayers()) && get_tr2(traceTR_iHitgroup) != HIT_HEAD)
        {
            
set_tr2(traceTR_flFraction1.0)
            return 
HC_SUPERCEDE;
        }
    }
    return 
HC_CONTINUE;


public 
cmdMenu(id)
{
    new 
gMenu menu_create("\wMenu Prinipal""handlerMenu"///Modifica el nombre por el que quieras

    
menu_additem(gMenu"\dMenu de Administradores""1")
    
menu_additem(gMenuonly_player[id]? "Only Headshot Perso: \yActivado" "OnlyHeadshot Perso: \rDesactivado")
    
menu_additem(gMenu"\wLista de Servidores^n""2")
    
menu_additem(gMenu"\wReglas del servidor""3")
    
menu_additem(gMenu"\wBeneficios de Administrador^n""4")
    
menu_additem(gMenu"\wComprar Administrador""5")
    
menu_setprop(gMenuMPROP_EXITNAME"Salir")
    
menu_display(idgMenu0)
}
public 
handlerMenu(idmenuitem)
{
    if ( 
item == MENU_EXIT )
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED;
    }
    switch(
item)
    {
        case 
0:
        {
            
client_cmd(id"amxmodmenu")
        }
        case 
1:
        {
            if(
only_player[id]) only_player[id] = false
            
else only_player[id] = true
        
}
        case 
2:
        {
            
client_cmd(id"say /server")
        }
        case 
3:
        {
            
client_cmd(id"say /reglas")
        }
        case 
4:
        {
            
client_cmd(id"say /comprar")
        }
        case 
5:
        {
            
client_cmd(id"say /pedido")
        }
    }
    return 
PLUGIN_HANDLED;

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\ rtf1\ ansi\ deff0{\ fonttbl{\ f0\ fnil Tahoma;}}
\ viewkind4\ uc1\ pard\ lang3082\ f0\ fs16 
\ par }
*/ 
Ya si quieres lo cambias de ubicación. Mario
Responder
#9
(25/05/2021, 09:02 PM)CARNAGE escribió:
Código PHP:
/* Sublime AMXX Editor v2.2 */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <reapi>

/*
\y <- amarillo
\w <- blanco
\r <- rojo
\d <- Gris
^n <- Espacio
*/

new bool:only_player[33] = false 

public plugin_init()
{
    register_plugin("Menu DeathMatch""1.0""[Anti]")
    RegisterHookChain(RG_CBasePlayer_TraceAttack"CBasePlayer_TraceAttack", .post false)
    register_clcmd("say /m""cmdMenu"// en caso de que no abra con la M
    register_clcmd("chooseteam""cmdMenu")
    register_menucmdregister_menuid"Team_Select"true ), (1<<0)|(1<<1)|(1<<4)|(1<<5), "HookTeamChoosing" ); 

}
public 
m(id)
{
    cmdMenu(id)
    return PLUGIN_HANDLED;
}


public 
CBasePlayer_TraceAttackvictimattackerFloat:damageFloat:direction[3], tracedamageBits 
{
    if(
only_player[attacker])
    {
        if(
victim != attacker && (<= attacker <= get_maxplayers()) && get_tr2(traceTR_iHitgroup) != HIT_HEAD)
        {
            
set_tr2(traceTR_flFraction1.0)
            return 
HC_SUPERCEDE;
        }
    }
    return 
HC_CONTINUE;


public 
cmdMenu(id)
{
    new gMenu menu_create("\wMenu Prinipal""handlerMenu"///Modifica el nombre por el que quieras

    menu_additem(gMenu"\dMenu de Administradores""1")
    menu_additem(gMenuonly_player[id]? "Only Headshot Perso: \yActivado" "OnlyHeadshot Perso: \rDesactivado")
    menu_additem(gMenu"\wLista de Servidores^n""2")
    menu_additem(gMenu"\wReglas del servidor""3")
    menu_additem(gMenu"\wBeneficios de Administrador^n""4")
    menu_additem(gMenu"\wComprar Administrador""5")
    menu_setprop(gMenuMPROP_EXITNAME"Salir")
    menu_display(idgMenu0)
}
public 
handlerMenu(idmenuitem)
{
    if ( item == MENU_EXIT )
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED;
    }
    switch(item)
    {
        case 0:
        {
            client_cmd(id"amxmodmenu")
        }
        case 1:
        {
            if(only_player[id]) only_player[id] = false
            
else only_player[id] = true
        
}
        case 2:
        {
            client_cmd(id"say /server")
        }
        case 3:
        {
            client_cmd(id"say /reglas")
        }
        case 4:
        {
            client_cmd(id"say /comprar")
        }
        case 5:
        {
            client_cmd(id"say /pedido")
        }
    }
    return PLUGIN_HANDLED;

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\ rtf1\ ansi\ deff0{\ fonttbl{\ f0\ fnil Tahoma;}}
\ viewkind4\ uc1\ pard\ lang3082\ f0\ fs16 
\ par }
*/ 
Ya si quieres lo cambias de ubicación. Mario

Gracias, el tema que cuando pongo para activar se me cierra el menu

Responder
#10
Código PHP:
public cmdMenu(id)
{
    new 
gMenu menu_create("\wMenu Prinipal""handlerMenu"///Modifica el nombre por el que quieras

    
menu_additem(gMenu"\dMenu de Administradores""1")
    
menu_additem(gMenuonly_player[id]? "Only Headshot Perso: \yActivado" "OnlyHeadshot Perso: \rDesactivado""2")
    
menu_additem(gMenu"\wLista de Servidores^n""3")
    
menu_additem(gMenu"\wReglas del servidor""4")
    
menu_additem(gMenu"\wBeneficios de Administrador^n""5")
    
menu_additem(gMenu"\wComprar Administrador""6")
    
menu_setprop(gMenuMPROP_EXITNAME"Salir")
    
menu_display(idgMenu0)

Reemplazala por el tuyo
Responder
#11
(25/05/2021, 09:25 PM)CARNAGE escribió:
Código PHP:
public cmdMenu(id)
{
    new gMenu menu_create("\wMenu Prinipal""handlerMenu"///Modifica el nombre por el que quieras

    menu_additem(gMenu"\dMenu de Administradores""1")
    menu_additem(gMenuonly_player[id]? "Only Headshot Perso: \yActivado" "OnlyHeadshot Perso: \rDesactivado""2")
    menu_additem(gMenu"\wLista de Servidores^n""3")
    menu_additem(gMenu"\wReglas del servidor""4")
    menu_additem(gMenu"\wBeneficios de Administrador^n""5")
    menu_additem(gMenu"\wComprar Administrador""6")
    menu_setprop(gMenuMPROP_EXITNAME"Salir")
    menu_display(idgMenu0)

Reemplazala por el tuyo

Sigue cerrándose, aprieto para activarlo y se cierra el menu. Se activa? sii pero la idea es que quede el menu sin que se cierre solo

Responder
#12
Código PHP:
public handlerMenu(idmenuitem)
{
    if ( 
item == MENU_EXIT )
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED;
    }
    switch(
item)
    {
        case 
0:
        {
            
client_cmd(id"amxmodmenu")
        }
        case 
1:
        {
            if(
only_player[id]) only_player[id] = false
            
else only_player[id] = true
            cmdMenu
(id)
        }
        case 
2:
        {
            
client_cmd(id"say /server")
        }
        case 
3:
        {
            
client_cmd(id"say /reglas")
        }
        case 
4:
        {
            
client_cmd(id"say /comprar")
        }
        case 
5:
        {
            
client_cmd(id"say /pedido")
        }
    }
    return 
PLUGIN_HANDLED;

Reemplazalo
Responder
#13
(25/05/2021, 09:30 PM)CARNAGE escribió:
Código PHP:
public handlerMenu(idmenuitem)
{
    if ( item == MENU_EXIT )
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED;
    }
    switch(item)
    {
        case 0:
        {
            client_cmd(id"amxmodmenu")
        }
        case 1:
        {
            if(only_player[id]) only_player[id] = false
            
else only_player[id] = true
            cmdMenu
(id)
        }
        case 2:
        {
            client_cmd(id"say /server")
        }
        case 3:
        {
            client_cmd(id"say /reglas")
        }
        case 4:
        {
            client_cmd(id"say /comprar")
        }
        case 5:
        {
            client_cmd(id"say /pedido")
        }
    }
    return PLUGIN_HANDLED;

Reemplazalo

Te dejo algunos consejos
Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <reapi>

// "g_" te ayuda a saber que es una variable global
// "b" te ayuda a saber que es una variable de tipo bool
new bool:g_bOnlyHS[33]

public 
plugin_init()
{
    
register_plugin("Menu DeathMatch""1.2""[Anti] && AMXX-ES")

    
RegisterHookChain(RG_CBasePlayer_TraceAttack"CBasePlayer_TraceAttack", .post false)

    
// Letra N
    
register_clcmd("nightvision""cmdMenu"
}

public 
CBasePlayer_TraceAttackvictimattackerFloat:damageFloat:direction[3], tracedamageBits 
{
    if((
<= attacker <= get_maxplayers()) && victim != attacker &&  get_tr2(traceTR_iHitgroup) != HIT_HEAD && g_bOnlyHS[attacker])
    {
        
set_tr2(traceTR_flFraction1.0)
        return 
HC_SUPERCEDE
    
}

    return 
HC_CONTINUE


public 
cmdMenu(id)
{
    new 
gMenu menu_create("\wMenu Prinipal""handlerMenu"///Modifica el nombre por el que quieras

    
menu_additem(gMenu"\dMenu de Administradores""1")
    
menu_additem(gMenug_bOnlyHS[id] ? "Only Headshot Perso: \yActivado" "OnlyHeadshot Perso: \rDesactivado")
    
menu_additem(gMenu"\wLista de Servidores^n""2")
    
menu_additem(gMenu"\wReglas del servidor""3")
    
menu_additem(gMenu"\wBeneficios de Administrador^n""4")
    
menu_additem(gMenu"\wComprar Administrador""5")

    
menu_setprop(gMenuMPROP_EXITNAME"Salir")

    
menu_display(idgMenu0)
}
public 
handlerMenu(idmenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}

    switch(
item)
    {
        case 
0client_cmd(id"amxmodmenu")
        
// Lo mismo pero más barato
        
case 1g_bOnlyHS[id] = !g_bOnlyHS[id]
        case 
2client_cmd(id"say /server")
        case 
3client_cmd(id"say /reglas")
        case 
4client_cmd(id"say /comprar")
        case 
5client_cmd(id"say /pedido")
    }

    
// No olvides destruir el menu usado
    
menu_destroy(menu)

    
// Volvemos a mostrar el menu despues de elegir una opcion
    
cmdMenu(id)
    return 
PLUGIN_HANDLED

Responder
#14
(25/05/2021, 09:33 PM)[N]drs escribió: Te dejo algunos consejos
Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <reapi>

// "g_" te ayuda a saber que es una variable global
// "b" te ayuda a saber que es una variable de tipo bool
new bool:g_bOnlyHS[33]

public 
plugin_init()
{
    
register_plugin("Menu DeathMatch""1.2""[Anti] && AMXX-ES")

    
RegisterHookChain(RG_CBasePlayer_TraceAttack"CBasePlayer_TraceAttack", .post false)

    
// Letra N
    
register_clcmd("nightvision""cmdMenu"
}

public 
CBasePlayer_TraceAttackvictimattackerFloat:damageFloat:direction[3], tracedamageBits 
{
    if((<= attacker <= get_maxplayers()) && victim != attacker &&  get_tr2(traceTR_iHitgroup) != HIT_HEAD && g_bOnlyHS[attacker])
    {
        
set_tr2(traceTR_flFraction1.0)
        return 
HC_SUPERCEDE
    
}

    return HC_CONTINUE


public 
cmdMenu(id)
{
    new gMenu menu_create("\wMenu Prinipal""handlerMenu"///Modifica el nombre por el que quieras

    menu_additem(gMenu"\dMenu de Administradores""1")
    menu_additem(gMenug_bOnlyHS[id] ? "Only Headshot Perso: \yActivado" "OnlyHeadshot Perso: \rDesactivado")
    menu_additem(gMenu"\wLista de Servidores^n""2")
    menu_additem(gMenu"\wReglas del servidor""3")
    menu_additem(gMenu"\wBeneficios de Administrador^n""4")
    menu_additem(gMenu"\wComprar Administrador""5")

    menu_setprop(gMenuMPROP_EXITNAME"Salir")

    menu_display(idgMenu0)
}
public 
handlerMenu(idmenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}

    switch(
item)
    {
        case 
0client_cmd(id"amxmodmenu")
        
// Lo mismo pero más barato
        
case 1g_bOnlyHS[id] = !g_bOnlyHS[id]
        case 
2client_cmd(id"say /server")
        case 
3client_cmd(id"say /reglas")
        case 
4client_cmd(id"say /comprar")
        case 
5client_cmd(id"say /pedido")
    }

    
// No olvides destruir el menu usado
    
menu_destroy(menu)

    
// Volvemos a mostrar el menu despues de elegir una opcion
    
cmdMenu(id)
    return 
PLUGIN_HANDLED


Muchisimas Gracias  Excitedeyes

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)