public Plugin:myinfo =
{
name = "Players count in hostname",
author = "D1maxa",
description = "Showing number of players and version in name of server",
version = "1.22",
url = "http://forums.alliedmods.net/showthread.php?t=126060"
};
new g_NumClients=0;
new Handle:hostname = INVALID_HANDLE;
new Handle:formatted_hostname = INVALID_HANDLE;
new String:version[16] = "";
public OnPluginStart()
{
hostname = FindConVar("hostname");
formatted_hostname=CreateConVar("sm_formatted_hostname", "My Server %d/%d (%s)", "Formatted string for dynamic hostname",FCVAR_PLUGIN);
GetVersion();
}
public OnMapStart()
{
g_NumClients=0;
}
public OnConfigsExecuted()
{
SetNumberOfPlayersInHostname();
}
public OnClientConnected(client)
{
if(!IsFakeClient(client))
{
g_NumClients++;
SetNumberOfPlayersInHostname();
}
}
public OnClientDisconnect(client)
{
if(!IsFakeClient(client))
{
g_NumClients--;
SetNumberOfPlayersInHostname();
}
}
SetNumberOfPlayersInHostname()
{
decl String:my_buf[64];
decl String:f_hostname[64];
GetConVarString(formatted_hostname,f_hostname,sizeof(f_hostname));
Format(my_buf,sizeof(my_buf),f_hostname,g_NumClients,MaxClients,version);
SetConVarString(hostname,my_buf);
ServerCommand("heartbeat");
}
GetVersion()
{
new Handle:steaminf = OpenFile("steam.inf","r");
if(steaminf == INVALID_HANDLE)
{
LogError("Cannot open steam.inf");
return;
}
new String:buffer[128];
while(ReadFileLine(steaminf, buffer, sizeof(buffer)) && (StrContains(buffer,"PatchVersion=",false) == -1))
{}
CloseHandle(steaminf);
if(StrContains(buffer,"PatchVersion=",false) != -1)
{
new i = FindCharInString(buffer,'=') + 1;
new j = 0;
do
{
version[j++] = buffer[i++];
}
while(buffer[i] != '\0' && j<sizeof(version));
version[7] = '\0';
}
}