#pragma semicolon 1
#include <sdktools_stringtables>
#include <SteamWorks>
int c_Prime;
int c_NoPrime;
int iId[MAXPLAYERS +1];
public Plugin myinfo =
{
name = "[Prime Natives] Custom FakeRanks",
version = "1.0.1",
description = "Fake Ranks for Prime status",
author = "ღ λŌK0ЌЭŦ ღ ™",
url = "https://hlmod.ru/"
}
public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max)
{
CreateNative("FRS_Prime_GetId", Native_GetId);
RegPluginLibrary("FRS_prime");
return APLRes_Success;
}
public int Native_GetId(Handle plugin, int args)
{
int iClient = GetNativeCell(1);
if(iClient < 1 || iClient > MaxClients)
return ThrowNativeError(SP_ERROR_NATIVE, "Invalid iClient index (%d)", iClient);
if(!IsClientConnected(iClient))
return ThrowNativeError(SP_ERROR_NATIVE, "iClient %d is not connected", iClient);
return (iId[iClient]);
}
public void OnPluginStart()
{
ConVar cvar;
(cvar = CreateConVar("sm_prime_natives_fakerank_prime", "60997701", "Id skillgroup*.swg for Prime status")).AddChangeHook(ChangeCvar_Prime);
c_Prime = cvar.IntValue;
(cvar = CreateConVar("sm_prime_natives_fakerank_noprime", "60997702", "Id skillgroup*.swg for No Prime status")).AddChangeHook(ChangeCvar_NoPrime);
c_NoPrime = cvar.IntValue;
char szBuffer[250];
FormatEx(szBuffer, sizeof(szBuffer), "materials/panorama/images/icons/skillgroups/skillgroup%i.svg", c_NoPrime);
if(FileExists(szBuffer)) AddFileToDownloadsTable(szBuffer);
FormatEx(szBuffer, sizeof(szBuffer), "materials/panorama/images/icons/skillgroups/skillgroup%i.svg", c_Prime);
if(FileExists(szBuffer)) AddFileToDownloadsTable(szBuffer);
AutoExecConfig(true, "FakeRank", "sourcemod/prime_natives");
for(int i = 1; i <= MaxClients; i++) if(IsClientInGame(i) && IsClientAuthorized(i))
{
OnClientPostAdminCheck(i);
}
}
public void ChangeCvar_Prime(ConVar cvar, char[] oldValue, char[] newValue)
{
c_Prime = cvar.IntValue;
}
public void ChangeCvar_NoPrime(ConVar cvar, char[] oldValue, char[] newValue)
{
c_NoPrime = cvar.IntValue;
}
public void OnClientPostAdminCheck(int iClient)
{
if (CheckCommandAccess(iClient, "BypassPremiumCheck", ADMFLAG_ROOT, true))
{
iId[iClient] = c_Prime;
}
else iId[iClient] = c_NoPrime;
return;
}