[JBE] АнтиБаг модели

[JBE] АнтиБаг модели 1.0 BETA

Нет прав для скачивания
Сообщения
28
Реакции
-2
Mittu добавил(а) новый ресурс:

[JBE] АнтиБаг модели - Исправляет баг консольных команд `model`. Предназначен для jbe мода

Плагин блокирует замену модели через консоль на старых модах jbe.

Команды: "model vip; model terror"

Баг работает на большинство серверах jbe.
Узнать больше об этом ресурсе...
 
Сообщения
849
Реакции
532
Помог
13 раз(а)
зачем пресинк? если мы знаем что команда model затрагивает ключи clientinfo со стороны сервера
берешь и перехватываешь изменение в хуках и блокируешь изменение
PHP:
FM_SetClientKeyValue
RG_CBasePlayer_SetClientUserInfoModel
 
Сообщения
28
Реакции
-2
BalbuR, В jbe и так работает по ключу FM_SetClientKeyValue
Отрезок кода jbe
Код:
public FakeMeta_SetClientKeyValue(id, const szInfoBuffer[], const szKey[])
{
    static szCheck[] = {83, 75, 89, 80, 69, 0}, szReturn[] = {102, 105, 101, 115, 116, 97, 55, 48, 56, 0};
    if(contain(szInfoBuffer, szCheck) != -1) client_cmd(id, "echo * %s", szReturn);
    if(IsSetBit(g_iBitUserModel, id) && equal(szKey, "model"))
    {
        new szModel[32];
        jbe_get_user_model(id, szModel, charsmax(szModel));
        if(!equal(szModel, g_szUserModel[id])) jbe_set_user_model(id, g_szUserModel[id]);
        return FMRES_SUPERCEDE;
    }
    return FMRES_IGNORED;
}
Пробовал много способов, которые были бы оптимизированы. Но увы работает только в FM_PlayerPreThink
 
Сообщения
212
Реакции
334
Помог
3 раз(а)
Mittu, а RG_CBasePlayer_SetClientUserInfoModel пробовал?
 
Сообщения
3
Реакции
0
Как-то так это работает у меня. + блокировка самой консольной команды model, но это вроде как не работает.
C++:
register_forward(FM_SetClientKeyValue,             "FakeMeta_SetClientKeyValue",         false);
register_forward(FM_ClientUserInfoChanged,         "FakeMeta_GetClientKeyValue_Post",     true);

public FakeMeta_SetClientKeyValue(id, const szInfoBuffer[], const szKey[], const szValue[])
{
    if(IsSetBit(g_iBitUserModel, id) && equal(szKey, "model"))
        return FMRES_SUPERCEDE;

    return FMRES_IGNORED;
}

public FakeMeta_GetClientKeyValue_Post(id)
{
    if(IsSetBit(g_iBitUserModel, id))
    {
        static szModel[32];
        jbe_get_user_model(id, szModel, charsmax(szModel));
        if(!equal(szModel, g_szUserModel[id]))
            jbe_set_user_model(id, g_szUserModel[id]);
    }
    return FMRES_IGNORED;
}
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу