Speedometer does not display at all. (Screenshot).
#1

I've no idea why, the fuel meter displays but the speedometer does not.




Creation of TEXT etc.
pawn Код:
new Text:speed[MAX_PLAYERS],Text:fuel[MAX_PLAYERS];

//(ONPLAYERCONNECT)
    speed[playerid] = TextDrawCreate(478,389,"_");
    TextDrawLetterSize(speed[playerid],0.37,2.0);
    TextDrawSetOutline(speed[playerid],1);
    TextDrawFont(speed[playerid], 2);
    TextDrawShowForPlayer(playerid,speed[playerid]);
    fuel[playerid] = TextDrawCreate(478,413,"_");
    TextDrawLetterSize(fuel[playerid],0.37,2.0);
    TextDrawSetOutline(fuel[playerid],1);
    TextDrawFont(fuel[playerid], 2);
Engine on command.
pawn Код:
CMD:eon(playerid, params[])
{
    if(LoggedIn[playerid] == 0)return SendClientMessage(playerid, COLOUR_GREY, "You must be logged in to use this command.");
    if(IsRefuelling[playerid] == 1)return SendClientMessage(playerid, COLOUR_GREY, "You may not turn your engine on as you are refuelling.");
    printf("checks if refueling");
    new string[128];
    new vehicleid = GetPlayerVehicleID(playerid);
    new name = GetVehicleModel(vehicleid) - 400;
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER)return SendClientMessage(playerid, COLOUR_GREY, "You are not the driver.");
    printf("checks player state");
    if(EngineStartStatus[vehicleid] == 1)return SendClientMessage(playerid, COLOUR_GREY, "The engine is already on.");
    printf("checks engine");
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOUR_GREY, "You are not in a vehicle.");
    printf("checks if in vehicle.");
    KillTimer(SpeedoSysTimer[playerid]);
    printf("kills speedo");
    KillTimer(FuelSysTimer[playerid]);
    printf("kills fuel");
   

    printf("shows fuel");
    TextDrawDestroy(enginestring);

    SpeedoSysTimer[playerid] = SetTimerEx("SpeedoUpdate", 300, true, "i", playerid);
    printf("speedotimer");
    printf("shows speedo");
    FuelSysTimer[playerid] = SetTimerEx("FuelUpdate", 30000, true, "i", playerid);
    TextDrawShowForPlayer(playerid,speed[playerid]);
    TextDrawShowForPlayer(playerid,fuel[playerid]);
    printf("fueltimer");
    SetTimer("FuelSave", 4000, 1);
   
   
    if(VehFuel[vehicleid] > 0)
    {
        EngineStartStatus[vehicleid] = 1;
        GameTextForPlayer(playerid, "~g~Engine starting...", 2500, 5);
        SetTimerEx("EngineOn", 3000, false, "i", playerid);
        format(string, sizeof(string), "* %s turns the %s's ignition key...", GetNameEx(playerid), VehicleNames[name]);
        ProxDetector(30.0, playerid, string, COLOUR_PURPLE, COLOUR_PURPLE, COLOUR_PURPLE, COLOUR_PURPLE, COLOUR_PURPLE);
    }
    else if(VehFuel[vehicleid] == 0)
    {
        EngineStartStatus[vehicleid] = 0;
        SendClientMessage(playerid, COLOUR_REALRED, "Your vehicle is out of fuel..");
        format(string, sizeof(string), "* The %s has run out of fuel and failed to start.", VehicleNames[name]);
        ProxDetector(30.0, playerid, string, COLOUR_PURPLE, COLOUR_PURPLE, COLOUR_PURPLE, COLOUR_PURPLE, COLOUR_PURPLE);
    }
    return 1;
}
TIMER
pawn Код:
public SpeedoUpdate(playerid)
{
 if(IsPlayerInAnyVehicle(playerid))
        {
            new Float:x,Float:y,Float:z,string[24],vehicleid = GetPlayerVehicleID(playerid);
            GetVehicleVelocity(vehicleid,x,y,z);
            format(string,sizeof(string),"~g~Speed: ~w~%d mph",floatround(floatsqroot(((x*x)+(y*y))+(z*z))*156.666667*0.641371192));
            TextDrawSetString(speed[playerid],string);
            format(string,sizeof(string),"~g~Fuel: ~w~%d%%",VehFuel[vehicleid]);
            TextDrawSetString(fuel[playerid],string);
        }

}
Any help would be appreciated, speedometer is meant to display exactly the same and above the fuelmeter.
Reply
#2

Anyone?
Reply
#3

Not sure but ehm
Quote:

format(string,sizeof(string),"~g~Speed: ~w~%d mph",floatround(floatsqroot(((x*x)+(y*y))+(z*z))*1 56.666667*0.641371192));

I think that '156.666667*0.641371192' Isn't correct. I'm not sure.
Reply
#4

Quote:
Originally Posted by -Shifty-
Посмотреть сообщение
Not sure but ehm


I think that '156.666667*0.641371192' Isn't correct. I'm not sure.
That's not the issue, i'm sure it is correct.
Reply
#5

Bump.
Reply
#6

Issue with strings, im not sure but this should work fine -
pawn Код:
public SpeedoUpdate(playerid)
{
 if(IsPlayerInAnyVehicle(playerid))
        {
            new Float:x,Float:y,Float:z,string[24],string2[24],vehicleid = GetPlayerVehicleID(playerid);
            GetVehicleVelocity(vehicleid,x,y,z);
            format(string2,sizeof(string2),"~g~Speed: ~w~%d mph",floatround(floatsqroot(((x*x)+(y*y))+(z*z))*156.666667*0.641371192));
            TextDrawSetString(speed[playerid],string2);
            format(string,sizeof(string),"~g~Fuel: ~w~%d%%",VehFuel[vehicleid]);
            TextDrawSetString(fuel[playerid],string);
        }

}
Reply
#7

Not a difference.
Reply
#8

Help?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)