Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Seifehicle - Seif's vehicle system
- Saves and loads vehicles in/from a file. Also saves mods.
- Tradotto Da: Gianni_Dark AKA Gianni AKA Jonny_Venturas AKA DarkDrago
- */
- /*x---------------------------------Important-------------------------------------x*/
- //**INCLUDES**//
- #include <a_samp>
- //**PRAGMAS**//
- //**MISC**//
- /*x---------------------------------Defining-------------------------------------x*/
- //**COLORS*//
- #define GREEN 0x21DD00FF
- #define RED 0xE60000FF
- #define ADMIN_RED 0xFB0000FF
- #define YELLOW 0xFFFF00FF
- #define ORANGE 0xF97804FF
- #define LIGHTRED 0xFF8080FF
- #define LIGHTBLUE 0x00C2ECFF
- #define PURPLE 0xB360FDFF
- #define PLAYER_COLOR 0xFFFFFFFF
- #define BLUE 0x1229FAFF
- #define LIGHTGREEN 0x38FF06FF
- #define DARKPINK 0xE100E1FF
- #define DARKGREEN 0x008040FF
- #define ANNOUNCEMENT 0x6AF7E1FF
- #define COLOR_SYSTEM 0xEFEFF7AA
- #define GREY 0xCECECEFF
- #define PINK 0xD52DFFFF
- #define DARKGREY 0x626262FF
- #define AQUAGREEN 0x03D687FF
- #define NICESKY 0x99FFFFAA
- #define WHITE 0xFFFFFFFF
- #define COLOR_LIGHTORANGE 0xFF8000FF
- //**MISC**//
- #define VEH_SAVE_FILE "Seifehicle/%s.cfg"
- #define MAX_MODS 12
- #define RESPAWN_TIME 1000
- #define VEHSHOW_X -1974.6205
- #define VEHSHOW_Y 284.9893
- #define VEHSHOW_Z 35.1719
- #define VEHSHOW_A 360.0
- #define VTYPE_CAR 1
- #define VTYPE_HEAVY 2
- #define VTYPE_BIKE 3
- #define VTYPE_AIR 4
- #define VTYPE_SEA 5
- #define VTYPE_MISC 6
- #define VTYPE_MOTORBIKE 7
- #define CAR_COST 150000 // $
- #define BIKE_COST 1000 // $
- #define MOTORBIKE_COST 40000 // $
- #define BOAT_COST 1500000 // $
- #define PLANE_COST 1500000 // $
- #define MISC_COST 250000 // $
- #define TRUCK_COST 500000 // $
- #define on 1
- #define off 0
- #define SHOW_LEGEND // Shows the legend of the script on how to buy a car, etc. Comment to not show, leave it uncommented to show.
- //**VARIABLES**//
- enum vInfo
- {
- vModel,
- Float:vX,
- Float:vY,
- Float:vZ,
- Float:vA,
- Float:vPX,
- Float:vPY,
- Float:vPZ,
- Float:vPA,
- vColor1,
- vColor2,
- vPaintjob,
- vMod[MAX_MODS],
- vOwner[MAX_PLAYER_NAME],
- vName[128],
- vLock,
- vPark,
- }
- new VehicleInfo[MAX_VEHICLES][vInfo];
- new CarModels[212] =
- {
- 400,
- 401,
- 402,
- 403,
- 404,
- 405,
- 406,
- 407,
- 408,
- 409,
- 410,
- 411,
- 412,
- 413,
- 414,
- 415,
- 416,
- 417,
- 418,
- 419,
- 420,
- 421,
- 422,
- 423,
- 424,
- 425,
- 426,
- 427,
- 428,
- 429,
- 430,
- 431,
- 432,
- 433,
- 434,
- 435,
- 436,
- 437,
- 438,
- 439,
- 440,
- 441,
- 442,
- 443,
- 444,
- 445,
- 446,
- 447,
- 448,
- 449,
- 450,
- 451,
- 452,
- 453,
- 454,
- 455,
- 456,
- 457,
- 458,
- 459,
- 460,
- 461,
- 462,
- 463,
- 464,
- 465,
- 466,
- 467,
- 468,
- 469,
- 470,
- 471,
- 472,
- 473,
- 474,
- 475,
- 476,
- 477,
- 478,
- 479,
- 480,
- 481,
- 482,
- 483,
- 484,
- 485,
- 486,
- 487,
- 488,
- 489,
- 490,
- 491,
- 492,
- 493,
- 494,
- 495,
- 496,
- 497,
- 498,
- 499,
- 500,
- 501,
- 502,
- 503,
- 504,
- 505,
- 506,
- 507,
- 508,
- 509,
- 510,
- 511,
- 512,
- 513,
- 514,
- 515,
- 516,
- 517,
- 518,
- 519,
- 520,
- 521,
- 522,
- 523,
- 524,
- 525,
- 526,
- 527,
- 528,
- 529,
- 530,
- 531,
- 532,
- 533,
- 534,
- 535,
- 536,
- 537,
- 538,
- 539,
- 540,
- 541,
- 542,
- 543,
- 544,
- 545,
- 546,
- 547,
- 548,
- 549,
- 550,
- 551,
- 552,
- 553,
- 554,
- 555,
- 556,
- 557,
- 558,
- 559,
- 560,
- 561,
- 562,
- 563,
- 564,
- 565,
- 566,
- 567,
- 568,
- 569,
- 570,
- 571,
- 572,
- 573,
- 574,
- 575,
- 576,
- 577,
- 578,
- 579,
- 580,
- 581,
- 582,
- 583,
- 584,
- 585,
- 586,
- 587,
- 588,
- 589,
- 590,
- 591,
- 592,
- 593,
- 594,
- 595,
- 596,
- 597,
- 598,
- 599,
- 600,
- 601,
- 602,
- 603,
- 604,
- 605,
- 606,
- 607,
- 608,
- 609,
- 610,
- 611
- };
- new VehicleName[][] =
- {
- "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 Truck",
- "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",
- "ZR-350",
- "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",
- "Hotring Racer",
- "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 Truck",
- "Monster Truck",
- "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",
- "Emperor",
- "Wayfarer",
- "Euros",
- "Hotdog",
- "Club",
- "Trailer",
- "Trailer",
- "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",
- "Luggage Trailer",
- "Stair Trailer",
- "Boxville",
- "Farm Plow",
- "Utility Trailer"
- };
- new MAX_VEH_SPAWNED = 0;
- new ShopCar[MAX_PLAYERS];
- new bool:CarShopping[MAX_PLAYERS];
- new carbrowse[MAX_PLAYERS];
- new Float:OrgX[MAX_PLAYERS];
- new Float:OrgY[MAX_PLAYERS];
- new Float:OrgZ[MAX_PLAYERS];
- new Float:OrgA[MAX_PLAYERS];
- new CarColor[MAX_PLAYERS][2];
- new Menu:CarMenu;
- /*x---------------------------------CallBacks-------------------------------------x*/
- forward Main();
- public Main()
- {
- print("<|-----------------------------------------|>");
- print(" |.:[ - Seifehicle Vehicle System By Seif - ]:.|");
- print("<|-----------------------------------------|>");
- }
- public OnFilterScriptInit()
- {
- Main();
- CarMenu = CreateMenu("Menu",1,20,120,150,400);
- AddMenuItem(CarMenu,0,"Vendi");
- AddMenuItem(CarMenu,0,"Parcheggia");
- AddMenuItem(CarMenu,0,"Chiudi");
- AddMenuItem(CarMenu,0,"Apri");
- AddMenuItem(CarMenu,0,"Chiama Veicolo");
- AddMenuItem(CarMenu,0,"Resetta Componenti");
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- CarColor[i][0] = 1;
- CarColor[i][1] = 1;
- }
- for(new v = 1; v < MAX_VEHICLES; v++)
- {
- VehicleInfo[v][vModel] = 0;
- VehicleInfo[v][vX] = 0;
- VehicleInfo[v][vY] = 0;
- VehicleInfo[v][vZ] = 0;
- VehicleInfo[v][vA] = 0;
- VehicleInfo[v][vColor1] = -1;
- VehicleInfo[v][vColor2] = -1;
- VehicleInfo[v][vPaintjob] = -1;
- format(VehicleInfo[v][vName], MAX_PLAYER_NAME, "[NONE]");
- format(VehicleInfo[v][vOwner], MAX_PLAYER_NAME, "[NONE]");
- VehicleInfo[v][vPark] = 0;
- VehicleInfo[v][vPX] = 0;
- VehicleInfo[v][vPY] = 0;
- VehicleInfo[v][vPZ] = 0;
- VehicleInfo[v][vPA] = 0;
- for(new m = 0; m < MAX_MODS; m++) VehicleInfo[v][vMod][m] = 0;
- }
- return 1;
- }
- public OnFilterScriptExit()
- {
- for(new v = 1; v < MAX_VEHICLES; v++)
- {
- if (IsVehicleSpawned(v))
- {
- if (VehicleInfo[v][vModel] > 0) DestroyVehicle(v);
- }
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- LoadPlayerVehicle(playerid);
- CarColor[playerid][0] = 1;
- CarColor[playerid][1] = 1;
- for(new v = 1; v < MAX_VEHICLES; v++) LockVehicle(v);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- SavePlayerVehicle(playerid);
- CarColor[playerid][0] = 1;
- CarColor[playerid][1] = 1;
- if (CarShopping[playerid] == true)
- {
- CarShopping[playerid] = false;
- DestroyVehicle(ShopCar[playerid]);
- carbrowse[playerid] = 0;
- }
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[128];
- new idx;
- new tmp[128];
- cmd = strtok(cmdtext, idx);
- if (!strcmp("/compraveicolo", cmdtext, true))
- {
- if (GetOwnedVehicleID(playerid) != INVALID_VEHICLE_ID) return SendClientMessage(playerid, RED, "Hai già un veicolo");
- if (GetPlayerInterior(playerid) != 0) return SendClientMessage(playerid, RED, "Non puoi usarlo qui"); // To prevent screw ups
- GetPlayerPos(playerid, OrgX[playerid], OrgY[playerid], OrgZ[playerid]);
- GetPlayerFacingAngle(playerid, OrgA[playerid]);
- new Float:X,Float:Y;
- new color1 = CarColor[playerid][0];
- new color2 = CarColor[playerid][1];
- X = VEHSHOW_X;
- Y = VEHSHOW_Y;
- TogglePlayerControllable(playerid, false);
- X -= (10.0 * floatsin(-VEHSHOW_A+90, degrees));
- Y -= (10.0 * floatcos(-VEHSHOW_A+90, degrees));
- SetPlayerCameraPos(playerid, X, Y, VEHSHOW_Z);
- X += (10.0 * floatsin(-VEHSHOW_A+90, degrees));
- Y += (10.0 * floatcos(-VEHSHOW_A+90, degrees));
- SetPlayerCameraLookAt(playerid, X, Y, VEHSHOW_Z);
- SetPlayerVirtualWorld(playerid, playerid);
- ShopCar[playerid] = CreateVehicle(CarModels[0], VEHSHOW_X, VEHSHOW_Y, VEHSHOW_Z, 0.0, color1, color2, 6000000);
- SetVehicleVirtualWorld(ShopCar[playerid], playerid);
- PutPlayerInVehicle(playerid, ShopCar[playerid], 0);
- TogglePlayerControllable(playerid, false);
- CarShopping[playerid] = true;
- SendClientMessage(playerid, GREEN, "Benvenuto nella concessionaria, scegli il veicolo da comprare.");
- SendClientMessage(playerid, ORANGE, "Per passare velocemente ad un modello di veicolo fai /modello [nome].");
- SendClientMessage(playerid, ORANGE, "Per cambiare il colore fai /colore [id1] [id2].");
- SendClientMessage(playerid, ORANGE, "Dopo aver scelto il veicolo premi CTRL (TASTO FUOCO) per comprarlo!");
- SetTimerEx("BrowseCars", 300, 0, "d", playerid);
- //SetTimerEx("FreezeCar", 100, 0, "d", playerid);
- return 1;
- }
- if (!strcmp("/modello", cmd, true))
- {
- if (CarShopping[playerid] == false) return SendClientMessage(playerid, RED, "Non stai comprando un auto");
- tmp = strtok(cmdtext, idx);
- if (!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USA: /modello [Nomemodello/ID]");
- new id = GetVehicleModelIDFromName(tmp);
- if (id < 400 || id > 611) return SendClientMessage(playerid, RED, "ID/NOME Veicolo Invalido");
- new color1 = CarColor[playerid][0];
- new color2 = CarColor[playerid][1];
- carbrowse[playerid] = id-400;
- DestroyVehicle(ShopCar[playerid]);
- ShopCar[playerid] = CreateVehicle(CarModels[carbrowse[playerid]], VEHSHOW_X, VEHSHOW_Y, VEHSHOW_Z, 0.0, color1, color2, 6000000);
- SetVehicleVirtualWorld(ShopCar[playerid], playerid);
- PutPlayerInVehicle(playerid, ShopCar[playerid], 0);
- return 1;
- }
- if (!strcmp("/colore", cmd, true))
- {
- if (CarShopping[playerid] == false) return SendClientMessage(playerid, RED, "You're not shopping for a car!");
- tmp = strtok(cmdtext, idx);
- if (!strlen(tmp)) return SendClientMessage(playerid, ORANGE, "USAGE: /colore [ID COLORE 1] [ID COLORE 2]");
- new color1 = strval(tmp);
- if (color1 < 0 || color1 > 126) return SendClientMessage(playerid, RED, "[ERRORE]Gli id's vanno da 0 fino a 126!");
- CarColor[playerid][0] = color1;
- new color2;
- tmp = strtok(cmdtext, idx);
- if (!strlen(tmp)) color2 = color1;
- else color2 = strval(tmp);
- if (color2 < 0 || color2 > 126) return SendClientMessage(playerid, RED, "[ERRORE]Gli id's vanno da 0 fino a 126!");
- CarColor[playerid][1] = color2;
- ChangeVehicleColor(GetPlayerVehicleID(playerid), color1, color2);
- return 1;
- }
- if (!strcmp("/menuveicolo", cmdtext, true))
- {
- TogglePlayerControllable(playerid, false);
- ShowMenuForPlayer(CarMenu, playerid);
- return 1;
- }
- return 0;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- new vehicleid = GetPlayerVehicleID(playerid);
- new string[128];
- if (CarShopping[playerid] == false)
- {
- if (newstate == PLAYER_STATE_DRIVER)
- {
- if (!strcmp(VehicleInfo[vehicleid][vOwner],GetName(playerid)))
- {
- format(string,128,"|- Bentornato Nel Tuo Veicolo -|", VehicleInfo[vehicleid][vName]);
- SendClientMessage(playerid, YELLOW, string);
- }
- else
- {
- format(string,128,"[AVVISO:]Questo Veicolo E' Di Proprietà ", VehicleInfo[vehicleid][vName], VehicleInfo[vehicleid][vOwner]);
- SendClientMessage(playerid, YELLOW, string);
- }
- }
- }
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- new Menu:menu = GetPlayerMenu(playerid);
- if (menu == CarMenu)
- {
- OnPlayerExitedMenu(playerid);
- switch (row)
- {
- case 0:
- {
- new vehicleid = GetOwnedVehicleID(playerid);
- if (vehicleid == INVALID_VEHICLE_ID) return SendClientMessage(playerid, RED, "Non possiedi un veicolo.");
- new string[128];
- format(string, sizeof string, "|- Hai venduto la tua %s ed hai guadagnato: $%d -|", VehicleName[GetVehicleModel(vehicleid)-400], GetVehicleCost(vehicleid));
- DeleteVehicle(playerid);
- SendClientMessage(playerid, GREEN, string);
- GivePlayerMoney(playerid, GetVehicleCost(vehicleid));
- }
- case 1:
- {
- new vehicleid = GetOwnedVehicleID(playerid);
- if (vehicleid == INVALID_VEHICLE_ID) return SendClientMessage(playerid, RED, "Non possiedi un veicolo.");
- new string[128];
- VehicleInfo[vehicleid][vPark] = 1;
- GetVehiclePos(vehicleid, VehicleInfo[vehicleid][vPX], VehicleInfo[vehicleid][vPY], VehicleInfo[vehicleid][vPZ]);
- GetVehicleZAngle(vehicleid, VehicleInfo[vehicleid][vPA]);
- format(string, sizeof string, "|- Hai parcheggiato qui la tua %s -|", VehicleInfo[vehicleid][vName]);
- SendClientMessage(playerid, GREEN, string);
- }
- case 2:
- {
- new vehicleid = GetOwnedVehicleID(playerid);
- if (vehicleid == INVALID_VEHICLE_ID) return SendClientMessage(playerid, RED, "Non possiedi un veicolo.");
- new string[128];
- VehicleInfo[vehicleid][vLock] = 1;
- LockVehicle(vehicleid);
- format(string, sizeof string, "|- Hai chiuso la tua: %s -|", VehicleInfo[vehicleid][vName]);
- SendClientMessage(playerid, GREEN, string);
- PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
- }
- case 3:
- {
- new vehicleid = GetOwnedVehicleID(playerid);
- if (vehicleid == INVALID_VEHICLE_ID) return SendClientMessage(playerid, RED, "Non possiedi un veicolo.");
- new string[128];
- VehicleInfo[vehicleid][vLock] = 0;
- UnlockVehicle(vehicleid);
- format(string, sizeof string, "|- Hai aperto la tua: %s -|", VehicleInfo[vehicleid][vName]);
- SendClientMessage(playerid, GREEN, string);
- PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
- }
- case 4:
- {
- if (IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, RED, "Devi essere dentro la macchina!");
- new vehicleid = GetOwnedVehicleID(playerid);
- if (vehicleid == INVALID_VEHICLE_ID) return SendClientMessage(playerid, RED, "Non possiedi un veicolo.");
- new string[128];
- new intruder = PlayerInVehicle(vehicleid);
- new Float:X,Float:Y,Float:Z;
- if (intruder != INVALID_VEHICLE_ID)
- {
- GetPlayerPos(intruder, X, Y, Z);
- SetPlayerPos(intruder, X, Y, Z+2);
- }
- GetPlayerPos(playerid, X, Y, Z);
- PutPlayerInVehicle(playerid, vehicleid, 0);
- SetVehiclePos(vehicleid, X, Y, Z);
- format(string, sizeof string, "|- Il camionista ti ha portato la tua: %s -|", VehicleInfo[vehicleid][vName]);
- SendClientMessage(playerid, GREEN, string);
- }
- case 5:
- {
- new vehicleid = GetOwnedVehicleID(playerid);
- if (vehicleid == INVALID_VEHICLE_ID) return SendClientMessage(playerid, RED, "Non possiedi un veicolo.");
- new string[128];
- new count;
- for(new m = 0; m < MAX_MODS; m++)
- {
- if (VehicleInfo[vehicleid][vMod][m] > 0)
- {
- RemoveVehicleComponent(vehicleid, VehicleInfo[vehicleid][vMod][m]);
- VehicleInfo[vehicleid][vMod][m] = 0;
- count++;
- }
- }
- format(string, sizeof string, "|- Hai rimosso: %d elaborazioni dalla tua: %s -|", count, VehicleInfo[vehicleid][vName]);
- SendClientMessage(playerid, GREEN, string);
- }
- }
- }
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- TogglePlayerControllable(playerid, true);
- return 1;
- }
- stock split(const strsrc[], strdest[][], delimiter)
- {
- new i, li;
- new aNum;
- new len;
- while(i <= strlen(strsrc)){
- if(strsrc[i]==delimiter || i==strlen(strsrc)){
- len = strmid(strdest[aNum], strsrc, li, i, 128);
- strdest[aNum][len] = 0;
- li = i+1;
- aNum++;
- }
- i++;
- }
- return 1;
- }
- forward LoadPlayerVehicle(playerid);
- public LoadPlayerVehicle(playerid)
- {
- new openfile[128];
- format(openfile, sizeof openfile, VEH_SAVE_FILE, GetName(playerid));
- printf("file name: %s", openfile);
- if (!fexist(openfile)) return 1; // He doesn't own a vehicle
- print("loading player vehicle");
- new File:vehs = fopen(openfile,io_read);
- new string[256];
- new load[30][32];
- new newload = 15; // last "strval(load[x])" before the mods loop
- if (vehs)
- {
- print("attempting to read file");
- while (fread(vehs, string, 256))
- {
- split(string, load, '|');
- print("spawning vehicles");
- // Spawn vehicles
- new v = INVALID_VEHICLE_ID;
- if (strval(load[11]) == 1)
- {
- v = CreateVehicle(
- strval(load[0]),
- floatstr(load[12]),
- floatstr(load[13]),
- floatstr(load[14]),
- floatstr(load[15]),
- strval(load[5]),
- strval(load[6]),
- RESPAWN_TIME
- );
- }
- else
- {
- v = CreateVehicle(
- strval(load[0]),
- floatstr(load[1]),
- floatstr(load[2]),
- floatstr(load[3]),
- floatstr(load[4]),
- strval(load[5]),
- strval(load[6]),
- RESPAWN_TIME
- );
- }
- printf("car spawned: %d", v);
- // Load vehicles
- VehicleInfo[v][vModel] = strval(load[0]);
- VehicleInfo[v][vX] = floatstr(load[1]);
- VehicleInfo[v][vY] = floatstr(load[2]);
- VehicleInfo[v][vZ] = floatstr(load[3]);
- VehicleInfo[v][vA] = floatstr(load[4]);
- VehicleInfo[v][vColor1] = strval(load[5]);
- VehicleInfo[v][vColor2] = strval(load[6]);
- VehicleInfo[v][vPaintjob] = strval(load[7]);
- printf("name: %s", load[8]);
- strmid(VehicleInfo[v][vName], load[8], 0, strlen(load[8]), 128);
- printf("owner: %s", load[9]);
- strmid(VehicleInfo[v][vOwner], load[9], 0, strlen(load[9]), MAX_PLAYER_NAME);
- VehicleInfo[v][vLock] = strval(load[10]);
- VehicleInfo[v][vPark] = strval(load[11]);
- VehicleInfo[v][vPX] = floatstr(load[12]);
- VehicleInfo[v][vPY] = floatstr(load[13]);
- VehicleInfo[v][vPZ] = floatstr(load[14]);
- VehicleInfo[v][vPA] = floatstr(load[15]);
- for(new m = 0; m < MAX_MODS; m++)
- {
- newload++;
- VehicleInfo[v][vMod][m] = strval(load[newload]);
- }
- for(new m = 0; m < MAX_MODS; m++)
- {
- if (VehicleInfo[v][vMod][m] > 0)
- {
- AddVehicleComponent(v,VehicleInfo[v][vMod][m]);
- }
- }
- if (VehicleInfo[v][vPaintjob] > -1)
- {
- ChangeVehiclePaintjob(v,VehicleInfo[v][vPaintjob]);
- }
- MAX_VEH_SPAWNED++;
- break;
- }
- fclose(vehs);
- }
- return 1;
- }
- forward SavePlayerVehicle(playerid);
- public SavePlayerVehicle(playerid)
- {
- new string[256];
- format(string, 128, VEH_SAVE_FILE, GetName(playerid));
- if (GetOwnedVehicleID(playerid) == INVALID_VEHICLE_ID) return 1;
- new File:vehs = fopen(string, io_write);
- if (vehs)
- {
- new v = GetOwnedVehicleID(playerid);
- printf("vehicle name: %s", VehicleInfo[v][vName]);
- format(string, sizeof(string), "%d|%f|%f|%f|%f|%d|%d|%d|%s|%s|%d|%d|%f|%f|%f|%f|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d",
- VehicleInfo[v][vModel],
- VehicleInfo[v][vX],
- VehicleInfo[v][vY],
- VehicleInfo[v][vZ],
- VehicleInfo[v][vA],
- VehicleInfo[v][vColor1],
- VehicleInfo[v][vColor2],
- VehicleInfo[v][vPaintjob],
- VehicleInfo[v][vName],
- VehicleInfo[v][vOwner],
- VehicleInfo[v][vLock],
- VehicleInfo[v][vPark],
- VehicleInfo[v][vPX],
- VehicleInfo[v][vPY],
- VehicleInfo[v][vPZ],
- VehicleInfo[v][vPA],
- VehicleInfo[v][vMod][0],
- VehicleInfo[v][vMod][1],
- VehicleInfo[v][vMod][2],
- VehicleInfo[v][vMod][3],
- VehicleInfo[v][vMod][4],
- VehicleInfo[v][vMod][5],
- VehicleInfo[v][vMod][6],
- VehicleInfo[v][vMod][7],
- VehicleInfo[v][vMod][8],
- VehicleInfo[v][vMod][9],
- VehicleInfo[v][vMod][10],
- VehicleInfo[v][vMod][11]
- );
- fwrite(vehs, string);
- fclose(vehs);
- VehicleInfo[v][vModel] = 0;
- VehicleInfo[v][vX] = 0;
- VehicleInfo[v][vY] = 0;
- VehicleInfo[v][vZ] = 0;
- VehicleInfo[v][vA] = 0;
- VehicleInfo[v][vColor1] = -1;
- VehicleInfo[v][vColor2] = -1;
- VehicleInfo[v][vPaintjob] = -1;
- format(VehicleInfo[v][vName], MAX_PLAYER_NAME, "[NONE]");
- format(VehicleInfo[v][vOwner], MAX_PLAYER_NAME, "[NONE]");
- VehicleInfo[v][vPark] = 0;
- VehicleInfo[v][vPX] = 0;
- VehicleInfo[v][vPY] = 0;
- VehicleInfo[v][vPZ] = 0;
- VehicleInfo[v][vPA] = 0;
- for(new m = 0; m < MAX_MODS; m++) VehicleInfo[v][vMod][m] = 0;
- DestroyVehicle(v);
- }
- return 1;
- }
- stock GetName(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, MAX_PLAYER_NAME);
- return name;
- }
- forward DeleteVehicle(ownerid);
- public DeleteVehicle(ownerid)
- {
- new vehicleid = GetOwnedVehicleID(ownerid);
- if (vehicleid == INVALID_VEHICLE_ID) return print("invalid vehicle id - no deletion"), 0;
- new string[128];
- format(string, 128, VEH_SAVE_FILE, GetName(ownerid));
- if (fexist(string)) fremove(string);
- VehicleInfo[vehicleid][vModel] = 0;
- VehicleInfo[vehicleid][vX] = 0;
- VehicleInfo[vehicleid][vY] = 0;
- VehicleInfo[vehicleid][vZ] = 0;
- VehicleInfo[vehicleid][vA] = 0;
- VehicleInfo[vehicleid][vColor1] = 0;
- VehicleInfo[vehicleid][vColor2] = 0;
- VehicleInfo[vehicleid][vPaintjob] = 0;
- format(VehicleInfo[vehicleid][vName], MAX_PLAYER_NAME, "[NONE]");
- format(VehicleInfo[vehicleid][vOwner], MAX_PLAYER_NAME, "[NONE]");
- VehicleInfo[vehicleid][vPark] = 0;
- VehicleInfo[vehicleid][vPX] = 0;
- VehicleInfo[vehicleid][vPY] = 0;
- VehicleInfo[vehicleid][vPZ] = 0;
- VehicleInfo[vehicleid][vPA] = 0;
- for(new m = 0; m < MAX_MODS; m++) VehicleInfo[vehicleid][vMod][m] = 0;
- DestroyVehicle(vehicleid);
- return 1;
- }
- forward BrowseCars(playerid);
- public BrowseCars(playerid)
- {
- if (CarShopping[playerid] != true) return 1;
- new keys, updown, leftright;
- GetPlayerKeys(playerid, keys, updown, leftright);
- new color1 = CarColor[playerid][0];
- new color2 = CarColor[playerid][1];
- if (leftright == KEY_RIGHT)
- {
- carbrowse[playerid]++;
- if (carbrowse[playerid] > 211) carbrowse[playerid] = 0;
- DestroyVehicle(ShopCar[playerid]);
- ShopCar[playerid] = CreateVehicle(CarModels[carbrowse[playerid]], VEHSHOW_X, VEHSHOW_Y, VEHSHOW_Z, 0.0, color1, color2, 6000000);
- SetVehicleVirtualWorld(ShopCar[playerid], playerid);
- PutPlayerInVehicle(playerid, ShopCar[playerid], 0);
- TogglePlayerControllable(playerid, false);
- }
- else if (leftright == KEY_LEFT)
- {
- carbrowse[playerid]--;
- if (carbrowse[playerid] < 0) carbrowse[playerid] = 211;
- DestroyVehicle(ShopCar[playerid]);
- ShopCar[playerid] = CreateVehicle(CarModels[carbrowse[playerid]], VEHSHOW_X, VEHSHOW_Y, VEHSHOW_Z, 0.0, color1, color2, 6000000);
- SetVehicleVirtualWorld(ShopCar[playerid], playerid);
- PutPlayerInVehicle(playerid, ShopCar[playerid], 0);
- TogglePlayerControllable(playerid, false);
- }
- else if (keys == KEY_FIRE)
- {
- new vehicleid = GetPlayerVehicleID(playerid);
- if (GetPlayerMoney(playerid) >= GetVehicleCost(vehicleid))
- {
- strmid(VehicleInfo[vehicleid][vOwner], GetName(playerid), 0, strlen(GetName(playerid)), MAX_PLAYER_NAME);
- GivePlayerMoney(playerid, -GetVehicleCost(vehicleid));
- TogglePlayerControllable(playerid, true);
- CarShopping[playerid] = false;
- carbrowse[playerid] = 0;
- GameTextForPlayer(playerid, " ", 1000, 3);
- SetVehiclePos(vehicleid, OrgX[playerid], OrgY[playerid], OrgZ[playerid]);
- SetVehicleZAngle(vehicleid, OrgA[playerid]);
- SetPlayerVirtualWorld(playerid, 0);
- SetVehicleVirtualWorld(vehicleid, 0);
- SetCameraBehindPlayer(playerid);
- vehicleid = ShopCar[playerid];
- VehicleInfo[vehicleid][vModel] = GetVehicleModel(vehicleid);
- VehicleInfo[vehicleid][vX] = OrgX[playerid];
- VehicleInfo[vehicleid][vY] = OrgY[playerid];
- VehicleInfo[vehicleid][vZ] = OrgZ[playerid];
- VehicleInfo[vehicleid][vA] = OrgA[playerid];
- VehicleInfo[vehicleid][vColor1] = CarColor[playerid][0];
- VehicleInfo[vehicleid][vColor2] = CarColor[playerid][1];
- VehicleInfo[vehicleid][vPaintjob] = -1;
- strmid(VehicleInfo[vehicleid][vName], VehicleName[GetVehicleModel(vehicleid)-400], 0, strlen(VehicleName[GetVehicleModel(vehicleid)-400]), 128);
- strmid(VehicleInfo[vehicleid][vOwner], GetName(playerid), 0, strlen(GetName(playerid)), MAX_PLAYER_NAME);
- VehicleInfo[vehicleid][vPark] = 0;
- VehicleInfo[vehicleid][vPX] = 0.0;
- VehicleInfo[vehicleid][vPY] = 0.0;
- VehicleInfo[vehicleid][vPZ] = 0.0;
- VehicleInfo[vehicleid][vPA] = 0.0;
- for(new m = 0; m < MAX_MODS; m++) VehicleInfo[vehicleid][vMod][m] = 0;
- }
- else
- {
- new mes[64];
- format(mes, sizeof mes, "Questo veicolo (%s) costa: $%d! Tu hai solo: $%d...", VehicleName[carbrowse[playerid]], GetVehicleCost(vehicleid), GetPlayerMoney(playerid));
- SendClientMessage(playerid, RED, mes);
- }
- }
- else if (keys == KEY_SECONDARY_ATTACK)
- {
- DestroyVehicle(ShopCar[playerid]);
- TogglePlayerControllable(playerid, true);
- CarShopping[playerid] = false;
- carbrowse[playerid] = 0;
- GameTextForPlayer(playerid, " ", 1000, 3);
- SetPlayerPos(playerid, OrgX[playerid], OrgY[playerid], OrgZ[playerid]);
- SetPlayerFacingAngle(playerid, OrgA[playerid]);
- SetPlayerVirtualWorld(playerid, 0);
- SetCameraBehindPlayer(playerid);
- }
- new gt[32];
- if (CarShopping[playerid] == true)
- {
- format(gt, sizeof gt, "~g~%s~w~(~y~%d~w~)", VehicleName[carbrowse[playerid]], carbrowse[playerid]+400);
- GameTextForPlayer(playerid, gt, 1000000, 3);
- }
- SetTimerEx("BrowseCars", 300, 0, "d", playerid);
- return 1;
- }
- forward FreezeCar(playerid);
- public FreezeCar(playerid)
- {
- if (CarShopping[playerid] != true) return 1;
- SetVehiclePos(ShopCar[playerid], VEHSHOW_X, VEHSHOW_Y, VEHSHOW_Z);
- SetTimerEx("FreezeCar", 100, 0, "d", playerid);
- return 1;
- }
- stock GetVehicleModelIDFromName(vname[]) // Simon
- {
- for(new i = 0; i < 211; i++)
- {
- if (strfind(VehicleName[i], vname, true) != -1) return i+400;
- }
- return -1;
- }
- stock GetVehicleType(vehicleid) // Pixels^
- {
- new type;
- // ================== CARS =======
- switch(GetVehicleModel(vehicleid))
- {
- case
- 416, //ambulan - car
- 445, //admiral - car
- 602, //alpha - car
- 485, //baggage - car
- 568, //bandito - car
- 429, //banshee - car
- 499, //benson - car
- 424, //bfinject, //car
- 536, //blade - car
- 496, //blistac - car
- 504, //bloodra - car
- 422, //bobcat - car
- 609, //boxburg - car
- 498, //boxville, //car
- 401, //bravura - car
- 575, //broadway, //car
- 518, //buccanee, //car
- 402, //buffalo - car
- 541, //bullet - car
- 482, //burrito - car
- 431, //bus - car
- 438, //cabbie - car
- 457, //caddy - car
- 527, //cadrona - car
- 483, //camper - car
- 524, //cement - car
- 415, //cheetah - car
- 542, //clover - car
- 589, //club - car
- 480, //comet - car
- 596, //copcarla, //car
- 599, //copcarru, //car
- 597, //copcarsf, //car
- 598, //copcarvg, //car
- 578, //dft30 - car
- 486, //dozer - car
- 507, //elegant - car
- 562, //elegy - car
- 585, //emperor - car
- 427, //enforcer, //car
- 419, //esperant, //car
- 587, //euros - car
- 490, //fbiranch, //car
- 528, //fbitruck, //car
- 533, //feltzer - car
- 544, //firela - car
- 407, //firetruk, //car
- 565, //flash - car
- 455, //flatbed - car
- 530, //forklift, //car
- 526, //fortune - car
- 466, //glendale, //car
- 604, //glenshit, //car
- 492, //greenwoo, //car
- 474, //hermes - car
- 434, //hotknife, //car
- 502, //hotrina - car
- 503, //hotrinb - car
- 494, //hotring - car
- 579, //huntley - car
- 545, //hustler - car
- 411, //infernus, //car
- 546, //intruder, //car
- 559, //jester - car
- 508, //journey - car
- 400, //landstal, //car
- 403, //linerun - car
- 517, //majestic, //car
- 410, //manana - car
- 551, //merit - car
- 500, //mesa - car
- 418, //moonbeam, //car
- 572, //mower - car
- 423, //mrwhoop - car
- 516, //nebula - car
- 582, //newsvan - car
- 467, //oceanic - car
- 404, //peren - car
- 514, //petro - car
- 603, //phoenix - car
- 600, //picador - car
- 413, //pony - car
- 426, //premier - car
- 436, //previon - car
- 547, //primo - car
- 489, //rancher - car
- 479, //regina - car
- 534, //remingtn, //car
- 505, //rnchlure, //car
- 442, //romero - car
- 440, //rumpo - car
- 475, //sabre - car
- 543, //sadler - car
- 605, //sadlshit, //car
- 495, //sandking, //car
- 567, //savanna - car
- 428, //securica, //car
- 405, //sentinel, //car
- 535, //slamvan - car
- 458, //solair - car
- 580, //stafford, //car
- 439, //stallion, //car
- 561, //stratum - car
- 409, //stretch - car
- 560, //sultan - car
- 550, //sunrise - car
- 506, //supergt - car
- 601, //swatvan - car
- 574, //sweeper - car
- 566, //tahoma - car
- 549, //tampa - car
- 420, //taxi - car
- 459, //topfun - car
- 576, //tornado - car
- 583, //tug - car
- 451, //turismo - car
- 558, //uranus - car
- 552, //utility - car
- 540, //vincent - car
- 491, //virgo - car
- 412, //voodoo - car
- 478, //walton - car
- 421, //washing - car
- 529, //willard - car
- 555, //windsor - car
- 456, //yankee - car
- 554, //yosemite, //car
- 477 //zr3 50 - car
- : type = VTYPE_CAR;
- // ================== MOTORBIKES =======
- case
- 581, //bf400 - bike
- 523, //copbike - bike
- 462, //faggio - bike
- 521, //fcr900 - bike
- 463, //freeway - bike
- 522, //nrg500 - bike
- 461, //pcj600 - bike
- 448, //pizzaboy, //bike
- 468, //sanchez - bike
- 586, //wayfarer, //bike
- 471 //quad - quad
- : type = VTYPE_MOTORBIKE;
- // ================== BIKES =======
- case
- 509, //bike - bmx
- 481, //bmx - bmx
- 510 //mtbike - bmx
- : type = VTYPE_BIKE;
- // ================== SEA =======
- case
- 472, //coastg - boat
- 473, //dinghy - boat
- 493, //jetmax - boat
- 595, //launch - boat
- 484, //marquis - boat
- 430, //predator, //boat
- 453, //reefer - boat
- 452, //speeder - boat
- 446, //squalo - boat
- 454 //tropic - boat
- : type = VTYPE_SEA;
- // ================== AIR =======
- case
- 548, //cargobob, //heli
- 425, //hunter - heli
- 417, //leviathn, //heli
- 487, //maverick, //heli
- 497, //polmav - heli
- 563, //raindanc, //heli
- 501, //rcgoblin, //heli
- 465, //rcraider, //heli
- 447, //seaspar - heli
- 469, //sparrow - heli
- 488, //vcnmav - heli
- 592, //androm - plane
- 577, //at 400 - plane
- 511, //beagle - plane
- 512, //cropdust, //plane
- 593, //dodo - plane
- 520, //hydra - plane
- 553, //nevada - plane
- 464, //rcbaron - plane
- 476, //rustler - plane
- 519, //shamal - plane
- 460, //skimmer - plane
- 513, //stunt - plane
- 539 //vortex - plane
- : type = VTYPE_AIR;
- // ================== HEAVY =======
- case
- 588, //hotdog - car
- 437, //coach - car
- 532, //combine - car
- 433, //barracks, //car
- 414, //mule - car
- 443, //packer - car
- 470, //patriot - car
- 432, //rhino - car
- 525, //towtruck, //car
- 531, //tractor - car
- 408, //trash - car
- 406, //dumper - mtruck
- 573, //duneride, //mtruck
- 444, //monster - mtruck
- 556, //monstera, //mtruck
- 557, //monsterb, //mtruck
- 435, //artict1 - trailer
- 450, //artict2 - trailer
- 591, //artict3 - trailer
- 606, //bagboxa - trailer
- 607, //bagboxb - trailer
- 610, //farmtr1 - trailer
- 584, //petrotr - trailer
- 608, //tugstair, //trailer
- 611, //utiltr1 - trailer
- 590, //freibox - train
- 569, //freiflat, //train
- 537, //freight - train
- 538, //streak - train
- 570, //streakc - train
- 449 //tram - train
- : type = VTYPE_HEAVY;
- // ================== MISC =======
- case
- 441, //rcbandit, //misc
- 594, //rccam - misc
- 564, //rctiger - misc
- 515, //rdtrain - misc
- 571 //kart - misc
- : type = VTYPE_MISC;
- }
- return type;
- }
- stock GetVehicleCost(vehicleid)
- {
- new typeid = GetVehicleType(vehicleid);
- if (typeid == VTYPE_CAR) return CAR_COST;
- if (typeid == VTYPE_HEAVY) return TRUCK_COST;
- if (typeid == VTYPE_BIKE) return BIKE_COST;
- if (typeid == VTYPE_AIR) return PLANE_COST;
- if (typeid == VTYPE_SEA) return BOAT_COST;
- if (typeid == VTYPE_MOTORBIKE) return MOTORBIKE_COST;
- if (typeid == VTYPE_MISC) return MISC_COST;
- return 0;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- stock LockVehicle(vehicleid)
- {
- new name[MAX_PLAYER_NAME];
- for(new i; i < MAX_PLAYERS; i++)
- {
- if (IsPlayerConnected(i))
- {
- if (VehicleInfo[vehicleid][vLock] == 1)
- {
- GetPlayerName(i, name, sizeof name);
- if (strcmp(name, VehicleInfo[vehicleid][vOwner]))
- {
- SetVehicleParamsForPlayer(vehicleid, i, false, true);
- }
- }
- }
- }
- }
- stock UnlockVehicle(vehicleid)
- {
- for(new i; i < MAX_PLAYERS; i++)
- {
- if (IsPlayerConnected(i))
- {
- SetVehicleParamsForPlayer(vehicleid, i, false, false);
- }
- }
- }
- stock IsVehicleSpawned(vehicleid)
- {
- new Float:X,Float:Y,Float:Z;
- GetVehiclePos(vehicleid, X, Y, Z);
- if (X == 0.0 && Y == 0.0 && Z == 0.0) return 0;
- return 1;
- }
- stock GetOwnedVehicleID(playerid)
- {
- for(new v = 1; v < MAX_VEHICLES; v++)
- {
- if (IsVehicleSpawned(v))
- {
- if (!strcmp(VehicleInfo[v][vOwner], GetName(playerid))) return v;
- }
- }
- return INVALID_VEHICLE_ID;
- }
- stock PlayerInVehicle(vehicleid)
- {
- for(new i; i < MAX_PLAYERS; i++)
- {
- if (IsPlayerConnected(i))
- {
- if (IsPlayerInVehicle(i, vehicleid)) return i;
- }
- }
- return INVALID_PLAYER_ID;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- new count;
- for(new m = 0; m < MAX_MODS; m++)
- {
- if (VehicleInfo[vehicleid][vMod][m] == 0)
- {
- count++;
- VehicleInfo[vehicleid][vMod][m] = componentid;
- break;
- }
- }
- if (count == 0) SendClientMessage(PlayerInVehicle(vehicleid), RED, "Hai superato il limite di elaborazioni. Per azzerarli scrivi /menuveicolo e seleziona 'Resetta Componenti'!");
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- VehicleInfo[vehicleid][vColor1] = color1;
- VehicleInfo[vehicleid][vColor2] = color2;
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- VehicleInfo[vehicleid][vPaintjob] = paintjobid;
- return 1;
- }
- stock strtok(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[128];
- while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement