Raised This Month: $51 Target: $400
 12% 

Change Timer method to 00:00:00


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
FrostSurf
Member
Join Date: Oct 2014
Old 09-11-2015 , 14:45   Change Timer method to 00:00:00
Reply With Quote #1

My timer hud uses 00:00.0, i was wanting it use 00:00:00 so its more accurate for when WRs are really close. Can this be done by just editing the hud .sp?

My timer is the top one and below is KSFs.

http://imgur.com/a/DM5Zc

Code:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>
#include <cstrike>
#include <clientprefs>
#include <smlib>
#include <timer>
#include <timer-logging>
#include <timer-stocks>
#include <timer-config_loader.sp>

#undef REQUIRE_PLUGIN
#include <timer-mapzones>
#include <timer-teams>
#include <timer-maptier>
#include <timer-rankings>
#include <timer-worldrecord>
#include <timer-physics>
#include <js_ljstats>

#define THINK_INTERVAL 			1.0

enum Hud
{
	Master,
	Main,
	Time,
	Jumps,
	Speed,
	SpeedMax,
	JumpAcc,
	Side,
	Map,
	Mode,
	WR,
	Rank,
	PB,
	TTWR,
	Keys,
	Spec,
	Steam,
	Level,
	Timeleft,
	Points
}

/**
 * Global Variables
 */
new String:g_currentMap[64];

new Handle:g_cvarTimeLimit	= INVALID_HANDLE;

//module check
new bool:g_timerPhysics = false;
new bool:g_timerMapzones = false;
new bool:g_timerLjStats = false;
new bool:g_timerRankings = false;
new bool:g_timerWorldRecord = false;

new bool:spec[MAXPLAYERS+1];
new bool:hidemyass[MAXPLAYERS+1];

new g_iButtonsPressed[MAXPLAYERS+1] = {0,...};
new g_iJumps[MAXPLAYERS+1] = {0,...};
new Handle:g_hDelayJump[MAXPLAYERS+1] = {INVALID_HANDLE,...};

new Handle:g_hThink_Map = INVALID_HANDLE;
new g_iMap_TimeLeft = 1200;

new Handle:cookieHudPref;
new Handle:cookieHudMainPref;
new Handle:cookieHudMainTimePref;
new Handle:cookieHudMainJumpsPref;
new Handle:cookieHudMainSpeedPref;
new Handle:cookieHudMainJumpsAccPref;
new Handle:cookieHudMainSpeedMaxPref;
new Handle:cookieHudSidePref;
new Handle:cookieHudSideMapPref;
new Handle:cookieHudSideModePref;
new Handle:cookieHudSideWRPref;
new Handle:cookieHudSideRankPref;
new Handle:cookieHudSidePBPref;
new Handle:cookieHudSideTTWRPref;
new Handle:cookieHudSideKeysPref;
new Handle:cookieHudSideSpecPref;
new Handle:cookieHudSideSteamPref;
new Handle:cookieHudSideLevelPref;
new Handle:cookieHudSideTimeleftPref;
new Handle:cookieHudSidePointsPref;

new hudSettings[Hud][MAXPLAYERS+1];

public Plugin:myinfo =
{
    name        = "[Timer] HUD",
    author      = "Zipcore, Alongub",
    description = "[Timer] Player HUD with optional details to show and cookie support",
    version     = PL_VERSION,
    url         = "forums.alliedmods.net/showthread.php?p=2074699"
};

public OnPluginStart()
{
	if(GetEngineVersion() != Engine_CSGO)
	{
		Timer_LogError("Don't use this plugin for other games than CS:GO.");
		SetFailState("Check timer error logs.");
		return;
	}

	g_timerPhysics = LibraryExists("timer-physics");
	g_timerMapzones = LibraryExists("timer-mapzones");
	g_timerLjStats = LibraryExists("timer-ljstats");
	g_timerRankings = LibraryExists("timer-rankings");
	g_timerWorldRecord = LibraryExists("timer-worldrecord");

	LoadPhysics();
	LoadTimerSettings();

	LoadTranslations("timer.phrases");

	if(g_Settings[HUDMasterEnable])
	{
		HookEvent("player_jump", Event_PlayerJump);

		HookEvent("player_death", Event_Reset);
		HookEvent("player_team", Event_Reset);
		HookEvent("player_spawn", Event_Reset);
		HookEvent("player_disconnect", Event_Reset);

		RegConsoleCmd("sm_hidemyass", Cmd_HideMyAss);
		RegConsoleCmd("sm_hud", MenuHud);
		RegConsoleCmd("sm_specinfo", Cmd_SpecInfo);

		g_cvarTimeLimit = FindConVar("mp_timelimit");

		AutoExecConfig(true, "timer/timer-hud");

		//cookies yummy :)
		cookieHudPref = RegClientCookie("timer_hud_master", "Turn on or off all hud components", CookieAccess_Private);
		cookieHudMainPref = RegClientCookie("timer_hud_main", "Turn on or off main hud components", CookieAccess_Private);
		cookieHudMainTimePref = RegClientCookie("timer_hud_main_time", "Turn on or off time component", CookieAccess_Private);
		cookieHudMainJumpsPref = RegClientCookie("timer_hud_jumps", "Turn on or off jumps component", CookieAccess_Private);
		cookieHudMainJumpsAccPref = RegClientCookie("timer_hud_jump_acc", "Turn on or off jumps accuracy component", CookieAccess_Private);
		cookieHudMainSpeedPref = RegClientCookie("timer_hud_speed", "Turn on or off speed component", CookieAccess_Private);
		cookieHudMainSpeedMaxPref = RegClientCookie("timer_hud_speed_max", "Turn on or off max speed component", CookieAccess_Private);
		cookieHudSidePref = RegClientCookie("timer_hud_side", "Turn on or off side hud component", CookieAccess_Private);
		cookieHudSideMapPref = RegClientCookie("timer_hud_side_map", "Turn on or off map component", CookieAccess_Private);
		cookieHudSideModePref = RegClientCookie("timer_hud_side_mode", "Turn on or off mode component", CookieAccess_Private);
		cookieHudSideWRPref = RegClientCookie("timer_hud_side_wr", "Turn on or off wr component", CookieAccess_Private);
		cookieHudSideRankPref = RegClientCookie("timer_hud_side_rank", "Turn on or off rank component", CookieAccess_Private);
		cookieHudSidePBPref = RegClientCookie("timer_hud_side_pb", "Turn on or off pb component", CookieAccess_Private);
		cookieHudSideTTWRPref = RegClientCookie("timer_hud_side_ttwr", "Turn on or off ttwr component", CookieAccess_Private);
		cookieHudSideKeysPref = RegClientCookie("timer_hud_side_keys", "Turn on or off keys component", CookieAccess_Private);
		cookieHudSideSpecPref = RegClientCookie("timer_hud_side_spec", "Turn on or off speclist component", CookieAccess_Private);
		cookieHudSideSteamPref = RegClientCookie("timer_hud_side_steam", "Turn on or off steam component", CookieAccess_Private);
		cookieHudSideLevelPref = RegClientCookie("timer_hud_side_level", "Turn on or off level component", CookieAccess_Private);
		cookieHudSideTimeleftPref = RegClientCookie("timer_hud_side_timeleft", "Turn on or off timeleft component", CookieAccess_Private);
		cookieHudSidePointsPref = RegClientCookie("timer_hud_side_points", "Turn on or off points component", CookieAccess_Private);
	}
}

public OnLibraryAdded(const String:name[])
{
	if (StrEqual(name, "timer-physics"))
	{
		g_timerPhysics = true;
	}
	else if (StrEqual(name, "timer-mapzones"))
	{
		g_timerMapzones = true;
	}
	else if (StrEqual(name, "timer-ljstats"))
	{
		g_timerLjStats = true;
	}
	else if (StrEqual(name, "timer-rankings"))
	{
		g_timerRankings = true;
	}
	else if (StrEqual(name, "timer-worldrecord"))
	{
		g_timerWorldRecord = true;
	}
}

public OnLibraryRemoved(const String:name[])
{
	if (StrEqual(name, "timer-physics"))
	{
		g_timerPhysics = false;
	}
	else if (StrEqual(name, "timer-mapzones"))
	{
		g_timerMapzones = false;
	}
	else if (StrEqual(name, "timer-ljstats"))
	{
		g_timerLjStats = false;
	}
	else if (StrEqual(name, "timer-rankings"))
	{
		g_timerRankings = false;
	}
	else if (StrEqual(name, "timer-worldrecord"))
	{
		g_timerWorldRecord = false;
	}
}

public OnMapStart()
{
	for (new client = 1; client <= MaxClients; client++)
	{
		g_hDelayJump[client] = INVALID_HANDLE;
	}

	GetCurrentMap(g_currentMap, sizeof(g_currentMap));

	if(GetEngineVersion() == Engine_CSGO)
	{
		CreateTimer(0.1, HUDTimer_CSGO, _, TIMER_FLAG_NO_MAPCHANGE|TIMER_REPEAT);
	}

	RestartMapTimer();

	LoadPhysics();
	LoadTimerSettings();
}

public OnMapEnd()
{
	if(g_hThink_Map != INVALID_HANDLE)
	{
		CloseHandle(g_hThink_Map);
		g_hThink_Map = INVALID_HANDLE;
	}
}

public OnClientDisconnect(client)
{
	g_iButtonsPressed[client] = 0;
	if (g_hDelayJump[client] != INVALID_HANDLE)
	{
		CloseHandle(g_hDelayJump[client]);
		g_hDelayJump[client] = INVALID_HANDLE;
	}
}

public OnClientCookiesCached(client)
{
	// Initializations and preferences loading
	if(IsClientInGame(client) && !IsFakeClient(client))
	{
		loadClientCookiesFor(client);
	}
}

loadClientCookiesFor(client)
{
	if(cookieHudPref == INVALID_HANDLE)
		return;

	decl String:buffer[5];

	//Master HUD
	GetClientCookie(client, cookieHudPref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[Master][client] = StringToInt(buffer);
	}

	//Main HUD
	GetClientCookie(client, cookieHudMainPref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[Main][client] = StringToInt(buffer);
	}

	//Show Time?
	GetClientCookie(client, cookieHudMainTimePref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[Time][client] = StringToInt(buffer);
	}

	//Show Jumps?
	GetClientCookie(client, cookieHudMainJumpsPref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[Jumps][client] = StringToInt(buffer);
	}

	//Show Speed?
	GetClientCookie(client, cookieHudMainSpeedPref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[Speed][client] = StringToInt(buffer);
	}

	//Show SpeedMax?
	GetClientCookie(client, cookieHudMainSpeedMaxPref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[SpeedMax][client] = StringToInt(buffer);
	}

	//Show JumpAcc?
	GetClientCookie(client, cookieHudMainJumpsAccPref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[JumpAcc][client] = StringToInt(buffer);
	}

	//Show SideHUD?
	GetClientCookie(client, cookieHudSidePref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[Side][client] = StringToInt(buffer);
	}

	//Show Side Map?
	GetClientCookie(client, cookieHudSideMapPref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[Map][client] = StringToInt(buffer);
	}

	//Show Side Mode?
	GetClientCookie(client, cookieHudSideModePref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[Mode][client] = StringToInt(buffer);
	}

	//Show Side WR?
	GetClientCookie(client, cookieHudSideWRPref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[WR][client] = StringToInt(buffer);
	}

	//Show Side Rank?
	GetClientCookie(client, cookieHudSideRankPref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[Rank][client] = StringToInt(buffer);
	}

	//Show Side PB?
	GetClientCookie(client, cookieHudSidePBPref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[PB][client] = StringToInt(buffer);
	}

	//Show Side TTWR?
	GetClientCookie(client, cookieHudSideTTWRPref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[TTWR][client] = StringToInt(buffer);
	}

	//Show Side Keys?
	GetClientCookie(client, cookieHudSideKeysPref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[Keys][client] = StringToInt(buffer);
	}

	//Show Side Spec?
	GetClientCookie(client, cookieHudSideSpecPref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[Spec][client] = StringToInt(buffer);
	}

	//Show Side Steam?
	GetClientCookie(client, cookieHudSideSteamPref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[Steam][client] = StringToInt(buffer);
	}

	//Show Side Level?
	GetClientCookie(client, cookieHudSideLevelPref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[Level][client] = StringToInt(buffer);
	}

	//Show Side Timeleft?
	GetClientCookie(client, cookieHudSideTimeleftPref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[Timeleft][client] = StringToInt(buffer);
	}
	//Show Points ?
	GetClientCookie(client, cookieHudSidePointsPref, buffer, 5);
	if(!StrEqual(buffer, ""))
	{
		hudSettings[Points][client] = StringToInt(buffer);
	}
}

