Post by newandclueless on Jun 1, 2016 13:54:05 GMT
This tutorial is by zmd94. All credit goes to him! It will limit how many times an admin can open admin menu, it is 5 by default. Once it is opened they can use it as much as they want, but can only open it 5 times per map.
1) Open zombie_plague40.sma
2) Press ctrl + F and paste "public plugin_init()"
Add below code before public plugin_init() section:
so you will have something like this:
3) Now change the code below:
-------->
4) Compile and put .amxx file in your plugins folder
So if you need this, make sure to make a thread in requests board.
It is more easier if you want to limit all admin menu.
1) Open zombie_plague40.sma
2) Press ctrl + F and paste "public plugin_init()"
Add below code before public plugin_init() section:
new g_iAdMenuUsage[33]
#define ADMINMENUUSAGE_LIMIT 5 // Limit for how many times an admin can open admin menu per map
so you will have something like this:
new g_iAdMenuUsage[33]
#define ADMINMENUUSAGE_LIMIT 5 // Limit for how many times an admin can open admin menu per map
public plugin_init()
{
// Plugin disabled?
if (!g_pluginenabled) return;
3) Now change the code below:
// Game Menu
public menu_game(id, key)
{
switch (key)
{
case 0: // Buy Weapons
{
// Custom buy menus enabled?
if (get_pcvar_num(cvar_buycustom))
{
// Disable the remember selection setting
WPN_AUTO_ON = 0
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "BUY_ENABLED")
// Show menu if player hasn't yet bought anything
if (g_canbuy[id]) show_menu_buy1(id)
}
else
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "CMD_NOT")
}
case 1: // Extra Items
{
// Extra items enabled?
if (get_pcvar_num(cvar_extraitems))
{
// Check whether the player is able to buy anything
if (g_isalive[id])
show_menu_extras(id)
else
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "CMD_NOT")
}
else
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "CMD_NOT_EXTRAS")
}
case 2: // Zombie Classes
{
// Zombie classes enabled?
if (get_pcvar_num(cvar_zclasses))
show_menu_zclass(id)
else
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "CMD_NOT_ZCLASSES")
}
case 3: // Unstuck
{
// Check if player is stuck
if (g_isalive[id])
{
if (is_player_stuck(id))
{
// Move to an initial spawn
if (get_pcvar_num(cvar_randspawn))
do_random_spawn(id) // random spawn (including CSDM)
else
do_random_spawn(id, 1) // regular spawn
}
else
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "CMD_NOT_STUCK")
}
else
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "CMD_NOT")
}
case 4: // Help Menu
{
show_menu_info(id)
}
case 5: // Join Spectator
{
// Player alive?
if (g_isalive[id])
{
// Prevent abuse by non-admins if block suicide setting is enabled
if (get_pcvar_num(cvar_blocksuicide) && !(get_user_flags(id) & g_access_flag[ACCESS_ADMIN_MENU]))
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "CMD_NOT")
return PLUGIN_HANDLED;
}
// Check that we still have both humans and zombies to keep the round going
check_round(id)
// Kill him before he switches team
dllfunc(DLLFunc_ClientKill, id)
}
// Temporarily save player stats?
if (get_pcvar_num(cvar_statssave)) save_stats(id)
// Remove previous tasks
remove_task(id+TASK_TEAM)
remove_task(id+TASK_MODEL)
remove_task(id+TASK_FLASH)
remove_task(id+TASK_CHARGE)
remove_task(id+TASK_SPAWN)
remove_task(id+TASK_BLOOD)
remove_task(id+TASK_AURA)
remove_task(id+TASK_BURN)
// Then move him to the spectator team
fm_cs_set_user_team(id, FM_CS_TEAM_SPECTATOR)
fm_user_team_update(id)
}
case 8: // Admin Menu
{
// Check if player has the required access
if (get_user_flags(id) & g_access_flag[ACCESS_ADMIN_MENU])
show_menu_admin(id)
else
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "CMD_NOT_ACCESS")
}
}
return PLUGIN_HANDLED;
}
-------->
// Game Menu
public menu_game(id, key)
{
switch (key)
{
case 0: // Buy Weapons
{
// Custom buy menus enabled?
if (get_pcvar_num(cvar_buycustom))
{
// Disable the remember selection setting
WPN_AUTO_ON = 0
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "BUY_ENABLED")
// Show menu if player hasn't yet bought anything
if (g_canbuy[id]) show_menu_buy1(id)
}
else
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "CMD_NOT")
}
case 1: // Extra Items
{
// Extra items enabled?
if (get_pcvar_num(cvar_extraitems))
{
// Check whether the player is able to buy anything
if (g_isalive[id])
show_menu_extras(id)
else
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "CMD_NOT")
}
else
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "CMD_NOT_EXTRAS")
}
case 2: // Zombie Classes
{
// Zombie classes enabled?
if (get_pcvar_num(cvar_zclasses))
show_menu_zclass(id)
else
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "CMD_NOT_ZCLASSES")
}
case 3: // Unstuck
{
// Check if player is stuck
if (g_isalive[id])
{
if (is_player_stuck(id))
{
// Move to an initial spawn
if (get_pcvar_num(cvar_randspawn))
do_random_spawn(id) // random spawn (including CSDM)
else
do_random_spawn(id, 1) // regular spawn
}
else
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "CMD_NOT_STUCK")
}
else
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "CMD_NOT")
}
case 4: // Help Menu
{
show_menu_info(id)
}
case 5: // Join Spectator
{
// Player alive?
if (g_isalive[id])
{
// Prevent abuse by non-admins if block suicide setting is enabled
if (get_pcvar_num(cvar_blocksuicide) && !(get_user_flags(id) & g_access_flag[ACCESS_ADMIN_MENU]))
{
zp_colored_print(id, "^x04[ZP]^x01 %L", id, "CMD_NOT")
return PLUGIN_HANDLED;
}
// Check that we still have both humans and zombies to keep the round going
check_round(id)
// Kill him before he switches team
dllfunc(DLLFunc_ClientKill, id)
}
// Temporarily save player stats?
if (get_pcvar_num(cvar_statssave)) save_stats(id)
// Remove previous tasks
remove_task(id+TASK_TEAM)
remove_task(id+TASK_MODEL)
remove_task(id+TASK_FLASH)
remove_task(id+TASK_CHARGE)
remove_task(id+TASK_SPAWN)
remove_task(id+TASK_BLOOD)
remove_task(id+TASK_AURA)
remove_task(id+TASK_BURN)
// Then move him to the spectator team
fm_cs_set_user_team(id, FM_CS_TEAM_SPECTATOR)
fm_user_team_update(id)
}
case 8: // Admin Menu
{
// Check if player has the required access
if (get_user_flags(id) & g_access_flag[ACCESS_ADMIN_MENU])
{
if(g_iAdMenuUsage[id] >= ADMINMENUUSAGE_LIMIT)
{
zp_colored_print(id, "^x04[ZP]^x01 You have used up all your admin menu allowance for this map bro!")
zp_colored_print(id, "^x04[ZP]^x01 You can use admin menu %d times every map!", ADMINMENUUSAGE_LIMIT)
}
else
{
show_menu_admin(id)
g_iAdMenuUsage[id] ++
}
}
}
}
return PLUGIN_HANDLED;
}
4) Compile and put .amxx file in your plugins folder
Jun 1, 2016 9:02:48 GMT zmd94 said:
Yes, you can use the menu as many times as you want when you have opened it. If you want to limit the command in the admin menu, we have to add another codes.So if you need this, make sure to make a thread in requests board.