Private vehicle system question
#1

I'm making private vehicle system. I want when player tries to enter car it would show who the car owner is. How do I do that? I know that I have to save car ID or smth like that, but can someone give me more detailed explanation? I'm using dini include for saving information.
Reply
#2

You need to create an array to hold the owner's name inside your vehicle's enumerator.

Example:
Код:
enum E_VEHICLEDATA
{
	Owner[24],
	other data...
}
g_VehicleInfo[MAX_VEHICLE][E_VEHICLEDATA];
Then, once player buys a vehicle, save owner's name in the file as well as other data. Also format the name to make sure that the array has owner's name stored

Example:
Код:
new name[24];

GetPlayerName(playerid, name, sizeof(name));

format(g_VehicleInfo[vehicleid][Owner], 24, name);

// Saving process ...
And under OnPlayerStateChange callback, check if the vehicle owner's name is matching to the name of the player that entered the vehicle

Example:
Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
	if (newstate == PLAYER_STATE_DRIVER:
	{
	    new vehicleid, name[24], string[64];

		GetPlayerName(playerid, name, sizeof(name));
		vehicleid = GetPlayerVehicleID(playerid);
	
		if (g_VehicleInfo[vehicleid][Owned] == 1)
		{
			if (strcmp(g_VehicleInfo[vehicleid][Owner], name) != 0) // name didn't match
			{
				RemovePlayerFromVehicle(playerid);
				format(string, sizeof(string), "This vehicle is owned by %s", g_VehicleInfo[vehicleid][Owner]);
				SendClientMessage(playerid, -1, string);
			}
		}
	}
	
	return 1;
}
Reply
#3

Maybe this can help you.
pawn Код:
new pVehicleInfo[MAX_VEHICLES][MAX_PLAYER_NAME];

stock setVehicleOwner(vehicleid, owner[])
{
    format(pVehicleInfo[vehicleid], sizeof(pVehicleInfo[vehicleid]), "%s", owner);
}

stock getVehicleOwner(vehicleid)
{
    return pVehicleInfo[vehicleid];
}
Reply
#4

Quote:
Originally Posted by Sjn
Посмотреть сообщение
You need to create an array to hold the owner's name inside your vehicle's enumerator.

Example:
Код:
enum E_VEHICLEDATA
{
	Owner[24],
	other data...
}
g_VehicleInfo[MAX_VEHICLE][E_VEHICLEDATA];
Then, once player buys a vehicle, save owner's name in the file as well as other data. Also format the name to make sure that the array has owner's name stored

Example:
Код:
new name[24];

GetPlayerName(playerid, name, sizeof(name));

format(g_VehicleInfo[vehicleid][Owner], 24, name);

// Saving process ...
And under OnPlayerStateChange callback, check if the vehicle owner's name is matching to the name of the player that entered the vehicle

Example:
Код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
	if (newstate == PLAYER_STATE_DRIVER:
	{
	    new vehicleid, name[24], string[64];

		GetPlayerName(playerid, name, sizeof(name));
		vehicleid = GetPlayerVehicleID(playerid);
	
		if (g_VehicleInfo[vehicleid][Owned] == 1)
		{
			if (strcmp(g_VehicleInfo[vehicleid][v_Owner], name) != 0) // name didn't match
			{
				RemovePlayerFromVehicle(playerid);
				format(string, sizeof(string), "This vehicle is owned by %s", g_VehicleInfo[vehicleid][Owner]);
				SendClientMessage(playerid, -1, string);
			}
		}
	}
	
	return 1;
}
What v_Owner stands for?
Reply
#5

Oh, i am sorry about that. I was making this example out of one of my vehicle system that i made long ago, which was similar to what you asked for but i forgot that one part, its [Owner]. Edited my comment now.
Reply
#6

Quote:
Originally Posted by Sjn
Посмотреть сообщение
You need to create an array to hold the owner's name inside your vehicle's enumerator.



Then, once player buys a vehicle, save owner's name in the file as well as other data. Also format the name to make sure that the array has owner's name stored

Example:
Код:
new name[24];

GetPlayerName(playerid, name, sizeof(name));

format(g_VehicleInfo[vehicleid][Owner], 24, name);
I get
Код:
error 017: undefined symbol "vehicleid"
Reply
#7

Add this :

PHP код:
new vehicleid GetPlayerVehicleID(playerid); 
Reply
#8

Quote:
Originally Posted by KillerDVX
Посмотреть сообщение
Add this :

PHP код:
new vehicleid GetPlayerVehicleID(playerid); 
This would get car id that I sitting in. If I understand corretly, I need id that I would create and save my car with. That means id that isn't used by any other car
Reply
#9

deleted
Reply
#10

I still need help.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)