SA-MP Forums Archive
Problem with vehicle spawning. - 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: Problem with vehicle spawning. (/showthread.php?tid=522951)



Deleted. - iFiras - 29.06.2014

Deleted.


Re: Problem with vehicle spawning. - Threshold - 30.06.2014

pawn Код:
CMD:veh(playerid,params[])
{
    if(AdminLevel[playerid] < 5) return SCM(playerid,COLOR_WHITE,"{FF0000}(ERROR): {FFFFFF}You do not have the right admin level to use this.");
    if(!strlen(params)) return SendClientMessage(playerid, COLOR_WHITE, ""COL_USAGE"[Usage] {FFFFFF}/veh [Vehicle]");
    new vehicle = GetVehicleModelIDFromName(params);
    if(!(399 < vehicle < 612)) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}(ERROR): {FFFFFF}Invalid vehicle name.");
    new String[128], Float:x, Float:y, Float:z, Float:a;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, a);
    GetXYInFrontOfPlayer(playerid, x, y, (IsPlayerInAnyVehicle(playerid) ? (8) : (5));
    new engine, lights, alarm, doors, bonnet, boot, objective, vid = GetPlayerVehicleID(playerid);
    GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(vid, VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
    PlayersVehicle[amount_of_vehicles] = CreateVehicle(vehicle, x, y, z, a + 90, -1, -1, -1);
    LinkVehicleToInterior(PlayersVehicle[amount_of_vehicles], GetPlayerInterior(playerid));
    PutPlayerInVehicle(playerid, PlayersVehicle[amount_of_vehicles], 0);
    AdminVehicle[PlayersVehicle[amount_of_vehicles]] = 1;
    GetVehicleParamsEx(PlayersVehicle[amount_of_vehicles], engine, lights, alarm, doors, bonnet, boot, objective);
    SetVehicleParamsEx(PlayersVehicle[amount_of_vehicles], 1, lights, alarm, doors, bonnet, boot, objective);
    amount_of_vehicles++;
    format(String, sizeof(String), ""COL_ADMIN"[ADMIN] {FFFFFF}You have spawned a \"%s\".", aVehicleNames[vehicle - 400]);
    SendClientMessage(playerid, COLOR_WHITE, String);
    return 1;
}
Chances are, your GetVehicleModelFromName or whatever is returning an invalid value. Hence when you take '400' from it, it might be becoming negative and if you use negative values in an array (aVehicleNames[vehicle - 400]).


Re: Problem with vehicle spawning. - Jacob756 - 30.06.2014

or you could just use mine..

Код:
#include <a_samp>

#define FILTERSCRIPT
#if defined FILTERSCRIPT

#define l_red 0xFF0000AA
#define l_green 0x33FF33AA


new aVehicleNames[212][] =
{
	{"Landstalker"},
	{"Bravura"},
	{"Buffalo"},
	{"Linerunner"},
	{"Perrenial"},
	{"Sentinel"},
	{"Dumper"},
	{"Firetruck"},
	{"Trashmaster"},
	{"Stretch"},
	{"Manana"},
	{"Infernus"},
	{"Voodoo"},
	{"Pony"},
	{"Mule"},
	{"Cheetah"},
	{"Ambulance"},
	{"Leviathan"},
	{"Moonbeam"},
	{"Esperanto"},
	{"Taxi"},
	{"Washington"},
	{"Bobcat"},
	{"Mr Whoopee"},
	{"BF Injection"},
	{"Hydra"},
	{"Premier"},
	{"Enforcer"},
	{"Securicar"},
	{"Banshee"},
	{"Predator"},
	{"Bus"},
	{"Rhino"},
	{"Barracks"},
	{"Hotknife"},
	{"Trailer 1"},
	{"Previon"},
	{"Coach"},
	{"Cabbie"},
	{"Stallion"},
	{"Rumpo"},
	{"RC Bandit"},
	{"Romero"},
	{"Packer"},
	{"Monster"},
	{"Admiral"},
	{"Squalo"},
	{"Hunter"},
	{"Pizzaboy"},
	{"Tram"},
	{"Trailer 2"},
	{"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 A"},
	{"Hotring Racer B"},
	{"Bloodring Banger"},
	{"Rancher"},
	{"Super GT"},
	{"Elegant"},
	{"Journey"},
	{"Bike"},
	{"Mountain Bike"},
	{"Beagle"},
	{"Cropdust"},
	{"Stunt"},
	{"Tanker"},
	{"Roadtrain"},
	{"Nebula"},
	{"Majestic"},
	{"Buccaneer"},
	{"Shamal"},
	{"Seasparrow"},
	{"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 LA"},
	{"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 Flat"},
	{"Streak Carriage"},
	{"Kart"},
	{"Mower"},
	{"Duneride"},
	{"Sweeper"},
	{"Broadway"},
	{"Tornado"},
	{"AT-400"},
	{"DFT-30"},
	{"Huntley"},
	{"Stafford"},
	{"BF-400"},
	{"Newsvan"},
	{"Tug"},
	{"Trailer 3"},
	{"Emperor"},
	{"Wayfarer"},
	{"Euros"},
	{"Hotdog"},
	{"Club"},
	{"Freight Carriage"},
	{"Trailer 3"},
	{"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"}
};

#endif

public OnPlayerCommandText(playerid, cmdtext[])
{
	new cmd[200], idx;
	cmd = strtok(cmdtext, idx);

	if(strcmp(cmd, "/v", true, 10) == 0)
	{

		new String[200];
		new tmp[256];
		new Float:x, Float:y, Float:z;

		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp)) return SendClientMessage(playerid, l_red, "You diden't give a vehicle name");

		new vehicle = GetVehicleModelIDFromName(tmp);

		if(vehicle < 400 || vehicle > 611) return SendClientMessage(playerid, l_red, "That vehicle name was not found");

		new Float:a;
		GetPlayerFacingAngle(playerid, a);
		GetPlayerPos(playerid, x, y, z);

		if(IsPlayerInAnyVehicle(playerid) == 1)
		{
			GetXYInFrontOfPlayer(playerid, x, y, 8);
		}
		else
		{
		    GetXYInFrontOfPlayer(playerid, x, y, 5);
		}

		new PlayersVehicle = CreateVehicle(vehicle, x, y, z, a+90, -1, -1, -1);
		LinkVehicleToInterior(PlayersVehicle, GetPlayerInterior(playerid));

		format(String, sizeof(String), "You have spawned a %s", aVehicleNames[vehicle - 400]);
		SendClientMessage(playerid, l_green, String);
		return 1;
	}
	return 0;
}

