rendered paste body// Simple speedo by ZeeX, 17/10/2009#define FILTERSCRIPT#include <a_samp>#include "YSI/Core/YSI_bit.own"#define HUD_UPDATE_TICKS 5new Text:gPlayerHUD[MAX_PLAYERS], Bit:gIsHUDShownBit[MAX_PLAYERS / cellbits + 1];forward Float:GetVehicleSpeed(vehicleid); public OnPlayerUpdate(playerid){ static playerTick[MAX_PLAYERS]; if (++playerTick[playerid] == HUD_UPDATE_TICKS) { playerTick[playerid] = 0; if (Bit_Get(gIsHUDShownBit, playerid)) { new text[8]; format(text, sizeof(text), "%.0f kmh", 200 * GetVehicleSpeed(GetPlayerVehicleID(playerid))); TextDrawSetString(gPlayerHUD[playerid], text); } } return 1;}public OnFilterScriptInit(){ for (new i; i < MAX_PLAYERS; i++) { if (IsPlayerConnected(i) && !IsPlayerNPC(i)) { CreatePlayerHUD(i); ShowPlayerHUD(i, (GetPlayerState(i) == PLAYER_STATE_DRIVER)); } } return 1;}public OnFilterScriptExit(){ for (new i; i < MAX_PLAYERS; i++) { if (IsPlayerConnected(i) && !IsPlayerNPC(i)) { DestroyPlayerHUD(i); } } return 1;}public OnPlayerConnect(playerid){ if (!IsPlayerNPC(playerid)) { CreatePlayerHUD(playerid); } return 1;}public OnPlayerDisconnect(playerid, reason){ #pragma unused reason if (!IsPlayerNPC(playerid)) { DestroyPlayerHUD(playerid); } return 1;}public OnPlayerStateChange(playerid, newstate, oldstate){ #pragma unused oldstate if (!IsPlayerNPC(playerid)) { ShowPlayerHUD(playerid, (newstate == PLAYER_STATE_DRIVER)); } return 1;} CreatePlayerHUD(playerid){ gPlayerHUD[playerid] = TextDrawCreate(620, 410, "0 kmh"); TextDrawSetProportional(gPlayerHUD[playerid], true); TextDrawUseBox(gPlayerHUD[playerid], false); TextDrawSetOutline(gPlayerHUD[playerid], 2); TextDrawAlignment(gPlayerHUD[playerid], 3); TextDrawLetterSize(gPlayerHUD[playerid], 0.7, 2.0); TextDrawFont(gPlayerHUD[playerid], 3); TextDrawColor(gPlayerHUD[playerid], 0x000000FF); TextDrawBackgroundColor(gPlayerHUD[playerid], 0xC71919FF); return 1;}DestroyPlayerHUD(playerid){ TextDrawHideForPlayer(playerid, gPlayerHUD[playerid]); TextDrawDestroy(gPlayerHUD[playerid]); return 1;}ShowPlayerHUD(playerid, bool:show){ if (show) { TextDrawShowForPlayer(playerid, gPlayerHUD[playerid]); } else { TextDrawHideForPlayer(playerid, gPlayerHUD[playerid]); } Bit_Set(gIsHUDShownBit, playerid, show, MAX_PLAYERS); return 1; } Float:GetVehicleSpeed(vehicleid){ new Float:vX, Float:vY, Float:vZ; GetVehicleVelocity(vehicleid, vX, vY, vZ); return floatsqroot(vX*vX + vY*vY + vZ*vZ);}