#include <morecolors>
#include <clientmod>
public Plugin:myinfo =
{
name = "[CS:S v34][CM][KDLP] Game Events",
author = "KorDen",
description = "ClientMod Edition",
version = "1.0.1",
url = "dev.sky-play.ru / vk.com/clientmod"
}
public OnPluginStart()
{
HookEvent("player_disconnect", OnConn, EventHookMode_Pre);
HookEvent("player_connect", OnConn, EventHookMode_Pre);
HookEvent("player_team", OnTeam, EventHookMode_Pre);
HookEventEx("player_connect_client", OnConn2, EventHookMode_Pre);
}
public Action:OnTeam(Handle:event, String:name[], bool:dontBroadcast)
{
if (!dontBroadcast && !GetEventBool(event,"disconnect") && !GetEventBool(event,"silent"))
{
new target = GetClientOfUserId(GetEventInt(event, "userid"));
SetEventBroadcast(event, true);
switch (GetEventInt(event, "team"))
{
case 1:
{
for(new i = 1; i <= MaxClients; i++)
{
if(IsClientInGame(i) && !IsFakeClient(i))
{
// Это будет показываться тем, кто играет через обычный клиент CS:S v34:
if(!CM_IsClientModUser(i, true)) PrintToChat(i, "\x03My Server \x04| \x01%N \x04переходит к \x03Наблюдателям", target);
// Это будет показываться тем, кто играет через ClientMod:
else if(CM_IsClientModUser(i, true)) CPrintToChat(i, "{deeppink}My Server {black}| {lime}%N {white}переходит к {darkgray}Наблюдателям", target); // new client
}
}
}
case 2:
{
for(new i = 1; i <= MaxClients; i++)
{
if(IsClientInGame(i) && !IsFakeClient(i))
{
// Это будет показываться тем, кто играет через обычный клиент CS:S v34:
if(!CM_IsClientModUser(i, true)) PrintToChat(i, "\x03My Server \x04| \x01%N \x04переходит к \x03Террористам", target);
// Это будет показываться тем, кто играет через ClientMod:
else if(CM_IsClientModUser(i, true)) CPrintToChat(i, "{deeppink}My Server {black}| {lime}%N {white}переходит к {fullred}Террористам", target); // new client
}
}
}
case 3:
{
for(new i = 1; i <= MaxClients; i++)
{
if(IsClientInGame(i) && !IsFakeClient(i))
{
// Это будет показываться тем, кто играет через обычный клиент CS:S v34:
if(!CM_IsClientModUser(i, true)) PrintToChat(i, "\x03My Server \x04| \x01%N \x04переходит к \x03Спецназовцам", target);
// Это будет показываться тем, кто играет через ClientMod:
else if(CM_IsClientModUser(i, true)) CPrintToChat(i, "{deeppink}My Server {black}| {lime}%N {white}переходит к {fullblue}Спецназовцам", target); // new client
}
}
}
}
}
return Plugin_Continue;
}
public Action:OnConn(Handle:event, const String:name[], bool:dontBroadcast)
{
if (!dontBroadcast)
SetEventBroadcast(event, true);
decl String:rawmsg[255], String:rawadmmsg[255], String:rawmsg2[255], String:rawadmmsg2[255], String:nick[MAX_NAME_LENGTH],
String:steam[24], String:ip[16], String:reason[192];
new i;
GetEventString(event, "networkid", steam, sizeof(steam));
GetEventString(event, "name", nick, sizeof(nick));
if (strcmp(name,"player_disconnect"))
{
GetEventString(event, "address", ip, sizeof(ip));
SplitString(ip, ":", ip, sizeof(ip));
// Это будет показываться тем, кто играет через обычный клиент CS:S v34:
FormatEx(rawmsg, sizeof(rawmsg), "\x03My Server \x04| \x01%s \x04заходит на сервер", nick);
FormatEx(rawadmmsg, sizeof(rawadmmsg), "\x03My Server \x04| \x01%s \x04| \x03%s \x04заходит на сервер", nick, ip);
// Это будет показываться тем, кто играет через ClientMod:
FormatEx(rawmsg2, sizeof(rawmsg2), "{deeppink}My Server {black}| {lime}%s {white}заходит на сервер", nick); // new client
FormatEx(rawadmmsg2, sizeof(rawadmmsg2), "{deeppink}My Server {black}| {lime}%s {black}| {fullred}%s {white}заходит на сервер", nick, ip); // new client
}
else
{
i = GetClientOfUserId(GetEventInt(event,"userid"));
if(i < 1)
return;
GetEventString(event, "reason", reason, sizeof(reason));
GetClientIP(i, ip, sizeof(ip)); // В player_disconnect нет address
ReplaceString(reason, sizeof(reason), "\n", " ");
// Это будет показываться тем, кто играет через обычный клиент CS:S v34:
FormatEx(rawadmmsg, sizeof(rawadmmsg),"\x03My Server \x04| \x01%s \x04| \x03%s \x04уходит с сервера \x03- \x01%s", nick, ip, reason);
FormatEx(rawmsg, sizeof(rawmsg),"\x03My Server \x04| \x01%s \x04уходит с сервера \x03- \x01%s", nick, reason);
// Это будет показываться тем, кто играет через ClientMod:
FormatEx(rawadmmsg2, sizeof(rawadmmsg2),"{deeppink}My Server {black}| {lime}%s {black}| {fullred}%s {white}уходит с сервера {black}- {white}%s", nick, ip, reason); // new client
FormatEx(rawmsg2, sizeof(rawmsg2),"{deeppink}My Server {black}| {lime}%s {white}уходит с сервера {black}- {white}%s", nick, reason); // new client
}
for (i = 1; i <= MaxClients; i++)
{
if(IsClientInGame(i) && !IsFakeClient(i))
{
if(!CM_IsClientModUser(i, true)) PrintToChat(i, (GetUserFlagBits(i) & (ADMFLAG_GENERIC+ADMFLAG_ROOT)) ? rawadmmsg : rawmsg);
else if(CM_IsClientModUser(i, true)) CPrintToChat(i, (GetUserFlagBits(i) & (ADMFLAG_GENERIC+ADMFLAG_ROOT)) ? rawadmmsg2 : rawmsg2); // new client
}
}
}
public Action:OnConn2(Handle:event, const String:name[], bool:dontBroadcast)
{
if (!dontBroadcast)
SetEventBroadcast(event, true);
return Plugin_Continue;
}