new stock g_arrVehicleNames[][] = { "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic", "Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick", "Boxville", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune", "Cadrona", "SWAT Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Streak", "Freight", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club", "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "LSPD Car", "SFPD Car", "LVPD Car", "Police Rancher", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville", "Tiller", "Utility Trailer" }; stock GetVehicleName(vehicleid) { new string[24]; format(string, sizeof(string), "%s", g_arrVehicleNames[GetVehicleModel(vehicleid) - 400]); return string; } Float:GetVehicleSpeed(vehicleid) { new Float:vel_x, Float:vel_y, Float:vel_z; GetVehicleVelocity(vehicleid, vel_x, vel_y, vel_z); return VectorSize(vel_x, vel_y, vel_z) * 100.8617875; } stock GetVehicleBootPos(vehicleid, &Float:x, &Float:y, &Float:z) { new Float:angle, Float:distance; if(0 == GetVehicleZAngle(vehicleid, angle)) return _:(x = y = z = 0.0); // return 0 GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZE, x, distance, z); distance = floatadd(floatdiv(distance, 2.0), 0.1); GetVehiclePos(vehicleid, x, y, z); x = floatadd(x, floatmul(distance, floatsin(floatadd(-angle, 180.0), degrees))); y = floatadd(y, floatmul(distance, floatcos(floatadd(-angle, 180.0), degrees))); return 1; } stock IsPlayerNearBoot(playerid, vehicleid) { new Float:bX, Float:bY, Float:bZ; GetVehicleBootPos(vehicleid, bX, bY, bZ); if(IsPlayerInRangeOfPoint(playerid, 3.0, bX, bY, bZ) && GetPlayerVirtualWorld(playerid) == GetVehicleVirtualWorld(vehicleid)) { return true; } return false; } stock IsWindowedVehicle(vehicleid) { static const WindowStatus[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0 }; new modelid = GetVehicleModel(vehicleid); if(modelid < 400 || modelid > 611) return 0; return (WindowStatus[modelid - 400]); } stock IsDoorVehicle(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 400..424, 426..429, 431..440, 442..445, 451, 455, 456, 458, 459, 466, 467, 470, 474, 475: return 1; case 477..480, 482, 483, 486, 489, 490..492, 494..496, 498..500, 502..508, 514..518, 524..529, 533..536: return 1; case 540..547, 549..552, 554..562, 565..568, 573, 575, 576, 578..580, 582, 585, 587..589, 596..605, 609: return 1; } return 0; } stock IsLoadableVehicle(vehicleid) { new modelid = GetVehicleModel(vehicleid); if(GetVehicleTrailer(vehicleid)) modelid = GetVehicleModel(GetVehicleTrailer(vehicleid)); switch(modelid) { case 609, 403, 414, 456, 498, 499, 514, 515, 435, 591, 413, 422: return 1; } return 0; } stock IsABoat(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 430, 446, 452, 453, 454, 472, 473, 484, 493, 595: return 1; } return 0; } stock IsABike(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 448, 461..463, 468, 521..523, 581, 586: return 1; } return 0; } stock IsAPlane(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 460, 464, 476, 511, 2, 513, 519, 520, 553, 577, 592, 593: return 1; } return 0; } stock IsAHelicopter(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 417, 425, 447, 465, 469, 487, 488, 497, 501, 548, 563: return 1; } return 0; } stock IsAVan(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 400, 404, 408, 413, 418, 421, 423, 440, 422, 455, 456, 458, 459, 470, 479, 482: return 1; case 483, 489, 490, 498, 499, 505, 508, 554, 561, 579, 609: return 1; } return 0; } stock IsEngineVehicle(vehicleid) { static const EngineStatus[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0 }; new modelid = GetVehicleModel(vehicleid); if(modelid < 400 || modelid > 611) { return 0; } return (EngineStatus[modelid - 400]); }