AMX MOD X
Четверг, 25.04.2024, 03:22:29



Приветствую Вас Гость | RSS
[ Главная ] [ Админ иммун в меню - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Админ иммун в меню
Админ иммун в меню
ExtasyДата: Четверг, 07.01.2010, 15:29:08 | Сообщение # 1
Лейтенант
Группа: Пользователи
Сообщений: 61
Репутация: 3
Статус: Не в сети
Проблема такова.. При выборе админа, если он в списке >1, не происходит выход из КС. А вот, если он под номером 1, то тогда выходит, не смотря на проверку на иммун и АйДи.

Code
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "QuitMenu"
#define VERSION "1.0"
#define AUTHOR ""
new g_QuitMenuPosition[33]
new g_menuPlayers[33][32]
new g_menuPlayersNum[33]
new g_coloredMenus
new keys = MENU_KEY_0|MENU_KEY_8
new menuBody[512]
new g_menurefresh[33]

public plugin_init() {
  register_plugin(PLUGIN, VERSION, AUTHOR)
  register_clcmd("amx_quitmenu", "cmdQuitMenu", ADMIN_BAN, "")
  register_menucmd(register_menuid("Quit Menu"), 1023, "actionQuitMenu")
  register_dictionary("admin_menu.txt")
}

public actionQuitMenu(id, key) {
  switch(key) {
   case 7: {
    ++g_menurefresh[id]
    displayQuitMenu(id, g_QuitMenuPosition[id])
   }
   case 8: displayQuitMenu(id, ++g_QuitMenuPosition[id])
   case 9: {
    --g_QuitMenuPosition[id]
    if (g_QuitMenuPosition[id] >= 0 )
     displayQuitMenu(id, g_QuitMenuPosition[id])
    else
     client_cmd(id, "amx_adminmenu")
   }
   default: {
    new player = g_menuPlayers[id][g_QuitMenuPosition[id] * 7 +key]
    if (!is_user_bot(player) || access(player, !ADMIN_IMMUNITY) || player != id)
     client_cmd(player, "quit")

    displayQuitMenu(id, g_QuitMenuPosition[id])
    return PLUGIN_HANDLED
   }
  }
  return PLUGIN_HANDLED
}

displayQuitMenu(id, pos) {
  if (pos<0)
   return

  // "a" - Don't return dead players  
  // "b" - Don't return alive players  
  // "c" - Skip bots  
  // "d" - Skip real players  
  // "e" - Match with passed team  
  // "f" - Match with part of name  
  // "g" - Ignore case sensitivity
  get_players(g_menuPlayers[id], g_menuPlayersNum[id], "c")

  new b = 0
  new i
  new name[32]
  new start = pos * 7

  if (start>=g_menuPlayersNum[id])
   start = pos = g_QuitMenuPosition[id] = 0

  new len = format(menuBody,511, g_coloredMenus ? "\r%L\R%d/%d^n\w^n" : "%L %d/%d^n^n", id , "QUIT_MENU", pos + 1, (g_menuPlayersNum[id] / 7 + ((g_menuPlayersNum[id] % 7) ? 1 : 0)))
  new end = start + 7

  if(end>g_menuPlayersNum[id])
   end=g_menuPlayersNum[id]

  for (new a = start; a< end; ++a) {
   i = g_menuPlayers[id][a]
   get_user_name(i, name, 31)

   if (is_user_bot(i) || access(i, ADMIN_IMMUNITY) || i == id) {
    ++b

    //if(g_coloredMenus)
     len+=format(menuBody[len], 511-len, "\d%d. %s^n\w", b , name)
    //else
     //len += format(menuBody[len], 511-len, "#. %s^n", name)

   } else {
    keys |= (1<<b)

    if (is_user_admin(i))
     len += format(menuBody[len], 511-len, /*g_coloredMenus ? "%d. %s \r*^n" :*/ "\w%d. %s *^n", ++b, name)
    else
     len += format(menuBody[len], 511-len, "\w%d. %s^n", ++b, name)

   }

  }
  if(++g_menurefresh[id])
   len += format(menuBody[len], 511-len, "^n\w8. \g%L^n", id, "REFRESH")
  if(end!=g_menuPlayersNum[id]) {
   format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
   keys |= MENU_KEY_9
  }
  else
   format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")
  show_menu(id,keys,menuBody,-1,"Quit Menu")
}

public cmdQuitMenu(id, level, cid) {
  if(!cmd_access(id,level,cid,1))
   return PLUGIN_HANDLED
  displayQuitMenu(id, g_QuitMenuPosition[id] = 0)

  return PLUGIN_HANDLED
}

p.s. За основу взято меню, сделанное FreeKILLом, думаю он не сильно ругаться будет.. Если копирайты надо поставить, труда это не составит.

 
PomanoBДата: Четверг, 07.01.2010, 15:48:51 | Сообщение # 2
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Репутация: 70
Статус: Не в сети
if (!is_user_bot(player) || access(player, !ADMIN_IMMUNITY) || player != id)
=>
if (!is_user_bot(player) && !access(player, ADMIN_IMMUNITY) && player != id)


http://romanov4400.mybrute.com
 
ExtasyДата: Четверг, 07.01.2010, 16:07:22 | Сообщение # 3
Лейтенант
Группа: Пользователи
Сообщений: 61
Репутация: 3
Статус: Не в сети
lol Ну я конечно да... Спасиб РоманоВ lol
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Админ иммун в меню
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024