Day_Walker

[Fs]Concesionario de vehiculos en TextDraw

Jan 26th, 2014
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 30.03 KB | None | 0 0
  1. #if defined Credits
  2. ===============================
  3. | Created By: Fort |
  4. | Edited By: FuTuRe |
  5. | Do Not Remove Credits |
  6. ===============================
  7. #endif
  8.  
  9. #include <a_samp>
  10. #include <zcmd>
  11. #include <sscanf>
  12. #include <dof2>
  13. #pragma tabsize 0
  14.  
  15. #pragma unused DOF2_Exit
  16. #define CUSTO_CARRO (2500)//Cantidad de dinero que tiene que pagar para comprar el vehiculo
  17.  
  18.  
  19. new NomesCarroS[][] ={
  20. "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck",
  21. "Trashmaster","Stretch","Manana","Infernus","Voodoo","Pony","Mule","Cheetah","Ambulance",
  22. "Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Whoopee","BF Injection","Hunter","Premier",
  23. "Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon",
  24. "Coach","Cabbie","Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo",
  25. "Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder","Reefer","Tropic","Flatbed","Yankee","Caddy",
  26. "Solair","Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider","Glendale",
  27. "Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3-50","Walton","Regina",
  28. "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","Chopper","Rancher","FBI Rancher",
  29. "Virgo","Greenwood","Jetmax","Hotring","Sandking","Blista","Maverick","Boxville","Benson","Mesa",
  30. "RC Goblin","Hotring","Hotring","Bloodring","Rancher","Super GT","Elegant","Journey",
  31. "Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain","Nebula","Majestic","Buccaneer",
  32. "Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
  33. "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent",
  34. "Bullet","Clover","Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility",
  35. "Nevada","Yosemite","Windsor","Monster A","Monster B","Uranus","Jester","Sultan","Stratum","Elegy",
  36. "Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer","Kart","Mower","Duneride","Sweeper",
  37. "Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer","Emperor",
  38. "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car","Police Car",
  39. "Police Car","Police Ranger","Picador","S.W.A.T.","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer","Luggage Trailer",
  40. "Stair Trailer","Boxville","Farm Plow","Utility Trailer"};
  41.  
  42. new Float:RandomPosXYZ[][]=
  43. {
  44. {2147.7568,-1166.3738,23.5254,269.3909},
  45. {2148.0610,-1161.7148,23.5274,270.0405},
  46. {2147.8440,-1157.3314,23.5506,269.9344},
  47. {2161.2195,-1167.6934,23.5241,89.5632},
  48. {2161.2771,-1172.7664,23.5250,88.4558},
  49. {2161.2710,-1177.8595,23.5239,89.7862}
  50. };
  51. new pickup;
  52. new Text3D:d3d;
  53.  
  54. stock VeiculosValidos(m)
  55. {
  56. if(
  57. m==400||m==401||m==402||m==404||m==560||m==405||
  58. m==410||m==411||m==412||m==413||m==415||m==418||
  59. m==419||m==422||m==424||m==426||m==429||m==434||
  60. m==436||m==439||m==442||m==444||m==445||m==451||
  61. m==458||m==461||m==462||m==463||m==466||m==467||
  62. m==468||m==474||m==475||m==522||m==521||m==478||
  63. m==479||m==480||m==481||m==483||m==491||m==492||
  64. m==496||m==500||m==506||m==507||m==508||m==517||
  65. m==518||m==527||m==533||m==534||m==535||m==536||
  66. m==541||m==542||m==545||m==549||m==550||m==551||
  67. m==554||m==555)
  68. {
  69. return true;
  70. }
  71. return false;
  72. }
  73. enum text
  74. {
  75. Float:RotCarroX,
  76. Float:RotCarroY,
  77. Float:RotCarroZ,
  78. Float:CarroX,
  79. Float:CarroY,
  80. Float:CarroZ,
  81. Float:CarroAng,
  82. bool:InText,
  83. Text3D:CarroText3D,
  84. PlayerText:Textdraw0,
  85. PlayerText:Textdraw2,
  86. PlayerText:Textdraw3,
  87. PlayerText:Textdraw4,
  88. PlayerText:Textdraw5,
  89. PlayerText:Textdraw6,
  90. PlayerText:Textdraw7,
  91. PlayerText:Textdraw8,
  92. timerplayer,
  93. CarroID,
  94. carrocor1,
  95. carrocor2,
  96. CarroDono
  97. };
  98. new Te_xT[MAX_PLAYERS][text];
  99. new DonoCarro[MAX_VEHICLES];
  100.  
  101. public OnFilterScriptInit()
  102. {
  103.  
  104. print(" FS New concessionaria [0.3x]: LOADED");
  105.  
  106. pickup = CreatePickup(1318, 24, 2140.0034,-1176.8870,23.9922, 0);
  107. d3d = Create3DTextLabel("{FFFFFF}Elija Su Propio Vehiculo Aqui\n{00D4F6}Usa: /comprarvehiculo\n$2500",-1,2140.0034,-1176.8870,23.9922, 20.0, 0);
  108.  
  109. for(new i; i < MAX_PLAYERS; i ++)
  110. {
  111. if(IsPlayerConnected(i))
  112. {
  113. OnPlayerConnect(i);
  114. }
  115. }
  116.  
  117. for(new x; x < MAX_VEHICLES; x++)
  118. {
  119. DonoCarro[x] = INVALID_PLAYER_ID;
  120. }
  121. return 1;
  122. }
  123.  
  124. public OnFilterScriptExit()
  125. {
  126. DestroyPickup(pickup);
  127. Delete3DTextLabel(d3d);
  128.  
  129. for(new i; i < MAX_PLAYERS; i ++)
  130. {
  131. if(IsPlayerConnected(i))
  132. {
  133. if(Te_xT[i][InText])Terminar(i);
  134. if(Te_xT[i][CarroDono] != INVALID_VEHICLE_ID)
  135. {
  136. Disconnect(i);
  137. }
  138. }
  139. }
  140.  
  141. return 1;
  142. }
  143.  
  144. public OnPlayerConnect(playerid)
  145. {
  146. Te_xT[playerid][InText] = false;
  147. Te_xT[playerid][CarroDono] = INVALID_VEHICLE_ID;
  148.  
  149. new file[74], nome[24];
  150. GetPlayerName(playerid, nome, 24);
  151. format(file, 74, "0.3xCarroSystem/%s.txt", nome);
  152. SetPlayerMapIcon(playerid, 98,2140.0034,-1176.8870,23.9922, 12, 0xCFCFCF);
  153. if(DOF2_FileExists(file))
  154. {
  155. CarregarCarro(playerid);
  156. }
  157. return 0;
  158. }
  159.  
  160.  
  161. Disconnect(playerid)
  162. {
  163. if(Te_xT[playerid][CarroDono] != INVALID_VEHICLE_ID)
  164. {
  165. Delete3DTextLabel(Te_xT[playerid][CarroText3D]);
  166. DestroyVehicle(Te_xT[playerid][CarroDono]);
  167. }
  168. RemovePlayerMapIcon(playerid, 98);
  169. return 0;
  170. }
  171.  
  172.  
  173. public OnPlayerDisconnect(playerid)
  174. {
  175. Disconnect(playerid);
  176. return 0;
  177. }
  178.  
  179.  
  180. CreateTexts(playerid)
  181. {
  182. Te_xT[playerid][Textdraw0] = CreatePlayerTextDraw(playerid,540.000000, 122.000000, "_");
  183. PlayerTextDrawBackgroundColor(playerid,Te_xT[playerid][Textdraw0], 255);
  184. PlayerTextDrawFont(playerid,Te_xT[playerid][Textdraw0], 1);
  185. PlayerTextDrawLetterSize(playerid,Te_xT[playerid][Textdraw0], 0.500000, 29.000000);
  186. PlayerTextDrawColor(playerid,Te_xT[playerid][Textdraw0], -1);
  187. PlayerTextDrawSetOutline(playerid,Te_xT[playerid][Textdraw0], 0);
  188. PlayerTextDrawSetProportional(playerid,Te_xT[playerid][Textdraw0], 1);
  189. PlayerTextDrawSetShadow(playerid,Te_xT[playerid][Textdraw0], 1);
  190. PlayerTextDrawUseBox(playerid,Te_xT[playerid][Textdraw0], 1);
  191. PlayerTextDrawBoxColor(playerid,Te_xT[playerid][Textdraw0], 200);
  192. PlayerTextDrawTextSize(playerid,Te_xT[playerid][Textdraw0], 90.000000, 0.000000);
  193.  
  194. Te_xT[playerid][Textdraw2] = CreatePlayerTextDraw(playerid,481.000000, 223.000000, ">");
  195. PlayerTextDrawBackgroundColor(playerid,Te_xT[playerid][Textdraw2], 50);
  196. PlayerTextDrawFont(playerid,Te_xT[playerid][Textdraw2], 3);
  197. PlayerTextDrawLetterSize(playerid,Te_xT[playerid][Textdraw2], 1.510000, 5.399999);
  198. PlayerTextDrawColor(playerid,Te_xT[playerid][Textdraw2], 65535);
  199. PlayerTextDrawSetOutline(playerid,Te_xT[playerid][Textdraw2], 1);
  200. PlayerTextDrawSetProportional(playerid,Te_xT[playerid][Textdraw2], 1);
  201. PlayerTextDrawTextSize(playerid,Te_xT[playerid][Textdraw2], 530.000000, 50.000000);
  202.  
  203. Te_xT[playerid][Textdraw3] = CreatePlayerTextDraw(playerid,111.000000, 223.000000, "<");
  204. PlayerTextDrawBackgroundColor(playerid,Te_xT[playerid][Textdraw3], 50);
  205. PlayerTextDrawFont(playerid,Te_xT[playerid][Textdraw3], 3);
  206. PlayerTextDrawLetterSize(playerid,Te_xT[playerid][Textdraw3], 1.510000, 5.399999);
  207. PlayerTextDrawColor(playerid,Te_xT[playerid][Textdraw3], 65535);
  208. PlayerTextDrawSetOutline(playerid,Te_xT[playerid][Textdraw3], 1);
  209. PlayerTextDrawSetProportional(playerid,Te_xT[playerid][Textdraw3], 1);
  210. PlayerTextDrawTextSize(playerid, Te_xT[playerid][Textdraw3], 150.000000, 50.000000);
  211.  
  212. Te_xT[playerid][Textdraw4] = CreatePlayerTextDraw(playerid,170.000000, 130.000000, "_");
  213. PlayerTextDrawBackgroundColor(playerid,Te_xT[playerid][Textdraw4], 0);
  214. PlayerTextDrawFont(playerid,Te_xT[playerid][Textdraw4], TEXT_DRAW_FONT_MODEL_PREVIEW);
  215. PlayerTextDrawSetPreviewRot(playerid,Te_xT[playerid][Textdraw4], -16.0, 0.0, -55.0);
  216. PlayerTextDrawLetterSize(playerid,Te_xT[playerid][Textdraw4], 0.500000, 19.000000);
  217. PlayerTextDrawColor(playerid,Te_xT[playerid][Textdraw4], 0xFFFFFFFF);
  218. PlayerTextDrawSetOutline(playerid,Te_xT[playerid][Textdraw4], 0);
  219. PlayerTextDrawSetProportional(playerid,Te_xT[playerid][Textdraw4], 1);
  220. PlayerTextDrawSetShadow(playerid,Te_xT[playerid][Textdraw4], 1);
  221. PlayerTextDrawUseBox(playerid,Te_xT[playerid][Textdraw4], 0);
  222. PlayerTextDrawTextSize(playerid,Te_xT[playerid][Textdraw4], 290.000000, 230.000000);
  223.  
  224. Te_xT[playerid][Textdraw5] = CreatePlayerTextDraw(playerid,112.000000, 146.000000, "Vehiculo: ~y~NRG-500");
  225. PlayerTextDrawBackgroundColor(playerid,Te_xT[playerid][Textdraw5], -241);
  226. PlayerTextDrawFont(playerid,Te_xT[playerid][Textdraw5], 2);
  227. PlayerTextDrawLetterSize(playerid,Te_xT[playerid][Textdraw5], 0.370000, 2.200000);
  228. PlayerTextDrawColor(playerid,Te_xT[playerid][Textdraw5], -1);
  229. PlayerTextDrawSetOutline(playerid,Te_xT[playerid][Textdraw5], 1);
  230. PlayerTextDrawSetProportional(playerid,Te_xT[playerid][Textdraw5], 1);
  231.  
  232. Te_xT[playerid][Textdraw6] = CreatePlayerTextDraw(playerid,96.000000, 371.000000, "ld_dual:health");
  233. PlayerTextDrawBackgroundColor(playerid,Te_xT[playerid][Textdraw6], 255);
  234. PlayerTextDrawFont(playerid,Te_xT[playerid][Textdraw6], 4);
  235. PlayerTextDrawLetterSize(playerid,Te_xT[playerid][Textdraw6], 0.500000, 1.000000);
  236. PlayerTextDrawColor(playerid,Te_xT[playerid][Textdraw6], -1);
  237. PlayerTextDrawSetOutline(playerid,Te_xT[playerid][Textdraw6], 0);
  238. PlayerTextDrawSetProportional(playerid,Te_xT[playerid][Textdraw6], 1);
  239. PlayerTextDrawSetShadow(playerid,Te_xT[playerid][Textdraw6], 1);
  240. PlayerTextDrawUseBox(playerid,Te_xT[playerid][Textdraw6], 1);
  241. PlayerTextDrawBoxColor(playerid,Te_xT[playerid][Textdraw6], 255);
  242. PlayerTextDrawTextSize(playerid,Te_xT[playerid][Textdraw6], 440.000000, 13.000000);
  243.  
  244. Te_xT[playerid][Textdraw7] = CreatePlayerTextDraw(playerid,95.000000, 120.000000, "ld_dual:health");
  245. PlayerTextDrawBackgroundColor(playerid,Te_xT[playerid][Textdraw7], 255);
  246. PlayerTextDrawFont(playerid,Te_xT[playerid][Textdraw7], 4);
  247. PlayerTextDrawLetterSize(playerid,Te_xT[playerid][Textdraw7], 0.500000, 1.000000);
  248. PlayerTextDrawColor(playerid,Te_xT[playerid][Textdraw7], -1);
  249. PlayerTextDrawSetOutline(playerid,Te_xT[playerid][Textdraw7], 0);
  250. PlayerTextDrawSetProportional(playerid,Te_xT[playerid][Textdraw7], 1);
  251. PlayerTextDrawSetShadow(playerid,Te_xT[playerid][Textdraw7], 1);
  252. PlayerTextDrawUseBox(playerid,Te_xT[playerid][Textdraw7], 1);
  253. PlayerTextDrawBoxColor(playerid,Te_xT[playerid][Textdraw7], 255);
  254. PlayerTextDrawTextSize(playerid,Te_xT[playerid][Textdraw7], 440.000000, 13.000000);
  255.  
  256. Te_xT[playerid][Textdraw8] = CreatePlayerTextDraw(playerid,480.000000, 352.000000, "~r~Exit");
  257. PlayerTextDrawBackgroundColor(playerid,Te_xT[playerid][Textdraw8], -65516);
  258. PlayerTextDrawFont(playerid,Te_xT[playerid][Textdraw8], 2);
  259. PlayerTextDrawLetterSize(playerid,Te_xT[playerid][Textdraw8], 0.559998, 2.000000);
  260. PlayerTextDrawColor(playerid,Te_xT[playerid][Textdraw8], -65281);
  261. PlayerTextDrawSetOutline(playerid,Te_xT[playerid][Textdraw8], 1);
  262. PlayerTextDrawSetProportional(playerid,Te_xT[playerid][Textdraw8], 1);
  263.  
  264. PlayerTextDrawSetSelectable(playerid, Te_xT[playerid][Textdraw2], 1);
  265. PlayerTextDrawSetSelectable(playerid, Te_xT[playerid][Textdraw3], 1);
  266. PlayerTextDrawSetSelectable(playerid, Te_xT[playerid][Textdraw4], 1);
  267. PlayerTextDrawSetSelectable(playerid, Te_xT[playerid][Textdraw8], 1);
  268. return true;
  269. }
  270.  
  271.  
  272. #if defined _zcmd_included
  273.  
  274. CMD:comprarvehiculo(playerid, cores[])
  275. {
  276.  
  277. if(Te_xT[playerid][InText])
  278. return SendClientMessage(playerid, 0xFF0000FF, "**Ya estas eligiendo un vehiculo.");
  279.  
  280. if(!IsPlayerInRangeOfPoint(playerid, 2.0,2140.0034,-1176.8870,23.9922))
  281. return SendClientMessage(playerid, 0xFF0000FF, "**Usted no esta en el lugar para comprar vehiculos.");
  282.  
  283. if(GetPlayerMoney(playerid) < CUSTO_CARRO)
  284. return SendClientMessage(playerid, 0xFF0000FF, "**Usted no tiene suficiente dinero.");
  285.  
  286.  
  287. new cor[2];
  288. if(sscanf(cores, "dd",cor[0], cor[1]))return SendClientMessage(playerid, 0x00CC00FF, "(SERVER): /comprarvehiculo [color1] [color2]");
  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, "**Usted no tiene que tener un auto.");
  308.  
  309. if(!IsPlayerInAnyVehicle(playerid) || GetPlayerVehicleID(playerid) != Te_xT[playerid][CarroDono])
  310. return SendClientMessage(playerid, 0xFF0000FF, "**Usted no esta en su vehiculo.");
  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): Su coche estara seguro en este lugar apartir de ahora.");
  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 Vehiculo no te pertenece.");
  336. RemovePlayerFromVehicle(playerid);
  337. }
  338. }
  339. return true;
  340. }
  341.  
  342.  
  343. UpdateText(playerid)
  344. {
  345. new nomecarro[63] = "Vehiculo: ~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): Seleciione el Vehiculo que desee.");
  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): Usted tiene que elegir un coche o Pulse 'Salir'");
  445. SelectTextDraw(playerid, 0x00cc0070);// (( << Si el jugador presiona 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): Este vehiculo esta prohibido.");
  474. }
  475. EscolherCarro(playerid);
  476. return true;
  477.  
  478. }
  479.  
  480. if(playertextid == Te_xT[playerid][Textdraw8])
  481. {
  482.  
  483. SendClientMessage(playerid, 0xFF0000FF, "(SERVER): Usted decidio Cerrar.");
  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 vehiculo le pertenece 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): Usted compro el vehiculo %s por $%d, USA: /salvarpos para salvalo.",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 vehiculo le pertenece 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, "/comprarvehiculo", true) == 0)
  585. {
  586. if(Te_xT[playerid][InText])
  587. return SendClientMessage(playerid, 0xFF0000FF, "Usted ya esta eligiendo un coche.");
  588.  
  589. if(!IsPlayerInRangeOfPoint(playerid, 2.0,2140.0034,-1176.8870,23.9922))
  590. return SendClientMessage(playerid, 0xFF0000FF, "Usted no esta en el lugar para comprar coches.");
  591.  
  592. if(GetPlayerMoney(playerid) < CUSTO_CARRO)
  593. return SendClientMessage(playerid, 0xFF0000FF, "Usted no tiene dinero 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): /comprarvehiculo [color1] [color2]");
  600. tmp = strtok2(cmdtext, idx);
  601. cor[1] = strval(tmp);
  602. if(!strval(tmp))
  603. return SendClientMessage(playerid, 0x00CC00FF, "(SERVER): /comprarvehiculo [color1] [color2]");
  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, "Usted no tiene que tener un auto.");
  622.  
  623. if(!IsPlayerInAnyVehicle(playerid) || GetPlayerVehicleID(playerid) != Te_xT[playerid][CarroDono])
  624. return SendClientMessage(playerid, 0xFF0000FF, "Usted no esta en su vehiculo.");
  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): Su coche estara seguro en este lugar apartir de ahora.");
  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