[Help] > Private vehicles fuel..
#1

Hello sa-mp forum!
I really need help with this:

I got player private vehicle system with saving like that:

Код:
#define MAX_PLAYER_CARS 5
enum Player_Car_Info
{
	pCarID,
	Float:pX,
	Float:pY,
	Float:pZ,
	pFuel
}
new PlayerCar[MAX_PLAYERS][MAX_PLAYER_CARS][Player_Car_Info];
In onplayerconnect:
Код:
VehicleSystem_Creating(playerid);
Under onplayerconnect:
Код:
function VehicleSystem_Creating(id)
{
    for(new i; i < MAX_PLAYER_CARS; i++)
    {
             LoadPlayerVehicle(id, i);
    }
    return 1;
}

stock LoadPlayerVehicle(id, SlotID)
{
        new s[75];
	format(s, sizeof(s), "Vehicles/%s_vehicle_%d.ini", Name(id), SlotID);
	if(fexist(s))
	{
		PlayerCar[id][SlotID][CarID] = dini_Int(s, "ModelID");
  		PlayerCar[id][SlotID][pX] = dini_Float(s, "X");
		PlayerCar[id][SlotID][pY] = dini_Float(s, "Y");
		PlayerCar[id][SlotID][pZ] = dini_Float(s, "Z");
                PlayerCar[id][SlotID][pFuel] = dini_Int(s, "Fuel");
                PlayerCar[id][SlotID][CarID] = CreateVehicle...modelid,x,y,z...
         }
         return 1;
}
In onplayerdisconnect:
Код:
VehicleSystem_Saving(playerid);
Under onplayerdisconnect:
Код:
function VehicleSystem_Saving(id)
{
	for(new i; i < MAX_PLAYER_CARS; i++)
	{
	    SavePlayerVehicle(id, i);
	}
	return 1;
}

stock SavePlayerVehicle(id, SlotID)
{
	new s[75];
	format(s, sizeof(s), "Vehicles/%s_vehicle_%d.ini", Name(id), SlotID);
	if(fexist(s))
	{
		GetVehiclePos...
		Storing variables..
		But now fuel:
		dini_IntSet(s, "Fuel", PlayerCar[id][SlotID][pFuel]);
	}
	return 1;
}
Now when variable pFuel is saved and loaded for specific player vehicle i dont know how to update it so, something like that:
Код:
//Only for test(no timers only test)
public UpdateFuel_PrivateVehs(playerid, vehicleid)
{
        PlayerCar[playerid][SlotID][pFuel] -= 1; //Dont know how to make to loosing fuel only for playerґs private vehicle, maybe SlotID can i use as vehicleid?
	return 1;
}
Now need function like that:
Код:
stock GetVehicleFuel(playerid, vehicleid)
returns actual fuel of playerґs private vehicle.

Sorry for bad English
But i really need this :/ Thanks for reply.
Reply
#2

Does anyone know it?
Reply
#3

If the player is already inside a car, Then we can just check if the car he's inside matches with his cars and return what we need

pawn Код:
stock UpdateFuel_PrivateVehs(playerid)
{
    new ID = GetPlayerVehicleID(playerid);
    for(new i=0; i<MAX_PLAYER_CARS; i++)
    {
        if(ID == PlayerCar[playerid][i][CarID])
        {
            PlayerCar[playerid][i][pFuel] += 1;
            //PlayerCar[playerid][i][pFuel] -= 1; // Or whatever
        }
    }
}

stock GetPlayerVehicleFuel(playerid)
{
    new ID = GetPlayerVehicleID(playerid);
    for(new i=0; i<MAX_PLAYER_CARS; i++)
    {
        if(ID == PlayerCar[playerid][i][CarID])
        {
            PlayerCar[playerid][i][pFuel] += 1;
            //PlayerCar[playerid][i][pFuel] -= 1;
        }
    }
}
And If he isn't, But you know the vehicleid:
pawn Код:
stock GetVehicleFuel(playerid, vehicleid)
{
    for(new i=1; i<MAX_PLAYER_CARS; i++)
    {
        if(vehicleid == PlayerCar[playerid][i][CarID])
        {
            return PlayerCar[playerid][SlotID][pFuel]
        }
    }
    return 0;
}
Reply
#4

Thanks for your reply, i will try it.
Edit: Thanks alot again, it works +REP for good help and also work
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)