[Tutorial] Crear un menu como la de GTA SA SinglePlayer.
#1

Buenas a todos, tengan un cordial saludo, hoy les voy a traer como crear un menu tipo GTA SA normal bien, vamos al grano.

Paso 1:
Primero quй todo, definiremos nuestra variable del menu, la cual serнa estб

pawn Код:
new Menu:EjemploMenu;
Esto va debajo de los #define
Donde dice "EjemploMenu" lo vas a cambiar por el nombre que quieras


Paso 2:
Despuйs nos vamos a OnGameModeInit, y ponemos esto:

pawn Код:
public OnGameModeInit()
{
    EjemploMenu = CreateMenu("Nombre del Menu", 0, 200.0, 100.0, 150.0, 150.0);
    AddMenuItem(EjemploMenu, 0, "Desert Eagle");
    AddMenuItem(EjemploMenu, 0, "9mm");
    // lo demбs que tienes en OnGameModeInit.
    return 1;
}
EjemploMenu = Es la variable quй definimos, allн van a ponerlo al nombre quй ustedes le pusieron
Nombre Del Menu = Allн pondran el nombre que tendra su menu, por ejemplo "Armas"
0 = Es el nъmero de columnas que ustedes desean poner, por lo tanto lo dejamos en "0"
200.0 = es la posiciуn X que tendra su numero, si lo quieren izquierda o derecha, arriba o abajo.
100.0 es la posicion Y quй tendrб su menu.
150.0 y 150.0 Es el ancho de columnas quй tu pusistes, un ejemplo: si tu pusistes "2" columnas, tienes que cambiarlas de anchura, y si no, lo dejamos con los mismos numeros



Paso 3:
Ahora pondremos el comando para ver el menu cuando tu pones el comando, tambien puedes hacerlo con teclas, con pickups, etc. pero estб vez lo harй con comandos.

Bien, nos vamos a OnPlayerCommandText y haremos nuestro comando, quedarнa asн.


pawn Код:
if(strcmp(cmdtext, "/armas", true) == 0)
    {
            ShowMenuForPlayer(EjemploMenu, playerid);
            TogglePlayerControllable(playerid, 0);
            return 1;
    }
ShowMenuForPlayer = es la funciуn quй hace ver el menu.
EjemploMenu = Es el nombre de la variable que hicimos en el primer paso, recuerda ponerle el nombre de la variable que tu le pusistes.
TogglePlayerControllabe = Es para congelar o descongelar al jugador, si estб en 0 = Congelado, 1 = Descongelado
playerid = es la id del jugador quй escribio el comando.


Paso 4:
Ahora, ya que hicimos el comando, definiremos el menu para darle las acciones, como por ejemplo los nombres quй pusй arriba, Desert Eagle y 9mm, definiendo los menus, le daremos la opcion de darle una accion, como por ejemplo darle una Desert Eagle cuando tu lo apretas "Desert Eagle" del menu.

Bien, nos vamos a OnPlayerSelectedMenuRow y haremos lo siguiente:


pawn Код:
public OnPlayerSelectedMenuRow(playerid, row)
{
    new Menu:SelecMenu;
    SelecMenu = GetPlayerMenu(playerid);
    if(SelecMenu == EjemploMenu)
    {
        switch(row)
        {
            case 0:
            {
            GivePlayerWeapon(playerid, 24, 500);
            SendClientMessage(playerid,COLOR_ROJO,"Has obtenido una Desert Eagle con 500 balas");
            TogglePlayerControllable(playerid, 1);
            }
            case 1:
            {
            GivePlayerWeapon(playerid, 22, 500);
            SendClientMessage(playerid,COLOR_ROJO,"Has obtenido una 9mm con 500 balas");
            TogglePlayerControllable(playerid, 1);
        }
      }
    }
    return 1;
}
SelecMenu = Es la variable que definimos para que se vean los menus, es decir, los detecta cuando ponemos el comando. como por ejemplo: EjemploMenu.

Despuйs de que hicimos eso, nos falta una cosa, como estбs congelado al ponerlo, debemos descongelarlo, y con eso hacemos lo siguiente:

Nos vamos a OnPlayerExitedMenu y ponemos esto:


pawn Код:
public OnPlayerExitedMenu(playerid)
{
    new Menu:SelecMenu = GetPlayerMenu(playerid);
    if(Menu:SelecMenu == EjemploMenu)
    {
        TogglePlayerControllable(playerid, 1);
    }
    return 1;
}
Aqui definimos SelecMenu tambien, y con TogglePlayerControllabe, cuando estб en uno, se descongela, tambien podemos usar false y true.

PD: Si usted no lo quiere que lo congele cuando abra el menu, quitele el TogglePlayerControllabe y ya. y si lo quita, quite lo del OnPlayerExitedMenu, ya que no vas a congelarlo cuando abra el menu.




Espero que le haya gustado el tutorial, y si van a poner comentarios negativos. por favor decir el porquй.
Y tambien si van a criticar, hacerlo constructiva.


Algun error o algo, avisarme. Muchas gracias
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)