Advertisement
Guest User

Sistema de Incendio. By: ProKillerPa

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