Advertisement
yugecin

include

Feb 6th, 2013
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 9.07 KB | None | 0 0
  1. /*                                                                By irinel1996.
  2.                             GetVehicleColor by RyDeR`
  3.                             Keep the credits please.
  4.                                       (c) 2011-2012
  5. */
  6. #include <a_samp>
  7. #include <GetVehicleColor>
  8. //----------------------------------[MACROS]-----------------------------------//
  9. #define MAX_PCambio 100
  10. #define INVALID_CPID -1
  11. #define LABEL_COLOR 0xFF00EBFF
  12. #define CALLBACK:%0(%1) forward %0(%1);public %0(%1)
  13. //-----------------------------------[NEWS]------------------------------------//
  14. enum PicksCmb {
  15.     IDPC,
  16.     Type,
  17.     Float: PX,
  18.     Float: PY,
  19.     Float: PZ,
  20.     IDNewCar,
  21.     Text3D: p_text,
  22.     p_pickup
  23. };
  24. new PickCam[MAX_PCambio][PicksCmb], PickupC;
  25. static LastVehicleChange[MAX_PLAYERS];
  26. static LastNitro[MAX_PLAYERS];
  27. static LastRepair[MAX_PLAYERS];
  28.  
  29. static VNames[212][32] = {
  30.     "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
  31.     "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection",
  32.     "Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
  33.     "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
  34.     "Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
  35.     "Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina",
  36.     "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood",
  37.     "Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B",
  38.     "Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
  39.     "Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
  40.     "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
  41.     "Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A",
  42.     "Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
  43.     "Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor",
  44.     "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
  45.     "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
  46.     "Stair Trailer","Boxville","Farm Plow","Utility Trailer"
  47. };
  48.  
  49. //-------------------------------[FUNCTIONS]-----------------------------------//
  50. stock start_sveh() {
  51.     SetTimer("UpdatePos", 30, true);
  52.     return 1;
  53. }
  54.  
  55. stock CreateNitroPickup(Float: X, Float: Y, Float: Z, Texto[]) {
  56.     new IDPCmb = PickupC;
  57.     if (PickupC > MAX_PCambio - 1) {
  58.         print(">> ERROR: Pickups limit reached!");
  59.         IDPCmb = INVALID_CPID;
  60.         return IDPCmb;
  61.     }
  62.     PickupC++;
  63.     PickCam[IDPCmb][IDPC] = IDPCmb, PickCam[IDPCmb][Type] = 1;
  64.     PickCam[IDPCmb][PX] = X, PickCam[IDPCmb][PY] = Y, PickCam[IDPCmb][PZ] = Z;
  65.     PickCam[IDPCmb][p_pickup] = AddStaticPickup(1010, 23, X, Y, Z, -1);
  66.     if (strlen(Texto)) {
  67.         PickCam[IDPCmb][p_text] = Create3DTextLabel(Texto, LABEL_COLOR, X, Y, Z, 70.0, 0);
  68.     }
  69.     return 0;
  70. }
  71.  
  72. stock CreateRepairPickup(Model, Float: X, Float: Y, Float: Z, Texto[]) //Model, recommended = 1248.
  73. {
  74.     new IDPCmb = PickupC;
  75.     if (PickupC > MAX_PCambio - 1) {
  76.         print(">> ERROR: Pickups limit reached!");
  77.         IDPCmb = INVALID_CPID;
  78.         return IDPCmb;
  79.     }
  80.     PickupC++;
  81.     PickCam[IDPCmb][IDPC] = IDPCmb, PickCam[IDPCmb][Type] = 2;
  82.     PickCam[IDPCmb][PX] = X, PickCam[IDPCmb][PY] = Y, PickCam[IDPCmb][PZ] = Z;
  83.     PickCam[IDPCmb][p_pickup] = AddStaticPickup(Model, 23, X, Y, Z, -1);
  84.     if (strlen(Texto)) {
  85.         PickCam[IDPCmb][p_text] = Create3DTextLabel(Texto, LABEL_COLOR, X, Y, Z, 70.0, 0);
  86.     }
  87.     return 0;
  88. }
  89.  
  90. stock CreateChangeVeh(Model, NewCar, Float: X, Float: Y, Float: Z, Texto[]) {
  91.     new IDPCmb = PickupC;
  92.     if (PickupC > MAX_PCambio - 1) {
  93.         print(">> ERROR: Pickups limit reached!");
  94.         IDPCmb = INVALID_CPID;
  95.         return IDPCmb;
  96.     }
  97.     PickupC++;
  98.     PickCam[IDPCmb][Type] = 0;
  99.     PickCam[IDPCmb][IDPC] = IDPCmb, PickCam[IDPCmb][IDNewCar] = NewCar;
  100.     PickCam[IDPCmb][PX] = X, PickCam[IDPCmb][PY] = Y, PickCam[IDPCmb][PZ] = Z;
  101.     PickCam[IDPCmb][p_pickup] = AddStaticPickup(Model, 23, X, Y, Z, -1);
  102.     if(strlen(Texto)){
  103.         PickCam[IDPCmb][p_text] = Create3DTextLabel(VNames[NewCar-400], LABEL_COLOR, X, Y, Z, 70.0, 0);
  104.     }
  105.     return 0;
  106. }
  107.  
  108. stock DeleteAllCCVPickups() {
  109.     for (new i = 0; i < MAX_PCambio; i++) {
  110.         Delete3DTextLabel(PickCam[i][p_text]);
  111.         DestroyPickup(PickCam[i][p_pickup]);
  112.     }
  113. }
  114.  
  115. ScarMaxPC() {
  116.     return PickupC;
  117. }
  118.  
  119. CALLBACK:UpdatePos() {
  120.     for (new pcsc = 0; pcsc < ScarMaxPC(); pcsc++) {
  121.         if (PickCam[pcsc][IDPC] != INVALID_CPID) {
  122.             ChangeVeh(pcsc);
  123.         }
  124.     }
  125. }
  126.  
  127. CALLBACK:ChangeVeh(IDPCmb) {
  128.     for (new i = 0; i < MAX_PLAYERS; i++) {
  129.         if (IsPlayerConnected(i)) {
  130.             if (IsPlayerInAnyVehicle(i)/* && JustUsed[i] == 0*/) {
  131.                 new vehicleid = GetPlayerVehicleID(i), color1, color2;
  132.                 if(IsVehicleInRangeOfPoint(vehicleid, 3, PickCam[IDPCmb][PX], PickCam[IDPCmb][PY], PickCam[IDPCmb][PZ])) {
  133.                     if(PickCam[IDPCmb][Type] == 0 && LastVehicleChange[i] != IDPCmb && PickCam[IDPCmb][IDNewCar] != GetVehicleModel(vehicleid)) {
  134.                         PlayerPlaySound(i, 1054, 0.0, 0.0, 0.0);
  135.                         new Float: Velocidad[3],
  136.                         Float: X,
  137.                         Float: Y,
  138.                         Float: Z,
  139.                         Float: Angulo;
  140.                         GetVehiclePos(vehicleid, X, Y, Z);
  141.                         GetVehicleZAngle(vehicleid, Angulo);
  142.                         GetVehicleVelocity(vehicleid, Velocidad[0], Velocidad[1], Velocidad[2]);
  143.                         GetVehicleColor(vehicleid, color1, color2);
  144.                         DestroyVehicle(vehicleid);
  145.                         new NewVeh = CreateVehicle(PickCam[IDPCmb][IDNewCar], X, Y, (PickCam[IDPCmb][IDNewCar] == 425 ? Z + 800 : Z), Angulo, color1, color2, 180);
  146.                         PutPlayerInVehicle(i, NewVeh, 0);
  147.                         SetVehicleVelocity(NewVeh, Velocidad[0], Velocidad[1], Velocidad[2]);
  148.                         LastVehicleChange[i] = IDPCmb;
  149.                     }
  150.                     if (LastNitro[i] != IDPCmb && PickCam[IDPCmb][Type] == 1) {
  151.                         PlayerPlaySound(i, 1133, 0.0, 0.0, 0.0);
  152.                         AddVehicleComponent(vehicleid, 1010);
  153.                         LastNitro[i] = IDPCmb;
  154.                     }
  155.                     if (LastRepair[i] != IDPCmb && PickCam[IDPCmb][Type] == 2) {
  156.                         PlayerPlaySound(i, 1133, 0.0, 0.0, 0.0);
  157.                         RepairVehicle(vehicleid);
  158.                         LastRepair[i] = IDPCmb;
  159.                     }
  160.                     //SetTimerEx("ReactivarT", 900, 0, "i", i);
  161.                 } else {
  162.                     if(LastVehicleChange[i] == IDPCmb) LastVehicleChange[i] = -1;
  163.                     if(LastNitro[i] == IDPCmb) LastNitro[i] = -1;
  164.                     if(LastRepair[i] == IDPCmb) LastRepair[i] = -1;
  165.                 }
  166.             }
  167.         }
  168.     }
  169.     return 1;
  170. }
  171.  
  172. /*
  173. CALLBACK:ReactivarT(playerid) {
  174.     JustUsed[playerid] = 0;
  175.     return 1;
  176. }*/
  177.  
  178. IsVehicleInRangeOfPoint(vehicleid, Float: vrange, Float: x, Float: y, Float: z) //I don't know who made this, sorry.
  179. {
  180.     new Float: oldpos[3],
  181.     Float: temppos[3];
  182.     GetVehiclePos(vehicleid, oldpos[0], oldpos[1], oldpos[2]);
  183.     temppos[0] = (oldpos[0] - x);
  184.     temppos[1] = (oldpos[1] - y);
  185.     temppos[2] = (oldpos[2] - z);
  186.     if (((temppos[0] < vrange) && (temppos[0] > -vrange)) && ((temppos[1] < vrange) && (temppos[1] > -vrange)) && ((temppos[2] < vrange) && (temppos[2] > -vrange))) {
  187.         return 1;
  188.     }
  189.     return 0;
  190. }
  191.  
  192. stock DeleteAllChangePickups() {
  193.     for (new x, t = ScarMaxPC(); x < t; x++) {
  194.         PickCam[x][IDPC] = INVALID_CPID;
  195.     }
  196.     PickupC = 0;
  197.     return 1;
  198. }
  199.  
  200. stock DeleteAllDMPickups() {
  201.     for (new i = 0; i < MAX_PCambio; i++) {
  202.         Delete3DTextLabel(PickCam[i][p_text]);
  203.         DestroyPickup(PickCam[i][p_pickup]);
  204.         PickCam[i][IDPC] = INVALID_CPID;
  205.         PickupC = 0;
  206.     }
  207. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement