Welcome Soldier.



[AMXMODX] Hacer tu propio menu.

PlayEasymx Sin conexión
User
#1
hoy le vengo a traer un totorial, de como hacer tu propio menu principal.

-Existen 2 tipos de menues.

Menu Nuevo

Código PHP:
menu_additem(mxe"\wOpcion ""1"

Menu Viejo
Código PHP:
len += formatex(menu[len], sizeof menu len"\y[1]\wOpcion^n"); 

pero en peronal para mi es mejor el Nuevo.
EMPECEMOS

Abrimos el AmxmodxStudio..

-Agregaremos un comando con cual quieras abrir el menu.

Quedaria así

Código PHP:
public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_clcmd("say /mxemenu""cmdmenux"// ACA LO AGREGE..

Ese es mi caso, tu puedes ponerle cualquier comando para abrir el menu, solo que "say" No tendras que borrarlo, o si quieres, tendras que poner ese comando en consola y no por say (Y)

-Ahora ya que pusismos el comando, donde dice cmdmenu, es donde /mxemenu, llamara esa funcion,
ahora lo que aremos el lo siguiente..

Código PHP:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

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


public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_clcmd("say /mxemenu""cmdmenux")
}

public 
cmdmenux(id// Donde llama /mxemenu
{


Listo, una vez puesto esa funcion, procederemos hacer el titulo del menu, y los items que, queremos agregarle.

Código PHP:
public cmdmenux(id)
{
    new 
mxemenu menu_create("\rTitulo \ddel \ymenu""hmenu"
    
    

creamos el menu en la variable "mxemenu" con el titulo "Titulo del menu
que segun la opcion que elija el usuario va a llamar a la funcion 'hmenu'
   
COLORES PARA EL MENU: 
\r = rojo
\y = amarillo
\d = Gris
\w = blanco

-Ahora procederemos a agregarle los items que queramos..

Código PHP:
public cmdmenux(id)
{
    new 
mxemenu menu_create("\rTitulo \ddel \ymenu""hmenu"
    
    
menu_additem(mxemenu"\rArmas""1")
    
menu_additem(mxemenu"\wTop15""2")
    
menu_additem(mxemenu"\dMis Estadisticas""3")
           

    
menu_display(idmxemenu0)

En mi cao fueron 3 item, ustedes puedes agregar las que quieran..

Ahora bamos al "hmenu"

-les dejare todo el codigo completo de una vez..

Código PHP:
public hmenu(idmxemenuitem       //los parametros deben ir en este orden
{
 
   if item == MENU_EXIT    //si el item seleccionado es igual a '0'(Exit[Salir])
 
   {
 
       menu_destroy(mxemenu       //destruimos el menu
 
       return PLUGIN_HANDLED   //y returnamos la funcion
 
   }
 
   switch(item   //hacemos un swicheo de los posibles resultados:
 
   {
 
       case 0       //en caso de que precione 1: le mandamos un msj
 
       {
 
           client_print(idprint_center"HOLA SOY LA OPCION #1.")
 
       }
 
       case 1       //en caso de que precione 2: le mandamos otro msj
 
       {
 
           client_print(idprint_center"HOLA SOY LA OPCION #2.")
 
       }
 
       case 2       //en caso de que precione 3: le mandamos otro msj
 
       {
 
           client_print(idprint_center"HOLA SOY LA OPCION #3")
 
       }
 
   }
 
   return PLUGIN_HANDLED   // returnamos la funcion

Ami me quedo asi..

Código PHP:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <fun>
#include <hamsandwich>

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


public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_clcmd("say /mxemenu""cmdmenux")
}

public 
cmdmenux(id)
{
    new 
mxemenu menu_create("\rTitulo \ddel \ymenu""hmenu"
    
    
menu_additem(mxemenu"\rVIDITA HP(100)""1")
    
menu_additem(mxemenu"\rSmoke""2")
    
menu_additem(mxemenu"\dMenu de admin""3")
    
    
    
menu_destroy(mxemenu)
    
}
public 
hmenu(idmxemenuitem     
{
 
   if item == MENU_EXIT    
    
{
 
       menu_destroy(mxemenu     
        return PLUGIN_HANDLED
   
    
}
 
   switch(item   
    
{
 
       case 0   // OPCION 1.. VIDA  
 
       {
        if(!
is_user_alive(id)) // SI EL PLAYER ESTA MUERTO
        
{
            
client_print(idprint_chat"ESTAS MUERTO PVTO >:V")
            return 
PLUGIN_HANDLED //Returnamos
        
}
        if(
cs_get_user_money(id) >= 2000){ // SI EL PLAYER TIENE 2000 de dinero
        
set_user_health(idget_user_health(id) + 100// le damos 100 HP
        
cs_set_user_money(idcs_get_user_money(id) - 2000// LE QUITAMOS 2000 de MONEY
        
client_print(idprint_chat"COMPRASTE VIDA!"// MANDAMOS UN MENSSAJE
    
}else // SI NO TENE 2000 DE MONEY
     
    client_print(idprint_chat"NO TE ALCANSA ALV "// LE MANAMOS UN MENSAJE QUE NO LE ALCANSA
 
       }
 
       case 1  // OPCION 2.. DAR SMOKE      
 
       {
 
           if(!is_user_alive(id)) // SI EL PLAYER ESTA MUERTO
        
{
            
client_print(idprint_chat"ESTAS MUERTO PVTO >:V")
            return 
PLUGIN_HANDLED //Returnamos
        
}
        if(
cs_get_user_money(id) >= 4000){ // SI EL PLAYER TIENE 4000 de dinero
            
give_item(id"weapon_smokegrenade"// LE DAMOS LA BONBA
            
cs_set_user_money(idcs_get_user_money(id) - 4000// QUITAMOS 4000 de money
            
client_print(idprint_chat"COMPRASTE SMOJE")
        }else 
// si no trae 4000 de MONEY
        
client_print(idprint_chat"NO TE ALCANSA"// MANDAMOS UN MSG QUE NO LE ALCANSA
 
       }
 
       case 2  // OPCION 3, Menu de admin     
 
       {
 
          if(is_user_admin(id)){ // Checamos si el jugador es admin
     
      client_cmd(id"amxmodmenu"// le abrimos este comando
    
}else // si no e admin
    
client_print(idprint_chat"NO ERES ADMIN")
 
       }
 
   }
 
   return PLUGIN_HANDLED  

Dudas, preguntas, comentalo!
Responder

Fury Ausente
User
#2
Buen tuto.

PD: 3 Warnings xd

"El día que seas capaz de llorar de impotencia ante una injusticia, ese día seremos compañeros"
[+] 1 user says Thank You to Fury for this post
Responder

PlayEasymx Sin conexión
User
#3
Se me olvido darle indenter xd
[+] 1 user says Thank You to PlayEasymx for this post
Responder

ChrstopH Ausente
Hypnotize
#4
Con suerte eso compila y dudo que sirva, mejor explícales como hacer un menú con for

[spoiler]
te dejo la base, no lo probé pero seguro sirve.
Código PHP:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>


enum eMenuiNombre[100], iTypo };
enumUSER 0ADMIN_OROADMIN_PLATAADMIN_STAFF };

new const 
iMenu[][eMenu] = {
    {
"opcion 1"ADMIN_ORO}
}
new 
iTipo33 ];
public 
plugin_init() {
    
register_plugin("""""ChrstopH");
    
    
// Add your code here...
    
register_clcmd("say /menu""clcmd_Menu");
}
public 
client_putinserver(index){
    if(
is_user_admin(index)){
        if(
get_user_flags(index) & ADMIN_CVARiTipoindex ] = ADMIN_STAFF;
        if(
get_user_flags(index) & ADMIN_BANiTipoindex ] = ADMIN_PLATA;
        else 
iTipo[index ] = ADMIN_ORO;
    }
    else 
iTipoindex ] = USER 
    
}
public 
clcmd_Menu(index){
    new 
menu menu_create("titulo del menu""handler_menu");
    
    for(new 
0sizeof(iMenu); ++i){
        if(
iTipoindex ] >= iMenu[i][iTypo]) menu_additem(menuiMenu[i][iNombre]);
        else 
menu_additem(menuiMenu[i][iNombre]);
        
    }
    
menu_display(indexmenu0)
    return 
PLUGIN_HANDLED;
    
}
public 
handler_menu(idmenuitem)
{
    if (
item == MENU_EXIT
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    if(
iTipo[id] < iMenuitem ][ iTypo ]) return PLUGIN_HANDLED;
    
    
//mandas el switch
    
    
return PLUGIN_HANDLED;

[/spoiler]

PD; pesimo tutorial, a pesar de que copiaste y pegaste partes del tutorial de [Anti], no explicas como debería de ser, aparte hablas del estilo nuevo y viejo y no explicas el viejo.
[Imagen: 76561198283253977.png]

Mapas Frutas 100%
DeathRun Levels 100%
Atrapa al Traidor (Edición) 100%
Battle Royale 40%
[+] 2 users say Thank You to ChrstopH for this post
Responder





Usuarios navegando en este tema:
3 invitado(s)



Sobre M X E M E X I C O

Comunidad MxE © 2020 - La mejorar comunidad de Counter Strike 1.6 .