Advertisement
Guest User

[FilterScript] Sistema de Veiculos [0.3x] v1.1

a guest
Jan 24th, 2013
1,602
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 28.08 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. #include <sscanf>
  4. #include <dof2>
  5.  
  6. #pragma unused DOF2_Exit
  7. #define CUSTO_CARRO (2500)//dinheiro ao escolher o carro
  8.  
  9. #define Dialog_03x_1 (9990)
  10. #define Dialog_03x_2 (9991)
  11. #define Dialog_03x_3 (9992)
  12. #define Dialog_03x_4 (9993)
  13.  
  14.  
  15. new NomesCarroS[][] ={
  16. "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck",
  17. "Trashmaster","Stretch","Manana","Infernus","Voodoo","Pony","Mule","Cheetah","Ambulance",
  18. "Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Whoopee","BF Injection","Hunter","Premier",
  19. "Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon",
  20. "Coach","Cabbie","Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo",
  21. "Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder","Reefer","Tropic","Flatbed","Yankee","Caddy",
  22. "Solair","Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider","Glendale",
  23. "Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3-50","Walton","Regina",
  24. "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","Chopper","Rancher","FBI Rancher",
  25. "Virgo","Greenwood","Jetmax","Hotring","Sandking","Blista","Maverick","Boxville","Benson","Mesa",
  26. "RC Goblin","Hotring","Hotring","Bloodring","Rancher","Super GT","Elegant","Journey",
  27. "Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain","Nebula","Majestic","Buccaneer",
  28. "Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
  29. "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent",
  30. "Bullet","Clover","Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility",
  31. "Nevada","Yosemite","Windsor","Monster A","Monster B","Uranus","Jester","Sultan","Stratum","Elegy",
  32. "Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer","Kart","Mower","Duneride","Sweeper",
  33. "Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer","Emperor",
  34. "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car","Police Car",
  35. "Police Car","Police Ranger","Picador","S.W.A.T.","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer","Luggage Trailer",
  36. "Stair Trailer","Boxville","Farm Plow","Utility Trailer"};
  37.  
  38. new Float:RandomPosXYZ[][]=
  39. {
  40. {2147.7568,-1166.3738,23.5254,269.3909},
  41. {2148.0610,-1161.7148,23.5274,270.0405},
  42. {2147.8440,-1157.3314,23.5506,269.9344},
  43. {2161.2195,-1167.6934,23.5241,89.5632},
  44. {2161.2771,-1172.7664,23.5250,88.4558},
  45. {2161.2710,-1177.8595,23.5239,89.7862}
  46. };
  47. new pickup;
  48. new Text3D:d3d;
  49.  
  50. stock VeiculosValidos(m)
  51. {
  52. if(
  53. m==400||m==401||m==402||m==404||m==560||m==405||
  54. m==410||m==411||m==412||m==413||m==415||m==418||
  55. m==419||m==422||m==424||m==426||m==429||m==434||
  56. m==436||m==439||m==442||m==444||m==445||m==451||
  57. m==458||m==461||m==462||m==463||m==466||m==467||
  58. m==468||m==474||m==475||m==522||m==521||m==478||
  59. m==479||m==480||m==481||m==483||m==491||m==492||
  60. m==496||m==500||m==506||m==507||m==508||m==517||
  61. m==518||m==527||m==533||m==534||m==535||m==536||
  62. m==541||m==542||m==545||m==549||m==550||m==551||
  63. m==554||m==555)
  64. {
  65. return true;
  66. }
  67. return false;
  68. }
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75. enum text
  76. {
  77. Float:RotCarroX,
  78. Float:RotCarroY,
  79. Float:RotCarroZ,
  80. Float:CarroX,
  81. Float:CarroY,
  82. Float:CarroZ,
  83. Float:CarroAng,
  84. bool:InText,
  85. Text3D:CarroText3D,
  86. PlayerText:Textdraw0,
  87. PlayerText:Textdraw1,
  88. PlayerText:Textdraw2,
  89. PlayerText:Textdraw3,
  90. PlayerText:Textdraw4,
  91. PlayerText:Textdraw5,
  92. PlayerText:Textdraw6,
  93. PlayerText:Textdraw7,
  94. PlayerText:Textdraw8,
  95. timerplayer,
  96. CarroID,
  97. carrocor1,
  98. carrocor2,
  99. CarroDono
  100. };
  101. new Te_xT[MAX_PLAYERS][text];
  102. new DonoCarro[MAX_VEHICLES];
  103.  
  104. public OnFilterScriptInit()
  105. {
  106.  
  107. print(" FS New concessionaria [0.3x]: LOADED");
  108.  
  109. pickup = CreatePickup(1318, 24, 2140.0034,-1176.8870,23.9922, 0);
  110. d3d = Create3DTextLabel("{FFFFFF}Escolha seu veículo proprio aqui\n{00D4F6}Use: /comprarveiculo\nR$2500",-1,2140.0034,-1176.8870,23.9922, 20.0, 0);
  111.  
  112. for(new i; i < MAX_PLAYERS; i ++)
  113. {
  114. if(IsPlayerConnected(i))
  115. {
  116. OnPlayerConnect(i);
  117. }
  118. }
  119.  
  120. for(new x; x < MAX_VEHICLES; x++)
  121. {
  122. DonoCarro[x] = INVALID_PLAYER_ID;
  123. }
  124. return 1;
  125. }
  126.  
  127. public OnFilterScriptExit()
  128. {
  129.  
  130. print(" FS New concessionaria [0.3x]: UNLOADED");
  131.  
  132. DestroyPickup(pickup);
  133. Delete3DTextLabel(d3d);
  134.  
  135. for(new i; i < MAX_PLAYERS; i ++)
  136. {
  137. if(IsPlayerConnected(i))
  138. {
  139. if(Te_xT[i][InText])Terminar(i);
  140. if(Te_xT[i][CarroDono] != INVALID_VEHICLE_ID)
  141. {
  142. Disconnect(i);
  143. }
  144. }
  145. }
  146.  
  147. return 1;
  148. }
  149.  
  150. public OnPlayerConnect(playerid)
  151. {
  152. Te_xT[playerid][InText] = false;
  153. Te_xT[playerid][CarroDono] = INVALID_VEHICLE_ID;
  154.  
  155. new file[74], nome[24];
  156. GetPlayerName(playerid, nome, 24);
  157. format(file, 74, "0.3xCarroSystem/%s.txt", nome);
  158. SetPlayerMapIcon(playerid, 98,2140.0034,-1176.8870,23.9922, 12, 0xCFCFCF);
  159. if(DOF2_FileExists(file))
  160. {
  161. CarregarCarro(playerid);
  162. }
  163. return 0;
  164. }
  165.  
  166.  
  167. Disconnect(playerid)
  168. {
  169. if(Te_xT[playerid][CarroDono] != INVALID_VEHICLE_ID)
  170. {
  171. Delete3DTextLabel(Te_xT[playerid][CarroText3D]);
  172. DestroyVehicle(Te_xT[playerid][CarroDono]);
  173. }
  174. RemovePlayerMapIcon(playerid, 98);
  175. return 0;
  176. }
  177.  
  178.  
  179. public OnPlayerDisconnect(playerid)
  180. {
  181. Disconnect(playerid);
  182. return 0;
  183. }
  184.  
  185.  
  186. CreateTexts(playerid)
  187. {
  188. Te_xT[playerid][Textdraw0] = CreatePlayerTextDraw(playerid,540.000000, 122.000000, "_");
  189. PlayerTextDrawBackgroundColor(playerid,Te_xT[playerid][Textdraw0], 255);
  190. PlayerTextDrawFont(playerid,Te_xT[playerid][Textdraw0], 1);
  191. PlayerTextDrawLetterSize(playerid,Te_xT[playerid][Textdraw0], 0.500000, 29.000000);
  192. PlayerTextDrawColor(playerid,Te_xT[playerid][Textdraw0], -1);
  193. PlayerTextDrawSetOutline(playerid,Te_xT[playerid][Textdraw0], 0);
  194. PlayerTextDrawSetProportional(playerid,Te_xT[playerid][Textdraw0], 1);
  195. PlayerTextDrawSetShadow(playerid,Te_xT[playerid][Textdraw0], 1);
  196. PlayerTextDrawUseBox(playerid,Te_xT[playerid][Textdraw0], 1);
  197. PlayerTextDrawBoxColor(playerid,Te_xT[playerid][Textdraw0], 200);
  198. PlayerTextDrawTextSize(playerid,Te_xT[playerid][Textdraw0], 90.000000, 0.000000);
  199.  
  200. Te_xT[playerid][Textdraw2] = CreatePlayerTextDraw(playerid,481.000000, 223.000000, ">");
  201. PlayerTextDrawBackgroundColor(playerid,Te_xT[playerid][Textdraw2], 50);
  202. PlayerTextDrawFont(playerid,Te_xT[playerid][Textdraw2], 3);
  203. PlayerTextDrawLetterSize(playerid,Te_xT[playerid][Textdraw2], 1.510000, 5.399999);
  204. PlayerTextDrawColor(playerid,Te_xT[playerid][Textdraw2], 65535);
  205. PlayerTextDrawSetOutline(playerid,Te_xT[playerid][Textdraw2], 1);
  206. PlayerTextDrawSetProportional(playerid,Te_xT[playerid][Textdraw2], 1);
  207. PlayerTextDrawTextSize(playerid,Te_xT[playerid][Textdraw2], 530.000000, 50.000000);
  208.  
  209. Te_xT[playerid][Textdraw3] = CreatePlayerTextDraw(playerid,111.000000, 223.000000, "<");
  210. PlayerTextDrawBackgroundColor(playerid,Te_xT[playerid][Textdraw3], 50);
  211. PlayerTextDrawFont(playerid,Te_xT[playerid][Textdraw3], 3);
  212. PlayerTextDrawLetterSize(playerid,Te_xT[playerid][Textdraw3], 1.510000, 5.399999);
  213. PlayerTextDrawColor(playerid,Te_xT[playerid][Textdraw3], 65535);
  214. PlayerTextDrawSetOutline(playerid,Te_xT[playerid][Textdraw3], 1);
  215. PlayerTextDrawSetProportional(playerid,Te_xT[playerid][Textdraw3], 1);
  216. PlayerTextDrawTextSize(playerid, Te_xT[playerid][Textdraw3], 150.000000, 50.000000);
  217.  
  218. Te_xT[playerid][Textdraw4] = CreatePlayerTextDraw(playerid,170.000000, 130.000000, "_");
  219. PlayerTextDrawBackgroundColor(playerid,Te_xT[playerid][Textdraw4], 0);
  220. PlayerTextDrawFont(playerid,Te_xT[playerid][Textdraw4], TEXT_DRAW_FONT_MODEL_PREVIEW);
  221. PlayerTextDrawSetPreviewRot(playerid,Te_xT[playerid][Textdraw4], -16.0, 0.0, -55.0);
  222. PlayerTextDrawLetterSize(playerid,Te_xT[playerid][Textdraw4], 0.500000, 19.000000);
  223. PlayerTextDrawColor(playerid,Te_xT[playerid][Textdraw4], 0xFFFFFFFF);
  224. PlayerTextDrawSetOutline(playerid,Te_xT[playerid][Textdraw4], 0);
  225. PlayerTextDrawSetProportional(playerid,Te_xT[playerid][Textdraw4], 1);
  226. PlayerTextDrawSetShadow(playerid,Te_xT[playerid][Textdraw4], 1);
  227. PlayerTextDrawUseBox(playerid,Te_xT[playerid][Textdraw4], 0);
  228. PlayerTextDrawTextSize(playerid,Te_xT[playerid][Textdraw4], 290.000000, 230.000000);
  229.  
  230. Te_xT[playerid][Textdraw5] = CreatePlayerTextDraw(playerid,112.000000, 146.000000, "Carro: ~y~NRG-500");
  231. PlayerTextDrawBackgroundColor(playerid,Te_xT[playerid][Textdraw5], -241);
  232. PlayerTextDrawFont(playerid,Te_xT[playerid][Textdraw5], 2);
  233. PlayerTextDrawLetterSize(playerid,Te_xT[playerid][Textdraw5], 0.370000, 2.200000);
  234. PlayerTextDrawColor(playerid,Te_xT[playerid][Textdraw5], -1);
  235. PlayerTextDrawSetOutline(playerid,Te_xT[playerid][Textdraw5], 1);
  236. PlayerTextDrawSetProportional(playerid,Te_xT[playerid][Textdraw5], 1);
  237.  
  238. Te_xT[playerid][Textdraw6] = CreatePlayerTextDraw(playerid,96.000000, 371.000000, "ld_dual:health");
  239. PlayerTextDrawBackgroundColor(playerid,Te_xT[playerid][Textdraw6], 255);
  240. PlayerTextDrawFont(playerid,Te_xT[playerid][Textdraw6], 4);
  241. PlayerTextDrawLetterSize(playerid,Te_xT[playerid][Textdraw6], 0.500000, 1.000000);
  242. PlayerTextDrawColor(playerid,Te_xT[playerid][Textdraw6], -1);
  243. PlayerTextDrawSetOutline(playerid,Te_xT[playerid][Textdraw6], 0);
  244. PlayerTextDrawSetProportional(playerid,Te_xT[playerid][Textdraw6], 1);
  245. PlayerTextDrawSetShadow(playerid,Te_xT[playerid][Textdraw6], 1);
  246. PlayerTextDrawUseBox(playerid,Te_xT[playerid][Textdraw6], 1);
  247. PlayerTextDrawBoxColor(playerid,Te_xT[playerid][Textdraw6], 255);
  248. PlayerTextDrawTextSize(playerid,Te_xT[playerid][Textdraw6], 440.000000, 13.000000);
  249.  
  250. Te_xT[playerid][Textdraw7] = CreatePlayerTextDraw(playerid,95.000000, 120.000000, "ld_dual:health");
  251. PlayerTextDrawBackgroundColor(playerid,Te_xT[playerid][Textdraw7], 255);
  252. PlayerTextDrawFont(playerid,Te_xT[playerid][Textdraw7], 4);
  253. PlayerTextDrawLetterSize(playerid,Te_xT[playerid][Textdraw7], 0.500000, 1.000000);
  254. PlayerTextDrawColor(playerid,Te_xT[playerid][Textdraw7], -1);
  255. PlayerTextDrawSetOutline(playerid,Te_xT[playerid][Textdraw7], 0);
  256. PlayerTextDrawSetProportional(playerid,Te_xT[playerid][Textdraw7], 1);
  257. PlayerTextDrawSetShadow(playerid,Te_xT[playerid][Textdraw7], 1);
  258. PlayerTextDrawUseBox(playerid,Te_xT[playerid][Textdraw7], 1);
  259. PlayerTextDrawBoxColor(playerid,Te_xT[playerid][Textdraw7], 255);
  260. PlayerTextDrawTextSize(playerid,Te_xT[playerid][Textdraw7], 440.000000, 13.000000);
  261.  
  262. Te_xT[playerid][Textdraw8] = CreatePlayerTextDraw(playerid,480.000000, 352.000000, "SAIR");
  263. PlayerTextDrawBackgroundColor(playerid,Te_xT[playerid][Textdraw8], -65516);
  264. PlayerTextDrawFont(playerid,Te_xT[playerid][Textdraw8], 2);
  265. PlayerTextDrawLetterSize(playerid,Te_xT[playerid][Textdraw8], 0.559998, 2.000000);
  266. PlayerTextDrawColor(playerid,Te_xT[playerid][Textdraw8], -65281);
  267. PlayerTextDrawSetOutline(playerid,Te_xT[playerid][Textdraw8], 1);
  268. PlayerTextDrawSetProportional(playerid,Te_xT[playerid][Textdraw8], 1);
  269.  
  270. //-- new --//
  271. Te_xT[playerid][Textdraw1] = CreatePlayerTextDraw(playerid,100.000000, 356.000000, "> Escolha o ID do carro <");
  272. PlayerTextDrawBackgroundColor(playerid,Te_xT[playerid][Textdraw1], 30);
  273. PlayerTextDrawFont(playerid,Te_xT[playerid][Textdraw1], 1);
  274. PlayerTextDrawLetterSize(playerid,Te_xT[playerid][Textdraw1], 0.240000, 1.200000);
  275. PlayerTextDrawColor(playerid,Te_xT[playerid][Textdraw1], 16711935);
  276. PlayerTextDrawSetOutline(playerid,Te_xT[playerid][Textdraw1], 1);
  277. PlayerTextDrawSetProportional(playerid,Te_xT[playerid][Textdraw1], 1);
  278. PlayerTextDrawUseBox(playerid,Te_xT[playerid][Textdraw1], 1);
  279. PlayerTextDrawBoxColor(playerid,Te_xT[playerid][Textdraw1], 16711740);
  280. PlayerTextDrawTextSize(playerid,Te_xT[playerid][Textdraw1], 210.000000, 20.000000);
  281. PlayerTextDrawSetSelectable(playerid,Te_xT[playerid][Textdraw1], 1);
  282.  
  283. PlayerTextDrawSetSelectable(playerid, Te_xT[playerid][Textdraw2], 1);
  284. PlayerTextDrawSetSelectable(playerid, Te_xT[playerid][Textdraw3], 1);
  285. PlayerTextDrawSetSelectable(playerid, Te_xT[playerid][Textdraw4], 1);
  286. PlayerTextDrawSetSelectable(playerid, Te_xT[playerid][Textdraw8], 1);
  287. return true;
  288. }
  289.  
  290.  
  291. #if defined _zcmd_included
  292. CMD:comprarveiculo(playerid, cores[])
  293. {
  294.  
  295. if(Te_xT[playerid][InText])
  296. return SendClientMessage(playerid, 0xFF0000FF, "Você já está escolhendo um carro.");
  297.  
  298. if(!IsPlayerInRangeOfPoint(playerid, 2.0,2140.0034,-1176.8870,23.9922))
  299. return SendClientMessage(playerid, 0xFF0000FF, "Você não está no local de comprar carros.");
  300.  
  301. if(GetPlayerMoney(playerid) < CUSTO_CARRO)
  302. return SendClientMessage(playerid, 0xFF0000FF, "Você não tem o dinheiro suficiente.");
  303.  
  304.  
  305. new cor[2];
  306. if(sscanf(cores, "dd",cor[0], cor[1]))return SendClientMessage(playerid, 0x00CC00FF, "(SERVER): /comprarveiculo [cor1] [cor2]");
  307. Te_xT[playerid][carrocor1] = cor[0];
  308. Te_xT[playerid][carrocor2] = cor[1];
  309. PlayerTextDrawSetPreviewVehCol(playerid,Te_xT[playerid][Textdraw4], cor[0], cor[1]);
  310. Te_xT[playerid][InText] = true;
  311.  
  312. CreateTexts(playerid);
  313.  
  314. Escolher (playerid);
  315.  
  316. UpdateText(playerid);
  317.  
  318. return true;
  319. }
  320.  
  321.  
  322. CMD:sairtext(playerid, cores[])
  323. {
  324.  
  325. if(!Te_xT[playerid][InText])
  326. return SendClientMessage(playerid, 0xFF0000FF, "Você já está escolhendo um carro.");
  327.  
  328. SendClientMessage(playerid, 0xFF0000FF, "(SERVER): Você escolheu sair.");
  329. Terminar(playerid);
  330. return true;
  331. }
  332.  
  333. CMD:salvarpos(playerid)
  334. {
  335. if(Te_xT[playerid][CarroDono] == INVALID_VEHICLE_ID)
  336. return SendClientMessage(playerid, 0xFF0000FF, "Você não tem um carro próprio.");
  337.  
  338. if(!IsPlayerInAnyVehicle(playerid) || GetPlayerVehicleID(playerid) != Te_xT[playerid][CarroDono])
  339. return SendClientMessage(playerid, 0xFF0000FF, "Você não está no seu veículo.");
  340.  
  341. new Float:x, Float:y, Float:z, Float:A;
  342. GetVehiclePos(GetPlayerVehicleID(playerid), x, y, z);
  343. GetVehicleZAngle(GetPlayerVehicleID(playerid), A);
  344.  
  345. Te_xT[playerid][CarroX] = x;
  346. Te_xT[playerid][CarroY] = y;
  347. Te_xT[playerid][CarroZ] = z;
  348. Te_xT[playerid][CarroAng] = A;
  349.  
  350. SalvarPlayerCarro(playerid);
  351.  
  352. SendClientMessage(playerid, 0x00CC00FF, "(SERVER): Seu carro ficará salvo neste local a partir de agora.");
  353. return true;
  354. }
  355. #endif
  356.  
  357.  
  358. public OnPlayerStateChange(playerid, newstate, oldstate)
  359. {
  360. if(newstate == PLAYER_STATE_DRIVER)
  361. {
  362. if(DonoCarro[GetPlayerVehicleID(playerid)] != INVALID_PLAYER_ID && DonoCarro[GetPlayerVehicleID(playerid)] != playerid)
  363. {
  364. SendClientMessage(playerid, 0xFF0000FF, "{SERVER): Este veiculo não pertence a você.");
  365. RemovePlayerFromVehicle(playerid);
  366. }
  367. }
  368. return true;
  369. }
  370.  
  371.  
  372. UpdateText(playerid)
  373. {
  374. new nomecarro[63] = "Carro: ~y~";
  375.  
  376. PlayerTextDrawSetPreviewVehCol(playerid,Te_xT[playerid][Textdraw4], Te_xT[playerid][carrocor1], Te_xT[playerid][carrocor2]);
  377.  
  378. strcat(nomecarro, NomesCarroS[Te_xT[playerid][CarroID]-400]);
  379.  
  380. PlayerTextDrawSetString(playerid,Te_xT[playerid][Textdraw5], nomecarro);
  381.  
  382. /*Te_xT[playerid][RotCarroX] = -16.0 ;
  383. Te_xT[playerid][RotCarroY] = 0.0 ;
  384. Te_xT[playerid][RotCarroZ] = -55.0 ;*/
  385.  
  386. PlayerTextDrawSetPreviewModel(playerid,Te_xT[playerid][Textdraw4], Te_xT[playerid][CarroID]);
  387.  
  388. PlayerTextDrawShow(playerid,Te_xT[playerid][Textdraw4]);
  389. return 0;
  390.  
  391. }
  392.  
  393.  
  394.  
  395.  
  396.  
  397. Escolher(playerid)
  398. {
  399.  
  400. Te_xT[playerid][RotCarroX] = -16.0 ;
  401. Te_xT[playerid][RotCarroY] = 0.0 ;
  402. Te_xT[playerid][RotCarroZ] = -55.0 ;
  403.  
  404. Te_xT[playerid][CarroID] = 400;
  405.  
  406. PlayerTextDrawSetPreviewModel(playerid,Te_xT[playerid][Textdraw4], Te_xT[playerid][CarroID]);
  407. PlayerTextDrawShow(playerid, Te_xT[playerid][Textdraw0]);
  408. PlayerTextDrawShow(playerid, Te_xT[playerid][Textdraw2]);
  409. PlayerTextDrawShow(playerid, Te_xT[playerid][Textdraw3]);
  410. PlayerTextDrawShow(playerid, Te_xT[playerid][Textdraw4]);
  411. PlayerTextDrawShow(playerid, Te_xT[playerid][Textdraw5]);
  412. PlayerTextDrawShow(playerid, Te_xT[playerid][Textdraw6]);
  413. PlayerTextDrawShow(playerid, Te_xT[playerid][Textdraw7]);
  414. PlayerTextDrawShow(playerid, Te_xT[playerid][Textdraw8]);
  415. PlayerTextDrawShow(playerid, Te_xT[playerid][Textdraw1]);
  416. SelectTextDraw(playerid, 0xFF0000FF);
  417.  
  418. KillTimer(Te_xT[playerid][timerplayer]);
  419. Te_xT[playerid][timerplayer] = SetTimerEx("AtualizarPos", 4000, true, "i", playerid);
  420.  
  421. SetPlayerCameraPos(playerid, 729.42, -1569.42, 49.15);
  422. SetPlayerCameraLookAt(playerid, 729.65, -1564.39, 45.89);
  423. SetPlayerPos(playerid, 729.42, -1569.42, 49.15+25.0);
  424. TogglePlayerControllable(playerid, false);
  425. SendClientMessage(playerid, 0x00CC00ff, "(SERVER): Escolha o carro desejado. Caso de algum bug, digite: /sairtext");
  426. GivePlayerMoney(playerid, -CUSTO_CARRO);
  427. }
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434. Terminar(playerid)
  435. {
  436.  
  437. PlayerTextDrawDestroy(playerid,Te_xT[playerid][Textdraw0]);
  438. PlayerTextDrawDestroy(playerid,Te_xT[playerid][Textdraw2]);
  439. PlayerTextDrawDestroy(playerid,Te_xT[playerid][Textdraw3]);
  440. PlayerTextDrawDestroy(playerid,Te_xT[playerid][Textdraw4]);
  441. PlayerTextDrawDestroy(playerid,Te_xT[playerid][Textdraw5]);
  442. PlayerTextDrawDestroy(playerid,Te_xT[playerid][Textdraw6]);
  443. PlayerTextDrawDestroy(playerid,Te_xT[playerid][Textdraw7]);
  444. PlayerTextDrawDestroy(playerid,Te_xT[playerid][Textdraw8]);
  445. PlayerTextDrawDestroy(playerid,Te_xT[playerid][Textdraw1]);
  446. KillTimer(Te_xT[playerid][timerplayer]);
  447. SetCameraBehindPlayer(playerid);
  448. TogglePlayerControllable(playerid, true);
  449. SetPlayerPos(playerid, 2140.0034,-1176.8870,23.9922);
  450. Te_xT[playerid][InText] = false;
  451. CancelSelectTextDraw(playerid);
  452. return true;
  453.  
  454. }
  455.  
  456.  
  457. forward AtualizarPos(playerid);
  458. public AtualizarPos(playerid)
  459. {
  460. Te_xT[playerid][RotCarroZ] += 50.0;
  461.  
  462. PlayerTextDrawSetPreviewRot(playerid,Te_xT[playerid][Textdraw4], Te_xT[playerid][RotCarroX], Te_xT[playerid][RotCarroY], Te_xT[playerid][RotCarroZ]);
  463. PlayerTextDrawShow(playerid, Te_xT[playerid][Textdraw4]);
  464.  
  465. return 0;
  466. }
  467.  
  468.  
  469.  
  470.  
  471. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
  472. {
  473. if(playertextid == PlayerText:0xFFFF && Te_xT[playerid][InText])
  474. {
  475. SendClientMessage(playerid, 0xFF0000FF, "(SERVER): Você deve escolher um carro, ou aperte em 'SAIR'");
  476. SelectTextDraw(playerid, 0xFF0000FF);// (( << Se o player apertar ESC ))
  477. }
  478. if(Te_xT[playerid][InText])
  479. {
  480. if(playertextid == Te_xT[playerid][Textdraw2])
  481. {
  482. if(Te_xT[playerid][CarroID] >= 605)return false;
  483.  
  484. Te_xT[playerid][CarroID]++;
  485.  
  486. UpdateText(playerid);
  487.  
  488. }
  489.  
  490. if(playertextid == Te_xT[playerid][Textdraw3])
  491. {
  492. if(Te_xT[playerid][CarroID] <= 400)return false;
  493. Te_xT[playerid][CarroID]--;
  494.  
  495. UpdateText(playerid);
  496.  
  497. }
  498.  
  499. if(playertextid == Te_xT[playerid][Textdraw4])
  500. {
  501.  
  502. if(!VeiculosValidos(Te_xT[playerid][CarroID]))
  503. {
  504. return SendClientMessage(playerid, 0xFF0000FF, "(SERVER): Veiculo proibido.");
  505. }
  506. EscolherCarro(playerid);
  507. return true;
  508.  
  509. }
  510.  
  511. if(playertextid == Te_xT[playerid][Textdraw8])
  512. {
  513.  
  514. SendClientMessage(playerid, 0xFF0000FF, "(SERVER): Você escolheu sair.");
  515. Terminar(playerid);
  516.  
  517. }
  518.  
  519. if(playertextid == Te_xT[playerid][Textdraw1])
  520. {
  521.  
  522. CancelSelectTextDraw(playerid);
  523. SendClientMessage(playerid, 0xFF0000FF, "(SERVER): Escolha o ID do veículo...");
  524. ShowPlayerDialog(playerid, Dialog_03x_1, DIALOG_STYLE_LIST, "Car Infos","» Veiculo Modelo\n» Color 1\n» Color 2","Escolher","Cancelar");
  525. }
  526. }
  527. return 0;
  528. }
  529.  
  530.  
  531.  
  532.  
  533. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  534. {
  535. if(dialogid == Dialog_03x_1)
  536. {
  537. if(!response)return SelectTextDraw(playerid, 0xFF0000FF);
  538. if(listitem == 0)
  539. {
  540. ShowPlayerDialog(playerid, Dialog_03x_2, DIALOG_STYLE_INPUT, "ID do veiculo","Digite o ID do veiculo que você deseja comprar\nOBS: Não pode ser abaixo de 400 ou acima de 600","Escolher","Cancelar");
  541. }
  542. else if(listitem == 1)
  543. {
  544. ShowPlayerDialog(playerid, Dialog_03x_3, DIALOG_STYLE_INPUT, "Color 1","Digite a primeira cor do veiculo", "Escolher","Voltar");
  545. }
  546. else if(listitem == 2)
  547. {
  548. ShowPlayerDialog(playerid, Dialog_03x_4, DIALOG_STYLE_INPUT, "Color 2","Digite a segunda cor do veiculo", "Escolher","Voltar");
  549. }
  550. return 0;
  551.  
  552. }
  553. if(dialogid == Dialog_03x_2)
  554. {
  555. new id = strval(inputtext);
  556. if(!id || id < 400 || id > 600 || !VeiculosValidos(id))
  557. {
  558. return ShowPlayerDialog(playerid, Dialog_03x_2, DIALOG_STYLE_INPUT, \
  559. "ID do veiculo","Digite o ID do veiculo que você deseja comprar\n\
  560. OBS: Não pode ser abaixo de 400 ou acima de 600\n\
  561. {FF0000}ID Invalido","Escolher","Cancelar");
  562. }
  563. SendClientMessage(playerid, 0xFF0000FF, "(SERVER): Veiculo escolhido com sucesso.");
  564.  
  565. Te_xT[playerid][CarroID] = id;
  566.  
  567. UpdateText(playerid);
  568. ShowPlayerDialog(playerid, Dialog_03x_1, DIALOG_STYLE_LIST, "Car Infos","» Veiculo Modelo\n» Color 1\n» Color 2","Escolher","Cancelar");
  569.  
  570. }
  571. if(dialogid == Dialog_03x_3)
  572. {
  573. new id = strval(inputtext);
  574. if(!id)
  575. {
  576. return ShowPlayerDialog(playerid, Dialog_03x_3, DIALOG_STYLE_INPUT, "Color 1","Digite a primeira cor do veiculo", "Escolher","Voltar");
  577. }
  578. SendClientMessage(playerid, 0xFF0000FF, "(SERVER): Cor 1 trocada com sucesso.");
  579.  
  580. Te_xT[playerid][carrocor1] = id;
  581.  
  582. UpdateText(playerid);
  583. ShowPlayerDialog(playerid, Dialog_03x_1, DIALOG_STYLE_LIST, "Car Infos","» Veiculo Modelo\n» Color 1\n» Color 2","Escolher","Cancelar");
  584.  
  585. }
  586. if(dialogid == Dialog_03x_4)
  587. {
  588. new id = strval(inputtext);
  589. if(!id)
  590. {
  591. return ShowPlayerDialog(playerid, Dialog_03x_4, DIALOG_STYLE_INPUT, "Color 2","Digite a segunda cor do veiculo", "Escolher","Voltar");
  592. }
  593. SendClientMessage(playerid, 0xFF0000FF, "(SERVER): Cor 2 trocada com sucesso.");
  594.  
  595. Te_xT[playerid][carrocor2] = id;
  596.  
  597. UpdateText(playerid);
  598. ShowPlayerDialog(playerid, Dialog_03x_1, DIALOG_STYLE_LIST, "Car Infos","» Veiculo Modelo\n» Color 1\n» Color 2","Escolher","Cancelar");
  599.  
  600. }
  601. return false;
  602. }
  603.  
  604.  
  605.  
  606. stock EscolherCarro(playerid)
  607. {
  608. new randompos = random(sizeof(RandomPosXYZ)), text3d[128], nome[24];
  609. GetPlayerName(playerid, nome, 24);
  610. if(Te_xT[playerid][CarroDono] == INVALID_VEHICLE_ID)
  611. {
  612. Te_xT[playerid][CarroDono] = AddStaticVehicleEx(Te_xT[playerid][CarroID],
  613. RandomPosXYZ[randompos][0], RandomPosXYZ[randompos][1], RandomPosXYZ[randompos][2],RandomPosXYZ[randompos][3],
  614. Te_xT[playerid][carrocor1],Te_xT[playerid][carrocor2], -1);
  615.  
  616. format(text3d, 100, "{FFFFFF}Este veiculo pertence a:{00D4F6}\n%s", nome);
  617. Te_xT[playerid][CarroText3D] = Create3DTextLabel(text3d, -1, 0.0, 0.0, 0.0, 12.0, 0);
  618. Attach3DTextLabelToVehicle(Te_xT[playerid][CarroText3D], Te_xT[playerid][CarroDono], 0.0,0.0,0.0);
  619. }
  620. else
  621. {
  622. DestroyVehicle(Te_xT[playerid][CarroDono]);
  623. Te_xT[playerid][CarroDono] = AddStaticVehicleEx(Te_xT[playerid][CarroID],
  624. RandomPosXYZ[randompos][0], RandomPosXYZ[randompos][1], RandomPosXYZ[randompos][2],RandomPosXYZ[randompos][3],
  625. Te_xT[playerid][carrocor1],Te_xT[playerid][carrocor2], -1);
  626. Attach3DTextLabelToVehicle(Te_xT[playerid][CarroText3D], Te_xT[playerid][CarroDono], 0.0,0.0,0.0);
  627. }
  628. Terminar(playerid);
  629. PutPlayerInVehicle(playerid, Te_xT[playerid][CarroDono], 0);
  630. format(text3d, 127, "(SERVER): Você comprou o carro %s por $%d, USE: /salvarpos para salva-lo.",NomesCarroS[Te_xT[playerid][CarroID]-400], CUSTO_CARRO);
  631. GivePlayerMoney(playerid, -CUSTO_CARRO),SendClientMessage(playerid, -1, text3d);
  632. return true;
  633. }
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640. stock SalvarPlayerCarro(playerid)
  641. {
  642. new file[100], nome[24];
  643. GetPlayerName(playerid, nome, 24);
  644. format(file, 74, "0.3xCarroSystem/%s.txt", nome);
  645. if(!DOF2_FileExists(file))DOF2_CreateFile(file);
  646. DOF2_SetInt(file, "ModeloCarro", Te_xT[playerid][CarroID]);
  647. DOF2_SetInt(file, "Color1", Te_xT[playerid][carrocor1]);
  648. DOF2_SetInt(file, "Color2", Te_xT[playerid][carrocor2]);
  649. DOF2_SetFloat(file, "PosCarroX", Te_xT[playerid][CarroX]);
  650. DOF2_SetFloat(file, "PosCarroY", Te_xT[playerid][CarroY]);
  651. DOF2_SetFloat(file, "PosCarroZ", Te_xT[playerid][CarroZ]);
  652. DOF2_SetFloat(file, "PosCarroAng", Te_xT[playerid][CarroAng]);
  653. DOF2_SaveFile();
  654. return 0;
  655. }
  656.  
  657.  
  658.  
  659.  
  660. CarregarCarro(playerid)
  661. {
  662. new file[100], nome[24], text3d[100];
  663. GetPlayerName(playerid, nome, 24);
  664. format(file, 74, "0.3xCarroSystem/%s.txt", nome);
  665. if(DOF2_FileExists(file))
  666. {
  667.  
  668. Te_xT[playerid][CarroID] = DOF2_GetInt(file, "ModeloCarro");
  669. Te_xT[playerid][carrocor1] = DOF2_GetInt(file, "Color1");
  670. Te_xT[playerid][carrocor2] = DOF2_GetInt(file, "Color2");
  671. Te_xT[playerid][CarroX] = DOF2_GetFloat(file, "PosCarroX");
  672. Te_xT[playerid][CarroY] = DOF2_GetFloat(file, "PosCarroY");
  673. Te_xT[playerid][CarroZ] = DOF2_GetFloat(file, "PosCarroZ");
  674. Te_xT[playerid][CarroAng] = DOF2_GetFloat(file, "PosCarroAng");
  675.  
  676. Te_xT[playerid][CarroDono] = CreateVehicle(Te_xT[playerid][CarroID],
  677. Te_xT[playerid][CarroX], Te_xT[playerid][CarroY], Te_xT[playerid][CarroZ],Te_xT[playerid][CarroAng],
  678. Te_xT[playerid][carrocor1],Te_xT[playerid][carrocor2], -1);
  679. format(text3d, 100, "{FFFFFF}Este veiculo pertence a:{00D4F6}\n%s", nome);
  680. Te_xT[playerid][CarroText3D] = Create3DTextLabel(text3d, -1, 0.0, 0.0, 0.0, 12.0, 0);
  681. Attach3DTextLabelToVehicle(Te_xT[playerid][CarroText3D], Te_xT[playerid][CarroDono], 0.0,0.0,0.0);
  682. }
  683. return 0;
  684. }
  685.  
  686. #if !defined _zcmd_included
  687. public OnPlayerCommandText(playerid, cmdtext[])
  688. {
  689. new cmd[256];
  690. new idx,
  691. tmp[256];
  692. cmd = strtok2(cmdtext, idx);
  693. if(strcmp(cmd, "/comprarveiculo", true) == 0)
  694. {
  695. if(Te_xT[playerid][InText])
  696. return SendClientMessage(playerid, 0xFF0000FF, "Você já está escolhendo um carro.");
  697.  
  698. if(!IsPlayerInRangeOfPoint(playerid, 2.0,2140.0034,-1176.8870,23.9922))
  699. return SendClientMessage(playerid, 0xFF0000FF, "Você não está no local de comprar carros.");
  700.  
  701. if(GetPlayerMoney(playerid) < CUSTO_CARRO)
  702. return SendClientMessage(playerid, 0xFF0000FF, "Você não tem o dinheiro suficiente.");
  703.  
  704. new cor[2];
  705. tmp = strtok2(cmdtext, idx);
  706. cor[0] = strval(tmp);
  707. if(!strval(tmp))
  708. return SendClientMessage(playerid, 0x00CC00FF, "(SERVER): /comprarveiculo [cor1] [cor2]");
  709. tmp = strtok2(cmdtext, idx);
  710. cor[1] = strval(tmp);
  711. if(!strval(tmp))
  712. return SendClientMessage(playerid, 0x00CC00FF, "(SERVER): /comprarveiculo [cor1] [cor2]");
  713.  
  714.  
  715. Te_xT[playerid][carrocor1] = cor[0];
  716. Te_xT[playerid][carrocor2] = cor[1];
  717. PlayerTextDrawSetPreviewVehCol(playerid,Te_xT[playerid][Textdraw4], cor[0], cor[1]);
  718. Te_xT[playerid][InText] = true;
  719.  
  720. CreateTexts(playerid);
  721.  
  722. Escolher (playerid);
  723.  
  724. UpdateText(playerid);
  725. return 1;
  726. }
  727.  
  728.  
  729. if(strcmp(cmd, "/sairtext", true) == 0)
  730. {
  731. if(!Te_xT[playerid][InText])
  732. return SendClientMessage(playerid, 0xFF0000FF, "Você já está escolhendo um carro.");
  733. SendClientMessage(playerid, 0xFF0000FF, "(SERVER): Você escolheu sair.");
  734. Terminar(playerid);
  735. return 1;
  736. }
  737.  
  738. if(strcmp(cmd, "/salvarpos", true) == 0)
  739. {
  740. if(Te_xT[playerid][CarroDono] == INVALID_VEHICLE_ID)
  741. return SendClientMessage(playerid, 0xFF0000FF, "Você não tem um carro próprio.");
  742.  
  743. if(!IsPlayerInAnyVehicle(playerid) || GetPlayerVehicleID(playerid) != Te_xT[playerid][CarroDono])
  744. return SendClientMessage(playerid, 0xFF0000FF, "Você não está no seu veículo.");
  745.  
  746. new Float:x, Float:y, Float:z, Float:A;
  747. GetVehiclePos(GetPlayerVehicleID(playerid), x, y, z);
  748. GetVehicleZAngle(GetPlayerVehicleID(playerid), A);
  749.  
  750. Te_xT[playerid][CarroX] = x;
  751. Te_xT[playerid][CarroY] = y;
  752. Te_xT[playerid][CarroZ] = z;
  753. Te_xT[playerid][CarroAng] = A;
  754.  
  755. SalvarPlayerCarro(playerid);
  756.  
  757. SendClientMessage(playerid, 0x00CC00FF, "(SERVER): Seu carro ficará salvo neste local a partir de agora.");
  758. return true;
  759. }
  760. return false;
  761. }
  762. #endif
  763.  
  764. stock strtok2(const string[], &index)
  765. {
  766. new length = strlen(string);
  767. while ((index < length) && (string[index] <= ' '))
  768. {
  769. index++;
  770. }
  771. new offset = index;
  772. new result[20];
  773. while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  774. {
  775. result[index - offset] = string[index];
  776. index++;
  777. }
  778. result[index - offset] = EOS;
  779. return result;
  780. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement