SHARE
TWEET

Sistema de Incendio. By: ProKillerPa

a guest Oct 13th, 2014 600 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include a_samp
  2. #include zcmd
  3. #include sscanf2
  4. #include DOF2
  5.  
  6. new Fogo[7],
  7.         CarsBomb[9],
  8.         bool:BombeiroE[MAX_PLAYERS]
  9. ;
  10.  
  11. public OnFilterScriptInit(){
  12.  
  13.         CarsBomb[0] = AddStaticVehicle(407,-2052.7344,92.6358,28.6204,89.9753,3,60000); // Car01Bomb
  14.         CarsBomb[1] = AddStaticVehicle(407,-2053.3623,84.1748,28.6289,91.1893,3,60000); // Car02Bomb
  15.         CarsBomb[2] = AddStaticVehicle(407,-2053.4856,75.6453,28.6246,90.9805,3,60000); // Car03Bomb
  16.         CarsBomb[3] = AddStaticVehicle(407,-2063.5962,52.2610,28.7280,270.3615,3,60000); // Car04Bomb
  17.         CarsBomb[4] = AddStaticVehicle(407,-2063.2253,58.3733,28.7146,272.1339,3,60000); // Car05Bomb
  18.         CarsBomb[5] = AddStaticVehicle(407,-2063.9917,63.9367,28.6676,273.3929,3,60000); // Car06Bomb
  19.         CarsBomb[6] = AddStaticVehicle(407,-2021.6857,92.9047,28.2797,271.3405,3,60000); // Car07Bomb
  20.         CarsBomb[7] = AddStaticVehicle(407,-2021.4604,84.1339,28.2355,272.8079,3, 60000); // Car08Bomb
  21.         CarsBomb[8] = AddStaticVehicle(407,-2021.7314,75.5931,28.3139,271.3740,3, 60000); // Car09Bomb
  22.         return 1;
  23. }
  24.  
  25. enum EnumBomb{
  26.         Local[40],
  27.         Float:FogoX,
  28.         Float:FogoY,
  29.         Float:FogoZ,
  30.         ValorReceber
  31. }
  32.  
  33. new LocaisFogo[6][EnumBomb] = {
  34.         {"Casa de Interior", 1105.7981,-299.4438,74.5391, 1700},
  35.         {"Deposito de Madeira", 95.8632,-184.0046,1.4844, 1300},
  36.         {"Fazenda", -93.4231,-26.3268,3.1172, 1000},
  37.         {"Departamento de Policia", -219.2005,984.7499,19.5476, 1900},
  38.         {"Moradia Moderna", 254.7919,1125.6041,20.2422, 1500},
  39.         {"Loja de Conveniencia", -48.9465,1188.7512,19.3594, 1800}
  40. };
  41.  
  42. new Float:_ArmazenarRandom01[MAX_PLAYERS],
  43.         Float:_ArmazenarRandom02[MAX_PLAYERS],
  44.         Float:_ArmazenarRandom03[MAX_PLAYERS]
  45. ;
  46.  
  47. new Porcentagem = 256;
  48. new Text3D:var;
  49.  
  50. new TemIncendio[MAX_PLAYERS],
  51.         VaiReceber[MAX_PLAYERS],
  52.         ValorReceber2[MAX_PLAYERS]
  53. ;
  54.  
  55. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){
  56.         if(IsPlayerInRangeOfPoint(playerid, 7.0, _ArmazenarRandom01[playerid], _ArmazenarRandom02[playerid], _ArmazenarRandom03[playerid])){
  57.  
  58.                 if(TemIncendio[playerid] == 0) return 1;
  59.                 GameTextForPlayer(playerid, "~y~Apagando!~n~~g~Continue Clicando", 1000, 3);
  60.  
  61.                 new _Fire[200];
  62.                 format(_Fire, sizeof(_Fire), "{FFD700}Porcentagem de Fogo:\n{FA8072}[%d/256]", Porcentagem-10);
  63.  
  64.                 Update3DTextLabelText(var, 0xFFFFFFFF, _Fire);
  65.  
  66.                 if(Porcentagem <= 0){
  67.                     GameTextForPlayer(playerid, "~r~Incendio Apagado!~n~~y~Volte para a HQ!", 4000, 3);
  68.                    
  69.                         SendClientMessage(playerid, -1, "| BOMBEIRO | Incendio Apagado! Volte para a HQ para finalizar o serviço!");
  70.                         Delete3DTextLabel(var);
  71.                        
  72.                         VaiReceber[playerid] = 1; //
  73.                        
  74.                         TemIncendio[playerid] = 0;
  75.  
  76.                         SetPlayerCheckpoint(playerid, -2048.6135,67.2293,28.6456, 0.8);
  77.                         Porcentagem = 256;
  78.                        
  79.                         for(new i = 0; i < sizeof(Fogo); i ++) {
  80.                                 DestroyObject(Fogo[i]); DestroyObject(Fogo[i]);
  81.                         }
  82.                 }
  83.  
  84.                 Porcentagem = Porcentagem - 1;
  85.         }
  86.         return 1;
  87. }
  88.  
  89. public OnPlayerStateChange(playerid, newstate, oldstate)
  90. {
  91.     if(newstate == 2)
  92.     {
  93.         if(GetPlayerVehicleID(playerid) >= CarsBomb[0] && GetPlayerVehicleID(playerid) <= CarsBomb[8]){
  94.                         if(BombeiroE[playerid] == true){
  95.                        
  96.                         }
  97.                         else return ( SendClientMessage(playerid, -1, "{BEBEBE}| ERRO | Você não pode utilizar esse veiculo!"), RemovePlayerFromVehicle(playerid) );
  98.         }
  99.         else return 1;
  100.     }
  101.     return 1;
  102. }
  103.  
  104. new Bomb[MAX_PLAYERS];
  105.  
  106. public OnPlayerConnect(playerid){
  107.     SetPlayerCheckpoint(playerid, -2048.6135,67.2293,28.6456, 0.8);
  108.     Create3DTextLabel("{BEBEBE}Menu de Incendio\n{FA8072}Pegue um Incendio!", 0x008080FF, -2048.6135,67.2293,28.6456, 15.0, 0, 0);
  109.    
  110.         new _Aways[70],
  111.                 Bombeiro[MAX_PLAYER_NAME]
  112.         ;
  113.  
  114.         GetPlayerName(playerid, Bombeiro, sizeof(Bombeiro));
  115.  
  116.         format(_Aways, sizeof(_Aways), "Bombeiros/%s.ini", Bombeiro);
  117.        
  118.         Bomb[playerid] = DOF2_GetInt(_Aways, "Bombeiro");
  119.        
  120.         if(Bomb[playerid] == 1){
  121.             BombeiroE[playerid] = true;
  122.         }
  123.         else BombeiroE[playerid] = false;
  124.         return 1;
  125. }
  126.  
  127. public OnPlayerDisconnect(playerid, reason){
  128.  
  129.         ValorReceber2[playerid] = 0;
  130.     TemIncendio[playerid] = 0,
  131.     VaiReceber[playerid] = 0,
  132.     BombeiroE[playerid] = false
  133.         ;
  134.         return 1;
  135. }
  136.  
  137. CMD:procurarincendio(playerid){
  138.     if(BombeiroE[playerid] == false) return SendClientMessage(playerid, -1, "| ERRO | Você não é bombeiro!");
  139.         if(IsPlayerInRangeOfPoint(playerid, 2.0, -2048.6135,67.2293,28.6456)){
  140.                 new str[1000];
  141.                 new rand = random(sizeof(LocaisFogo));
  142.  
  143.             _ArmazenarRandom01[playerid] = LocaisFogo[rand][FogoX];
  144.             _ArmazenarRandom02[playerid] = LocaisFogo[rand][FogoY];
  145.             _ArmazenarRandom03[playerid] = LocaisFogo[rand][FogoZ];
  146.             ValorReceber2[playerid] = LocaisFogo[rand][ValorReceber];
  147.  
  148.                 new
  149.                 Float: _ContarDist = GetPlayerDistanceFromPoint(playerid, LocaisFogo[rand][FogoX], LocaisFogo[rand][FogoY], LocaisFogo[rand][FogoZ]);
  150.  
  151.                 format(str, sizeof(str), "{FA8072}San Andreas Fire!\n\n{BEBEBE}A Central de atendimento recebeu um chamado de incendio, siga abaixo os dados pra chegar até ele!\n\n{FA8072}Local do Incendio: {BEBEBE}%s\n\
  152.                 {FA8072}Valor á Receber: {32CD32}R$%d,00\n{FA8072}Distância: {BEBEBE}%0.2fm", LocaisFogo[rand][Local], LocaisFogo[rand][ValorReceber], _ContarDist);
  153.                 ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "{BEBEBE}Incendio Encontrado!", str, "Ir!", "");
  154.  
  155.             SetPlayerCheckpoint(playerid, LocaisFogo[rand][FogoX], LocaisFogo[rand][FogoY], LocaisFogo[rand][FogoZ], 0.0);
  156.  
  157.                 Fogo[0] = CreateObject(18691, LocaisFogo[rand][FogoX]+1, LocaisFogo[rand][FogoY], LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  158.                 Fogo[1] = CreateObject(18691, LocaisFogo[rand][FogoX]+1, LocaisFogo[rand][FogoY], LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  159.                 Fogo[2] = CreateObject(18691, LocaisFogo[rand][FogoX], LocaisFogo[rand][FogoY]+1, LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  160.                 Fogo[3] = CreateObject(18691, LocaisFogo[rand][FogoX]+1, LocaisFogo[rand][FogoY]+1, LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  161.                 Fogo[4] = CreateObject(18691, LocaisFogo[rand][FogoX]-1, LocaisFogo[rand][FogoY]+1, LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  162.                 Fogo[5] = CreateObject(18691, LocaisFogo[rand][FogoX], LocaisFogo[rand][FogoY]-1, LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  163.                 Fogo[6] = CreateObject(18691, LocaisFogo[rand][FogoX]-1, LocaisFogo[rand][FogoY]-1, LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  164.  
  165.  
  166.                 new _Fire[200];
  167.  
  168.                 format(_Fire, sizeof(_Fire), "{FFD700}Porcentagem de Fogo:\n{FA8072}[%d/256]", Porcentagem);
  169.  
  170.             var = Create3DTextLabel(_Fire, 0x008080FF, LocaisFogo[rand][FogoX], LocaisFogo[rand][FogoY], LocaisFogo[rand][FogoZ], 40.0, 0, 0);
  171.  
  172.             TemIncendio[playerid] = 1;
  173.         }
  174.         else return SendClientMessage(playerid, -1, "| BOMBEIRO | Você não está na HQ dos bombeiros!");
  175.         return 1;
  176. }
  177.  
  178. CMD:finalizar(playerid){
  179.     if(BombeiroE[playerid] == false) return SendClientMessage(playerid, -1, "| ERRO | Você não é bombeiro!");
  180.     if(!IsPlayerInRangeOfPoint(playerid, 2.0, -2048.6135,67.2293,28.6456)) return SendClientMessage(playerid, -1, "| ERRO | Você não está na HQ de bombeiros!'");
  181.  
  182.         if(VaiReceber[playerid] == 1){
  183.             new _Var[500], AtualMoney[MAX_PLAYERS];
  184.            
  185.             AtualMoney[playerid] = GetPlayerMoney(playerid);
  186.            
  187.             GivePlayerMoney(playerid, AtualMoney[playerid] + ValorReceber2[playerid]);
  188.            
  189.             format(_Var, sizeof(_Var), "{FA8072}San Andreas Fire!\n\n{BEBEBE}A Corporação de bombeiros S.A agradece sua contribuição com a mesma!\nVeja abaixo o valor recebido pelo seu trabalho.\n\n{FA8072}Valor Recebido: {32CD32}R$%d,00", ValorReceber2[playerid]);
  190.             ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "{BEBEBE}Incendio Finalizado!", _Var, "Fechar", "");
  191.            
  192.             VaiReceber[playerid] = 0;
  193.        
  194.         }
  195.         else return SendClientMessage(playerid, -1, "| BOMBEIRO | Você não apagou nenhum incendio!");
  196.         return 1;
  197. }
  198.  
  199. CMD:cp(playerid, params[])
  200. {
  201.     if(BombeiroE[playerid] == false) return SendClientMessage(playerid, -1, "| ERRO | Você não é bombeiro!");
  202.     new Bombeiro[MAX_PLAYER_NAME], Msg[128], MSG[128];
  203.  
  204.     GetPlayerName(playerid, Bombeiro, sizeof(Bombeiro));
  205.  
  206.         if (sscanf(params, "s[128]", MSG)) SendClientMessage(playerid, 0xFF0000AA, "(ERRO) {7FFFD4}USE: /cp [TEXTO]");
  207.         else {
  208.                 for (new i; i < MAX_PLAYERS; i++) {
  209.                 if(BombeiroE[i] == BombeiroE[playerid]) {
  210.                         format(Msg, 128, "{FA8072}| CP | O(A) Bombeiro %s diz: %s", Bombeiro, MSG);
  211.                         SendClientMessage(i, -1, Msg);
  212.                         }
  213.                 }
  214.         }
  215.     return 1;
  216. }
  217.  
  218. CMD:bombeiro(playerid){
  219.     VirarBombeiro(playerid);
  220.         return 1;
  221. }
  222.  
  223. CMD:creditos(playerid){
  224.         SendClientMessage(playerid, -1, "{BEBEBE}| INFO | Filterscript Bombeiros S.A");
  225.         SendClientMessage(playerid, -1, "{BEBEBE}| INFO | O Desenvolvedor deste FS é ProKillerPa");
  226.         return 1;
  227. }
  228.  
  229. forward VirarBombeiro(playerid);
  230. public VirarBombeiro(playerid){
  231.         new _Aways[70],
  232.                 Bombeiro[MAX_PLAYER_NAME]
  233.         ;
  234.  
  235.         GetPlayerName(playerid, Bombeiro, sizeof(Bombeiro));
  236.  
  237.         format(_Aways, sizeof(_Aways), "Bombeiros/%s.ini", Bombeiro);
  238.        
  239.         DOF2_CreateFile(_Aways);
  240.        
  241.         DOF2_SetInt(_Aways, "Bombeiro", 1);
  242.  
  243.         DOF2_SaveFile();
  244.        
  245.     BombeiroE[playerid] = true;
  246.  
  247.         SendClientMessage(playerid, -1, "| BOMBEIRO | Você ficou bombeiro com sucesso!");
  248.        
  249.         printf("[ AUTO-CONTROLE ] O(A) Jogador(a) virou bombeiro!", Bombeiro);
  250.  
  251.         return 1;
  252. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top