//  This selects or disables the Hud
public MenuHandlerHud(Handle:menu, MenuAction:action, client, itemNum)
{
	if ( action == MenuAction_Select )
	{
		decl String:info[100], String:info2[100];
		new bool:found = GetMenuItem(menu, itemNum, info, sizeof(info), _, info2, sizeof(info2));
		if(found)
		{
			if(StrEqual(info, "master"))
			{
				if (hudSettings[Master][client] == 0)
				{
					hudSettings[Master][client] = 1;
				}
				else if (hudSettings[Master][client] == 1)
				{
					hudSettings[Master][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[Master][client], buffer, 5);
				SetClientCookie(client, cookieHudPref, buffer);
			}

			if(StrEqual(info, "main"))
			{
				if (hudSettings[Main][client] == 0)
				{
					hudSettings[Main][client] = 1;
				}
				else if (hudSettings[Main][client] == 1)
				{
					hudSettings[Main][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[Main][client], buffer, 5);
				SetClientCookie(client, cookieHudMainPref, buffer);
			}

			if(StrEqual(info, "time"))
			{
				if (hudSettings[Time][client] == 0)
				{
					hudSettings[Time][client] = 1;
				}
				else if (hudSettings[Time][client] == 1)
				{
					hudSettings[Time][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[Time][client], buffer, 5);
				SetClientCookie(client, cookieHudMainTimePref, buffer);
			}

			if(StrEqual(info, "jumps"))
			{
				if (hudSettings[Jumps][client] == 0)
				{
					hudSettings[Jumps][client] = 1;
				}
				else if (hudSettings[Jumps][client] == 1)
				{
					hudSettings[Jumps][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[Jumps][client], buffer, 5);
				SetClientCookie(client, cookieHudMainJumpsPref, buffer);
			}

			if(StrEqual(info, "speed"))
			{
				if (hudSettings[Speed][client] == 0)
				{
					hudSettings[Speed][client] = 1;
				}
				else if (hudSettings[Speed][client] == 1)
				{
					hudSettings[Speed][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[Speed][client], buffer, 5);
				SetClientCookie(client, cookieHudMainSpeedPref, buffer);
			}

			if(StrEqual(info, "speedmax"))
			{
				if (hudSettings[SpeedMax][client] == 0)
				{
					hudSettings[SpeedMax][client] = 1;
				}
				else if (hudSettings[SpeedMax][client] == 1)
				{
					hudSettings[SpeedMax][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[SpeedMax][client], buffer, 5);
				SetClientCookie(client, cookieHudMainSpeedMaxPref, buffer);
			}

			if(StrEqual(info, "jumpacc"))
			{
				if (hudSettings[JumpAcc][client] == 0)
				{
					hudSettings[JumpAcc][client] = 1;
				}
				else if (hudSettings[JumpAcc][client] == 1)
				{
					hudSettings[JumpAcc][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[JumpAcc][client], buffer, 5);
				SetClientCookie(client, cookieHudMainJumpsAccPref, buffer);
			}

			if(StrEqual(info, "side"))
			{
				if (hudSettings[Side][client] == 0)
				{
					hudSettings[Side][client] = 1;
				}
				else if (hudSettings[Side][client] == 1)
				{
					hudSettings[Side][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[Side][client], buffer, 5);
				SetClientCookie(client, cookieHudSidePref, buffer);
			}

			if(StrEqual(info, "map"))
			{
				if (hudSettings[Map][client] == 0)
				{
					hudSettings[Map][client] = 1;
				}
				else if (hudSettings[Map][client] == 1)
				{
					hudSettings[Map][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[Map][client], buffer, 5);
				SetClientCookie(client, cookieHudSideMapPref, buffer);
			}

			if(StrEqual(info, "mode"))
			{
				if (hudSettings[Mode][client] == 0)
				{
					hudSettings[Mode][client] = 1;
				}
				else if (hudSettings[Mode][client] == 1)
				{
					hudSettings[Mode][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[Mode][client], buffer, 5);
				SetClientCookie(client, cookieHudSideModePref, buffer);
			}

			if(StrEqual(info, "wr"))
			{
				if (hudSettings[WR][client] == 0)
				{
					hudSettings[WR][client] = 1;
				}
				else if (hudSettings[WR][client] == 1)
				{
					hudSettings[WR][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[WR][client], buffer, 5);
				SetClientCookie(client, cookieHudSideWRPref, buffer);
			}

			if(StrEqual(info, "level"))
			{
				if (hudSettings[Level][client] == 0)
				{
					hudSettings[Level][client] = 1;
				}
				else if (hudSettings[Level][client] == 1)
				{
					hudSettings[Level][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[Level][client], buffer, 5);
				SetClientCookie(client, cookieHudSideLevelPref, buffer);
			}

			if(StrEqual(info, "timeleft"))
			{
				if (hudSettings[Timeleft][client] == 0)
				{
					hudSettings[Timeleft][client] = 1;
				}
				else if (hudSettings[Timeleft][client] == 1)
				{
					hudSettings[Timeleft][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[Timeleft][client], buffer, 5);
				SetClientCookie(client, cookieHudSideTimeleftPref, buffer);
			}

			if(StrEqual(info, "rank"))
			{
				if (hudSettings[Rank][client] == 0)
				{
					hudSettings[Rank][client] = 1;
				}
				else if (hudSettings[Rank][client] == 1)
				{
					hudSettings[Rank][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[Rank][client], buffer, 5);
				SetClientCookie(client, cookieHudSideRankPref, buffer);
			}

			if(StrEqual(info, "pb"))
			{
				if (hudSettings[PB][client] == 0)
				{
					hudSettings[PB][client] = 1;
				}
				else if (hudSettings[PB][client] == 1)
				{
					hudSettings[PB][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[PB][client], buffer, 5);
				SetClientCookie(client, cookieHudSidePBPref, buffer);
			}

			if(StrEqual(info, "ttwr"))
			{
				if (hudSettings[TTWR][client] == 0)
				{
					hudSettings[TTWR][client] = 1;
				}
				else if (hudSettings[TTWR][client] == 1)
				{
					hudSettings[TTWR][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[TTWR][client], buffer, 5);
				SetClientCookie(client, cookieHudSideTTWRPref, buffer);
			}

			if(StrEqual(info, "keys"))
			{
				if (hudSettings[Keys][client] == 0)
				{
					hudSettings[Keys][client] = 1;
				}
				else if (hudSettings[Keys][client] == 1)
				{
					hudSettings[Keys][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[Keys][client], buffer, 5);
				SetClientCookie(client, cookieHudSideKeysPref, buffer);
			}

			if(StrEqual(info, "spec"))
			{
				if (hudSettings[Spec][client] == 0)
				{
					hudSettings[Spec][client] = 1;
				}
				else if (hudSettings[Spec][client] == 1)
				{
					hudSettings[Spec][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[Spec][client], buffer, 5);
				SetClientCookie(client, cookieHudSideSpecPref, buffer);
			}

			if(StrEqual(info, "steam"))
			{
				if (hudSettings[Steam][client] == 0)
				{
					hudSettings[Steam][client] = 1;
				}
				else if (hudSettings[Steam][client] == 1)
				{
					hudSettings[Steam][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[Steam][client], buffer, 5);
				SetClientCookie(client, cookieHudSideSteamPref, buffer);
			}

			if(StrEqual(info, "points"))
			{
				if (hudSettings[Points][client] == 0)
				{
					hudSettings[Points][client] = 1;
				}
				else if (hudSettings[Points][client] == 1)
				{
					hudSettings[Points][client] = 0;
				}

				decl String:buffer[5];
				IntToString(hudSettings[Points][client], buffer, 5);
				SetClientCookie(client, cookieHudSidePointsPref, buffer);
			}
		}
		if(IsClientInGame(client)) ShowHudMenu(client, GetMenuSelectionPosition());
	}
	else if(action == MenuAction_End)
	{
		CloseHandle(menu);
	}

}

//  This creates the Hud Menu
public Action:MenuHud(client, args)
{
	ShowHudMenu(client, 1);
	return Plugin_Handled;
}

ShowHudMenu(client, start_item)
{
	if(g_Settings[HUDMasterOnlyEnable] && g_Settings[HUDMasterEnable])
	{
		if(hudSettings[Master][client] == 1)
		{
			hudSettings[Master][client] = 0;
			CPrintToChat(client, "%s HUD disabled.", PLUGIN_PREFIX2);
		}
		else
		{
			hudSettings[Master][client] = 1;
			CPrintToChat(client, "%s HUD enabled.", PLUGIN_PREFIX2);
		}
	}
	else if(g_Settings[HUDMasterEnable])
	{
		new Handle:menu = CreateMenu(MenuHandlerHud);
		decl String:buffer[100];

		FormatEx(buffer, sizeof(buffer), "Custom Hud Menu");
		SetMenuTitle(menu, buffer);

		if(hudSettings[Master][client] == 0)
		{
			AddMenuItem(menu, "master", "Enable HUD Master Switch");
		}
		else
		{
			AddMenuItem(menu, "master", "Disable HUD Master Switch");
		}

		if(g_Settings[HUDCenterEnable])
		{
			if(hudSettings[Main][client] == 0)
			{
				AddMenuItem(menu, "main", "Enable Center HUD");
			}
			else
			{
				AddMenuItem(menu, "main", "Disable Center HUD");
			}
		}

		if(g_Settings[HUDSideEnable])
		{
			if(hudSettings[Side][client] == 0)
			{
				AddMenuItem(menu, "side", "Enable Side HUD");
			}
			else
			{
				AddMenuItem(menu, "side", "Disable Side HUD");
			}
		}

		if(hudSettings[Time][client] == 0)
		{
			AddMenuItem(menu, "time", "Enable Time");
		}
		else
		{
			AddMenuItem(menu, "time", "Disable Time");
		}

		if(g_Settings[HUDJumpsEnable])
		{
			if(hudSettings[Jumps][client] == 0)
			{
				AddMenuItem(menu, "jumps", "Enable Jumps");
			}
			else
			{
				AddMenuItem(menu, "jumps", "Disable Jumps");
			}
		}

		if(g_Settings[HUDSpeedEnable])
		{
			if(hudSettings[Speed][client] == 0)
			{
				AddMenuItem(menu, "speed", "Enable Speed");
			}
			else
			{
				AddMenuItem(menu, "speed", "Disable Speed");
			}
		}

		if(g_Settings[HUDSpeedMaxEnable])
		{
			if(hudSettings[SpeedMax][client] == 0)
			{
				AddMenuItem(menu, "speedmax", "Enable Max Speed");
			}
			else
			{
				AddMenuItem(menu, "speedmax", "Disable Max Speed");
			}
		}

		if(g_Settings[HUDJumpAccEnable])
		{
			if(hudSettings[JumpAcc][client] == 0)
			{
				AddMenuItem(menu, "jumpacc", "Enable Jump Accuracy");
			}
			else
			{
				AddMenuItem(menu, "jumpacc", "Disable Jump Accuracy");
			}
		}

		if(g_Settings[HUDSpeclistEnable])
			{
			if(hudSettings[Spec][client] == 0)
			{
				AddMenuItem(menu, "spec", "Enable Spec List[SideHUD]");
			}
			else
			{
				AddMenuItem(menu, "spec", "Disable Spec List[SideHUD]");
			}
		}

		if(g_Settings[HUDPointsEnable])
			{
			if(hudSettings[Points][client] == 0)
			{
				AddMenuItem(menu, "points", "Enable Points[SideHUD]");
			}
			else
			{
				AddMenuItem(menu, "points", "Disable Points[SideHUD]");
			}
		}

		if(g_Settings[HUDMapEnable])
		{
			if(hudSettings[Map][client] == 0)
			{
				AddMenuItem(menu, "map", "Enable Map Display [SideHUD]");
			}
			else
			{
				AddMenuItem(menu, "map", "Disable Map Display [SideHUD]");
			}
		}

		if(g_Settings[HUDStyleEnable])
		{
			if(hudSettings[Mode][client] == 0)
			{
				AddMenuItem(menu, "mode", "Enable Style Display [SideHUD]");
			}
			else
			{
				AddMenuItem(menu, "mode", "Disable Style Display [SideHUD]");
			}
		}

		if(g_Settings[HUDWREnable])
		{
			if(hudSettings[WR][client] == 0)
			{
				AddMenuItem(menu, "wr", "Enable WR Display [SideHUD]");
			}
			else
			{
				AddMenuItem(menu, "wr", "Disable WR Display [SideHUD]");
			}
		}

		if(g_Settings[HUDRankEnable])
		{
			if(hudSettings[Rank][client] == 0)
			{
				AddMenuItem(menu, "rank", "Enable Rank Display [SideHUD]");
			}
			else
			{
				AddMenuItem(menu, "rank", "Disable Rank Display [SideHUD]");
			}
		}

		if(g_Settings[HUDLevelEnable])
		{
			if(hudSettings[Level][client] == 0)
			{
				AddMenuItem(menu, "level", "Enable Level Display [SideHUD]");
			}
			else
			{
				AddMenuItem(menu, "level", "Disable Level Display [SideHUD]");
			}
		}

		if(g_Settings[HUDPBEnable])
		{
			if(hudSettings[PB][client] == 0)
			{
				AddMenuItem(menu, "pb", "Enable Personal Best [SideHUD]");
			}
			else
			{
				AddMenuItem(menu, "pb", "Disable Personal Best [SideHUD]");
			}
		}

		if(g_Settings[HUDTTWREnable])
		{
			if(hudSettings[TTWR][client] == 0)
			{
				AddMenuItem(menu, "ttwr", "Enable TTWR Display [SideHUD]");
			}
			else
			{
				AddMenuItem(menu, "ttwr", "Disable TTWR Display [SideHUD]");
			}
		}

		if(g_Settings[HUDTimeleftEnable])
		{
			if(hudSettings[Timeleft][client] == 0)
			{
				AddMenuItem(menu, "timeleft", "Enable Timeleft Display [SideHUD]");
			}
			else
			{
				AddMenuItem(menu, "timeleft", "Disable Timeleft Display [SideHUD]");
			}
		}

		if(g_Settings[HUDKeysEnable])
		{
			if(hudSettings[Keys][client] == 0)
			{
				AddMenuItem(menu, "keys", "Enable Keys Display [SideHUD/Spec only]");
			}
			else
			{
				AddMenuItem(menu, "keys", "Disable Keys Display [SideHUD/Spec only]");
			}
		}

		if(g_Settings[HUDSteamIDEnable])
		{
			if(hudSettings[Steam][client] == 0)
			{
				AddMenuItem(menu, "steam", "Enable Steam [SideHUD/Spec only]");
			}
			else
			{
				AddMenuItem(menu, "steam", "Disable Steam [SideHUD/Spec only]");
			}
		}

		SetMenuExitButton(menu, true);

		DisplayMenuAtItem(menu, client, start_item, MENU_TIME_FOREVER );
	}
}

//End Custom Cookie and Menu Stuff

public Action:Cmd_HideMyAss(client, args)
{
	if(IsClientConnected(client) && IsClientInGame(client) && Client_IsAdmin(client))
	{
		if(hidemyass[client])
		{
			hidemyass[client] = false;
			PrintToChat(client, "Hide My Ass: Disabled.");
		}
		else
		{
			hidemyass[client] = true;
			PrintToChat(client, "Hide My Ass: Enabled.");
		}
	}
	return Plugin_Handled;
}

public OnConfigsExecuted()
{
	if(g_cvarTimeLimit != INVALID_HANDLE) HookConVarChange(g_cvarTimeLimit, ConVarChange_TimeLimit);
}

public ConVarChange_TimeLimit(Handle:cvar, const String:oldVal[], const String:newVal[])
{
	RestartMapTimer();
}

stock RestartMapTimer()
{
	//Map Timer
	if(g_hThink_Map != INVALID_HANDLE)
	{
		CloseHandle(g_hThink_Map);
		g_hThink_Map = INVALID_HANDLE;
	}

	new bool:gotTimeLeft = GetMapTimeLeft(g_iMap_TimeLeft);

	if(gotTimeLeft && g_iMap_TimeLeft > 0)
	{
		g_hThink_Map = CreateTimer(THINK_INTERVAL, Timer_Think_Map, INVALID_HANDLE, TIMER_REPEAT);
	}
}

public Action:Timer_Think_Map(Handle:timer)
{
	g_iMap_TimeLeft--;
	return Plugin_Continue;
}

public OnClientPutInServer(client)
{
	// Initializations and preferences loading
	if(!IsFakeClient(client))
	{
		hudSettings[Master][client] = 1;
		hudSettings[Main][client] = 1;
		hudSettings[Time][client] = 1;
		hudSettings[Jumps][client] = 1;
		hudSettings[Speed][client] = 1;
		hudSettings[SpeedMax][client] = 1;
		hudSettings[JumpAcc][client] = 1;
		hudSettings[Side][client] = 1;
		hudSettings[Map][client] = 1;
		hudSettings[Mode][client] = 1;
		hudSettings[WR][client] = 1;
		hudSettings[Level][client] = 1;
		hudSettings[Rank][client] = 1;
		hudSettings[PB][client] = 1;
		hudSettings[TTWR][client] = 1;
		hudSettings[Keys][client] = 1;
		hudSettings[Spec][client] = 1;
		hudSettings[Steam][client] = 1;
		hudSettings[Points][client] = 1;
		hudSettings[Timeleft][client] = 1;

		if (AreClientCookiesCached(client))
		{
			loadClientCookiesFor(client);
		}
	}

	if(g_hThink_Map == INVALID_HANDLE && IsServerProcessing())
	{
		RestartMapTimer();
	}
}

public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
	g_iButtonsPressed[client] = buttons;
}

public Action:Event_PlayerJump(Handle:event, const String:name[], bool:dontBroadcast)
{
	new client = GetClientOfUserId(GetEventInt(event, "userid"));

	g_iJumps[client]++;
	g_hDelayJump[client] = CreateTimer(0.3, Timer_DelayJumpHud, client, TIMER_FLAG_NO_MAPCHANGE);

	return Plugin_Continue;
}

//extends display time of jump keys
public Action:Timer_DelayJumpHud(Handle:timer, any:client)
{
	g_hDelayJump[client] = INVALID_HANDLE;
	return Plugin_Stop;
}

public Action:Event_Reset(Handle:event, const String:name[], bool:dontBroadcast)
{
	new client = GetClientOfUserId(GetEventInt(event, "userid"));

	g_iJumps[client] = 0;

	if (g_hDelayJump[client] != INVALID_HANDLE)
	{
		CloseHandle(g_hDelayJump[client]);
		g_hDelayJump[client] = INVALID_HANDLE;
	}
	return Plugin_Continue;
}

public Action:HUDTimer_CSGO(Handle:timer)
{
	for (new client = 1; client <= MaxClients; client++)
	{
		spec[client] = false;
	}

	for (new client = 1; client <= MaxClients; client++)
	{
		if (!IsClientInGame(client))
			continue;

		if(hidemyass[client])
			continue;

		// Get target he's spectating
		if(!IsPlayerAlive(client) || IsClientObserver(client))
		{
			new iObserverMode = GetEntProp(client, Prop_Send, "m_iObserverMode");
			if(iObserverMode == SPECMODE_FIRSTPERSON || iObserverMode == SPECMODE_3RDPERSON)
			{
				new clienttoshow = GetEntPropEnt(client, Prop_Send, "m_hObserverTarget");
				if(clienttoshow > 0)
				{
					spec[clienttoshow] = true;
				}
			}
		}
	}

	for (new client = 1; client <= MaxClients; client++)
	{
		if (IsClientInGame(client))
			UpdateHUD_CSGO(client);
	}

	return Plugin_Continue;
}

UpdateHUD_CSGO(client)
{
	if(!IsClientInGame(client))
	{
		return;
	}

	if(!hudSettings[Master][client])
	{
		return;
	}

	if(!g_Settings[HUDMasterEnable])
	{
		return;
	}

	new iClientToShow, iObserverMode;
	//new iButtons;

	// Show own buttons by default
	iClientToShow = client;

	// Get target he's spectating
	if(!IsPlayerAlive(client) || IsClientObserver(client))
	{
		iObserverMode = GetEntProp(client, Prop_Send, "m_iObserverMode");
		if(iObserverMode == SPECMODE_FIRSTPERSON || iObserverMode == SPECMODE_3RDPERSON)
		{
			iClientToShow = GetEntPropEnt(client, Prop_Send, "m_hObserverTarget");

			// Check client index
			if(iClientToShow <= 0 || iClientToShow > MaxClients)
				return;
		}
		else
		{
			return; // don't proceed, if in freelook..
		}
	}

	if(g_timerLjStats && IsClientInLJMode(iClientToShow))
	{
		return;
	}

	//start building HUD
	new String:centerText[512]; //HUD buffer

	//collect player info
	decl String:auth[32]; //steam ID
	if(!IsFakeClient(iClientToShow))
	{
		#if SOURCEMOD_V_MAJOR >= 1 && SOURCEMOD_V_MINOR >= 7
			GetClientAuthId(iClientToShow, AuthId_Steam2, auth, sizeof(auth));
		#else
			GetClientAuthString(iClientToShow, auth, sizeof(auth));
		#endif
	}
	else FormatEx(auth, sizeof(auth), "Replay-Bot");

	//collect player stats
	decl String:buffer[32]; //time format buffer
	decl String:bestbuffer[32]; //time format buffer
	new bool:enabled; //tier running
	new Float:bestTime; //best round time
	new bestJumps; //best round jumps
	new jumps; //current jump count
	new fpsmax; //fps settings
	new track; //track timer running
	new Float:time; //current time
	new RecordId;
	new Float:RecordTime;
	new RankTotal;

	if(g_timerWorldRecord) Timer_GetClientTimer(iClientToShow, enabled, time, jumps, fpsmax);

	new style;
	if(g_timerPhysics) style = Timer_GetStyle(iClientToShow);
	new ranked;
	if(g_timerPhysics) ranked = Timer_IsStyleRanked(style);

	//get current player level
	new currentLevel = 0;
	if(g_timerMapzones) currentLevel = Timer_GetClientLevelID(iClientToShow);
	if(currentLevel < 1) currentLevel = 1;

	track = Timer_GetTrack(iClientToShow);

	//get bhop mode
	if (g_timerPhysics)
	{
		Timer_GetStyleRecordWRStats(style, track, RecordId, RecordTime, RankTotal);
		//correct fail format
		Timer_SecondsToTime(time, buffer, sizeof(buffer), 0);
	}

	//get speed
	new Float:maxspeed, Float:currentspeed, Float:avgspeed;
	if(g_timerPhysics)
	{
		Timer_GetMaxSpeed(iClientToShow, maxspeed);
		Timer_GetCurrentSpeed(iClientToShow, currentspeed);
		Timer_GetAvgSpeed(iClientToShow, avgspeed);
	}

	//get jump accuracy
	new Float:accuracy = 0.0;
	if(g_timerPhysics) Timer_GetJumpAccuracy(iClientToShow, accuracy);

	if(accuracy > 100.0) accuracy = 100.0;
	else if(accuracy < 0.0) accuracy = 0.0;

	if(ranked)
	{
		if(g_timerWorldRecord) Timer_GetBestRound(iClientToShow, style, track, bestTime, bestJumps);
		Timer_SecondsToTime(bestTime, bestbuffer, sizeof(bestbuffer), 2);
	}

	//has client a mate?
	//new mate = 0; //challenge mode
	//if (g_timerMapzones) mate = Timer_GetClientTeammate(iClientToShow);

	new points;
	if(g_timerRankings) points = Timer_GetPoints(iClientToShow);
	new points100 = points;
	if(g_Settings[HUDUseMVPStars] > 0) points100 = RoundToFloor((points*1.0)/g_Settings[HUDUseMVPStars]);

	//Update Stats
	if(client == iClientToShow)
	{
		if(points > 0 && g_Settings[HUDUseMVPStars] > 0) CS_SetMVPCount(client, points100);
		//SetEntProp(client, Prop_Data, "m_iDeaths", jumps);
		//SetEntProp(client, Prop_Data, "m_iFrags", currentLevel);
		//SetEntProp(client, Prop_Data, "m_iFrags", Timer_GetPoints(client));
	}

	new rank;

	if(ranked && g_timerWorldRecord)
	{
		//get rank
		rank = Timer_GetStyleRank(iClientToShow, track, style);
	}

	new prank;
	if(g_timerRankings)  prank = Timer_GetPointRank(iClientToShow);

	if(prank > 2000 || prank < 1) prank = 2000;

	new nprank = (prank * -1);

	new String:sRankTotal[32];
	Format(sRankTotal, sizeof(sRankTotal), "%d", RankTotal);

	if(client == iClientToShow)
	{
		if(g_Settings[HUDUseMVPStars] > 0 && points100 > 0)
		{
			CS_SetMVPCount(iClientToShow, points100);
		}
		if(g_Settings[HUDUseFragPointsRank])
		{
			SetEntProp(client, Prop_Data, "m_iFrags", nprank);
		}
		if(g_Settings[HUDUseDeathRank])
		{
			Client_SetDeaths(client, rank);
		}

		if(g_Settings[HUDUseClanTag] && !IsFakeClient(client))
		{
			decl String:tagbuffer[32];
			if(g_Settings[HUDUseClanTagTime])
			{
				if(enabled) FormatEx(tagbuffer, sizeof(tagbuffer), "%s", buffer);
				else if (ranked) FormatEx(tagbuffer, sizeof(tagbuffer), "%s", bestbuffer);
			}

			if(g_Settings[HUDUseClanTagTime] && g_Settings[MultimodeEnable] && g_Settings[HUDUseClanTagStyle])
				Format(tagbuffer, sizeof(tagbuffer), " %s", tagbuffer);

			if(g_Settings[MultimodeEnable] && g_Settings[HUDUseClanTagStyle])
			{
				if(!enabled && !ranked)
				{
					Format(tagbuffer, sizeof(tagbuffer), "%s%s", g_Physics[style][StyleTagName], tagbuffer);
				}
				else
				{
					Format(tagbuffer, sizeof(tagbuffer), "%s%s", g_Physics[style][StyleTagShortName], tagbuffer);
				}
			}

			CS_SetClientClanTag(client, tagbuffer);
		}
	}

	//start format center HUD

	new stagecount;

	if(g_timerMapzones)
	{
		if(track == TRACK_BONUS)
		{
			stagecount = Timer_GetMapzoneCount(ZtBonusLevel)+Timer_GetMapzoneCount(ZtBonusCheckpoint)+1;
		}
		else if(track == TRACK_BONUS2)
		{
			stagecount = Timer_GetMapzoneCount(ZtBonus2Level)+Timer_GetMapzoneCount(ZtBonus2Checkpoint)+1;
		}
		else if(track == TRACK_BONUS3)
		{
			stagecount = Timer_GetMapzoneCount(ZtBonus3Level)+Timer_GetMapzoneCount(ZtBonus3Checkpoint)+1;
		}
		else if(track == TRACK_BONUS4)
		{
			stagecount = Timer_GetMapzoneCount(ZtBonus4Level)+Timer_GetMapzoneCount(ZtBonus4Checkpoint)+1;
		}
		else if(track == TRACK_BONUS5)
		{
			stagecount = Timer_GetMapzoneCount(ZtBonus5Level)+Timer_GetMapzoneCount(ZtBonus5Checkpoint)+1;
		}
		else
		{
			stagecount = Timer_GetMapzoneCount(ZtLevel)+Timer_GetMapzoneCount(ZtCheckpoint)+1;
		}
	}

	if(currentLevel > 1000) currentLevel -= 1000;
	if(currentLevel == 999) currentLevel = stagecount;

	/*
	Time: 00:01 [Stage 3/4]
	Record: 01:55:41 [Rank: 3/4]
	Speed: 455.23 [Style: Auto]
	*/

	decl String:timeString[64];
	Timer_SecondsToTime(time, timeString, sizeof(timeString), 1);

	if(StrEqual(timeString, "00:-0.0")) Format(timeString, sizeof(timeString), "00:00.0");

	//First Line
	if (hudSettings[Level][client] && g_Settings[MultimodeEnable])
	{
		if(stagecount <= 1)
		{
			Format(centerText, sizeof(centerText), "%sStage: Linear", centerText, currentLevel, stagecount);
		}
		else
		{
			Format(centerText, sizeof(centerText), "%sStage: %d/%d", centerText, currentLevel, stagecount);
		}

		if(hudSettings[Time][client]) Format(centerText, sizeof(centerText), "%s | ", centerText);
	}

	if(hudSettings[Time][client])
	{
		if(Timer_GetPauseStatus(iClientToShow))
		{
			Format(centerText, sizeof(centerText), "%sTime: <font color='FF8A00'>Paused</font>", centerText, timeString);
		}
		else if (enabled)
		{
			if(RecordTime == 0.0 || RecordTime > time)
			{
				Format(centerText, sizeof(centerText), "%sTime: <font color='#00ff00'>%s</font>", centerText, timeString);
			}
			else
			{
				Format(centerText, sizeof(centerText), "%sTime: <font color='#ff0000'>%s</font>", centerText, timeString);
			}
		}
		else Format(centerText, sizeof(centerText), "%sTime: <font color='#ff0000'>Stopped</font>", centerText);

		if(hudSettings[Jumps][client] && g_Settings[HUDJumpsEnable]) Format(centerText, sizeof(centerText), "%s | ", centerText);
	}

	if ((hudSettings[Jumps][client] && g_Settings[HUDJumpsEnable]) && (hudSettings[JumpAcc][client] && g_Settings[HUDJumpAccEnable]))
	{
		Format(centerText, sizeof(centerText), "%s%t: %d [%.2f %%]", centerText, "Jumps", jumps, accuracy);
	}
	else if (hudSettings[Jumps][client] && g_Settings[HUDJumpsEnable])
	{
		Format(centerText, sizeof(centerText), "%s%t: %d", centerText, "Jumps", jumps);
	}

	if(hudSettings[Time][client] || hudSettings[Level][client] || hudSettings[Jumps][client])
		Format(centerText, sizeof(centerText), "%s\n", centerText);

	if(ranked && g_timerWorldRecord)
	{
		//Secound Line
		if (hudSettings[Rank][client])
		{
			if(rank < 1)
				Format(centerText, sizeof(centerText), "%sRank: -/%s", centerText, sRankTotal);
			else
				Format(centerText, sizeof(centerText), "%sRank: %d/%s", centerText, rank, sRankTotal);

			if(hudSettings[PB][client]) Format(centerText, sizeof(centerText), "%s | ", centerText);
		}

		if(hudSettings[PB][client])
		{
			Timer_GetBestRound(iClientToShow, style, track, bestTime, bestJumps);
			Timer_SecondsToTime(bestTime, bestbuffer, sizeof(bestbuffer), 2);

			Format(centerText, sizeof(centerText), "%sRecord: %s", centerText, bestbuffer);
		}

		if(hudSettings[PB][client] || hudSettings[Rank][client])
			Format(centerText, sizeof(centerText), "%s\n", centerText);
	}
	else Format(centerText, sizeof(centerText), "%sUnranked (Fun Style)\n", centerText);

	//Third Line
	if (hudSettings[Mode][client] && g_Settings[MultimodeEnable])
	{
		Format(centerText, sizeof(centerText), "%sStyle: %s", centerText, g_Physics[style][StyleName]);
		if(hudSettings[Speed][client]) Format(centerText, sizeof(centerText), "%s | ", centerText);
	}
	else if (hudSettings[Level][client] && !g_Settings[MultimodeEnable])
	{
		if(stagecount <= 1)
		{
			Format(centerText, sizeof(centerText), "%sStage: Linear", centerText, currentLevel, stagecount);
		}
		else
		{
			Format(centerText, sizeof(centerText), "%sStage: %d/%d", centerText, currentLevel, stagecount);
		}

		if(hudSettings[Speed][client]) Format(centerText, sizeof(centerText), "%s | ", centerText);
	}

	if(hudSettings[Speed][client])
		Format(centerText, sizeof(centerText), "%sSpeed: %5.2f", centerText, currentspeed);

	//if(hudSettings[Speed][client] || hudSettings[Mode][client])
		//Format(centerText, sizeof(centerText), "%s\n", centerText);

	if (g_Settings[HUDCenterEnable] && hudSettings[Main][client])
	{
		if(!IsVoteInProgress())
		{
			PrintHintText(client, centerText);
		}
	}
}

public Action:Cmd_SpecInfo(client, args)
{
	new owner = client;
	if(!IsPlayerAlive(client) || IsClientObserver(client))
	{
		new iObserverMode = GetEntProp(client, Prop_Send, "m_iObserverMode");
		if(iObserverMode == SPECMODE_FIRSTPERSON || iObserverMode == SPECMODE_3RDPERSON)
		{
			new iTarget = GetEntPropEnt(client, Prop_Send, "m_hObserverTarget");
			if(iTarget > 0)
			{
				Print_Specinfo(iTarget, owner);
			}
		}
	}
	else
	{
		Print_Specinfo(client, owner);
	}

	return Plugin_Handled;
}

Print_Specinfo(client, owner)
{
	new String:buffer[1024];

	new spec_count = GetSpecCount(client);
	new count = 0;

	for(new j = 1; j <= MaxClients; j++)
	{
		if (!IsClientInGame(j) || !IsClientObserver(j))
			continue;

		if (IsClientSourceTV(j))
			continue;

		new iSpecMode = GetEntProp(j, Prop_Send, "m_iObserverMode");

		// The client isn't spectating any one person, so ignore them.
		if (iSpecMode != SPECMODE_FIRSTPERSON && iSpecMode != SPECMODE_3RDPERSON)
			continue;

		// Find out who the client is spectating.
		new iTarget = GetEntPropEnt(j, Prop_Send, "m_hObserverTarget");

		// Are they spectating the same player as User?
		if (iTarget == client && j != client && !hidemyass[j])
		{
			count++;
			if(spec_count == count)
			{
				Format(buffer, sizeof(buffer), "%s %N", buffer, j);
			}
			else
			{
				Format(buffer, sizeof(buffer), "%s %N,", buffer, j);
			}
		}
	}

	CPrintToChat(owner, "%s {red}%N {olive}has {red}%d {olive}spectators:{red}%s.", PLUGIN_PREFIX2, client, count, buffer);
}

stock GetSpecCount(client)
{
	new count = 0;

	for(new j = 1; j <= MaxClients; j++)
	{
		if (!IsClientInGame(j) || !IsClientObserver(j))
			continue;

		if (IsClientSourceTV(j))
			continue;

		new iSpecMode = GetEntProp(j, Prop_Send, "m_iObserverMode");

		// The client isn't spectating any one person, so ignore them.
		if (iSpecMode != SPECMODE_FIRSTPERSON && iSpecMode != SPECMODE_3RDPERSON)
			continue;

		// Find out who the client is spectating.
		new iTarget = GetEntPropEnt(j, Prop_Send, "m_hObserverTarget");

		// Are they spectating the same player as User?
		if (iTarget == client && j != client && !hidemyass[j])
		{
			count++;
		}
	}

	return count;
}

Last edited by FrostSurf; 09-11-2015 at 14:46.
FrostSurf is offline
Miu
Veteran Member
Join Date: Nov 2013
Old 09-11-2015 , 17:36   Re: Change Timer method to 00:00:00
Reply With Quote #2

I don't think this level of precision is really going to help anyone
Miu is offline
zipcore
Veteran Member
Join Date: Mar 2010
Location: m_flZipcore
Old 09-13-2015 , 20:41   Re: Change Timer method to 00:00:00
Reply With Quote #3

I told him the same. Anyway I helped him...
__________________
zipcore is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 17:52.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode