Иконка ресурса

amxx reapi [ACS] Vote 1.2.6.5

Нет прав для скачивания
Установка
Распаковать согласно вложенной структуре, скомпилировать плагин и подключить как можно выше в plugins.ini.

Инструкция: Локальное компилирование плагинов

Для владельцев AMXX 1.9: обновите компилятор

После первого запуска плагина автоматически создастся конфигурационный файл ./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.
API
Код:
// 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);
Сверху Снизу