Extasy | Дата: Четверг, 07.01.2010, 15:29:08 | Сообщение # 1 |
Лейтенант
Группа: Пользователи
Сообщений: 61
Статус: Не в сети
| Проблема такова.. При выборе админа, если он в списке >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
Статус: Не в сети
| 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
Статус: Не в сети
| Ну я конечно да... Спасиб РоманоВ
|
|
| |