mirror of
https://github.com/shavitush/bhoptimer.git
synced 2025-12-07 18:38:26 +00:00
fix adminmenu 2.0
This commit is contained in:
parent
8f11f9aaf1
commit
09917f91d9
@ -46,6 +46,8 @@
|
|||||||
#include <shavit/sql-create-tables-and-migrations.sp>
|
#include <shavit/sql-create-tables-and-migrations.sp>
|
||||||
#include <shavit/physicsuntouch>
|
#include <shavit/physicsuntouch>
|
||||||
|
|
||||||
|
#include <adminmenu>
|
||||||
|
|
||||||
#pragma newdecls required
|
#pragma newdecls required
|
||||||
#pragma semicolon 1
|
#pragma semicolon 1
|
||||||
|
|
||||||
@ -120,6 +122,10 @@ bool gB_Zones = false;
|
|||||||
bool gB_ReplayPlayback = false;
|
bool gB_ReplayPlayback = false;
|
||||||
bool gB_Rankings = false;
|
bool gB_Rankings = false;
|
||||||
bool gB_HUD = false;
|
bool gB_HUD = false;
|
||||||
|
bool gB_AdminMenu = false;
|
||||||
|
|
||||||
|
TopMenu gH_AdminMenu = null;
|
||||||
|
TopMenuObject gH_TimerCommands = INVALID_TOPMENUOBJECT;
|
||||||
|
|
||||||
// cvars
|
// cvars
|
||||||
Convar gCV_Restart = null;
|
Convar gCV_Restart = null;
|
||||||
@ -402,6 +408,7 @@ public void OnPluginStart()
|
|||||||
gB_ReplayPlayback = LibraryExists("shavit-replay-playback");
|
gB_ReplayPlayback = LibraryExists("shavit-replay-playback");
|
||||||
gB_Rankings = LibraryExists("shavit-rankings");
|
gB_Rankings = LibraryExists("shavit-rankings");
|
||||||
gB_HUD = LibraryExists("shavit-hud");
|
gB_HUD = LibraryExists("shavit-hud");
|
||||||
|
gB_AdminMenu = LibraryExists("adminmenu");
|
||||||
|
|
||||||
// database connections
|
// database connections
|
||||||
SQL_DBConnect();
|
SQL_DBConnect();
|
||||||
@ -409,6 +416,12 @@ public void OnPluginStart()
|
|||||||
// late
|
// late
|
||||||
if(gB_Late)
|
if(gB_Late)
|
||||||
{
|
{
|
||||||
|
if (gB_AdminMenu && (gH_AdminMenu = GetAdminTopMenu()) != null)
|
||||||
|
{
|
||||||
|
OnAdminMenuCreated(gH_AdminMenu);
|
||||||
|
OnAdminMenuReady(gH_AdminMenu);
|
||||||
|
}
|
||||||
|
|
||||||
for(int i = 1; i <= MaxClients; i++)
|
for(int i = 1; i <= MaxClients; i++)
|
||||||
{
|
{
|
||||||
if(IsValidClient(i))
|
if(IsValidClient(i))
|
||||||
@ -419,6 +432,33 @@ public void OnPluginStart()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void OnAdminMenuCreated(Handle topmenu)
|
||||||
|
{
|
||||||
|
gH_AdminMenu = TopMenu.FromHandle(topmenu);
|
||||||
|
|
||||||
|
if ((gH_TimerCommands = gH_AdminMenu.FindCategory("Timer Commands")) == INVALID_TOPMENUOBJECT)
|
||||||
|
{
|
||||||
|
gH_TimerCommands = gH_AdminMenu.AddCategory("Timer Commands", CategoryHandler, "shavit_admin", ADMFLAG_RCON);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CategoryHandler(Handle topmenu, TopMenuAction action, TopMenuObject object_id, int param, char[] buffer, int maxlength)
|
||||||
|
{
|
||||||
|
if(action == TopMenuAction_DisplayTitle)
|
||||||
|
{
|
||||||
|
FormatEx(buffer, maxlength, "%T:", "TimerCommands", param);
|
||||||
|
}
|
||||||
|
else if(action == TopMenuAction_DisplayOption)
|
||||||
|
{
|
||||||
|
FormatEx(buffer, maxlength, "%T", "TimerCommands", param);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnAdminMenuReady(Handle topmenu)
|
||||||
|
{
|
||||||
|
gH_AdminMenu = TopMenu.FromHandle(topmenu);
|
||||||
|
}
|
||||||
|
|
||||||
void LoadDHooks()
|
void LoadDHooks()
|
||||||
{
|
{
|
||||||
Handle gamedataConf = LoadGameConfigFile("shavit.games");
|
Handle gamedataConf = LoadGameConfigFile("shavit.games");
|
||||||
@ -557,6 +597,10 @@ public void OnLibraryAdded(const char[] name)
|
|||||||
{
|
{
|
||||||
gB_Eventqueuefix = true;
|
gB_Eventqueuefix = true;
|
||||||
}
|
}
|
||||||
|
else if (StrEqual(name, "adminmenu"))
|
||||||
|
{
|
||||||
|
gB_AdminMenu = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnLibraryRemoved(const char[] name)
|
public void OnLibraryRemoved(const char[] name)
|
||||||
@ -581,6 +625,12 @@ public void OnLibraryRemoved(const char[] name)
|
|||||||
{
|
{
|
||||||
gB_Eventqueuefix = false;
|
gB_Eventqueuefix = false;
|
||||||
}
|
}
|
||||||
|
else if (StrEqual(name, "adminmenu"))
|
||||||
|
{
|
||||||
|
gB_AdminMenu = false;
|
||||||
|
gH_AdminMenu = null;
|
||||||
|
gH_TimerCommands = INVALID_TOPMENUOBJECT;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnMapStart()
|
public void OnMapStart()
|
||||||
|
|||||||
@ -163,6 +163,7 @@ float gF_VelocityDifference2D[MAXPLAYERS+1];
|
|||||||
float gF_VelocityDifference3D[MAXPLAYERS+1];
|
float gF_VelocityDifference3D[MAXPLAYERS+1];
|
||||||
|
|
||||||
bool gB_Late = false;
|
bool gB_Late = false;
|
||||||
|
bool gB_AdminMenu = false;
|
||||||
|
|
||||||
// forwards
|
// forwards
|
||||||
Handle gH_OnReplayStart = null;
|
Handle gH_OnReplayStart = null;
|
||||||
@ -323,12 +324,6 @@ public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max
|
|||||||
|
|
||||||
public void OnAllPluginsLoaded()
|
public void OnAllPluginsLoaded()
|
||||||
{
|
{
|
||||||
// admin menu
|
|
||||||
if(LibraryExists("adminmenu") && ((gH_AdminMenu = GetAdminTopMenu()) != null))
|
|
||||||
{
|
|
||||||
OnAdminMenuReady(gH_AdminMenu);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (LibraryExists("closestpos"))
|
if (LibraryExists("closestpos"))
|
||||||
{
|
{
|
||||||
gB_ClosestPos = true;
|
gB_ClosestPos = true;
|
||||||
@ -458,10 +453,17 @@ public void OnPluginStart()
|
|||||||
|
|
||||||
CreateAllNavFiles();
|
CreateAllNavFiles();
|
||||||
|
|
||||||
|
gB_AdminMenu = LibraryExists("adminmenu");
|
||||||
|
|
||||||
if(gB_Late)
|
if(gB_Late)
|
||||||
{
|
{
|
||||||
Shavit_OnStyleConfigLoaded(Shavit_GetStyleCount());
|
Shavit_OnStyleConfigLoaded(Shavit_GetStyleCount());
|
||||||
Shavit_OnChatConfigLoaded();
|
Shavit_OnChatConfigLoaded();
|
||||||
|
|
||||||
|
if (gB_AdminMenu && (gH_AdminMenu = GetAdminTopMenu()) != null)
|
||||||
|
{
|
||||||
|
OnAdminMenuReady(gH_AdminMenu);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int i = 1; i < sizeof(gA_BotInfo); i++)
|
for(int i = 1; i < sizeof(gA_BotInfo); i++)
|
||||||
@ -630,10 +632,7 @@ public void OnLibraryAdded(const char[] name)
|
|||||||
{
|
{
|
||||||
if (strcmp(name, "adminmenu") == 0)
|
if (strcmp(name, "adminmenu") == 0)
|
||||||
{
|
{
|
||||||
if ((gH_AdminMenu = GetAdminTopMenu()) != null)
|
gB_AdminMenu = true;
|
||||||
{
|
|
||||||
OnAdminMenuReady(gH_AdminMenu);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (strcmp(name, "closestpos") == 0)
|
else if (strcmp(name, "closestpos") == 0)
|
||||||
{
|
{
|
||||||
@ -645,6 +644,7 @@ public void OnLibraryRemoved(const char[] name)
|
|||||||
{
|
{
|
||||||
if (strcmp(name, "adminmenu") == 0)
|
if (strcmp(name, "adminmenu") == 0)
|
||||||
{
|
{
|
||||||
|
gB_AdminMenu = false;
|
||||||
gH_AdminMenu = null;
|
gH_AdminMenu = null;
|
||||||
gH_TimerCommands = INVALID_TOPMENUOBJECT;
|
gH_TimerCommands = INVALID_TOPMENUOBJECT;
|
||||||
}
|
}
|
||||||
@ -684,47 +684,12 @@ public void OnForcedConVarChanged(ConVar convar, const char[] oldValue, const ch
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnAdminMenuCreated(Handle topmenu)
|
public void OnAdminMenuReady(Handle topmenu)
|
||||||
{
|
{
|
||||||
if(gH_AdminMenu == null || (topmenu == gH_AdminMenu && gH_TimerCommands != INVALID_TOPMENUOBJECT))
|
gH_AdminMenu = TopMenu.FromHandle(topmenu);
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((gH_TimerCommands = gH_AdminMenu.FindCategory("Timer Commands")) != INVALID_TOPMENUOBJECT)
|
if ((gH_TimerCommands = gH_AdminMenu.FindCategory("Timer Commands")) != INVALID_TOPMENUOBJECT)
|
||||||
{
|
{
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
gH_TimerCommands = gH_AdminMenu.AddCategory("Timer Commands", CategoryHandler, "shavit_admin", ADMFLAG_RCON);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void CategoryHandler(Handle topmenu, TopMenuAction action, TopMenuObject object_id, int param, char[] buffer, int maxlength)
|
|
||||||
{
|
|
||||||
if(action == TopMenuAction_DisplayTitle)
|
|
||||||
{
|
|
||||||
FormatEx(buffer, maxlength, "%T:", "TimerCommands", param);
|
|
||||||
}
|
|
||||||
else if(action == TopMenuAction_DisplayOption)
|
|
||||||
{
|
|
||||||
FormatEx(buffer, maxlength, "%T", "TimerCommands", param);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnAdminMenuReady(Handle topmenu)
|
|
||||||
{
|
|
||||||
if((gH_AdminMenu = GetAdminTopMenu()) != null)
|
|
||||||
{
|
|
||||||
if(gH_TimerCommands == INVALID_TOPMENUOBJECT)
|
|
||||||
{
|
|
||||||
gH_TimerCommands = gH_AdminMenu.FindCategory("Timer Commands");
|
|
||||||
|
|
||||||
if(gH_TimerCommands == INVALID_TOPMENUOBJECT)
|
|
||||||
{
|
|
||||||
OnAdminMenuCreated(topmenu);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
gH_AdminMenu.AddItem("sm_deletereplay", AdminMenu_DeleteReplay, gH_TimerCommands, "sm_deletereplay", ADMFLAG_RCON);
|
gH_AdminMenu.AddItem("sm_deletereplay", AdminMenu_DeleteReplay, gH_TimerCommands, "sm_deletereplay", ADMFLAG_RCON);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -57,6 +57,7 @@ enum struct stagetimewrcp_t
|
|||||||
bool gB_Late = false;
|
bool gB_Late = false;
|
||||||
bool gB_Rankings = false;
|
bool gB_Rankings = false;
|
||||||
bool gB_Stats = false;
|
bool gB_Stats = false;
|
||||||
|
bool gB_AdminMenu = false;
|
||||||
|
|
||||||
// forwards
|
// forwards
|
||||||
Handle gH_OnWorldRecord = null;
|
Handle gH_OnWorldRecord = null;
|
||||||
@ -203,6 +204,7 @@ public void OnPluginStart()
|
|||||||
// modules
|
// modules
|
||||||
gB_Rankings = LibraryExists("shavit-rankings");
|
gB_Rankings = LibraryExists("shavit-rankings");
|
||||||
gB_Stats = LibraryExists("shavit-stats");
|
gB_Stats = LibraryExists("shavit-stats");
|
||||||
|
gB_AdminMenu = LibraryExists("adminmenu");
|
||||||
|
|
||||||
// cache
|
// cache
|
||||||
gA_ValidMaps = new ArrayList(ByteCountToCells(PLATFORM_MAX_PATH));
|
gA_ValidMaps = new ArrayList(ByteCountToCells(PLATFORM_MAX_PATH));
|
||||||
@ -212,61 +214,22 @@ public void OnPluginStart()
|
|||||||
Shavit_OnStyleConfigLoaded(Shavit_GetStyleCount());
|
Shavit_OnStyleConfigLoaded(Shavit_GetStyleCount());
|
||||||
Shavit_OnChatConfigLoaded();
|
Shavit_OnChatConfigLoaded();
|
||||||
Shavit_OnDatabaseLoaded();
|
Shavit_OnDatabaseLoaded();
|
||||||
}
|
|
||||||
|
|
||||||
CreateTimer(2.5, Timer_Dominating, 0, TIMER_REPEAT);
|
if (gB_AdminMenu && (gH_AdminMenu = GetAdminTopMenu()) != null)
|
||||||
}
|
|
||||||
|
|
||||||
public void OnAllPluginsLoaded()
|
|
||||||
{
|
|
||||||
// admin menu
|
|
||||||
if(LibraryExists("adminmenu") && ((gH_AdminMenu = GetAdminTopMenu()) != null))
|
|
||||||
{
|
{
|
||||||
OnAdminMenuReady(gH_AdminMenu);
|
OnAdminMenuReady(gH_AdminMenu);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnAdminMenuCreated(Handle topmenu)
|
CreateTimer(2.5, Timer_Dominating, 0, TIMER_REPEAT);
|
||||||
{
|
|
||||||
if(gH_AdminMenu == null || (topmenu == gH_AdminMenu && gH_TimerCommands != INVALID_TOPMENUOBJECT))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((gH_TimerCommands = gH_AdminMenu.FindCategory("Timer Commands")) != INVALID_TOPMENUOBJECT)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
gH_TimerCommands = gH_AdminMenu.AddCategory("Timer Commands", CategoryHandler, "shavit_admin", ADMFLAG_RCON);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void CategoryHandler(Handle topmenu, TopMenuAction action, TopMenuObject object_id, int param, char[] buffer, int maxlength)
|
|
||||||
{
|
|
||||||
if(action == TopMenuAction_DisplayTitle)
|
|
||||||
{
|
|
||||||
FormatEx(buffer, maxlength, "%T:", "TimerCommands", param);
|
|
||||||
}
|
|
||||||
else if(action == TopMenuAction_DisplayOption)
|
|
||||||
{
|
|
||||||
FormatEx(buffer, maxlength, "%T", "TimerCommands", param);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnAdminMenuReady(Handle topmenu)
|
public void OnAdminMenuReady(Handle topmenu)
|
||||||
{
|
{
|
||||||
if((gH_AdminMenu = GetAdminTopMenu()) != null)
|
gH_AdminMenu = TopMenu.FromHandle(topmenu);
|
||||||
{
|
|
||||||
if(gH_TimerCommands == INVALID_TOPMENUOBJECT)
|
|
||||||
{
|
|
||||||
gH_TimerCommands = gH_AdminMenu.FindCategory("Timer Commands");
|
|
||||||
|
|
||||||
if(gH_TimerCommands == INVALID_TOPMENUOBJECT)
|
if ((gH_TimerCommands = gH_AdminMenu.FindCategory("Timer Commands")) != INVALID_TOPMENUOBJECT)
|
||||||
{
|
{
|
||||||
OnAdminMenuCreated(topmenu);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
gH_AdminMenu.AddItem("sm_deleteall", AdminMenu_DeleteAll, gH_TimerCommands, "sm_deleteall", ADMFLAG_RCON);
|
gH_AdminMenu.AddItem("sm_deleteall", AdminMenu_DeleteAll, gH_TimerCommands, "sm_deleteall", ADMFLAG_RCON);
|
||||||
gH_AdminMenu.AddItem("sm_delete", AdminMenu_Delete, gH_TimerCommands, "sm_delete", ADMFLAG_RCON);
|
gH_AdminMenu.AddItem("sm_delete", AdminMenu_Delete, gH_TimerCommands, "sm_delete", ADMFLAG_RCON);
|
||||||
}
|
}
|
||||||
@ -308,10 +271,7 @@ public void OnLibraryAdded(const char[] name)
|
|||||||
}
|
}
|
||||||
else if (StrEqual(name, "adminmenu"))
|
else if (StrEqual(name, "adminmenu"))
|
||||||
{
|
{
|
||||||
if ((gH_AdminMenu = GetAdminTopMenu()) != null)
|
gB_AdminMenu = true;
|
||||||
{
|
|
||||||
OnAdminMenuReady(gH_AdminMenu);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -327,6 +287,7 @@ public void OnLibraryRemoved(const char[] name)
|
|||||||
}
|
}
|
||||||
else if (StrEqual(name, "adminmenu"))
|
else if (StrEqual(name, "adminmenu"))
|
||||||
{
|
{
|
||||||
|
gB_AdminMenu = false;
|
||||||
gH_AdminMenu = null;
|
gH_AdminMenu = null;
|
||||||
gH_TimerCommands = INVALID_TOPMENUOBJECT;
|
gH_TimerCommands = INVALID_TOPMENUOBJECT;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -183,6 +183,7 @@ float gF_StartAng[MAXPLAYERS+1][TRACKS_SIZE][3];
|
|||||||
// modules
|
// modules
|
||||||
bool gB_Eventqueuefix = false;
|
bool gB_Eventqueuefix = false;
|
||||||
bool gB_ReplayRecorder = false;
|
bool gB_ReplayRecorder = false;
|
||||||
|
bool gB_AdminMenu = false;
|
||||||
|
|
||||||
#define CZONE_VER 'b'
|
#define CZONE_VER 'b'
|
||||||
// custom zone stuff
|
// custom zone stuff
|
||||||
@ -364,12 +365,18 @@ public void OnPluginStart()
|
|||||||
|
|
||||||
gB_ReplayRecorder = LibraryExists("shavit-replay-recorder");
|
gB_ReplayRecorder = LibraryExists("shavit-replay-recorder");
|
||||||
gB_Eventqueuefix = LibraryExists("eventqueuefix");
|
gB_Eventqueuefix = LibraryExists("eventqueuefix");
|
||||||
|
gB_AdminMenu = LibraryExists("adminmenu");
|
||||||
|
|
||||||
if (gB_Late)
|
if (gB_Late)
|
||||||
{
|
{
|
||||||
Shavit_OnChatConfigLoaded();
|
Shavit_OnChatConfigLoaded();
|
||||||
Shavit_OnDatabaseLoaded();
|
Shavit_OnDatabaseLoaded();
|
||||||
|
|
||||||
|
if (gB_AdminMenu && (gH_AdminMenu = GetAdminTopMenu()) != null)
|
||||||
|
{
|
||||||
|
OnAdminMenuReady(gH_AdminMenu);
|
||||||
|
}
|
||||||
|
|
||||||
for(int i = 1; i <= MaxClients; i++)
|
for(int i = 1; i <= MaxClients; i++)
|
||||||
{
|
{
|
||||||
if (IsValidClient(i))
|
if (IsValidClient(i))
|
||||||
@ -464,23 +471,11 @@ void LoadDHooks()
|
|||||||
delete hGameData;
|
delete hGameData;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnAllPluginsLoaded()
|
|
||||||
{
|
|
||||||
// admin menu
|
|
||||||
if(LibraryExists("adminmenu") && ((gH_AdminMenu = GetAdminTopMenu()) != null))
|
|
||||||
{
|
|
||||||
OnAdminMenuReady(gH_AdminMenu);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnLibraryAdded(const char[] name)
|
public void OnLibraryAdded(const char[] name)
|
||||||
{
|
{
|
||||||
if (strcmp(name, "adminmenu") == 0)
|
if (strcmp(name, "adminmenu") == 0)
|
||||||
{
|
{
|
||||||
if ((gH_AdminMenu = GetAdminTopMenu()) != null)
|
gB_AdminMenu = true;
|
||||||
{
|
|
||||||
OnAdminMenuReady(gH_AdminMenu);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (StrEqual(name, "shavit-replay-recorder"))
|
else if (StrEqual(name, "shavit-replay-recorder"))
|
||||||
{
|
{
|
||||||
@ -496,6 +491,7 @@ public void OnLibraryRemoved(const char[] name)
|
|||||||
{
|
{
|
||||||
if (strcmp(name, "adminmenu") == 0)
|
if (strcmp(name, "adminmenu") == 0)
|
||||||
{
|
{
|
||||||
|
gB_AdminMenu = false;
|
||||||
gH_AdminMenu = null;
|
gH_AdminMenu = null;
|
||||||
gH_TimerCommands = INVALID_TOPMENUOBJECT;
|
gH_TimerCommands = INVALID_TOPMENUOBJECT;
|
||||||
}
|
}
|
||||||
@ -548,47 +544,12 @@ public void OnConVarChanged(ConVar convar, const char[] oldValue, const char[] n
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnAdminMenuCreated(Handle topmenu)
|
public void OnAdminMenuReady(Handle topmenu)
|
||||||
{
|
{
|
||||||
if(gH_AdminMenu == null || (topmenu == gH_AdminMenu && gH_TimerCommands != INVALID_TOPMENUOBJECT))
|
gH_AdminMenu = TopMenu.FromHandle(topmenu);
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((gH_TimerCommands = gH_AdminMenu.FindCategory("Timer Commands")) != INVALID_TOPMENUOBJECT)
|
if ((gH_TimerCommands = gH_AdminMenu.FindCategory("Timer Commands")) != INVALID_TOPMENUOBJECT)
|
||||||
{
|
{
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
gH_TimerCommands = gH_AdminMenu.AddCategory("Timer Commands", CategoryHandler, "shavit_admin", ADMFLAG_RCON);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void CategoryHandler(Handle topmenu, TopMenuAction action, TopMenuObject object_id, int param, char[] buffer, int maxlength)
|
|
||||||
{
|
|
||||||
if(action == TopMenuAction_DisplayTitle)
|
|
||||||
{
|
|
||||||
FormatEx(buffer, maxlength, "%T:", "TimerCommands", param);
|
|
||||||
}
|
|
||||||
else if(action == TopMenuAction_DisplayOption)
|
|
||||||
{
|
|
||||||
FormatEx(buffer, maxlength, "%T", "TimerCommands", param);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnAdminMenuReady(Handle topmenu)
|
|
||||||
{
|
|
||||||
if((gH_AdminMenu = GetAdminTopMenu()) != null)
|
|
||||||
{
|
|
||||||
if(gH_TimerCommands == INVALID_TOPMENUOBJECT)
|
|
||||||
{
|
|
||||||
gH_TimerCommands = gH_AdminMenu.FindCategory("Timer Commands");
|
|
||||||
|
|
||||||
if(gH_TimerCommands == INVALID_TOPMENUOBJECT)
|
|
||||||
{
|
|
||||||
OnAdminMenuCreated(topmenu);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
gH_AdminMenu.AddItem("sm_zones", AdminMenu_Zones, gH_TimerCommands, "sm_zones", ADMFLAG_RCON);
|
gH_AdminMenu.AddItem("sm_zones", AdminMenu_Zones, gH_TimerCommands, "sm_zones", ADMFLAG_RCON);
|
||||||
gH_AdminMenu.AddItem("sm_deletezone", AdminMenu_DeleteZone, gH_TimerCommands, "sm_deletezone", ADMFLAG_RCON);
|
gH_AdminMenu.AddItem("sm_deletezone", AdminMenu_DeleteZone, gH_TimerCommands, "sm_deletezone", ADMFLAG_RCON);
|
||||||
gH_AdminMenu.AddItem("sm_deleteallzones", AdminMenu_DeleteAllZones, gH_TimerCommands, "sm_deleteallzones", ADMFLAG_RCON);
|
gH_AdminMenu.AddItem("sm_deleteallzones", AdminMenu_DeleteAllZones, gH_TimerCommands, "sm_deleteallzones", ADMFLAG_RCON);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user