Advertisement
Guest User

Ultimate Vehicle Library

a guest
Feb 18th, 2011
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 22.32 KB | None | 0 0
  1. /**********************************
  2.  *   Ultimate Vehicle Library     *
  3.  *                                *
  4.  *   @Author:      Maddin         *
  5.  *   @Version:     1.0            *
  6.  *   @Released:    19/02/2011     *
  7.  *                                *
  8.  **********************************/
  9. #if defined _UVL_included
  10.     #endinput
  11. #endif
  12. #define _UVL_included
  13.  
  14. #pragma library UVL
  15.  
  16. #if !defined _samp_included
  17.     #error "Please include a_samp before UVL"
  18. #endif
  19.  
  20. #if !defined _vehicles_included
  21.     #error "Please include a_vehicles before UVL"
  22. #endif
  23. #define GODMODE_TIMER               (100)
  24. #define INVALID_VEHICLE_COLOR       (-999)
  25.  
  26. #define VEHICLE_PARAMS_ENGINE       (1)
  27. #define VEHICLE_PARAMS_LIGHTS       (2)
  28. #define VEHICLE_PARAMS_ALARM        (3)
  29. #define VEHICLE_PARAMS_DOORS        (4)
  30. #define VEHICLE_PARAMS_BONNET       (5)
  31. #define VEHICLE_PARAMS_BOOT         (6)
  32. #define VEHICLE_PARAMS_GODMODE      (7)
  33. //||===================================================================[Funktionen]======================================================================================================||
  34. forward CreateVehicleEx(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay = -1, paintjobid = 0, interiorid = 0, virtualworld = 0, nummernschild[] = "");
  35. forward DestroyVehicleEx(vehicleid);
  36. forward ResetVehicleStats(vehicleid); // !!! NICHT BENUTZEN !!!
  37. forward SetVehicleInterior(vehicleid, interiorid);
  38. forward SetVehicleToVirtualWorld(vehicleid, virtualworld);
  39. forward GetVehicleVirtualWorldEx(vehicleid);
  40. forward GetVehicleInteriorEx(vehicleid);
  41. forward GetVehiclePosEx(vehicleid, &Float:x, &Float:y, &Float:z);
  42. forward SetVehiclePosEx(vehicleid, Float:x, Float:y, Float:z);
  43. forward GetVehicleAngle(vehicleid, &Float:angle);
  44. forward SetVehicleAngle(vehicleid, Float:angle);
  45. forward SetvehicleArea(vehicleid, Float:x, Float:y, Float:z, Float:angle, interiorid, virtualworld);
  46. forward SetVehicleEngine(vehicleid, bool:status);
  47. forward GetVehicleEngine(vehicleid);
  48. forward SetVehicleLights(vehicleid, bool:status);
  49. forward GetVehicleLights(vehicleid);
  50. forward SetVehicleAlarm(vehicleid, bool:status, time);
  51. forward GetVehicleAlarm(vehicleid);
  52. forward SetVehicleDoors(vehicleid, bool:status);
  53. forward GetVehicleDoors(vehicleid);
  54. forward SetVehicleBonnet(vehicleid, bool:status);
  55. forward GetVehicleBonnet(vehicleid);
  56. forward SetVehicleBoot(vehicleid, bool:status);
  57. forward GetVehicleBoot(vehicleid);
  58. forward ChangeVehicleColorEx(vehicleid, color1, color2);
  59. forward GetVehicleColor(vehicleid, &color1, &color2);
  60. forward ChangeVehiclePaintjobEx(vehicleid, paintjobid);
  61. forward GetVehiclePaintJob(vehicleid);
  62. forward SetVehicleHealthEx(vehicleid, Float:health);
  63. forward GetVehicleHealthEx(vehicleid, &Float:health);
  64. forward Float:GetVehicleHealthEx2(vehicleid);
  65. forward RepairVehicleEx(vehicleid);
  66. forward GetFreeVehicleSeat(vehicleid);
  67. forward GetVehicleModelEx(vehicleid);
  68. forward SetVehicleNumberPlateEx(vehicleid, numberplate[]);
  69. forward GetVehicleNumberPlate(vehicleid, numberplate[]);
  70. forward SetVehicleGodMode(vehicleid, bool:status);
  71. forward IsVehicleInGodMode(vehicleid);
  72. forward GetVehicleNameByVehicleID(vehicleid);
  73. forward GetVehicleNameByModelID(modelid);
  74. forward SetVehicleToRespawnEx(vehicleid);
  75. forward IsVehicleDrivingBackwards(vehicleid);
  76. forward ReturnVehicleSpeed(vehicleid,type);
  77. forward GetRandomVehicle();
  78. //||===================================================================[CallBack]======================================================================================================||
  79. forward OnVehicleRespawn(vehicleid);
  80. forward OnVehicleChangeVirtualWorld(vehicleid,newvirtualworld,oldvirtualworld);
  81. forward OnVehicleChangeInterior(vehicleid,newinteriorid,oldinteriorid);
  82. forward OnVehicleChangeColor(vehicleid, oldcolor1, oldcolor2, newcolor1, newcolor2);
  83. forward OnVehicleChangePaintJob(vehicleid, oldpaintjob, newpaintjob);
  84. forward OnVehicleParamsChange(vehicleid, param_id, toggle, time);
  85. //||=========================================================================================================================================================================||
  86. enum VehicleData
  87. {
  88.     Float: VD_VEHICLE_FUEL,
  89.     Float: VD_VEHICLE_HEALTH,
  90.     VD_VEHICLE_MAXSPEED,
  91.     bool:VD_VEHICLE_MOTORHAUBE,
  92.     bool:VD_VEHICLE_KOFFERRAUM,
  93.     bool:VD_VEHICLE_LICHT,
  94.     bool:VD_VEHICLE_ENGINE,
  95.     bool:VD_VEHICLE_ALARM,
  96.     VD_VEHICLE_ALARM_TIMER,
  97.     bool:VD_VEHICLE_DOORS,
  98.     Float:VD_VEHICLE_POS_X,
  99.     Float:VD_VEHICLE_POS_Y,
  100.     Float:VD_VEHICLE_POS_Z,
  101.     Float:VD_VEHICLE_ANGLE,
  102.     VD_VEHICLE_MODELID,
  103.     VD_VEHICLE_COLOR1,
  104.     VD_VEHICLE_COLOR2,
  105.     VD_VEHICLE_RESPAWN_DELAY,
  106.     VD_VEHICLE_INTERIOR,
  107.     VD_VEHICLE_VIRTUAL_WORLD,
  108.     bool:VD_VEHICLE_EXISTIERT,
  109.     VD_VEHICLE_PAINTJOB,
  110.     VD_VEHICLE_NUMBERPLATE[32],
  111.     VD_VEHICLE_GODMODE_TIMER,
  112. }
  113. //||=========================================================================================================================================================================||
  114. new VehicleInfo[MAX_VEHICLES][VehicleData];
  115. //||=========================================================================================================================================================================||
  116. static const VehicleNames[][] =
  117. {
  118.    "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus","Voodoo","Pony","Mule","Cheetah",
  119.    "Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection","Hunter","Premier","Enforcer","Securicar","Banshee","Predator",
  120.    "Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie","Stallion","Rumpo","RC Bandit","Romero","Packer","Monster Truck A","Admiral","Squalo","Seasparrow",
  121.    "Pizzaboy","Tram","Trailer","Turismo","Speeder","Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron",
  122.    "RC Raider","Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR-350","Walton","Regina","Comet",
  123.    "BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood","Jetmax","Hotring","Sandking",
  124.    "Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer","Hotring Racer","Bloodring Banger","Rancher","Super GT","Elegant","Journey",
  125.    "Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain","Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000",
  126.    "Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck","Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak",
  127.    "Vortex","Vincent","Bullet","Clover","Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite",
  128.    "Windsor","Monster Truck B","Monster Truck C","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight",
  129.    "Trailer","Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer","Emperor",
  130.    "Wayfarer","Euros","Hotdog","Club","Trailer","Trailer","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)","Police Car (LVPD)",
  131.    "Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer","Luggage Trailer","Stair Trailer","Boxville","Farm Plow","Utility Trailer"
  132. };
  133. //||=========================================================================================================================================================================||
  134. //stock CreateVehicleEx(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay, paintjobid = 0, interiorid = 0, virtualworld = 0)
  135. stock CreateVehicleEx(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay = -1, paintjobid = 0, interiorid = 0, virtualworld = 0, nummernschild[] = "")
  136. {
  137.     if(modelid == 538 || modelid == 537 || modelid == 449)
  138.     {
  139.         new vehicleid = AddStaticVehicleEx(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay);
  140.         printf("[UVL] Model ID %d (%s) wird nicht von UVL unterstützt. AddStaticVehicleEx wurde benutzt!",modelid,GetVehicleNameByModelID(modelid));
  141.         #if defined _foreach_included
  142.             Iter_Add(Vehicle, vehicleid);
  143.         #endif
  144.         return vehicleid;
  145.     }
  146.     new vehicleid = CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay);
  147.    
  148.     VehicleInfo[vehicleid][VD_VEHICLE_FUEL]             = 100.00;
  149.     VehicleInfo[vehicleid][VD_VEHICLE_HEALTH]           = 1000.00;
  150.     VehicleInfo[vehicleid][VD_VEHICLE_MAXSPEED]         = 100;
  151.     VehicleInfo[vehicleid][VD_VEHICLE_MOTORHAUBE]       = false;
  152.     VehicleInfo[vehicleid][VD_VEHICLE_KOFFERRAUM]       = false;
  153.     VehicleInfo[vehicleid][VD_VEHICLE_LICHT]            = false;
  154.     VehicleInfo[vehicleid][VD_VEHICLE_ENGINE]           = false;
  155.     VehicleInfo[vehicleid][VD_VEHICLE_ALARM]            = false;
  156.     VehicleInfo[vehicleid][VD_VEHICLE_DOORS]            = false;
  157.     VehicleInfo[vehicleid][VD_VEHICLE_ALARM_TIMER]      = -1;
  158.     VehicleInfo[vehicleid][VD_VEHICLE_POS_X]            = x;
  159.     VehicleInfo[vehicleid][VD_VEHICLE_POS_Y]            = y;
  160.     VehicleInfo[vehicleid][VD_VEHICLE_POS_Z]            = z;
  161.     VehicleInfo[vehicleid][VD_VEHICLE_ANGLE]            = angle;
  162.     VehicleInfo[vehicleid][VD_VEHICLE_MODELID]          = modelid;
  163.     VehicleInfo[vehicleid][VD_VEHICLE_COLOR1]           = color1;
  164.     VehicleInfo[vehicleid][VD_VEHICLE_COLOR2]           = color2;
  165.     VehicleInfo[vehicleid][VD_VEHICLE_RESPAWN_DELAY]    = respawn_delay;
  166.     VehicleInfo[vehicleid][VD_VEHICLE_EXISTIERT]        = true;
  167.     VehicleInfo[vehicleid][VD_VEHICLE_INTERIOR]         = interiorid;
  168.     VehicleInfo[vehicleid][VD_VEHICLE_VIRTUAL_WORLD]    = virtualworld;
  169.     VehicleInfo[vehicleid][VD_VEHICLE_PAINTJOB]         = paintjobid;
  170.     strins(nummernschild, VehicleInfo[vehicleid][VD_VEHICLE_NUMBERPLATE], 0, 32);
  171.     VehicleInfo[vehicleid][VD_VEHICLE_GODMODE_TIMER]    = -1;
  172.     SetVehicleNumberPlateEx(vehicleid, nummernschild);
  173.     SetVehicleInterior(vehicleid, interiorid);
  174.     SetVehicleToVirtualWorld(vehicleid, virtualworld);
  175.     ChangeVehiclePaintjobEx(vehicleid, paintjobid);
  176.     #if defined _foreach_included
  177.         Iter_Add(Vehicle, vehicleid);
  178.     #endif
  179.     return vehicleid;
  180. }
  181. public OnVehicleDeath(vehicleid)
  182. {
  183.     VehicleInfo[vehicleid][VD_VEHICLE_HEALTH] = 0.00;
  184.     return 1;
  185. }
  186. stock GetVehicleNameByVehicleID(vehicleid)
  187. {
  188.     new name[32],modelid=GetVehicleModel(vehicleid)-400;
  189.     if(modelid<0 || modelid>=sizeof(VehicleNames))
  190.         format(name,sizeof(name),"Unbekannt");
  191.     else
  192.         format(name,sizeof(name),VehicleNames[modelid]);
  193.     return name;
  194. }
  195. stock GetVehicleNameByModelID(modelid)
  196. {
  197.     new name[32];
  198.     modelid -= 400;
  199.     if(modelid<0 || modelid>=sizeof(VehicleNames))
  200.         format(name,sizeof(name),"Unbekannt");
  201.     else
  202.         format(name,sizeof(name),VehicleNames[modelid]);
  203.     return name;
  204. }
  205. public SetVehicleToRespawnEx(vehicleid)
  206. {
  207.      SetVehicleToRespawn(vehicleid);
  208.      CallRemoteFunction("OnVehicleRespawn", "i", vehicleid);
  209. }
  210. public GetFreeVehicleSeat(vehicleid)
  211. {
  212.     new bool:Seat[4];
  213. #if defined _foreach_included
  214.     foreach(Player, i)
  215. #else
  216.     for(new i=0; i<MAX_PLAYERS,i++;)
  217. #endif
  218.     {
  219.         if(IsPlayerInVehicle(i,vehicleid))
  220.         {
  221.             if(GetPlayerVehicleSeat(i) == 0) Seat[0] = true;
  222.             else if(GetPlayerVehicleSeat(i) == 1) Seat[1] = true;
  223.             else if(GetPlayerVehicleSeat(i) == 2) Seat[2] = true;
  224.             else if(GetPlayerVehicleSeat(i) == 3) Seat[3] = true;
  225.         }
  226.     }
  227.     if(Seat[0] == false) return 0;
  228.     else if(Seat[1] == false) return 1;
  229.     else if(Seat[2] == false) return 2;
  230.     else if(Seat[3] == false) return 3;
  231.     else return -1;
  232. }
  233. public SetVehicleInterior(vehicleid, interiorid)
  234. {
  235.     CallRemoteFunction("OnVehicleChangeInterior", "iii", vehicleid,VehicleInfo[vehicleid][VD_VEHICLE_INTERIOR],interiorid);
  236.     VehicleInfo[vehicleid][VD_VEHICLE_INTERIOR] = interiorid;
  237.     LinkVehicleToInterior(vehicleid, interiorid);
  238.     return 1;
  239. }
  240. public SetVehicleToVirtualWorld(vehicleid, virtualworld)
  241. {
  242.     CallRemoteFunction("OnVehicleChangeVirtualWorld", "iii", vehicleid,VehicleInfo[vehicleid][VD_VEHICLE_VIRTUAL_WORLD],virtualworld);
  243.     VehicleInfo[vehicleid][VD_VEHICLE_VIRTUAL_WORLD] = virtualworld;
  244.     SetVehicleVirtualWorld(vehicleid, virtualworld);
  245.     return 1;
  246. }
  247. public IsVehicleDrivingBackwards(vehicleid)//credits to Joker
  248. {
  249.     new Float:Float[3];
  250.     if(GetVehicleVelocity(vehicleid, Float[1], Float[2], Float[0]))
  251.     {
  252.         GetVehicleZAngle(vehicleid, Float[0]);
  253.         if(Float[0] < 90)
  254.         {
  255.             if(Float[1] > 0 && Float[2] < 0) return true;
  256.         }
  257.         else if(Float[0] < 180)
  258.         {
  259.             if(Float[1] > 0 && Float[2] > 0) return true;
  260.         }
  261.         else if(Float[0] < 270)
  262.         {
  263.             if(Float[1] < 0 && Float[2] > 0) return true;
  264.         }
  265.         else if(Float[1] < 0 && Float[2] < 0) return true;
  266.     }
  267.     return false;
  268. }
  269. public ReturnVehicleSpeed(vehicleid,type)//credits to Luka P.
  270. {
  271.     new Float:memory[3]={0.00,0.00,0.00},result_speed=0;
  272.     GetVehicleVelocity(vehicleid,memory[0],memory[1],memory[2]);
  273.     switch(type)
  274.     {
  275.         case 1://kmh
  276.         {
  277.             result_speed=floatround(floatround(floatsqroot(((memory[0]*memory[0])+(memory[1]*memory[1]))+(memory[2]*memory[2]))*(136.666667),floatround_round)*(1.609344));
  278.         }
  279.         case 2://mph
  280.         {
  281.             result_speed=floatround(floatsqroot(((memory[0]*memory[0])+(memory[1]*memory[1]))+(memory[2]*memory[2]))*(136.666667),floatround_round);
  282.         }
  283.         default: return -1;
  284.     }
  285.     return result_speed;
  286. }
  287. public DestroyVehicleEx(vehicleid)
  288. {
  289.     DestroyVehicle(vehicleid);
  290.     ResetVehicleStats(vehicleid);
  291.     #if defined _foreach_included
  292.         Iter_Remove(Vehicle, vehicleid);
  293.     #endif
  294.     return 1;
  295. }
  296. public ResetVehicleStats(vehicleid)
  297. {
  298.     VehicleInfo[vehicleid][VD_VEHICLE_FUEL]             = -1;
  299.     VehicleInfo[vehicleid][VD_VEHICLE_HEALTH]           = -1;
  300.     VehicleInfo[vehicleid][VD_VEHICLE_MAXSPEED]         = -1;
  301.     VehicleInfo[vehicleid][VD_VEHICLE_MOTORHAUBE]       = false;
  302.     VehicleInfo[vehicleid][VD_VEHICLE_KOFFERRAUM]       = false;
  303.     VehicleInfo[vehicleid][VD_VEHICLE_LICHT]            = false;
  304.     VehicleInfo[vehicleid][VD_VEHICLE_ENGINE]           = false;
  305.     VehicleInfo[vehicleid][VD_VEHICLE_ALARM]            = false;
  306.     VehicleInfo[vehicleid][VD_VEHICLE_ALARM_TIMER]      = -1;
  307.     VehicleInfo[vehicleid][VD_VEHICLE_DOORS]            = false;
  308.     VehicleInfo[vehicleid][VD_VEHICLE_POS_X]            = -1;
  309.     VehicleInfo[vehicleid][VD_VEHICLE_POS_Y]            = -1;
  310.     VehicleInfo[vehicleid][VD_VEHICLE_POS_Z]            = -1;
  311.     VehicleInfo[vehicleid][VD_VEHICLE_ANGLE]            = -1;
  312.     VehicleInfo[vehicleid][VD_VEHICLE_MODELID]          = -1;
  313.     VehicleInfo[vehicleid][VD_VEHICLE_COLOR1]           = INVALID_VEHICLE_COLOR;
  314.     VehicleInfo[vehicleid][VD_VEHICLE_COLOR2]           = INVALID_VEHICLE_COLOR;
  315.     VehicleInfo[vehicleid][VD_VEHICLE_RESPAWN_DELAY]    = -1;
  316.     VehicleInfo[vehicleid][VD_VEHICLE_EXISTIERT]        = false;
  317.     VehicleInfo[vehicleid][VD_VEHICLE_INTERIOR]         = -1;
  318.     VehicleInfo[vehicleid][VD_VEHICLE_VIRTUAL_WORLD]    = -1;
  319.     VehicleInfo[vehicleid][VD_VEHICLE_PAINTJOB]         = 0;
  320.     strins("", VehicleInfo[vehicleid][VD_VEHICLE_NUMBERPLATE], 0, 32);
  321.     VehicleInfo[vehicleid][VD_VEHICLE_GODMODE_TIMER]    = -1;
  322.     return 1;
  323. }
  324. public GetVehicleVirtualWorldEx(vehicleid) return VehicleInfo[vehicleid][VD_VEHICLE_VIRTUAL_WORLD];
  325. public GetVehicleInteriorEx(vehicleid) return VehicleInfo[vehicleid][VD_VEHICLE_INTERIOR];
  326. public GetVehiclePosEx(vehicleid, &Float:x, &Float:y, &Float:z)
  327. {
  328.     GetVehiclePos(vehicleid, x, y, z);
  329.     VehicleInfo[vehicleid][VD_VEHICLE_POS_X] = x;
  330.     VehicleInfo[vehicleid][VD_VEHICLE_POS_Y] = y;
  331.     VehicleInfo[vehicleid][VD_VEHICLE_POS_Z] = z;
  332. }
  333. public SetVehiclePosEx(vehicleid, Float:x, Float:y, Float:z)
  334. {
  335.     SetVehiclePos(vehicleid, x, y, z);
  336.     VehicleInfo[vehicleid][VD_VEHICLE_POS_X] = x;
  337.     VehicleInfo[vehicleid][VD_VEHICLE_POS_Y] = y;
  338.     VehicleInfo[vehicleid][VD_VEHICLE_POS_Z] = z;
  339. }
  340. public GetVehicleAngle(vehicleid, &Float:angle)
  341. {
  342.     GetVehicleZAngle(vehicleid, angle);
  343.     VehicleInfo[vehicleid][VD_VEHICLE_ANGLE] = angle;
  344. }
  345. public SetVehicleAngle(vehicleid, Float:angle)
  346. {
  347.     SetVehicleZAngle(vehicleid, angle);
  348.     VehicleInfo[vehicleid][VD_VEHICLE_ANGLE] = angle;
  349. }
  350. public SetvehicleArea(vehicleid, Float:x, Float:y, Float:z, Float:angle, interiorid, virtualworld)
  351. {
  352.     SetVehiclePosEx(vehicleid, x, y, z);
  353.     SetVehicleAngle(vehicleid, angle);
  354.     SetVehicleInterior(vehicleid, interiorid);
  355.     SetVehicleToVirtualWorld(vehicleid, virtualworld);
  356.     VehicleInfo[vehicleid][VD_VEHICLE_POS_X]            = x;
  357.     VehicleInfo[vehicleid][VD_VEHICLE_POS_Y]            = y;
  358.     VehicleInfo[vehicleid][VD_VEHICLE_POS_Z]            = z;
  359.     VehicleInfo[vehicleid][VD_VEHICLE_ANGLE]            = angle;
  360.     VehicleInfo[vehicleid][VD_VEHICLE_INTERIOR]         = interiorid;
  361.     VehicleInfo[vehicleid][VD_VEHICLE_VIRTUAL_WORLD]    = virtualworld;
  362. }
  363. public SetVehicleEngine(vehicleid, bool:status)
  364. {
  365.     new engine, lights, alarm, doors, bonnet, boot, objective;
  366.     GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  367.     SetVehicleParamsEx(vehicleid, status, lights, alarm, doors, bonnet, boot, objective);
  368.     VehicleInfo[vehicleid][VD_VEHICLE_ENGINE] = status;
  369.     CallRemoteFunction("OnVehicleParamsChange", "iibi", vehicleid, VEHICLE_PARAMS_ENGINE, status, -1);
  370. }
  371. public GetVehicleEngine(vehicleid) return VehicleInfo[vehicleid][VD_VEHICLE_ENGINE];
  372. public SetVehicleLights(vehicleid, bool:status)
  373. {
  374.     new engine, lights, alarm, doors, bonnet, boot, objective;
  375.     GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  376.     SetVehicleParamsEx(vehicleid, engine, status, alarm, doors, bonnet, boot, objective);
  377.     VehicleInfo[vehicleid][VD_VEHICLE_LICHT] = status;
  378.     CallRemoteFunction("OnVehicleParamsChange", "iibi", vehicleid, VEHICLE_PARAMS_LIGHTS, status, -1);
  379. }
  380. public GetVehicleLights(vehicleid) return VehicleInfo[vehicleid][VD_VEHICLE_LICHT];
  381. public SetVehicleAlarm(vehicleid, bool:status, time)
  382. {
  383.     VehicleInfo[vehicleid][VD_VEHICLE_ALARM] = status;
  384.     if(status)
  385.     {
  386.         KillTimer(VehicleInfo[vehicleid][VD_VEHICLE_ALARM_TIMER]);
  387.         VehicleInfo[vehicleid][VD_VEHICLE_ALARM_TIMER] = SetTimerEx("SetVehicleAlarm", time, false, "dbd", vehicleid,false,time);
  388.     }
  389.     else
  390.     {
  391.         KillTimer(VehicleInfo[vehicleid][VD_VEHICLE_ALARM_TIMER]);
  392.         VehicleInfo[vehicleid][VD_VEHICLE_ALARM_TIMER] = -1;
  393.     }
  394.     CallRemoteFunction("OnVehicleParamsChange", "iibi", vehicleid, VEHICLE_PARAMS_ALARM, status, time);
  395. }
  396. public GetVehicleAlarm(vehicleid) return VehicleInfo[vehicleid][VD_VEHICLE_ALARM];
  397.  
  398. public SetVehicleGodMode(vehicleid, bool:status)
  399. {
  400.     if(status)
  401.     {
  402.         KillTimer(VehicleInfo[vehicleid][VD_VEHICLE_GODMODE_TIMER]);
  403.         VehicleInfo[vehicleid][VD_VEHICLE_GODMODE_TIMER] = SetTimerEx("RepairVehicleEx", GODMODE_TIMER, true, "d", vehicleid);
  404.     }
  405.     else
  406.     {
  407.         KillTimer(VehicleInfo[vehicleid][VD_VEHICLE_GODMODE_TIMER]);
  408.         VehicleInfo[vehicleid][VD_VEHICLE_GODMODE_TIMER] = -1;
  409.     }
  410.     CallRemoteFunction("OnVehicleParamsChange", "iibi", vehicleid, VEHICLE_PARAMS_GODMODE, status, -1);
  411. }
  412. public IsVehicleInGodMode(vehicleid)
  413. {
  414.     if(VehicleInfo[vehicleid][VD_VEHICLE_GODMODE_TIMER]==-1) return 0;
  415.     else return 1;
  416. }
  417. public SetVehicleDoors(vehicleid, bool:status)
  418. {
  419.     new engine, lights, alarm, doors, bonnet, boot, objective;
  420.     GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  421.     SetVehicleParamsEx(vehicleid, engine, lights, alarm, status, bonnet, boot, objective);
  422.     VehicleInfo[vehicleid][VD_VEHICLE_DOORS] = status;
  423.     CallRemoteFunction("OnVehicleParamsChange", "iibi", vehicleid, VEHICLE_PARAMS_DOORS, status, -1);
  424. }
  425. public GetVehicleDoors(vehicleid) return VehicleInfo[vehicleid][VD_VEHICLE_DOORS];
  426. public SetVehicleBonnet(vehicleid, bool:status)
  427. {
  428.     new engine, lights, alarm, doors, bonnet, boot, objective;
  429.     GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  430.     SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, status, boot, objective);
  431.     VehicleInfo[vehicleid][VD_VEHICLE_MOTORHAUBE] = status;
  432.     CallRemoteFunction("OnVehicleParamsChange", "iibi", vehicleid, VEHICLE_PARAMS_BONNET, status, -1);
  433. }
  434. public GetVehicleBonnet(vehicleid) return VehicleInfo[vehicleid][VD_VEHICLE_MOTORHAUBE];
  435. public SetVehicleBoot(vehicleid, bool:status)
  436. {
  437.     new engine, lights, alarm, doors, bonnet, boot, objective;
  438.     GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  439.     SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, status, objective);
  440.     VehicleInfo[vehicleid][VD_VEHICLE_MOTORHAUBE] = status;
  441.     CallRemoteFunction("OnVehicleParamsChange", "iibi", vehicleid, VEHICLE_PARAMS_BOOT, status, -1);
  442. }
  443. public GetVehicleBoot(vehicleid) return VehicleInfo[vehicleid][VD_VEHICLE_KOFFERRAUM];
  444. public ChangeVehicleColorEx(vehicleid, color1, color2)
  445. {
  446.     CallRemoteFunction("OnVehicleChangeColor", "iiiii", vehicleid, VehicleInfo[vehicleid][VD_VEHICLE_COLOR1], VehicleInfo[vehicleid][VD_VEHICLE_COLOR2], color1, color2);
  447.     ChangeVehicleColor(vehicleid, color1, color2);
  448.     VehicleInfo[vehicleid][VD_VEHICLE_COLOR1] = color1;
  449.     VehicleInfo[vehicleid][VD_VEHICLE_COLOR2] = color2;
  450. }
  451. public GetVehicleColor(vehicleid, &color1, &color2)
  452. {
  453.     color1 = VehicleInfo[vehicleid][VD_VEHICLE_COLOR1];
  454.     color2 = VehicleInfo[vehicleid][VD_VEHICLE_COLOR2];
  455. }
  456. public ChangeVehiclePaintjobEx(vehicleid, paintjobid)
  457. {
  458.     CallRemoteFunction("OnVehicleChangePaintJob", "iii", vehicleid, VehicleInfo[vehicleid][VD_VEHICLE_PAINTJOB], paintjobid);
  459.     VehicleInfo[vehicleid][VD_VEHICLE_PAINTJOB] = paintjobid;
  460.     ChangeVehiclePaintjob(vehicleid, paintjobid);
  461. }
  462. public GetVehiclePaintJob(vehicleid) return VehicleInfo[vehicleid][VD_VEHICLE_PAINTJOB];
  463. public SetVehicleHealthEx(vehicleid, Float:health)
  464. {
  465.     VehicleInfo[vehicleid][VD_VEHICLE_HEALTH] = health;
  466.     SetVehicleHealth(vehicleid, health);
  467. }
  468. public GetVehicleHealthEx(vehicleid, &Float:health)
  469. {
  470.     GetVehicleHealthEx(vehicleid, health);
  471.     VehicleInfo[vehicleid][VD_VEHICLE_HEALTH] = health;
  472. }
  473. public RepairVehicleEx(vehicleid)
  474. {
  475.     VehicleInfo[vehicleid][VD_VEHICLE_HEALTH] = 1000.0;
  476.     RepairVehicle(vehicleid);
  477. }
  478. public Float:GetVehicleHealthEx2(vehicleid)
  479. {
  480.     new Float:health;
  481.     GetVehicleHealthEx(vehicleid, health);
  482.     VehicleInfo[vehicleid][VD_VEHICLE_HEALTH] = health;
  483.     return health;
  484. }
  485. public SetVehicleNumberPlateEx(vehicleid, numberplate[])
  486. {
  487.     SetVehicleNumberPlate(vehicleid, numberplate);
  488.     format(VehicleInfo[vehicleid][VD_VEHICLE_NUMBERPLATE],32,"%s",numberplate);
  489. }
  490. public GetVehicleNumberPlate(vehicleid, numberplate[])
  491. {
  492.     strins(numberplate, VehicleInfo[vehicleid][VD_VEHICLE_NUMBERPLATE], 0, 32);
  493. }
  494. public GetVehicleModelEx(vehicleid)
  495. {
  496.     new modelid = GetVehicleModel(vehicleid);
  497.     VehicleInfo[vehicleid][VD_VEHICLE_MODELID] = modelid;
  498.     return modelid;
  499. }
  500. public GetRandomVehicle()
  501. {
  502. #if defined _foreach_included
  503.     return Iter_Random(Vehicle);
  504. #else
  505.     return random(MAX_VEHICLES);
  506. #endif
  507. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement