Advertisements: split casuals and vips
This commit is contained in:
		
							parent
							
								
									a7a4acdcc4
								
							
						
					
					
						commit
						7e627ba290
					
				@ -7,13 +7,13 @@
 | 
				
			|||||||
#pragma newdecls required
 | 
					#pragma newdecls required
 | 
				
			||||||
#pragma semicolon 1
 | 
					#pragma semicolon 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define PL_VERSION	"2.0.2"
 | 
					#define PL_VERSION  "3.0.0"
 | 
				
			||||||
#define UPDATE_URL  "http://ErikMinekus.github.io/sm-advertisements/update.txt"
 | 
					#define UPDATE_URL  "http://ErikMinekus.github.io/sm-advertisements/update.txt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public Plugin myinfo =
 | 
					public Plugin myinfo =
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    name        = "Advertisements",
 | 
					    name        = "Advertisements",
 | 
				
			||||||
    author      = "Tsunami",
 | 
					    author      = "Tsunami + Dogan",
 | 
				
			||||||
    description = "Display advertisements",
 | 
					    description = "Display advertisements",
 | 
				
			||||||
    version     = PL_VERSION,
 | 
					    version     = PL_VERSION,
 | 
				
			||||||
    url         = "http://www.tsunami-productions.nl"
 | 
					    url         = "http://www.tsunami-productions.nl"
 | 
				
			||||||
@ -23,9 +23,11 @@ public Plugin myinfo =
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * Globals
 | 
					 * Globals
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
KeyValues g_hAdvertisements;
 | 
					KeyValues g_hAdvertisementsRegular;
 | 
				
			||||||
 | 
					KeyValues g_hAdvertisementsVIP;
 | 
				
			||||||
ConVar g_hEnabled;
 | 
					ConVar g_hEnabled;
 | 
				
			||||||
ConVar g_hFile;
 | 
					ConVar g_hFileRegular;
 | 
				
			||||||
 | 
					ConVar g_hFileVIP;
 | 
				
			||||||
ConVar g_hInterval;
 | 
					ConVar g_hInterval;
 | 
				
			||||||
Handle g_hTimer;
 | 
					Handle g_hTimer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -37,10 +39,12 @@ public void OnPluginStart()
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    CreateConVar("sm_advertisements_version", PL_VERSION, "Display advertisements", FCVAR_NOTIFY);
 | 
					    CreateConVar("sm_advertisements_version", PL_VERSION, "Display advertisements", FCVAR_NOTIFY);
 | 
				
			||||||
    g_hEnabled = CreateConVar("sm_advertisements_enabled",  "1",                  "Enable/disable displaying advertisements.");
 | 
					    g_hEnabled = CreateConVar("sm_advertisements_enabled",  "1",                  "Enable/disable displaying advertisements.");
 | 
				
			||||||
    g_hFile     = CreateConVar("sm_advertisements_file",     "advertisements.txt", "File to read the advertisements from.");
 | 
					    g_hFileRegular = CreateConVar("sm_advertisements_file_regular",     "advertisements_regular.txt", "File to read the regular advertisements from.");
 | 
				
			||||||
 | 
					    g_hFileVIP    = CreateConVar("sm_advertisements_file_vip",     "advertisements_VIP.txt", "File to read the vip advertisements from.");
 | 
				
			||||||
    g_hInterval = CreateConVar("sm_advertisements_interval", "30",                 "Amount of seconds between advertisements.");
 | 
					    g_hInterval = CreateConVar("sm_advertisements_interval", "30",                 "Amount of seconds between advertisements.");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    g_hFile.AddChangeHook(ConVarChange_File);
 | 
					    g_hFileRegular.AddChangeHook(ConVarChange_File);
 | 
				
			||||||
 | 
					    g_hFileVIP.AddChangeHook(ConVarChange_File);
 | 
				
			||||||
    g_hInterval.AddChangeHook(ConVarChange_Interval);
 | 
					    g_hInterval.AddChangeHook(ConVarChange_Interval);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    RegServerCmd("sm_advertisements_reload", Command_ReloadAds, "Reload the advertisements");
 | 
					    RegServerCmd("sm_advertisements_reload", Command_ReloadAds, "Reload the advertisements");
 | 
				
			||||||
