SA-MP Forums Archive
Vehicle Spawning with name - 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: Vehicle Spawning with name (/showthread.php?tid=282544)



Vehicle Spawning with name - Max_Coldheart - 11.09.2011

Good day! I am having an problem. my vehicle command is giving out error 035: argument type mismatch (argument 1)

pawn Код:
CMD:veh(playerid, params[])
{
    new Vehicle[50], color1, color2;
    if(sscanf(params, "s[50]dd", Vehicle, color1, color2)) return SendClientMessage(playerid, COLOR_RED, "[SERVER]: /veh [car] [color1] [color2]");
    else
    {
        new string[128], angle;
        new veh = GetVehicleModel(Vehicle); // The problem is here
        new Float:X, Float:Y, Float:Z;
        GetPlayerPos(playerid, X, Y, Z);
        new PVeh = CreateVehicle(veh, X+3, Y, Z, angle, -1, -1, -1);
        LinkVehicleToInterior(PVeh, GetPlayerInterior(playerid)); SetVehicleVirtualWorld(PVeh, GetPlayerVirtualWorld(playerid));
        format(string, sizeof(string), "[SERVER]: You have spawned a %s. ID: %i. ", VehicleNames[veh - 400], veh);
        SendClientMessage(playerid, COLOR_GREEN, string);
        PutPlayerInVehicle(playerid, veh, 0);
        ChangeVehicleColor(veh, color1, color2);
        if(veh < 400 || veh > 611) return SendClientMessage(playerid, COLOR_RED, "Invalid Vehicle ID / Name.");
    }
    return 1;
}
Whats wrong?


Re: Vehicle Spawning with name - AeroBlast - 11.09.2011

https://sampwiki.blast.hk/wiki/GetVehicleModel


Re: Vehicle Spawning with name - Max_Coldheart - 11.09.2011

Quote:
Originally Posted by AeroBlast
Посмотреть сообщение
How should I be doing this then, if not using GetVehicleModel ?


Re: Vehicle Spawning with name - AeroBlast - 11.09.2011

First, you add this at the top of your script:

pawn Код:
new VehicleNames[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"
};
Then, you put this somewhere in your script:
pawn Код:
GetVehicleModelIDFromName(vname[])
{
    for(new i = 0; i < 211; i++)
    {
        if ( strfind(VehicleNames[i], vname, true) != -1 )
            return i + 400;
    }
    return -1;
}
And the command:
pawn Код:
CMD:veh(playerid, params[])
{
    new Vehicle[50], color1, color2;
    if(sscanf(params, "s[50]dd", Vehicle, color1, color2)) return SendClientMessage(playerid, COLOR_RED, "[SERVER]: /veh [car] [color1] [color2]");
    else
    {
        new string[128], angle;
        new veh = GetVehicleModelIDFromName(Vehicle);
        new Float:X, Float:Y, Float:Z;
        GetPlayerPos(playerid, X, Y, Z);
        new PVeh = CreateVehicle(veh, X+3, Y, Z, angle, -1, -1, -1);
        LinkVehicleToInterior(PVeh, GetPlayerInterior(playerid));
        SetVehicleVirtualWorld(PVeh, GetPlayerVirtualWorld(playerid));
        format(string, sizeof(string), "[SERVER]: You have spawned a %s. ID: %i. ", VehicleNames[veh - 400], veh);
        SendClientMessage(playerid, COLOR_GREEN, string);
        PutPlayerInVehicle(playerid, veh, 0);
        ChangeVehicleColor(veh, color1, color2);
        if(veh < 400 || veh > 611) return SendClientMessage(playerid, COLOR_RED, "Invalid Vehicle ID / Name.");
    }
    return 1;
}
This should work. (I think, haven't tested it)


Re: Vehicle Spawning with name - Vince - 11.09.2011

GetVehicelModel doesn't accept string vehicle names, only vehicleids. Ideally, you'd need an array with all the vehicle names in order to check your input against, and to get the right model id.


Re: Vehicle Spawning with name - iPLEOMAX - 11.09.2011

That's because GetVehicleModel can only be used with integers. But your variable: "Vehicle" is a string.

Edit: too late..