new Text:greitis; forward Matuoja(playerid);
SetTimerEx("Matuoja",500,true,"i",playerid);
TextDrawDestroy(greitis);
public Matuoja(playerid)
{
new kmh[128];
format(kmh, 128, "Greitis: %i", GetPlayerSpeed(playerid));
greitis = TextDrawCreate(160, 349, kmh);
TextDrawFont(greitis , 2);
TextDrawLetterSize(greitis , 0.4, 1);
TextDrawColor(greitis , 0xC6D134FF);
TextDrawSetOutline(greitis , 0);
TextDrawSetProportional(greitis , 1);
TextDrawSetShadow(greitis , 0);
TextDrawShowForPlayer(playerid, greitis);
}
stock GetPlayerSpeed(playerid)
{
new Float:ST[4];
if(IsPlayerInAnyVehicle(playerid))
GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 180.3;
return floatround(ST[3]);
}
|
Do not recreate the textdraw every half a second in a timer ! Do it somewhere in another function, preferably under OnGameModeInit, and then update the textdraw in a timer with TextDrawSetString.
|
#include <a_samp>
new Text:greitis;
forward Matuoja(playerid);
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
greitis = TextDrawCreate(160, 349, "");
TextDrawFont(greitis , 2);
TextDrawLetterSize(greitis , 0.4, 1);
TextDrawColor(greitis , 0xC6D134FF);
TextDrawSetOutline(greitis , 0);
TextDrawSetProportional(greitis , 1);
TextDrawSetShadow(greitis , 0);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print("\n----------------------------------");
print(" ...");
print("----------------------------------\n");
}
#endif
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
SetTimerEx("Matuoja",500,true,"i",playerid);
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
TextDrawDestroy(greitis);
return 1;
}
public Matuoja(playerid)
{
new kmh[128];
format(kmh, 128, "Greitis: %i", GetPlayerSpeed(playerid));
TextDrawSetString(greitis, kmh);
TextDrawShowForPlayer(playerid, greitis);
}
stock GetPlayerSpeed(playerid)
{
new Float:ST[4];
if(IsPlayerInAnyVehicle(playerid))
GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 180.3;
return floatround(ST[3]);
}