Menu de Teleports o Armas
#1

Bueno quiza este no sea un tutorial nuevo pero es para los mas nuevos y mas sencillo y mas entendible de como crear menus de x ejemplo teleports q son los mas utilizados o armas...

Bueno vamos a lo primero

arriba de todo definimos las variables

pawn Код:
new Menu:menu; //sera el menu principal
new Menu:teleport; //de si quieren q el menu sea de teleports
new Menu:armas; //esto si x ejemplo quieren q el menu sea de armas
Bueno ahora lo siguiente en OnGameModeInt
pawn Код:
public OnGameModeInit()
{
//Menu Principal
  menu = CreateMenu("Menu Principal", 1,20,120,150,40);
  AddMenuItem(menu, 0, "Teleports");
  AddMenuItem(menu, 0, "Armas");

//Para los teleports
  teleport = CreateMenu("Teleports", 1,20,120,150,40); //estos son solo teleports de ejemplos
  AddMenuItem(teleport, 0, "Las Venturas");
  AddMenuItem(teleport, 0, "San Fierro");
  AddMenuItem(teleport, 0, "Los Santos");
  AddMenuItem(teleport, 0, "Area 51");
  AddMenuItem(teleport, 0, "Grove Street");
  AddMenuItem(teleport, 0, "~r~Menu");

//ahora para el menu de armas
  armas = CreateMenu("Armas", 1,20,120,150,40); //estos son solo armas de ejemplo
  AddMenuItem(armas, 0, "Escopetas Recortadas");
  AddMenuItem(armas, 0, "Micro Subfusil Uzi");
  AddMenuItem(armas, 0, "Rifle de Asalto M4");
  AddMenuItem(armas, 0, "Pistolas Colts");
  AddMenuItem(armas, 0, "Chaleco Antibalas");
  AddMenuItem(armas, 0, "~r~Menu");
}
Una vez echo esto vamos a OnPlayerCommandText y ponemos lo siguiente
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/menu", cmdtext, true, 10) == 0) //Este sera el comando para abrir el menu
    {
      ShowMenuForPlayer(menu,playerid);
      TogglePlayerControllable(playerid,false);
      return 1;
    }
    return 0;
}
Por ultimo, colocar la funcion de cada menu, creamos el calback OnPlayerSelectedMenuRow
pawn Код:
public OnPlayerSelectedMenuRow(playerid, row)
{
  new Menu:CurrentMenu = GetPlayerMenu(playerid);
  if(CurrentMenu == menu) //Este sera el menu principal
    {
  switch(row)
  {
    case 0:
    {
    ShowMenuForPlayer(teleport, playerid);
    }
    case 1:
    {
    ShowMenuForPlayer(armas, playerid);
    }
  }
  }
  if(CurrentMenu == teleport) //Este sera el menu de teleports
    {
  switch(row)
  {
    case 0:
    {
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, 2003.2086,1544.2545,13.5859); //posision en este caso de lv
    GameTextForPlayer(playerid, "~r~Las Venturas", 5000, 5); //mensaje q se envia a cada jugador
    TogglePlayerControllable(playerid,1);
    }
    case 1:
    {
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, -1517.3062,922.3460,7.1875);
    GameTextForPlayer(playerid, "~r~San Fierro", 5000, 5);
    TogglePlayerControllable(playerid,1);
    }
    case 2:
    {
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, 1226.0288,-1815.6396,16.5938);  
    GameTextForPlayer(playerid, "~r~Los Santos", 5000, 5);
    TogglePlayerControllable(playerid,1);
    }
    case 3:
    {
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, 213.5928,1908.1354,17.6406);
    GameTextForPlayer(playerid, "~r~Grove Street", 5000, 5);
    TogglePlayerControllable(playerid,1);
    }
    case 4:
    {
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, 2494.0364,-1682.7588,13.3383);
    GameTextForPlayer(playerid, "~r~Area 51", 5000, 5);
    TogglePlayerControllable(playerid,1);
    }
    case 5:
    {
    ShowMenuForPlayer(menu, playerid);
    }
  }
  }
  if(CurrentMenu == armas) //sera el menu de armas
    {
  switch(row)
  {
    case 0:
    {
    GivePlayerWeapon(playerid, 26, 500); //ejemplo de arma, pueden cambiarlos solo cambiando el id del arma.
    GameTextForPlayer(playerid, "~r~Escopetas Recortadas Obtenidas", 5000, 5); //mensaje al recibir armas
    TogglePlayerControllable(playerid,1);
    }
    case 1:
    {
    GivePlayerWeapon(playerid, 28, 500);
    GameTextForPlayer(playerid, "~r~Micro Uzis Obtenidas", 5000, 5);
    TogglePlayerControllable(playerid,1);
    }
    case 2:
    {
    GivePlayerWeapon(playerid, 31, 500);
    GameTextForPlayer(playerid, "~r~Rifle M4 Obtenido", 5000, 5);
    TogglePlayerControllable(playerid,1);
    }
    case 3:
    {
    GivePlayerWeapon(playerid, 22, 500);
    GameTextForPlayer(playerid, "~r~Pistolas Colts Obtenidas", 5000, 5);
    TogglePlayerControllable(playerid,1);
    }
    case 4:
    {
    SetPlayerArmour(playerid, 100.0);
    GameTextForPlayer(playerid, "~r~Chaleco Antibalas Obtenido", 5000, 5);
    TogglePlayerControllable(playerid,1);
    }
    case 5:
    {
    ShowMenuForPlayer(menu, playerid); //volver al menu principal
    }
  }
  }
  return 1;
}
Bueno esto fue todo si algo esta mal me avisan y lo corrijo o los ayudo a corregirlos

