[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
#2

LOOOOOL!
Tutorial PERFEITO, eu sei fazer menus desse tipo, e sinceramente odeio eles, prefiro os GUI, vou ver se providencio um tutorial, mas para os novatos isso ajudarб e muito.
Reply
#3

Quote:
Originally Posted by [BKs
Xeretta[VL] ]
LOOOOOL!
Tutorial PERFEITO, eu sei fazer menus desse tipo, e sinceramente odeio eles, prefiro os GUI, vou ver se providencio um tutorial, mas para os novatos isso ajudarб e muito.
Opaa, valeu ^^

Demorei um tempгo pra fazer, espero que o pessoal goste!
Reply
#4

estб muito nice !!!

Reply
#5

Quote:
Originally Posted by Nyafe
estб muito nice !!!

Opa, valeu. Mais pra frente vou fazer um Tuto sobre Pickups :P
Reply
#6

Se eu criei uma secзгo para tuturiais para alguma coisa й.
Reply
#7

Vou da uma estudade viu, sу voltar de viagem e pegar meu pc, to em um Not com net 3.5g @_@ ta ruimm viu, pra quem ta acostumado com uma net de 10 mb
Reply
#8

Quote:
Originally Posted by Guedes_
Se eu criei uma secзгo para tuturiais para alguma coisa й.
axo ke o pessoal nao esta a ligar te nenhuma guedes e isso й um pouco de abuso .... mast ta bom
Reply
#9

Quote:
Originally Posted by DarK_TeaM PT
Quote:
Originally Posted by Guedes_
Se eu criei uma secзгo para tuturiais para alguma coisa й.
axo ke o pessoal nao esta a ligar te nenhuma guedes e isso й um pouco de abuso .... mast ta bom
Preciso de falar com o Kye, isto precisa de um moderador. Ou dois.
Reply
#10

Quote:
Originally Posted by Guedes_
Preciso de falar com o Kye, isto precisa de um moderador. Ou dois.
Concordo, precisamos urgente de um moderador, a бrea em portuguкs й a mais usada entre todas as "Non-English".
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)