Hey, I have a small problem to give the flag to the player through the plugin
PHP Code:
#include <sourcemod>
#pragma semicolon 1
#pragma newdecls required
#define FLAG ADMFLAG_CUSTOM6 // flaga, jeżeli chcesz dwie to dajesz np. ADMFLAG_RESERVATION|ADMFLAG_CUSTOM1
#define OD 24 // OD którego grudnia ma być za free vip
#define DO 26 // do którego
#define ADVERT_TIME 60.0 // musi być do liczba z . np. 60.0, 120.0, 125.5
#define IGNORE_ADMINS true // IGNOROWAĆ ADMINISTRATORÓW? (NADAWANIE VIPA)
bool g_bEnabled = false;
int g_bMialVipa[MAXPLAYERS + 1];
Handle g_hTimer;
public Plugin myinfo =
{
name = "[Roberrt] VIP na święta",
author = "Roberrt",
description = "Nadaje darmowego VIPa i informuje o tym.",
version = "1.0",
url = "https://pluginysm.pl"
};
public void OnMapStart()
{
g_hTimer = CreateTimer(ADVERT_TIME, Timer_Advert, _, TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE);
}
public void OnMapEnd()
{
if (g_hTimer != INVALID_HANDLE)
{
KillTimer(g_hTimer);
g_hTimer = INVALID_HANDLE;
}
}
public void OnClientAuthorized(int client)
{
g_bEnabled = false;
g_bMialVipa[client] = false;
char sDay[10];
char sMonth[10];
int iDay;
int iMonth;
FormatTime(sDay, sizeof(sDay), "%d", GetTime());
FormatTime(sMonth, sizeof(sMonth), "%m", GetTime());
iDay = StringToInt(sDay);
iMonth = StringToInt(sMonth);
if (iMonth == 12 && iDay >= OD && iDay <= DO)
{
g_bEnabled = true;
CreateTimer(0.5, Timer_VerifyClient, client);
}
}
public Action Timer_Advert(Handle timer)
{
if (!g_bEnabled && g_hTimer != INVALID_HANDLE)
{
KillTimer(g_hTimer);
g_hTimer = INVALID_HANDLE;
}
else
{
PrintToChatAll(" \x02[Święty Mikołaj]\x06 HOŁ HOŁ HOŁ!");
PrintToChatAll(" \x02[Święty Mikołaj]\x06 Jako prezent pod choinkę otrzymujecie \x10VIPa\x02!");
PrintToChatAll(" \x02[Święty Mikołaj]\x10 VIP\x06 skończy się pod koniec dnia %i grudnia.", DO);
}
}
public Action Timer_VerifyClient(Handle timer, int client)
{
if (IsValidClient(client, true))
{
int iClientFlags = GetUserFlagBits(client);
if (iClientFlags & ADMFLAG_RESERVATION || ((iClientFlags & ADMFLAG_GENERIC || iClientFlags & ADMFLAG_ROOT) && IGNORE_ADMINS))
{
g_bMialVipa[client] = true;
}
else
{
g_bMialVipa[client] = false;
SetUserFlagBits(client, GetUserFlagBits(client) & FLAG);
}
}
}
stock bool IsValidClient(int client, bool nobots = true)
{
if (client <= 0 || client > MaxClients || !IsClientConnected(client) || (nobots && IsFakeClient(client)))
{
return false;
}
return IsClientInGame(client);
}