Samp Mods
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Tutorial | Como hacer una Lista o Menú.

Ir abajo

Tutorial | Como hacer una Lista o Menú. Empty Tutorial | Como hacer una Lista o Menú.

Mensaje  Opa. Mar Abr 24, 2012 9:05 pm

1- Haciendo el menú.

en el pawn...

Código:
ShowPlayerDialog(playerid, dialogid, style, caption[], info[], button1[], button2[])


ShowPlayerDialog es el código para hacer el menú


playerid es el ID de la persona que podrá ver el menú (se sugiere dejarlo en playerid para que todos los jugadores puedan acceder al menú)

dialogid es la id que tendrá este dialogo, Ej: ID número 69

style es el estilo en el que se mostrara el menú, como haremos un menú escogeremos DIALOG_STYLE_LIST

caption[] es el nombre que le pondremos al menú, el nombre aparecerá en la esquina superior del dialogo

info[] es el texto que aparecerá en nuestro menú

button1[] es la primera opción

button2[] es la segunda opción


Comencemos a editar!

Haremos que el menú aparezca con un comando


Código:
public OnPlayerCommandText(playerid,cmdtext[])

public OnPlayerComandText(playerid,cmdtext)

OnPlayerComandText(playerid,cmdtext) es el codigo especial para hacer que al escribir /menu apareca el menú

TODOS los Server tienen OnPlayerComandText

Ahora hagamos lo siguiente:

Código:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/menu", cmdtext, true, 10) == 0)
    {
    ShowPlayerDialog(playerid, 69, DIALOG_STYLE_LIST, "Prueba", "Pistola 9MM\nPistola 9MM Silenciada", "Aceptar", "Cancelar");
    }
}

Listo, el menu ya está, se usa con /Menu.

2- Hacer que el menú haga una acción.

¿Como que una acción?

Hace al clickear una opción del menú haga un acción

Código:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

OnDialogResponse es el código que hace que al clickear una opción haga una acción

playerid es el ID de la persona que lo va a ver, dejemoslo en playerid

response es la opción que clickeamos, osea Aceptar o Cancelar

listitem es el objeto que seleccionaremos, como 9MM (ID 0) o 9MM silenciada (ID 1)

inputtext no importa, estamos usando DIALOG_STYLE_LIST, este parametro solo se usa cuando usamos DIALOG_STYLE_INPUT...

Volvamos a ShowPlayerDialog, y miren la segunda opción, que es la ID del menú, la ID es 69

Entonces hagamos lo siguiente: (en este caso usaremos switch que es más fácil)

Código:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid == 69)
    {
        case 1:
        {
            if(!response)
            {
                SendClientMessage(playerid, 0xFF0000FF, "Has cancelado"); //Esto dirá si apretar cancelar
                return 1;
            }
 
            switch(listitem)
            {
                case 0: //los items SIEMPRE comienzan de 0 (ejemplo: 0, 1, 2, 3...)
                {
                GivePlayerWeapon(playerid, 22, 500); //Esto nos dará una 9MM con 500 balas (la cantidad de balas se puede cambiar)
                }
                case 1:
                {
                GivePlayerWeapon(playerid, 23, 500); //Lo mismo pero nos dará una 9MM con silenciador
                }               
 
            }
 
        }
       
 
    }
    return 0;

Después de todo nos dará todo esto:

Código:
#include <a_samp>

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/menu", cmdtext, true, 10) == 0)
    {
    ShowPlayerDialog(playerid, 69, DIALOG_STYLE_LIST, "Prueba", "Pistola 9MM\nPistola 9MM Silenciada", "Aceptar", "Cancelar");
    }
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid == 69)
    {
        case 1:
        {
            if(!response)
            {
                SendClientMessage(playerid, 0xFF0000FF, "Has cancelado"); //Esto dirá si apretar cancelar
                return 1;
            }
 
            switch(listitem)
            {
                case 0: //los items SIEMPRE comienzan de 0 (ejemplo: 0, 1, 2, 3...)
                {
                GivePlayerWeapon(playerid, 22, 500); //Esto nos dará una 9MM con 500 balas (la cantidad de balas se puede cambiar)
                }
                case 1:
                {
                GivePlayerWeapon(playerid, 23, 500); //Lo mismo pero nos dará una 9MM con silenciador
                }               
 
            }
 
        }
       
 
    }
    return 0;
}

Bang bang! a disfrutar de tus armas!!

Espero que los haya ayudado!
Opa.
Opa.
Ayudante de script
Ayudante de script

Mensajes : 87
Fecha de inscripción : 22/04/2012
Edad : 33
Localización : Idlewood
*Soy : Walter_Chilavert

https://www.facebook.com/luqitasdc

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.