Implemented amb31 - plmenu default options (for ban menu and slap menu) are configurable in a config file.
Need to include this in the mod - dependent plmenus when they are reviewed later.
This commit is contained in:
parent
ed84900ab6
commit
cf36abf7e6
|
@ -46,6 +46,16 @@ amx_imessage "This server is using AMX Mod X\nVisit http://www.amxmodx.org" "000
|
||||||
// Default value: 180
|
// Default value: 180
|
||||||
amx_freq_imessage 180
|
amx_freq_imessage 180
|
||||||
|
|
||||||
|
// Ban times for the main ban menu (amx_banmenu)
|
||||||
|
// Use 0 for permanent ban.
|
||||||
|
// Default values: 0 5 10 15 30 45 60
|
||||||
|
amx_plmenu_bantimes 0 5 10 15 30 45 60
|
||||||
|
|
||||||
|
// Slap damage amounts for the main slap menu (amx_slapmenu)
|
||||||
|
// Slay is automatically inserted as the first option.
|
||||||
|
// Default values: 1 5
|
||||||
|
amx_plmenu_slapdmg 1 5
|
||||||
|
|
||||||
// Set in seconds how fast players can chat (chat-flood protection)
|
// Set in seconds how fast players can chat (chat-flood protection)
|
||||||
//
|
//
|
||||||
// Default value: 0.75
|
// Default value: 0.75
|
||||||
|
|
|
@ -58,6 +58,10 @@ new g_clcmdNum
|
||||||
new g_coloredMenus
|
new g_coloredMenus
|
||||||
new g_cstrike = 0
|
new g_cstrike = 0
|
||||||
|
|
||||||
|
new Array:g_bantimes;
|
||||||
|
new Array:g_slapsettings;
|
||||||
|
|
||||||
|
|
||||||
public plugin_natives()
|
public plugin_natives()
|
||||||
{
|
{
|
||||||
set_module_filter("module_filter")
|
set_module_filter("module_filter")
|
||||||
|
@ -83,6 +87,28 @@ public plugin_init()
|
||||||
register_menucmd(register_menuid("Team Menu"), 1023, "actionTeamMenu")
|
register_menucmd(register_menuid("Team Menu"), 1023, "actionTeamMenu")
|
||||||
register_menucmd(register_menuid("Client Cmds Menu"), 1023, "actionClcmdMenu")
|
register_menucmd(register_menuid("Client Cmds Menu"), 1023, "actionClcmdMenu")
|
||||||
|
|
||||||
|
|
||||||
|
g_bantimes = ArrayCreate();
|
||||||
|
// Load up the old default values
|
||||||
|
ArrayPushCell(g_bantimes, 0);
|
||||||
|
ArrayPushCell(g_bantimes, 5);
|
||||||
|
ArrayPushCell(g_bantimes, 10);
|
||||||
|
ArrayPushCell(g_bantimes, 15);
|
||||||
|
ArrayPushCell(g_bantimes, 30);
|
||||||
|
ArrayPushCell(g_bantimes, 45);
|
||||||
|
ArrayPushCell(g_bantimes, 60);
|
||||||
|
|
||||||
|
|
||||||
|
g_slapsettings = ArrayCreate();
|
||||||
|
// Old default values
|
||||||
|
ArrayPushCell(g_slapsettings, 0); // First option is ignored - it is slay
|
||||||
|
ArrayPushCell(g_slapsettings, 1);
|
||||||
|
ArrayPushCell(g_slapsettings, 5);
|
||||||
|
|
||||||
|
|
||||||
|
register_srvcmd("amx_plmenu_bantimes", "plmenu_setbantimes");
|
||||||
|
register_srvcmd("amx_plmenu_slapdmg", "plmenu_setslapdmg");
|
||||||
|
|
||||||
g_coloredMenus = colored_menus()
|
g_coloredMenus = colored_menus()
|
||||||
|
|
||||||
new clcmds_ini_file[64]
|
new clcmds_ini_file[64]
|
||||||
|
@ -93,7 +119,56 @@ public plugin_init()
|
||||||
if (module_exists("cstrike"))
|
if (module_exists("cstrike"))
|
||||||
g_cstrike = 1
|
g_cstrike = 1
|
||||||
}
|
}
|
||||||
|
public plmenu_setbantimes()
|
||||||
|
{
|
||||||
|
new buff[32];
|
||||||
|
new args = read_argc();
|
||||||
|
|
||||||
|
if (args <= 1)
|
||||||
|
{
|
||||||
|
server_print("usage: amx_plmenu_bantimes <time1> [time2] [time3] ...");
|
||||||
|
server_print(" use time of 0 for permanent.");
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ArrayClear(g_bantimes);
|
||||||
|
|
||||||
|
for (new i = 1; i < args; i++)
|
||||||
|
{
|
||||||
|
read_argv(i, buff, charsmax(buff));
|
||||||
|
|
||||||
|
ArrayPushCell(g_bantimes, str_to_num(buff));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
public plmenu_setslapdmg()
|
||||||
|
{
|
||||||
|
new buff[32];
|
||||||
|
new args = read_argc();
|
||||||
|
|
||||||
|
if (args <= 1)
|
||||||
|
{
|
||||||
|
server_print("usage: amx_plmenu_slapdmg <dmg1> [dmg2] [dmg3] ...");
|
||||||
|
server_print(" slay is automatically set for the first value.");
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ArrayClear(g_slapsettings);
|
||||||
|
|
||||||
|
ArrayPushCell(g_slapsettings, 0); // compensate for slay
|
||||||
|
|
||||||
|
for (new i = 1; i < args; i++)
|
||||||
|
{
|
||||||
|
read_argv(i, buff, charsmax(buff));
|
||||||
|
|
||||||
|
ArrayPushCell(g_slapsettings, str_to_num(buff));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
public module_filter(const module[])
|
public module_filter(const module[])
|
||||||
{
|
{
|
||||||
if (equali(module, "cstrike"))
|
if (equali(module, "cstrike"))
|
||||||
|
@ -121,18 +196,9 @@ public actionBanMenu(id, key)
|
||||||
/* BEGIN OF CHANGES BY MISTAGEE ADDED A FEW MORE OPTIONS */
|
/* BEGIN OF CHANGES BY MISTAGEE ADDED A FEW MORE OPTIONS */
|
||||||
|
|
||||||
++g_menuOption[id]
|
++g_menuOption[id]
|
||||||
g_menuOption[id] %= 7
|
g_menuOption[id] %= ArraySize(g_bantimes);
|
||||||
|
|
||||||
switch (g_menuOption[id])
|
g_menuSettings[id] = ArrayGetCell(g_bantimes, g_menuOption[id]);
|
||||||
{
|
|
||||||
case 0: g_menuSettings[id] = 0
|
|
||||||
case 1: g_menuSettings[id] = 5
|
|
||||||
case 2: g_menuSettings[id] = 10
|
|
||||||
case 3: g_menuSettings[id] = 15
|
|
||||||
case 4: g_menuSettings[id] = 30
|
|
||||||
case 5: g_menuSettings[id] = 45
|
|
||||||
case 6: g_menuSettings[id] = 60
|
|
||||||
}
|
|
||||||
|
|
||||||
displayBanMenu(id, g_menuPosition[id])
|
displayBanMenu(id, g_menuPosition[id])
|
||||||
}
|
}
|
||||||
|
@ -265,8 +331,17 @@ public cmdBanMenu(id, level, cid)
|
||||||
if (!cmd_access(id, level, cid, 1))
|
if (!cmd_access(id, level, cid, 1))
|
||||||
return PLUGIN_HANDLED
|
return PLUGIN_HANDLED
|
||||||
|
|
||||||
g_menuOption[id] = 1
|
g_menuOption[id] = 0
|
||||||
g_menuSettings[id] = 5
|
|
||||||
|
if (ArraySize(g_bantimes) > 0)
|
||||||
|
{
|
||||||
|
g_menuSettings[id] = ArrayGetCell(g_bantimes, g_menuOption[id]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// should never happen, but failsafe
|
||||||
|
g_menuSettings[id] = 0
|
||||||
|
}
|
||||||
displayBanMenu(id, g_menuPosition[id] = 0)
|
displayBanMenu(id, g_menuPosition[id] = 0)
|
||||||
|
|
||||||
return PLUGIN_HANDLED
|
return PLUGIN_HANDLED
|
||||||
|
@ -281,16 +356,12 @@ public actionSlapMenu(id, key)
|
||||||
case 7:
|
case 7:
|
||||||
{
|
{
|
||||||
++g_menuOption[id]
|
++g_menuOption[id]
|
||||||
g_menuOption[id] %= 4
|
|
||||||
|
|
||||||
switch (g_menuOption[id])
|
g_menuOption[id] %= ArraySize(g_slapsettings);
|
||||||
{
|
|
||||||
case 1: g_menuSettings[id] = 0
|
|
||||||
case 2: g_menuSettings[id] = 1
|
|
||||||
case 3: g_menuSettings[id] = 5
|
|
||||||
}
|
|
||||||
|
|
||||||
displaySlapMenu(id, g_menuPosition[id])
|
g_menuSettings[id] = ArrayGetCell(g_slapsettings, g_menuOption[id]);
|
||||||
|
|
||||||
|
displaySlapMenu(id, g_menuPosition[id]);
|
||||||
}
|
}
|
||||||
case 8: displaySlapMenu(id, ++g_menuPosition[id])
|
case 8: displaySlapMenu(id, ++g_menuPosition[id])
|
||||||
case 9: displaySlapMenu(id, --g_menuPosition[id])
|
case 9: displaySlapMenu(id, --g_menuPosition[id])
|
||||||
|
@ -421,7 +492,15 @@ public cmdSlapMenu(id, level, cid)
|
||||||
return PLUGIN_HANDLED
|
return PLUGIN_HANDLED
|
||||||
|
|
||||||
g_menuOption[id] = 0
|
g_menuOption[id] = 0
|
||||||
g_menuSettings[id] = 0
|
if (ArraySize(g_slapsettings) > 0)
|
||||||
|
{
|
||||||
|
g_menuSettings[id] = ArrayGetCell(g_slapsettings, g_menuOption[id]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// should never happen, but failsafe
|
||||||
|
g_menuSettings[id] = 0
|
||||||
|
}
|
||||||
|
|
||||||
displaySlapMenu(id, g_menuPosition[id] = 0)
|
displaySlapMenu(id, g_menuPosition[id] = 0)
|
||||||
|
|
||||||
|
@ -787,8 +866,6 @@ public cmdClcmdMenu(id, level, cid)
|
||||||
if (!cmd_access(id, level, cid, 1))
|
if (!cmd_access(id, level, cid, 1))
|
||||||
return PLUGIN_HANDLED
|
return PLUGIN_HANDLED
|
||||||
|
|
||||||
new flags = get_user_flags(id)
|
|
||||||
|
|
||||||
g_menuSelectNum[id] = 0
|
g_menuSelectNum[id] = 0
|
||||||
|
|
||||||
for (new a = 0; a < g_clcmdNum; ++a)
|
for (new a = 0; a < g_clcmdNum; ++a)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user