plugins.ini
../configs/plugins/acs_vote.cfg
. В нем необходимо задать флаги доступа acs_vote_access_flags
и acs_vote_admin_flags
.acs_vote "Рефреш РУЛЕZZZ?" "Да@Конечно@Нет, я хочу бан!" #
"15 3 0.70 0.50 3 1 7 4"
, где:15
- время голосования3
- время задержки автозакрытия меню голосования0.70
- минимальная доля голосов игроков для успешного голосования0.50
- минимальная доля участников для успешного голосования3
- время задержки перед следующим этапом голосования1
- режим отображения результатов: 0 - Не показывать, 1 - После выбора, 2 - Показывать всегда, 3 - Показывать в конце голосования7
- режим выделения (биты): 1 - Скрыть номера невыбранных позиций, 2 - Скрыть номер выбранной позиции, 4 - Показывать результат в [ % ]4
- режим голосования (биты): 1 - Выбор обязателен (MEXIT_NEVER), 2 - Останавливать игроков и время, 4 - Скрывать выбор игроков, 8 - Затемнять экран, 16 - Показывать HUD-таймер, 32 - Блокировать "мультивыбор"1 - Выбор обязателен (MEXIT_NEVER)
может приводить к ошибкам в других плагинах, которые будут пытаться отображать свое меню, получая ошибку:Plugin called menu_display when item=MENU_EXIT
stock acs_close_user_menu(const id) {
menu_cancel(id);
show_menu(id, 0, "^n", 1);
}
stock bool:acs_can_show_menu(const id) {
static bool:b_result, i_menu_old, i_menu_new, i_menu_page;
if (!(b_result = !player_menu_info(id, i_menu_old, i_menu_new, i_menu_page))) {
acs_close_user_menu(id);
b_result = !player_menu_info(id, i_menu_old, i_menu_new, i_menu_page);
}
return b_result;
}
// =================================================
// В КОДЕ ДРУГОГО ПЛАГИНА ПЕРЕД ВЫЗОВОМ menu_display
// =================================================
if (acs_can_show_menu(id))
menu_display(id, h_menu);
acs_vote.txt
.// FORWARDS
forward acs_vote_menu_name(const id, const menu_type, const flags, const params[], const menu_name[], const vote_name[], name[ACS_MAX_BUFFER_SIZE]);
forward acs_vote_menu_item_selected(const id, const menu_type, const item, a_option[ACS_VOTE_OPTIONS]);
forward acs_vote_menu_rotator(const id, const menu_type, const flags, const rotator, a_rotator[ACS_VOTE_ROTATORS]);
forward acs_vote_menu_item_selected(const id, const menu_type, const item, a_option[ACS_VOTE_OPTIONS]);
forward acs_vote_menu_stats(const menu_type, a_result[ACS_VOTE_RESULT]);
forward acs_vote_menu_end(const menu_type, bool:b_vote_ratio, bool:b_players_ratio, Float:f_vote_ratio, Float:f_players_ratio, a_params[ACS_VOTE_PARAMS]);
forward acs_vote_menu_cmd(const id, const menu, const item, const item_name[], a_params[ACS_VOTE_PARAMS]);
forward acs_vote_menu_open(const id, const player, const menu_type, const flags);
forward acs_vote_menu_exit(const id, const menu_type);
//NATIVES
native bool:acs_vote_init(const a_vote[ACS_VOTE_DATA]);
native acs_vote_clear(const bool:clear_options, const task_id);
native acs_vote_options_clear();
native acs_vote_rotators_clear();
native acs_vote_option_add(const a_option[ACS_VOTE_OPTIONS]);
native acs_vote_rotator_add(const a_option[ACS_VOTE_ROTATORS]);
native acs_vote_get_rotator_index(const rotator, const id);
native acs_vote_start(const id, const menu_type, const flags);
native acs_vote_end(const Float:delay, const task_id);
native bool:acs_vote_is_processing(const menu_type);