SHARE
TWEET

Sistema de Incendio. By: ProKillerPa

a guest Oct 13th, 2014 92 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.         Estacionou[MAX_PLAYERS]
  10. ;
  11.  
  12. public OnFilterScriptInit(){
  13.  
  14.         CarsBomb[0] = AddStaticVehicle(407,-2052.7344,92.6358,28.6204,89.9753,3,60000); // Car01Bomb
  15.         CarsBomb[1] = AddStaticVehicle(407,-2053.3623,84.1748,28.6289,91.1893,3,60000); // Car02Bomb
  16.         CarsBomb[2] = AddStaticVehicle(407,-2053.4856,75.6453,28.6246,90.9805,3,60000); // Car03Bomb
  17.         CarsBomb[3] = AddStaticVehicle(407,-2063.5962,52.2610,28.7280,270.3615,3,60000); // Car04Bomb
  18.         CarsBomb[4] = AddStaticVehicle(407,-2063.2253,58.3733,28.7146,272.1339,3,60000); // Car05Bomb
  19.         CarsBomb[5] = AddStaticVehicle(407,-2063.9917,63.9367,28.6676,273.3929,3,60000); // Car06Bomb
  20.         CarsBomb[6] = AddStaticVehicle(407,-2021.6857,92.9047,28.2797,271.3405,3,60000); // Car07Bomb
  21.         CarsBomb[7] = AddStaticVehicle(407,-2021.4604,84.1339,28.2355,272.8079,3, 60000); // Car08Bomb
  22.         CarsBomb[8] = AddStaticVehicle(407,-2021.7314,75.5931,28.3139,271.3740,3, 60000); // Car09Bomb
  23.         return 1;
  24. }
  25.  
  26. enum EnumBomb{
  27.         Local[40],
  28.         Float:FogoX,
  29.         Float:FogoY,
  30.         Float:FogoZ,
  31.         ValorReceber
  32. }
  33.  
  34. new LocaisFogo[6][EnumBomb] = {
  35.         {"Casa de Interior", 1105.7981,-299.4438,74.5391, 1700},
  36.         {"Deposito de Madeira", 95.8632,-184.0046,1.4844, 1300},
  37.         {"Fazenda", -93.4231,-26.3268,3.1172, 1000},
  38.         {"Departamento de Policia", -219.2005,984.7499,19.5476, 1900},
  39.         {"Moradia Moderna", 254.7919,1125.6041,20.2422, 1500},
  40.         {"Loja de Conveniencia", -48.9465,1188.7512,19.3594, 1800}
  41. };
  42.  
  43. new Float:_ArmazenarRandom01[MAX_PLAYERS],
  44.         Float:_ArmazenarRandom02[MAX_PLAYERS],
  45.         Float:_ArmazenarRandom03[MAX_PLAYERS]
  46. ;
  47.  
  48. new Porcentagem = 256;
  49. new Text3D:var;
  50.  
  51. new TemIncendio[MAX_PLAYERS],
  52.         VaiReceber[MAX_PLAYERS],
  53.         ValorReceber2[MAX_PLAYERS]
  54. ;
  55.  
  56. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){
  57.         if(IsPlayerInRangeOfPoint(playerid, 7.0, _ArmazenarRandom01[playerid], _ArmazenarRandom02[playerid], _ArmazenarRandom03[playerid])){
  58.  
  59.                 if(TemIncendio[playerid] == 0) return 1;
  60.                 if(Estacionou[playerid] == 0) return SendClientMessage(playerid, -1, "| BOMBEIRO | Estacione o caminhão antes de apagar o incêndio!");
  61.                
  62.                 GameTextForPlayer(playerid, "~y~Apagando!~n~~g~Continue Clicando", 1000, 3);
  63.  
  64.                 new _Fire[200];
  65.                 format(_Fire, sizeof(_Fire), "{FFD700}Porcentagem de Fogo:\n{FA8072}[%d/256]", Porcentagem-10);
  66.  
  67.                 Update3DTextLabelText(var, 0xFFFFFFFF, _Fire);
  68.  
  69.                 if(Porcentagem <= 0){
  70.                     GameTextForPlayer(playerid, "~r~Incendio Apagado!~n~~y~Volte para a HQ!", 3000, 3);
  71.                    
  72.                         SendClientMessage(playerid, -1, "| BOMBEIRO | Incendio Apagado! Volte para a HQ para finalizar o serviço!");
  73.                         Delete3DTextLabel(var);
  74.                        
  75.                         VaiReceber[playerid] = 1; //
  76.                        
  77.                         TemIncendio[playerid] = 0;
  78.  
  79.                         SetPlayerCheckpoint(playerid, -2048.6135,67.2293,28.6456, 0.8);
  80.                         Porcentagem = 256;
  81.                        
  82.                         for(new i = 0; i < sizeof(Fogo); i ++) {
  83.                                 DestroyObject(Fogo[i]); DestroyObject(Fogo[i]);
  84.                         }
  85.                 }
  86.  
  87.                 Porcentagem = Porcentagem - 1;
  88.         }
  89.         return 1;
  90. }
  91.  
  92. public OnPlayerStateChange(playerid, newstate, oldstate)
  93. {
  94.     if(newstate == 2)
  95.     {
  96.         if(GetPlayerVehicleID(playerid) >= CarsBomb[0] && GetPlayerVehicleID(playerid) <= CarsBomb[8]){
  97.                         if(BombeiroE[playerid] == true){
  98.                        
  99.                         }
  100.                         else return ( SendClientMessage(playerid, -1, "{BEBEBE}| ERRO | Você não pode utilizar esse veiculo!"), RemovePlayerFromVehicle(playerid) );
  101.         }
  102.         else return 1;
  103.     }
  104.     return 1;
  105. }
  106.  
  107. new Bomb[MAX_PLAYERS];
  108.  
  109. public OnPlayerConnect(playerid){
  110.     SetPlayerCheckpoint(playerid, -2048.6135,67.2293,28.6456, 0.8);
  111.     Create3DTextLabel("{BEBEBE}Menu de Incendio\n{FA8072}Pegue um Incendio!", 0x008080FF, -2048.6135,67.2293,28.6456, 15.0, 0, 0);
  112.    
  113.         new _Aways[70],
  114.                 Bombeiro[MAX_PLAYER_NAME]
  115.         ;
  116.  
  117.         GetPlayerName(playerid, Bombeiro, sizeof(Bombeiro));
  118.  
  119.         format(_Aways, sizeof(_Aways), "Bombeiros/%s.ini", Bombeiro);
  120.        
  121.         Bomb[playerid] = DOF2_GetInt(_Aways, "Bombeiro");
  122.         Bomb[playerid] = DOF2_GetInt(_Aways, "Incendios Apagados");
  123.        
  124.         if(Bomb[playerid] == 1){
  125.             BombeiroE[playerid] = true;
  126.         }
  127.         else BombeiroE[playerid] = false;
  128.         return 1;
  129. }
  130.  
  131. public OnPlayerDisconnect(playerid, reason){
  132.  
  133.         ValorReceber2[playerid] = 0;
  134.     TemIncendio[playerid] = 0,
  135.     VaiReceber[playerid] = 0,
  136.     BombeiroE[playerid] = false,
  137.     Estacionou[playerid] = 0
  138.         ;
  139.         return 1;
  140. }
  141.  
  142. CMD:estacionar(playerid){
  143.     if(IsPlayerInRangeOfPoint(playerid, 8.0, _ArmazenarRandom01[playerid], _ArmazenarRandom02[playerid], _ArmazenarRandom03[playerid])){
  144.         if(GetPlayerVehicleID(playerid) >= CarsBomb[0] && GetPlayerVehicleID(playerid) <= CarsBomb[8]){
  145.                         Estacionou[playerid] = 1;
  146.                 SendClientMessage(playerid, -1, "| INFO | Caminhão estacionado, você já pode apagar o incêndio!");
  147.                 }
  148.                 else return ( SendClientMessage(playerid, -1, "| ERRO | Só é possível estacionar usando o caminhão de bombeiro!") );
  149.         } else return ( SendClientMessage(playerid, -1, "| ERRO | Você só pode estacionar o caminhão próximo ao incendio!") );
  150.         return 1;
  151. }
  152.  
  153. CMD:procurarincendio(playerid){
  154.     if(BombeiroE[playerid] == false) return SendClientMessage(playerid, -1, "| ERRO | Você não é bombeiro!");
  155.         if(IsPlayerInRangeOfPoint(playerid, 2.0, -2048.6135,67.2293,28.6456)){
  156.                 new str[1000];
  157.                 new rand = random(sizeof(LocaisFogo));
  158.  
  159.             _ArmazenarRandom01[playerid] = LocaisFogo[rand][FogoX];
  160.             _ArmazenarRandom02[playerid] = LocaisFogo[rand][FogoY];
  161.             _ArmazenarRandom03[playerid] = LocaisFogo[rand][FogoZ];
  162.             ValorReceber2[playerid] = LocaisFogo[rand][ValorReceber];
  163.  
  164.                 new
  165.                 Float: _ContarDist = GetPlayerDistanceFromPoint(playerid, LocaisFogo[rand][FogoX], LocaisFogo[rand][FogoY], LocaisFogo[rand][FogoZ]);
  166.  
  167.                 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\
  168.                 {FA8072}Valor á Receber: {32CD32}R$%d,00\n{FA8072}Distância: {BEBEBE}%0.2fm", LocaisFogo[rand][Local], LocaisFogo[rand][ValorReceber], _ContarDist);
  169.                 ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "{BEBEBE}Incendio Encontrado!", str, "Ir!", "");
  170.  
  171.             SetPlayerCheckpoint(playerid, LocaisFogo[rand][FogoX], LocaisFogo[rand][FogoY], LocaisFogo[rand][FogoZ], 0.0);
  172.  
  173.                 Fogo[0] = CreateObject(18691, LocaisFogo[rand][FogoX]+1, LocaisFogo[rand][FogoY], LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  174.                 Fogo[1] = CreateObject(18691, LocaisFogo[rand][FogoX]+1, LocaisFogo[rand][FogoY], LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  175.                 Fogo[2] = CreateObject(18691, LocaisFogo[rand][FogoX], LocaisFogo[rand][FogoY]+1, LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  176.                 Fogo[3] = CreateObject(18691, LocaisFogo[rand][FogoX]+1, LocaisFogo[rand][FogoY]+1, LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  177.                 Fogo[4] = CreateObject(18691, LocaisFogo[rand][FogoX]-1, LocaisFogo[rand][FogoY]+1, LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  178.                 Fogo[5] = CreateObject(18691, LocaisFogo[rand][FogoX], LocaisFogo[rand][FogoY]-1, LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  179.                 Fogo[6] = CreateObject(18691, LocaisFogo[rand][FogoX]-1, LocaisFogo[rand][FogoY]-1, LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  180.  
  181.  
  182.                 new _Fire[200];
  183.  
  184.                 format(_Fire, sizeof(_Fire), "{FFD700}Porcentagem de Fogo:\n{FA8072}[%d/256]", Porcentagem);
  185.  
  186.             var = Create3DTextLabel(_Fire, 0x008080FF, LocaisFogo[rand][FogoX], LocaisFogo[rand][FogoY], LocaisFogo[rand][FogoZ], 40.0, 0, 0);
  187.  
  188.             TemIncendio[playerid] = 1;
  189.         }
  190.         else return SendClientMessage(playerid, -1, "| BOMBEIRO | Você não está na HQ dos bombeiros!");
  191.         return 1;
  192. }
  193.  
  194. CMD:finalizar(playerid){
  195.     if(BombeiroE[playerid] == false) return SendClientMessage(playerid, -1, "| ERRO | Você não é bombeiro!");
  196.     if(!IsPlayerInRangeOfPoint(playerid, 2.0, -2048.6135,67.2293,28.6456)) return SendClientMessage(playerid, -1, "| ERRO | Você não está na HQ de bombeiros!'");
  197.  
  198.         if(VaiReceber[playerid] == 1){
  199.             new _Var[500], AtualMoney[MAX_PLAYERS];
  200.            
  201.             AtualMoney[playerid] = GetPlayerMoney(playerid);
  202.            
  203.             GivePlayerMoney(playerid, AtualMoney[playerid] + ValorReceber2[playerid]);
  204.            
  205.             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]);
  206.             ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "{BEBEBE}Incendio Finalizado!", _Var, "Fechar", "");
  207.            
  208.             VaiReceber[playerid] = 0;
  209.  
  210.                 new _Aways[70],
  211.                         Bombeiro[MAX_PLAYER_NAME],
  212.                         PegaValor[MAX_PLAYERS]
  213.                 ;
  214.  
  215.                 GetPlayerName(playerid, Bombeiro, sizeof(Bombeiro));
  216.  
  217.                 format(_Aways, sizeof(_Aways), "Bombeiros/%s.ini", Bombeiro);
  218.  
  219.             PegaValor[playerid] = DOF2_GetInt(_Aways, "Incendios Apagados");
  220.            
  221.             DOF2_SetInt(_Aways, "Incendios Apagados", PegaValor[playerid] + 1);
  222.             DOF2_SaveFile();
  223.            
  224.             SendClientMessage(playerid, -1, "| INFO | Foi acrescentado á sua lista de incendios apagados este incendio! Confira Todos: /incendiosapagados!");
  225.        
  226.         }
  227.         else return SendClientMessage(playerid, -1, "| BOMBEIRO | Você não apagou nenhum incendio!");
  228.         return 1;
  229. }
  230.  
  231. CMD:incendiosapagados(playerid){
  232.         new _Aways[70],
  233.                 Bombeiro[MAX_PLAYER_NAME],
  234.                 Get[MAX_PLAYERS],
  235.                 _Str[128]
  236.         ;
  237.  
  238.         GetPlayerName(playerid, Bombeiro, sizeof(Bombeiro));
  239.  
  240.         format(_Aways, sizeof(_Aways), "Bombeiros/%s.ini", Bombeiro);
  241.        
  242.         Get[playerid] = DOF2_GetInt(_Aways, "Incendios Apagados");
  243.        
  244.         format(_Str, sizeof(_Str), "| INFO | Você já apagou %d Incendios!", Get[playerid]);
  245.         SendClientMessage(playerid, -1, _Str);
  246.         return 1;
  247. }
  248.  
  249. CMD:cp(playerid, params[])
  250. {
  251.     if(BombeiroE[playerid] == false) return SendClientMessage(playerid, -1, "| ERRO | Você não é bombeiro!");
  252.     new Bombeiro[MAX_PLAYER_NAME], Msg[128], MSG[128];
  253.  
  254.     GetPlayerName(playerid, Bombeiro, sizeof(Bombeiro));
  255.  
  256.         if (sscanf(params, "s[128]", MSG)) SendClientMessage(playerid, 0xFF0000AA, "(ERRO) {7FFFD4}USE: /cp [TEXTO]");
  257.         else {
  258.                 for (new i; i < MAX_PLAYERS; i++) {
  259.                 if(BombeiroE[i] == BombeiroE[playerid]) {
  260.                         format(Msg, 128, "{FA8072}| CP | O(A) Bombeiro %s diz: %s", Bombeiro, MSG);
  261.                         SendClientMessage(i, -1, Msg);
  262.                         }
  263.                 }
  264.         }
  265.     return 1;
  266. }
  267.  
  268. CMD:bombeiro(playerid){
  269.     VirarBombeiro(playerid);
  270.         return 1;
  271. }
  272.  
  273. CMD:creditos(playerid){
  274.         SendClientMessage(playerid, -1, "{BEBEBE}| INFO | Filterscript Bombeiros S.A");
  275.         SendClientMessage(playerid, -1, "{BEBEBE}| INFO | O Desenvolvedor deste FS é ProKillerPa");
  276.         return 1;
  277. }
  278.  
  279. forward VirarBombeiro(playerid);
  280. public VirarBombeiro(playerid){
  281.         new _Aways[70],
  282.                 Bombeiro[MAX_PLAYER_NAME]
  283.         ;
  284.  
  285.         GetPlayerName(playerid, Bombeiro, sizeof(Bombeiro));
  286.  
  287.         format(_Aways, sizeof(_Aways), "Bombeiros/%s.ini", Bombeiro);
  288.        
  289.         DOF2_CreateFile(_Aways);
  290.        
  291.         DOF2_SetInt(_Aways, "Bombeiro", 1);
  292.         DOF2_SetInt(_Aways, "Incendios Apagados", 0);
  293.  
  294.         DOF2_SaveFile();
  295.        
  296.     BombeiroE[playerid] = true;
  297.  
  298.         SendClientMessage(playerid, -1, "| BOMBEIRO | Você virou um bombeiro com sucesso!");
  299.        
  300.         printf("[ AUTO-CONTROLE ] O(A) Jogador(a) %s virou bombeiro!", Bombeiro);
  301.  
  302.         return 1;
  303. }
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