Advertisement
Guest User

Sistema de Incendio. By: ProKillerPa

a guest
Oct 13th, 2014
276
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.87 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement