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

addons [WIP] Voice Utils 1.0.7

Автор
Garey
Вимоги
Сумісність з
Amx Mod X 1.9.0, Amx Mod X 1.10.0 dev
Подяки
s1lent
PRoSToTeMa
Pokemoshka
Nordic Warrior
Denzer
Модуль для Revoice Plus, що надає його API для розробників плагінів.

Увага! Модуль знаходиться в стадії публічного бета-тестування, так що проблеми не виключені. Про всі проблеми прохання повідомляти в тему, або створювати окрему тему у відповідному розділі.
Якщо у вас є досвід використання GitHub, можна репортувати відразу туди: Issues · Garey27/voice_utils (github.com)

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

C++:
#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));
}
Автор
Cyxarik
Завантаження
14
Перегляди
65
Додано
Останнє оновлення
Оцінка
0.00 зірок 0 оцінок

Більше ресурсів від Cyxarik

Угорі