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]); }