SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Español/Spanish > Lanzamientos/Releases

 
 
Thread Tools Display Modes
Old 01/04/2011, 09:19 PM   #1
EduGTA
Gangsta
 
EduGTA's Avatar
 
Join Date: Mar 2011
Location: Venezuela / Monagas
Posts: 789
Reputation: 205
Default Como hacer una lista (menú) bien detallado

Hola mi nombre es Edugta, hoy le enseñare como hacer una lista o menú

Bien comenzamos


1º Paso
Haciendo el menú



pawn Code:
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


pawn Code:
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:

pawn Code:
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, ya el menú aparecerá al escribir /menu !

2º Paso
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

pawn Code:
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)

pawn Code:
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:

pawn Code:
#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!

__________________
EduGTA is offline  
Old 01/04/2011, 10:06 PM   #2
jeanpierrevera
Huge Clucker
 
Join Date: Mar 2011
Posts: 405
Reputation: 0
Default Re: Como hacer una lista (menú) bien detallado

Bueno xD yo tampoco antes sabia y pues aorendi con unos empujenes q me dieron y leyendo otro cuadro bueno aprendi leyendo el cuadro xd igual me aclareste algo xD aunq yo se hacer menus en menus y adentro otros menus xD muy bueno para el q no sabe!
jeanpierrevera is offline  
Old 01/04/2011, 10:09 PM   #3
EduGTA
Gangsta
 
EduGTA's Avatar
 
Join Date: Mar 2011
Location: Venezuela / Monagas
Posts: 789
Reputation: 205
Default Respuesta: Re: Como hacer una lista (menú) bien detallado

Quote:
Originally Posted by jeanpierrevera View Post
Bueno xD yo tampoco antes sabia y pues aorendi con unos empujenes q me dieron y leyendo otro cuadro bueno aprendi leyendo el cuadro xd igual me aclareste algo xD aunq yo se hacer menus en menus y adentro otros menus xD muy bueno para el q no sabe!
¡Gracias!

__________________
EduGTA is offline  
Old 01/04/2011, 10:16 PM   #4
jeanpierrevera
Huge Clucker
 
Join Date: Mar 2011
Posts: 405
Reputation: 0
Default Re: Respuesta: Re: Como hacer una lista (menú) bien detallado

Quote:
Originally Posted by Edugta. View Post
¡Gracias!

xd de nada bueno haber si me animo yo tambien a hacer grandes tutoriales y scripts para q a los q me dicen noob -.- por andar preguntando PARA aclarles q para algo pregunta uno xD
jeanpierrevera is offline  
Old 01/04/2011, 10:21 PM   #5
EduGTA
Gangsta
 
EduGTA's Avatar
 
Join Date: Mar 2011
Location: Venezuela / Monagas
Posts: 789
Reputation: 205
Default Respuesta: Re: Respuesta: Re: Como hacer una lista (menú) bien detallado

Quote:
Originally Posted by jeanpierrevera View Post
xd de nada bueno haber si me animo yo tambien a hacer grandes tutoriales y scripts para q a los q me dicen noob -.- por andar preguntando PARA aclarles q para algo pregunta uno xD

¡Estoy seguro de que harás un excelente trabajo!

Si tienes dudas dime y te ayudo

Nunca pares, almenos no como yo lo ise...
__________________
EduGTA is offline  
Old 02/04/2011, 02:32 AM   #6
Lunnatiicz
High-roller
 
Lunnatiicz's Avatar
 
Join Date: Dec 2010
Location: Torreóи CФahuila
Posts: 1,498
Reputation: 7
Default Respuesta: Como hacer una lista (menú) bien detallado

Sólo te corrijo 2 errores, son mínimos, pero pueden marcar error en algunos.

pawn Code:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/menu", cmdtext, true , 5) == 0)//porqué 10? si el numero de carácteres es 5
    {
    ShowPlayerDialog(playerid, 69, DIALOG_STYLE_LIST, "Prueba", "Pistola 9MM\nPistola 9MM Silenciada", "Aceptar", "Cancelar");
    return 1;//te falto un return xd
    }
   return 0; //En caso de que el comando cierre el callback, de lo contrario no modificarlo
}

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;
}//Te falto una llave, esto podría marcar error en todo lo que continue debajo del script

Bien hecho, suerte!

P.D Mejoras y tienes inspiración (:
__________________

Lunnatiicz is offline  
Old 02/04/2011, 03:27 AM   #7
MrDeath537
High-roller
 
Join Date: Nov 2009
Location: Argentina
Posts: 2,007
Reputation: 29
Default Re: Como hacer una lista (menú) bien detallado

Buen tutorial dentro de todo, sólo te hago unas notitas:

Podrías agregar como usar defines con los dialog id, para hacer las cosas más fáciles.
Y... no se llaman "menús" son "diálogos" :P
__________________
Sometimes I return.
MrDeath537 is offline  
Old 02/04/2011, 07:00 AM   #8
TheChaoz
High-roller
 
TheChaoz's Avatar
 
Join Date: Dec 2009
Location: Argentina
Posts: 4,656
Reputation: 239
Default Respuesta: Como hacer una lista (menú) bien detallado

Buen tuto, creo q ya habia unos sobre dialogos pero en fin, nunca esta de mas un tuto

Mejoras: switch para 1 sola comparacion, es mas lento q if.

Nota: los menus son otra cosa, esos son dialogos.
__________________
TheChaoz is offline  
Old 02/04/2011, 10:06 PM   #9
[DOG]irinel1996
High-roller
 
[DOG]irinel1996's Avatar
 
Join Date: Jan 2010
Posts: 1,693
Reputation: 288
Default Re: Como hacer una lista (menú) bien detallado

Está bueno man. Se agradece.
[DOG]irinel1996 is offline  
Old 26/05/2011, 09:12 PM   #10
Host-samp
Big Clucker
 
Host-samp's Avatar
 
Join Date: Jan 2011
Posts: 178
Reputation: 2
Default Respuesta: Como hacer una lista (menú) bien detallado

Bien!
__________________
GameHosting Economico 120 Slots Por $10 USD Pago Con SMS o PayPal - KyeMASTER
www.KyeMASTER.com
Host-samp is offline  
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Como Colocar Server na Lista de Internet mafelis Português/Portuguese 19 16/12/2010 06:38 PM


All times are GMT. The time now is 10:00 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.