[Tutorial] [TUT] Menus
#1

Este tutorial й recomendбvel para INTERMEDIБRIOS!

Eu considero mais complicado que o Checkpoint, mas й mais divertido de fazer

Enfim, vamos comeзar. No final eu ponho uma print e um download do tuto. Se eu esqueзer fazer me avisar uiaheuiaheuahe

Primeiro, vamos definir o Menu usando um 'new':
pawn Код:
new Menu:hospital; // Vocк pode trocar o 'hospital' por outro nome, mas terб que trocar os outros 'hospital' do Tutorial
Neste tutorial estaremos criando um comando para que quando o player digite, apareзa um comando onde й possнvel se 'curar'.

Se vocк usou o nome 'hospital' no new vocк nгo vai precisar mudar nada, se usou outro nome mude! Abaixo dos #includes e #defines coloque isso:
pawn Код:
hospital = CreateMenu("Hospital", 1, 200.0, 100.0, 150.0, 150.0);
AddMenuItem(hospital, 0, "Curar");
AddMenuItem(hospital, 0, "Sair");
Vou explicar:
Quote:
hospital = = Ele define o Menu que serб criado, daн o new
CreateMenu = CreateMenu й um Native, uma funзгo do SA-MP
("Hospital", = "Hospital" й o tнtulo do Menu mostrado no SA-MP
1, 200.0, 100.0, 150.0, 150.0); = Nъmero de Colunas, X, Y, Largura X, Largura Y

AddMenuItem = Native SA-MP, adicionar um нtem ao Menu designado (no caso, hospital)
(hospital, 0, "Curar"); = hospital й o menu em que serб adicionado o нtem, 0 й a coluna e "Curar" й o нtem que serб mostrado aos jogadores.

Entendeu? OK! Agora que o Menu estб criado, criaremos o comando para mostrб-lo. Vб atй o 'public OnPlayerCommandText(playerid, cmdtext[])' e coloque isso:
pawn Код:
if(strcmp(cmdtext, "/hospital", true) == 0)
{
   ShowMenuForPlayer(hospital, playerid); // Mostrar o Menu ao jogador
   TogglePlayerControllable(playerid, false); // Vamos parб-lo para que ele nгo se mova com o Menu aberto
   SendClientMessage(playerid, 0xFFFFFFAA, "Bem vindo ao Hospital! Posso ajudб-lo?"); // A mensagem ao abrir o menu (opcional)
   return 1;
}
Prooonto! Isso deve fazer o serviзo. Agora nуs temos que dar uma funзгo аs opзхes 'Curar' e 'Sair'. Procure por 'public OnPlayerSelectedMenuRow(playerid, row)' e coloque isso em baixo:
pawn Код:
new Menu:CurrentMenu = GetPlayerMenu(playerid); // Qual menu estб aberto? Precisamos saber antes de dar a funзгo а eles <
  if(CurrentMenu == hospital) // Por isso essas linhas <
  {
    switch(row) // Agora й cada opзгo por si
    {
       case 0: // Essa й a opзгo CURAR
       {
          GetPlayerMoney(playerid); // Vamos ver se ele tem dinheiro
          if(GetPlayerMoney(playerid)>=100) // Ok, ele tem um dinheiro maior ou igual а 100
          {
            SendClientMessage(playerid, 0xFFFFFFAA, "> Vocк foi curado! ($100)"); // Vamos falar pra ele que ele foi curado
            SetPlayerHealth(playerid, 100); // Vamos dar 100 Pontos de saъde
            GivePlayerMoney(playerid, -100); // Ele tinha mais que $100, portanto vamos lhe tirar o dinheiro
            TogglePlayerControllable(playerid, 1); // E finalmente deixar ele controlбvel denovo
          }
          if(GetPlayerMoney(playerid)<=99) // Ele nгo tem dinheiro, sendo que й menor ou igual a 99
          {
            SendClientMessage(playerid, 0xFFFFFFAA, "> Vocк nгo tem dinheiro suficiente! ($100)"); // Vamos lhe informar
            TogglePlayerControllable(playerid, 1); // E como nгo tem dinheiro, nгo vamos fazer nada, sу deixб-lo mуvel novamente
          }
       }
       case 1: // Essa й a opзгo SAIR
       {
            TogglePlayerControllable(playerid, 1); // Como ele nгo quer nada, vamos deixб-lo mуvel...
            SendClientMessage(playerid, 0xFFFFFFAA, "> Ok, ok. Vocк й quem sabe."); // ...e confirmar a escolha
       }
     }
   }
E por ъltimo, em 'public OnPlayerExitedMenu(playerid)' ponha isso:
pawn Код:
TogglePlayerControllable(playerid, true); // Assim, se o player apertar F, vai poder andar novamente.
Pronto, vocк acabou de fazer seu primeiro Menu! Uma boa idйia (nгo, nгo й uma 51) й colocar um Menu ao passar por cima de um Checkpoint, simplesmente coloque ShowMenuForPlayer no OnPlayerEnterCheckpoint!

Prints do Tutorial - Print 1 / Print 2

DOWNLOADS
- MenuTutorial.pwn
Reply


Messages In This Thread
[TUT] Menus - by OxygenBR - 29.12.2009, 08:38
Re: [TUT] Menus - by Xeretta - 29.12.2009, 08:49
Re: [TUT] Menus - by OxygenBR - 29.12.2009, 09:06
Re: [TUT] Menus - by Nyafe - 29.12.2009, 12:05
Re: [TUT] Menus - by OxygenBR - 29.12.2009, 12:10
Re: [TUT] Menus - by Guedes747 - 29.12.2009, 14:14
Re: [TUT] Menus - by trindade02 - 29.12.2009, 18:56
Re: [TUT] Menus - by SlashPT - 30.12.2009, 14:25
Re: [TUT] Menus - by Guedes747 - 30.12.2009, 15:16
Re: [TUT] Menus - by Xeretta - 30.12.2009, 15:20

Forum Jump:


Users browsing this thread: 5 Guest(s)