Buenas a todos.
Hace mucho no hago un Tutorial D:
Esta vez es acerca de los menús que son estilo nuevo, como funcionan su natives, sus variables, etc, etc, etceterita...
Una vez que ya hayan repasado el tutorial de [Anti] (Pueden mirar aquí) podemos repasar este tutorial para poder saber más acerca de los menús.
Como utilizar menu_additem:
Como utilizar menu_addtext:
Como utilizar menu_item_getinfo:
Por ahora eso es todo.. Y cualquier cosa me dicen y lo corrijo
Espero que le haya servido :3
Suerte a todos.
Hace mucho no hago un Tutorial D:
Esta vez es acerca de los menús que son estilo nuevo, como funcionan su natives, sus variables, etc, etc, etceterita...
Una vez que ya hayan repasado el tutorial de [Anti] (Pueden mirar aquí) podemos repasar este tutorial para poder saber más acerca de los menús.
Como utilizar menu_additem:
Esta función sirve para agregar un Item al menú (Es medio obvio porque lo dice el nombre xS)
Para utilizar esta native es muy fácil como al crear un menú.
Esta native posee 5 parámetros, pero aquí usamos solo 3
El primer parámetro ocupamos la variable de nuestro menú cuando la creamos
El segundo parámetro ocupamos el texto de la opción
El tercer parámetro ocupamos el dato de la opción
El cuarto parámetro ocupamos el flag o acceso del menú sobre los admines
El quinto parámetro ocupa la función de "callback" que podemos hacer como una "función dentro de la opción", por así decirlo. Más adelante se explicará
Si tengo esto:
La diferencia con el otro ejemplo es que agregamos una "Restricción" que es que solo los usuarios con el acceso o flag KICK pueden acceder al menú y ubicamos la native menu_makecallback que es como dije antes, le damos una función a la opción, y lo hacemos de la siguiente manera
Acá decimos si está vivo entonces tiene habilitado la opción, en cambio si NO está vivo entonces la opción queda deshabilitada para usarla
Por último vemos que en vez de "1" en el tercer parámetro, lo tenemos como un "Guión bajo", es porque no vamos a utilizar este parámetro.
Esta native también se vincula con la native menu_item_getinfo[(b] en los parámetros dos y tres, que más adelante voy a explicar bien
Para utilizar esta native es muy fácil como al crear un menú.
Código PHP:
menu_additem(iMenu, "Hola mundo", "1");
El primer parámetro ocupamos la variable de nuestro menú cuando la creamos
El segundo parámetro ocupamos el texto de la opción
El tercer parámetro ocupamos el dato de la opción
El cuarto parámetro ocupamos el flag o acceso del menú sobre los admines
El quinto parámetro ocupa la función de "callback" que podemos hacer como una "función dentro de la opción", por así decirlo. Más adelante se explicará
Si tengo esto:
Código PHP:
menu_additem(iMenu, "Hola mundo", _, ADMIN_KICK, menu_makecallback("HolaMundo"));
Código PHP:
public HolaMundo(id, iMenu, iItem)
return is_user_alive(id) ? ITEM_ENABLED : ITEM_DISABLED;
Por último vemos que en vez de "1" en el tercer parámetro, lo tenemos como un "Guión bajo", es porque no vamos a utilizar este parámetro.
Esta native también se vincula con la native menu_item_getinfo[(b] en los parámetros dos y tres, que más adelante voy a explicar bien
Para utilizar esta native siempre hay que tener al menos un [b]menu_additem para evitar que tiren logs y otros errores
Como verán tiene 3 parámetros
El primer parámetro ocupa la variable del menú creado
El segundo parámetro ocupa el texto para mostrar
El tercer parámetros ocupamos el slot o lugar donde ubicaremos el texto
Para mostrar un texto debemos tener así el menú
La native menu_addtext no debe estar antes que menu_additem porque el menú no se mostrará y podría tirar logs :'(
Código PHP:
static szText[20];
formatex(szText, charsmax(szText), "\wHola, no soy una opción \y:(");
menu_addtext(iMenu, szText, 0);
El primer parámetro ocupa la variable del menú creado
El segundo parámetro ocupa el texto para mostrar
El tercer parámetros ocupamos el slot o lugar donde ubicaremos el texto
Para mostrar un texto debemos tener así el menú
Código PHP:
public ShowMenu_Test(id)
{
static iMenu, szText[20];
iMenu = menu_create("TEST", "HandleMenu_Test");
menu_additem(iMenu, "Hola mundo");
menu_addblank(iMenu, 0);
/** Esta native es simple, solo deja un espacio o renglón en blanco **/
formatex(szText, charsmax(szText), "\wHola, no soy una opción \y:(");
menu_addtext(iMenu, szText, 0);
menu_display(id, iMenu);
}
Esta native, solamente la ocupamos si es que utilizamos los parámetros 2 y 3 de la función menu_additem. Tiene varios parámetros que algunos son útiles y otros no tanto y ahora vamos a pasar a explicar.
Les voy a mostrar lo siguiente:
Tiene varios parámetros, que son los siguientes:
Primer parámetro: Ocupamos la variable del Handler del menú
Segundo parámetro: Ocupamos la variable del Handler de los Items seleccionados
Tercer y último parámetro: Ocupamos la variable iAccess y iCallback para ocuparla en la función, no sirve de mucho, pero se ocupa igual.
Cuarto y quinto parametro: Esto obtiene (Como un String) el 3er parámetro de la native menu_additem();
Sexto y septimo parámetro: Esto obtiene (Como un String) el 2do parámetro de la native menu_additem();
Esta native nos sirve, por ejemplo, cuando vamos a hacer un men´de jugadores. Así obtenemos el nombre y el dato (Que después se convierte en entero en el Handler) dentro de los 32 jugadores.
Les dejo un ejemplo:
Les voy a mostrar lo siguiente:
Código PHP:
static iAccess, iCallback, szData[2], szItemName[32];
menu_item_getinfo(iMenu, iItem, iAccess, szData, charsmax(szData), szItemName, charsmax(szItemName), iCallback);
Primer parámetro: Ocupamos la variable del Handler del menú
Segundo parámetro: Ocupamos la variable del Handler de los Items seleccionados
Tercer y último parámetro: Ocupamos la variable iAccess y iCallback para ocuparla en la función, no sirve de mucho, pero se ocupa igual.
Cuarto y quinto parametro: Esto obtiene (Como un String) el 3er parámetro de la native menu_additem();
Sexto y septimo parámetro: Esto obtiene (Como un String) el 2do parámetro de la native menu_additem();
Esta native nos sirve, por ejemplo, cuando vamos a hacer un men´de jugadores. Así obtenemos el nombre y el dato (Que después se convierte en entero en el Handler) dentro de los 32 jugadores.
Les dejo un ejemplo:
Código PHP:
public ShowMenu_Players(id)
{
static iMenu, szName[32], szData[2], iMaxPlayers, i;
iMenu = menu_create("Menú de jugadores", "Handler_Players");
iMaxPlayers = get_maxplayers()
for (i = 1; i <= iMaxPlayers; i++) /** Loop para la cantidad máxima de jugadores **/
{
if (!is_user_connected(i)) /** Si no está conectado, no lo muestra **/
continue;
get_user_name(i, szName, charsmax(szName)); /** Obtenemos el nombre **/
num_to_str(i, szData, charsmax(szData)); /** Convertimos la variable szData como String **/
menu_additem(iMenu, szName, szData); /** Lo mostramos en el menú **/
}
menu_setprop(iMenu, MPROP_NEXTNAME, "Siguiente");
menu_setprop(iMenu, MPROP_BACKNAME, "Atrás");
menu_setprop(iMenu, MPROP_EXITNAME, "Salir");
menu_display(id, iMenu);
}
public Handler_Players(id, iMenu, iItem) /** Recordemos que iMenu es el menú que mostramos y iItem son los items del menú **/
{
if (iItem == MENU_EXIT)
{
menu_destroy(iMenu);
return;
}
static iAccess, szData[2], szName[32], iCallback, iSelect;
menu_item_getinfo(iMenu, iItem, iAccess, szData, charsmax(szData), szName, charsmax(szName), iCallback); /** Obtenemos la posición y el nombre del jugador **/
iSelect = str_to_num(szData);
client_print(id, print_center, "Seleccionaste al jugador %s en la posición %d", szName, iSelect); /** Lo mostramos por pantalla **/
}
Espero que le haya servido :3
Suerte a todos.
Free agent - Vendo plugins, mods o apps del foro IPB (Invision community)
Contactarme vía Discord >>> AtselTV#8202
Contactarme vía Discord >>> AtselTV#8202