Advertisement
Guest User

Untitled

a guest
Jun 7th, 2013
2,472
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.80 KB | None | 0 0
  1. #include <a_Samp>
  2. #include <DOF2>
  3. #include <Zcmd>
  4.  
  5. #define Maximo_Veiculos 31
  6. #define Maximo_Caracteres 128
  7. #define Maximo_Nome 21
  8. #define Maximo_Players 100
  9.  
  10. #define Dial_Veiculo 2000
  11.  
  12. #define PrecoVeiculo 10000
  13. #define PrecoModelo 5000
  14. #define PrecoCor 1000
  15. #define PrecoTunar 100000
  16. #define PrecoBlindar 200000
  17.  
  18. #define TempoRespawn 60000*60
  19.  
  20. enum V
  21. {
  22. Float:LocalX,
  23. Float:LocalY,
  24. Float:LocalZ,
  25. Float:LocalA,
  26.  
  27. Dono[Maximo_Nome],
  28.  
  29. Modelo,
  30. Cor1,
  31. Cor2,
  32. Grana,
  33. Vendido,
  34. Tunado,
  35. Conducao,
  36. Blindado
  37. };
  38. new Veiculos[Maximo_Veiculos][V];
  39.  
  40. new Fala[Maximo_Caracteres];
  41. new Nome[Maximo_Nome];
  42. new Veiculo[Maximo_Players];
  43.  
  44. new Float:Pos[4];
  45.  
  46. public OnFilterScriptInit()
  47. {
  48. for(new i=1; i<Maximo_Veiculos; i++)
  49. {
  50. format(Fala,sizeof(Fala),"Veiculos/Veiculo%d.ini",i);
  51.  
  52. Veiculos[i][LocalX] = DOF2_GetInt(Fala,"LocalX");
  53. Veiculos[i][LocalY] = DOF2_GetInt(Fala,"LocalY");
  54. Veiculos[i][LocalZ] = DOF2_GetInt(Fala,"LocalZ");
  55. Veiculos[i][LocalA] = DOF2_GetInt(Fala,"LocalA");
  56.  
  57. strmid(Veiculos[i][Dono],DOF2_GetString(Fala,"Dono"),0,strlen(DOF2_GetString(Fala,"Dono")),Maximo_Nome);
  58.  
  59. Veiculos[i][Modelo] = DOF2_GetInt(Fala,"Modelo");
  60. Veiculos[i][Cor1] = DOF2_GetInt(Fala,"Cor1");
  61. Veiculos[i][Cor2] = DOF2_GetInt(Fala,"Cor2");
  62. Veiculos[i][Grana] = DOF2_GetInt(Fala,"Grana");
  63. Veiculos[i][Vendido] = DOF2_GetInt(Fala,"Vendido");
  64. Veiculos[i][Tunado] = DOF2_GetInt(Fala,"Tunado");
  65. Veiculos[i][Conducao] = DOF2_GetInt(Fala,"Conducao");
  66. Veiculos[i][Blindado] = DOF2_GetInt(Fala,"Blindado");
  67. }
  68. for(new i=1; i<Maximo_Veiculos; i++)
  69. {
  70. CreateVehicle(Veiculos[i][Modelo],Veiculos[i][LocalX],Veiculos[i][LocalY],Veiculos[i][LocalZ],Veiculos[i][LocalA],Veiculos[i][Cor1],Veiculos[i][Cor2],TempoRespawn);
  71. SetVehicleToRespawn(i);
  72.  
  73. if(Veiculos[i][Tunado] == 1)
  74. {
  75. AddVehicleComponent(i,1010);
  76. }
  77. }
  78. return 1;
  79. }
  80. public OnFilterScriptExit()
  81. {
  82. for(new i=1; i<Maximo_Veiculos; i++)
  83. {
  84. format(Fala,sizeof(Fala),"Veiculos/Veiculo%d.ini",i);
  85.  
  86. DOF2_SetFloat(Fala,"LocalX",Veiculos[i][LocalX]);
  87. DOF2_SetFloat(Fala,"LocalY",Veiculos[i][LocalY]);
  88. DOF2_SetFloat(Fala,"LocalZ",Veiculos[i][LocalZ]);
  89. DOF2_SetFloat(Fala,"LocalA",Veiculos[i][LocalA]);
  90.  
  91. DOF2_SetString(Fala,"Dono",Veiculos[i][Dono]);
  92.  
  93. DOF2_SetInt(Fala,"Modelo",Veiculos[i][Modelo]);
  94. DOF2_SetInt(Fala,"Cor1",Veiculos[i][Cor1]);
  95. DOF2_SetInt(Fala,"Cor2",Veiculos[i][Cor2]);
  96. DOF2_SetInt(Fala,"Grana",Veiculos[i][Grana]);
  97. DOF2_SetInt(Fala,"Vendido",Veiculos[i][Vendido]);
  98. DOF2_SetInt(Fala,"Tunado",Veiculos[i][Tunado]);
  99. DOF2_SetInt(Fala,"Conducao",Veiculos[i][Conducao]);
  100. DOF2_SetInt(Fala,"Blindado",Veiculos[i][Blindado]);
  101. }
  102. DOF2_SaveFile();
  103. DOF2_Exit();
  104. return 1;
  105. }
  106. public OnPlayerConnect(playerid)
  107. {
  108. for(new i=1; i<Maximo_Veiculos; i++)
  109. {
  110. format(Fala,sizeof(Fala),"Veiculos/Veiculo%d.ini",i);
  111.  
  112. if(strcmp(DOF2_GetString(Fala,"Dono"),PlayerName(playerid),true) == 0)
  113. {
  114. Veiculo[playerid] = i;
  115. }
  116. }
  117. return 1;
  118. }
  119. public OnPlayerDisconnect(playerid,reason)
  120. {
  121. Veiculo[playerid] = 0;
  122. return 1;
  123. }
  124. public OnPlayerSpawn(playerid)
  125. {
  126. if(Veiculo[playerid] != 0)
  127. {
  128. SendClientMessage(playerid,0xBFBFBFAA,"Para achar o seu veículo no mapa, use /procurarveiculo.");
  129. }
  130. SetPlayerSkin(playerid,120);
  131. return 1;
  132. }
  133. public OnVehicleSpawn(vehicleid)
  134. {
  135. if(vehicleid >= 1)
  136. {
  137. if(vehicleid <= 30)
  138. {
  139. SetVehiclePos(vehicleid,Veiculos[vehicleid][LocalX],Veiculos[vehicleid][LocalY],Veiculos[vehicleid][LocalZ]);
  140. SetVehicleZAngle(vehicleid,Veiculos[vehicleid][LocalA]);
  141. }
  142. }
  143. return 1;
  144. }
  145. public OnPlayerStateChange(playerid,newstate,oldstate)
  146. {
  147. if(newstate == PLAYER_STATE_DRIVER)
  148. {
  149. if(GetPlayerVehicleID(playerid) >= 1)
  150. {
  151. if(GetPlayerVehicleID(playerid) <= 30)
  152. {
  153. if(Veiculos[GetPlayerVehicleID(playerid)][Vendido] == 0)
  154. {
  155. format(Fala,sizeof(Fala),"Veículo disponível para a compra\n\nPreço: %d$",PrecoVeiculo);
  156. ShowPlayerDialog(playerid,Dial_Veiculo,DIALOG_STYLE_MSGBOX,"Veículo",Fala,"Comprar","Cancelar");
  157.  
  158. TogglePlayerControllable(playerid,0);
  159. }
  160. if(Veiculos[GetPlayerVehicleID(playerid)][Vendido] == 1)
  161. {
  162. if(strcmp(Veiculos[GetPlayerVehicleID(playerid)][Dono],PlayerName(playerid),true) == 0)
  163. {
  164. SendClientMessage(playerid,0xBFBFBFAA,"Seja bem vindo ao seu veículo, use /veiculo para ver suas disponibilidades.");
  165. }
  166. else
  167. {
  168. if(Veiculos[GetPlayerVehicleID(playerid)][Conducao] == 1)
  169. {
  170. format(Fala,sizeof(Fala),"Dono do Veículo: %s\n\nPreço da Condução: %d$",Veiculos[GetPlayerVehicleID(playerid)][Dono],PrecoVeiculo);
  171. ShowPlayerDialog(playerid,Dial_Veiculo+10,DIALOG_STYLE_LIST,"Condução",Fala,"Conduzir","Cancelar");
  172. }
  173. else
  174. {
  175. SendClientMessage(playerid,0xBFBFBFAA,"Este veículo não pode ser conduzido por você, apenas pelo dono.");
  176. RemovePlayerFromVehicle(playerid);
  177. }
  178. }
  179. }
  180. }
  181. }
  182. return 1;
  183. }
  184. return 1;
  185. }
  186. public OnPlayerEnterCheckpoint(playerid)
  187. {
  188. DisablePlayerCheckpoint(playerid);
  189. return 1;
  190. }
  191. public OnVehicleDamageStatusUpdate(vehicleid,playerid)
  192. {
  193. if(vehicleid == Veiculo[playerid])
  194. {
  195. if(Veiculos[Veiculo[playerid]][Blindado] == 1)
  196. {
  197. SetVehicleHealth(vehicleid,1000.0);
  198. GameTextForPlayer(playerid,"~r~Veiculo reparado!",1000,3);
  199. }
  200. }
  201. return 1;
  202. }
  203. public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
  204. {
  205. if(dialogid == Dial_Veiculo)
  206. {
  207. if(response)
  208. {
  209. if(GetPlayerMoney(playerid) < PrecoVeiculo)
  210. {
  211. format(Fala,sizeof(Fala),"Você não possui %d$!",PrecoVeiculo);
  212. SendClientMessage(playerid,0xBFBFBFAA,Fala);
  213.  
  214. return 1;
  215. }
  216. format(Fala,sizeof(Fala),"Veiculos/Veiculo%d.ini",GetPlayerVehicleID(playerid));
  217. DOF2_SetString(Fala,"Dono",PlayerName(playerid));
  218.  
  219. GameTextForPlayer(playerid,"~r~Voce comprou este veiculo!",5000,3);
  220.  
  221. GivePlayerMoney(playerid,-PrecoVeiculo);
  222.  
  223. Veiculo[playerid] = GetPlayerVehicleID(playerid);
  224. }
  225. else
  226. {
  227. RemovePlayerFromVehicle(playerid);
  228. }
  229. TogglePlayerControllable(playerid,1);
  230.  
  231. return 1;
  232. }
  233. if(dialogid == Dial_Veiculo+1)
  234. {
  235. if(response)
  236. {
  237. if(listitem == 0)
  238. {
  239. format(Fala,sizeof(Fala),"Veiculos/Veiculo%d.ini",Veiculo[playerid]);
  240.  
  241. strmid(Veiculos[Veiculo[playerid]][Dono],"Vazio",0,strlen("Vazio"),Maximo_Nome);
  242.  
  243. GivePlayerMoney(playerid,Veiculos[Veiculo[playerid]][Grana]+PrecoVeiculo);
  244.  
  245. Veiculos[Veiculo[playerid]][Modelo] = 400;
  246. Veiculos[Veiculo[playerid]][Cor1] = -1;
  247. Veiculos[Veiculo[playerid]][Cor2] = -1;
  248. Veiculos[Veiculo[playerid]][Vendido] = 0;
  249. Veiculos[Veiculo[playerid]][Tunado] = 0;
  250. Veiculos[Veiculo[playerid]][Conducao] = 0;
  251. Veiculos[Veiculo[playerid]][Blindado] = 0;
  252.  
  253. Veiculo[playerid] = 0;
  254.  
  255. GameTextForPlayer(playerid,"~r~Veiculo vendido!",5000,3);
  256.  
  257. RemovePlayerFromVehicle(playerid);
  258. }
  259. if(listitem == 1)
  260. {
  261. GetVehiclePos(Veiculo[playerid],Pos[0],Pos[1],Pos[2]);
  262. GetVehicleZAngle(Veiculo[playerid],Pos[3]);
  263.  
  264. Veiculos[Veiculo[playerid]][LocalX] = Pos[0];
  265. Veiculos[Veiculo[playerid]][LocalY] = Pos[1];
  266. Veiculos[Veiculo[playerid]][LocalZ] = Pos[2];
  267. Veiculos[Veiculo[playerid]][LocalA] = Pos[3];
  268.  
  269. SetVehicleToRespawn(Veiculo[playerid]);
  270.  
  271. GameTextForPlayer(playerid,"~r~Veiculo estacionado!",5000,3);
  272. }
  273. if(listitem == 2)
  274. {
  275. ShowPlayerDialog(playerid,Dial_Veiculo+2,DIALOG_STYLE_INPUT,"Trocar Modelo","Coloque no campo abaixo o ID do novo modelo","Trocar","Cancelar");
  276. }
  277. if(listitem == 3)
  278. {
  279. ShowPlayerDialog(playerid,Dial_Veiculo+3,DIALOG_STYLE_LIST,"Trocar Cor","Cor Primária\nCor Secundária","Escolher","Cancelar");
  280. }
  281. if(listitem == 4)
  282. {
  283. format(Fala,sizeof(Fala),"Você obteve %d$ de lucro com o seu veículo!",Veiculos[Veiculo[playerid]][Grana]);
  284. SendClientMessage(playerid,0x00FFFFAA,Fala);
  285.  
  286. GivePlayerMoney(playerid,Veiculos[Veiculo[playerid]][Grana]);
  287. Veiculos[Veiculo[playerid]][Grana] = 0;
  288. }
  289. if(listitem == 5)
  290. {
  291. format(Fala,sizeof(Fala),"Deseja adicionar o tuno em seu veículo ?\n\nPreço: %d$",PrecoTunar);
  292. ShowPlayerDialog(playerid,Dial_Veiculo+6,DIALOG_STYLE_MSGBOX,"Tunar",Fala,"Tunar","Cancelar");
  293. }
  294. if(listitem == 6)
  295. {
  296. SendClientMessage(playerid,0x00FFFFAA,"Condução liberada!");
  297. Veiculos[Veiculo[playerid]][Conducao] = 1;
  298. }
  299. if(listitem == 7)
  300. {
  301. SendClientMessage(playerid,0x00FFFFAA,"Condução proibida!");
  302. Veiculos[Veiculo[playerid]][Conducao] = 0;
  303. }
  304. if(listitem == 8)
  305. {
  306. format(Fala,sizeof(Fala),"Deseja blindar o seu veículo ?\n\nPreço: %d$",PrecoBlindar);
  307. ShowPlayerDialog(playerid,Dial_Veiculo+7,DIALOG_STYLE_MSGBOX,"Blindar",Fala,"Blindar","Cancelar");
  308. }
  309. }
  310. return 1;
  311. }
  312. if(dialogid == Dial_Veiculo+2)
  313. {
  314. if(response)
  315. {
  316. if(!strlen(inputtext))
  317. {
  318. ShowPlayerDialog(playerid,Dial_Veiculo+2,DIALOG_STYLE_INPUT,"Trocar Modelo","Coloque no campo abaixo o ID do novo modelo","Trocar","Cancelar");
  319. return 1;
  320. }
  321. new ModeloVeiculo = strval(inputtext);
  322.  
  323. if(ModeloVeiculo < 400 || ModeloVeiculo > 611)
  324. {
  325. SendClientMessage(playerid,0xBFBFBFAA,"Os modelos estão entre 400 e 611.");
  326. return 1;
  327. }
  328. if(GetPlayerMoney(playerid) < PrecoModelo)
  329. {
  330. format(Fala,sizeof(Fala),"Você não possui %d$!",PrecoModelo);
  331. SendClientMessage(playerid,0xBFBFBFAA,Fala);
  332.  
  333. return 1;
  334. }
  335. Veiculos[Veiculo[playerid]][Modelo] = ModeloVeiculo;
  336. DestroyVehicle(Veiculo[playerid]);
  337.  
  338. CreateVehicle(Veiculos[Veiculo[playerid]][Modelo],Veiculos[Veiculo[playerid]][LocalX],Veiculos[Veiculo[playerid]][LocalY],Veiculos[Veiculo[playerid]][LocalZ],Veiculos[Veiculo[playerid]][LocalA],Veiculos[Veiculo[playerid]][Cor1],Veiculos[Veiculo[playerid]][Cor2],TempoRespawn);
  339.  
  340. GameTextForPlayer(playerid,"~r~Modelo trocado!",5000,3);
  341. GivePlayerMoney(playerid,-PrecoModelo);
  342. }
  343. return 1;
  344. }
  345. if(dialogid == Dial_Veiculo+3)
  346. {
  347. if(response)
  348. {
  349. if(listitem == 0)
  350. {
  351. ShowPlayerDialog(playerid,Dial_Veiculo+4,DIALOG_STYLE_INPUT,"Cor Primária","Coloque no campo abaixo o ID da nova cor","Trocar","Cancelar");
  352. }
  353. if(listitem == 1)
  354. {
  355. ShowPlayerDialog(playerid,Dial_Veiculo+5,DIALOG_STYLE_INPUT,"Cor Secundária","Coloque no campo abaixo o ID da nova cor","Trocar","Cancelar");
  356. }
  357. }
  358. return 1;
  359. }
  360. if(dialogid == Dial_Veiculo+4)
  361. {
  362. if(response)
  363. {
  364. if(!strlen(inputtext))
  365. {
  366. ShowPlayerDialog(playerid,Dial_Veiculo+4,DIALOG_STYLE_INPUT,"Cor Primária","Coloque no campo abaixo o ID da nova cor","Trocar","Cancelar");
  367. return 1;
  368. }
  369. new CorID = strval(inputtext);
  370.  
  371. if(CorID < 0 || CorID > 126)
  372. {
  373. SendClientMessage(playerid,0xBFBFBFAA,"As cores estão entre 0 e 126.");
  374. return 1;
  375. }
  376. if(GetPlayerMoney(playerid) < PrecoCor)
  377. {
  378. format(Fala,sizeof(Fala),"Você não possui %d$!",PrecoCor);
  379. SendClientMessage(playerid,0xBFBFBFAA,Fala);
  380.  
  381. return 1;
  382. }
  383. ChangeVehicleColor(Veiculo[playerid],CorID,Veiculos[Veiculo[playerid]][Cor2]);
  384. Veiculos[Veiculo[playerid]][Cor1] = CorID;
  385.  
  386. GameTextForPlayer(playerid,"~r~Cor trocada",5000,3);
  387. GivePlayerMoney(playerid,-PrecoModelo);
  388. }
  389. return 1;
  390. }
  391. if(dialogid == Dial_Veiculo+5)
  392. {
  393. if(response)
  394. {
  395. if(!strlen(inputtext))
  396. {
  397. ShowPlayerDialog(playerid,Dial_Veiculo+5,DIALOG_STYLE_INPUT,"Cor Secundária","Coloque no campo abaixo o ID da nova cor","Trocar","Cancelar");
  398. return 1;
  399. }
  400. new CorID = strval(inputtext);
  401.  
  402. if(CorID < 0 || CorID > 126)
  403. {
  404. SendClientMessage(playerid,0xBFBFBFAA,"As cores estão entre 0 e 126.");
  405. return 1;
  406. }
  407. if(GetPlayerMoney(playerid) < PrecoCor)
  408. {
  409. format(Fala,sizeof(Fala),"Você não possui %d$!",PrecoCor);
  410. SendClientMessage(playerid,0xBFBFBFAA,Fala);
  411.  
  412. return 1;
  413. }
  414. ChangeVehicleColor(Veiculo[playerid],Veiculos[Veiculo[playerid]][Cor1],CorID);
  415. Veiculos[Veiculo[playerid]][Cor2] = CorID;
  416.  
  417. GameTextForPlayer(playerid,"~r~Cor trocada",5000,3);
  418. GivePlayerMoney(playerid,-PrecoModelo);
  419. }
  420. return 1;
  421. }
  422. if(dialogid == Dial_Veiculo+6)
  423. {
  424. if(response)
  425. {
  426. if(GetPlayerMoney(playerid) < PrecoTunar)
  427. {
  428. format(Fala,sizeof(Fala),"Você não possui %d$!",PrecoTunar);
  429. SendClientMessage(playerid,0xBFBFBFAA,Fala);
  430.  
  431. return 1;
  432. }
  433. Veiculos[Veiculo[playerid]][Tunado] = 1;
  434. AddVehicleComponent(Veiculo[playerid],1010);
  435.  
  436. SendClientMessage(playerid,0xBFBFBFAA,"Tuno adicionado com sucesso, para ativar, aperte com o botão esquerdo do mouse quando estiver em um veículo.");
  437. GivePlayerMoney(playerid,-PrecoTunar);
  438. }
  439. return 1;
  440. }
  441. if(dialogid == Dial_Veiculo+7)
  442. {
  443. if(response)
  444. {
  445. if(GetPlayerMoney(playerid) < PrecoBlindar)
  446. {
  447. format(Fala,sizeof(Fala),"Você não possui %d$!",PrecoBlindar);
  448. SendClientMessage(playerid,0xBFBFBFAA,Fala);
  449.  
  450. return 1;
  451. }
  452. Veiculos[Veiculo[playerid]][Blindado] = 1;
  453.  
  454. SendClientMessage(playerid,0xBFBFBFAA,"Veículo blindado com sucesso, toda vez que você bater o mesmo, ele será reparado automaticamente.");
  455. GivePlayerMoney(playerid,-PrecoTunar);
  456. }
  457. return 1;
  458. }
  459. return 1;
  460. }
  461. CMD:veiculo(playerid)
  462. {
  463. if(Veiculo[playerid] == 0)
  464. {
  465. if(IsPlayerInAnyVehicle(playerid))
  466. {
  467. ShowPlayerDialog(playerid,Dial_Veiculo,DIALOG_STYLE_LIST,"Veículo","Comprar","Escolher","Cancelar");
  468. }
  469. }
  470. else
  471. {
  472. if(IsPlayerInVehicle(playerid,Veiculo[playerid]))
  473. {
  474. ShowPlayerDialog(playerid,Dial_Veiculo+1,DIALOG_STYLE_LIST,"Veículo","Vender\nEstacionar\nTrocar Modelo\nTrocar Cor\nObter Lucro\nTunar\nLiberar Condução\nProibir Condução\nBlindar","Escolher","Cancelar");
  475. }
  476. }
  477. return 1;
  478. }
  479. CMD:procurarveiculo(playerid)
  480. {
  481. if(Veiculo[playerid] != 0)
  482. {
  483. SetPlayerCheckpoint(playerid,Veiculos[Veiculo[playerid]][LocalX],Veiculos[Veiculo[playerid]][LocalY],Veiculos[Veiculo[playerid]][LocalZ],10.0);
  484. GameTextForPlayer(playerid,"~r~Veiculo marcado no mapa!",5000,3);
  485. }
  486. return 1;
  487. }
  488. CMD:ajudaveiculo(playerid)
  489. {
  490. if(Veiculo[playerid] != 0)
  491. {
  492. ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"Ajuda Veículo","/veiculo - Veja todas as disponibilidades do seu veículo.\n\n/procurarveiculo - Procure o seu veículo no mapa.\n\n/ajudaveiculo - Veja a ajuda do sistema de veículos.","Cancelar","");
  493. }
  494. return 1;
  495. }
  496. stock PlayerName(playerid)
  497. {
  498. GetPlayerName(playerid,Nome,sizeof(Nome));
  499. return Nome;
  500. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement