/* Plugin generated by AMXX-Studio */ #include #include #include #define PLUGIN "tolik" #define VERSION "1.0" #define AUTHOR "kiriman" #define TOLIK "tolik_ebolik" #define MAX_players 32 #define MAX_menudata 1024 #include new ga_PlayerName[MAX_players][32] new ga_PlayerID[MAX_players] new gi_TotalPlayers new i new gi_MenuPosition new ga_MenuData[MAX_menudata] new gi_Sellection new idiot = -1 new lol public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_cvar("tolik", "") register_cvar("name", "") register_concmd("tolik_k", "menu_tolik", ADMIN_RCON, "") register_concmd("tolik_unban", "noTolik", _, "") // Чтоб разбанить себя) register_menucmd(register_menuid("ChoosePlayer"), 1023, "ChooseMenu") add_menu() } // Добавляем в список amxmodmenu наш пункт public add_menu() { AddMenuItem("Толик ))", "tolik_k", ADMIN_RCON, PLUGIN) } // Главное меню public menu_tolik(id) { new i_Menu = menu_create("\rНазначить Толиком!", "menu_handler") menu_additem(i_Menu, "\wВыбрать игрока", "1", 0) menu_additem(i_Menu, "\wРазблокировать", "2", 0) menu_setprop(i_Menu, MPROP_EXIT, MEXIT_ALL) menu_display(id, i_Menu, 0) } public menu_handler(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 1: { player_menu(id) // Выбираем игрока } case 2: { noTolik(id) // Возвращаем ник } } menu_destroy(menu) return PLUGIN_CONTINUE } // Проверка зашедшего игрока, не является ли он Толиком public client_putinserver(id) { new player_authid[37] get_user_authid(id, player_authid, 36) new steam_id[64] get_cvar_string("tolik", steam_id, 63) if(equal(player_authid, steam_id)) { set_user_info(id, "name", TOLIK) idiot = id } return PLUGIN_CONTINUE } // Разблокировка ника public noTolik(id) { lol = idiot // Во избежание странных багов idiot = -1 set_cvar_string("tolik", "") if(is_user_connected(lol)) { new name[64] get_cvar_string("name", name, 63) set_user_info(lol, "name", name) ColorChat(0, RED, "[TOLIK] ^x04%s^x03, твой ник разблокирован!", name) } set_cvar_string("name", "") } // Запрет смены ника public client_infochanged(id) { if(id == idiot) { set_user_info(id, "name", TOLIK) } return PLUGIN_CONTINUE } // При дисконнекте Толика, необходимо айди вернуть на место public client_disconnect(id){ if(id == idiot) idiot = -1 return PLUGIN_CONTINUE } // Меню выбора игрока public player_menu(id) { if(is_user_admin(id)) { get_players(ga_PlayerID, gi_TotalPlayers) for(i = 0; i < gi_TotalPlayers; i++) { get_user_name(ga_PlayerID[i], ga_PlayerName[i], 31) } gi_MenuPosition = 0 ShowPlayerMenu(id) } return 0 } public ShowPlayerMenu(id) { new arrayloc = 0 new keys = (1 << 9) arrayloc = format(ga_MenuData, (MAX_menudata - 1), "Укажи игрока:^n") for(i = 0; i < 8; i++) if( gi_TotalPlayers > (gi_MenuPosition + i)) { arrayloc += format(ga_MenuData[arrayloc], (MAX_menudata - 1 - arrayloc), "\y%d. \w%s^n", i + 1, ga_PlayerName[gi_MenuPosition+i]) keys |= (1 << i) } if( gi_TotalPlayers > (gi_MenuPosition + 8)) { arrayloc += format(ga_MenuData[arrayloc], (MAX_menudata - 1 - arrayloc), "^n\y9. \r[\wДалее\r]") keys |= (1 << 8) } arrayloc += format(ga_MenuData[arrayloc], (MAX_menudata - 1 - arrayloc), "^n\y0. \r[\wВыход\r]") show_menu(id, keys, ga_MenuData, 20, "ChoosePlayer") return PLUGIN_HANDLED } public ChooseMenu(id, key) { switch(key) { case 8: { gi_MenuPosition = gi_MenuPosition + 8 ShowPlayerMenu(id) } case 9: { if(gi_MenuPosition >= 8) { gi_MenuPosition = gi_MenuPosition - 8 ShowPlayerMenu(id) } else return 0 } default: { gi_Sellection = gi_MenuPosition + key // Сделать толиком! noTolik(id) // Разблокировать старого толика new holdname[50] holdname = ga_PlayerName[gi_Sellection] // Текущее имя new id_k = ga_PlayerID[gi_Sellection] // Новый айди толика new player_authid[37] get_user_authid(id_k, player_authid, 36) set_cvar_string("tolik", player_authid) set_cvar_string("name", holdname) client_putinserver(id_k) ColorChat(0, RED, "[TOLIK] ^x04%s ^x03теперь Толик!", holdname) } } return PLUGIN_HANDLED }