toribio

toribio

Sep 10th, 2008
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 9.09 KB | None | 0 0
  1. //nesse exemplo eu vou usar o cpstream do matraka..: http://zueras-server.110mb.com/cpstream.zip
  2.  
  3. //no topo coloca as vari�veis dos menus...:
  4. new Menu:menu1;
  5. new Menu:menu2;
  6. new Menu:menu3;
  7. //variavel do checkpoint:
  8. new cp1;
  9.  
  10. //ai voc� no OnGameModeInit coloca a parte que cria os menus e o checkpoint
  11. //cria o menu Principal, que seleciona "Carros" ou "Motos":
  12. menu1 = CreateMenu("Veiculos", 1/*uma coluna apenas*/, 20/*x*/, 120/*y*/, 150/*tamanho da coluna 1...*/);
  13. AddMenuItem(menu1, 1/*coluna 1, adiciona � coluna 1*/, "Carros"); //menu1 id 0
  14. AddMenuItem(menu1, 1/*primeira coluna...*/, "Motos"); //menu1 id 1
  15.  
  16. //agora vamos criar o menu da sele��o "Carros":
  17. menu2 = CreateMenu("Carros", 2/*2 colunas*/, 20/*x*/, 120/*y*/, 150/*tamanho da coluna 1*/, 40/*tamanho da coluna 2*/);
  18. SetMenuColumnHeader(menu2, 1/*coluna 1*/, "Veiculo"); //adiciona o nome da primeira coluna...
  19. SetMenuColumnHeader(menu2, 2/*coluna 2*/, "Custo"); //adiciona o nome da segunda coluna...
  20. AddMenuItem(menu2, 1/*coluna 1*/, "Infernus"); //adiciona o item "Infernus" � coluna 1 da primeira linha... menu2 id 0
  21.     AddMenuItem(menu2, 2/*coluna 2*/, "$1000"); //adiciona o $1000 na mesma linha do "Infernus", (menu2 id 0) ent�o fica assim:
  22.     //Carros
  23.     //Veiculo    Custo
  24.     //Infernus  $1000    //id 0
  25. //agora eu adiciono um outro carro em outra linha:
  26. AddMenuItem(menu2, 1/*coluna 1*/, "Cheetah"); //adiciona o item "Cheetah" � coluna 1 da segunda linha... menu 2 id 1
  27.     AddMenuItem(menu2, 2/*coluna 2*/, "$1500"); //adiciona o "$1500" � coluna 2 da linha 2 (a linha do "Cheetah")... menu 2 id 1
  28.     //agora o menu ta assim:
  29.     //Carros
  30.     //Veiculo    Custo
  31.     //Infernus  $1000    //id 0
  32.     //Cheetah   $1500    //id 1
  33. //agora voc� ja sabe adicionar mais...
  34.  
  35. //agora vamos criar o menu da sele��o "Motos":
  36. menu3 = CreateMenu("Motos", 2/*2 colunas*/, 20/*x*/, 120/*y*/, 150/*tamanho da coluna 1*/, 40/*tamanho da coluna 2*/);
  37. SetMenuColumnHeader(menu3, 1/*coluna 1*/, "Veiculo"); //adiciona o nome da primeira coluna...
  38. SetMenuColumnHeader(menu3, 2/*coluna 2*/, "Custo"); //adiciona o nome da segunda coluna...
  39. AddMenuItem(menu3, 1/*coluna 1*/, "NRG-500"); //adiciona o item "NRG-500" � coluna 1 da primeira linha... menu3 id 0
  40.     AddMenuItem(menu3, 2/*coluna 2*/, "$500"); //adiciona o $500 na mesma linha do "NRG-500", (menu3 id 0) ent�o fica assim:
  41.     //Motos
  42.     //Veiculo    Custo
  43.     //nrg-500    $500    //id 0
  44. //agora eu adiciono um outro carro em outra linha:
  45. AddMenuItem(menu3, 1/*coluna 1*/, "FCR-900"); //adiciona o item "FC-900" � coluna 1 da segunda linha... menu 3 id 1
  46.     AddMenuItem(menu3, 2/*coluna 2*/, "$350"); //adiciona o "$350" � coluan 2 da linha 2 (a linha do "FCR-900")... menu 3 id 1
  47.     //agora o menu ta assim:
  48.     //Motos
  49.     //Veiculo    Custo
  50.     //NRG-500   $500    //id 0
  51.     //FCR-900   $350    //id 1
  52. //agora voc� ja sabe adicionar mais...
  53.  
  54. //todos os menus foram criados, agora vou criar o checkpoint:
  55. cp1 = CPS_AddCheckpoint(123.0/*x*/, 123.0/*y*/, 10.0/*z*/, 3.0/*tamanho*/, 40/*distancia de spawn*/);
  56. //criado...
  57.  
  58. //agora vamos mostrar o menu pra quem entrar no checkpoint:
  59. //coloca no OnPlayerEnterCheckpoint isso:
  60. new checkpointid = CPS_GetPlayerCheckpoint(playerid);
  61. if(checkpointid == cp1) //verifica se o checkpoint � o "cp1"
  62. {
  63.     ShowMenuForPlayer(menu1, playerid); //mostra o menu pro player
  64.     TogglePlayerControllable(playerid, 0); //congela ele
  65. }
  66.  
  67. //agora, vamos dar "a��o" aos itens do menu, pra quando clicar em cada um, acontecer algo..:
  68. //coloque o c�digo abaixo no seu OnPlayerSelectedMenuRow:
  69. new current = GetPlayerMenu(playerid);
  70. if(current == menu1) //verifica se o player est� no menu 1 (Veiculos)
  71. {
  72.     switch(row)
  73.     {
  74.         case 0: //caso o player seleciona o item de ID 0 do menu1 (Carros)
  75.         {
  76.             HideMenuForPlayer(current, playerid); //oculta o menu atual que ele ta (o Veiculos)
  77.             ShowMenuForPlayer(menu2, playerid); //mostra o menu2 pro player (o menu Carros)
  78.         }
  79.         case 1: //caso o player seleciona o item de ID 1 do menu1 (Motos)
  80.         {
  81.             HideMenuForPlayer(current, playerid); //oculta o menu atual que ele ta (o Veiculos)
  82.             ShowMenuForPlayer(menu3, playerid); //mostra o menu3 pro player (o menu Motos)
  83.         }
  84.     }
  85. } //encerra se ele estiver no menu1...
  86.  
  87. if(current == menu2) //agora verifica se o player est� no menu2 (Carros)
  88. {
  89.     switch(row)
  90.     {
  91.         case 0: //caso o player selecione o item de ID 0 no menu2 (Infernus)
  92.         {
  93.             if(GetPlayerMoney(playerid) >= 1000) //verifica se o player tem 1000 reais pra cima
  94.             {
  95.                 HideMenuForPlayer(current, playerid); //oculta o menu...
  96.                 new Float:x, Float:y, Float:z, Float:a);
  97.                 GetPlayerPos(playerid, x, y, z); //captura a pos do player
  98.                 GetPlayerFacingAngle(playerid, a); //captura o angulo do player
  99.                 new veiculo = CreateVehicle(411, x, y, z, a, -1, -1); //cria um infernus
  100.                 PutPlayerInVehicle(playerid, veiculo, 0); //coloca ele como motorista do infernus
  101.                 GivePlayerMoney(playerid, -1000); //tira 1000 reais do player...
  102.             } else { //caso ele n�o tenha 1000 reais...:
  103.                 SendClientMessage(playerid, 0xFF0000AA, "Sem grana!");
  104.             }
  105.         }
  106.         case 1: //caso o player selecione o item de ID 1 no menu2 (Cheetah)
  107.         {
  108.             if(GetPlayerMoney(playerid) >= 1500) //verifica se o player tem 1500 reais pra cima
  109.             {
  110.                 HideMenuForPlayer(current, playerid); //oculta o menu...
  111.                 new Float:x, Float:y, Float:z, Float:a);
  112.                 GetPlayerPos(playerid, x, y, z); //captura a pos do player
  113.                 GetPlayerFacingAngle(playerid, a); //captura o angulo do player
  114.                 new veiculo = CreateVehicle(415, x, y, z, a, -1, -1); //cria um cheetah
  115.                 PutPlayerInVehicle(playerid, veiculo, 0); //coloca ele como motorista do cheetah
  116.                 GivePlayerMoney(playerid, -1500); //tira 1500 reais do player...
  117.             } else { //caso ele n�o tenha 1500 reais...:
  118.                 SendClientMessage(playerid, 0xFF0000AA, "Sem grana!");
  119.             }
  120.         }
  121.     }
  122. } //encerra o menu2
  123. //agora entra o menu das motos:
  124. if(current == menu3) //agora verifica se o player est� no menu3 (Motos)
  125. {
  126.     switch(row)
  127.     {
  128.         case 0: //caso o player selecione o item de ID 0 no menu3 (NRG-500)
  129.         {
  130.             if(GetPlayerMoney(playerid) >= 500) //verifica se o player tem 500 reais pra cima
  131.             {
  132.                 HideMenuForPlayer(current, playerid); //oculta o menu...
  133.                 new Float:x, Float:y, Float:z, Float:a);
  134.                 GetPlayerPos(playerid, x, y, z); //captura a pos do player
  135.                 GetPlayerFacingAngle(playerid, a); //captura o angulo do player
  136.                 new veiculo = CreateVehicle(522, x, y, z, a, -1, -1); //cria uma NRG-500
  137.                 PutPlayerInVehicle(playerid, veiculo, 0); //coloca ele como motorista da NRG-500
  138.                 GivePlayerMoney(playerid, -500); //tira 500 reais do player...
  139.             } else { //caso ele n�o tenha 500 reais...:
  140.                 SendClientMessage(playerid, 0xFF0000AA, "Sem grana!");
  141.             }
  142.         }
  143.         case 1: //caso o player selecione o item de ID 1 no menu3 (FCR-900)
  144.         {
  145.             if(GetPlayerMoney(playerid) >= 350) //verifica se o player tem 350 reais pra cima
  146.             {
  147.                 HideMenuForPlayer(current, playerid); //oculta o menu...
  148.                 new Float:x, Float:y, Float:z, Float:a);
  149.                 GetPlayerPos(playerid, x, y, z); //captura a pos do player
  150.                 GetPlayerFacingAngle(playerid, a); //captura o angulo do player
  151.                 new veiculo = CreateVehicle(521, x, y, z, a, -1, -1); //cria uma FCR-900
  152.                 PutPlayerInVehicle(playerid, veiculo, 0); //coloca ele como motorista da FCR-900
  153.                 GivePlayerMoney(playerid, -350); //tira 350 reais do player...
  154.             } else { //caso ele n�o tenha 350 reais...:
  155.                 SendClientMessage(playerid, 0xFF0000AA, "Sem grana!");
  156.             }
  157.         }
  158.     }
  159. } //encerra o menu3
  160.  
  161. //pronto, terminamos de fazer a a��o dos itens dos menus, agora, como o player sai do menu?
  162. //temos que fazer pra quando ele apertar F ou ENTER, ele saia do menu, simples:
  163. //coloque isso no OnPlayerKeyStateChnage:
  164. if(GetPlayerMenu(playerid) == menu1 || GetPlayerMenu(playerid) == menu2 || GetPlayerMenu(playerid) == menu3) //verifica se ele ta no menu1, menu2 ou menu3
  165. {
  166.     if(newkeys == KEY_RETURN)
  167.     {
  168.         if(GetPlayerMenu(playerid) == menu1) //verifica se ele ta no menu1
  169.         {
  170.             HideMenuForPlayer(GetPlayerMenu(playerid), playerid); //oculta o menu
  171.         } else if(GetPlayerMenu(playerid) == menu2 || getplayerMenu(playerid) == menu3) //verifica se ele ta no menu 2 ou no menu 3
  172.         {
  173.             HideMenuForPlayer(GetPlayerMenu(playerid), playerid); //oculta o menu
  174.             ShowMenuForPlayer(menu1, playerid); //mostra o menu 1 pro player (menu inicial)
  175.         }
  176.     }
  177. }
  178.  
  179. //prontinho, agora voc� tem um sistema completo de menu e checkpoint...
Add Comment
Please, Sign In to add comment