#include <sourcemod>
char teams[3][] =
{
"Наблюдателей", "Террористов", "Контров"
}
public Plugin myinfo =
{
name = "[KDLP] Game Events",
author = "KorDen",
description = "",
version = "1.0",
url = "css32.ru"
}
public OnPluginStart()
{
HookEvent("player_disconnect", event_PlayerConn, EventHookMode_Pre);
HookEvent("player_connect", event_PlayerConn, EventHookMode_Pre);
HookEvent("player_team", event_PlayerTeam, EventHookMode_Pre);
}
public Action event_PlayerTeam(Handle event, const char[] name, bool dontBroadcast)
{
int client = GetClientOfUserId(GetEventInt(event, "userid"))
if (!dontBroadcast && !GetEventBool(event, "disconnect") && !GetEventBool(event, "silent") && IsClientConnected(client))
{
SetEventBroadcast(event, true);
PrintToChatAll("\x03● \x04Игрок \x03%N \x04зашёл за \x03%s \x04✔", client, teams[GetEventInt(event, "team") - 1]);
}
}
public Action event_PlayerConn(Handle event, const char[] name, bool dontBroadcast)
{
if (!dontBroadcast)
SetEventBroadcast(event, true);
char rawmsg[255];
char rawadmmsg[255];
char steam[24];
char nick[48];
char ip[16];
char reason[192];
GetEventString(event, "networkid", steam, sizeof(steam));
GetEventString(event, "name", nick, sizeof(nick));
if (strcmp(name, "player_connect"))
{
int client = GetClientOfUserId(GetEventInt(event, "userid"))
if (client < 1)return;
GetEventString(event, "reason", reason, sizeof(reason));
GetClientIP(client, ip, sizeof(ip)); // В player_disconnect нет address
ReplaceString(reason, sizeof(reason), "\n", " ");
Format(rawadmmsg, sizeof(rawadmmsg), "\x03✘ \x04Игрок \x03%s \x04покинул сервер \x03✔", nick);
Format(rawmsg, sizeof(rawmsg), "\x03✘ \x04Игрок \x03%s \x04покинул сервер \x03✔", nick, reason);
}
else
{
GetEventString(event, "address", ip, sizeof(ip));
SplitString(ip, ":", ip, sizeof(ip));
Format(rawadmmsg, sizeof(rawadmmsg), "\x03ツ \x04Игрок \x03%s \x04подключается \x03✔", nick);
Format(rawmsg, sizeof(rawmsg), "\x03ツ \x04Игрок \x03%s \x04подключается \x03✔", nick);
}
for (new i = 1; i <= MaxClients; i++)
if(IsClientConnected(i) && IsClientInGame(i) && !IsFakeClient(i))
if (GetUserFlagBits(i))
PrintToChat(i, "%s", rawadmmsg);
else
PrintToChat(i, "%s", rawmsg);
}