Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- vSync v0.01 wrote by RIDE2DAY, based on vFunc by MP2.
- Official thread: http://forum.sa-mp.com/showthread.php?p=3934226#post3934226
- */
- // ================================== [DEFINITIONS] ================================== //
- #if !defined isodd
- #define isodd(%1) ((%1) & 1)
- #endif
- #if !defined strcpy
- #define strcpy(%0,%1) strcat((%0[0] = EOS, %0), %1)
- #endif
- #if !defined RELEASED
- #define RELEASED(%0) (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
- #endif
- #define MAX_COLOR_PAIRS 19
- // ================================== [VARIABLES] ================================== //
- enum vSync_Internal_Data
- {
- vSync_Color1,
- vSync_Color2,
- vSync_OrgCol1,
- vSync_OrgCol2,
- vSync_Paintjob,
- vSync_Interior,
- vSync_NumberP[32]
- }
- static stock
- vSync_pTick[MAX_PLAYERS],
- vSync_pPaintjobID[MAX_PLAYERS],
- bool:vSync_pBuyingPaintjob[MAX_PLAYERS char],
- vSync_gVehicleInternal[MAX_VEHICLES][vSync_Internal_Data];
- static stock const
- vSync_gVehDefaultColors[212][MAX_COLOR_PAIRS] = {
- {4,1, 123,1, 113,1, 101,1, 75,1, 62,1, 40,1, 36,1, -1}, // Landstalker
- {41,41, 47,47, 52,52, 66,66, 74,74, 87,87,91,91, 113,113, -1}, // Bravura
- {10,10, 13,13, 22,22, 30,30, 39,39, 90,90, 98,98, 110,110, -1}, // Buffalo
- {36,1, 37,1, 30,1, 28,1, 25,1, 40,1, 101,1, 113,1, -1}, // Linerunner
- {113,39, 119,50, 123,92, 109,100, 101,101, 95,105, 83,110, 66,25, -1}, // Perennial
- {11,1, 24,1, 36,1, 40,1, 75,1, 91,1, 123,1, 4,1, -1}, // Landstalker
- {1,1, -1}, // Dumper
- {3,1, -1}, // Firetruck
- {26,26, -1}, // Trashmaster
- {1,1, -1}, // Stretch
- {4,1, 9,1, 10,1, 25,1, 36,1, 40,1, 45,1, 84,1, -1}, // Manana
- {12,1, 64,1, 123,1, 116,1, 112,1, 106,1, 80,1, 75,1, -1}, // Infernus
- {9,1, 10,8, 11,1, 25,8, 27,1, 29,8, 30,1, 37,8, -1}, // Voodoo
- {87,1, 88,1, 91,1, 105,1, 109,1, 119,1, 4,1, 25,1, -1}, // Pony
- {25,1, 28,1, 43,1, 67,1, 72,1, 9,1, 95,1, 24,1, -1}, // Mule
- {20,1, 25,1, 36,1, 40,1, 62,1, 75,1, 92,1, 0,1, -1}, // Cheetah
- {1,3, -1}, // Ambulance
- {0,0, -1}, // Leviathan
- {119,119, 117,227, 114,114, 108,108, 95,95, 81,81, 61,61, 41,41, -1}, // Moonbeam
- {45,75, 47,76, 33,75, 13,76, 54,75, 69,76, 59,75, 87,76, -1}, // Esperanto
- {6,1, -1}, // Taxi
- {4,1, 13,1, 25,1, 30,1, 36,1, 40,1, 75,1, 95,1, -1}, // Washington
- {96,25, 97,25, 101,25, 111,31, 113,36, 83,57, 67,59, -1}, // Bobcat
- {1,16, 1,56, 1,17, 1,53, 1,5, 1,35, -1}, // Mr.Whoopie/Mr.Whoopee
- {1,0, 2,2, 3,2, 3,6, 6,16, 15,30, 24,53, 35,61, -1}, // BF Injection
- {43,0, -1}, // Hunter
- {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1}, // Premier
- {0,1, -1}, // Enforcer
- {4,75, -1}, // Securicar
- {12,12, 13,13, 14,14, 1,2, 2,1, 1,3, 3,1, 10,10, -1}, // Banshee
- {46,26, -1}, // Predator
- {71,59, 75,59, 92,72, 47,74, 55,83, 59,83, 71,87, 82,87, -1}, // Bus
- {43,0, -1}, // Rhino
- {43,0, -1}, // Barracks
- {1,1, 12,12, 2,2, 6,6, 4,4, 46,46, 53,53, -1}, // Hotknife
- {1, 1, -1}, // Articulated Trailer 1
- {83,1, 87,1, 92,1, 95,1, 109,1, 119,45, 11,1, -1}, // Previon
- {54,7, 79,7, 87,7, 95,16, 98,20, 105,20, 123,20, 125,21, -1}, // Coach
- {6,76, -1}, // Cabbie
- {57,8, 8,17, 43,21, 54,38, 67,8, 37,78, 65,79, 25,78, -1}, // Stallion
- {34,34, 32,32, 20,20, 110,110, 66,66, 84,84, 118,118, 121,121, -1}, // Rumpo
- {2,96, 79,42, 82,54, 67,86, 126,96, 70,96, 110,54, 67,98, -1}, // RC Bandit
- {0,0, 11,105, 25,109, 36,0, 40,36, 75,36, 0,36, 0,109, -1}, // Romero
- {4,1, 20,1, 24,1, 25,1, 36,1, 40,1, 54,1, 84,1, -1}, // Packer
- {32,36, 32,42, 32,53, 32,66, 32,14, 32,32, -1}, // Monster
- {34,34, 35,35, 37,37, 39,39, 41,41, 43,43, 45,45, 47,47, -1}, // Admiral
- {-1}, // Squallo - 4 colors two of which can not be changed, will not be synced
- {75,2, -1}, // Seasparrow
- {3,6, -1}, // Pizzaboy
- {1,74, -1}, // Tram
- {1,1, -1}, // Articulated Trailer 2 [NO COLORS]
- {123,123, 125,125, 36,36, 16,16, 18,18, 46,46, 61,61, 75,75, -1}, // Turismo
- {1,3, 1,5, 1,16, 1,22, 1,35, 1,44, 1,53, 1,57, -1}, // Speeder
- {56,56, -1}, // Reefer
- {26,26, -1}, // Tropic
- {84,15, 84,58, 84,31, 32,74, 43,31, 1,31, 77,31, 32,74, -1}, // Flatbed
- {84,63, 91,63, 102,65, 105,72, 110,93, 121,93, 12,95, 23,1, -1}, // Yankee
- {58,1, 2,1, 63,1, 18,1, 32,1, 45,1, 13,1, 34,1, -1}, // Caddy
- {91,1, 101,1, 109,1, 113,1, 4,1, 25,1, 30,1, 36,1, -1}, // Solair
- {26,26, 28,28, 44,44, 51,51, 57,57, 72,72, 106,106, 112,112, -1}, // Berkley's RC Van (Topfun)
- {1,3, 1,9, 1,18, 1,30, 17,23, 46,23, 46,32, 57,34, -1}, // Skimmer
- {36,1, 37,1, 43,1, 53,1, 61,1, 75,1, 79,1, 88,1, -1}, // PCJ-600
- {12,12, 13,13, 14,14, 1,2, 2,1, 1,3, 3,1, 10,10, -1}, // Faggio
- {79,79, 84,84, 7,7, 11,11, 19,19, 22,22, 36,36, 53,53, -1}, // Freeway
- {14,75, -1}, // RC Baron
- {14,75, -1}, // RC Raider
- {67,76, 68,76, 78,76, 2,76, 16,76, 18,76, 25,76, 45,88, -1}, // Glendale
- {51,1, 58,8, 60,1, 68,8, 2,1, 13,8, 22,1, 36,8, -1}, // Oceanic
- {6,6, 46,46, 53,53, 3,3, -1}, // Sanchez
- {1,3, -1}, // Sparrow
- {43,0, -1}, // Patriot
- {120,117, 103,111, 120,114, 74,91, 120,112, 74,83, 120,113, 66,71, -1}, // Quad
- {56,15, 56,53, -1}, // Coastguard
- {56,15, 56,53, -1}, // Dinghy
- {97,1, 81,1, 105,1, 110,1, 91,1, 74,1, 84,1, 83,1, -1}, // Hermes
- {2,39, 9,39, 17,1, 21,1, 33,0, 37,0, 41,29, 56,29, -1}, // Sabre
- {6,7, 7,6, 1,6, 89,91, 119,117, 103,102, 77,87, 71,77, -1}, // Rustler
- {92,1, 94,1, 101,1, 121,1, 0,1, 22,1, 36,1, 75,1, -1}, // ZR-350
- {72,1, 66,1, 59,1, 45,1, 40,1, 39,1, 35,1, 20,1, -1}, // Walton
- {27,36, 59,36, 60,35, 55,41, 54,31, 49,23, 45,32, 40,29, -1}, // Regina
- {73,45, 12,12, 2,2, 6,6, 4,4, 46,46, 53,53, -1}, // Comet
- {1,1, 3,3, 6,6, 46,46, 65,9, 14,1, 12,9, 26,1, -1}, // BMX
- {41,41, 48,48, 52,52, 64,64, 71,71, 85,85, 10,10, 62,62, -1}, // Burrito
- {-1}, // Camper [4 colors - can not be synced]
- {12,35, 50,32, 40,26, 66,36, -1}, // Marquis
- {1,73, 1,74, 1,75, 1,76, 1,77, 1,78, 1,79, -1}, // Baggage
- {1,1, -1}, // Dozer
- {26,14, 29,42, 26,57, 54,29, 26,3, 3,29, 12,39, 74,35, -1}, // Maverick
- {2,26, 2,29, -1}, // News Macerick/News Helicopter
- {13,118, 14,123, 120,123, 112,120, 84,110, 76,102, -1}, // Rancher
- {0,0, -1}, // FBI Rancher
- {40,65, 71,72, 52,66, 64,72, 30,72, 60,72, -1}, // Virgo
- {30,26, 77,26, 81,27, 24,55, 28,56, 49,59, 52,69, 71,107, -1}, // Greenwood
- {36,13, -1}, // Jetmax
- {36,117, 36,13, 42,30, 42,33, 54,36, 75,79, 92,101, 98,109, -1}, // Hotring Racer
- {123,124, 119,122, 118,117, 116,115, 114,108, 101,106, 88,99, 5,6, -1}, // Sandking
- {74,72, 66,72, 53,56, 37,19, 22,22, 20,20, 9,14, 0,0, -1}, // Blista Compact
- {0,1, -1}, // Police Maverick/Police Helicopter
- {11,123, 13,120, 20,117, 24,112, 27,107, 36,105, 37,107, 43,93, -1}, // Boxville
- {109,25, 109,32, 112,32, 10,32, 30,44, 32,52, 84,66, 84,69, -1}, // Benson
- {75,84, 40,84, 40,110, 28,119, 25,119, 21,119, 13,119, 4,119, -1}, // Mesa
- {14,75, -1}, // RC Goblin
- {7,94, 36,88, 51,75, 53,75 ,58,67, 75,67, 75,61, 79,62, -1}, // Hotring Racer A
- {83,66, 87,74, 87,75, 98,83, 101,100, 103,101, 117,116, 123,36, -1}, // Hotring Racer B
- {51,39, 57,38, 45,29, 34,9, 65,9, 14,1, 12,9, 26,1, -1}, // Bloodring Banger
- {13,118, 14,123, 120,123, 112,120, 84,110, 76,102, -1}, // Rancher (LURE)
- {3,3, 6,6, 7,7, 52,52, 76,76, -1}, // Super GT
- {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1}, // Elegant
- {1,1, -1}, // Journey
- {7,1, 74,1, 61,1, 16,1, 25,1, 30,1, 36,1, 53,1, -1}, // Bike
- {43,43, 46,46, 39,39, 28,28, 16,16, 6,6, 5,5, 2,2, -1}, // Mountain Bike
- {3,90, 4,90, 7,68, 8,66, 12,60, 27,97, 34,51, 37,51, -1}, // Beagle
- {17,39, 15,123, 32,112, 45,88, 52,71, 57,67, 61,96, 96,96, -1}, // Cropduster
- {38,51, 21,36, 21,34, 30,34, 54,34, 55,20, 48,18, 51,6, -1}, // Stuntplane
- {10,1, 25,1, 28,1, 36,1, 40,1, 54,1, 75,1, 113,1, -1}, // Tanker
- {13,76, 24,77, 63,78, 42,76, 54,77, 39,78, 11,76, 62,77, -1}, // Roadtrain
- {116,1, 119,1, 122,1, 4,1, 9,1, 24,1, 27,1, 36,1, -1}, // Nebula
- {37,36, 36,36, 40,36, 43,41, 47,41, 51,72, 54,75, 55,84, -1}, // Majestic
- {2,39, 9,39, 17,1, 21,1, 33,0, 37,0, 41,29, 56,29, -1}, // Buccaneer
- {1,1, -1}, // Shamal
- {-1}, // Hydra [NO DATA FOUND]
- {74,74, 75,13, 87,118, 92,3, 115,118, 25,118, 36,0, 118,118, -1}, // FCR-900
- {3,3, 3,8, 6,25, 7,79, 8,82, 36,105, 39,106, 51,118, -1}, // NRG-500
- {-1}, // Cop Bike [NO DATA FOUND]
- {-1}, // Cement [4 colors - not synced]
- {1,1, 17,20, 18,20, 22,30, 36,43, 44,51, 52,54, -1}, // Towtruck
- {2,39, 9,39, 17,1, 21,1, 33,0, 37,0, 41,29, 56,29, -1}, // Fortune
- {52,1, 53,1, 66,1, 75,1, 76,1, 81,1, 95,1, 109,1, -1}, // Cadrona
- {-1}, // FBI Truck [ NO DATA FOUND]
- {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1}, // Willard
- {110,1, 111,1, 112,1, 114,1, 119,1, 122,1, 4,1, 13,1, -1}, // Forklift
- {2,35, 36,2, 51,53, 91,2, 11,22, 40,35, -1}, // Tractor
- {-1}, // Combine [NO DATA FOUND]
- {73,1, 74,1, 75,1, 77,1, 79,1, 83,1, 84,1, 91,1, -1}, // Feltzer
- {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1}, // Remington
- {3,1, 28,1, 31,1, 55,1, 66,1, 97,1, 123,1, 118,1, -1}, // Slamvan
- {9,1, 12,1, 26,96, 30,96, 32,1, 37,1, 57,96, 71,96, -1}, // Blade
- {1,1, -1}, // Freight
- {1,1, -1}, // Streak
- {96,67, 86,70, 79,74, 70,86, 61,98, 75,75, 75,91, -1}, // Vortex
- {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1}, // Vincent
- {51,1, 58,8, 60,1, 68,8, 2,1, 13,8, 22,1, 36,8, -1}, // Bullet
- {13,118, 24,118, 31,93, 32,92, 45,92, 113,92, 119,113, 122,113, -1}, // Clover
- {76,8, 32,8, 43,8, 67,8, 11,11, 8,90, 2,2, 83,13, -1}, // Sadler
- {3,1, -1}, // Firetruck LA (Ladder Truck)
- {50,1, 47,1, 44,96, 40,96, 39,1, 30,1, 28,96, 9,96, -1}, // Hustler
- {62,37, 78,38, 2,62, 3,87, 2,78, 113,78, 119,62, 7,78, -1}, // Intruder
- {122,1, 123,1, 125,1, 10,1, 24,1, 37,1, 55,1, 66,1, -1}, // Primo
- {1,1, -1}, // Cargobob
- {74,39, 72,39, 75,39, 79,39, 83,36, 84,36, 89,35, 91,35, -1}, // Tampa
- {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1}, // Sunrise
- {67,1, 72,1, 75,1, 83,1, 91,1, 101,1, 109,1, 20,1, -1}, // Merit
- {56,56, 49,49, 26,124, -1}, // Utility
- {38,9, 55,23, 61,74, 71,87, 91,87, 98,114, 102,119, 111,3, -1}, // Nevada
- {53,32, 15,32, 45,32, 34,30, 65,32, 14,32, 12,32, 43,32, -1}, // Yosemite
- {51,1, 58,1, 60,1, 68,1, 2,1, 13,1, 22,1, 36,1, -1}, // Windsor
- {1,1, -1}, // Monster A
- {1,1, -1}, // Monster B
- {112,1, 116,1, 117,1, 24,1, 30,1, 35,1, 36,1, 40,1, -1}, // Uranus
- {51,1, 58,8, 60,1, 68,8, 2,1, 13,8, 22,1, 36,8, -1}, // Jester
- {52,39, 9,39, 17,1, 21,1, 33,0, 37,0, 41,29, 56,29, -1}, // Sultan
- {57,8, 8,17, 43,21, 54,38, 67,8, 37,78, 65,79, 25,78, -1}, // Stratum
- {36,1, 35,1, 17,1, 11,1, 116,1, 113,1, 101,1, 92,1, -1}, // Elegy
- {1,6, -1}, // Raindance
- {-1}, // RC Tiger [NO DATA FOUND]
- {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1}, // Flash
- {109,1, 30,8, 95,1, 84,8, 83,1, 72,8, 71,1, 52,8, -1}, // Tahoma
- {97,96, 88,64, 90,96, 93,64, 97,96, 99,81, 102,114, 114,1, -1}, // Savanna
- {2,39, 9,39, 17,1, 21,1, 33,0, 37,0, 41,29, 56,29, -1}, // Bandito
- {1,1, -1}, // Freight Flat Carriage
- {1,1, -1}, // Streak Carriage
- {2,35, 36,2, 51,53, 91,2, 11,22, 40,35, -1}, // Kart
- {94,1, 101,1, 116,1, 117,1, 4,1, 25,1, 30,1, 37,1, -1}, // Mower
- {91,38, 115,43, 85,6, 79,7, 78,8, 77,18, 79,18, 86,24, -1}, // Duneride
- {26,26, -1}, // Sweeper
- {12,1, 19,96, 31,64, 25,96, 38,1, 51,96, 57,1, 66,96, -1}, // Broadway
- {67,1, 68,96, 72,1, 74,8, 75,96, 76,8, 79,1, 84,96, -1}, // Tornado
- {1,3, 8,7, 8,10, 8,16, 23,31, 40,44, -1}, // AT-400
- {1,1, -1}, // DFT-30
- {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1}, // Huntley
- {92,92, 81,81, 67,67, 66,66, 61,61, 53,53, 51,51, 47,47, 43,43, -1}, // Stafford
- {54,1, 58,1, 66,1, 72,1, 75,1, 87,1, 101,1, 36,1, -1}, // BF-400
- {41,10, 41,20, 49,11, 56,123, 110,113, 112,116, 114,118, 119,101, -1}, // Newsvan/news Van
- {1,1, -1}, // Tug
- {1,1, -1}, // Petrol Trailer
- {37,37, 42,42, 53,53, 62,62, 7,7, 10,10, 11,11, 15,15, -1}, // Emperor
- {119,1, 122,1, 8,1, 10,1, 13,1, 25,1, 27,1, 32,1, -1}, // Wayfarer
- {36,1, 40,1, 43,1, 53,1, 72,1, 75,1, 95,1, 101,1, -1}, // Euros
- {1,1, -1}, // Hotdog
- {37,37, 31,31, 23,23, 22,22, 7,7, 124,124, 114,114, 112,112, -1}, // Club
- {-1}, // Freight Box Carriage [NO DATA FOUND]
- {1,1, -1}, // Articulated Trailer 3
- {1,1, -1}, // Andromada
- {51,1, 58,8, 60,1, 68,8, 2,1, 13,8, 22,1, 36,8, -1}, // Dodo
- {-1}, // RC Cam [NO DATA FOUND]
- {112,20, -1}, // Launch
- {0,1, -1}, // Cop Car LSPD
- {0,1, -1}, // Cop Car SFPD
- {0,1, -1}, // Cop Car LVPD
- {0,1, -1}, // Cop Car Ranger (Police Ranger)
- {81,8, 32,8, 43,8, 67,8, 11,11, 8,90, 2,2, 83,13, -1}, // Picador
- {1,1, -1}, // Swatvan S.W.A.T Van
- {58,1, 69,1, 75,77, 18,1, 32,1, 45,45, 13,1, 34,1, -1}, // Alpha
- {58,1, 69,1, 75,77, 18,1, 32,1, 45,45, 13,1, 34,1, -1}, // Phoenix
- {67,76, 68,76, 78,76, 2,76, 16,76, 18,76, 25,76, 45,88, -1}, // Glendale Shit
- {61,8, 32,8, 43,8, 67,8, 11,11, 8,90, 2,2, 83,13, -1}, // Sadler Shit
- {-1}, // Baggage Box A [NO DATA FOUND]
- {-1}, // Baggage Box B [NO DATA FOUND]
- {1,1, -1}, // Tug Stairs
- {36,36, -1}, // Burglary Boxville
- {-1}, // Farm Plow Trailer [NO DATA FOUND]
- {-1} // Utility Trailer [NO DATA FOUND]
- };
- static stock const
- vSync_gVehSeats[212] = {
- 4,2,2,2,4,4,1,2,2,4,
- 2,2,2,4,2,2,4,2,4,2,
- 4,2,2,2,2,1,4,4,4,2,
- 1,9,1,2,2,1,2,9,4,2,
- 4,1,2,2,2,4,1,2,1,2,
- 1,2,1,1,1,2,2,2,4,4,
- 2,2,2,2,1,1,4,4,2,2,
- 4,2,1,1,2,2,1,2,2,4,
- 2,1,2,3,1,1,1,4,2,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,1,
- 1,2,2,2,2,2,2,2,2,4,
- 1,1,1,2,2,2,2,2,2,1,
- 4,2,2,2,2,2,4,4,2,2,
- 4,4,2,1,2,2,2,2,2,2,
- 4,4,2,2,1,2,4,4,1,1,
- 1,1,1,2,1,2,2,2,2,4,
- 4,2,4,1,1,4,2,2,2,2,
- 1,1,2,2,1,1,4,4,4,2,
- 2,2,2,2,4,2,1,1,1,4,
- 1,1
- };
- static stock const
- Float:vSync_gPaynSprayPos[10][3] = {
- {1025.05, -1024.23, 32.1}, // LS Temple
- {487.68, -1740.87, 11.13}, // LS Santa Maria
- {-1420.73, 2583.37, 55.56}, // El Quebrados
- {-1904.39, 284.97, 40.75}, // Wang Cars
- {-2425.91, 1022.33, 50.10}, // Juniper Hill
- {1975.60, 2162.16, 10.77}, // LV Redsands
- {2065.38, -1831.51, 13.25}, // Idlewood
- {-99.55, 1118.36, 19.44}, // Fort Carson
- {721.07, -455.94, 16.04}, // Dillimore
- {2393.74, 1493.01, 10.52} // LV Unused (Pyramid)
- };
- // ================================== [HOOKED FUNCTIONS] ================================== //
- /* - CreateVehicle - */
- stock vSync_CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, addsiren=0)
- {
- // Check vehicle's model ID.
- if(!(400 <= modelid <= 611))
- {
- return INVALID_VEHICLE_ID;
- }
- // Add siren to the Firetruck (ladder variant), by default it's disabled.
- if(modelid == 544)
- {
- addsiren = 1;
- }
- // Generate random colors (if it proceeds)
- if((color1 == -1 || color2 == -1) && vSync_gVehDefaultColors[modelid - 400][0] != -1)
- {
- new idx;
- for(new i = 0; i <= MAX_COLOR_PAIRS; i++)
- {
- if(vSync_gVehDefaultColors[modelid - 400][i] == -1)
- {
- idx = i;
- break;
- }
- }
- new rand_col = random(idx);
- if(isodd(rand_col))
- {
- rand_col--;
- }
- if(color1 == -1)
- {
- color1 = vSync_gVehDefaultColors[modelid - 400][rand_col];
- }
- if(color2 == -1)
- {
- color2 = vSync_gVehDefaultColors[modelid - 400][rand_col + 1];
- }
- }
- new vehicleid = CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:rotation, color1, color1, respawn_delay, addsiren);
- // Check vehicle's ID (to avoid using INVALID_VEHICLE_ID as array index).
- if(1 <= vehicleid <= MAX_VEHICLES)
- {
- SetVehicleHealth(vehicleid, 999.0);
- vSync_gVehicleInternal[vehicleid - 1][vSync_Color1] = color1;
- vSync_gVehicleInternal[vehicleid - 1][vSync_Color2] = color2;
- vSync_gVehicleInternal[vehicleid - 1][vSync_OrgCol1] = color1;
- vSync_gVehicleInternal[vehicleid - 1][vSync_OrgCol2] = color2;
- vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob] = 3;
- vSync_gVehicleInternal[vehicleid - 1][vSync_Interior] = 0;
- strcpy(vSync_gVehicleInternal[vehicleid - 1][vSync_NumberP], "XYZSR998", 32);
- CallRemoteFunction("OnVehicleCreated", "i", vehicleid);
- }
- return vehicleid;
- }
- #if defined _ALS_CreateVehicle
- #undef CreateVehicle
- #else
- #define _ALS_CreateVehicle
- #endif
- #define CreateVehicle vSync_CreateVehicle
- // --------------------------------------------------------------------------//
- /* - AddStaticVehicle - */
- stock vSync_AddStaticVehicle(modelid, Float:x, Float:y, Float:z, Float:rotation, color1, color2)
- {
- // Check vehicle's model ID.
- if(!(400 <= modelid <= 611))
- {
- return INVALID_VEHICLE_ID;
- }
- // Generate random colors (if it proceeds)
- if((color1 == -1 || color2 == -1) && vSync_gVehDefaultColors[modelid - 400][0] != -1)
- {
- new idx;
- for(new i = 0; i <= MAX_COLOR_PAIRS; i++)
- {
- if(vSync_gVehDefaultColors[modelid - 400][i] == -1)
- {
- idx = i;
- break;
- }
- }
- new rand_col = random(idx);
- if(isodd(rand_col))
- {
- rand_col--;
- }
- if(color1 == -1)
- {
- color1 = vSync_gVehDefaultColors[modelid - 400][rand_col];
- }
- if(color2 == -1)
- {
- color2 = vSync_gVehDefaultColors[modelid - 400][rand_col + 1];
- }
- }
- new vehicleid = AddStaticVehicle(modelid, Float:x, Float:y, Float:z, Float:rotation, color1, color1);
- // Check vehicle's ID (to avoid using INVALID_VEHICLE_ID as array index).
- if(1 <= vehicleid <= MAX_VEHICLES)
- {
- SetVehicleHealth(vehicleid, 999.0);
- vSync_gVehicleInternal[vehicleid - 1][vSync_Color1] = color1;
- vSync_gVehicleInternal[vehicleid - 1][vSync_Color2] = color2;
- vSync_gVehicleInternal[vehicleid - 1][vSync_OrgCol1] = color1;
- vSync_gVehicleInternal[vehicleid - 1][vSync_OrgCol2] = color2;
- vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob] = 3;
- vSync_gVehicleInternal[vehicleid - 1][vSync_Interior] = 0;
- strcpy(vSync_gVehicleInternal[vehicleid - 1][vSync_NumberP], "XYZSR998", 32);
- CallRemoteFunction("OnVehicleCreated", "i", vehicleid);
- }
- return vehicleid;
- }
- #if defined _ALS_AddStaticVehicle
- #undef AddStaticVehicle
- #else
- #define _ALS_AddStaticVehicle
- #endif
- #define AddStaticVehicle vSync_AddStaticVehicle
- // --------------------------------------------------------------------------//
- /* - AddStaticVehicleEx - */
- stock vSync_AddStaticVehicleEx(modelid, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, addsiren=0)
- {
- // Check vehicle's model ID.
- if(!(400 <= modelid <= 611))
- {
- return INVALID_VEHICLE_ID;
- }
- // Add siren to the Firetruck (ladder variant), by default it's disabled.
- if(modelid == 544)
- {
- addsiren = 1;
- }
- // Generate random colors (if it proceeds)
- if((color1 == -1 || color2 == -1) && vSync_gVehDefaultColors[modelid - 400][0] != -1)
- {
- new idx;
- for(new i = 0; i <= MAX_COLOR_PAIRS; i++)
- {
- if(vSync_gVehDefaultColors[modelid - 400][i] == -1)
- {
- idx = i;
- break;
- }
- }
- new rand_col = random(idx);
- if(isodd(rand_col))
- {
- rand_col--;
- }
- if(color1 == -1)
- {
- color1 = vSync_gVehDefaultColors[modelid - 400][rand_col];
- }
- if(color2 == -1)
- {
- color2 = vSync_gVehDefaultColors[modelid - 400][rand_col + 1];
- }
- }
- new vehicleid = AddStaticVehicleEx(modelid, Float:x, Float:y, Float:z, Float:rotation, color1, color1, respawn_delay, addsiren);
- // Check vehicle's ID (to avoid using INVALID_VEHICLE_ID as array index).
- if(1 <= vehicleid <= MAX_VEHICLES)
- {
- SetVehicleHealth(vehicleid, 999.0);
- vSync_gVehicleInternal[vehicleid - 1][vSync_Color1] = color1;
- vSync_gVehicleInternal[vehicleid - 1][vSync_Color2] = color2;
- vSync_gVehicleInternal[vehicleid - 1][vSync_OrgCol1] = color1;
- vSync_gVehicleInternal[vehicleid - 1][vSync_OrgCol2] = color2;
- vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob] = 3;
- vSync_gVehicleInternal[vehicleid - 1][vSync_Interior] = 0;
- strcpy(vSync_gVehicleInternal[vehicleid - 1][vSync_NumberP], "XYZSR998", 32);
- CallRemoteFunction("OnVehicleCreated", "i", vehicleid);
- }
- return vehicleid;
- }
- #if defined _ALS_AddStaticVehicleEx
- #undef AddStaticVehicleEx
- #else
- #define _ALS_AddStaticVehicleEx
- #endif
- #define AddStaticVehicleEx vSync_AddStaticVehicleEx
- // --------------------------------------------------------------------------//
- /* - SetVehicleNumberPlate - */
- stock vSync_SetVehicleNumberPlate(vehicleid, numberplate[])
- {
- if(1 <= vehicleid <= MAX_VEHICLES)
- {
- strcpy(vSync_gVehicleInternal[vehicleid - 1][vSync_NumberP], numberplate, 32);
- return SetVehicleNumberPlate(vehicleid, numberplate);
- }
- return 0;
- }
- #if defined _ALS_SetVehicleNumberPlate
- #undef SetVehicleNumberPlate
- #else
- #define _ALS_SetVehicleNumberPlate
- #endif
- #define SetVehicleNumberPlate vSync_SetVehicleNumberPlate
- // --------------------------------------------------------------------------//
- /* - LinkVehicleToInterior - */
- stock vSync_LinkVehicleToInterior(vehicleid, interior)
- {
- if(1 <= vehicleid <= MAX_VEHICLES)
- {
- vSync_gVehicleInternal[vehicleid - 1][vSync_Interior] = interior;
- return LinkVehicleToInterior(vehicleid, interior);
- }
- return 0;
- }
- #if defined _ALS_LinkVehicleToInterior
- #undef LinkVehicleToInterior
- #else
- #define _ALS_LinkVehicleToInterior
- #endif
- #define LinkVehicleToInterior vSync_LinkVehicleToInterior
- // --------------------------------------------------------------------------//
- /* - ChangeVehicleColor - */
- stock vSync_ChangeVehicleColor(vehicleid, color1, color2)
- {
- new modelid = GetVehicleModel(vehicleid);
- if(!(400 <= modelid <= 611))
- {
- return 0;
- }
- // Generate random colors (if it proceeds)
- if((color1 == -1 || color2 == -1) && vSync_gVehDefaultColors[modelid - 400][0] != -1)
- {
- new idx;
- for(new i = 0; i <= MAX_COLOR_PAIRS; i++)
- {
- if(vSync_gVehDefaultColors[modelid - 400][i] == -1)
- {
- idx = i;
- break;
- }
- }
- new rand_col = random(idx);
- if(isodd(rand_col))
- {
- rand_col--;
- }
- if(color1 == -1)
- {
- color1 = vSync_gVehDefaultColors[modelid - 400][rand_col];
- }
- if(color2 == -1)
- {
- color2 = vSync_gVehDefaultColors[modelid - 400][rand_col + 1];
- }
- }
- vSync_gVehicleInternal[vehicleid - 1][vSync_Color1] = color1;
- vSync_gVehicleInternal[vehicleid - 1][vSync_Color2] = color2;
- return ChangeVehicleColor(vehicleid, vSync_gVehicleInternal[vehicleid - 1][vSync_Color1], vSync_gVehicleInternal[vehicleid - 1][vSync_Color2]);
- }
- #if defined _ALS_ChangeVehicleColor
- #undef ChangeVehicleColor
- #else
- #define _ALS_ChangeVehicleColor
- #endif
- #define ChangeVehicleColor vSync_ChangeVehicleColor
- // --------------------------------------------------------------------------//
- /* - ChangeVehiclePaintjob - */
- stock vSync_ChangeVehiclePaintjob(vehicleid, paintjobid)
- {
- if(1 <= vehicleid <= MAX_VEHICLES)
- {
- vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob] = paintjobid;
- ChangeVehiclePaintjob(vehicleid, vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob]);
- ChangeVehicleColor(vehicleid, vSync_gVehicleInternal[vehicleid - 1][vSync_Color1], vSync_gVehicleInternal[vehicleid - 1][vSync_Color2]);
- return 1;
- }
- return 1;
- }
- #if defined _ALS_ChangeVehiclePaintjob
- #undef ChangeVehiclePaintjob
- #else
- #define _ALS_ChangeVehiclePaintjob
- #endif
- #define ChangeVehiclePaintjob vSync_ChangeVehiclePaintjob
- // ================================== [HOOKED CALLBACKS] ================================== //
- public OnPlayerUpdate(playerid)
- {
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
- {
- new Float:v_health;
- new vehicleid = GetPlayerVehicleID(playerid);
- GetVehicleHealth(vehicleid, v_health);
- if(v_health >= 1000.0)
- {
- SetVehicleHealth(vehicleid, 999.0);
- if(IsPlayerInsidePNS(playerid))
- {
- ChangeVehicleColor(vehicleid, -1, -1);
- CallRemoteFunction("OnVehicleRespray", "iiii", playerid, vehicleid, vSync_gVehicleInternal[vehicleid - 1][vSync_Color1], vSync_gVehicleInternal[vehicleid - 1][vSync_Color2]);
- }
- }
- }
- #if defined vSync_OnPlayerUpdate
- return vSync_OnPlayerUpdate(playerid);
- #else
- return 1;
- #endif
- }
- #if defined vSync_OnPlayerUpdate
- forward vSync_OnPlayerUpdate(playerid);
- #endif
- #if defined _ALS_OnPlayerUpdate
- #undef OnPlayerUpdate
- #else
- #define _ALS_OnPlayerUpdate
- #endif
- #define OnPlayerUpdate vSync_OnPlayerUpdate
- // --------------------------------------------------------------------------//
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(RELEASED(KEY_SPRINT))
- {
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && vSync_pBuyingPaintjob{playerid} == true && GetTickDiff(GetTickCount(), vSync_pTick[playerid]) > 50 && GetPlayerMoney(playerid) >= 500)
- {
- new vehicleid = GetPlayerVehicleID(playerid);
- vSync_pBuyingPaintjob{playerid} = false;
- vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob] = vSync_pPaintjobID[playerid];
- CallRemoteFunction("OnVehicleChangePaintjob", "iii", playerid, vehicleid, vSync_pPaintjobID[playerid]);
- }
- }
- if(RELEASED(KEY_SECONDARY_ATTACK))
- {
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && vSync_pBuyingPaintjob{playerid} == true)
- {
- vSync_pBuyingPaintjob{playerid} = false;
- }
- }
- #if defined vSync_OnPlayerKeyStateChange
- return vSync_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
- #else
- return 1;
- #endif
- }
- #if defined vSync_OnPlayerKeyStateChange
- forward vSync_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
- #endif
- #if defined _ALS_OnPlayerKeyStateChange
- #undef OnPlayerKeyStateChange
- #else
- #define _ALS_OnPlayerKeyStateChange
- #endif
- #define OnPlayerKeyStateChange vSync_OnPlayerKeyStateChange
- // --------------------------------------------------------------------------//
- public OnEnterExitModShop(playerid, enterexit, interiorid)
- {
- new vehicleid = GetPlayerVehicleID(playerid);
- new max_passengers = GetVehicleSeats(GetVehicleModel(vehicleid));
- new count_passengers;
- if(enterexit)
- {
- SetVehicleVirtualWorld(vehicleid, playerid);
- for(new x = 0, t = GetPlayerPoolSize(); x <= t; x++)
- {
- if(!IsPlayerConnected(playerid)) continue;
- if(GetPlayerVehicleID(x) == vehicleid)
- {
- SetPlayerVirtualWorld(x, playerid);
- count_passengers++;
- if(count_passengers >= max_passengers)
- {
- break;
- }
- }
- }
- }
- else
- {
- SetVehicleVirtualWorld(vehicleid, 0);
- for(new x = 0, t = GetPlayerPoolSize(); x <= t; x++)
- {
- if(!IsPlayerConnected(playerid)) continue;
- if(GetPlayerVehicleID(x) == vehicleid)
- {
- SetPlayerVirtualWorld(x, 0);
- count_passengers++;
- if(count_passengers >= max_passengers)
- {
- break;
- }
- }
- }
- }
- #if defined vSync_OnEnterExitModShop
- return vSync_OnEnterExitModShop(playerid, enterexit, interiorid);
- #else
- return 1;
- #endif
- }
- #if defined vSync_OnEnterExitModShop
- forward vSync_OnEnterExitModShop(playerid, enterexit, interiorid);
- #endif
- #if defined _ALS_OnEnterExitModShop
- #undef OnEnterExitModShop
- #else
- #define _ALS_OnEnterExitModShop
- #endif
- #define OnEnterExitModShop vSync_OnEnterExitModShop
- // --------------------------------------------------------------------------//
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- if(paintjobid <= 2)
- {
- if(paintjobid != vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob])
- {
- vSync_pTick[playerid] = GetTickCount();
- vSync_pPaintjobID[playerid] = paintjobid;
- vSync_pBuyingPaintjob{playerid} = true;
- }
- }
- #if defined vSync_OnVehiclePaintjob
- return vSync_OnVehiclePaintjob(playerid, vehicleid, paintjobid);
- #else
- return 1;
- #endif
- }
- #if defined vSync_OnVehiclePaintjob
- forward vSync_OnVehiclePaintjob(playerid, vehicleid, paintjobid);
- #endif
- #if defined _ALS_OnVehiclePaintjob
- #undef OnVehiclePaintjob
- #else
- #define _ALS_OnVehiclePaintjob
- #endif
- #define OnVehiclePaintjob vSync_OnVehiclePaintjob
- // --------------------------------------------------------------------------//
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- if(vSync_pBuyingPaintjob{playerid} == true || (color1 == vSync_gVehicleInternal[vehicleid - 1][vSync_Color1] && color2 == vSync_gVehicleInternal[vehicleid - 1][vSync_Color2] && !IsPlayerInsidePNS(playerid)))
- {
- return 0;
- }
- vSync_gVehicleInternal[vehicleid - 1][vSync_Color1] = color1;
- vSync_gVehicleInternal[vehicleid - 1][vSync_Color2] = color2;
- #if defined vSync_OnVehicleRespray
- return vSync_OnVehicleRespray(playerid, vehicleid, color1, color2);
- #else
- return 1;
- #endif
- }
- #if defined vSync_OnVehicleRespray
- forward vSync_OnVehicleRespray(playerid, vehicleid, color1, color2);
- #endif
- #if defined _ALS_OnVehicleRespray
- #undef OnVehicleRespray
- #else
- #define _ALS_OnVehicleRespray
- #endif
- #define OnVehicleRespray vSync_OnVehicleRespray
- // --------------------------------------------------------------------------//
- public OnVehicleSpawn(vehicleid)
- {
- vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob] = 3;
- ChangeVehicleColor(vehicleid, vSync_gVehicleInternal[vehicleid - 1][vSync_OrgCol1], vSync_gVehicleInternal[vehicleid - 1][vSync_OrgCol2]);
- #if defined vSync_OnVehicleSpawn
- return vSync_OnVehicleSpawn(vehicleid);
- #else
- return 1;
- #endif
- }
- #if defined vSync_OnVehicleSpawn
- forward vSync_OnVehicleSpawn(vehicleid);
- #endif
- #if defined _ALS_OnVehicleSpawn
- #undef OnVehicleSpawn
- #else
- #define _ALS_OnVehicleSpawn
- #endif
- #define OnVehicleSpawn vSync_OnVehicleSpawn
- // ================================== [NEW FUNCTIONS] ================================== //
- stock GetVehicleColor(vehicleid, &color1, &color2)
- {
- if(1 <= vehicleid <= MAX_VEHICLES)
- {
- color1 = vSync_gVehicleInternal[vehicleid - 1][vSync_Color1];
- color2 = vSync_gVehicleInternal[vehicleid - 1][vSync_Color2];
- return 1;
- }
- return 0;
- }
- // --------------------------------------------------------------------------//
- stock GetVehiclePaintjob(vehicleid)
- {
- if(1 <= vehicleid <= MAX_VEHICLES)
- {
- return vSync_gVehicleInternal[vehicleid - 1][vSync_Paintjob];
- }
- return 255;
- }
- // --------------------------------------------------------------------------//
- stock GetVehicleNumberPlate(vehicleid, dest[], len = sizeof(dest))
- {
- if(1 <= vehicleid <= MAX_VEHICLES)
- {
- strcpy(dest, vSync_gVehicleInternal[vehicleid - 1][vSync_NumberP], len);
- return 1;
- }
- return 0;
- }
- // --------------------------------------------------------------------------//
- stock GetVehicleInterior(vehicleid)
- {
- if(1 <= vehicleid <= MAX_VEHICLES)
- {
- return vSync_gVehicleInternal[vehicleid - 1][vSync_Interior];
- }
- return 0;
- }
- // --------------------------------------------------------------------------//
- stock GetVehicleSeats(modelid)
- {
- if(400 <= modelid <= 611)
- {
- return vSync_gVehSeats[modelid - 400];
- }
- return -1;
- }
- // --------------------------------------------------------------------------//
- stock IsPlayerInsidePNS(playerid)
- {
- for(new i = 0; i < sizeof(vSync_gPaynSprayPos); i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 10.0, vSync_gPaynSprayPos[i][0], vSync_gPaynSprayPos[i][1], vSync_gPaynSprayPos[i][2]))
- {
- return 1;
- }
- }
- return 0;
- }
- // ================================== [OTHER FUNCTIONS] ================================== //
- stock GetTickDiff(newtick, oldtick)
- {
- if(oldtick < 0 && newtick >= 0)
- {
- return newtick - oldtick;
- }
- else if(oldtick >= 0 && newtick < 0 || oldtick > newtick)
- {
- return (cellmax - oldtick + 1) - (cellmin - newtick);
- }
- return newtick - oldtick;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement