Advertisement
Guest User

Untitled

a guest
Mar 21st, 2016
1,128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 31.95 KB | None | 0 0
  1. /*
  2. Extended vehicle functions by Emmet_
  3.  
  4. Thanks to:
  5.  
  6. - [uL]Pottus -> GetVehicleTopSpeed idea
  7. - kvann -> SetVehicleInterior idea
  8. - Hanger -> Top speed data
  9. */
  10.  
  11. #if !defined INVALID_SEAT_ID
  12. #define INVALID_SEAT_ID -1
  13. #endif
  14.  
  15. #if !defined INVALID_PAINTJOB_ID
  16. #define INVALID_PAINTJOB_ID -1
  17. #endif
  18.  
  19. #define GetVehicleSeats(%0) \
  20. (GetVehicleModelSeats(GetVehicleModel(%0)))
  21.  
  22. #define SetVehicleInterior(%0) \
  23. (LinkVehicleToInterior(%0))
  24.  
  25. #define GetVehicleBoot(%0,%1,%2,%3) \
  26. (GetVehicleOffset((%0), VEHICLE_OFFSET_BOOT, %1, %2, %3))
  27.  
  28. #define GetVehicleHood(%0,%1,%2,%3) \
  29. (GetVehicleOffset((%0), VEHICLE_OFFSET_HOOD, %1, %2, %3))
  30.  
  31. #define GetVehicleRoof(%0,%1,%2,%3) \
  32. (GetVehicleOffset((%0), VEHICLE_OFFSET_ROOF, %1, %2, %3))
  33.  
  34. enum e_VehicleProperties {
  35. e_VEHICLE_INTERIOR,
  36. e_VEHICLE_PAINTJOB,
  37. e_VEHICLE_COLOR_1,
  38. e_VEHICLE_COLOR_2
  39. };
  40.  
  41. static s_VehicleTrailerID[MAX_VEHICLES];
  42.  
  43. // Called when a vehicle is created.
  44. forward OnVehicleCreated(vehicleid);
  45. // Called when a vehicle is deleted.
  46. forward OnVehicleDestroyed(vehicleid);
  47. // Called when a trailer is hooked.
  48. forward OnTrailerHooked(playerid, vehicleid, trailerid);
  49. // Called when a trailer is unhooked.
  50. forward OnTrailerUnhooked(playerid, vehicleid, trailerid);
  51. // Called when a player shoots at a vehicle.
  52. forward OnPlayerShootVehicle(playerid, vehicleid, weaponid);
  53.  
  54. enum e_ParamTypes {
  55. VEHICLE_TYPE_ENGINE,
  56. VEHICLE_TYPE_LIGHTS,
  57. VEHICLE_TYPE_ALARM,
  58. VEHICLE_TYPE_DOORS,
  59. VEHICLE_TYPE_BONNET,
  60. VEHICLE_TYPE_BOOT,
  61. VEHICLE_TYPE_OBJECTIVE
  62. };
  63.  
  64. enum e_OffsetTypes {
  65. VEHICLE_OFFSET_BOOT,
  66. VEHICLE_OFFSET_HOOD,
  67. VEHICLE_OFFSET_ROOF
  68. };
  69.  
  70. #if !defined IsValidVehicle
  71. native IsValidVehicle(vehicleid);
  72. #endif
  73.  
  74. static const s_TopSpeed[212] = {
  75. 157, 147, 186, 110, 133, 164, 110, 148, 100, 158, 129, 221, 168, 110, 105, 192, 154, 270,
  76. 115, 149, 145, 154, 140, 99, 135, 270, 173, 165, 157, 201, 190, 130, 94, 110, 167, 0, 149,
  77. 158, 142, 168, 136, 145, 139, 126, 110, 164, 270, 270, 111, 0, 0, 193, 270, 60, 135, 157,
  78. 106, 95, 157, 136, 270, 160, 111, 142, 145, 145, 147, 140, 144, 270, 157, 110, 190, 190,
  79. 149, 173, 270, 186, 117, 140, 184, 73, 156, 122, 190, 99, 64, 270, 270, 139, 157, 149, 140,
  80. 270, 214, 176, 162, 270, 108, 123, 140, 145, 216, 216, 173, 140, 179, 166, 108, 79, 101, 270,
  81. 270, 270, 120, 142, 157, 157, 164, 270, 270, 160, 176, 151, 130, 160, 158, 149, 176, 149, 60,
  82. 70, 110, 167, 168, 158, 173, 0, 0, 270, 149, 203, 164, 151, 150, 147, 149, 142, 270, 153, 145,
  83. 157, 121, 270, 144, 158, 113, 113, 156, 178, 169, 154, 178, 270, 145, 165, 160, 173, 146, 0, 0,
  84. 93, 60, 110, 60, 158, 158, 270, 130, 158, 153, 151, 136, 85, 0, 153, 142, 165, 108, 162, 0, 0,
  85. 270, 270, 130, 190, 175, 175, 175, 158, 151, 110, 169, 171, 148, 152, 0, 0, 0, 108, 0, 0
  86. };
  87.  
  88. static const s_CarColors[][] = {
  89. {16, 004, 001, 123, 001, 113, 001, 101, 001, 075, 001, 062, 001, 040, 001, 036, 001},
  90. {16, 041, 041, 047, 047, 052, 052, 066, 066, 074, 074, 087, 087, 091, 091, 113, 113},
  91. {16, 010, 010, 013, 013, 022, 022, 030, 030, 039, 039, 090, 090, 098, 098, 110, 110},
  92. {16, 036, 001, 037, 001, 030, 001, 028, 001, 025, 001, 040, 001, 101, 001, 113, 001},
  93. {16, 113, 039, 119, 050, 123, 092, 109, 100, 101, 101, 095, 105, 083, 110, 066, 025},
  94. {16, 011, 001, 024, 001, 036, 001, 040, 001, 075, 001, 091, 001, 123, 001, 004, 001},
  95. {2, 001, 001},
  96. {2, 003, 001},
  97. {2, 026, 026},
  98. {2, 001, 001},
  99. {16, 004, 001, 009, 001, 010, 001, 025, 001, 036, 001, 040, 001, 045, 001, 084, 001},
  100. {16, 012, 001, 064, 001, 123, 001, 116, 001, 112, 001, 106, 001, 080, 001, 075, 001},
  101. {16, 009, 001, 010, 008, 011, 001, 025, 008, 027, 001, 029, 008, 030, 001, 037, 008},
  102. {16, 087, 001, 088, 001, 091, 001, 105, 001, 109, 001, 119, 001, 004, 001, 025, 001},
  103. {16, 025, 001, 028, 001, 043, 001, 067, 001, 072, 001, 009, 001, 095, 001, 024, 001},
  104. {16, 020, 001, 025, 001, 036, 001, 040, 001, 062, 001, 075, 001, 092, 001, 000, 001},
  105. {2, 001, 003},
  106. {0, 000, 000},
  107. {16, 119, 119, 117, 227, 114, 114, 108, 108, 095, 095, 081, 081, 061, 061, 041, 041},
  108. {16, 045, 075, 047, 076, 033, 075, 013, 076, 054, 075, 069, 076, 059, 075, 087, 076},
  109. {2, 006, 001},
  110. {16, 004, 001, 013, 001, 025, 001, 030, 001, 036, 001, 040, 001, 075, 001, 095, 001},
  111. {14, 096, 025, 097, 025, 101, 025, 111, 031, 113, 036, 083, 057, 067, 059},
  112. {12, 001, 016, 001, 056, 001, 017, 001, 053, 001, 005, 001, 035},
  113. {16, 001, 000, 002, 002, 003, 002, 003, 006, 006, 016, 015, 030, 024, 053, 035, 061},
  114. {2, 043, 000},
  115. {16, 037, 037, 042, 042, 053, 053, 062, 062, 007, 007, 010, 010, 011, 011, 015, 015},
  116. {2, 000, 001},
  117. {2, 004, 075},
  118. {16, 012, 012, 013, 013, 014, 014, 001, 002, 002, 001, 001, 003, 003, 001, 010, 010},
  119. {2, 046, 026},
  120. {16, 071, 059, 075, 059, 092, 072, 047, 074, 055, 083, 059, 083, 071, 087, 082, 087},
  121. {2, 043, 000},
  122. {2, 043, 000},
  123. {14, 001, 001, 012, 012, 002, 002, 006, 006, 004, 004, 046, 046, 053, 053},
  124. {2, 001, 001},
  125. {14, 083, 001, 087, 001, 092, 001, 095, 001, 109, 001, 119, 045, 011, 001},
  126. {16, 054, 007, 079, 007, 087, 007, 095, 016, 098, 020, 105, 020, 123, 020, 125, 021},
  127. {2, 006, 076},
  128. {16, 057, 008, 008, 017, 043, 021, 054, 038, 067, 008, 037, 078, 065, 079, 025, 078},
  129. {16, 034, 034, 032, 032, 020, 020, 110, 110, 066, 066, 084, 084, 118, 118, 121, 121},
  130. {16, 002, 096, 079, 042, 082, 054, 067, 086, 126, 096, 070, 096, 110, 054, 067, 098},
  131. {16, 000, 000, 011, 105, 025, 109, 036, 000, 040, 036, 075, 036, 000, 036, 000, 109},
  132. {16, 004, 001, 020, 001, 024, 001, 025, 001, 036, 001, 040, 001, 054, 001, 084, 001},
  133. {12, 032, 036, 032, 042, 032, 053, 032, 066, 032, 014, 032, 032},
  134. {16, 034, 034, 035, 035, 037, 037, 039, 039, 041, 041, 043, 043, 045, 045, 047, 047},
  135. {32, 000, 000, 000, 001, 001, 005, 001, 001, 003, 003, 000, 001, 001, 022, 001, 001, 001, 035, 001, 001, 001, 044, 001, 001, 001, 053, 001, 001, 001, 057, 001, 001},
  136. {2, 075, 002},
  137. {2, 001, 003},
  138. {2, 001, 074},
  139. {2, 001, 001},
  140. {16, 123, 123, 125, 125, 036, 036, 016, 016, 018, 018, 046, 046, 061, 061, 075, 075},
  141. {16, 001, 003, 001, 005, 001, 016, 001, 022, 001, 035, 001, 044, 001, 053, 001, 057},
  142. {2, 056, 056},
  143. {2, 026, 026},
  144. {16, 084, 015, 084, 058, 084, 031, 032, 074, 043, 031, 001, 031, 077, 031, 032, 074},
  145. {16, 084, 063, 091, 063, 102, 065, 105, 072, 110, 093, 121, 093, 012, 095, 023, 001},
  146. {16, 058, 001, 002, 001, 063, 001, 018, 001, 032, 001, 045, 001, 013, 001, 034, 001},
  147. {16, 091, 001, 101, 001, 109, 001, 113, 001, 004, 001, 025, 001, 030, 001, 036, 001},
  148. {16, 026, 026, 028, 028, 044, 044, 051, 051, 057, 057, 072, 072, 106, 106, 112, 112},
  149. {16, 001, 003, 001, 009, 001, 018, 001, 030, 017, 023, 046, 023, 046, 032, 057, 034},
  150. {16, 036, 001, 037, 001, 043, 001, 053, 001, 061, 001, 075, 001, 079, 001, 088, 001},
  151. {16, 012, 012, 013, 013, 014, 014, 001, 002, 002, 001, 001, 003, 003, 001, 010, 010},
  152. {16, 079, 079, 084, 084, 007, 007, 011, 011, 019, 019, 022, 022, 036, 036, 053, 053},
  153. {2, 014, 075},
  154. {2, 014, 075},
  155. {16, 067, 076, 068, 076, 078, 076, 002, 076, 016, 076, 018, 076, 025, 076, 045, 088},
  156. {16, 051, 001, 058, 008, 060, 001, 068, 008, 002, 001, 013, 008, 022, 001, 036, 008},
  157. {8, 006, 006, 046, 046, 053, 053, 003, 003},
  158. {0, 000, 000},
  159. {2, 043, 000},
  160. {16, 120, 117, 103, 111, 120, 114, 074, 091, 120, 112, 074, 083, 120, 113, 066, 071},
  161. {4, 056, 015, 056, 053},
  162. {4, 056, 015, 056, 053},
  163. {16, 097, 001, 081, 001, 105, 001, 110, 001, 091, 001, 074, 001, 084, 001, 083, 001},
  164. {16, 002, 039, 009, 039, 017, 001, 021, 001, 033, 000, 037, 000, 041, 029, 056, 029},
  165. {16, 006, 007, 007, 006, 001, 006, 089, 091, 119, 117, 103, 102, 077, 087, 071, 077},
  166. {16, 092, 001, 094, 001, 101, 001, 121, 001, 000, 001, 022, 001, 036, 001, 075, 001},
  167. {16, 072, 001, 066, 001, 059, 001, 045, 001, 040, 001, 039, 001, 035, 001, 020, 001},
  168. {16, 027, 036, 059, 036, 060, 035, 055, 041, 054, 031, 049, 023, 045, 032, 040, 029},
  169. {14, 073, 045, 012, 012, 002, 002, 006, 006, 004, 004, 046, 046, 053, 053},
  170. {16, 001, 001, 003, 003, 006, 006, 046, 046, 065, 009, 014, 001, 012, 009, 026, 001},
  171. {16, 041, 041, 048, 048, 052, 052, 064, 064, 071, 071, 085, 085, 010, 010, 062, 062},
  172. {32, 001, 031, 001, 000, 001, 031, 001, 000, 001, 020, 003, 000, 001, 005, 000, 000, 000, 006, 003, 000, 003, 006, 003, 000, 016, 000, 008, 000, 017, 000, 120, 000},
  173. {8, 012, 035, 050, 032, 040, 026, 066, 036},
  174. {14, 001, 073, 001, 074, 001, 075, 001, 076, 001, 077, 001, 078, 001, 079},
  175. {2, 001, 001},
  176. {16, 026, 014, 029, 042, 026, 057, 054, 029, 026, 003, 003, 029, 012, 039, 074, 035},
  177. {4, 002, 026, 002, 029},
  178. {12, 013, 118, 014, 123, 120, 123, 112, 120, 084, 110, 076, 102},
  179. {2, 000, 000},
  180. {12, 040, 065, 071, 072, 052, 066, 064, 072, 030, 072, 060, 072},
  181. {16, 030, 026, 077, 026, 081, 027, 024, 055, 028, 056, 049, 059, 052, 069, 071, 107},
  182. {2, 036, 013},
  183. {16, 007, 094, 036, 088, 051, 075, 053, 075, 058, 067, 075, 067, 075, 061, 079, 062},
  184. {16, 123, 124, 119, 122, 118, 117, 116, 115, 114, 108, 101, 106, 088, 099, 005, 006},
  185. {16, 074, 072, 066, 072, 053, 056, 037, 019, 022, 022, 020, 020, 009, 014, 000, 000},
  186. {2, 000, 001},
  187. {16, 011, 123, 013, 120, 020, 117, 024, 112, 027, 107, 036, 105, 037, 107, 043, 093},
  188. {16, 109, 025, 109, 032, 112, 032, 010, 032, 030, 044, 032, 052, 084, 066, 084, 069},
  189. {16, 075, 084, 040, 084, 040, 110, 028, 119, 025, 119, 021, 119, 013, 119, 004, 119},
  190. {2, 014, 075},
  191. {16, 083, 066, 087, 074, 087, 075, 098, 083, 101, 100, 103, 101, 117, 116, 123, 036},
  192. {16, 036, 117, 036, 013, 042, 030, 042, 033, 054, 036, 075, 079, 092, 101, 098, 109},
  193. {16, 051, 039, 057, 038, 045, 029, 034, 009, 065, 009, 014, 001, 012, 009, 026, 001},
  194. {12, 013, 118, 014, 123, 120, 123, 112, 120, 084, 110, 076, 102},
  195. {10, 003, 003, 006, 006, 007, 007, 052, 052, 076, 076},
  196. {16, 037, 037, 042, 042, 053, 053, 062, 062, 007, 007, 010, 010, 011, 011, 015, 015},
  197. {2, 001, 001},
  198. {16, 007, 001, 074, 001, 061, 001, 016, 001, 025, 001, 030, 001, 036, 001, 053, 001},
  199. {16, 043, 043, 046, 046, 039, 039, 028, 028, 016, 016, 006, 006, 005, 005, 002, 002},
  200. {16, 003, 090, 004, 090, 007, 068, 008, 066, 012, 060, 027, 097, 034, 051, 037, 051},
  201. {16, 017, 039, 015, 123, 032, 112, 045, 088, 052, 071, 057, 067, 061, 096, 096, 096},
  202. {16, 038, 051, 021, 036, 021, 034, 030, 034, 054, 034, 055, 020, 048, 018, 051, 006},
  203. {16, 010, 001, 025, 001, 028, 001, 036, 001, 040, 001, 054, 001, 075, 001, 113, 001},
  204. {16, 013, 076, 024, 077, 063, 078, 042, 076, 054, 077, 039, 078, 011, 076, 062, 077},
  205. {16, 116, 001, 119, 001, 122, 001, 004, 001, 009, 001, 024, 001, 027, 001, 036, 001},
  206. {16, 037, 036, 036, 036, 040, 036, 043, 041, 047, 041, 051, 072, 054, 075, 055, 084},
  207. {16, 002, 039, 009, 039, 017, 001, 021, 001, 033, 000, 037, 000, 041, 029, 056, 029},
  208. {2, 001, 001},
  209. {0, 000, 000},
  210. {16, 074, 074, 075, 013, 087, 118, 092, 003, 115, 118, 025, 118, 036, 000, 118, 118},
  211. {16, 003, 003, 003, 008, 006, 025, 007, 079, 008, 082, 036, 105, 039, 106, 051, 118},
  212. {0, 000, 000},
  213. {32, 060, 024, 023, 000, 061, 027, 123, 000, 065, 031, 031, 000, 061, 061, 030, 000, 081, 035, 023, 000, 062, 061, 062, 000, 083, 066, 064, 000, 083, 064, 064, 000},
  214. {14, 001, 001, 017, 020, 018, 020, 022, 030, 036, 043, 044, 051, 052, 054},
  215. {16, 002, 039, 009, 039, 017, 001, 021, 001, 033, 000, 037, 000, 041, 029, 056, 029},
  216. {16, 052, 001, 053, 001, 066, 001, 075, 001, 076, 001, 081, 001, 095, 001, 109, 001},
  217. {0, 000, 000},
  218. {16, 037, 037, 042, 042, 053, 053, 062, 062, 007, 007, 010, 010, 011, 011, 015, 015},
  219. {16, 110, 001, 111, 001, 112, 001, 114, 001, 119, 001, 122, 001, 004, 001, 013, 001},
  220. {12, 002, 035, 036, 002, 051, 053, 091, 002, 011, 022, 040, 035},
  221. {0, 000, 000},
  222. {16, 073, 001, 074, 001, 075, 001, 077, 001, 079, 001, 083, 001, 084, 001, 091, 001},
  223. {16, 037, 037, 042, 042, 053, 053, 062, 062, 007, 007, 010, 010, 011, 011, 015, 015},
  224. {16, 003, 001, 028, 001, 031, 001, 055, 001, 066, 001, 097, 001, 123, 001, 118, 001},
  225. {16, 009, 001, 012, 001, 026, 096, 030, 096, 032, 001, 037, 001, 057, 096, 071, 096},
  226. {2, 001, 001},
  227. {2, 001, 001},
  228. {14, 096, 067, 086, 070, 079, 074, 070, 086, 061, 098, 075, 075, 075, 091},
  229. {16, 037, 037, 042, 042, 053, 053, 062, 062, 007, 007, 010, 010, 011, 011, 015, 015},
  230. {16, 051, 001, 058, 008, 060, 001, 068, 008, 002, 001, 013, 008, 022, 001, 036, 008},
  231. {16, 013, 118, 024, 118, 031, 093, 032, 092, 045, 092, 113, 092, 119, 113, 122, 113},
  232. {16, 076, 008, 032, 008, 043, 008, 067, 008, 011, 011, 008, 090, 002, 002, 083, 013},
  233. {2, 003, 001},
  234. {16, 050, 001, 047, 001, 044, 096, 040, 096, 039, 001, 030, 001, 028, 096, 009, 096},
  235. {16, 062, 037, 078, 038, 002, 062, 003, 087, 002, 078, 113, 078, 119, 062, 007, 078},
  236. {16, 122, 001, 123, 001, 125, 001, 010, 001, 024, 001, 037, 001, 055, 001, 066, 001},
  237. {2, 001, 001},
  238. {16, 074, 039, 072, 039, 075, 039, 079, 039, 083, 036, 084, 036, 089, 035, 091, 035},
  239. {16, 037, 037, 042, 042, 053, 053, 062, 062, 007, 007, 010, 010, 011, 011, 015, 015},
  240. {16, 067, 001, 072, 001, 075, 001, 083, 001, 091, 001, 101, 001, 109, 001, 020, 001},
  241. {6, 056, 056, 049, 049, 026, 124},
  242. {16, 038, 009, 055, 023, 061, 074, 071, 087, 091, 087, 098, 114, 102, 119, 111, 003},
  243. {16, 053, 032, 015, 032, 045, 032, 034, 030, 065, 032, 014, 032, 012, 032, 043, 032},
  244. {16, 051, 001, 058, 001, 060, 001, 068, 001, 002, 001, 013, 001, 022, 001, 036, 001},
  245. {2, 001, 001},
  246. {2, 001, 001},
  247. {16, 112, 001, 116, 001, 117, 001, 024, 001, 030, 001, 035, 001, 036, 001, 040, 001},
  248. {16, 051, 001, 058, 008, 060, 001, 068, 008, 002, 001, 013, 008, 022, 001, 036, 008},
  249. {16, 052, 039, 009, 039, 017, 001, 021, 001, 033, 000, 037, 000, 041, 029, 056, 029},
  250. {16, 057, 008, 008, 017, 043, 021, 054, 038, 067, 008, 037, 078, 065, 079, 025, 078},
  251. {16, 036, 001, 035, 001, 017, 001, 011, 001, 116, 001, 113, 001, 101, 001, 092, 001},
  252. {2, 001, 006},
  253. {0, 000, 000},
  254. {16, 037, 037, 042, 042, 053, 053, 062, 062, 007, 007, 010, 010, 011, 011, 015, 015},
  255. {16, 109, 001, 030, 008, 095, 001, 084, 008, 083, 001, 072, 008, 071, 001, 052, 008},
  256. {16, 097, 096, 088, 064, 090, 096, 093, 064, 097, 096, 099, 081, 102, 114, 114, 001},
  257. {16, 002, 039, 009, 039, 017, 001, 021, 001, 033, 000, 037, 000, 041, 029, 056, 029},
  258. {0, 000, 000},
  259. {2, 001, 001},
  260. {12, 002, 035, 036, 002, 051, 053, 091, 002, 011, 022, 040, 035},
  261. {16, 094, 001, 101, 001, 116, 001, 117, 001, 004, 001, 025, 001, 030, 001, 037, 001},
  262. {16, 091, 038, 115, 043, 085, 006, 079, 007, 078, 008, 077, 018, 079, 018, 086, 024},
  263. {2, 026, 026},
  264. {16, 012, 001, 019, 096, 031, 064, 025, 096, 038, 001, 051, 096, 057, 001, 066, 096},
  265. {16, 067, 001, 068, 096, 072, 001, 074, 008, 075, 096, 076, 008, 079, 001, 084, 096},
  266. {12, 001, 003, 008, 007, 008, 010, 008, 016, 023, 031, 040, 044},
  267. {2, 001, 001},
  268. {16, 037, 037, 042, 042, 053, 053, 062, 062, 007, 007, 010, 010, 011, 011, 015, 015},
  269. {18, 092, 092, 081, 081, 067, 067, 066, 066, 061, 061, 053, 053, 051, 051, 047, 047, 043, 043},
  270. {16, 054, 001, 058, 001, 066, 001, 072, 001, 075, 001, 087, 001, 101, 001, 036, 001},
  271. {16, 041, 010, 041, 020, 049, 011, 056, 123, 110, 113, 112, 116, 114, 118, 119, 101},
  272. {2, 001, 001},
  273. {2, 001, 001},
  274. {16, 037, 037, 042, 042, 053, 053, 062, 062, 007, 007, 010, 010, 011, 011, 015, 015},
  275. {16, 119, 001, 122, 001, 008, 001, 010, 001, 013, 001, 025, 001, 027, 001, 032, 001},
  276. {16, 036, 001, 040, 001, 043, 001, 053, 001, 072, 001, 075, 001, 095, 001, 101, 001},
  277. {2, 001, 001},
  278. {16, 037, 037, 031, 031, 023, 023, 022, 022, 007, 007, 124, 124, 114, 114, 112, 112},
  279. {0, 000, 000},
  280. {2, 001, 001},
  281. {2, 001, 001},
  282. {16, 051, 001, 058, 008, 060, 001, 068, 008, 002, 001, 013, 008, 022, 001, 036, 008},
  283. {0, 000, 000},
  284. {2, 112, 020},
  285. {2, 000, 001},
  286. {2, 000, 001},
  287. {2, 000, 001},
  288. {2, 000, 001},
  289. {16, 081, 008, 032, 008, 043, 008, 067, 008, 011, 011, 008, 090, 002, 002, 083, 013},
  290. {2, 001, 001},
  291. {16, 058, 001, 069, 001, 075, 077, 018, 001, 032, 001, 045, 045, 013, 001, 034, 001},
  292. {16, 058, 001, 069, 001, 075, 077, 018, 001, 032, 001, 045, 045, 013, 001, 034, 001},
  293. {16, 067, 076, 068, 076, 078, 076, 002, 076, 016, 076, 018, 076, 025, 076, 045, 088},
  294. {16, 061, 008, 032, 008, 043, 008, 067, 008, 011, 011, 008, 090, 002, 002, 083, 013},
  295. {0, 000, 000},
  296. {0, 000, 000},
  297. {2, 001, 001},
  298. {2, 036, 036},
  299. {0, 000, 000},
  300. {0, 000, 000}
  301. };
  302.  
  303. /*
  304. native GetVehicleParams(vehicleid, type);
  305. native SetVehicleParams(vehicleid, type, status, delay = 0);
  306. native GetVehicleBoot(vehicleid, &Float:x, &Float:y, &Float:z);
  307. native GetVehicleHood(vehicleid, &Float:x, &Float:y, &Float:z);
  308. native GetVehicleRoof(vehicleid, &Float:x, &Float:y, &Float:z);
  309. native GetVehicleRandomColors(modelid, &color1, &color2);
  310. native GetVehicleColor(vehicleid, &color1, &color2);
  311. native GetNearestVehicle(vehicleid);
  312. native GetVehiclePaintjob(vehicleid);
  313. native GetVehicleDriver(vehicleid);
  314. native GetVehicleTopSpeed(vehicleid);
  315. native GetVehicleInterior(vehicleid);
  316. native GetVehicleSeats(vehicleid);
  317. native GetVehicleModelSeats(modelid);
  318. native ResetVehiclePaintjob(vehicleid);
  319. native IsVehicleSeatOccupied(vehicleid, seatid);
  320. native IsValidVehicle(vehicleid);
  321. */
  322.  
  323. forward EVF_SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  324. public EVF_SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective)
  325. {
  326. SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
  327. }
  328.  
  329. stock static ResetVehicleProperties(vehicleid)
  330. {
  331. s_VehicleTrailerID[vehicleid] = INVALID_VEHICLE_ID;
  332.  
  333. for (new i = 0; i < _:e_VehicleProperties; i ++)
  334. {
  335. deleteproperty(4, !"", (vehicleid << 2) + i);
  336. }
  337. }
  338.  
  339. stock static SetVehiclePropertyValue(vehicleid, type, value)
  340. {
  341. new
  342. string[12];
  343.  
  344. format(string, sizeof(string), "%d", value);
  345.  
  346. setproperty(4, !"", ((vehicleid << 2) + type), string);
  347. }
  348.  
  349. stock static GetVehiclePropertyValue(vehicleid, type)
  350. {
  351. new
  352. string[12];
  353.  
  354. getproperty(4, !"", ((vehicleid << 2) + type), string);
  355.  
  356. return strval(string);
  357. }
  358.  
  359. stock static IsVehiclePropertySet(vehicleid, type)
  360. {
  361. return existproperty(4, !"", (vehicleid << 2) + type);
  362. }
  363.  
  364. stock GetVehicleRandomColors(modelid, &color1, &color2)
  365. {
  366. new
  367. index = 0;
  368.  
  369. color1 = 0;
  370. color2 = 0;
  371.  
  372. if (!(400 <= modelid <= 611))
  373. {
  374. return 0;
  375. }
  376. else
  377. {
  378. modelid -= 400;
  379.  
  380. if (!s_CarColors[modelid][0])
  381. {
  382. return 0;
  383. }
  384. else if (s_CarColors[modelid][0] == 2)
  385. {
  386. color1 = s_CarColors[modelid][1];
  387. color2 = s_CarColors[modelid][2];
  388. }
  389. else
  390. {
  391. index = random(s_CarColors[modelid][0]) & -2;
  392.  
  393. color1 = s_CarColors[modelid][++index];
  394. color2 = s_CarColors[modelid][++index];
  395. }
  396. }
  397. return 1;
  398. }
  399.  
  400. stock GetVehicleParams(vehicleid, type)
  401. {
  402. new
  403. params[7]
  404. ;
  405. GetVehicleParamsEx(vehicleid, params[0], params[1], params[2], params[3], params[4], params[5], params[6]);
  406.  
  407. return (!(params[type] <= 0));
  408. }
  409.  
  410. stock SetVehicleParams(vehicleid, type, status, delay = 0)
  411. {
  412. new
  413. params[7];
  414.  
  415. if (GetVehicleParamsEx(vehicleid, params[0], params[1], params[2], params[3], params[4], params[5], params[6]))
  416. {
  417. params[type] = status;
  418.  
  419. if (delay > 0)
  420. {
  421. SetTimerEx("EVF_SetVehicleParamsEx", delay, false, "iiiiiiii", vehicleid, params[0], params[1], params[2], params[3], params[4], params[5], params[6]);
  422. }
  423. else
  424. {
  425. SetVehicleParamsEx(vehicleid, params[0], params[1], params[2], params[3], params[4], params[5], params[6]);
  426. }
  427. return 1;
  428. }
  429. return 0;
  430. }
  431.  
  432. stock GetVehicleOffset(vehicleid, type, &Float:x, &Float:y, &Float:z)
  433. {
  434. new Float:fPos[4], Float:fSize[3];
  435.  
  436. if (!IsValidVehicle(vehicleid))
  437. {
  438. x = 0.0;
  439. y = 0.0;
  440. z = 0.0;
  441.  
  442. return 0;
  443. }
  444. else
  445. {
  446. GetVehiclePos(vehicleid, fPos[0], fPos[1], fPos[2]);
  447. GetVehicleZAngle(vehicleid, fPos[3]);
  448. GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZE, fSize[0], fSize[1], fSize[2]);
  449.  
  450. switch (type)
  451. {
  452. case VEHICLE_OFFSET_BOOT:
  453. {
  454. x = fPos[0] - (floatsqroot(fSize[1] + fSize[1]) * floatsin(-fPos[3], degrees));
  455. y = fPos[1] - (floatsqroot(fSize[1] + fSize[1]) * floatcos(-fPos[3], degrees));
  456. z = fPos[2];
  457. }
  458. case VEHICLE_OFFSET_HOOD:
  459. {
  460. x = fPos[0] + (floatsqroot(fSize[1] + fSize[1]) * floatsin(-fPos[3], degrees));
  461. y = fPos[1] + (floatsqroot(fSize[1] + fSize[1]) * floatcos(-fPos[3], degrees));
  462. z = fPos[2];
  463. }
  464. case VEHICLE_OFFSET_ROOF:
  465. {
  466. x = fPos[0];
  467. y = fPos[1];
  468. z = fPos[2] + floatsqroot(fSize[2]);
  469. }
  470. }
  471. }
  472. return 1;
  473. }
  474.  
  475. stock GetNearestVehicle(playerid)
  476. {
  477. new
  478. Float:fX,
  479. Float:fY,
  480. Float:fZ,
  481. Float:fSX,
  482. Float:fSY,
  483. Float:fSZ,
  484. Float:fRadius;
  485.  
  486. for (new i = 1, j = GetVehiclePoolSize(); i <= j; i ++)
  487. {
  488. if (!IsVehicleStreamedIn(i, playerid))
  489. {
  490. continue;
  491. }
  492. else
  493. {
  494. GetVehiclePos(i, fX, fY, fZ);
  495.  
  496. GetVehicleModelInfo(GetVehicleModel(i), VEHICLE_MODEL_INFO_SIZE, fSX, fSY, fSZ);
  497.  
  498. fRadius = floatsqroot((fSX + fSX) + (fSY + fSY));
  499.  
  500. if (IsPlayerInRangeOfPoint(playerid, fRadius, fX, fY, fZ) && GetPlayerInterior(playerid) == GetVehicleInterior(i) && GetPlayerVirtualWorld(playerid) == GetVehicleVirtualWorld(i))
  501. {
  502. return i;
  503. }
  504. }
  505. }
  506. return INVALID_VEHICLE_ID;
  507. }
  508.  
  509. stock GetVehicleDriver(vehicleid)
  510. {
  511. for (new i = 0; i < MAX_PLAYERS; i ++)
  512. {
  513. if (GetPlayerState(i) == PLAYER_STATE_DRIVER && IsPlayerInVehicle(i, vehicleid))
  514. {
  515. return i;
  516. }
  517. }
  518. return INVALID_PLAYER_ID;
  519. }
  520.  
  521. stock IsVehicleSeatOccupied(vehicleid, seatid)
  522. {
  523. if (!GetVehicleModel(vehicleid))
  524. {
  525. return 0;
  526. }
  527. else
  528. {
  529. for (new i = 0; i < MAX_PLAYERS; i ++)
  530. {
  531. if (IsPlayerInVehicle(i, vehicleid) && GetPlayerVehicleSeat(i) == seatid)
  532. {
  533. return 1;
  534. }
  535. }
  536. }
  537. return 0;
  538. }
  539.  
  540. stock GetVehicleNextSeat(vehicleid, passenger = 1)
  541. {
  542. new
  543. seats = GetVehicleSeats(vehicleid);
  544.  
  545. if (seats > 1)
  546. {
  547. for (new i = passenger; i < seats; i ++)
  548. {
  549. if (!IsVehicleSeatOccupied(vehicleid, i))
  550. {
  551. return i;
  552. }
  553. }
  554. }
  555. return INVALID_SEAT_ID;
  556. }
  557.  
  558. stock GetVehicleModelSeats(modelid)
  559. {
  560. static const s_VehicleSeats[] =
  561. {
  562. 4, 2, 2, 2, 4, 4, 1, 2, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 1, 4, 4, 4, 2,
  563. 1, 7, 1, 2, 2, 0, 2, 7, 4, 2, 4, 1, 2, 2, 2, 4, 1, 2, 1, 0, 0, 2, 1, 1, 1, 2, 2, 2, 4,
  564. 4, 2, 2, 2, 2, 1, 1, 4, 4, 2, 2, 4, 2, 1, 1, 2, 2, 1, 2, 2, 4, 2, 1, 4, 3, 1, 1, 1, 4, 2,
  565. 2, 4, 2, 4, 1, 2, 2, 2, 4, 4, 2, 2, 1, 2, 2, 2, 2, 2, 4, 2, 1, 1, 2, 1, 1, 2, 2, 4, 2, 2,
  566. 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 1, 1, 1, 2, 2, 2, 2, 7, 7, 1, 4, 2, 2, 2, 2, 2, 4, 4,
  567. 2, 2, 4, 4, 2, 1, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 1, 2, 4, 4, 1, 0, 0, 1, 1, 2, 1, 2, 2, 1, 2,
  568. 4, 4, 2, 4, 1, 0, 4, 2, 2, 2, 2, 0, 0, 7, 2, 2, 1, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0,
  569. 4, 0, 0
  570. };
  571. return (modelid < 400 || modelid > 611) ? (0) : (s_VehicleSeats[(modelid - 400)]);
  572. }
  573.  
  574. stock Float:GetVehicleTopSpeed(vehicleid)
  575. {
  576. new model = GetVehicleModel(vehicleid);
  577.  
  578. if (model)
  579. {
  580. return float(s_TopSpeed[(model - 400)]);
  581. }
  582. return 0.0;
  583. }
  584.  
  585. stock GetVehicleInterior(vehicleid)
  586. {
  587. if (IsValidVehicle(vehicleid))
  588. {
  589. return GetVehiclePropertyValue(vehicleid, e_VEHICLE_INTERIOR);
  590. }
  591. return 0;
  592. }
  593.  
  594. stock GetVehicleColor(vehicleid, &color1, &color2)
  595. {
  596. if (IsValidVehicle(vehicleid))
  597. {
  598. color1 = GetVehiclePropertyValue(vehicleid, e_VEHICLE_COLOR_1);
  599. color2 = GetVehiclePropertyValue(vehicleid, e_VEHICLE_COLOR_2);
  600. return 1;
  601. }
  602. return 0;
  603. }
  604.  
  605. stock GetVehiclePaintjob(vehicleid)
  606. {
  607. if (IsValidVehicle(vehicleid))
  608. {
  609. if (IsVehiclePropertySet(vehicleid, e_VEHICLE_PAINTJOB))
  610. {
  611. return GetVehiclePropertyValue(vehicleid, e_VEHICLE_PAINTJOB);
  612. }
  613. else
  614. {
  615. return INVALID_PAINTJOB_ID;
  616. }
  617. }
  618. return 0;
  619. }
  620.  
  621. stock ResetVehiclePaintjob(vehicleid)
  622. {
  623. if (IsValidVehicle(vehicleid))
  624. {
  625. ChangeVehiclePaintjob(vehicleid, INVALID_PAINTJOB_ID);
  626. SetVehiclePropertyValue(vehicleid, e_VEHICLE_PAINTJOB, INVALID_PAINTJOB_ID);
  627. return 1;
  628. }
  629. return 0;
  630. }
  631.  
  632. stock EVF_LinkVehicleToInterior(vehicleid, interiorid)
  633. {
  634. new
  635. ret = LinkVehicleToInterior(vehicleid, interiorid);
  636.  
  637. if (ret)
  638. {
  639. SetVehiclePropertyValue(vehicleid, e_VEHICLE_INTERIOR, interiorid);
  640. }
  641. return ret;
  642. }
  643.  
  644. stock EVF_CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:a, color1, color2, respawn_delay, addsiren = 0)
  645. {
  646. new vehicleid = INVALID_VEHICLE_ID;
  647.  
  648. if (400 <= modelid <= 611)
  649. {
  650. new
  651. randcolor1,
  652. randcolor2;
  653.  
  654. if (GetVehicleRandomColors(modelid, randcolor1, randcolor2))
  655. {
  656. if (color1 == -1)
  657. {
  658. color1 = randcolor1;
  659. }
  660. if (color2 == -1)
  661. {
  662. color2 = randcolor2;
  663. }
  664. }
  665. vehicleid = CreateVehicle(modelid, x, y, z, a, color1, color2, respawn_delay, addsiren);
  666.  
  667. if (vehicleid != INVALID_VEHICLE_ID)
  668. {
  669. ResetVehicleProperties(vehicleid);
  670.  
  671. SetVehiclePropertyValue(vehicleid, e_VEHICLE_COLOR_1, color1);
  672. SetVehiclePropertyValue(vehicleid, e_VEHICLE_COLOR_2, color2);
  673.  
  674. CallLocalFunction("OnVehicleCreated", "i", vehicleid);
  675. }
  676. }
  677. return vehicleid;
  678. }
  679.  
  680. stock EVF_DestroyVehicle(vehicleid)
  681. {
  682. if (IsValidVehicle(vehicleid))
  683. {
  684. if (CallLocalFunction("OnVehicleDestroyed", "i", vehicleid) > 0 || funcidx("OnVehicleDestroyed") == -1)
  685. {
  686. ResetVehicleProperties(vehicleid);
  687.  
  688. return DestroyVehicle(vehicleid);
  689. }
  690. }
  691. return 0;
  692. }
  693.  
  694. stock EVF_AddStaticVehicle(modelid, Float:x, Float:y, Float:z, Float:a, color1, color2)
  695. {
  696. new vehicleid = INVALID_VEHICLE_ID;
  697.  
  698. if (400 <= modelid <= 611)
  699. {
  700. new
  701. randcolor1,
  702. randcolor2;
  703.  
  704. if (GetVehicleRandomColors(modelid, randcolor1, randcolor2))
  705. {
  706. if (color1 == -1)
  707. {
  708. color1 = randcolor1;
  709. }
  710. if (color2 == -1)
  711. {
  712. color2 = randcolor2;
  713. }
  714. }
  715. vehicleid = AddStaticVehicle(modelid, x, y, z, a, color1, color2);
  716.  
  717. if (vehicleid != INVALID_VEHICLE_ID)
  718. {
  719. ResetVehicleProperties(vehicleid);
  720.  
  721. SetVehiclePropertyValue(vehicleid, e_VEHICLE_COLOR_1, color1);
  722. SetVehiclePropertyValue(vehicleid, e_VEHICLE_COLOR_2, color2);
  723.  
  724. CallLocalFunction("OnVehicleCreated", "i", vehicleid);
  725. }
  726. }
  727. return vehicleid;
  728. }
  729.  
  730. stock EVF_AddStaticVehicleEx(modelid, Float:x, Float:y, Float:z, Float:a, color1, color2, respawn_delay, addsiren = 0)
  731. {
  732. new vehicleid = INVALID_VEHICLE_ID;
  733.  
  734. if (400 <= modelid <= 611)
  735. {
  736. new
  737. randcolor1,
  738. randcolor2;
  739.  
  740. if (GetVehicleRandomColors(modelid, randcolor1, randcolor2))
  741. {
  742. if (color1 == -1)
  743. {
  744. color1 = randcolor1;
  745. }
  746. if (color2 == -1)
  747. {
  748. color2 = randcolor2;
  749. }
  750. }
  751. vehicleid = AddStaticVehicleEx(modelid, x, y, z, a, color1, color2, respawn_delay, addsiren);
  752.  
  753. if (vehicleid != INVALID_VEHICLE_ID)
  754. {
  755. ResetVehicleProperties(vehicleid);
  756.  
  757. SetVehiclePropertyValue(vehicleid, e_VEHICLE_COLOR_1, color1);
  758. SetVehiclePropertyValue(vehicleid, e_VEHICLE_COLOR_2, color2);
  759.  
  760. CallLocalFunction("OnVehicleCreated", "i", vehicleid);
  761. }
  762. }
  763. return vehicleid;
  764. }
  765.  
  766. stock EVF_ChangeVehicleColor(vehicleid, color1, color2)
  767. {
  768. new
  769. ret = ChangeVehicleColor(vehicleid, color1, color2);
  770.  
  771. if (ret)
  772. {
  773. SetVehiclePropertyValue(vehicleid, e_VEHICLE_COLOR_1, color1);
  774. SetVehiclePropertyValue(vehicleid, e_VEHICLE_COLOR_2, color2);
  775. }
  776. return ret;
  777. }
  778.  
  779. stock EVF_ChangeVehiclePaintjob(vehicleid, paintjobid)
  780. {
  781. new
  782. ret = ChangeVehiclePaintjob(vehicleid, paintjobid);
  783.  
  784. if (ret)
  785. {
  786. SetVehiclePropertyValue(vehicleid, e_VEHICLE_PAINTJOB, paintjobid);
  787. }
  788. return ret;
  789. }
  790.  
  791. public OnPlayerUpdate(playerid)
  792. {
  793. if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  794. {
  795. new
  796. vehicleid = GetPlayerVehicleID(playerid),
  797. trailerid = GetVehicleTrailer(vehicleid)
  798. ;
  799.  
  800. if (s_VehicleTrailerID[vehicleid] != trailerid)
  801. {
  802. if (trailerid != 0)
  803. {
  804. CallLocalFunction("OnTrailerHooked", "iii", playerid, vehicleid, trailerid);
  805. }
  806. else
  807. {
  808. CallLocalFunction("OnTrailerUnhooked", "iii", playerid, vehicleid, s_VehicleTrailerID[vehicleid]);
  809. }
  810. s_VehicleTrailerID[vehicleid] = trailerid;
  811. }
  812. }
  813. #if defined EVF_OnPlayerUpdate
  814. return EVF_OnPlayerUpdate(playerid);
  815. #else
  816. return 1;
  817. #endif
  818. }
  819.  
  820. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
  821. {
  822. if ((hittype == BULLET_HIT_TYPE_VEHICLE) && (22 <= weaponid <= 38))
  823. {
  824. CallLocalFunction("OnPlayerShootVehicle", "iii", playerid, hitid, weaponid);
  825. }
  826. #if defined EVF_OnPlayerWeaponShot
  827. return EVF_OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, fX, fY, fZ);
  828. #else
  829. return 1;
  830. #endif
  831. }
  832.  
  833. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  834. {
  835. SetVehiclePropertyValue(vehicleid, e_VEHICLE_COLOR_1, color1);
  836. SetVehiclePropertyValue(vehicleid, e_VEHICLE_COLOR_2, color2);
  837.  
  838. #if defined EVF_OnVehicleRespray
  839. return EVF_OnVehicleRespray(playerid, vehicleid, color1, color2);
  840. #else
  841. return 1;
  842. #endif
  843. }
  844.  
  845. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  846. {
  847. SetVehiclePropertyValue(vehicleid, e_VEHICLE_PAINTJOB, paintjobid);
  848.  
  849. #if defined EVF_OnVehiclePaintjob
  850. return EVF_OnVehiclePaintjob(playerid, vehicleid, paintjobid);
  851. #else
  852. return 1;
  853. #endif
  854. }
  855.  
  856. #if defined _ALS_LinkVehicleToInterior
  857. #define LinkVehicleToInterior
  858. #else
  859. #define _ALS_LinkVehicleToInterior
  860. #endif
  861.  
  862. #if defined _ALS_CreateVehicle
  863. #define CreateVehicle
  864. #else
  865. #define _ALS_CreateVehicle
  866. #endif
  867.  
  868. #if defined _ALS_DestroyVehicle
  869. #define DestroyVehicle
  870. #else
  871. #define _ALS_DestroyVehicle
  872. #endif
  873.  
  874. #if defined _ALS_AddStaticVehicle
  875. #define AddStaticVehicle
  876. #else
  877. #define _ALS_AddStaticVehicle
  878. #endif
  879.  
  880. #if defined _ALS_AddStaticVehicleEx
  881. #define AddStaticVehicleEx
  882. #else
  883. #define _ALS_AddStaticVehicleEx
  884. #endif
  885.  
  886. #if defined _ALS_ChangeVehicleColor
  887. #define ChangeVehicleColor
  888. #else
  889. #define _ALS_ChangeVehicleColor
  890. #endif
  891.  
  892. #if defined _ALS_ChangeVehiclePaintjob
  893. #define ChangeVehiclePaintjob
  894. #else
  895. #define _ALS_ChangeVehiclePaintjob
  896. #endif
  897.  
  898. #if defined _ALS_OnPlayerUpdate
  899. #undef OnPlayerUpdate
  900. #else
  901. #define _ALS_OnPlayerUpdate
  902. #endif
  903.  
  904. #if defined _ALS_OnPlayerWeaponShot
  905. #undef OnPlayerWeaponShot
  906. #else
  907. #define _ALS_OnPlayerWeaponShot
  908. #endif
  909.  
  910. #if defined _ALS_OnVehicleRespray
  911. #undef OnVehicleRespray
  912. #else
  913. #define _ALS_OnVehicleRespray
  914. #endif
  915.  
  916. #if defined _ALS_OnVehiclePaintjob
  917. #undef OnVehiclePaintjob
  918. #else
  919. #define _ALS_OnVehiclePaintjob
  920. #endif
  921.  
  922. #define LinkVehicleToInterior EVF_LinkVehicleToInterior
  923. #define CreateVehicle EVF_CreateVehicle
  924. #define DestroyVehicle EVF_DestroyVehicle
  925. #define AddStaticVehicle EVF_AddStaticVehicle
  926. #define AddStaticVehicleEx EVF_AddStaticVehicleEx
  927. #define ChangeVehicleColor EVF_ChangeVehicleColor
  928. #define ChangeVehiclePaintjob EVF_ChangeVehiclePaintjob
  929. #define OnPlayerUpdate EVF_OnPlayerUpdate
  930. #define OnPlayerWeaponShot EVF_OnPlayerWeaponShot
  931. #define OnVehicleRespray EVF_OnVehicleRespray
  932. #define OnVehiclePaintjob EVF_OnVehiclePaintjob
  933.  
  934. #if defined EVF_OnPlayerUpdate
  935. forward EVF_OnPlayerUpdate(playerid);
  936. #endif
  937.  
  938. #if defined EVF_OnPlayerWeaponShot
  939. forward EVF_OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
  940. #endif
  941.  
  942. #if defined EVF_OnVehicleRespray
  943. forward EVF_OnVehicleRespray(playerid, vehicleid, color1, color2);
  944. #endif
  945.  
  946. #if defined EVF_OnVehiclePaintjob
  947. forward EVF_OnVehiclePaintjob(playerid, vehicleid, paintjobid);
  948. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement