• Пожалуйста, создайте название темы отражающее ее смысл
  • Для ускорения решения Вашего вопроса заполните обязательные поля и подробно опишите возникшую проблему

Помощь CMS VoiceChat Addon под стату скальпеля

AkycTuk

Участник
Сообщения
74
Реакции
19
Баллы
8
Здравствуйте,
У меня есть переписанный плагин "CMS VoiceChat Addon", но под статистику скальпеля, идея такая, что не набрав определенное кол-во фрагов микрофон и чат работать не будут на сервере, но если есть флаг t, то блокировки нет. Когда игрок набирает 10 фрагов, микрофон и чат становятся доступны.

Баг в том, что микро блочит всем, но при наборе нужного числа фрагов, блок не снимается. Работает только имунитет по флагу. Еще все игроки кто заходят на сервер автоматически получают мут и гаг на сайт в мутлист. Плагин переписывал один проверенный скриптер, но после НГ пропал с тг и не отзывается, возможно какие-то личные проблемы в данный момент.
 
Исходный код
C++:
/*
* Оригинальный код был написан zhorzh78 (https://cs-games.club/index.php?threads/gamecms-gagmanager.8/post-3274)
* Мелкие доработки от ApXuTekToR
*/
#include <amxmodx>
#include <gamecms5>
#include <csstats_mysql>

#define    GetBit(%1,%2)    ((%1) & (1 << (%2 & 31)))
#define    SetBit(%1,%2)    ((%1) |= (1 << (%2 & 31)))
#define    ResetBit(%1,%2)  ((%1) &= ~(1 << (%2 & 31)))

new const szPluginInfo[][] = {"CMS VoiceChat Addon", "1.0.1 Beta", "GameCMS"};

new g_bitBlocked;
enum cvars {
    VOICE_CHAT_VALUE,
    VOICE_CHAT_IMMUNITY[16]
}
new Cvar[cvars];

public plugin_init() {
    register_plugin(szPluginInfo[0], szPluginInfo[1], szPluginInfo[2]);
    register_dictionary("gamecms_gagmanager.txt");
    register_cvar("cms_gag_voicechat_value",    "20"    );
    register_cvar("cms_gag_voicechat_immunity",    "n"    );
    register_event("DeathMsg", "OnMessageDeath", "a", "1>0");
}

public plugin_cfg() {
    new cfgFilePath[PLATFORM_MAX_PATH];
    new const fileName[64] = "/gamecms/gamecms_gagmanager.cfg";
    get_localinfo("amxx_configsdir", cfgFilePath, charsmax(cfgFilePath));
    add(cfgFilePath, charsmax(cfgFilePath), fileName);
    if(file_exists(cfgFilePath)) {
        server_cmd("exec %s", cfgFilePath);
        server_exec();
        InitCvars();
    } else {
        server_print("[%s] File '%s' not found. Plugin Stoped", szPluginInfo[0], cfgFilePath);
        set_fail_state("[%s] File '%s' not found. Plugin Stoped", szPluginInfo[0], cfgFilePath);
    }
}

public client_putinserver(iClient) {
    if(!Cvar[VOICE_CHAT_VALUE])
        return;

    if(checkAccess(iClient, Cvar[VOICE_CHAT_IMMUNITY]))
        return;

    new stats[22];
    csstats_get_user_stats(iClient, stats);

    if(stats[FRAGS] < Cvar[VOICE_CHAT_VALUE]) {
        if(cmsgag_add_user_block(iClient, BLOCK_FUNC_ADD, BLOCK_STATUS_ALL, fmt("Необходимо %d фрагов", Cvar[VOICE_CHAT_VALUE]), TIME_MAP_END_EXPIRING, false))
            SetBit(g_bitBlocked, iClient);
    }
}

public OnMessageDeath()
{
    new killer = read_data(1);

    if(!Cvar[VOICE_CHAT_VALUE] || !is_user_connected(killer))
        return;

    if(checkAccess(killer, Cvar[VOICE_CHAT_IMMUNITY]))
        return;

    if(!(GetBit(g_bitBlocked, killer)))
        return;

    new stats[22];
    csstats_get_user_stats(killer, stats);

    if(stats[FRAGS] >= Cvar[VOICE_CHAT_VALUE]) {
        if(cmsgag_add_user_block(killer, BLOCK_FUNC_REMOVE, BLOCK_STATUS_ALL, .printChat = false)) {
            ResetBit(g_bitBlocked, killer);
            client_print_color(killer, 0, "%s ^3Ваш чат заблокирован. Вам необходимо набрать %d фрагов",
            LANG_PLAYER, "CMSGAG_CHAT_PREFIX",
            Cvar[VOICE_CHAT_VALUE]);
        }
    }
}

InitCvars() {
    get_cvar_string("cms_gag_voicechat_immunity", Cvar[VOICE_CHAT_IMMUNITY], charsmax(Cvar[VOICE_CHAT_IMMUNITY]));
    Cvar[VOICE_CHAT_VALUE]  = get_cvar_num("cms_gag_voicechat_value");
}

checkAccess(id, const flags[]) {
    return (get_user_flags(id) & read_flags(flags));
}

public client_disconnected(id) {
    ResetBit(g_bitBlocked, id);
}
Источник плагина (ссылка на сайт или тему)
https://cs-games.club/index.php?resources/cms-voicechat-addon.51/

Вложения

  • Block_Voice_Stats.sma
    3 KB · Просмотры: 1
Гаг менеджер должен логи писать при блокировке/ снятии.
 
Назад
Сверху