Advertisement
Guest User

[FilterScript] Sistema de Veiculos [0.3x]

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