All pastes #1593790 Raw Edit

5p33d0

public cpp v1 · immutable
#1593790 ·published 2009-10-05 05:00 UTC
rendered paste body
#define FILTERSCRIPT#include <a_samp>#include <arrbit>#define COLOR_FORE	0x000000FF#define COLOR_BACK	0xD31919FF#define HUD_UPDATE_INTERVAL   100#define INVALID_TEXTDRAW_ID (Text:-1)new	Text:gPlayerHUD[MAX_PLAYERS] = {INVALID_TEXTDRAW_ID, ...},	bitarray(gShownHUD, MAX_PLAYERS);forward LaunchTimers();forward UpdatePlayerHUD(playerid);Float:GetVehicleSpeed(vehicleid){	new	    Float:vX,	    Float:vY,	    Float:vZ;	GetVehicleVelocity(vehicleid, vX, vY, vZ);	return floatsqroot(vX*vX + vY*vY + vZ*vZ);}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], COLOR_FORE);	TextDrawBackgroundColor(gPlayerHUD[playerid], COLOR_BACK);	return 1;}DestroyPlayerHUD(playerid){    TextDrawHideForPlayer(playerid, gPlayerHUD[playerid]);	TextDrawDestroy(gPlayerHUD[playerid]);	gPlayerHUD[playerid] = INVALID_TEXTDRAW_ID;	return 1;}ShowPlayerHUD(playerid, bool:show){	if (show)	{		truebit(gShownHUD, playerid);		TextDrawShowForPlayer(playerid, gPlayerHUD[playerid]);	}	else	{				falsebit(gShownHUD, playerid);		TextDrawHideForPlayer(playerid, gPlayerHUD[playerid]);	}	return 1;	}		public UpdatePlayerHUD(playerid){    if (getbit(gShownHUD, playerid) && gPlayerHUD[playerid] != INVALID_TEXTDRAW_ID)    {	    new	        text[30];	    format(text, sizeof(text), "%.0f kmh", 200 * GetVehicleSpeed(GetPlayerVehicleID(playerid)));		TextDrawSetString(gPlayerHUD[playerid], text);		return 1;	}    return 0;}public LaunchTimers(){	static	    playerid;	SetTimerEx("UpdatePlayerHUD", HUD_UPDATE_INTERVAL, true, "i", playerid);	if (playerid < MAX_PLAYERS)	{	    SetTimer("LaunchTimers", HUD_UPDATE_INTERVAL / MAX_PLAYERS, false);	    playerid++;	}	else	{		playerid = 0;	}		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));	    }	}	LaunchTimers();	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;}