|
Стаж: 12 лет
Сообщений: 593
Благодарностей: 130
Полезность: < 0
|
Код #include <amxmodx> #include <amxmisc>
new keys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MEN U_KEY_8|MENU_KEY_9|MENU_KEY_0
#define PLUGIN "AmxModMenu_New" #define VERSION "1.0" #define AUTHOR "CaNiBaL | Remake by Sn1kO" new day[32] public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_menu("Menu_2", keys, "func_menu2") register_clcmd("amxmodmenu", "AmxMenu") } public client_authorized(id) { if(is_user_admin(id)) { new admin[32], pass[32], flags[32], x_access[32], x_days[32],bufferd[128],name[32], st[33] new iFiled = fopen("/addons/amxmodx/configs/users.ini","r"); get_user_name(id, name, 31) get_user_authid(id, st, 32) while(!feof(iFiled)) {
fgets(iFiled,bufferd,255) trim(bufferd) if(bufferd[0]=='"') { parse(bufferd, admin, 31, pass, 31, flags, 31, x_access, 31, x_days, 31) // Проверяем игрока через Name или Steam (проверку через IP сделаете сами если нужно) if(equal(admin, name) || equal(admin, st)) { day[id]=str_to_num(x_days) return PLUGIN_HANDLED } } } fclose(iFiled) } return PLUGIN_HANDLED }
public AmxMenu(id)
{ static menu[650], iLen iLen = 0 new player_name[32] get_user_name(id, player_name, 31) if(get_user_flags(id) & ADMIN_KICK) iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\yМеню администратора^n\r%s\w твоя админка закончится ^nчерез \r%d\w дней^n^n", player_name, day[id]) else iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\yAmx\wMod\rMenu ^n\dНет доступа!. ^n\d˙^n^n");
if(get_user_flags(id) & ADMIN_KICK) { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \wКикнуть \y^n") keys |= MENU_KEY_1 } else { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r1. \dКикнуть^n") keys &= ~MENU_KEY_1 } if(get_user_flags(id) & ADMIN_KICK) { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \rЗабанить \y^n") keys |= MENU_KEY_2 } else { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r2. \dЗабанить^n") keys &= ~MENU_KEY_2 } if(get_user_flags(id) & ADMIN_KICK) { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \wСтукнуть \y^n") keys |= MENU_KEY_3 } else { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r3. \dСтукнуть^n") keys &= ~MENU_KEY_3 } if(get_user_flags(id) & ADMIN_KICK) { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \yМеню команды игрока \y^n") keys |= MENU_KEY_4 } else { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r4. \dМеню команды игрока^n") keys &= ~MENU_KEY_4 } if(get_user_flags(id) & ADMIN_KICK) { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \wСмена карты \y^n") keys |= MENU_KEY_5 } else { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r5. \dСмена карты ^n") keys &= ~MENU_KEY_5 } if(get_user_flags(id) & ADMIN_KICK) { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \yГолосование за карту \y^n") keys |= MENU_KEY_6 } else { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r6. \dГолосование за карту^n") keys &= ~MENU_KEY_6 } if(get_user_flags(id) & ADMIN_KICK) { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \rЗаткнуть игрока\y^n") keys |= MENU_KEY_7 } else { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r7. \dЗаткнуть игрока^n") keys &= ~MENU_KEY_7 }
if(get_user_flags(id) & ADMIN_IMMUNITY) { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r8. \yПерейти в спектры \y^n") keys |= MENU_KEY_8 } else { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r8. \dПерейти в спектры \y^n") keys |= MENU_KEY_8 }
if(get_user_flags(id) & ADMIN_KICK) { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r9. \rСменить ник игроку\y^n") keys |= MENU_KEY_9 } else { iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\r9. \dСменить ник игроку\y^n") keys |= MENU_KEY_9 } iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\r0. \wЗакрыть^n") keys |= MENU_KEY_0 show_menu(id, keys, menu, -1, "Menu_2"); return PLUGIN_HANDLED } public func_menu2(id, key) { switch(key) { case 0: client_cmd(id, "amx_kickmenu") case 1: client_cmd(id, "amx_banmenu") case 2: client_cmd(id, "amx_slapmenu") case 3: client_cmd(id, "amx_teammenu") case 4: client_cmd(id, "amx_mapmenu") case 5: client_cmd(id, "amx_votemapmenu") case 6: client_cmd(id, "amx_gagmenu") case 7: client_cmd(id, "spec") case 8: client_cmd(id, "amx_nickmenu") } } Код L 03/25/2015 - 12:51:49: Start of error session. L 03/25/2015 - 12:51:49: Info (map "de_abaddon") (file "addons/amxmodx/logs/error_20150325.log") L 03/25/2015 - 12:51:49: [AMXX] Displaying debug trace (plugin "menufront_new.amxx") L 03/25/2015 - 12:51:49: [AMXX] Run time error 4: index out of bounds L 03/25/2015 - 12:51:49: [AMXX] [0] menufront_new.sma::client_authorized (line 41) L 03/25/2015 - 13:02:19: Start of error session. L 03/25/2015 - 13:02:19: Info (map "de_dust2") (file "addons/amxmodx/logs/error_20150325.log") L 03/25/2015 - 13:02:19: [AMXX] Displaying debug trace (plugin "menufront_new.amxx") L 03/25/2015 - 13:02:19: [AMXX] Run time error 4: index out of bounds L 03/25/2015 - 13:02:19: [AMXX] [0] menufront_new.sma::client_authorized (line 41) L 03/25/2015 - 13:31:16: Start of error session. L 03/25/2015 - 13:31:16: Info (map "de_dust2002") (file "addons/amxmodx/logs/error_20150325.log") L 03/25/2015 - 13:31:16: [AMXX] Displaying debug trace (plugin "menufront_new.amxx") L 03/25/2015 - 13:31:16: [AMXX] Run time error 4: index out of bounds L 03/25/2015 - 13:31:16: [AMXX] [0] menufront_new.sma::client_authorized (line 41) Плагин от куда вырезал часть кода (DaysExample) Код #include <amxmodx> #include <amxmisc>
#define PLUGIN "AdminMenuExample" #define VERSION "1.0" #define AUTHOR "SLIMSHADY (http://banan.ws)"
/* Плагины на заказ, быстро, качественно, дорого - ICQ 5897777 Также на сайте http://banan.ws можно скачать все созданные мною плагины. Добро пожаловать на мой неплохой CS 1.6 сервер connect 62.122.213.43:27270 */
new day[32]
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /daymenu","main_menu") register_clcmd("say /daychat","daychat") }
public client_authorized(id) { if(is_user_admin(id)) { new admin[32], pass[32], flags[32], x_access[32], x_days[32],bufferd[128],name[32], st[33] new iFiled = fopen("/addons/amxmodx/configs/users.ini","r"); get_user_name(id, name, 31) get_user_authid(id, st, 32) while(!feof(iFiled)) {
fgets(iFiled,bufferd,255) trim(bufferd) if(bufferd[0]=='"') { parse(bufferd, admin, 31, pass, 31, flags, 31, x_access, 31, x_days, 31) // Проверяем игрока через Name или Steam (проверку через IP сделаете сами если нужно) if(equal(admin, name) || equal(admin, st)) { day[id]=str_to_num(x_days) return PLUGIN_HANDLED } } } fclose(iFiled) } return PLUGIN_HANDLED }
public daychat(id) if(is_user_admin(id)) client_print(id, print_chat, "%d days left.", day[id])
public main_menu(id) { if(is_user_admin(id)) { // Формируем заголовок меню для админа new szArgs[256] formatex(szArgs, charsmax(szArgs), "AdminMenu: \r%d \wdays left.^n\yPlease visit \rhttp://banan.ws", day[id])
new i_Menu = menu_create(szArgs, "main_opt") menu_additem(i_Menu, "One", "1", 0) menu_additem(i_Menu, "Two", "2", 0) menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, i_Menu, 0) } return PLUGIN_HANDLED }
public main_opt(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new s_Data[6], s_Name[64], i_Access, i_Callback menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback) new i_Key = str_to_num(s_Data) switch(i_Key) { case 2: { client_print(id, print_chat, "Second option.") } case 1: { client_print(id, print_chat, "First option.") } } return PLUGIN_HANDLED }
Отредактировал: marik, - 25.3.2015, 15:43
|