Advertisement
UserUnkn0wn

GM - Base pra criar profissão (Caminhoneiro)

May 26th, 2017
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.87 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3.  
  4. #define Desempregado (0)
  5. #define Caminhoneiro (1)
  6. #define C_ERRO 0xFF0000FF
  7.  
  8. main(){}
  9.  
  10. enum PlayerInfo
  11. {
  12.     pProfissao,
  13. };
  14. new pInfo[MAX_PLAYERS][PlayerInfo];
  15.  
  16. enum EmpregoInfo // criaremos este enumerador e adicionamos as variaveis a baixo
  17. {
  18.     eName[24], // Variavel do Nome da Profissao/Emprego
  19.     eSalario, // Variavel do Salário
  20.     eCor, // Cor do Emprego
  21. };
  22.  
  23. new eInfo[][EmpregoInfo] =
  24. {
  25.     {"Desempregado", 200, 0xFFFFFFFF},
  26.     {"Caminhoneiro", 1000, 0x8B8B8BFF}
  27. //  {"NomeDoEmprego", Salário, Cor} ( Adicione mais profissões assim...)
  28. };
  29.  
  30. new vCaminhoneiro[5]; //Variável que verifica se o player que entrou no caminhão é caminhoneiro veja em: "public OnGameModeInit()" e em "public CarCaminhoneiro(playerid)"
  31. new vCarregado[MAX_PLAYERS]; // Variável que verifica se o caminhão foi carregado!
  32.  
  33. public OnGameModeInit()
  34. {
  35.     print("\nGameMode Iniciada\n");
  36.     SetGameModeText("Testes");
  37.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 200.000, 0, 0, 0, 0, 0, 0);
  38.  
  39.     vCaminhoneiro[0] = AddStaticVehicleEx(578, 2052.6023, -1905.8325, 14.1730, 180.5583, 0x8B8B8BFF, 1, 150); // 1º Veículo dos Caminhoneiros
  40.     vCaminhoneiro[1] = AddStaticVehicleEx(578, 2059.0945, -1905.9183, 14.1713, 179.8211, 0x8B8B8BFF, 1, 150); // 2º Veículo dos Caminhoneiros
  41.     vCaminhoneiro[2] = AddStaticVehicleEx(578, 2065.6064, -1905.8041, 14.1713, 180.2481, 0x8B8B8BFF, 1, 150); // 3º Veículo dos Caminhoneiros
  42.     vCaminhoneiro[3] = AddStaticVehicleEx(578, 2062.2126, -1940.6613, 13.9761, 269.4714, 0x8B8B8BFF, 1, 150); // 4º Veículo dos Caminhoneiros
  43.     vCaminhoneiro[4] = AddStaticVehicleEx(578, 2048.1943, -1940.5839, 13.9758, 270.3432, 0x8B8B8BFF, 1, 150); // 5º Veículo dos Caminhoneiros
  44.     AddStaticVehicleEx(411, 2057.4897, -1927.1859, 14.0662, 100.000, 1, 2, 100); // INFERNUS PARA TESTES.
  45.     return 1;
  46. }
  47.  
  48. public OnGameModeExit()
  49. {
  50.     return 1;
  51. }
  52.  
  53. public OnPlayerRequestClass(playerid, classid)
  54. {
  55.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  56.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  57.     return 1;
  58. }
  59.  
  60. public OnPlayerRequestSpawn(playerid)
  61. {
  62.     SendClientMessage(playerid, 0xFFFFFFFF, "AVISO | Use: /Caminhoneiro!");
  63.     return 1;
  64. }
  65.  
  66. public OnPlayerConnect(playerid)
  67. {
  68.     SetPlayerColor(playerid, -1); // AO PLAYER CONECTAR O NICK FICA DA COR BRANCA!
  69.     vCarregado[playerid] = 0; // ISSO SÓ PODE FICAR "= 1" SE O PLAYER_ID FOR CAMINHONEIRO E DIGITAR: /CARREGAR NO LOCAL CERTO E COM O VEÍCULO CERTO!
  70.     return 1;
  71. }
  72.  
  73. public OnPlayerDisconnect(playerid, reason)
  74. {
  75.     vCarregado[playerid] = 0; // SETA "= 0" PRO PRÓXIMO ID A LOGAR NÃO FICAR COM "= 1" CASO O QUE SE DESCONECTOU ESTIVESSE INDO ENTREGAR E NÃO CONSEGUIU!
  76.     DisablePlayerCheckpoint(playerid);
  77.     return 1;
  78. }
  79.  
  80. public OnPlayerSpawn(playerid)
  81. {
  82.     SetPlayerColor(playerid, eInfo[pInfo[playerid][pProfissao]][eCor]); // Ao player spawnar o nick ficará da cor da profissão dele!
  83.     return 1;
  84. }
  85.  
  86. public OnPlayerStateChange(playerid, newstate, oldstate)
  87. {
  88.     if(newstate == PLAYER_STATE_DRIVER) CarCaminhoneiro(playerid);
  89.     return 1;
  90. }
  91.  
  92. //========================= PUBLIC | VEICULOS DOS CAMINHONEIROS | ==================================//
  93. forward CarCaminhoneiro(playerid);
  94. public CarCaminhoneiro(playerid)
  95. {
  96.     for(new v = 0; v <= 4; v++)
  97.     {                                  //SE NÃO ENTENDER, VEJA EM GameModeInit
  98.         if(IsPlayerInVehicle(playerid, vCaminhoneiro[v]) && pInfo[playerid][pProfissao] != Caminhoneiro)
  99.         {
  100.             SendClientMessage(playerid, C_ERRO, "ERRO | Esse veículo só pode ser usado por Caminhoneiros!");
  101.             RemovePlayerFromVehicle(playerid); // REMOVE O PLAYER DO VEÍCULO
  102.             return 1;
  103.         }
  104.     }
  105.     return 1;
  106. }
  107. //==================================================================================================//
  108. CMD:carregar(playerid)
  109. {
  110.     //SE O "pProfissao" DO PLAYER NÃO FOR IGUAL "!=" A "Caminhoneiro" RETORNA 1 MENSAGEM PRO PLAYER:
  111.     if(pInfo[playerid][pProfissao] != Caminhoneiro) return SendClientMessage(playerid, C_ERRO, "ERRO | Você não é um Caminhoneiro!");
  112.  
  113.     //INFO #1: SE O PLAYER ESTIVER EM UM VEÍCULO DE ID "1 (|| = ou) 2 ou 3 ou 4 ou 5"
  114.     //obs: o id não é o id do modelo (modelid) e sim o id do veículo no servidor, use: /dl para saber os id's dos veículos no seu servidor.
  115.     if(IsPlayerInVehicle(playerid, 1) || IsPlayerInVehicle(playerid, 2) || IsPlayerInVehicle(playerid, 3) || IsPlayerInVehicle(playerid, 4) || IsPlayerInVehicle(playerid, 5))
  116.     {
  117.         //INFO #2: MANDA ESSAS FUNÇÕES
  118.         if(!IsPlayerInRangeOfPoint(playerid, 10.0, 2057.4897, -1927.1859, 14.0662)) return SendClientMessage(playerid, C_ERRO, "ERRO | Você não está no local de Carregamento!");
  119.  
  120.         vCarregado[playerid] = 1; // SETA O "vCarregado" PRA 1 OU SEJA, DEIXA O PLAYER DIGITAR: /DESCARREGAR SE ELE TIVER CARREGADO PRIMEIRO.
  121.         SetPlayerCheckpoint(playerid, 1881.5275, -1344.8038, 13.1099, 5);
  122.         SendClientMessage(playerid, 0xFFFFFFFF, "CARGA | Caminhão carregado, siga o checkpoint marcado em seu mapa para Descarregar!");
  123.         SendClientMessage(playerid, 0xFFFFFFFF, "AVISO | Ao chegar no local use: {8B8B8B}/Descarregar{FFFFFF}!");
  124.         return 1;
  125.     }
  126.     //SE NÃO RETORNA MENSAGEM PRO PLAYER:
  127.     else return SendClientMessage(playerid, C_ERRO, "ERRO | Você não está em nenhum DFT-30 dos Caminhoneiros!");
  128. }
  129.  
  130. CMD:descarregar(playerid)
  131. {
  132.     if(pInfo[playerid][pProfissao] != Caminhoneiro) return SendClientMessage(playerid, C_ERRO, "ERRO | Você não é um Caminhoneiro!");
  133.  
  134.     if(IsPlayerInVehicle(playerid, 1) || IsPlayerInVehicle(playerid, 2) || IsPlayerInVehicle(playerid, 3) || IsPlayerInVehicle(playerid, 4) || IsPlayerInVehicle(playerid, 5))
  135.     { //SE O vCarregado DO PLAYER NÃO FOR IGUAL A 1 RETORNA MENSAGEM PRO PLAYER:
  136.         if(vCarregado[playerid] != 1) return SendClientMessage(playerid, C_ERRO, "ERRO | Você não carregou seu Caminhão!");
  137.         if(!IsPlayerInRangeOfPoint(playerid, 10.0, 1881.5275, -1344.8038, 13.1099)) return SendClientMessage(playerid, C_ERRO, "ERRO | Você não está no local de Descarregamento!");
  138.  
  139.         vCarregado[playerid] = 0; // SETA O "vCarregado" PRA 1 OU SEJA, DEIXA O PLAYER DIGITAR: /DESCARREGAR SE ELE TIVER CARREGADO PRIMEIRO.
  140.         SetPlayerCheckpoint(playerid, 1881.5275, -1344.8038, 13.1099, 5);
  141.         SendClientMessage(playerid, 0xFFFFFFFF, "CARGA | Caminhão descarregado, você recebeu {0CB000}R$1.000{FFFFFF} pelo seu trabalho!");
  142.         DisablePlayerCheckpoint(playerid);
  143.         GivePlayerMoney(playerid, 1000); // PAGA MIL REAIS AO PLAYER!
  144.         return 1;
  145.     }
  146.     else return SendClientMessage(playerid, C_ERRO, "ERRO | Você não está em nenhum DFT-30 dos Caminhoneiros!");
  147. }
  148.  
  149. CMD:caminhoneiro(playerid)
  150. {
  151.     //SE O "pProfissao" DO PLAYER NÃO FOR IGUAL "!=" A "DESEMPREGADO" RETORNA 1 MENSAGEM PRO PLAYER:
  152.     if(pInfo[playerid][pProfissao] != Desempregado) return SendClientMessage(playerid, C_ERRO, "ERRO | Você já está em algum Emprego, use: /SairEmprego");
  153.     //SE O "pProfissao" DO PLAYER FOR IGUAL "==" A "Caminhoneiro" RETORNA 1 MENSAGEM PRO PLAYER:
  154.     if(pInfo[playerid][pProfissao] == Caminhoneiro) return SendClientMessage(playerid, C_ERRO, "ERRO | Você já é um Caminhoneiro!");
  155.  
  156.     pInfo[playerid][pProfissao] = Caminhoneiro; // SETA O "pProfissao" DO PLAYER COMO: Caminhoneiro!
  157.     SetPlayerPos(playerid, 2046.8684,-1918.5924,13.5469); // SETA O PLAYER NO LOCAL DOS CAMINHONEIROS!
  158.     SendClientMessage(playerid, 0x8B8B8BFF, "EMPREGO | Parabéns, agora você é um Caminhoneiro!");
  159.     SendClientMessage(playerid, 0xFFFFFFFF, "AVISO | Use {8B8B8B}/Profissao{FFFFFF} para mais informações sobre a sua Profissão!");
  160.     SetPlayerColor(playerid, eInfo[pInfo[playerid][pProfissao]][eCor]); // SETA A COR DA PROFISSÃO DO PLAYER!
  161.     return 1;
  162. }
  163.  
  164. CMD:profissao(playerid)
  165. {
  166.     if(pInfo[playerid][pProfissao] == Desempregado) return SendClientMessage(playerid, C_ERRO, "ERRO | Você não está em nenhuma Profissão!");
  167.     if(pInfo[playerid][pProfissao] == Caminhoneiro)
  168.         return ShowPlayerDialog(playerid, 10000, DIALOG_STYLE_MSGBOX, "{FFFFFF}Profissão: {8B8B8B}Caminhoneiro", "{FFFFFF}» INFORMAÇÕES:\n\n{8B8B8B}/Carregar{FFFFFF} - Para carregar o seu caminhão no local da Profissão!\n{8B8B8B}/Descarregar{FFFFFF} - Para descarregar o seu caminhão no Local de descarregamento!\n", "Fechar", "");
  169.     return 1;
  170. }
  171.  
  172. CMD:sairemprego(playerid)
  173. { //SE O pInfo DO PLAYER ID TIVER COM O pProfissao IGUAL A Desempregado RETORNA MENSAGEM PRO PLAYER:
  174.     if(pInfo[playerid][pProfissao] == Desempregado) return SendClientMessage(playerid, C_ERRO, "ERRO | Você não está em nenhum Emprego!");
  175.     pInfo[playerid][pProfissao] = Desempregado; // SETA ELE COMO Desempregado!
  176.     vCarregado[playerid] = 0; // SE ELE TIVER DADO /Carregar SETA O 0 PRA ELE NÃO PUDER DESCARREGAR, AFINAL ELE SAIU DO EMPREGO.
  177.     SendClientMessage(playerid, -1, "EMPREGO | Você saiu do seu emprego e agora você é um Desempregado!");
  178.     SetPlayerColor(playerid, eInfo[pInfo[playerid][pProfissao]][eCor]); // SETA A COR DO EMPREGO DELE OU SEJA, Desempregado!
  179.     return 1;
  180. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement