Fuel - [Problem]
#1

i have a textdraw speedo here is my public fuel

pawn Код:
public Fuel()
                    {
                        for(new i; i < MAX_PLAYERS; i++)
                        {
                             if(IsPlayerInAnyVehicle(i) && (GetPlayerState(i)== PLAYER_STATE_DRIVER))
                            {
                                if(IsRefilling[i])
                                {
                                    continue;
                                }

                                new
                                    vehicleid = GetPlayerVehicleID(i),
                                    TD_String[25]
                                ;

                                if(GetPlayerVehicleSeat(i) != 0)
                                {
                                    continue;
                                }

                                if(IsRanOutOfFuel[vehicleid])
                                {
                                    continue;
                                }

                                if(!VehicleFuel[vehicleid])
                                {
                                    new
                                        engine,
                                        lights,
                                        alarm,
                                        doors,
                                        bonnet,
                                        boot,
                                        objective
                                    ;

                                    GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
                                    SetVehicleParamsEx(vehicleid, 0, lights, alarm, doors, bonnet, boot, objective);
                                    SendClientMessage(i, -1, "You ran out of fuel.");
                                    IsRanOutOfFuel[vehicleid] = true;

                                    return 1;
                                }
                                if(engineOn[i] == 1)
                                VehicleFuel[vehicleid]--;
                                format(TD_String, 25, "%i %", VehicleFuel[vehicleid]);
                                TextDrawSetString(Text:Values[i][3], TD_String);
                            }
                        }
                        }
                        }
                        }
                        return 1;
                    }
here is my /fuelcars the problem is if i type /fuelcars the fuel goes to 100 after 10 minutes..

pawn Код:
if(strcmp(cmd, "/fuelcars", true) == 0)
                    {
                        if(IsPlayerConnected(playerid))
                        {
                            if(PlayerInfo[playerid][pAdmin] >= 4)
                            {
                                for(new c=0;c<CAR_AMOUNT;c++)
                                {
                                VehicleFuel[c] = 100;
                                }
                                SendClientMessage(playerid, COLOR_GREY, "   All cars filled with Fuel ! ");
                            }
                            else
                            {
                                SendClientMessage(playerid, COLOR_GREY, "   You are not an Admin ! ");
                                return 1;
                            }
                        }
                        return 1;
                    }
Reply
#2

pawn Код:
VehicleFuel[c] = 100;
Reply
#3

i had it like that but no work..i do /fuelcars and after 10 minutes i see in textdraw..
Reply
#4

Ah... Than this:

pawn Код:
if(strcmp(cmd, "/fuelcars", true) == 0)
                    {
                        if(IsPlayerConnected(playerid))
                        {
                            if(PlayerInfo[playerid][pAdmin] >= 4)
                            {
                                for(new c=0;c<CAR_AMOUNT;c++)
                                {
                                    new TD_String[25];
                                    VehicleFuel[c] = 100;
                                    format(TD_String, 25, "%i %", VehicleFuel[vehicleid]);
                                    TextDrawSetString(Text:Values[i][3], TD_String);
                                }
                                SendClientMessage(playerid, COLOR_GREY, "   All cars filled with Fuel ! ");
                            }
                            else
                            {
                                SendClientMessage(playerid, COLOR_GREY, "   You are not an Admin ! ");
                                return 1;
                            }
                        }
                        return 1;
                    }
Reply
#5

but vehicle needs the c and look at my change..

pawn Код:
if(strcmp(cmd, "/fuelcars", true) == 0)
                    {
                        if(IsPlayerConnected(playerid))
                        {
                            if(PlayerInfo[playerid][pAdmin] >= 4)
                            {
                                for(new i = 0; i < MAX_PLAYERS; i ++)
                                {
                                    new vehicleid = GetPlayerVehicleID(playerid);
                                    new TD_String[25];
                                    VehicleFuel[c] = 100;
                                    format(TD_String, 25, "%i %", VehicleFuel[vehicleid]);
                                    TextDrawSetString(Text:Values[i][3], TD_String);
                                }
                                SendClientMessage(playerid, COLOR_GREY, "   All cars filled with Fuel ! ");
                            }
                            else
                            {
                                SendClientMessage(playerid, COLOR_GREY, "   You are not an Admin ! ");
                                return 1;
                            }
                        }
                        return 1;
                    }
Reply
#6

Your change is honestly shit. xD You are searching vehicles, not players. And there it askes for C, cos you define it i in the "for"... Tried my example? The last one? If so, what happens when you use it?
Reply
#7

You want to refill all cars, or just used cars?

Why: new vehicleid = GetPlayerVehicleID(playerid); ?
Correct is: new vehicleid = GetPlayerVehicleID(i); // get vehicleid of vehicle used by "i"

maybe add first

if(!IsPlayerInAnyVehicle(i)) continue;

VehicleFuel[vehicleid] = 100;

format(TD_String, 25, "%i %", VehicleFuel[i]);

VehicleFuel -> textdraw of the user, or of the vehicle?
Reply
#8

PHP код:
(27934) : error 017undefined symbol "i" TextDrawSetString(Text:Values[i][3], TD_String);
(
27932) : error 017undefined symbol "vehicleid" format(TD_String25"%i %"VehicleFuel[vehicleid]); 
Reply
#9

Quote:
Originally Posted by ReVo_
Посмотреть сообщение
You want to refill all cars, or just used cars?

Why: new vehicleid = GetPlayerVehicleID(playerid); ?
Correct is: new vehicleid = GetPlayerVehicleID(i); // get vehicleid of vehicle used by "i"

maybe add first

if(!IsPlayerInAnyVehicle(i)) continue;

VehicleFuel[vehicleid] = 100;

format(TD_String, 25, "%i %", VehicleFuel[i]);

VehicleFuel -> textdraw of the user, or of the vehicle?
WTF? VehicleFuel[i] isn't a textdraw, but the variable where fuel saves. Read better when people ask for help, or when you have no idea on how to solve it, don't comment...
Reply
#10

pawn Код:
if(strcmp(cmd, "/fuelcars", true) == 0)
                    {
                        if(IsPlayerConnected(playerid))
                        {
                            new TD_String[25];
                            if(PlayerInfo[playerid][pAdmin] >= 4)
                            {
                                for(new veh=0;veh<MAX_VEHICLES;veh++)
                                {
                                    VehicleFuel[veh] = 100;
                                    format(TD_String, sizeof(TD_String), "%d", VehicleFuel[veh]);
                                }
                                TextDrawSetString(Text:Values[playerid][3], TD_String);
                                SendClientMessage(playerid, COLOR_GREY, "   All cars filled with Fuel ! ");
                            }
                            else
                            {
                                SendClientMessage(playerid, COLOR_GREY, "   You are not an Admin ! ");
                                return 1;
                            }
                        }
                        return 1;
                    }
Loop all vehicles with a simle MAX_VEHICLES.

but inside the loop the fuel of all vehicles is set into 1 tesdraw which will not work the way u need!
i dont know what ur trying to do by that so ..
Reply


Forum Jump:


Users browsing this thread: 6 Guest(s)