[WIP] Voice Utils

addons [WIP] Voice Utils 2.2.0b

Нет прав для скачивания
Автор
Совместимость с
Amx Mod X 1.9.0, Amx Mod X 1.10.0 dev
Требования
Благодарности
Необязательный модуль для Revoice Plus, предоставляющий его API для разработчиков плагинов AMXX.

Внимание! Модуль находится в стадии публичного тестирования. Обо всех проблемах с использованием API просьба сообщать в тему, или создавать отдельную тему в соответствующем разделе.
Если у вас есть опыт использования GitHub, можно репортить сразу туда: Issues · Garey27/voice_utils (github.com)

Внимание! Текущее API подразумевает совместимость с VTC API, так что если вы хотите перейти с VTC на Revoice Plus, вам не понадобится полностью переписывать плагины.

Простой пример использования API:
Код:
#include <amxmodx>
#include <amxmisc>
#include <voiceutils>

#pragma semicolon 1

public plugin_init()
{
    register_plugin("VoiceUtils: Mute", "1.0.0", "Nordic Warrior");

    register_clcmd("say /mute", "cmdOpenMuteMenu", ADMIN_USER);
    register_clcmd("say_team /mute", "cmdOpenMuteMenu", ADMIN_USER);
}

public cmdOpenMuteMenu(id)
{
    static iPlayers[MAX_PLAYERS], iPlayersNum, iPlayer, szPlayer[3];
    get_players_ex(iPlayers, iPlayersNum, GetPlayers_ExcludeBots | GetPlayers_ExcludeHLTV);

    if(iPlayersNum == 1)
    {
        client_print_color(id, print_team_default, "^4[MUTE] ^1Вы ^1единственный ^1игрок на сервере.");
        return PLUGIN_HANDLED;
    }

    new iMenu = menu_create("Кого заглушить?", "MuteMenu_handler");

    new iMenuCallback = menu_makecallback("MuteMenu_callback");

    for(new i; i < iPlayersNum; i++)
    {
        iPlayer = iPlayers[i];
   
        if(iPlayer == id)
            continue;

        num_to_str(iPlayer, szPlayer, charsmax(szPlayer));

        menu_additem(iMenu, fmt("%n", iPlayer), szPlayer, .callback = iMenuCallback);
    }

    menu_setprop(iMenu, MPROP_BACKNAME, "Назад");
    menu_setprop(iMenu, MPROP_NEXTNAME, "Далее");
    menu_setprop(iMenu, MPROP_EXITNAME, "Выход");

    menu_display(id, iMenu);
    return PLUGIN_HANDLED;
}

public MuteMenu_handler(id, iMenu, iItem)
{
    if(iItem == MENU_EXIT)
    {
        menu_destroy(iMenu);
        return;
    }

    static szPlayer[3];
    menu_item_getinfo(iMenu, iItem, .info = szPlayer, .infolen = charsmax(szPlayer));

    new iPlayer = str_to_num(szPlayer);

    if(VU_IsClientMuted(iPlayer, id))
    {
        VU_UnmuteClient(iPlayer, id);

        client_print_color(0, print_team_default, "^4[MUTE] ^1Игрок ^4%n ^3снова слышит ^4%n.", id, iPlayer);
    }
    else
    {
        VU_MuteClient(iPlayer, id);

        client_print_color(0, print_team_default, "^4[MUTE] ^1Игрок ^4%n ^3больше не слышит ^4%n.", id, iPlayer);
    }

    menu_destroy(iMenu);
    cmdOpenMuteMenu(id);
}

public MuteMenu_callback(id, iMenu, iItem)
{
    static szPlayer[3];
    menu_item_getinfo(iMenu, iItem, .info = szPlayer, .infolen = charsmax(szPlayer));

    new iPlayer = str_to_num(szPlayer);

    if(VU_IsClientMuted(iPlayer, id))
        menu_item_setname(iMenu, iItem, fmt("\d%n \r[ + ]", iPlayer));
}
Автор
Nordic Warrior
Скачиваний
173
Просмотры
5K
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя Nordic Warrior

Последние обновления

  1. Обновлено до версии 2.2.0b

    Версия 1.0.8: (builder): Доработка CI конфигурации CMake; (builder): Доработка конфигурации...
  2. Обновлено до версии 1.0.7

    Исправлены нативы для работы с мутами.
Сверху Снизу