11.09.2012, 17:30
(
Последний раз редактировалось Dokins; 11.09.2012 в 20:42.
)
I've no idea why, the fuel meter displays but the speedometer does not.
Creation of TEXT etc.
Engine on command.
TIMER
Any help would be appreciated, speedometer is meant to display exactly the same and above the fuelmeter.
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);
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;
}
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);
}
}