SA-MP Forums Archive
car help - 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: car help (/showthread.php?tid=567663)



car help - suni - 15.03.2015

hello. i have one problem about spawning vehicles. when i spawn a car it will put me in it. when i get out and type the same cmd, it create a second vehicle but it doesnt destroy the first spawned vehicle. i want it to delete the first spawned vehicle before creating a new vehicle but i cant fix it.please help me.


Respuesta: car help - alexus - 15.03.2015

Define a variable to store the id of the player's spawned vehicle:

Код:
new CarId[MAX_PLAYERS];
add this line at OnPlayerConnect Callback

Код:
CarId[playerid] = INVALID_VEHICLE_ID;
When player tries to spawn a vehicle, if CarId[playerid] exist detroy it before:

Код:
CMD:v(playerid, params[])
{
	new string[128], vID[32], vid, Float, Float:y, Float:z, Float:ang;
	if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "You cannot spawn vehicle while in passenger sit!");
	if(sscanf(params, "s[32]", vID)) return SendClientMessage(playerid, COLOR_RED, "Syntax: /v (carname)");
	if(isnumeric(vID)) vid = strval(vID);
	else vid = GetVehicleModelIDFromName(vID);
	if (vid < 400 || vid > 611) return SendClientMessage(playerid, COLOR_RED, "Vehicle ID Maxium (Left): 400 - Maxium (Right): 611");
	GetPlayerPos(playerid,x,y,z);
	GetPlayerFacingAngle(playerid,ang);
	if(CarId[playerid] != INVALID_VEHICLE_ID) DestroyVehicle(CarId[playerid]);
	CarId[playerid] = CreateVehicle(vid, x, y, z, ang, -1, -1, 6000);
	LinkVehicleToInterior(CarId[playerid], GetPlayerInterior(playerid));
	SetVehicleVirtualWorld(CarId[playerid], GetPlayerVirtualWorld(playerid));
	PutPlayerInVehicle(playerid, CarId[playerid], 0);
	format(string, sizeof(string), "You've spawned vehicle id %i - %s", vid, VehicleName[vid - 400]);
	SendClientMessage(playerid, COLOR_YELLOW, string);
	return 1;
}
Destroy vehicle when player disconnects (OnPlayerDisconnect Callback)

Код:
if(CarId[playerid] != INVALID_VEHICLE_ID) DestroyVehicle(CarId[playerid]);



Re: car help - suni - 15.03.2015

Quote:

Define a variable to store the id of the player's spawned vehicle:

Code:
new CarId[MAX_PLAYERS];
add this line at OnPlayerConnect Callback

Code:
CarId[playerid] = INVALID_VEHICLE_ID;
When player tries to spawn a vehicle, if CarId[playerid] exist detroy it before:

Code:
CMD:v(playerid, params[])
{
new string[128], vID[32], vid, Float, Float:y, Float:z, Float:ang;
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_RED, "You cannot spawn vehicle while in passenger sit!");
if(sscanf(params, "s[32]", vID)) return SendClientMessage(playerid, COLOR_RED, "Syntax: /v (carname)");
if(isnumeric(vID)) vid = strval(vID);
else vid = GetVehicleModelIDFromName(vID);
if (vid < 400 || vid > 611) return SendClientMessage(playerid, COLOR_RED, "Vehicle ID Maxium (Left): 400 - Maxium (Right): 611");
GetPlayerPos(playerid,x,y,z);
GetPlayerFacingAngle(playerid,ang);
if(CarId[playerid] != INVALID_VEHICLE_ID) DestroyVehicle(CarId[playerid]);
CarId[playerid] = CreateVehicle(vid, x, y, z, ang, -1, -1, 6000);
LinkVehicleToInterior(CarId[playerid], GetPlayerInterior(playerid));
SetVehicleVirtualWorld(CarId[playerid], GetPlayerVirtualWorld(playerid));
PutPlayerInVehicle(playerid, CarId[playerid], 0);
format(string, sizeof(string), "You've spawned vehicle id %i - %s", vid, VehicleName[vid - 400]);
SendClientMessage(playerid, COLOR_YELLOW, string);
return 1;
}
Destroy vehicle when player disconnects (OnPlayerDisconnect Callback)

Code:
if(CarId[playerid] != INVALID_VEHICLE_ID) DestroyVehicle(CarId[playerid]);
__________________

Thanks man your codes work great! +Rep