#include
enum td
{
Text:TDSpeedClock
}
new TextDraws;
new Text:TextDrawsd;
new DeActiveSpeedometer;
public OnFilterScriptInit()
{
print("Clock Speedometer load");
TextDraws = TextDrawCreate(496.000000,400.000000,"~g~20");
TextDraws = TextDrawCreate(487.000000,388.000000,"~g~40");
TextDraws = TextDrawCreate(483.000000,375.000000,"~g~60");
TextDraws = TextDrawCreate(488.000000,362.000000,"~g~80");
TextDraws = TextDrawCreate(491.000000,349.000000,"~g~100");
TextDraws = TextDrawCreate(508.000000,336.500000,"~g~120");
TextDraws = TextDrawCreate(536.000000,332.000000,"~g~140");
TextDraws = TextDrawCreate(567.000000,337.000000,"~g~160");
TextDraws = TextDrawCreate(584.000000,348.000000,"~g~180");
TextDraws = TextDrawCreate(595.000000,360.000000,"~g~200");
TextDraws = TextDrawCreate(603.000000,374.000000,"~g~220");
TextDraws = TextDrawCreate(594.000000,386.000000,"~g~240");
TextDraws = TextDrawCreate(585.000000,399.000000,"~g~260");
TextDraws = TextDrawCreate(534.000000,396.000000,"~r~/ \\");
TextDraws = TextDrawCreate(548.000000,401.000000,".");
TextDrawLetterSize(TextDraws, 1.059999, 2.100000);
TextDrawLetterSize(TextDraws, 0.73, -2.60);
for(new i; i < 15; i++)
{
TextDrawSetShadow(TextDraws, 1);
TextDrawSetOutline(TextDraws, 0);
}
return 1;
}
public OnFilterScriptExit()
{
print("Clock Speedometer unload");
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "speedo", false) == 0)
{
new strOptionInfo=
{
"You have turned on your speedometer",
"You have turned off your speedometer"
};
DeActiveSpeedometer = !DeActiveSpeedometer;
SendClientMessage(playerid, 0x00AA00FF, strOptionInfo[DeActiveSpeedometer]);
if(!DeActiveSpeedometer)
{
for(new i; i < 15; i++)
TextDrawShowForPlayer(playerid, TextDraws);
for(new i; i < 4; i++)
TextDrawsd = TextDrawCreate(555.0, 402.0, "~b~.");
}
else
{
for(new i; i < 4; i++)
TextDrawHideForPlayer(playerid, TextDrawsd);
for(new i; i < 15; i++)
TextDrawHideForPlayer(playerid, TextDraws);
}
return 1;
}
return 0;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER && !DeActiveSpeedometer)
{
for(new i; i < 15; i++)
TextDrawShowForPlayer(playerid, TextDraws);
for(new i; i < 4; i++)
TextDrawsd = TextDrawCreate(555.0, 402.0, "~b~.");
}
else
{
for(new i; i < 4; i++)
TextDrawHideForPlayer(playerid, TextDrawsd);
for(new i; i < 15; i++)
TextDrawHideForPlayer(playerid, TextDraws);
}
return 1;
}
public OnPlayerUpdate(playerid)
{
new
Float:fPos,
Float:Pos,
Float:fSpeed;
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !DeActiveSpeedometer)
{
GetVehicleVelocity(GetPlayerVehicleID(playerid), fPos, fPos, fPos);
fSpeed = floatsqroot(floatpower(fPos, 2) + floatpower(fPos, 2) +
floatpower(fPos, 2)) * 200;
new Float:alpha = 320 - fSpeed;
if(alpha < 60)
alpha = 60;
for(new i; i < 4; i++)
{
TextDrawHideForPlayer(playerid, TextDrawsd);
TextDrawDestroy(TextDrawsd);
GetDotXY(548, 401, Pos, Pos, alpha, (i + 1) * 8);
TextDrawsd = TextDrawCreate(Pos, Pos, "~b~.");
TextDrawLetterSize(TextDrawsd, 0.73, -2.60);
TextDrawSetOutline(TextDrawsd, 0);
TextDrawSetShadow(TextDrawsd, 1);
TextDrawShowForPlayer(playerid, TextDrawsd);
}
}
return 1;
}
stock GetDotXY(Float:StartPosX, Float:StartPosY, &Float:NewX, &Float:NewY, Float:alpha, Float:dist)
{
NewX = StartPosX + (dist * floatsin(alpha, degrees));
NewY = StartPosY + (dist * floatcos(alpha, degrees));
}