#pragma semicolon 1
#include <vip_core>
#include <cstrike>
#include <swgm>
public Plugin myinfo =
{
name = "[SWGM] VIP",
author = "Someone",
description = "Выдача VIP-статуса для игроков, состоящих в Steam группе.",
version = "1.4 MySQL TAG",
url = "http://hlmod.ru"
};
ConVar CVAR;
char g_VIPTAGGroup[32];
bool g_bVIP[MAXPLAYERS+1];
public void OnPluginStart()
{
(CVAR = CreateConVar("sm_swgm_vip_tag_group", "vip2", "VIP группа для игроковс тэгом.")).AddChangeHook(ChangeCvar_TagGroup);
CVAR.GetString(g_VIPTAGGroup, sizeof(g_VIPTAGGroup));
AutoExecConfig(true, "swgm_vip");
}
public void ChangeCvar_TagGroup(ConVar convar, const char[] oldValue, const char[] newValue)
{
convar.GetString(g_VIPTAGGroup, sizeof(g_VIPTAGGroup));
}
public void OnClientSettingsChanged(int iClient)
{
if(IsClientInGame(iClient) && VIP_IsClientVIP(iClient) && g_bVIP[iClient])
{
char sTag[64];
CS_GetClientClanTag(iClient, sTag, sizeof(sTag));
if(!StrEqual(sTag, g_VIPTAGGroup))
{
VIP_RemoveClientVIP(iClient, false, false);
VIP_PrintToChatClient(iClient, "%t", "SWGM_VIP_Change");
}
}
}
public int VIP_OnClientLoaded(int iClient, bool bIsVIP)
{
g_bVIP[iClient] = false;
if(!IsFakeClient(iClient) && !bIsVIP && SWGM_InGroup(iClient))
{
char sTag[64];
CS_GetClientClanTag(iClient, sTag, sizeof(sTag));
if(StrEqual(sTag, g_VIPTAGGroup))
{
VIP_SetClientVIP(iClient, 0, _, g_VIPTAGGroup, false);
}
g_bVIP[iClient] = true;
}
}
public void SWGM_OnJoinGroup(int iClient, bool IsOfficer)
{
if(!VIP_IsClientVIP(iClient))
{
char sTag[64];
CS_GetClientClanTag(iClient, sTag, sizeof(sTag));
if(StrEqual(sTag, g_VIPTAGGroup))
{
VIP_SetClientVIP(iClient, 0, _, g_VIPTAGGroup, true);
}
g_bVIP[iClient] = true;
VIP_PrintToChatClient(iClient, "%t", "SWGM_VIP_Give");
}
}
public void SWGM_OnLeaveGroup(int iClient)
{
if(VIP_IsClientVIP(iClient) && g_bVIP[iClient])
{
g_bVIP[iClient] = false;
VIP_RemoveClientVIP(iClient, false, true);
VIP_PrintToChatClient(iClient, "%t", "SWGM_VIP_Take");
}
}