utils.inc 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. new stock g_arrVehicleNames[][] =
  2. {
  3. "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster",
  4. "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam",
  5. "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer",
  6. "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach",
  7. "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo", "Seasparrow",
  8. "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair",
  9. "Berkley RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic",
  10. "Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton",
  11. "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher",
  12. "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick",
  13. "Boxville", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher",
  14. "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain",
  15. "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck",
  16. "Fortune", "Cadrona", "SWAT Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan",
  17. "Blade", "Streak", "Freight", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder",
  18. "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster",
  19. "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito",
  20. "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30",
  21. "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club",
  22. "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "LSPD Car", "SFPD Car", "LVPD Car",
  23. "Police Rancher", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs",
  24. "Boxville", "Tiller", "Utility Trailer"
  25. };
  26. stock GetVehicleName(vehicleid)
  27. {
  28. new string[24];
  29. format(string, sizeof(string), "%s", g_arrVehicleNames[GetVehicleModel(vehicleid) - 400]);
  30. return string;
  31. }
  32. Float:GetVehicleSpeed(vehicleid)
  33. {
  34. new Float:vel_x, Float:vel_y, Float:vel_z;
  35. GetVehicleVelocity(vehicleid, vel_x, vel_y, vel_z);
  36. return VectorSize(vel_x, vel_y, vel_z) * 100.8617875;
  37. }
  38. stock GetVehicleBootPos(vehicleid, &Float:x, &Float:y, &Float:z)
  39. {
  40. new Float:angle, Float:distance;
  41. if(0 == GetVehicleZAngle(vehicleid, angle)) return _:(x = y = z = 0.0); // return 0
  42. GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZE, x, distance, z);
  43. distance = floatadd(floatdiv(distance, 2.0), 0.1);
  44. GetVehiclePos(vehicleid, x, y, z);
  45. x = floatadd(x, floatmul(distance, floatsin(floatadd(-angle, 180.0), degrees)));
  46. y = floatadd(y, floatmul(distance, floatcos(floatadd(-angle, 180.0), degrees)));
  47. return 1;
  48. }
  49. stock IsPlayerNearBoot(playerid, vehicleid)
  50. {
  51. new Float:bX, Float:bY, Float:bZ;
  52. GetVehicleBootPos(vehicleid, bX, bY, bZ);
  53. if(IsPlayerInRangeOfPoint(playerid, 3.0, bX, bY, bZ) && GetPlayerVirtualWorld(playerid) == GetVehicleVirtualWorld(vehicleid))
  54. {
  55. return true;
  56. }
  57. return false;
  58. }
  59. stock IsWindowedVehicle(vehicleid)
  60. {
  61. static const WindowStatus[] =
  62. {
  63. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  64. 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1,
  65. 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1,
  66. 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1,
  67. 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,
  68. 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  69. 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0,
  70. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  71. 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1,
  72. 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1,
  73. 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0
  74. };
  75. new modelid = GetVehicleModel(vehicleid);
  76. if(modelid < 400 || modelid > 611) return 0;
  77. return (WindowStatus[modelid - 400]);
  78. }
  79. stock IsDoorVehicle(vehicleid)
  80. {
  81. switch(GetVehicleModel(vehicleid))
  82. {
  83. case 400..424, 426..429, 431..440, 442..445, 451, 455, 456, 458, 459, 466, 467, 470, 474, 475: return 1;
  84. case 477..480, 482, 483, 486, 489, 490..492, 494..496, 498..500, 502..508, 514..518, 524..529, 533..536: return 1;
  85. case 540..547, 549..552, 554..562, 565..568, 573, 575, 576, 578..580, 582, 585, 587..589, 596..605, 609: return 1;
  86. }
  87. return 0;
  88. }
  89. stock IsLoadableVehicle(vehicleid)
  90. {
  91. new modelid = GetVehicleModel(vehicleid);
  92. if(GetVehicleTrailer(vehicleid)) modelid = GetVehicleModel(GetVehicleTrailer(vehicleid));
  93. switch(modelid)
  94. {
  95. case 609, 403, 414, 456, 498, 499, 514, 515, 435, 591, 413, 422: return 1;
  96. }
  97. return 0;
  98. }
  99. stock IsABoat(vehicleid)
  100. {
  101. switch(GetVehicleModel(vehicleid))
  102. {
  103. case 430, 446, 452, 453, 454, 472, 473, 484, 493, 595: return 1;
  104. }
  105. return 0;
  106. }
  107. stock IsABike(vehicleid)
  108. {
  109. switch(GetVehicleModel(vehicleid))
  110. {
  111. case 448, 461..463, 468, 521..523, 581, 586: return 1;
  112. }
  113. return 0;
  114. }
  115. stock IsAPlane(vehicleid)
  116. {
  117. switch(GetVehicleModel(vehicleid))
  118. {
  119. case 460, 464, 476, 511, 2, 513, 519, 520, 553, 577, 592, 593: return 1;
  120. }
  121. return 0;
  122. }
  123. stock IsAHelicopter(vehicleid)
  124. {
  125. switch(GetVehicleModel(vehicleid))
  126. {
  127. case 417, 425, 447, 465, 469, 487, 488, 497, 501, 548, 563: return 1;
  128. }
  129. return 0;
  130. }
  131. stock IsAVan(vehicleid)
  132. {
  133. switch(GetVehicleModel(vehicleid))
  134. {
  135. case 400, 404, 408, 413, 418, 421, 423, 440, 422, 455, 456, 458, 459, 470, 479, 482: return 1;
  136. case 483, 489, 490, 498, 499, 505, 508, 554, 561, 579, 609: return 1;
  137. }
  138. return 0;
  139. }
  140. stock IsEngineVehicle(vehicleid)
  141. {
  142. static const EngineStatus[] =
  143. {
  144. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  145. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
  146. 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  147. 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  148. 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  149. 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  150. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1,
  151. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  152. 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  153. 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1,
  154. 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0
  155. };
  156. new modelid = GetVehicleModel(vehicleid);
  157. if(modelid < 400 || modelid > 611)
  158. {
  159. return 0;
  160. }
  161. return (EngineStatus[modelid - 400]);
  162. }