Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. /*VISITE NOSSO SITE: http://www.sampknd.com/
  2.   SAMP KND MELHOR BLOG DE SAMP DO BRASIL
  3. */
  4.  
  5. #include <a_samp>
  6. #include <zcmd> //Adicionando o ZCMD
  7. #include <sscanf> //Adicionando o sscanf
  8. #include <DOF2> //Adicionando o sscanf
  9.  
  10. #define CIVIL                   0 //Definimos "CIVIL" a 0
  11. #define POLICIAM                1 //Mesma coisa
  12. #define GROVE                   2 //Mesma coisa
  13. #define BALLAS                  3 //Mesma coisa
  14.  
  15. #define COR_ERRO                0xAD0000AA //CORES
  16. #define COR_SUCESSO             0x00AB00AA //CORES
  17. #define COR_AV_ADM              0x007CF6AA //CORES
  18. #define COR_AZUL_CLARO          0x00F6F6AA //CORES
  19. #define COR_RAD                 0x4876FFAA //CORES
  20.  
  21. enum PlayerDados //O enum serve, na maioria das veses, para ser usado em outras variaveis como pode ver abaixo
  22. {
  23.     Organizacao,
  24.     Cargo
  25. }
  26. //O enum tem função de criar váriaves que podem ser usadas em outras váriavies, exemplo:
  27. /*
  28. if(pDados[playerid][Cargo] != 6)
  29. {
  30.     SendClientMessage(playerid, -1, "Você não é LÍDER!");
  31. }
  32. */
  33.  
  34. new pDados[MAX_PLAYERS][PlayerDados]; //Criamos a varíavel que amarzenará os Dados do player
  35. /*
  36. MAX_PLAYERS = Para qual player será setado ou getado tal informação, exemplo: pDados[playerid][Ornizacao] = CIVIL;
  37. PlayerDados = Como eu disse lá no começo, o enum cria varias váriaveis, que pode ser usadas aqui, ao invés de ter que usar aquele monte de "new"
  38. */
  39. new GroveCars[3]; //O Número de veículos da organização +1
  40.  
  41. public OnGameModeInit()
  42. {
  43.     //Como adicionar veículos privados para tal Organização:
  44.     GroveCars[0] = AddStaticVehicle(509, -101.50000000, 1222.40002441, 19.29999924, 0.00000000, 1, 1); //Troque os parametros de acordo com sua necessidade
  45.     GroveCars[1] = AddStaticVehicle(509, -103.69999695, 1222.50000000, 19.29999924, 0.00000000, 1, 1);
  46.     GroveCars[2] = AddStaticVehicle(509, -103.69999695, 1222.50000000, 19.29999924, 0.00000000, 1, 1);
  47.     return 1;
  48. }
  49.  
  50. public OnGameModeExit()
  51. {
  52.     DOF2_Exit(); //Sempre coloque isto aqui quando estiver a usar DOF2, ou irá dar um WARN, e mau funcionamento da include
  53.     return 1;
  54. }
  55.  
  56. public OnPlayerRequestClass(playerid, classid)
  57. {
  58.     SpawnPlayer(playerid); //Ao aparecer aqueles setinhas (<<< >>> SPAWN), o jgador irá levar Spawn
  59.     return 1;
  60. }
  61.  
  62. public OnPlayerConnect(playerid)
  63. {
  64.     SendClientMessage(playerid, -1, "Bem vindo ao Servidor!");
  65.     SendClientMessage(playerid, -1, "GameMode/Tutorial by CidadeNovaRP!");
  66.     new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as váriaveos que irão armazenar o arquivo e o nome do jogador
  67.     GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player
  68.     format(arquivo, sizeof(arquivo), "Contas/%s", playername); //Formatamos o arquivo de acordo com o nome do player (Contas/NOME)
  69.     pDados[playerid][Organizacao] = DOF2_GetInt(arquivo, "Organização"); //Setamos "pDados[playerid][Organizacao]" de acordo com a TAG getada do "arquivo"
  70.     pDados[playerid][Cargo] = DOF2_GetInt(arquivo, "Cargo"); //Setamos "pDados[playerid][Cargo]" de acordo com a TAG getada do "arquivo"
  71.     SpawnPlayer(playerid); //Dá SPAWN no player
  72.     return 1;
  73. }
  74.  
  75. public OnPlayerDisconnect(playerid, reason)
  76. {
  77.     new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as váriaveos que irão armazenar o arquivo e o nome do jogador
  78.     GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player
  79.     format(arquivo, sizeof(arquivo), "Contas/%s", playername); //Formatamos o arquivo de acordo com o nome do player (Contas/NOME)
  80.     if(DOF2_FileExists(arquivo)) //Se a Conta existir
  81.     {
  82.         DOF2_SetInt(arquivo, "Organização", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organização"
  83.         DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
  84.     }
  85.     else //Se a conta não esxitir
  86.     {
  87.         DOF2_CreateFile(arquivo) //Cria o arquivo com os Dados do player
  88.         DOF2_SetInt(arquivo, "Organização", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organização"
  89.         DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
  90.     }
  91.     return 1;
  92. }
  93.  
  94. public OnPlayerSpawn(playerid)
  95. {
  96.     if(pDados[playerid][Organizacao] == CIVIL) //Verifica a organização do player
  97.     {
  98.         //SetPlayerHealth(playerid, vida); Seta o HP do player
  99.         //SetPlayerArmour(playerid, colete); Seta o COLETE do player
  100.         //SetPlayerInterior(playerid, interior); Seta o INTERIOR do player
  101.         SetPlayerPos(playerid, x, y, z); //Seta a POS do player de acordo com as coordenadas
  102.     }
  103.     else if(pDados[playerid][Organizacao] == POLICIAM) //Verifica a organização do player
  104.     {
  105.         SetPlayerPos(playerid, x, y, z); //Seta a POS do player de acordo com as coordenadas
  106.     }
  107.     else if(pDados[playerid][Organizacao] == GROVE) //Verifica a organização do player
  108.     {
  109.         SetPlayerPos(playerid, x, y, z); //Seta a POS do player de acordo com as coordenadas
  110.     }
  111.     else if(pDados[playerid][Organizacao] == BALLAS) //Verifica a organização do player
  112.     {
  113.         SetPlayerPos(playerid, x, y, z); //Seta a POS do player de acordo com as coordenadas
  114.     }
  115.     return 1;
  116. }
  117.  
  118. public OnPlayerDeath(playerid, killerid, reason)
  119. {
  120.     SpawnPlayer(playerid); //Spawn no nego!
  121.     return 1;
  122. }
  123.  
  124. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  125. {
  126.     //Como expulsar do véiculo se não for da organização:
  127.     if(vehicleid == GroveCars[0] || vehicleid == GroveCars[1] || vehicleid == GroveCars[2] && pDados[playerid][Organizacao] != GROVE) return SendClientMessage(playerid, -1, "Você não tem as chaves deste veículo e foi expulso."), RemovePlayerFromVehicle(playerid);
  128.     //Este comando é mais complexo, através do "if", verifica se o player está em algum dos veículos da grove, e depois se ele faz parte da grove, caso ele não seja, returna a função que expulsa ele do veículo
  129.     return 1;
  130. }
  131.  
  132. public OnPlayerUpdate(playerid)
  133. {
  134.     new arquivo[34], playername[MAX_PLAYER_NAME]; //Criamos as váriaveos que irão armazenar o arquivo e o nome do jogador
  135.     GetPlayerName(playerid, playername, sizeof(playername)); //Getamos o nome do player
  136.     format(arquivo, sizeof(arquivo), "Contas/%s", playername); //Formatamos o arquivo de acordo com o nome do player (Contas/NOME)
  137.     if(DOF2_FileExists(arquivo)) //Se a Conta existir
  138.     {
  139.         DOF2_SetInt(arquivo, "Organização", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organização"
  140.         DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
  141.     }
  142.     else //Se a conta não esxitir
  143.     {
  144.         DOF2_CreateFile(arquivo) //Cria o arquivo com os Dados do player
  145.         DOF2_SetInt(arquivo, "Organização", pDados[playerid][Organizacao]); //Setamos o valor de "pDados[playerid][Organizacao]" no "arquivo", com a TAG "Organização"
  146.         DOF2_SetInt(arquivo, "Cargo", pDados[playerid][Cargo]); //Setamos o valor de "pDados[playerid][Cargo]" no "arquivo", com a TAG "Cargo"
  147.     }
  148.     return 1;
  149. }
  150.  
  151. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  152. {
  153.     if(dialogid == 666) //Verifica se o id do dialog == 666 (do convite)
  154.     {
  155.         new playername[MAX_PLAYER_NAME], string[128]; //Variaveis que irá armazenar o nome e "string"
  156.         GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome do player que aparaceu o dialog
  157.         if(response) //Se ele clicar em SIM...
  158.         {
  159.             pDados[playerid][Organizacao] = GetPVarInt(playerid, "OrgConvidado"); //Seta a organização de acordo com a PVarInt do comando /convida
  160.             pDados[playerid][Cargo] = 1; //Seta o cargo a 1
  161.             format(string, sizeof(string), "%s aceitou seu Convite.", playername); //Formata uma mensagem com o nome do player que aceitou
  162.             SendClientMessage(GetPVarInt(playerid, "QuemConvidou"), COR_SUCESSO, string); //Envia a mensgaem a quem convidou
  163.             format(string, sizeof(string), "%s é o mais novo membro da Organização.", playername); //Formata uma mensgaem com o nome do player que aceitou
  164.             SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string); //Manda a mensagem para a organização do player
  165.             SendClientMessage(playerid, COR_SUCESSO, "Você aceitou o Convite."); //Manda uma mensagem amigavel ao player que aceitou :P
  166.             DeletePVar(playerid, "OrgConvidado"); //Deleta o PVar
  167.             DeletePVar(playerid, "QuemConvidou"); //Deleta o PVar
  168.             SpawnPlayer(playerid); //Spawn nele!
  169.         }
  170.         else //Se ele ciclar em NÃO...
  171.         {
  172.             format(string, sizeof(string), "%s rejeitou seu Convite.", playername); //Formata a mensgaem com o nome do player que rejeitou o convite
  173.             SendClientMessage(GetPVarInt(playerid, "QuemConvidou"), COR_SUCESSO, string); //Envia a mensagem a quem convidou o player
  174.             SendClientMessage(playerid, COR_SUCESSO, "Você rejeitou o Convite."); //Manda uma mensagem amigavel ao player que rejeitou :P
  175.             DeletePVar(playerid, "OrgConvidado"); //Deleta o PVar
  176.             DeletePVar(playerid, "QuemConvidou"); //Deleta o PVar
  177.         }
  178.     }
  179.     return 1;
  180. }
  181.  
  182. //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=( COMANDOS )=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  183.  
  184. CMD:membros(playerid)
  185. {
  186.     new playername[MAX_PLAYER_NAME], string[128]; //Criamos variaveis que irão armazenar o nome e mensganes formatadas
  187.     if(pDados[playerid][Organizacao] >= 1)
  188.     {
  189.         SendClientMessage(playerid, 0xBFC0C2FF, "(=-=-=-=-=-=-=({FFD700}Membros Online{BFC0C2})=-=-=-=-=-=-=)");
  190.         for(new i = 0; i < MAX_PLAYERS; i++) //Criamos um loop de acordo com o MAX_PLAYERS
  191.         {
  192.             if(IsPlayerConnected(i)) //Verifica se o "i" (player) do loop está online
  193.             {
  194.                 if(pDados[i][Organizacao] == pDados[playerid][Organizacao]) //Verifica se a organização do player (do loop) é igual a do player que digitou o comando
  195.                 {
  196.                     GetPlayerName(i, playername, sizeof(playername)); //Geta o nome do player(loop)...
  197.                     if(pDados[i][Cargo] <= 4) //Verifica se o player do loop e cargo 4 ou menos
  198.                     {
  199.                         format(string, sizeof(string), "Membro: %s, Cargo: %d", playername, pDados[i][Cargo]); //Formata uma mensgaem com o nome e cargo do player (loop)
  200.                         SendClientMessage(playerid, GetPlayerColor(playerid), string); //Envia a mensagem do player que digitou o comando
  201.                     }
  202.                     else
  203.                     {
  204.                         if(pDados[i][Cargo] == 6) //Verifica se o player é Líder e formata/envia uma mensagem diferente/destacada
  205.                         {
  206.                             format(string, sizeof(string), "Membro: %s, Cargo: Líder", playername);
  207.                             SendClientMessage(playerid, GetPlayerColor(playerid), string);
  208.                         }
  209.                         else if(pDados[i][Cargo] == 5) //Verifica se o player é Líder e formata/envia uma mensagem diferente/destacada
  210.                         {
  211.                             format(string, sizeof(string), "Membro: %s, Cargo: Sub-Líder", playername);
  212.                             SendClientMessage(playerid, GetPlayerColor(playerid), string);
  213.                         }
  214.                     }
  215.                 }
  216.             }
  217.         }
  218.     }
  219.     else
  220.     {
  221.         SendClientMessage(playerid, COR_ERRO, "Você não pertence a nenhuma Organização.");
  222.     }
  223.     return 1; //Returnando a 1, nunca se esqueça!
  224. }
  225.  
  226. CMD:r(playerid, params[])
  227. {
  228.     new text[128], string[128], playername[MAX_PLAYER_NAME]; //Criando variavés...
  229.     if(sscanf(params, "s", text)) return SendClientMessage(playerid, COR_ERRO, "USE: /r [MENSAGEM]"); //Aqui está o triunfo do sscanf! Para saber mais informações leia o Tópico
  230.     if(pDados[playerid][Organizacao] == CIVIL) return SendClientMessage(playerid, COR_ERRO, "Civis não tem Rádio."); //Verifica se o player é CIVIL, se for, returna a mensagem
  231.     GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome de quem usou o comando
  232.     format(string, sizeof(string), "(Rádio) %s [Cargo: %d] diz: %s", playername, pDados[playerid][Cargo], text); //Formata uma mensagem com o nome do player, cargo e a mensgem
  233.     SendFamilyMessage(pDados[playerid][Organizacao], COR_RAD, string); //Envia a mensagem a organização do player
  234.     return 1; //Returnando a 1, nunca se esqueça!
  235. }
  236.  
  237. CMD:convidar(playerid, params[])
  238. {
  239.     new id, playername[MAX_PLAYER_NAME], idname[MAX_PLAYER_NAME], string[128]; //Cria variaveis que irão armazenar id, nome e string
  240.     if(pDados[playerid][Cargo] != 6) return SendClientMessage(playerid, COR_ERRO, "Você não é líder."); //Vê se quem digitou o comando é líder, se não, returna a mensagem
  241.     if(sscanf(params, "d", id)) return SendClientMessage(playerid, COR_ERRO, "USE: /convidar [ID]"); //Aqui está o triunfo do sscanf! Para saber mais informações leia o Tópico
  242.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COR_ERRO, "Este jogador não está online."); //Verifica se o "id" está online...
  243.     if(pDados[id][Organizacao] != 0) return SendClientMessage(playerid, COR_ERRO, "Este jogador já está em uma Organização."); //Verifica se o player já está em alguma organização, se estiver, returna a mensagem
  244.     if(playerid == id) return SendClientMessage(playerid, COR_ERRO, "Você não pode convidar a você mesmo."); //Verifica se o "id" = id de quem digitou (playerid)
  245.     GetPlayerName(id, idname, sizeof(idname)); //Geta o nome do "id"
  246.     format(string, sizeof(string), "Você convidou %s para sua Organização.", idname); //Formata a mensagem com que foi convidado
  247.     SendClientMessage(playerid, GetPlayerColor(playerid), string); //Envia a mensagem ao líder
  248.     GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome de quem digitou o comando
  249.     format(string, sizeof(string), "%s está lhe Convidando para fazer parte da Organização: %s \nDeseja aceitar?", playername, GetOrgName(pDados[playerid][Organizacao])); //Formata um dialog com o nome de que convidou e o nome da organização
  250.     ShowPlayerDialog(id, 666, DIALOG_STYLE_MSGBOX, "Convite para organização", string, "Sim", "Não"); //Cria o dialog de acordo com a "string" e a mostra para o "id"
  251.     SetPVarInt(id, "OrgConvidado", pDados[playerid][Organizacao]); //Setando PVarInt que será usar no OnDialogResponse
  252.     SetPVarInt(id, "QuemConvidou", playerid); //Setando PVarInt que será usar no OnDialogResponse
  253.     return 1; //Returnando a 1, nunca se esqueça!
  254. }
  255.  
  256. CMD:promover(playerid, params[])
  257. {
  258.     new id, cargo, string[128], playername[MAX_PLAYER_NAME], idname[MAX_PLAYER_NAME]; //Cria as váriveis...
  259.     if(pDados[playerid][Cargo] != 6) return SendClientMessage(playerid, COR_ERRO, "Você não é líder."); //Verifica se o player que digitou o comando é líder
  260.     if(sscanf(params, "dd", id, cargo)) return SendClientMessage(playerid, COR_ERRO, "USE: /promover [ID] [CARGO]"); //Aqui está o triunfo do sscanf! Para saber mais informações leia o Tópico
  261.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COR_ERRO, "Este jogador não está online."); //Verifica se o player que será promovido está online
  262.     if(pDados[id][Organizacao] != pDados[playerid][Organizacao]) return SendClientMessage(playerid, COR_ERRO, "Este jogador não é da mesma Organização que você."); //Verifica se o "id" é da mesma organização do líder
  263.     if(playerid == id) return SendClientMessage(playerid, COR_ERRO, "Você não pode promover a você mesmo."); //Verifica se o "id" é ele mesmo (playerid)
  264.     if(cargo >= 1 || cargo <= 5) //Verifica se o cargo está entre 1 a 5
  265.     {
  266.         pDados[id][Cargo] = cargo; //Seta o cargo do player de acordo com o "cargo" que o líder digitou
  267.         GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome do player que digitou o comando
  268.         GetPlayerName(id, idname, sizeof(idname)); //Geta o nome de quem recebeu a promoção
  269.         format(string, sizeof(string), "%s promoveu o membro %s para o Cargo %d.", playername, idname, cargo); //Formata a mesgaem com quem prommoveu, quem foi promovido e o cargo
  270.         SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string); //Envia a mensagem para a organização
  271.         format(string, sizeof(string), "%s te promoveu para o Cargo %d.", playername, cargo); //Formata a mensgame...
  272.         SendClientMessage(id, GetPlayerColor(playerid), string); //Envia a mesngaem para quem foi promovido
  273.     }
  274.     else //Caso o cargo não esta de 1 a 5, envia a mensagem abaixo:
  275.     {
  276.         SendClientMessage(playerid, COR_ERRO, "Cargos de 1 a 5");
  277.         return 1;
  278.     }
  279.     return 1; //Returnando a 1, nunca se esqueça!
  280. }
  281.  
  282. CMD:demitir(playerid, params[])
  283. {
  284.     new id, motivo[128], string[128], playername[MAX_PLAYER_NAME], idname[MAX_PLAYER_NAME]; //Criando variaveis :P
  285.     if(pDados[playerid][Cargo] != 6) return SendClientMessage(playerid, COR_ERRO, "Você não é líder."); //Verifica se o player que digitou o comando é lider
  286.     if(sscanf(params, "ds", id, motivo)) return SendClientMessage(playerid, COR_ERRO, "USE: /demitir [ID] [MOTIVO]"); //Aqui está o triunfo do sscanf! Para saber mais informações leia o Tópico
  287.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COR_ERRO, "Este jogador não está online."); //Verifica se quem será demitido está online
  288.     if(pDados[id][Organizacao] != pDados[playerid][Organizacao]) return SendClientMessage(playerid, COR_ERRO, "Este jogador não é da mesma Organização que você."); //Verifica se o "id" é da mesma organização do líder
  289.     if(playerid == id) return SendClientMessage(playerid, COR_ERRO, "Você não pode demitir a você mesmo."); //Verifica se o "id" é ele mesmo (playerid)
  290.     pDados[id][Organizacao] = CIVIL; //Seta a organização do player a CIVIL
  291.     pDados[id][Cargo] = 0; //Seta o cargo od player a 0
  292.     GetPlayerName(playerid, playername, sizeof(playername)); //Geta o nome de quem demitiu
  293.     GetPlayerName(id, idname, sizeof(idname)); //Geta o nome de quem foi demitido
  294.     format(string, sizeof(string), "%s demitiu o membro %s da Organização.", playername, idname); //Formata uma mensagem com o nome de quem demitiu e quem foi demitido
  295.     SendFamilyMessage(pDados[playerid][Organizacao], GetPlayerColor(playerid), string); //Envia a mensagem para a organização
  296.     format(string, sizeof(string), "%s te demitiu da Organização. Motivo: %s.", playername, motivo); //Formata uma mensagem com o nome de quem demitiu e o motivo
  297.     SendClientMessage(id, GetPlayerColor(playerid), string); //Envia a mensagem para quem foi demitido
  298.     SpawnPlayer(id); //Spawn no nego!
  299.     return 1; //Returnando a 1, nunca se esqueça!
  300. }
  301.  
  302. CMD:darlider(playerid, params[])
  303. {
  304.     new id, org, string[256], quemdeu[MAX_PLAYER_NAME], quemganhou[MAX_PLAYER_NAME]; //Cria váriaveis que irá armazenar o id do líder, a organização, o nome etc...
  305.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COR_ERRO, "{00E5FF}Você não está autorizado a usar este Comando."); //Verifica se o player está logado na RCON, se não, returna a mensagem
  306.     if(sscanf(params, "ii", id, org)) return SendClientMessage(playerid, COR_ERRO, "USE: /darlider [ID] [ORGANIZAÇÃO]"); //Aqui está o triunfo do sscanf! Para saber mais informações leia o Tópico
  307.     if(!IsPlayerConnected(id)) return SendClientMessage(playerid, COR_ERRO, "Este jogador não está online."); //Verifica se o player que iria ser setado líder está online
  308.     if(playerid == id) return SendClientMessage(playerid, COR_ERRO, "Você não pode dar lider a você mesmo."); //Verifica se o "id" é igual ao seu (playerid)
  309.     GetPlayerName(id, quemganhou, sizeof(quemganhou)); //Geta o nome de quem ganhou a lideança
  310.     GetPlayerName(playerid, quemdeu, sizeof(quemdeu)); //Geta o nome do admin que deu o líder
  311.     format(string, sizeof(string), "Você  deu líder da Organização %s para %s(ID: %d)", GetOrgName(org), quemganhou, id); //Formata uma mensagem com o nome de quem ganhou a liderança, o nome da orgnização que foi setada e o "id"
  312.     SendClientMessage(playerid, COR_AZUL_CLARO, string); //Manda a mensgem formatada para quem digitou o comando (quem deu o líder)
  313.     format(string, sizeof(string), "%s(ID: %d) te deu líder da Organização %s.", quemdeu, playerid, GetOrgName(org)); //Formata uma mensgame com quem deu a liderança, o "playerid" e o nome organização setada
  314.     SendClientMessage(id, COR_AZUL_CLARO, string); //Envia a mensgaem formatada para que recebeu a liderança
  315.     format(string, sizeof(string), "%s(ID: %d) é o novo líder da Organização %s.", quemganhou, id, GetOrgName(org)); //Formata a mensagem...
  316.     SendClientMessageToAll(COR_AZUL_CLARO, string); //Envia a mensagem para todos Online
  317.     pDados[id][Organizacao] = org; //Seta a organização do "id"
  318.     pDados[id][Cargo] = 6; //Seta o cargo (liderança) do "id"
  319.     SpawnPlayer(id); //Spawna o player que rebeu a liderança
  320.     return 1; //Returnando a 1, nunca se esqueça!
  321. }
  322.  
  323.  
  324. CMD:equipar(playerid)
  325. {
  326.     if(pDados[playerid][Organizacao] == CIVIL) return SendClientMessage(playerid, COR_ERRO, "Você é Civil e não pode equipar."); //Verifica se o player é CIVIL, se for returna a mensagem
  327.     if(!IsPlayerInRangeOfPoint(playerid, 3.0, x, y, z)) return SendClientMessage(playerid, COR_ERRO, "Você não está no local para se equipar"); //Verifica se o player está nas coordenadas, se for returna a mensagem
  328.     new ammo = 50*pDados[playerid][Cargo]; //Isto fára que multiplique 50 pelo cargo do player, sendo assim, a munição que o player terá
  329.     GivePlayerWeapon(playerid, 3, 1); //Dá um cassetete ao player
  330.     GivePlayerWeapon(playerid, 31, ammo); //Dá uma M4 ao player
  331.     GivePlayerWeapon(playerid, 23, ammo); //Dá uma pistola silenciosa ao player
  332.     return 1; //Returnando a 1, nunca se esqueça!
  333. }
  334.  
  335. stock GetOrgName(orgid) //stock que geta o nome da Organização de acordo com a "orgid"
  336. {
  337.     new str[30];
  338.     if(orgid == 0)
  339.     {
  340.         str = "Civil";
  341.     }
  342.     else if(orgid == 1)
  343.     {
  344.         str = "Policia Militar";
  345.     }
  346.     else if(orgid == 2)
  347.     {
  348.         str = "Grove";
  349.     }
  350.     else if(orgid == 3)
  351.     {
  352.         str = "Ballas";
  353.     }
  354.     return str;
  355. }
  356.  
  357. stock SendFamilyMessage(orgid, cor, mensagem[]) //stock que envia a mensagem para tal organização de acordo com "ogrid"
  358. {
  359.     for(new i = 0; i < MAX_PLAYERS; i++)
  360.     {
  361.         if(IsPlayerConnected(i))
  362.         {
  363.             if(pDados[i][Organizacao] == orgid)
  364.             {
  365.                 SendClientMessage(i, cor, mensagem);
  366.             }
  367.         }
  368.     }
  369.     return 0;
  370. }