new String:g_sMsg[PLATFORM_MAX_PATH], String:g_sHostname[150], String:g_sMap[32];
public Plugin:myinfo =
{
name = "Auto demo",
author = "Grey™ edit AlmazON",
description = "Auto demo client",
version = "1.2",
url = "HLmod.ru"
};
public OnPluginStart()
{
decl Handle:hCvar;
GetConVarString(hCvar = CreateConVar("sm_auto_demo_url", "", ""), g_sMsg, PLATFORM_MAX_PATH);
HookConVarChange(hCvar, AutoDemoUrlChange);
HookConVarChange(hCvar = FindConVar("hostname"), HostName);
GetConVarString(hCvar, g_sHostname, 150);
CloseHandle(hCvar);
HookEvent("player_activate", Event_PlayerActivate);
}
public AutoDemoUrlChange(Handle:convar, const String:oldValue[], const String:newValue[]) strcopy(g_sMsg, PLATFORM_MAX_PATH, newValue);
public HostName(Handle:convar, const String:oldValue[], const String:newValue[]) strcopy(g_sHostname, 150, newValue);
public OnConfigsExecuted()
{
if (!GetCurrentMap(g_sMap, 32)) g_sMap = "MAP";
}
public Event_PlayerActivate(Handle:event, String:name[], bool:dontBroadcast) CreateTimer(0.2, start_demo, GetEventInt(event, "userid"));
public Action:start_demo(Handle:hTimer, any:userid)
{
new iClient = GetClientOfUserId(userid);
if (iClient && IsClientInGame(iClient))
{
decl String:sBuffer[192];
WritePackCell(hTimer = CreateDataPack(), userid);
FormatTime(sBuffer, 20, "%d.%m.%y|%H:%M:%S", userid = GetTime());
WritePackString(hTimer, sBuffer);
CreateTimer(10.0, advet_demo, hTimer, TIMER_DATA_HNDL_CLOSE|TIMER_FLAG_NO_MAPCHANGE);
FormatTime(sBuffer, 20, "%d-%m-%y_%H-%M-%S", userid);
if (Format(sBuffer, 192, "record save//%s_%s; joingame", sBuffer, g_sMap) > 14)
{
KvSetString(hTimer = CreateKeyValues("data"), "title", g_sHostname);
KvSetString(hTimer, "type", "2");
KvSetString(hTimer, "cmd", sBuffer);
KvSetString(hTimer, "msg", g_sMsg);
ShowVGUIPanel(iClient, "info", hTimer);
}
CloseHandle(hTimer);
}
return Plugin_Stop;
}
public Action:advet_demo(Handle:hTimer, Handle:hPack)
{
ResetPack(hPack);
new iClient = GetClientOfUserId(ReadPackCell(hPack));
if (iClient)
{
decl String:sTime[20];
ReadPackString(hPack, sTime, 20);
TeamColorPrintToChat(iClient, "\x01\x04[\x03Team-Magic\x04]\x01: Запись демо началась \x03%s \x01на \x04%s", sTime, g_sMap);
TeamColorPrintToChat(iClient, "\x01\x04[\x03Team-Magic\x04]\x01: Место хранения демок \x04cstrike/save");
}
return Plugin_Stop;
}
stock TeamColorPrintToChat(client, const String:text[], any:...)
{
decl String:buffer[192], player[1], Handle:h;
player[0] = client;
if ((h = StartMessage("SayText2", player, 1, 0)) != INVALID_HANDLE)
{
SetGlobalTransTarget(client);
VFormat(buffer, 192, text, 3);
BfWriteByte(h, client);
BfWriteByte(h, true);
BfWriteString(h, buffer);
EndMessage();
}
}