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

Помощь Вопрос касательно работы натива cmsgag_add_user_block

Статус
В этой теме нельзя размещать новые ответы.
Если хотите открыть тему, нажмите кнопку Жалоба в первом сообщении.

m4ts

Участник
Сообщения
32
Реакции
5
Баллы
8
Вчера решил попробовать реализацию гага с вэба, используя следующий натив:
Код:
/**
* Добавление блока игроку
*
* @param id         Индекс игрока
* @param typeFunc   Тип операции блокировки
*                   1- создание
*                   2- удаление
* @param blType     Тип блока (чат / голос)
* @param blReason[] Причина
* @param blTime     Время
* @param printChat  Оповестить в чат об операции, false- нет, true- стандартное оповещение о блокировке/разблокировке
*
* @return           0 - блокировка не установлена
*                   >0 - установлена
*/
native cmsgag_add_user_block(id, typeFunc, blType = 0, blReason[] = "", blTime = 0, bool:printChat = true);

Интересует более подробное описания работы натива (типы мута 1 / 2 / 3?).

Вводим в серверную консоль команду на тестовый мут:
webgag 6aJla6oJl 1 41S2 55

На выходе:
Код:
[debug gagweb] <6aJla6oJl><1><41S2><55>
[gamecms_gagmanager_2.2.5.amxx]  *** 6aJla6oJl заблокировал Chat + Voice 6aJla6oJl на 55 minutes. Причина: 41S2

Тип мута (аргумент после ника) был установлен в единицу, но при этом были заблокированы и чат, и войс, а так же трактуется что игрок гагает себя сам (в базе норм - Server)

zhorzh78
 
Исходный код
Код:
#include <amxmodx>
#include <amxmisc>
#include <gamecms5>

#pragma semicolon 1

public plugin_init()    {
    register_plugin("Gag from web", "1.0", "m4ts");

    register_concmd("webgag", "concmd_webgag", ADMIN_RCON, "<nick|steamid|userid> <type> <reason> <time>", 1);
}

public concmd_webgag(const id, level, cid)  {
    if (!cmd_access(id, level, cid, 3))    {
        return PLUGIN_HANDLED;
    }

    enum _: Args    {
        ARG_PLAYER[32],
        ARG_TYPE[2],
        ARG_REASON[32],
        ARG_TIME[4]
    };

    new eData[Args];

    read_argv(1, eData[ARG_PLAYER], charsmax(eData[ARG_PLAYER]));

    new player = cmd_target(id, eData[ARG_PLAYER]);

    server_print("[debug gagweb] <%s>", eData[ARG_PLAYER]);

    if (!player)    {
        server_print("[GagWeb] No players find yet");

        return PLUGIN_HANDLED;
    }

    if (cmsgag_is_user_blocked(player) != -1)   {
        server_print("[GagWeb] This player already gaged");

        return PLUGIN_HANDLED;
    }

    read_argv(2, eData[ARG_TYPE], charsmax(eData[ARG_TYPE]));
    read_argv(3, eData[ARG_REASON], charsmax(eData[ARG_REASON]));
    read_argv(4, eData[ARG_TIME], charsmax(eData[ARG_TIME]));

    server_print("[debug gagweb] <%s><%s><%s><%s>", eData[ARG_PLAYER], eData[ARG_TYPE], eData[ARG_REASON], eData[ARG_TIME]);

    cmsgag_add_user_block(player, 1, str_to_num(eData[ARG_TYPE]), eData[ARG_REASON], str_to_num(eData[ARG_TIME]));

    return PLUGIN_HANDLED;
}
Раньше выходных ничем не помогу.
Покажите преобразованные данные для отправки в
cmsgag_add_user_block
 
Type: 1
Reason: 41S2
Time: 55

Все остальные данные по дефолту натива

Нашёл натив в gagmanager'е, ранее не заметил, постараюсь разобраться самостоятельно, о ходе действий буду писать сюда
 
m4ts, сравните код в этой части с версий 2.2.3. Возможно, что-то не так пошло при синхронизации
 
m4ts, Проверьте обновление
 
  • Like
Реакции: m4ts
Касательно этой темы проблема решена в обновлении
 
Статус
В этой теме нельзя размещать новые ответы.
Если хотите открыть тему, нажмите кнопку Жалоба в первом сообщении.
Назад
Сверху