SA-MP Forums Archive
Anyone can park car ? Why ? Plz 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: Anyone can park car ? Why ? Plz help (/showthread.php?tid=557493)



Anyone can park car ? Why ? Plz help - Adarsh007 - 14.01.2015

Hello here is my /park code But anyone can park house car !!! I want this Only Owner can Park-
Here are the Functions -
For your Help i this is a Additional Code which Verify the Car Owner else it throw player out of the car-
Код:
public OnPlayerStateChange(playerid,newstate,oldstate)
{
	// Setup local variables
	new vid, Name[24], Msg[128], engine, lights, alarm, doors, bonnet, boot, objective;

	// Check if the player became the driver of a vehicle
	if (newstate == PLAYER_STATE_DRIVER)
	{
		// Get the ID of the player's vehicle
		vid = GetPlayerVehicleID(playerid);
		// Get the player's name
		GetPlayerName(playerid, Name, sizeof(Name));

		// Check if the vehicle is owned
		if (AVehicleData[vid][Owned] == true)
		{
			// Check if the vehicle is owned by somebody else (strcmp will not be 0)
			if (strcmp(AVehicleData[vid][Owner], Name, false) != 0)
			{
				// Force the player out of the vehicle
				RemovePlayerFromVehicle(playerid);
				// Turn off the lights and engine
				GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
				SetVehicleParamsEx(vid, 0, 0, alarm, doors, bonnet, boot, objective);
				// Let the player know he cannot use somebody else's vehicle
				format(Msg, 128, "{FF0000}You cannot use this vehicle, it's owned by \"{FFFF00}%s{FF0000}\"", AVehicleData[vid][Owner]);
				SendClientMessage(playerid, 0xFFFFFFFF, Msg);
			}
		}
	}

	return 1;
}

and finally my /park code -
Код:
COMMAND:park(playerid, params[])
{
	// Setup local variables
	new Float:x, Float:y, Float:z, Float:rot, vid, HouseID, Msg[128];
	new engine,lights,alarm,doors,bonnet,boot,objective;

	// If a player hasn't logged in properly, he cannot use this command
	if (INT_IsPlayerLoggedIn(playerid) == 0) return 0;

	// Check if the player is inside a vehicle (he must be the driver)
	if (GetPlayerVehicleSeat(playerid) == 0)
	{
		// Get the vehicle-id
		vid = GetPlayerVehicleID(playerid);
		// Get the HouseID to which this vehicle belongs
		HouseID = AVehicleData[vid][BelongsToHouse];

		// Check if this vehicle belongs to a house (if not, the vehicle cannot be parked, as it's not a house-vehicle)
		if (HouseID != 0)
		{
			// Check if the vehicle is in range of the house-entrance (you cannot park a vehicle further away from your house than 150m)
			if (IsPlayerInRangeOfPoint(playerid, ParkRange, AHouseData[HouseID][HouseX], AHouseData[HouseID][HouseY], AHouseData[HouseID][HouseZ]))
			{
				// Get the player's position and angle
				GetVehiclePos(vid, x, y, z);
				GetVehicleZAngle(vid, rot);
				// Save those values for the vehicle
				AVehicleData[vid][SpawnX] = x;
				AVehicleData[vid][SpawnY] = y;
				AVehicleData[vid][SpawnZ] = z;
				AVehicleData[vid][SpawnRot] = rot;

				// Loop through all carslots of this house to find the vehicle-id
				for (new CarSlot; CarSlot < 10; CarSlot++)
				{
					// Check if this carslot holds the same vehicle-id
				    if (AHouseData[HouseID][VehicleIDs][CarSlot] == vid)
				    {
	                    House_ReplaceVehicle(HouseID, CarSlot); // Re-create the vehicle at the same spot the player wants to park his vehicle
	                    PutPlayerInVehicle(playerid, AHouseData[HouseID][VehicleIDs][CarSlot], 0);
						// Turn on the engine and lights
						GetVehicleParamsEx(AHouseData[HouseID][VehicleIDs][CarSlot], engine, lights, alarm, doors, bonnet, boot, objective);
						SetVehicleParamsEx(AHouseData[HouseID][VehicleIDs][CarSlot], 1, 1, alarm, doors, bonnet, boot, objective);
	                    break; // Stop the for-loop
					}
				}

				// Let the player know he parked his vehicle
				SendClientMessage(playerid, 0xFFFFFFFF, "{00FF00}You've parked your vehicle");

				// Save the housefile
				HouseFile_Save(HouseID);
			}
			else
			{
			    format(Msg, 128, "{FF0000}You need to be within {FFFF00}%im{FF0000} of your house to park this vehicle", ParkRange);
			    SendClientMessage(playerid, 0xFFFFFFFF, Msg);
			}
		}
		else
		    SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}You cannot park a vehicle that's not owned by you");
	}
	else
	    SendClientMessage(playerid, 0xFFFFFFFF, "{FF0000}You must be driving a vehicle you own to park it");

	// Let the server know that this was a valid command
	return 1;
}
Please Help-

Rep++ if you help me.


Re: Anyone can park car ? Why ? Plz help - CalvinC - 14.01.2015

Do you even check if the vehicle belongs to the player?
Otherwise everyone can park it.


Re: Anyone can park car ? Why ? Plz help - Adarsh007 - 14.01.2015

No,Just it Verifys the Name of Owner / Player.
See in the First Code....Make it pls


Re: Anyone can park car ? Why ? Plz help - CalvinC - 14.01.2015

Define the vehicleid to be GetPlayerVehicleID(playerid).
Then use an if to check if it's the player's vehicle, with the player variable you store the custom vehicle info in.