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