SA-MP Forums Archive
More efficient car spawn - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: More efficient car spawn (/showthread.php?tid=455451)



More efficient car spawn - lramos15 - 01.08.2013

Is there a more efficient way to make a dialog that has the name of the cars and you click on it the car will spawn instead of under everyone having case 1: Case 2: etc
and then each having CreateVehicle(vehicleid, x+3, y, z,angle, color1, color2, -1);


Re: More efficient car spawn - -Prodigy- - 01.08.2013

You can use the following:

pawn Код:
new CarNames[212][] = {
    "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"
};

CMD:cars(playerid, params[])
{
    new carString[1024];

    for(new i = 400; i < 600; i++)
    {
        format(carString, sizeof(carString), "%s%s\n", carString, CarNames[i]);
    }

    ShowPlayerDialog(playerid, 1337, DIALOG_STYLE_LIST, "Vehicle spawner", carString, "Spawn", "Close");
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 1337)
    {
        if(response)
        {
            listitem += 400;

            new string[128];
           
            format(string, sizeof(string), "You've spawned a %d (%s)", listitem, CarNames[listitem]);
            SendClientMessage(playerid, -1, string);
           
            new
                Float: iPos[3];
               
            GetPlayerPos(playerid, iPos[0], iPos[1], iPos[2]);
           
            new vehicle = CreateVehicle(listitem, iPos[0], iPos[1], iPos[2], 0.0, -1, -1, -1);
            PutPlayerInVehicle(playerid, vehicle, 0);
        }
    }
    return 1;
}
Just one thing: I don't know how many items the DIALOG_STYLE_LIST can hold. So if I were you I would split the vehicles into 2 or 3 different dialogs.


Re: More efficient car spawn - lramos15 - 02.08.2013

Do you mind explaining the code?