From f3e7bf4a1633eb8941c75e71a9f0078bf26990ce Mon Sep 17 00:00:00 2001 From: Matt Woodrow Date: Mon, 22 Oct 2007 02:05:51 +0000 Subject: [PATCH] Added alive checks before adding certain player lists to the admin menu --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401632 --- plugins/adminmenu.sp | 9 +++++++-- plugins/basebans/ban.sp | 2 +- plugins/basecomm/gag.sp | 2 +- plugins/basecommands/kick.sp | 2 +- plugins/basecommands/who.sp | 2 +- plugins/basefuncommands/burn.sp | 2 +- plugins/basefuncommands/slap.sp | 2 +- plugins/basefuncommands/slay.sp | 2 +- plugins/basefunvotes/voteburn.sp | 2 +- plugins/basefunvotes/voteslay.sp | 2 +- plugins/basevotes/voteban.sp | 2 +- plugins/basevotes/votekick.sp | 2 +- plugins/include/adminmenu.inc | 3 ++- 13 files changed, 20 insertions(+), 14 deletions(-) diff --git a/plugins/adminmenu.sp b/plugins/adminmenu.sp index 684ffee3..7d5983b2 100644 --- a/plugins/adminmenu.sp +++ b/plugins/adminmenu.sp @@ -171,7 +171,7 @@ public __GetAdminTopMenu(Handle:plugin, numParams) public __AddTargetsToMenu(Handle:plugin, numParams) { - return UTIL_AddTargetsToMenu(GetNativeCell(1), GetNativeCell(2), GetNativeCell(3)); + return UTIL_AddTargetsToMenu(GetNativeCell(1), GetNativeCell(2), GetNativeCell(3), GetNativeCell(4)); } public Action:Command_DisplayMenu(client, args) @@ -187,7 +187,7 @@ public Action:Command_DisplayMenu(client, args) return Plugin_Handled; } -stock UTIL_AddTargetsToMenu(Handle:menu, source_client, bool:in_game_only) +stock UTIL_AddTargetsToMenu(Handle:menu, source_client, bool:in_game_only, bool:alive_only) { new max_clients = GetMaxClients(); decl String:user_id[12]; @@ -208,6 +208,11 @@ stock UTIL_AddTargetsToMenu(Handle:menu, source_client, bool:in_game_only) continue; } + if (alive_only && !IsPlayerAlive(i)) + { + continue; + } + if (source_client && !CanUserTarget(source_client, i)) { continue; diff --git a/plugins/basebans/ban.sp b/plugins/basebans/ban.sp index a1978dee..6080fa91 100644 --- a/plugins/basebans/ban.sp +++ b/plugins/basebans/ban.sp @@ -40,7 +40,7 @@ DisplayBanTargetMenu(client) SetMenuTitle(menu, title); SetMenuExitBackButton(menu, true); - AddTargetsToMenu(menu, client, false); + AddTargetsToMenu(menu, client, false, false); DisplayMenu(menu, client, MENU_TIME_FOREVER); } diff --git a/plugins/basecomm/gag.sp b/plugins/basecomm/gag.sp index 1523bed8..f33101df 100644 --- a/plugins/basecomm/gag.sp +++ b/plugins/basecomm/gag.sp @@ -59,7 +59,7 @@ DisplayGagPlayerMenu(client) SetMenuTitle(menu, title); SetMenuExitBackButton(menu, true); - AddTargetsToMenu(menu, client, false); + AddTargetsToMenu(menu, client, false, false); DisplayMenu(menu, client, MENU_TIME_FOREVER); } diff --git a/plugins/basecommands/kick.sp b/plugins/basecommands/kick.sp index 2c97002e..ca1cd084 100644 --- a/plugins/basecommands/kick.sp +++ b/plugins/basecommands/kick.sp @@ -22,7 +22,7 @@ DisplayKickMenu(client) SetMenuTitle(menu, title); SetMenuExitBackButton(menu, true); - AddTargetsToMenu(menu, client, false); + AddTargetsToMenu(menu, client, false, false); DisplayMenu(menu, client, MENU_TIME_FOREVER); } diff --git a/plugins/basecommands/who.sp b/plugins/basecommands/who.sp index 36c8047e..fb6cf7d0 100644 --- a/plugins/basecommands/who.sp +++ b/plugins/basecommands/who.sp @@ -57,7 +57,7 @@ DisplayWhoMenu(client) SetMenuTitle(menu, title); SetMenuExitBackButton(menu, true); - AddTargetsToMenu(menu, client, false); + AddTargetsToMenu(menu, client, false, false); DisplayMenu(menu, client, MENU_TIME_FOREVER); } diff --git a/plugins/basefuncommands/burn.sp b/plugins/basefuncommands/burn.sp index 8f5c07ad..4c2fcc75 100644 --- a/plugins/basefuncommands/burn.sp +++ b/plugins/basefuncommands/burn.sp @@ -13,7 +13,7 @@ DisplayBurnMenu(client) SetMenuTitle(menu, title); SetMenuExitBackButton(menu, true); - AddTargetsToMenu(menu, client, false); + AddTargetsToMenu(menu, client, false, true); DisplayMenu(menu, client, MENU_TIME_FOREVER); } diff --git a/plugins/basefuncommands/slap.sp b/plugins/basefuncommands/slap.sp index b92c3d74..bc024f86 100644 --- a/plugins/basefuncommands/slap.sp +++ b/plugins/basefuncommands/slap.sp @@ -33,7 +33,7 @@ DisplaySlapTargetMenu(client) SetMenuTitle(menu, title); SetMenuExitBackButton(menu, true); - AddTargetsToMenu(menu, client, false); + AddTargetsToMenu(menu, client, false, true); DisplayMenu(menu, client, MENU_TIME_FOREVER); } diff --git a/plugins/basefuncommands/slay.sp b/plugins/basefuncommands/slay.sp index 736593d6..9e9def91 100644 --- a/plugins/basefuncommands/slay.sp +++ b/plugins/basefuncommands/slay.sp @@ -14,7 +14,7 @@ DisplaySlayMenu(client) SetMenuTitle(menu, title); SetMenuExitBackButton(menu, true); - AddTargetsToMenu(menu, client, false); + AddTargetsToMenu(menu, client, false, true); DisplayMenu(menu, client, MENU_TIME_FOREVER); } diff --git a/plugins/basefunvotes/voteburn.sp b/plugins/basefunvotes/voteburn.sp index 8521e2da..2fbc66a0 100644 --- a/plugins/basefunvotes/voteburn.sp +++ b/plugins/basefunvotes/voteburn.sp @@ -31,7 +31,7 @@ DisplayBurnTargetMenu(client) SetMenuTitle(menu, title); SetMenuExitBackButton(menu, true); - AddTargetsToMenu(menu, client, false); + AddTargetsToMenu(menu, client, false, true); DisplayMenu(menu, client, MENU_TIME_FOREVER); } diff --git a/plugins/basefunvotes/voteslay.sp b/plugins/basefunvotes/voteslay.sp index f1a5aed2..94e517da 100644 --- a/plugins/basefunvotes/voteslay.sp +++ b/plugins/basefunvotes/voteslay.sp @@ -32,7 +32,7 @@ DisplaySlayTargetMenu(client) SetMenuTitle(menu, title); SetMenuExitBackButton(menu, true); - AddTargetsToMenu(menu, client, false); + AddTargetsToMenu(menu, client, false, true); DisplayMenu(menu, client, MENU_TIME_FOREVER); } diff --git a/plugins/basevotes/voteban.sp b/plugins/basevotes/voteban.sp index 33a45db4..30918723 100644 --- a/plugins/basevotes/voteban.sp +++ b/plugins/basevotes/voteban.sp @@ -30,7 +30,7 @@ DisplayBanTargetMenu(client) SetMenuTitle(menu, title); SetMenuExitBackButton(menu, true); - AddTargetsToMenu(menu, client, false); + AddTargetsToMenu(menu, client, false, false); DisplayMenu(menu, client, MENU_TIME_FOREVER); } diff --git a/plugins/basevotes/votekick.sp b/plugins/basevotes/votekick.sp index c6943069..83f6594f 100644 --- a/plugins/basevotes/votekick.sp +++ b/plugins/basevotes/votekick.sp @@ -29,7 +29,7 @@ DisplayKickTargetMenu(client) SetMenuTitle(menu, title); SetMenuExitBackButton(menu, true); - AddTargetsToMenu(menu, client, false); + AddTargetsToMenu(menu, client, false, false); DisplayMenu(menu, client, MENU_TIME_FOREVER); } diff --git a/plugins/include/adminmenu.inc b/plugins/include/adminmenu.inc index bbb0500f..619165e5 100644 --- a/plugins/include/adminmenu.inc +++ b/plugins/include/adminmenu.inc @@ -91,9 +91,10 @@ native Handle:GetAdminTopMenu(); * @param menu Menu Handle. * @param source_client Source client, or 0 to ignore immunity. * @param in_game_only True to only select in-game players. + * @param alive_only True to only select alive players. * @return Number of clients added. */ -native AddTargetsToMenu(Handle:menu, source_client, bool:in_game_only=true); +native AddTargetsToMenu(Handle:menu, source_client, bool:in_game_only=true, bool:alive_only=false); /** * Re-displays the admin menu to a client after selecting an item.