PlayEasymx
Registro en:
Jun 2017
Mensajes:
34
Temas:
8
|
|
hoy le vengo a traer un totorial, de como hacer tu propio menu principal.
-Existen 2 tipos de menues.
Menu Nuevo
Código PHP: <?php
menu_additem(mxe, "\wOpcion ", "1")
Menu Viejo
Código PHP: <?php
len += formatex(menu[len], sizeof menu - 1 - 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: <?php
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
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: <?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(PLUGIN, VERSION, AUTHOR)
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: <?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: <?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(id, mxemenu, 0)
}
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: <?php
public hmenu(id, mxemenu, item) //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(id, print_center, "HOLA SOY LA OPCION #1.")
}
case 1: //en caso de que precione 2: le mandamos otro msj
{
client_print(id, print_center, "HOLA SOY LA OPCION #2.")
}
case 2: //en caso de que precione 3: le mandamos otro msj
{
client_print(id, print_center, "HOLA SOY LA OPCION #3")
}
}
return PLUGIN_HANDLED; // returnamos la funcion
}
Ami me quedo asi..
Código PHP: <?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(PLUGIN, VERSION, AUTHOR)
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(id, mxemenu, item)
{
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(id, print_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(id, get_user_health(id) + 100) // le damos 100 HP
cs_set_user_money(id, cs_get_user_money(id) - 2000) // LE QUITAMOS 2000 de MONEY
client_print(id, print_chat, "COMPRASTE VIDA!") // MANDAMOS UN MENSSAJE
}else // SI NO TENE 2000 DE MONEY
client_print(id, print_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(id, print_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(id, cs_get_user_money(id) - 4000) // QUITAMOS 4000 de money
client_print(id, print_chat, "COMPRASTE SMOJE")
}else // si no trae 4000 de MONEY
client_print(id, print_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(id, print_chat, "NO ERES ADMIN")
}
}
return PLUGIN_HANDLED;
}
Dudas, preguntas, comentalo!
|
•
Fury
Registro en:
Jun 2017
Mensajes:
368
Temas:
50
|
Pais:
|
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"
|
The following 1 user says Thank You to Fury for this post:1 user says Thank You to Fury for this post
• PlayEasymx
PlayEasymx
Registro en:
Jun 2017
Mensajes:
34
Temas:
8
|
|
Se me olvido darle indenter xd
|
ChrstopH
Registro en:
Jun 2017
Mensajes:
45
Temas:
10
|
Pais:
|
07-08-2017, 03:54 PM
(Última modificación: 07-08-2017, 04:03 PM por ChrstopH.)
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: <?php
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
enum eMenu{ iNombre[100], iTypo };
enum{ USER = 0, ADMIN_ORO, ADMIN_PLATA, ADMIN_STAFF };
new const iMenu[][eMenu] = {
{"opcion 1", ADMIN_ORO}
}
new iTipo[ 33 ];
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_CVAR) iTipo[ index ] = ADMIN_STAFF;
if(get_user_flags(index) & ADMIN_BAN) iTipo[ index ] = ADMIN_PLATA;
else iTipo[index ] = ADMIN_ORO;
}
else iTipo[ index ] = USER
}
public clcmd_Menu(index){
new menu = menu_create("titulo del menu", "handler_menu");
for(new i = 0; i < sizeof(iMenu); ++i){
if(iTipo[ index ] >= iMenu[i][iTypo]) menu_additem(menu, iMenu[i][iNombre]);
else menu_additem(menu, iMenu[i][iNombre]);
}
menu_display(index, menu, 0)
return PLUGIN_HANDLED;
}
public handler_menu(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
if(iTipo[id] < iMenu[ item ][ 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.
Mapas Frutas 100%
DeathRun Levels 100%
Atrapa al Traidor (Edición) 100%
Battle Royale 40%
|
|