Problem with vehicle spawning.
#1

Deleted.
Reply
#2

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]).
Reply
#3

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
Reply
#4

Deleted.
Reply
#5

try mine it doesnt have GetVehiclemodelfromname
Reply
#6

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
Reply
#7

Deleted.
Reply
#8

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
Reply
#9

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.
Reply
#10

Deleted.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)