@ -59,6 +63,26 @@ public void OnMapStart()
 | 
				
			|||||||
    g_hTimer = CreateTimer(g_hInterval.IntValue * 1.0, Timer_DisplayAd, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
 | 
					    g_hTimer = CreateTimer(g_hInterval.IntValue * 1.0, Timer_DisplayAd, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public Action Timer_DisplayAd(Handle timer)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					        if (!g_hEnabled.BoolValue) {
 | 
				
			||||||
 | 
					        return Plugin_Handled;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Timer_DisplayAdRegulars();
 | 
				
			||||||
 | 
						Timer_DisplayAdVIP();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return Plugin_Continue;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public bool IsVIP(int client)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(CheckCommandAccess(client, "", ADMFLAG_CUSTOM1))
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public void OnLibraryAdded(const char[] name)
 | 
					public void OnLibraryAdded(const char[] name)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    if (StrEqual(name, "updater")) {
 | 
					    if (StrEqual(name, "updater")) {
 | 
				
			||||||
@ -100,19 +124,15 @@ public int Handler_DoNothing(Menu menu, MenuAction action, int param1, int param
 | 
				
			|||||||
/**
 | 
					/**
 | 
				
			||||||
 * Timers
 | 
					 * Timers
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
public Action Timer_DisplayAd(Handle timer)
 | 
					public void Timer_DisplayAdRegulars()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    if (!g_hEnabled.BoolValue) {
 | 
					 | 
				
			||||||
        return;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    char sCenter[1024], sChat[1024], sHint[1024], sMenu[1024], sTop[1024], sFlags[16];
 | 
					    char sCenter[1024], sChat[1024], sHint[1024], sMenu[1024], sTop[1024], sFlags[16];
 | 
				
			||||||
    g_hAdvertisements.GetString("center", sCenter, sizeof(sCenter));
 | 
					    g_hAdvertisementsRegular.GetString("center", sCenter, sizeof(sCenter));
 | 
				
			||||||
    g_hAdvertisements.GetString("chat",   sChat,   sizeof(sChat));
 | 
					    g_hAdvertisementsRegular.GetString("chat",   sChat,   sizeof(sChat));
 | 
				
			||||||
    g_hAdvertisements.GetString("hint",   sHint,   sizeof(sHint));
 | 
					    g_hAdvertisementsRegular.GetString("hint",   sHint,   sizeof(sHint));
 | 
				
			||||||
    g_hAdvertisements.GetString("menu",   sMenu,   sizeof(sMenu));
 | 
					    g_hAdvertisementsRegular.GetString("menu",   sMenu,   sizeof(sMenu));
 | 
				
			||||||
    g_hAdvertisements.GetString("top",    sTop,    sizeof(sTop));
 | 
					    g_hAdvertisementsRegular.GetString("top",    sTop,    sizeof(sTop));
 | 
				
			||||||
    g_hAdvertisements.GetString("flags",  sFlags,  sizeof(sFlags), "none");
 | 
					    g_hAdvertisementsRegular.GetString("flags",  sFlags,  sizeof(sFlags), "none");
 | 
				
			||||||
    int iFlags   = ReadFlagString(sFlags);
 | 
					    int iFlags   = ReadFlagString(sFlags);
 | 
				
			||||||
    bool bAdmins = StrEqual(sFlags, ""),
 | 
					    bool bAdmins = StrEqual(sFlags, ""),
 | 
				
			||||||
         bFlags  = !StrEqual(sFlags, "none");
 | 
					         bFlags  = !StrEqual(sFlags, "none");
 | 
				
			||||||
@ -122,7 +142,7 @@ public Action Timer_DisplayAd(Handle timer)
 | 
				
			|||||||
        CRemoveColors(sCenter, sizeof(sCenter));
 | 
					        CRemoveColors(sCenter, sizeof(sCenter));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (int i = 1; i <= MaxClients; i++) {
 | 
					        for (int i = 1; i <= MaxClients; i++) {
 | 
				
			||||||
            if (IsClientInGame(i) && !IsFakeClient(i) &&
 | 
					            if (IsClientInGame(i) && !IsFakeClient(i) && !IsVIP(i) &&
 | 
				
			||||||
                ((!bAdmins && !(bFlags && (GetUserFlagBits(i) & (iFlags|ADMFLAG_ROOT)))) ||
 | 
					                ((!bAdmins && !(bFlags && (GetUserFlagBits(i) & (iFlags|ADMFLAG_ROOT)))) ||
 | 
				
			||||||
                 (bAdmins && (GetUserFlagBits(i) & (ADMFLAG_GENERIC|ADMFLAG_ROOT))))) {
 | 
					                 (bAdmins && (GetUserFlagBits(i) & (ADMFLAG_GENERIC|ADMFLAG_ROOT))))) {
 | 
				
			||||||
                PrintCenterText(i, sCenter);
 | 
					                PrintCenterText(i, sCenter);
 | 
				
			||||||
@ -139,7 +159,7 @@ public Action Timer_DisplayAd(Handle timer)
 | 
				
			|||||||
        CRemoveColors(sHint, sizeof(sHint));
 | 
					        CRemoveColors(sHint, sizeof(sHint));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (int i = 1; i <= MaxClients; i++) {
 | 
					        for (int i = 1; i <= MaxClients; i++) {
 | 
				
			||||||
            if (IsClientInGame(i) && !IsFakeClient(i) &&
 | 
					            if (IsClientInGame(i) && !IsFakeClient(i) && !IsVIP(i) &&
 | 
				
			||||||
                ((!bAdmins && !(bFlags && (GetUserFlagBits(i) & (iFlags|ADMFLAG_ROOT)))) ||
 | 
					                ((!bAdmins && !(bFlags && (GetUserFlagBits(i) & (iFlags|ADMFLAG_ROOT)))) ||
 | 
				
			||||||
                 (bAdmins && (GetUserFlagBits(i) & (ADMFLAG_GENERIC|ADMFLAG_ROOT))))) {
 | 
					                 (bAdmins && (GetUserFlagBits(i) & (ADMFLAG_GENERIC|ADMFLAG_ROOT))))) {
 | 
				
			||||||
                PrintHintText(i, sHint);
 | 
					                PrintHintText(i, sHint);
 | 
				
			||||||
@ -155,7 +175,7 @@ public Action Timer_DisplayAd(Handle timer)
 | 
				
			|||||||
        hPl.CurrentKey = 10;
 | 
					        hPl.CurrentKey = 10;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (int i = 1; i <= MaxClients; i++) {
 | 
					        for (int i = 1; i <= MaxClients; i++) {
 | 
				
			||||||
            if (IsClientInGame(i) && !IsFakeClient(i) &&
 | 
					            if (IsClientInGame(i) && !IsFakeClient(i) && !IsVIP(i) &&
 | 
				
			||||||
                ((!bAdmins && !(bFlags && (GetUserFlagBits(i) & (iFlags|ADMFLAG_ROOT)))) ||
 | 
					                ((!bAdmins && !(bFlags && (GetUserFlagBits(i) & (iFlags|ADMFLAG_ROOT)))) ||
 | 
				
			||||||
                 (bAdmins && (GetUserFlagBits(i) & (ADMFLAG_GENERIC|ADMFLAG_ROOT))))) {
 | 
					                 (bAdmins && (GetUserFlagBits(i) & (ADMFLAG_GENERIC|ADMFLAG_ROOT))))) {
 | 
				
			||||||
                hPl.Send(i, Handler_DoNothing, 10);
 | 
					                hPl.Send(i, Handler_DoNothing, 10);
 | 
				
			||||||
@ -172,7 +192,7 @@ public Action Timer_DisplayAd(Handle timer)
 | 
				
			|||||||
        CAddWhiteSpace(sChat, sizeof(sChat));
 | 
					        CAddWhiteSpace(sChat, sizeof(sChat));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (int i = 1; i <= MaxClients; i++) {
 | 
					        for (int i = 1; i <= MaxClients; i++) {
 | 
				
			||||||
            if (IsClientInGame(i) && !IsFakeClient(i) &&
 | 
					            if (IsClientInGame(i) && !IsFakeClient(i) && !IsVIP(i) &&
 | 
				
			||||||
                ((!bAdmins && !(bFlags && (GetUserFlagBits(i) & (iFlags|ADMFLAG_ROOT)))) ||
 | 
					                ((!bAdmins && !(bFlags && (GetUserFlagBits(i) & (iFlags|ADMFLAG_ROOT)))) ||
 | 
				
			||||||
                 (bAdmins && (GetUserFlagBits(i) & (ADMFLAG_GENERIC|ADMFLAG_ROOT))))) {
 | 
					                 (bAdmins && (GetUserFlagBits(i) & (ADMFLAG_GENERIC|ADMFLAG_ROOT))))) {
 | 
				
			||||||
                if (bTeamColor) {
 | 
					                if (bTeamColor) {
 | 
				
			||||||
@ -196,7 +216,7 @@ public Action Timer_DisplayAd(Handle timer)
 | 
				
			|||||||
        hKv.SetNum("time",     10);
 | 
					        hKv.SetNum("time",     10);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (int i = 1; i <= MaxClients; i++) {
 | 
					        for (int i = 1; i <= MaxClients; i++) {
 | 
				
			||||||
            if (IsClientInGame(i) && !IsFakeClient(i) &&
 | 
					            if (IsClientInGame(i) && !IsFakeClient(i) && !IsVIP(i) &&
 | 
				
			||||||
                ((!bAdmins && !(bFlags && (GetUserFlagBits(i) & (iFlags|ADMFLAG_ROOT)))) ||
 | 
					                ((!bAdmins && !(bFlags && (GetUserFlagBits(i) & (iFlags|ADMFLAG_ROOT)))) ||
 | 
				
			||||||
                 (bAdmins && (GetUserFlagBits(i) & (ADMFLAG_GENERIC|ADMFLAG_ROOT))))) {
 | 
					                 (bAdmins && (GetUserFlagBits(i) & (ADMFLAG_GENERIC|ADMFLAG_ROOT))))) {
 | 
				
			||||||
                CreateDialog(i, hKv, DialogType_Msg);
 | 
					                CreateDialog(i, hKv, DialogType_Msg);
 | 
				
			||||||
@ -206,9 +226,117 @@ public Action Timer_DisplayAd(Handle timer)
 | 
				
			|||||||
        delete hKv;
 | 
					        delete hKv;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!g_hAdvertisements.GotoNextKey()) {
 | 
					    if (!g_hAdvertisementsRegular.GotoNextKey()) {
 | 
				
			||||||
        g_hAdvertisements.Rewind();
 | 
					        g_hAdvertisementsRegular.Rewind();
 | 
				
			||||||
        g_hAdvertisements.GotoFirstSubKey();
 | 
					        g_hAdvertisementsRegular.GotoFirstSubKey();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public void Timer_DisplayAdVIP()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    char sCenter[1024], sChat[1024], sHint[1024], sMenu[1024], sTop[1024], sFlags[16];
 | 
				
			||||||
 | 
					    g_hAdvertisementsVIP.GetString("center", sCenter, sizeof(sCenter));
 | 
				
			||||||
 | 
					    g_hAdvertisementsVIP.GetString("chat",   sChat,   sizeof(sChat));
 | 
				
			||||||
 | 
					    g_hAdvertisementsVIP.GetString("hint",   sHint,   sizeof(sHint));
 | 
				
			||||||
 | 
					    g_hAdvertisementsVIP.GetString("menu",   sMenu,   sizeof(sMenu));
 | 
				
			||||||
 | 
					    g_hAdvertisementsVIP.GetString("top",    sTop,    sizeof(sTop));
 | 
				
			||||||
 | 
					    g_hAdvertisementsVIP.GetString("flags",  sFlags,  sizeof(sFlags), "none");
 | 
				
			||||||
 | 
					    int iFlags   = ReadFlagString(sFlags);
 | 
				
			||||||
 | 
					    bool bAdmins = StrEqual(sFlags, ""),
 | 
				
			||||||
 | 
					         bFlags  = !StrEqual(sFlags, "none");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (sCenter[0]) {
 | 
				
			||||||
 | 
					        ProcessVariables(sCenter);
 | 
				
			||||||
 | 
					        CRemoveColors(sCenter, sizeof(sCenter));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        for (int i = 1; i <= MaxClients; i++) {
 | 
				
			||||||
 | 
					            if (IsClientInGame(i) && !IsFakeClient(i) && IsVIP(i) &&
 | 
				
			||||||
 | 
					                ((!bAdmins && !(bFlags && (GetUserFlagBits(i) & (iFlags|ADMFLAG_ROOT)))) ||
 | 
				
			||||||
 | 
					                 (bAdmins && (GetUserFlagBits(i) & (ADMFLAG_GENERIC|ADMFLAG_ROOT))))) {
 | 
				
			||||||
 | 
					                PrintCenterText(i, sCenter);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                DataPack hCenterAd;
 | 
				
			||||||
 | 
					                CreateDataTimer(1.0, Timer_CenterAd, hCenterAd, TIMER_FLAG_NO_MAPCHANGE|TIMER_REPEAT);
 | 
				
			||||||
 | 
					                hCenterAd.WriteCell(i);
 | 
				
			||||||
 | 
					                hCenterAd.WriteString(sCenter);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (sHint[0]) {
 | 
				
			||||||
 | 
					        ProcessVariables(sHint);
 | 
				
			||||||
 | 
					        CRemoveColors(sHint, sizeof(sHint));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        for (int i = 1; i <= MaxClients; i++) {
 | 
				
			||||||
 | 
					            if (IsClientInGame(i) && !IsFakeClient(i) && IsVIP(i) &&
 | 
				
			||||||
 | 
					                ((!bAdmins && !(bFlags && (GetUserFlagBits(i) & (iFlags|ADMFLAG_ROOT)))) ||
 | 
				
			||||||
 | 
					                 (bAdmins && (GetUserFlagBits(i) & (ADMFLAG_GENERIC|ADMFLAG_ROOT))))) {
 | 
				
			||||||
 | 
					                PrintHintText(i, sHint);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (sMenu[0]) {
 | 
				
			||||||
 | 
					        ProcessVariables(sMenu);
 | 
				
			||||||
 | 
					        CRemoveColors(sMenu, sizeof(sMenu));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Panel hPl = new Panel();
 | 
				
			||||||
 | 
					        hPl.DrawText(sMenu);
 | 
				
			||||||
 | 
					        hPl.CurrentKey = 10;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        for (int i = 1; i <= MaxClients; i++) {
 | 
				
			||||||
 | 
					            if (IsClientInGame(i) && !IsFakeClient(i) && IsVIP(i) &&
 | 
				
			||||||
 | 
					                ((!bAdmins && !(bFlags && (GetUserFlagBits(i) & (iFlags|ADMFLAG_ROOT)))) ||
 | 
				
			||||||
 | 
					                 (bAdmins && (GetUserFlagBits(i) & (ADMFLAG_GENERIC|ADMFLAG_ROOT))))) {
 | 
				
			||||||
 | 
					                hPl.Send(i, Handler_DoNothing, 10);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        delete hPl;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (sChat[0]) {
 | 
				
			||||||
 | 
					        bool bTeamColor = StrContains(sChat, "{teamcolor}", false) != -1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ProcessVariables(sChat);
 | 
				
			||||||
 | 
					        CProcessVariables(sChat, sizeof(sChat));
 | 
				
			||||||
 | 
					        CAddWhiteSpace(sChat, sizeof(sChat));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        for (int i = 1; i <= MaxClients; i++) {
 | 
				
			||||||
 | 
					            if (IsClientInGame(i) && !IsFakeClient(i) && IsVIP(i) &&
 | 
				
			||||||
 | 
					                ((!bAdmins && !(bFlags && (GetUserFlagBits(i) & (iFlags|ADMFLAG_ROOT)))) ||
 | 
				
			||||||
 | 
					                 (bAdmins && (GetUserFlagBits(i) & (ADMFLAG_GENERIC|ADMFLAG_ROOT))))) {
 | 
				
			||||||
 | 
					                if (bTeamColor) {
 | 
				
			||||||
 | 
					                    CSayText2(i, sChat, i);
 | 
				
			||||||
 | 
					                } else {
 | 
				
			||||||
 | 
					                    PrintToChat(i, sChat);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (sTop[0]) {
 | 
				
			||||||
 | 
					        int iStart    = 0,
 | 
				
			||||||
 | 
					            aColor[4] = {255, 255, 255, 255};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ParseTopColor(sTop, iStart, aColor);
 | 
				
			||||||
 | 
					        ProcessVariables(sTop[iStart]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        KeyValues hKv = new KeyValues("Stuff", "title", sTop[iStart]);
 | 
				
			||||||
 | 
					        hKv.SetColor4("color", aColor);
 | 
				
			||||||
 | 
					        hKv.SetNum("level",    1);
 | 
				
			||||||
 | 
					        hKv.SetNum("time",     10);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        for (int i = 1; i <= MaxClients; i++) {
 | 
				
			||||||
 | 
					            if (IsClientInGame(i) && !IsFakeClient(i) && IsVIP(i) &&
 | 
				
			||||||
 | 
					                ((!bAdmins && !(bFlags && (GetUserFlagBits(i) & (iFlags|ADMFLAG_ROOT)))) ||
 | 
				
			||||||
 | 
					                 (bAdmins && (GetUserFlagBits(i) & (ADMFLAG_GENERIC|ADMFLAG_ROOT))))) {
 | 
				
			||||||
 | 
					                CreateDialog(i, hKv, DialogType_Msg);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        delete hKv;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!g_hAdvertisementsVIP.GotoNextKey()) {
 | 
				
			||||||
 | 
					        g_hAdvertisementsVIP.Rewind();
 | 
				
			||||||
 | 
					        g_hAdvertisementsVIP.GotoFirstSubKey();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -236,19 +364,32 @@ public Action Timer_CenterAd(Handle timer, DataPack pack)
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
void ParseAds()
 | 
					void ParseAds()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    delete g_hAdvertisements;
 | 
					    delete g_hAdvertisementsRegular;
 | 
				
			||||||
    g_hAdvertisements = CreateKeyValues("Advertisements");
 | 
					    delete g_hAdvertisementsVIP;
 | 
				
			||||||
 | 
					    g_hAdvertisementsRegular = CreateKeyValues("AdvertisementsRegular");
 | 
				
			||||||
 | 
					    g_hAdvertisementsVIP = CreateKeyValues("AdvertisementsVIP");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    char sFile[64], sPath[PLATFORM_MAX_PATH];
 | 
						char sFileRegular[64], sPath[PLATFORM_MAX_PATH];
 | 
				
			||||||
    g_hFile.GetString(sFile, sizeof(sFile));
 | 
						char sFileVIP[64];
 | 
				
			||||||
    BuildPath(Path_SM, sPath, sizeof(sPath), "configs/%s", sFile);
 | 
						g_hFileRegular.GetString(sFileRegular, sizeof(sFileRegular));
 | 
				
			||||||
 | 
						g_hFileVIP.GetString(sFileVIP, sizeof(sFileVIP));
 | 
				
			||||||
 | 
						BuildPath(Path_SM, sPath, sizeof(sPath), "configs/%s", sFileRegular);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!FileExists(sPath)) {
 | 
					    if (!FileExists(sPath)) {
 | 
				
			||||||
        SetFailState("File Not Found: %s", sPath);
 | 
					        SetFailState("File Not Found: %s", sPath);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    g_hAdvertisements.ImportFromFile(sPath);
 | 
					    g_hAdvertisementsRegular.ImportFromFile(sPath);
 | 
				
			||||||
    g_hAdvertisements.GotoFirstSubKey();
 | 
					    g_hAdvertisementsRegular.GotoFirstSubKey();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    BuildPath(Path_SM, sPath, sizeof(sPath), "configs/%s", sFileVIP);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!FileExists(sPath)) {
 | 
				
			||||||
 | 
					        SetFailState("File Not Found: %s", sPath);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    g_hAdvertisementsVIP.ImportFromFile(sPath);
 | 
				
			||||||
 | 
					    g_hAdvertisementsVIP.GotoFirstSubKey();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void ProcessVariables(char sText[1024])
 | 
					void ProcessVariables(char sText[1024])
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user