Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* By irinel1996.
- GetVehicleColor by RyDeR`
- Keep the credits please.
- (c) 2011-2012
- */
- #include <a_samp>
- #include <GetVehicleColor>
- //----------------------------------[MACROS]-----------------------------------//
- #define MAX_PCambio 100
- #define INVALID_CPID -1
- #define LABEL_COLOR 0xFF00EBFF
- #define CALLBACK:%0(%1) forward %0(%1);public %0(%1)
- //-----------------------------------[NEWS]------------------------------------//
- enum PicksCmb {
- IDPC,
- Type,
- Float: PX,
- Float: PY,
- Float: PZ,
- IDNewCar,
- Text3D: p_text,
- p_pickup
- };
- new PickCam[MAX_PCambio][PicksCmb], PickupC;
- static LastVehicleChange[MAX_PLAYERS];
- static LastNitro[MAX_PLAYERS];
- static LastRepair[MAX_PLAYERS];
- static VNames[212][32] = {
- "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus",
- "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection",
- "Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie",
- "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder",
- "Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider",
- "Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina",
- "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood",
- "Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B",
- "Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain",
- "Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck",
- "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover",
- "Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A",
- "Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
- "Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor",
- "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)",
- "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B",
- "Stair Trailer","Boxville","Farm Plow","Utility Trailer"
- };
- //-------------------------------[FUNCTIONS]-----------------------------------//
- stock start_sveh() {
- SetTimer("UpdatePos", 30, true);
- return 1;
- }
- stock CreateNitroPickup(Float: X, Float: Y, Float: Z, Texto[]) {
- new IDPCmb = PickupC;
- if (PickupC > MAX_PCambio - 1) {
- print(">> ERROR: Pickups limit reached!");
- IDPCmb = INVALID_CPID;
- return IDPCmb;
- }
- PickupC++;
- PickCam[IDPCmb][IDPC] = IDPCmb, PickCam[IDPCmb][Type] = 1;
- PickCam[IDPCmb][PX] = X, PickCam[IDPCmb][PY] = Y, PickCam[IDPCmb][PZ] = Z;
- PickCam[IDPCmb][p_pickup] = AddStaticPickup(1010, 23, X, Y, Z, -1);
- if (strlen(Texto)) {
- PickCam[IDPCmb][p_text] = Create3DTextLabel(Texto, LABEL_COLOR, X, Y, Z, 70.0, 0);
- }
- return 0;
- }
- stock CreateRepairPickup(Model, Float: X, Float: Y, Float: Z, Texto[]) //Model, recommended = 1248.
- {
- new IDPCmb = PickupC;
- if (PickupC > MAX_PCambio - 1) {
- print(">> ERROR: Pickups limit reached!");
- IDPCmb = INVALID_CPID;
- return IDPCmb;
- }
- PickupC++;
- PickCam[IDPCmb][IDPC] = IDPCmb, PickCam[IDPCmb][Type] = 2;
- PickCam[IDPCmb][PX] = X, PickCam[IDPCmb][PY] = Y, PickCam[IDPCmb][PZ] = Z;
- PickCam[IDPCmb][p_pickup] = AddStaticPickup(Model, 23, X, Y, Z, -1);
- if (strlen(Texto)) {
- PickCam[IDPCmb][p_text] = Create3DTextLabel(Texto, LABEL_COLOR, X, Y, Z, 70.0, 0);
- }
- return 0;
- }
- stock CreateChangeVeh(Model, NewCar, Float: X, Float: Y, Float: Z, Texto[]) {
- new IDPCmb = PickupC;
- if (PickupC > MAX_PCambio - 1) {
- print(">> ERROR: Pickups limit reached!");
- IDPCmb = INVALID_CPID;
- return IDPCmb;
- }
- PickupC++;
- PickCam[IDPCmb][Type] = 0;
- PickCam[IDPCmb][IDPC] = IDPCmb, PickCam[IDPCmb][IDNewCar] = NewCar;
- PickCam[IDPCmb][PX] = X, PickCam[IDPCmb][PY] = Y, PickCam[IDPCmb][PZ] = Z;
- PickCam[IDPCmb][p_pickup] = AddStaticPickup(Model, 23, X, Y, Z, -1);
- if(strlen(Texto)){
- PickCam[IDPCmb][p_text] = Create3DTextLabel(VNames[NewCar-400], LABEL_COLOR, X, Y, Z, 70.0, 0);
- }
- return 0;
- }
- stock DeleteAllCCVPickups() {
- for (new i = 0; i < MAX_PCambio; i++) {
- Delete3DTextLabel(PickCam[i][p_text]);
- DestroyPickup(PickCam[i][p_pickup]);
- }
- }
- ScarMaxPC() {
- return PickupC;
- }
- CALLBACK:UpdatePos() {
- for (new pcsc = 0; pcsc < ScarMaxPC(); pcsc++) {
- if (PickCam[pcsc][IDPC] != INVALID_CPID) {
- ChangeVeh(pcsc);
- }
- }
- }
- CALLBACK:ChangeVeh(IDPCmb) {
- for (new i = 0; i < MAX_PLAYERS; i++) {
- if (IsPlayerConnected(i)) {
- if (IsPlayerInAnyVehicle(i)/* && JustUsed[i] == 0*/) {
- new vehicleid = GetPlayerVehicleID(i), color1, color2;
- if(IsVehicleInRangeOfPoint(vehicleid, 3, PickCam[IDPCmb][PX], PickCam[IDPCmb][PY], PickCam[IDPCmb][PZ])) {
- if(PickCam[IDPCmb][Type] == 0 && LastVehicleChange[i] != IDPCmb && PickCam[IDPCmb][IDNewCar] != GetVehicleModel(vehicleid)) {
- PlayerPlaySound(i, 1054, 0.0, 0.0, 0.0);
- new Float: Velocidad[3],
- Float: X,
- Float: Y,
- Float: Z,
- Float: Angulo;
- GetVehiclePos(vehicleid, X, Y, Z);
- GetVehicleZAngle(vehicleid, Angulo);
- GetVehicleVelocity(vehicleid, Velocidad[0], Velocidad[1], Velocidad[2]);
- GetVehicleColor(vehicleid, color1, color2);
- DestroyVehicle(vehicleid);
- new NewVeh = CreateVehicle(PickCam[IDPCmb][IDNewCar], X, Y, (PickCam[IDPCmb][IDNewCar] == 425 ? Z + 800 : Z), Angulo, color1, color2, 180);
- PutPlayerInVehicle(i, NewVeh, 0);
- SetVehicleVelocity(NewVeh, Velocidad[0], Velocidad[1], Velocidad[2]);
- LastVehicleChange[i] = IDPCmb;
- }
- if (LastNitro[i] != IDPCmb && PickCam[IDPCmb][Type] == 1) {
- PlayerPlaySound(i, 1133, 0.0, 0.0, 0.0);
- AddVehicleComponent(vehicleid, 1010);
- LastNitro[i] = IDPCmb;
- }
- if (LastRepair[i] != IDPCmb && PickCam[IDPCmb][Type] == 2) {
- PlayerPlaySound(i, 1133, 0.0, 0.0, 0.0);
- RepairVehicle(vehicleid);
- LastRepair[i] = IDPCmb;
- }
- //SetTimerEx("ReactivarT", 900, 0, "i", i);
- } else {
- if(LastVehicleChange[i] == IDPCmb) LastVehicleChange[i] = -1;
- if(LastNitro[i] == IDPCmb) LastNitro[i] = -1;
- if(LastRepair[i] == IDPCmb) LastRepair[i] = -1;
- }
- }
- }
- }
- return 1;
- }
- /*
- CALLBACK:ReactivarT(playerid) {
- JustUsed[playerid] = 0;
- return 1;
- }*/
- IsVehicleInRangeOfPoint(vehicleid, Float: vrange, Float: x, Float: y, Float: z) //I don't know who made this, sorry.
- {
- new Float: oldpos[3],
- Float: temppos[3];
- GetVehiclePos(vehicleid, oldpos[0], oldpos[1], oldpos[2]);
- temppos[0] = (oldpos[0] - x);
- temppos[1] = (oldpos[1] - y);
- temppos[2] = (oldpos[2] - z);
- if (((temppos[0] < vrange) && (temppos[0] > -vrange)) && ((temppos[1] < vrange) && (temppos[1] > -vrange)) && ((temppos[2] < vrange) && (temppos[2] > -vrange))) {
- return 1;
- }
- return 0;
- }
- stock DeleteAllChangePickups() {
- for (new x, t = ScarMaxPC(); x < t; x++) {
- PickCam[x][IDPC] = INVALID_CPID;
- }
- PickupC = 0;
- return 1;
- }
- stock DeleteAllDMPickups() {
- for (new i = 0; i < MAX_PCambio; i++) {
- Delete3DTextLabel(PickCam[i][p_text]);
- DestroyPickup(PickCam[i][p_pickup]);
- PickCam[i][IDPC] = INVALID_CPID;
- PickupC = 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement