Advertisement
Guest User

vSync v0.01

a guest
Sep 23rd, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 33.60 KB | None | 0 0
  1. /*
  2.     vSync v0.01 wrote by RIDE2DAY, based on vFunc by MP2.
  3.     Official thread: http://forum.sa-mp.com/showthread.php?p=3934226#post3934226
  4. */
  5.  
  6. // ================================== [DEFINITIONS] ================================== //
  7. #if !defined isodd
  8.     #define isodd(%1)       ((%1) & 1)
  9. #endif
  10.  
  11. #if !defined strcpy
  12.     #define strcpy(%0,%1)   strcat((%0[0] = EOS, %0), %1)
  13. #endif
  14.  
  15. #if !defined RELEASED
  16.     #define RELEASED(%0)    (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
  17. #endif
  18.  
  19. #define MAX_COLOR_PAIRS     19
  20.  
  21.  
  22. // ================================== [VARIABLES] ================================== //
  23. enum vSync_Internal_Data
  24. {
  25.     vSync_Color1,
  26.     vSync_Color2,
  27.     vSync_OrgCol1,
  28.     vSync_OrgCol2,
  29.     vSync_Paintjob,
  30.     vSync_Interior,
  31.     vSync_NumberP[32]
  32. }
  33.  
  34. static stock
  35.         vSync_pTick[MAX_PLAYERS],
  36.         vSync_pPaintjobID[MAX_PLAYERS],
  37.         bool:vSync_pBuyingPaintjob[MAX_PLAYERS char],
  38.         vSync_gVehicleInternal[MAX_VEHICLES][vSync_Internal_Data];
  39.  
  40. static stock const
  41.         vSync_gVehDefaultColors[212][MAX_COLOR_PAIRS] = {
  42.             {4,1, 123,1, 113,1, 101,1, 75,1, 62,1, 40,1, 36,1, -1},                     // Landstalker
  43.             {41,41, 47,47, 52,52, 66,66, 74,74, 87,87,91,91, 113,113, -1},              // Bravura
  44.             {10,10, 13,13, 22,22, 30,30, 39,39, 90,90, 98,98, 110,110, -1},             // Buffalo
  45.             {36,1, 37,1, 30,1, 28,1, 25,1, 40,1, 101,1, 113,1, -1},                     // Linerunner
  46.             {113,39, 119,50, 123,92, 109,100, 101,101, 95,105, 83,110, 66,25, -1},      // Perennial
  47.             {11,1, 24,1, 36,1, 40,1, 75,1, 91,1, 123,1, 4,1, -1},                       // Landstalker
  48.             {1,1, -1},                                                                  // Dumper
  49.             {3,1, -1},                                                                  // Firetruck
  50.             {26,26, -1},                                                                // Trashmaster
  51.             {1,1, -1},                                                                  // Stretch
  52.             {4,1, 9,1, 10,1, 25,1, 36,1, 40,1, 45,1, 84,1, -1},                         // Manana
  53.             {12,1, 64,1, 123,1, 116,1, 112,1, 106,1, 80,1, 75,1, -1},                   // Infernus
  54.             {9,1, 10,8, 11,1, 25,8, 27,1, 29,8, 30,1, 37,8, -1},                        // Voodoo
  55.             {87,1, 88,1, 91,1, 105,1, 109,1, 119,1, 4,1, 25,1, -1},                     // Pony
  56.             {25,1, 28,1, 43,1, 67,1, 72,1, 9,1, 95,1, 24,1, -1},                        // Mule
  57.             {20,1, 25,1, 36,1, 40,1, 62,1, 75,1, 92,1, 0,1, -1},                        // Cheetah
  58.             {1,3, -1},                                                                  // Ambulance
  59.             {0,0, -1},                                                                  // Leviathan
  60.             {119,119, 117,227, 114,114, 108,108, 95,95, 81,81, 61,61, 41,41, -1},       // Moonbeam
  61.             {45,75, 47,76, 33,75, 13,76, 54,75, 69,76, 59,75, 87,76, -1},               // Esperanto
  62.             {6,1, -1},                                                                  // Taxi
  63.             {4,1, 13,1, 25,1, 30,1, 36,1, 40,1, 75,1, 95,1, -1},                        // Washington
  64.             {96,25, 97,25, 101,25, 111,31, 113,36, 83,57, 67,59, -1},                   // Bobcat
  65.             {1,16, 1,56, 1,17, 1,53, 1,5, 1,35, -1},                                    // Mr.Whoopie/Mr.Whoopee
  66.             {1,0, 2,2, 3,2, 3,6, 6,16, 15,30, 24,53, 35,61, -1},                        // BF Injection
  67.             {43,0, -1},                                                                 // Hunter
  68.             {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1},                 // Premier
  69.             {0,1, -1},                                                                  // Enforcer
  70.             {4,75, -1},                                                                 // Securicar
  71.             {12,12, 13,13, 14,14, 1,2, 2,1, 1,3, 3,1, 10,10, -1},                       // Banshee
  72.             {46,26, -1},                                                                // Predator
  73.             {71,59, 75,59, 92,72, 47,74, 55,83, 59,83, 71,87, 82,87, -1},               // Bus
  74.             {43,0, -1},                                                                 // Rhino
  75.             {43,0, -1},                                                                 // Barracks
  76.             {1,1, 12,12, 2,2, 6,6, 4,4, 46,46, 53,53, -1},                              // Hotknife
  77.             {1, 1, -1},                                                                 // Articulated Trailer 1
  78.             {83,1, 87,1, 92,1, 95,1, 109,1, 119,45, 11,1, -1},                          // Previon
  79.             {54,7, 79,7, 87,7, 95,16, 98,20, 105,20, 123,20, 125,21, -1},               // Coach
  80.             {6,76, -1},                                                                 // Cabbie
  81.             {57,8, 8,17, 43,21, 54,38, 67,8, 37,78, 65,79, 25,78, -1},                  // Stallion
  82.             {34,34, 32,32, 20,20, 110,110, 66,66, 84,84, 118,118, 121,121, -1},         // Rumpo
  83.             {2,96, 79,42, 82,54, 67,86, 126,96, 70,96, 110,54, 67,98, -1},              // RC Bandit
  84.             {0,0, 11,105, 25,109, 36,0, 40,36, 75,36, 0,36, 0,109, -1},                 // Romero
  85.             {4,1, 20,1, 24,1, 25,1, 36,1, 40,1, 54,1, 84,1, -1},                        // Packer
  86.             {32,36, 32,42, 32,53, 32,66, 32,14, 32,32, -1},                             // Monster
  87.             {34,34, 35,35, 37,37, 39,39, 41,41, 43,43, 45,45, 47,47, -1},               // Admiral
  88.             {-1},                                                                       // Squallo - 4 colors two of which can not be changed, will not be synced
  89.             {75,2, -1},                                                                 // Seasparrow
  90.             {3,6, -1},                                                                  // Pizzaboy
  91.             {1,74, -1},                                                                 // Tram
  92.             {1,1, -1},                                                                  // Articulated Trailer 2 [NO COLORS]
  93.             {123,123, 125,125, 36,36, 16,16, 18,18, 46,46, 61,61, 75,75, -1},           // Turismo
  94.             {1,3, 1,5, 1,16, 1,22, 1,35, 1,44, 1,53, 1,57, -1},                         // Speeder
  95.             {56,56, -1},                                                                // Reefer
  96.             {26,26, -1},                                                                // Tropic
  97.             {84,15, 84,58, 84,31, 32,74, 43,31, 1,31, 77,31, 32,74, -1},                // Flatbed
  98.             {84,63, 91,63, 102,65, 105,72, 110,93, 121,93, 12,95, 23,1, -1},            // Yankee
  99.             {58,1, 2,1, 63,1, 18,1, 32,1, 45,1, 13,1, 34,1, -1},                        // Caddy
  100.             {91,1, 101,1, 109,1, 113,1, 4,1, 25,1, 30,1, 36,1, -1},                     // Solair
  101.             {26,26, 28,28, 44,44, 51,51, 57,57, 72,72, 106,106, 112,112, -1},           // Berkley's RC Van (Topfun)
  102.             {1,3, 1,9, 1,18, 1,30, 17,23, 46,23, 46,32, 57,34, -1},                     // Skimmer
  103.             {36,1, 37,1, 43,1, 53,1, 61,1, 75,1, 79,1, 88,1, -1},                       // PCJ-600
  104.             {12,12, 13,13, 14,14, 1,2, 2,1, 1,3, 3,1, 10,10, -1},                       // Faggio
  105.             {79,79, 84,84, 7,7, 11,11, 19,19, 22,22, 36,36, 53,53, -1},                 // Freeway
  106.             {14,75, -1},                                                                // RC Baron
  107.             {14,75, -1},                                                                // RC Raider
  108.             {67,76, 68,76, 78,76, 2,76, 16,76, 18,76, 25,76, 45,88, -1},                // Glendale
  109.             {51,1, 58,8, 60,1, 68,8, 2,1, 13,8, 22,1, 36,8, -1},                        // Oceanic
  110.             {6,6, 46,46, 53,53, 3,3, -1},                                               // Sanchez
  111.             {1,3, -1},                                                                  // Sparrow
  112.             {43,0, -1},                                                                 // Patriot
  113.             {120,117, 103,111, 120,114, 74,91, 120,112, 74,83, 120,113, 66,71, -1},     // Quad
  114.             {56,15, 56,53, -1},                                                         // Coastguard
  115.             {56,15, 56,53, -1},                                                         // Dinghy
  116.             {97,1, 81,1, 105,1, 110,1, 91,1, 74,1, 84,1, 83,1, -1},                     // Hermes
  117.             {2,39, 9,39, 17,1, 21,1, 33,0, 37,0, 41,29, 56,29, -1},                     // Sabre
  118.             {6,7, 7,6, 1,6, 89,91, 119,117, 103,102, 77,87, 71,77, -1},                 // Rustler
  119.             {92,1, 94,1, 101,1, 121,1, 0,1, 22,1, 36,1, 75,1, -1},                      // ZR-350
  120.             {72,1, 66,1, 59,1, 45,1, 40,1, 39,1, 35,1, 20,1, -1},                       // Walton
  121.             {27,36, 59,36, 60,35, 55,41, 54,31, 49,23, 45,32, 40,29, -1},               // Regina
  122.             {73,45, 12,12, 2,2, 6,6, 4,4, 46,46, 53,53, -1},                            // Comet
  123.             {1,1, 3,3, 6,6, 46,46, 65,9, 14,1, 12,9, 26,1, -1},                         // BMX
  124.             {41,41, 48,48, 52,52, 64,64, 71,71, 85,85, 10,10, 62,62, -1},               // Burrito
  125.             {-1},                                                                       // Camper [4 colors - can not be synced]
  126.             {12,35, 50,32, 40,26, 66,36, -1},                                           // Marquis
  127.             {1,73, 1,74, 1,75, 1,76, 1,77, 1,78, 1,79, -1},                             // Baggage
  128.             {1,1, -1},                                                                  // Dozer
  129.             {26,14, 29,42, 26,57, 54,29, 26,3, 3,29, 12,39, 74,35, -1},                 // Maverick
  130.             {2,26, 2,29, -1},                                                           // News Macerick/News Helicopter
  131.             {13,118, 14,123, 120,123, 112,120, 84,110, 76,102, -1},                     // Rancher
  132.             {0,0, -1},                                                                  // FBI Rancher
  133.             {40,65, 71,72, 52,66, 64,72, 30,72, 60,72, -1},                             // Virgo
  134.             {30,26, 77,26, 81,27, 24,55, 28,56, 49,59, 52,69, 71,107, -1},              // Greenwood
  135.             {36,13, -1},                                                                // Jetmax
  136.             {36,117, 36,13, 42,30, 42,33, 54,36, 75,79, 92,101, 98,109, -1},            // Hotring Racer
  137.             {123,124, 119,122, 118,117, 116,115, 114,108, 101,106, 88,99, 5,6, -1},     // Sandking
  138.             {74,72, 66,72, 53,56, 37,19, 22,22, 20,20, 9,14, 0,0, -1},                  // Blista Compact
  139.             {0,1, -1},                                                                  // Police Maverick/Police Helicopter
  140.             {11,123, 13,120, 20,117, 24,112, 27,107, 36,105, 37,107, 43,93, -1},        // Boxville
  141.             {109,25, 109,32, 112,32, 10,32, 30,44, 32,52, 84,66, 84,69, -1},            // Benson
  142.             {75,84, 40,84, 40,110, 28,119, 25,119, 21,119, 13,119, 4,119, -1},          // Mesa
  143.             {14,75, -1},                                                                // RC Goblin
  144.             {7,94, 36,88, 51,75, 53,75 ,58,67, 75,67, 75,61, 79,62, -1},                // Hotring Racer A
  145.             {83,66, 87,74, 87,75, 98,83, 101,100, 103,101, 117,116, 123,36, -1},        // Hotring Racer B
  146.             {51,39, 57,38, 45,29, 34,9, 65,9, 14,1, 12,9, 26,1, -1},                    // Bloodring Banger
  147.             {13,118, 14,123, 120,123, 112,120, 84,110, 76,102, -1},                     // Rancher (LURE)
  148.             {3,3, 6,6, 7,7, 52,52, 76,76, -1},                                          // Super GT
  149.             {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1},                 // Elegant
  150.             {1,1, -1},                                                                  // Journey
  151.             {7,1, 74,1, 61,1, 16,1, 25,1, 30,1, 36,1, 53,1, -1},                        // Bike
  152.             {43,43, 46,46, 39,39, 28,28, 16,16, 6,6, 5,5, 2,2, -1},                     // Mountain Bike
  153.             {3,90, 4,90, 7,68, 8,66, 12,60, 27,97, 34,51, 37,51, -1},                   // Beagle
  154.             {17,39, 15,123, 32,112, 45,88, 52,71, 57,67, 61,96, 96,96, -1},             // Cropduster
  155.             {38,51, 21,36, 21,34, 30,34, 54,34, 55,20, 48,18, 51,6, -1},                // Stuntplane
  156.             {10,1, 25,1, 28,1, 36,1, 40,1, 54,1, 75,1, 113,1, -1},                      // Tanker
  157.             {13,76, 24,77, 63,78, 42,76, 54,77, 39,78, 11,76, 62,77, -1},               // Roadtrain
  158.             {116,1, 119,1, 122,1, 4,1, 9,1, 24,1, 27,1, 36,1, -1},                      // Nebula
  159.             {37,36, 36,36, 40,36, 43,41, 47,41, 51,72, 54,75, 55,84, -1},               // Majestic
  160.             {2,39, 9,39, 17,1, 21,1, 33,0, 37,0, 41,29, 56,29, -1},                     // Buccaneer
  161.             {1,1, -1},                                                                  // Shamal
  162.             {-1},                                                                       // Hydra [NO DATA FOUND]
  163.             {74,74, 75,13, 87,118, 92,3, 115,118, 25,118, 36,0, 118,118, -1},           // FCR-900
  164.             {3,3, 3,8, 6,25, 7,79, 8,82, 36,105, 39,106, 51,118, -1},                   // NRG-500
  165.             {-1},                                                                       // Cop Bike [NO DATA FOUND]
  166.             {-1},                                                                       // Cement [4 colors - not synced]
  167.             {1,1, 17,20, 18,20, 22,30, 36,43, 44,51, 52,54, -1},                        // Towtruck
  168.             {2,39, 9,39, 17,1, 21,1, 33,0, 37,0, 41,29, 56,29, -1},                     // Fortune
  169.             {52,1, 53,1, 66,1, 75,1, 76,1, 81,1, 95,1, 109,1, -1},                      // Cadrona
  170.             {-1},                                                                       // FBI Truck [ NO DATA FOUND]
  171.             {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1},                 // Willard
  172.             {110,1, 111,1, 112,1, 114,1, 119,1, 122,1, 4,1, 13,1, -1},                  // Forklift
  173.             {2,35, 36,2, 51,53, 91,2, 11,22, 40,35, -1},                                // Tractor
  174.             {-1},                                                                       // Combine [NO DATA FOUND]
  175.             {73,1, 74,1, 75,1, 77,1, 79,1, 83,1, 84,1, 91,1, -1},                       // Feltzer
  176.             {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1},                 // Remington
  177.             {3,1, 28,1, 31,1, 55,1, 66,1, 97,1, 123,1, 118,1, -1},                      // Slamvan
  178.             {9,1, 12,1, 26,96, 30,96, 32,1, 37,1, 57,96, 71,96, -1},                    // Blade
  179.             {1,1, -1},                                                                  // Freight
  180.             {1,1, -1},                                                                  // Streak
  181.             {96,67, 86,70, 79,74, 70,86, 61,98, 75,75, 75,91, -1},                      // Vortex
  182.             {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1},                 // Vincent
  183.             {51,1, 58,8, 60,1, 68,8, 2,1, 13,8, 22,1, 36,8, -1},                        // Bullet
  184.             {13,118, 24,118, 31,93, 32,92, 45,92, 113,92, 119,113, 122,113, -1},        // Clover
  185.             {76,8, 32,8, 43,8, 67,8, 11,11, 8,90, 2,2, 83,13, -1},                      // Sadler
  186.             {3,1, -1},                                                                  // Firetruck LA (Ladder Truck)
  187.             {50,1, 47,1, 44,96, 40,96, 39,1, 30,1, 28,96, 9,96, -1},                    // Hustler
  188.             {62,37, 78,38, 2,62, 3,87, 2,78, 113,78, 119,62, 7,78, -1},                 // Intruder
  189.             {122,1, 123,1, 125,1, 10,1, 24,1, 37,1, 55,1, 66,1, -1},                    // Primo
  190.             {1,1, -1},                                                                  // Cargobob
  191.             {74,39, 72,39, 75,39, 79,39, 83,36, 84,36, 89,35, 91,35, -1},               // Tampa
  192.             {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1},                 // Sunrise
  193.             {67,1, 72,1, 75,1, 83,1, 91,1, 101,1, 109,1, 20,1, -1},                     // Merit
  194.             {56,56, 49,49, 26,124, -1},                                                 // Utility
  195.             {38,9, 55,23, 61,74, 71,87, 91,87, 98,114, 102,119, 111,3, -1},             // Nevada
  196.             {53,32, 15,32, 45,32, 34,30, 65,32, 14,32, 12,32, 43,32, -1},               // Yosemite
  197.             {51,1, 58,1, 60,1, 68,1, 2,1, 13,1, 22,1, 36,1, -1},                        // Windsor
  198.             {1,1, -1},                                                                  // Monster A
  199.             {1,1, -1},                                                                  // Monster B
  200.             {112,1, 116,1, 117,1, 24,1, 30,1, 35,1, 36,1, 40,1, -1},                    // Uranus
  201.             {51,1, 58,8, 60,1, 68,8, 2,1, 13,8, 22,1, 36,8, -1},                        // Jester
  202.             {52,39, 9,39, 17,1, 21,1, 33,0, 37,0, 41,29, 56,29, -1},                    // Sultan
  203.             {57,8, 8,17, 43,21, 54,38, 67,8, 37,78, 65,79, 25,78, -1},                  // Stratum
  204.             {36,1, 35,1, 17,1, 11,1, 116,1, 113,1, 101,1, 92,1, -1},                    // Elegy
  205.             {1,6, -1},                                                                  // Raindance
  206.             {-1},                                                                       // RC Tiger [NO DATA FOUND]
  207.             {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1},                 // Flash
  208.             {109,1, 30,8, 95,1, 84,8, 83,1, 72,8, 71,1, 52,8, -1},                      // Tahoma
  209.             {97,96, 88,64, 90,96, 93,64, 97,96, 99,81, 102,114, 114,1, -1},             // Savanna
  210.             {2,39, 9,39, 17,1, 21,1, 33,0, 37,0, 41,29, 56,29, -1},                     // Bandito
  211.             {1,1, -1},                                                                  // Freight Flat Carriage
  212.             {1,1, -1},                                                                  // Streak Carriage
  213.             {2,35, 36,2, 51,53, 91,2, 11,22, 40,35, -1},                                // Kart
  214.             {94,1, 101,1, 116,1, 117,1, 4,1, 25,1, 30,1, 37,1, -1},                     // Mower
  215.             {91,38, 115,43, 85,6, 79,7, 78,8, 77,18, 79,18, 86,24, -1},                 // Duneride
  216.             {26,26, -1},                                                                // Sweeper
  217.             {12,1, 19,96, 31,64, 25,96, 38,1, 51,96, 57,1, 66,96, -1},                  // Broadway
  218.             {67,1, 68,96, 72,1, 74,8, 75,96, 76,8, 79,1, 84,96, -1},                    // Tornado
  219.             {1,3, 8,7, 8,10, 8,16, 23,31, 40,44, -1},                                   // AT-400
  220.             {1,1, -1},                                                                  // DFT-30
  221.             {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1},                 // Huntley
  222.             {92,92, 81,81, 67,67, 66,66, 61,61, 53,53, 51,51, 47,47, 43,43, -1},        // Stafford
  223.             {54,1, 58,1, 66,1, 72,1, 75,1, 87,1, 101,1, 36,1, -1},                      // BF-400
  224.             {41,10, 41,20, 49,11, 56,123, 110,113, 112,116, 114,118, 119,101, -1},      // Newsvan/news Van
  225.             {1,1, -1},                                                                  // Tug
  226.             {1,1, -1},                                                                  // Petrol Trailer
  227.             {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1},                 // Emperor
  228.             {119,1, 122,1, 8,1, 10,1, 13,1, 25,1, 27,1, 32,1, -1},                      // Wayfarer
  229.             {36,1, 40,1, 43,1, 53,1, 72,1, 75,1, 95,1, 101,1, -1},                      // Euros
  230.             {1,1, -1},                                                                  // Hotdog
  231.             {37,37, 31,31, 23,23, 22,22, 7,7, 124,124, 114,114, 112,112, -1},           // Club
  232.             {-1},                                                                       // Freight Box Carriage [NO DATA FOUND]
  233.             {1,1, -1},                                                                  // Articulated Trailer 3
  234.             {1,1, -1},                                                                  // Andromada
  235.             {51,1, 58,8, 60,1, 68,8, 2,1, 13,8, 22,1, 36,8, -1},                        // Dodo
  236.             {-1},                                                                       // RC Cam [NO DATA FOUND]
  237.             {112,20, -1},                                                               // Launch
  238.             {0,1, -1},                                                                  // Cop Car LSPD
  239.             {0,1, -1},                                                                  // Cop Car SFPD
  240.             {0,1, -1},                                                                  // Cop Car LVPD
  241.             {0,1, -1},                                                                  // Cop Car Ranger (Police Ranger)
  242.             {81,8, 32,8, 43,8, 67,8, 11,11, 8,90, 2,2, 83,13, -1},                      // Picador
  243.             {1,1, -1},                                                                  // Swatvan S.W.A.T Van
  244.             {58,1, 69,1, 75,77, 18,1, 32,1, 45,45, 13,1, 34,1, -1},                     // Alpha
  245.             {58,1, 69,1, 75,77, 18,1, 32,1, 45,45, 13,1, 34,1, -1},                     // Phoenix
  246.             {67,76, 68,76, 78,76, 2,76, 16,76, 18,76, 25,76, 45,88, -1},                // Glendale Shit
  247.             {61,8, 32,8, 43,8, 67,8, 11,11, 8,90, 2,2, 83,13, -1},                      // Sadler Shit
  248.             {-1},                                                                       // Baggage Box A [NO DATA FOUND]
  249.             {-1},                                                                       // Baggage Box B [NO DATA FOUND]
  250.             {1,1, -1},                                                                  // Tug Stairs
  251.             {36,36, -1},                                                                // Burglary Boxville
  252.             {-1},                                                                       // Farm Plow Trailer [NO DATA FOUND]
  253.             {-1}                                                                        // Utility Trailer [NO DATA FOUND]
  254. };
  255.  
  256. static stock const
  257.         vSync_gVehSeats[212] = {
  258.             4,2,2,2,4,4,1,2,2,4,
  259.             2,2,2,4,2,2,4,2,4,2,
  260.             4,2,2,2,2,1,4,4,4,2,
  261.             1,9,1,2,2,1,2,9,4,2,
  262.             4,1,2,2,2,4,1,2,1,2,
  263.             1,2,1,1,1,2,2,2,4,4,
  264.             2,2,2,2,1,1,4,4,2,2,
  265.             4,2,1,1,2,2,1,2,2,4,
  266.             2,1,2,3,1,1,1,4,2,2,
  267.             4,2,4,1,2,2,2,4,4,2,
  268.             2,1,2,2,2,2,2,4,2,1,
  269.             1,2,1,1,2,2,4,2,2,1,
  270.             1,2,2,2,2,2,2,2,2,4,
  271.             1,1,1,2,2,2,2,2,2,1,
  272.             4,2,2,2,2,2,4,4,2,2,
  273.             4,4,2,1,2,2,2,2,2,2,
  274.             4,4,2,2,1,2,4,4,1,1,
  275.             1,1,1,2,1,2,2,2,2,4,
  276.             4,2,4,1,1,4,2,2,2,2,
  277.             1,1,2,2,1,1,4,4,4,2,
  278.             2,2,2,2,4,2,1,1,1,4,
  279.             1,1
  280. };
  281.  
  282. static stock const
  283.         Float:vSync_gPaynSprayPos[10][3] = {
  284.             {1025.05, -1024.23, 32.1},  // LS Temple
  285.             {487.68, -1740.87, 11.13},  // LS Santa Maria
  286.             {-1420.73, 2583.37, 55.56}, // El Quebrados
  287.             {-1904.39, 284.97, 40.75},  // Wang Cars
  288.             {-2425.91, 1022.33, 50.10}, // Juniper Hill
  289.             {1975.60, 2162.16, 10.77},  // LV Redsands
  290.             {2065.38, -1831.51, 13.25}, // Idlewood
  291.             {-99.55, 1118.36, 19.44},   // Fort Carson
  292.             {721.07, -455.94, 16.04},   // Dillimore
  293.             {2393.74, 1493.01, 10.52}   // LV Unused (Pyramid)
  294. };
  295.  
  296.  
  297. // ================================== [HOOKED FUNCTIONS] ================================== //
  298. /* - CreateVehicle - */
  299. stock vSync_CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, addsiren=0)
  300. {
  301.     // Check vehicle's model ID.
  302.     if(!(400 <= modelid <= 611))
  303.     {
  304.         return INVALID_VEHICLE_ID;
  305.     }
  306.    
  307.     // Add siren to the Firetruck (ladder variant), by default it's disabled.
  308.     if(modelid == 544)
  309.     {
  310.         addsiren = 1;
  311.     }
  312.  
  313.     // Generate random colors (if it proceeds)
  314.     if((color1 == -1 || color2 == -1) && vSync_gVehDefaultColors[modelid - 400][0] != -1)
  315.     {
  316.         new idx;
  317.  
  318.         for(new i = 0; i <= MAX_COLOR_PAIRS; i++)
  319.         {
  320.             if(vSync_gVehDefaultColors[modelid - 400][i] == -1)
  321.             {
  322.                 idx = i;
  323.                 break;
  324.             }
  325.         }
  326.  
  327.         new rand_col = random(idx);
  328.  
  329.         if(isodd(rand_col))
  330.         {
  331.             rand_col--;
  332.         }
  333.  
  334.         if(color1 == -1)
  335.         {
  336.             color1 = vSync_gVehDefaultColors[modelid - 400][rand_col];
  337.         }
  338.  
  339.         if(color2 == -1)
  340.         {
  341.             color2 = vSync_gVehDefaultColors[modelid - 400][rand_col + 1];
  342.         }
  343.     }
  344.  
  345.     new vehicleid = CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:rotation, color1, color1, respawn_delay, addsiren);
  346.  
  347.     // Check vehicle's ID (to avoid using INVALID_VEHICLE_ID as array index).
  348.     if(1 <= vehicleid <= MAX_VEHICLES)
  349.     {
  350.         SetVehicleHealth(vehicleid, 999.0);
  351.  
  352.         vSync_gVehicleInternal[vehicleid - 1][vSync_Color1] = color1;
  353.         vSync_gVehicleInternal[vehicleid - 1][vSync_Color2] = color2;
  354.  
  355.         vSync_gVehicleInternal[vehicleid - 1][vSync_OrgCol1] = color1;
  356.         vSync_gVehicleInternal[vehicleid - 1][vSync_OrgCol2] = color2;
  357.        
  358.         vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob] = 3;
  359.         vSync_gVehicleInternal[vehicleid - 1][vSync_Interior] = 0;
  360.  
  361.         strcpy(vSync_gVehicleInternal[vehicleid - 1][vSync_NumberP], "XYZSR998", 32);
  362.  
  363.         CallRemoteFunction("OnVehicleCreated", "i", vehicleid);
  364.     }
  365.     return vehicleid;
  366. }
  367. #if defined _ALS_CreateVehicle
  368.     #undef CreateVehicle
  369. #else
  370.     #define _ALS_CreateVehicle
  371. #endif
  372. #define CreateVehicle vSync_CreateVehicle
  373. // --------------------------------------------------------------------------//
  374. /* - AddStaticVehicle - */
  375. stock vSync_AddStaticVehicle(modelid, Float:x, Float:y, Float:z, Float:rotation, color1, color2)
  376. {
  377.     // Check vehicle's model ID.
  378.     if(!(400 <= modelid <= 611))
  379.     {
  380.         return INVALID_VEHICLE_ID;
  381.     }
  382.  
  383.     // Generate random colors (if it proceeds)
  384.     if((color1 == -1 || color2 == -1) && vSync_gVehDefaultColors[modelid - 400][0] != -1)
  385.     {
  386.         new idx;
  387.  
  388.         for(new i = 0; i <= MAX_COLOR_PAIRS; i++)
  389.         {
  390.             if(vSync_gVehDefaultColors[modelid - 400][i] == -1)
  391.             {
  392.                 idx = i;
  393.                 break;
  394.             }
  395.         }
  396.  
  397.         new rand_col = random(idx);
  398.  
  399.         if(isodd(rand_col))
  400.         {
  401.             rand_col--;
  402.         }
  403.  
  404.         if(color1 == -1)
  405.         {
  406.             color1 = vSync_gVehDefaultColors[modelid - 400][rand_col];
  407.         }
  408.  
  409.         if(color2 == -1)
  410.         {
  411.             color2 = vSync_gVehDefaultColors[modelid - 400][rand_col + 1];
  412.         }
  413.     }
  414.  
  415.     new vehicleid = AddStaticVehicle(modelid, Float:x, Float:y, Float:z, Float:rotation, color1, color1);
  416.  
  417.     // Check vehicle's ID (to avoid using INVALID_VEHICLE_ID as array index).
  418.     if(1 <= vehicleid <= MAX_VEHICLES)
  419.     {
  420.         SetVehicleHealth(vehicleid, 999.0);
  421.        
  422.         vSync_gVehicleInternal[vehicleid - 1][vSync_Color1] = color1;
  423.         vSync_gVehicleInternal[vehicleid - 1][vSync_Color2] = color2;
  424.  
  425.         vSync_gVehicleInternal[vehicleid - 1][vSync_OrgCol1] = color1;
  426.         vSync_gVehicleInternal[vehicleid - 1][vSync_OrgCol2] = color2;
  427.        
  428.         vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob] = 3;
  429.         vSync_gVehicleInternal[vehicleid - 1][vSync_Interior] = 0;
  430.  
  431.         strcpy(vSync_gVehicleInternal[vehicleid - 1][vSync_NumberP], "XYZSR998", 32);
  432.  
  433.         CallRemoteFunction("OnVehicleCreated", "i", vehicleid);
  434.     }
  435.     return vehicleid;
  436. }
  437. #if defined _ALS_AddStaticVehicle
  438.     #undef AddStaticVehicle
  439. #else
  440.     #define _ALS_AddStaticVehicle
  441. #endif
  442. #define AddStaticVehicle vSync_AddStaticVehicle
  443. // --------------------------------------------------------------------------//
  444. /* - AddStaticVehicleEx - */
  445. stock vSync_AddStaticVehicleEx(modelid, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, addsiren=0)
  446. {
  447.     // Check vehicle's model ID.
  448.     if(!(400 <= modelid <= 611))
  449.     {
  450.         return INVALID_VEHICLE_ID;
  451.     }
  452.    
  453.     // Add siren to the Firetruck (ladder variant), by default it's disabled.
  454.     if(modelid == 544)
  455.     {
  456.         addsiren = 1;
  457.     }
  458.  
  459.     // Generate random colors (if it proceeds)
  460.     if((color1 == -1 || color2 == -1) && vSync_gVehDefaultColors[modelid - 400][0] != -1)
  461.     {
  462.         new idx;
  463.  
  464.         for(new i = 0; i <= MAX_COLOR_PAIRS; i++)
  465.         {
  466.             if(vSync_gVehDefaultColors[modelid - 400][i] == -1)
  467.             {
  468.                 idx = i;
  469.                 break;
  470.             }
  471.         }
  472.  
  473.         new rand_col = random(idx);
  474.  
  475.         if(isodd(rand_col))
  476.         {
  477.             rand_col--;
  478.         }
  479.  
  480.         if(color1 == -1)
  481.         {
  482.             color1 = vSync_gVehDefaultColors[modelid - 400][rand_col];
  483.         }
  484.  
  485.         if(color2 == -1)
  486.         {
  487.             color2 = vSync_gVehDefaultColors[modelid - 400][rand_col + 1];
  488.         }
  489.     }
  490.  
  491.     new vehicleid = AddStaticVehicleEx(modelid, Float:x, Float:y, Float:z, Float:rotation, color1, color1, respawn_delay, addsiren);
  492.  
  493.     // Check vehicle's ID (to avoid using INVALID_VEHICLE_ID as array index).
  494.     if(1 <= vehicleid <= MAX_VEHICLES)
  495.     {
  496.         SetVehicleHealth(vehicleid, 999.0);
  497.  
  498.         vSync_gVehicleInternal[vehicleid - 1][vSync_Color1] = color1;
  499.         vSync_gVehicleInternal[vehicleid - 1][vSync_Color2] = color2;
  500.  
  501.         vSync_gVehicleInternal[vehicleid - 1][vSync_OrgCol1] = color1;
  502.         vSync_gVehicleInternal[vehicleid - 1][vSync_OrgCol2] = color2;
  503.        
  504.         vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob] = 3;
  505.         vSync_gVehicleInternal[vehicleid - 1][vSync_Interior] = 0;
  506.  
  507.         strcpy(vSync_gVehicleInternal[vehicleid - 1][vSync_NumberP], "XYZSR998", 32);
  508.  
  509.         CallRemoteFunction("OnVehicleCreated", "i", vehicleid);
  510.     }
  511.     return vehicleid;
  512. }
  513. #if defined _ALS_AddStaticVehicleEx
  514.     #undef AddStaticVehicleEx
  515. #else
  516.     #define _ALS_AddStaticVehicleEx
  517. #endif
  518. #define AddStaticVehicleEx vSync_AddStaticVehicleEx
  519. // --------------------------------------------------------------------------//
  520. /* - SetVehicleNumberPlate - */
  521. stock vSync_SetVehicleNumberPlate(vehicleid, numberplate[])
  522. {
  523.     if(1 <= vehicleid <= MAX_VEHICLES)
  524.     {
  525.         strcpy(vSync_gVehicleInternal[vehicleid - 1][vSync_NumberP], numberplate, 32);
  526.         return SetVehicleNumberPlate(vehicleid, numberplate);
  527.     }
  528.     return 0;
  529. }
  530. #if defined _ALS_SetVehicleNumberPlate
  531.     #undef SetVehicleNumberPlate
  532. #else
  533.     #define _ALS_SetVehicleNumberPlate
  534. #endif
  535. #define SetVehicleNumberPlate vSync_SetVehicleNumberPlate
  536. // --------------------------------------------------------------------------//
  537. /* - LinkVehicleToInterior - */
  538. stock vSync_LinkVehicleToInterior(vehicleid, interior)
  539. {
  540.     if(1 <= vehicleid <= MAX_VEHICLES)
  541.     {
  542.         vSync_gVehicleInternal[vehicleid - 1][vSync_Interior] = interior;
  543.         return LinkVehicleToInterior(vehicleid, interior);
  544.     }
  545.     return 0;
  546. }
  547. #if defined _ALS_LinkVehicleToInterior
  548.     #undef LinkVehicleToInterior
  549. #else
  550.     #define _ALS_LinkVehicleToInterior
  551. #endif
  552. #define LinkVehicleToInterior vSync_LinkVehicleToInterior
  553. // --------------------------------------------------------------------------//
  554. /* - ChangeVehicleColor - */
  555. stock vSync_ChangeVehicleColor(vehicleid, color1, color2)
  556. {
  557.     new modelid = GetVehicleModel(vehicleid);
  558.  
  559.     if(!(400 <= modelid <= 611))
  560.     {
  561.         return 0;
  562.     }
  563.  
  564.     // Generate random colors (if it proceeds)
  565.     if((color1 == -1 || color2 == -1) && vSync_gVehDefaultColors[modelid - 400][0] != -1)
  566.     {
  567.         new idx;
  568.  
  569.         for(new i = 0; i <= MAX_COLOR_PAIRS; i++)
  570.         {
  571.             if(vSync_gVehDefaultColors[modelid - 400][i] == -1)
  572.             {
  573.                 idx = i;
  574.                 break;
  575.             }
  576.         }
  577.  
  578.         new rand_col = random(idx);
  579.  
  580.         if(isodd(rand_col))
  581.         {
  582.             rand_col--;
  583.         }
  584.  
  585.         if(color1 == -1)
  586.         {
  587.             color1 = vSync_gVehDefaultColors[modelid - 400][rand_col];
  588.         }
  589.  
  590.         if(color2 == -1)
  591.         {
  592.             color2 = vSync_gVehDefaultColors[modelid - 400][rand_col + 1];
  593.         }
  594.     }
  595.  
  596.     vSync_gVehicleInternal[vehicleid - 1][vSync_Color1] = color1;
  597.     vSync_gVehicleInternal[vehicleid - 1][vSync_Color2] = color2;
  598.  
  599.     return ChangeVehicleColor(vehicleid, vSync_gVehicleInternal[vehicleid - 1][vSync_Color1], vSync_gVehicleInternal[vehicleid - 1][vSync_Color2]);
  600. }
  601. #if defined _ALS_ChangeVehicleColor
  602.     #undef ChangeVehicleColor
  603. #else
  604.     #define _ALS_ChangeVehicleColor
  605. #endif
  606. #define ChangeVehicleColor vSync_ChangeVehicleColor
  607. // --------------------------------------------------------------------------//
  608. /* - ChangeVehiclePaintjob - */
  609. stock vSync_ChangeVehiclePaintjob(vehicleid, paintjobid)
  610. {
  611.     if(1 <= vehicleid <= MAX_VEHICLES)
  612.     {
  613.         vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob] = paintjobid;
  614.         ChangeVehiclePaintjob(vehicleid, vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob]);
  615.         ChangeVehicleColor(vehicleid, vSync_gVehicleInternal[vehicleid - 1][vSync_Color1], vSync_gVehicleInternal[vehicleid - 1][vSync_Color2]);
  616.         return 1;
  617.     }
  618.     return 1;
  619. }
  620. #if defined _ALS_ChangeVehiclePaintjob
  621.     #undef ChangeVehiclePaintjob
  622. #else
  623.     #define _ALS_ChangeVehiclePaintjob
  624. #endif
  625. #define ChangeVehiclePaintjob vSync_ChangeVehiclePaintjob
  626.  
  627.  
  628. // ================================== [HOOKED CALLBACKS] ================================== //
  629. public OnPlayerUpdate(playerid)
  630. {
  631.     if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  632.     {
  633.         new Float:v_health;
  634.         new vehicleid = GetPlayerVehicleID(playerid);
  635.  
  636.         GetVehicleHealth(vehicleid, v_health);
  637.  
  638.         if(v_health >= 1000.0)
  639.         {
  640.             SetVehicleHealth(vehicleid, 999.0);
  641.  
  642.             if(IsPlayerInsidePNS(playerid))
  643.             {
  644.                 ChangeVehicleColor(vehicleid, -1, -1);
  645.                 CallRemoteFunction("OnVehicleRespray", "iiii", playerid, vehicleid, vSync_gVehicleInternal[vehicleid - 1][vSync_Color1], vSync_gVehicleInternal[vehicleid - 1][vSync_Color2]);
  646.             }
  647.         }
  648.     }
  649.  
  650.     #if defined vSync_OnPlayerUpdate
  651.         return vSync_OnPlayerUpdate(playerid);
  652.     #else
  653.         return 1;
  654.     #endif
  655. }
  656. #if defined vSync_OnPlayerUpdate
  657.     forward vSync_OnPlayerUpdate(playerid);
  658. #endif
  659. #if defined _ALS_OnPlayerUpdate
  660.     #undef OnPlayerUpdate
  661. #else
  662.     #define _ALS_OnPlayerUpdate
  663. #endif
  664. #define OnPlayerUpdate vSync_OnPlayerUpdate
  665. // --------------------------------------------------------------------------//
  666. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  667. {
  668.     if(RELEASED(KEY_SPRINT))
  669.     {
  670.         if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && vSync_pBuyingPaintjob{playerid} == true && GetTickDiff(GetTickCount(), vSync_pTick[playerid]) > 50 && GetPlayerMoney(playerid) >= 500)
  671.         {
  672.             new vehicleid = GetPlayerVehicleID(playerid);
  673.  
  674.             vSync_pBuyingPaintjob{playerid} = false;
  675.             vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob] = vSync_pPaintjobID[playerid];
  676.             CallRemoteFunction("OnVehicleChangePaintjob", "iii", playerid, vehicleid, vSync_pPaintjobID[playerid]);
  677.         }
  678.     }
  679.  
  680.     if(RELEASED(KEY_SECONDARY_ATTACK))
  681.     {
  682.         if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && vSync_pBuyingPaintjob{playerid} == true)
  683.         {
  684.             vSync_pBuyingPaintjob{playerid} = false;
  685.         }
  686.     }
  687.  
  688.     #if defined vSync_OnPlayerKeyStateChange
  689.         return vSync_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  690.     #else
  691.         return 1;
  692.     #endif
  693. }
  694. #if defined vSync_OnPlayerKeyStateChange
  695.     forward vSync_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  696. #endif
  697. #if defined _ALS_OnPlayerKeyStateChange
  698.     #undef OnPlayerKeyStateChange
  699. #else
  700.     #define _ALS_OnPlayerKeyStateChange
  701. #endif
  702. #define OnPlayerKeyStateChange vSync_OnPlayerKeyStateChange
  703. // --------------------------------------------------------------------------//
  704. public OnEnterExitModShop(playerid, enterexit, interiorid)
  705. {
  706.     new vehicleid = GetPlayerVehicleID(playerid);
  707.     new max_passengers = GetVehicleSeats(GetVehicleModel(vehicleid));
  708.     new count_passengers;
  709.  
  710.     if(enterexit)
  711.     {
  712.         SetVehicleVirtualWorld(vehicleid, playerid);
  713.  
  714.         for(new x = 0, t = GetPlayerPoolSize(); x <= t; x++)
  715.         {
  716.             if(!IsPlayerConnected(playerid)) continue;
  717.  
  718.             if(GetPlayerVehicleID(x) == vehicleid)
  719.             {
  720.                 SetPlayerVirtualWorld(x, playerid);
  721.                 count_passengers++;
  722.  
  723.                 if(count_passengers >= max_passengers)
  724.                 {
  725.                     break;
  726.                 }
  727.             }
  728.         }
  729.     }
  730.     else
  731.     {
  732.         SetVehicleVirtualWorld(vehicleid, 0);
  733.  
  734.         for(new x = 0, t = GetPlayerPoolSize(); x <= t; x++)
  735.         {
  736.             if(!IsPlayerConnected(playerid)) continue;
  737.  
  738.             if(GetPlayerVehicleID(x) == vehicleid)
  739.             {
  740.                 SetPlayerVirtualWorld(x, 0);
  741.                 count_passengers++;
  742.  
  743.                 if(count_passengers >= max_passengers)
  744.                 {
  745.                     break;
  746.                 }
  747.             }
  748.         }
  749.     }
  750.    
  751.     #if defined vSync_OnEnterExitModShop
  752.         return vSync_OnEnterExitModShop(playerid, enterexit, interiorid);
  753.     #else
  754.         return 1;
  755.     #endif
  756. }
  757. #if defined vSync_OnEnterExitModShop
  758.     forward vSync_OnEnterExitModShop(playerid, enterexit, interiorid);
  759. #endif
  760. #if defined _ALS_OnEnterExitModShop
  761.     #undef OnEnterExitModShop
  762. #else
  763.     #define _ALS_OnEnterExitModShop
  764. #endif
  765. #define OnEnterExitModShop vSync_OnEnterExitModShop
  766. // --------------------------------------------------------------------------//
  767. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  768. {
  769.     if(paintjobid <= 2)
  770.     {
  771.         if(paintjobid != vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob])
  772.         {
  773.             vSync_pTick[playerid] = GetTickCount();
  774.             vSync_pPaintjobID[playerid] = paintjobid;
  775.             vSync_pBuyingPaintjob{playerid} = true;
  776.         }
  777.     }
  778.  
  779.     #if defined vSync_OnVehiclePaintjob
  780.         return vSync_OnVehiclePaintjob(playerid, vehicleid, paintjobid);
  781.     #else
  782.         return 1;
  783.     #endif
  784. }
  785. #if defined vSync_OnVehiclePaintjob
  786.     forward vSync_OnVehiclePaintjob(playerid, vehicleid, paintjobid);
  787. #endif
  788. #if defined _ALS_OnVehiclePaintjob
  789.     #undef OnVehiclePaintjob
  790. #else
  791.     #define _ALS_OnVehiclePaintjob
  792. #endif
  793. #define OnVehiclePaintjob vSync_OnVehiclePaintjob
  794. // --------------------------------------------------------------------------//
  795. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  796. {
  797.     if(vSync_pBuyingPaintjob{playerid} == true || (color1 == vSync_gVehicleInternal[vehicleid - 1][vSync_Color1] && color2 == vSync_gVehicleInternal[vehicleid - 1][vSync_Color2] && !IsPlayerInsidePNS(playerid)))
  798.     {
  799.         return 0;
  800.     }
  801.  
  802.     vSync_gVehicleInternal[vehicleid - 1][vSync_Color1] = color1;
  803.     vSync_gVehicleInternal[vehicleid - 1][vSync_Color2] = color2;
  804.  
  805.     #if defined vSync_OnVehicleRespray
  806.         return vSync_OnVehicleRespray(playerid, vehicleid, color1, color2);
  807.     #else
  808.         return 1;
  809.     #endif
  810. }
  811. #if defined vSync_OnVehicleRespray
  812.     forward vSync_OnVehicleRespray(playerid, vehicleid, color1, color2);
  813. #endif
  814. #if defined _ALS_OnVehicleRespray
  815.     #undef OnVehicleRespray
  816. #else
  817.     #define _ALS_OnVehicleRespray
  818. #endif
  819. #define OnVehicleRespray vSync_OnVehicleRespray
  820. // --------------------------------------------------------------------------//
  821. public OnVehicleSpawn(vehicleid)
  822. {
  823.     vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob] = 3;
  824.     ChangeVehicleColor(vehicleid, vSync_gVehicleInternal[vehicleid - 1][vSync_OrgCol1], vSync_gVehicleInternal[vehicleid - 1][vSync_OrgCol2]);
  825.  
  826.     #if defined vSync_OnVehicleSpawn
  827.         return vSync_OnVehicleSpawn(vehicleid);
  828.     #else
  829.         return 1;
  830.     #endif
  831. }
  832. #if defined vSync_OnVehicleSpawn
  833.     forward vSync_OnVehicleSpawn(vehicleid);
  834. #endif
  835. #if defined _ALS_OnVehicleSpawn
  836.     #undef OnVehicleSpawn
  837. #else
  838.     #define _ALS_OnVehicleSpawn
  839. #endif
  840. #define OnVehicleSpawn vSync_OnVehicleSpawn
  841.  
  842.  
  843. // ================================== [NEW FUNCTIONS] ================================== //
  844. stock GetVehicleColor(vehicleid, &color1, &color2)
  845. {
  846.     if(1 <= vehicleid <= MAX_VEHICLES)
  847.     {
  848.         color1 = vSync_gVehicleInternal[vehicleid - 1][vSync_Color1];
  849.         color2 = vSync_gVehicleInternal[vehicleid - 1][vSync_Color2];
  850.         return 1;
  851.     }
  852.     return 0;
  853. }
  854. // --------------------------------------------------------------------------//
  855. stock GetVehiclePaintjob(vehicleid)
  856. {
  857.     if(1 <= vehicleid <= MAX_VEHICLES)
  858.     {
  859.         return vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob];
  860.     }
  861.     return 255;
  862. }
  863. // --------------------------------------------------------------------------//
  864. stock GetVehicleNumberPlate(vehicleid, dest[], len = sizeof(dest))
  865. {
  866.     if(1 <= vehicleid <= MAX_VEHICLES)
  867.     {
  868.         strcpy(dest, vSync_gVehicleInternal[vehicleid - 1][vSync_NumberP], len);
  869.         return 1;
  870.     }
  871.     return 0;
  872. }
  873. // --------------------------------------------------------------------------//
  874. stock GetVehicleInterior(vehicleid)
  875. {
  876.     if(1 <= vehicleid <= MAX_VEHICLES)
  877.     {
  878.         return vSync_gVehicleInternal[vehicleid - 1][vSync_Interior];
  879.     }
  880.     return 0;
  881. }
  882. // --------------------------------------------------------------------------//
  883. stock GetVehicleSeats(modelid)
  884. {
  885.     if(400 <= modelid <= 611)
  886.     {
  887.         return vSync_gVehSeats[modelid - 400];
  888.     }
  889.     return -1;
  890. }
  891. // --------------------------------------------------------------------------//
  892. stock IsPlayerInsidePNS(playerid)
  893. {
  894.     for(new i = 0; i < sizeof(vSync_gPaynSprayPos); i++)
  895.     {
  896.         if(IsPlayerInRangeOfPoint(playerid, 10.0, vSync_gPaynSprayPos[i][0], vSync_gPaynSprayPos[i][1], vSync_gPaynSprayPos[i][2]))
  897.         {
  898.             return 1;
  899.         }
  900.     }
  901.     return 0;
  902. }
  903.  
  904.  
  905. // ================================== [OTHER FUNCTIONS] ================================== //
  906. stock GetTickDiff(newtick, oldtick)
  907. {
  908.     if(oldtick < 0 && newtick >= 0)
  909.     {
  910.         return newtick - oldtick;
  911.     }
  912.     else if(oldtick >= 0 && newtick < 0 || oldtick > newtick)
  913.     {
  914.         return (cellmax - oldtick + 1) - (cellmin - newtick);
  915.     }
  916.     return newtick - oldtick;
  917. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement