description = "Ban Network",
new Handle:hTopMenu = INVALID_HANDLE;
new Handle:topmenu = INVALID_HANDLE;
if (LibraryExists("adminmenu") && (topmenu = GetAdminTopMenu()))
OnAdminMenuReady(topmenu);
public OnAdminMenuReady(Handle:topmenu)
new TopMenuObject:player_commands = FindTopMenuCategory(hTopMenu, "PlayerCommands");
AddToTopMenu(hTopMenu, "sm_mains", TopMenuObjectType:1, AdminMenu_Ban, player_commands, "sm_mains", ADMFLAG_KICK, "");
public AdminMenu_Ban(Handle:topmenu, TopMenuAction:action, TopMenuObject:object_id, param, String:buffer[], maxlength)
if (action == TopMenuAction:0)
Format(buffer, maxlength, "Бан игрока по IP ");
if (action == TopMenuAction:2)
new Handle:menu = CreateMenu(Select_Menu, MENU_ACTIONS_DEFAULT);
SetMenuTitle(menu, "Выберите Игрока:\n \n");
decl String:userid[16], String:name[32];
for (new i = 1; i <= MaxClients; i++)
if (IsClientInGame(i) && !IsFakeClient(i))
IntToString(GetClientUserId(i), userid, 15);
GetClientName(i, name, 32);
AddMenuItem(menu, userid, name, 0);
DisplayMenu(menu, client, 0);
public Select_Menu(Handle:menu, MenuAction:action, client, option)
if (action == MenuAction:16)
if (action != MenuAction:4)
decl String:userid[16], String:ip[20];
GetMenuItem(menu, option, userid, 15, _, _, 0);
new target = GetClientOfUserId(StringToInt(userid, 10));
GetClientIP(target, ip, 20, true);
if (ExplodeString(ip, ".", buf, 5, 20, false))
Format(format, 20, "%s.%s.%s.%s", buf[0], buf[1], buf[2], buf[3]);
ServerCommand("addip \"0\" %s", format);
ServerCommand("writeip");
PrintToChatAll("[SM] ADMIN: Игрок %N забанен навсегда.", target);
PrintToChat(client, "Игрок не найден или вышел");