salu2 y suerte
Reply
#2

Ah, bastante bien, aunque ahora se lleva mбs lo de Dialog jeje
Reply
#3

Quote:
Originally Posted by CristianTdj
Ah, bastante bien, aunque ahora se lleva mбs lo de Dialog jeje
Tenes toda la razon pero para los novatos el dialog es muy complicado o x lo menos lo fue para mi

salu2 y suerte
Reply
#4

qUE ES una caback ?
Reply
#5

Quote:
Originally Posted by xpetrin
qUE ES una caback ?
Es todo lo que sucede cuando hay ciertos parametro en el servidor, por ejemplo, cuando se conecta un jugador o cuando se abre el gamemode.

Comienzan por "public".
Reply
#6

Quote:
Originally Posted by xpetrin
qUE ES una caback ?
se podria decir que es un evento, que refleja algo que pasa, por ejemplo cuando un jugador se conecta al servidor, se activa por asi decir el callback OnPlayerConnect. Dentro de estos eventos puedes poner funciones como enviar mensajes, etc, para que sucedan cuando se "active" este "evento".
Reply
#7

Quote:
Originally Posted by SAWC™
Quote:
Originally Posted by xpetrin
qUE ES una caback ?
Es todo lo que sucede cuando hay ciertos parametro en el servidor, por ejemplo, cuando se conecta un jugador o cuando se abre el gamemode.

Comienzan por "public".
Wow, se que no es el post pero felicidades por Gangsta
(Tenнa que decirlo)

Sн, casi me quedo con lo tuyo, un principiante lo entiende asн mejor
Reply
#8

Quote:
Originally Posted by CristianTdj
Quote:
Originally Posted by SAWC™
Quote:
Originally Posted by xpetrin
qUE ES una caback ?
Es todo lo que sucede cuando hay ciertos parametro en el servidor, por ejemplo, cuando se conecta un jugador o cuando se abre el gamemode.

Comienzan por "public".
Wow, se que no es el post pero felicidades por Gangsta
(Tenнa que decirlo)

Sн, casi me quedo con lo tuyo, un principiante lo entiende asн mejor
Felicidades por el rango, pero yo no se ingles muy bien, asн que solo puedo responder o preguntar en este apartado
Reply
#9

Quote:
Originally Posted by Cesar_Biker
Felicidades por el rango, pero yo no se ingles muy bien, asн que solo puedo responder o preguntar en este apartado
Todo lo que se relacione en colaborar y ayudar vale, ya se aquн o en otros lados
Reply
#10

En mi opinion es mucho mas facil el Dialogo, pero gustos son gustos... Muy bueno, creo que te faltaria un poquito explicar que hace la funcion para que luego puedan hacerlo solos sin la necesidad de copiar pegar y editar :P.

Saludos y buen tuto
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)