strtok(const string[], &index)
{
	new length = strlen(string);
	while ((index < length) && (string[index] <= ' '))
	{
		index++;
	}

	new offset = index;
	new result[20];
	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
	{
		result[index - offset] = string[index];
		index++;
	}
	result[index - offset] = EOS;
	return result;
}

GetVehicleModelIDFromName(vname[])
{
	for(new i = 0; i < 211; i++)
	{
		if(strfind(aVehicleNames[i], vname, true) != -1)
		return i + 400;
	}
	return -1;
}

stock GetXYInFrontOfPlayer(playerid, &Float:x2, &Float:y2, Float:distance)
{
	new Float:a;

	GetPlayerPos(playerid, x2, y2, a);
	GetPlayerFacingAngle(playerid, a);

	if(GetPlayerVehicleID(playerid))
	{
		GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
	}

	x2 += (distance * floatsin(-a, degrees));
	y2 += (distance * floatcos(-a, degrees));
}
NOTE:this system has all vehicle.. if you want to remove vehicles like Hydra , Hunter ,etc

Instead of removing them (when removed the cars will be messed up eg: you try to spawn a shamal you got something else)

So instead of removing name it bug ( if you remove multiple cars make it like "bug1 , bug2"

THX


Deleted. - iFiras - 30.06.2014

Deleted.


Re: Problem with vehicle spawning. - Jacob756 - 30.06.2014

try mine it doesnt have GetVehiclemodelfromname


Re: Problem with vehicle spawning. - Jacob756 - 30.06.2014

just copy mine into a new filterscript

if you try to do it in your gamemode it will be messed up

unless you organize your GM

THX


Deleted. - iFiras - 30.06.2014

Deleted.


Re: Problem with vehicle spawning. - Jacob756 - 30.06.2014

Quote:
Originally Posted by iFiras
Посмотреть сообщение
I'm obliged to put it in my gamemode, because it has some functions related to it and some other commands too so can't get it out.

There is no point in copying your script because it's almost the same as me unless I added some of my functions.
Also, my gamemode seems to be organized.
The command used to work before now it doesn't, that's what makes me confused.
just make an fs change the command to whatever you want (make sure this cmd has not been used in anything)

and try


Re: Problem with vehicle spawning. - Threshold - 30.06.2014

Just edited my original post because the code wasn't structured properly. Another issue could be because amount_of_vehicles is negative or larger than the limit given? If you can't find the error, upload the script to pastebin.com and just post the link.


Deleted. - iFiras - 04.07.2014

Deleted.