SHARE
TWEET

Sistema de Incendio. By: ProKillerPa

a guest Oct 13th, 2014 1,260 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 OnFilterXcriptInit(){
  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. #define PROKILLERPA(%0) \
  57.         ((newkeys & (%0)) == (%0))
  58.  
  59. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){
  60.         if(IsPlayerInRangeOfPoint(playerid, 50.0, -2048.6135,67.2293,28.6456)){
  61.             SetPlayerCheckpoint(playerid, -2048.6135,67.2293,28.6456, 0.8);
  62.             Create3DTextLabel("{BEBEBE}Menu de Incendio\n{FA8072}Pegue um Incendio!", 0x008080FF, -2048.6135,67.2293,28.6456, 15.0, 0, 0);
  63.         }
  64.        
  65.         if(PROKILLERPA(KEY_FIRE)){
  66.                 if(IsPlayerInRangeOfPoint(playerid, 7.0, _ArmazenarRandom01[playerid], _ArmazenarRandom02[playerid], _ArmazenarRandom03[playerid])){
  67.  
  68.                         if(TemIncendio[playerid] == 0) return 1;
  69.                         if(Estacionou[playerid] == 0) return SendClientMessage(playerid, -1, "| BOMBEIRO | Estacione o caminhão antes de apagar o incêndio!");
  70.  
  71.                         GameTextForPlayer(playerid, "~y~Apagando!~n~~g~Continue Clicando", 1000, 3);
  72.  
  73.                         new _Fire[200];
  74.                         format(_Fire, sizeof(_Fire), "{FFD700}Porcentagem de Fogo:\n{FA8072}[%d/256]", Porcentagem-10);
  75.  
  76.                         Update3DTextLabelText(var, 0xFFFFFFFF, _Fire);
  77.  
  78.                         if(Porcentagem <= 0){
  79.                             GameTextForPlayer(playerid, "~r~Incendio Apagado!~n~~y~Volte para a HQ!", 3000, 3);
  80.  
  81.                                 SendClientMessage(playerid, -1, "| BOMBEIRO | Incendio Apagado! Volte para a HQ para finalizar o serviço!");
  82.                                 Delete3DTextLabel(var);
  83.  
  84.                                 VaiReceber[playerid] = 1; //
  85.  
  86.                                 TemIncendio[playerid] = 0;
  87.  
  88.                                 SetPlayerCheckpoint(playerid, -2048.6135,67.2293,28.6456, 0.8);
  89.                                 Porcentagem = 256;
  90.  
  91.                                 for(new i = 0; i < sizeof(Fogo); i ++) {
  92.                                         DestroyObject(Fogo[i]); DestroyObject(Fogo[i]);
  93.                                 }
  94.                         }
  95.  
  96.                         Porcentagem = Porcentagem - 1;
  97.                 }
  98.         }
  99.         return 1;
  100. }
  101.  
  102. public OnPlayerStateChange(playerid, newstate, oldstate)
  103. {
  104.     if(newstate == 2)
  105.     {
  106.         if(GetPlayerVehicleID(playerid) >= CarsBomb[0] && GetPlayerVehicleID(playerid) <= CarsBomb[8]){
  107.                         if(BombeiroE[playerid] == true){
  108.                        
  109.                         }
  110.                         else return ( SendClientMessage(playerid, -1, "{BEBEBE}| ERRO | Você não pode utilizar esse veiculo!"), RemovePlayerFromVehicle(playerid) );
  111.         }
  112.         else return 1;
  113.     }
  114.     return 1;
  115. }
  116.  
  117. new Bomb[MAX_PLAYERS];
  118.  
  119. public OnPlayerConnect(playerid){
  120.         new _Aways[70],
  121.                 Bombeiro[MAX_PLAYER_NAME]
  122.         ;
  123.  
  124.         GetPlayerName(playerid, Bombeiro, sizeof(Bombeiro));
  125.  
  126.         format(_Aways, sizeof(_Aways), "Bombeiros/%s.ini", Bombeiro);
  127.        
  128.         Bomb[playerid] = DOF2_GetInt(_Aways, "Bombeiro");
  129.         Bomb[playerid] = DOF2_GetInt(_Aways, "Incendios Apagados");
  130.        
  131.         if(Bomb[playerid] == 1){
  132.             BombeiroE[playerid] = true;
  133.         }
  134.         else BombeiroE[playerid] = false;
  135.         return 1;
  136. }
  137.  
  138. public OnPlayerDisconnect(playerid, reason){
  139.  
  140.         ValorReceber2[playerid] = 0;
  141.     TemIncendio[playerid] = 0,
  142.     VaiReceber[playerid] = 0,
  143.     BombeiroE[playerid] = false,
  144.     Estacionou[playerid] = 0
  145.         ;
  146.         return 1;
  147. }
  148.  
  149. CMD:estacionar(playerid){
  150.     if(IsPlayerInRangeOfPoint(playerid, 8.0, _ArmazenarRandom01[playerid], _ArmazenarRandom02[playerid], _ArmazenarRandom03[playerid])){
  151.         if(GetPlayerVehicleID(playerid) >= CarsBomb[0] && GetPlayerVehicleID(playerid) <= CarsBomb[8]){
  152.                         Estacionou[playerid] = 1;
  153.                 SendClientMessage(playerid, -1, "| INFO | Caminhão estacionado, você já pode apagar o incêndio!");
  154.                 }
  155.                 else return ( SendClientMessage(playerid, -1, "| ERRO | Só é possível estacionar usando o caminhão de bombeiro!") );
  156.         } else return ( SendClientMessage(playerid, -1, "| ERRO | Você só pode estacionar o caminhão próximo ao incendio!") );
  157.         return 1;
  158. }
  159.  
  160. CMD:procurarincendio(playerid){
  161.     if(BombeiroE[playerid] == false) return SendClientMessage(playerid, -1, "| ERRO | Você não é bombeiro!");
  162.         if(IsPlayerInRangeOfPoint(playerid, 2.0, -2048.6135,67.2293,28.6456)){
  163.                 new str[1000];
  164.                 new rand = random(sizeof(LocaisFogo));
  165.  
  166.             _ArmazenarRandom01[playerid] = LocaisFogo[rand][FogoX];
  167.             _ArmazenarRandom02[playerid] = LocaisFogo[rand][FogoY];
  168.             _ArmazenarRandom03[playerid] = LocaisFogo[rand][FogoZ];
  169.             ValorReceber2[playerid] = LocaisFogo[rand][ValorReceber];
  170.  
  171.                 new
  172.                 Float: _ContarDist = GetPlayerDistanceFromPoint(playerid, LocaisFogo[rand][FogoX], LocaisFogo[rand][FogoY], LocaisFogo[rand][FogoZ]);
  173.  
  174.                 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\
  175.                 {FA8072}Valor á Receber: {32CD32}R$%d,00\n{FA8072}Distância: {BEBEBE}%0.2fm", LocaisFogo[rand][Local], LocaisFogo[rand][ValorReceber], _ContarDist);
  176.                 ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "{BEBEBE}Incendio Encontrado!", str, "Ir!", "");
  177.  
  178.             SetPlayerCheckpoint(playerid, LocaisFogo[rand][FogoX], LocaisFogo[rand][FogoY], LocaisFogo[rand][FogoZ]+10, 0.0);
  179.  
  180.                 Fogo[0] = CreateObject(18691, LocaisFogo[rand][FogoX]+1, LocaisFogo[rand][FogoY], LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  181.                 Fogo[1] = CreateObject(18691, LocaisFogo[rand][FogoX]+1, LocaisFogo[rand][FogoY], LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  182.                 Fogo[2] = CreateObject(18691, LocaisFogo[rand][FogoX], LocaisFogo[rand][FogoY]+1, LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  183.                 Fogo[3] = CreateObject(18691, LocaisFogo[rand][FogoX]+1, LocaisFogo[rand][FogoY]+1, LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  184.                 Fogo[4] = CreateObject(18691, LocaisFogo[rand][FogoX]-1, LocaisFogo[rand][FogoY]+1, LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  185.                 Fogo[5] = CreateObject(18691, LocaisFogo[rand][FogoX], LocaisFogo[rand][FogoY]-1, LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  186.                 Fogo[6] = CreateObject(18691, LocaisFogo[rand][FogoX]-1, LocaisFogo[rand][FogoY]-1, LocaisFogo[rand][FogoZ]-2.5, 0.0, 0.0, 0.0);
  187.  
  188.  
  189.                 new _Fire[200];
  190.  
  191.                 format(_Fire, sizeof(_Fire), "{FFD700}Porcentagem de Fogo:\n{FA8072}[%d/256]", Porcentagem);
  192.  
  193.             var = Create3DTextLabel(_Fire, 0x008080FF, LocaisFogo[rand][FogoX], LocaisFogo[rand][FogoY], LocaisFogo[rand][FogoZ], 40.0, 0, 0);
  194.  
  195.             TemIncendio[playerid] = 1;
  196.         }
  197.         else return SendClientMessage(playerid, -1, "| BOMBEIRO | Você não está na HQ dos bombeiros!");
  198.         return 1;
  199. }
  200.  
  201. CMD:finalizar(playerid){
  202.     if(BombeiroE[playerid] == false) return SendClientMessage(playerid, -1, "| ERRO | Você não é bombeiro!");
  203.     if(!IsPlayerInRangeOfPoint(playerid, 2.0, -2048.6135,67.2293,28.6456)) return SendClientMessage(playerid, -1, "| ERRO | Você não está na HQ de bombeiros!'");
  204.  
  205.         if(VaiReceber[playerid] == 1){
  206.             new _Var[500], AtualMoney[MAX_PLAYERS];
  207.            
  208.             AtualMoney[playerid] = GetPlayerMoney(playerid);
  209.            
  210.             GivePlayerMoney(playerid, AtualMoney[playerid] + ValorReceber2[playerid]);
  211.            
  212.             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]);
  213.             ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "{BEBEBE}Incendio Finalizado!", _Var, "Fechar", "");
  214.            
  215.             VaiReceber[playerid] = 0;
  216.  
  217.                 new _Aways[70],
  218.                         Bombeiro[MAX_PLAYER_NAME],
  219.                         PegaValor[MAX_PLAYERS]
  220.                 ;
  221.  
  222.                 GetPlayerName(playerid, Bombeiro, sizeof(Bombeiro));
  223.  
  224.                 format(_Aways, sizeof(_Aways), "Bombeiros/%s.ini", Bombeiro);
  225.  
  226.             PegaValor[playerid] = DOF2_GetInt(_Aways, "Incendios Apagados");
  227.            
  228.             DOF2_SetInt(_Aways, "Incendios Apagados", PegaValor[playerid] + 1);
  229.             DOF2_SaveFile();
  230.            
  231.             SendClientMessage(playerid, -1, "| INFO | Foi acrescentado á sua lista de incendios apagados este incendio! Confira Todos: /incendiosapagados!");
  232.        
  233.         }
  234.         else return SendClientMessage(playerid, -1, "| BOMBEIRO | Você não apagou nenhum incendio!");
  235.         return 1;
  236. }
  237.  
  238. CMD:incendiosapagados(playerid){
  239.         new _Aways[70],
  240.                 Bombeiro[MAX_PLAYER_NAME],
  241.                 Get[MAX_PLAYERS],
  242.                 _Str[128]
  243.         ;
  244.  
  245.         GetPlayerName(playerid, Bombeiro, sizeof(Bombeiro));
  246.  
  247.         format(_Aways, sizeof(_Aways), "Bombeiros/%s.ini", Bombeiro);
  248.        
  249.         Get[playerid] = DOF2_GetInt(_Aways, "Incendios Apagados");
  250.        
  251.         format(_Str, sizeof(_Str), "| INFO | Você já apagou %d Incendios!", Get[playerid]);
  252.         SendClientMessage(playerid, -1, _Str);
  253.         return 1;
  254. }
  255.  
  256. CMD:cp(playerid, params[])
  257. {
  258.     if(BombeiroE[playerid] == false) return SendClientMessage(playerid, -1, "| ERRO | Você não é bombeiro!");
  259.     new Bombeiro[MAX_PLAYER_NAME], Msg[128], MSG[128];
  260.  
  261.     GetPlayerName(playerid, Bombeiro, sizeof(Bombeiro));
  262.  
  263.         if (sscanf(params, "s[128]", MSG)) SendClientMessage(playerid, 0xFF0000AA, "(ERRO) {7FFFD4}USE: /cp [TEXTO]");
  264.         else {
  265.                 for (new i; i < MAX_PLAYERS; i++) {
  266.                 if(BombeiroE[i] == BombeiroE[playerid]) {
  267.                         format(Msg, 128, "{FA8072}| CP | O(A) Bombeiro %s diz: %s", Bombeiro, MSG);
  268.                         SendClientMessage(i, -1, Msg);
  269.                         }
  270.                 }
  271.         }
  272.     return 1;
  273. }
  274.  
  275. CMD:bombeiro(playerid){
  276.     VirarBombeiro(playerid);
  277.         return 1;
  278. }
  279.  
  280. CMD:creditos(playerid){
  281.         SendClientMessage(playerid, -1, "{BEBEBE}| INFO | Filterscript Bombeiros S.A");
  282.         SendClientMessage(playerid, -1, "{BEBEBE}| INFO | O Desenvolvedor deste FS é ProKillerPa");
  283.         return 1;
  284. }
  285.  
  286. forward VirarBombeiro(playerid);
  287. public VirarBombeiro(playerid){
  288.         new _Aways[70],
  289.                 Bombeiro[MAX_PLAYER_NAME]
  290.         ;
  291.  
  292.         GetPlayerName(playerid, Bombeiro, sizeof(Bombeiro));
  293.  
  294.         format(_Aways, sizeof(_Aways), "Bombeiros/%s.ini", Bombeiro);
  295.        
  296.         DOF2_CreateFile(_Aways);
  297.        
  298.         DOF2_SetInt(_Aways, "Bombeiro", 1);
  299.         DOF2_SetInt(_Aways, "Incendios Apagados", 0);
  300.  
  301.         DOF2_SaveFile();
  302.        
  303.     BombeiroE[playerid] = true;
  304.  
  305.         SendClientMessage(playerid, -1, "| BOMBEIRO | Você virou um bombeiro com sucesso!");
  306.        
  307.         printf("[ AUTO-CONTROLE ] O(A) Jogador(a) %s virou bombeiro!", Bombeiro);
  308.  
  309.         return 1;
  310. }
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