SM Bullet Time Реально ли без sv_cheats?

DENZEL519

Работаю с AI !
Сообщения
417
Реакции
198
Всем привет, такой вопрос про плагин Не поддерживается - SM Bullet Time Реально ли сделать чтобы мир тоже замедлялся без sv_cheats?
Плагин переделал, но замедляются только игроки, окружающий мир, трупы, перезарядка, остаётся без замедления. Одна проблема с sv_cheats, что когда он включается, на сервере перестают работать достижения для игроков, которые от ксс.

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

Вложения

  • sm_bullettime.zip
    246.9 КБ · Просмотры: 19

DENZEL519

Работаю с AI !
Сообщения
417
Реакции
198
Да, там есть проверка на sv_cheats и cl_debug_respect_cheat_vars... Можно попробовать вручную поменять скорость анимаций для всех ентити
Тестил, результат плачевный.🥺 Без sv_cheats 1 Эффекты есть, но замедления мира нет, и игроки прыгают как при дефолте.
 

Madness aka null138

Участник
Сообщения
713
Реакции
734
У сервера есть своя переменная, которая отвечает за длительность действий - физику, время и всё, что с этим связано. Но я не могу представить, как это будет визуально выглядеть у игроков.
Явно будут проблемы с синхронизацией визуальных частей.
Можно попробовать пропатчить значение в памяти движка и посмотреть, что из этого выйдет.

Окончательное значение: (переменная * host_timescale)
 

Napas

Участник
Сообщения
832
Реакции
667
Если в игре есть сообщение CurrentTimescale, можно сделать так

C++:
#pragma semicolon 1
#pragma newdecls required
#include <sdktools>

ConVar host_timescale;

public void OnPluginStart()
{
    host_timescale = FindConVar("host_timescale");
   
    RegAdminCmd("sm_host_timescale", sm_host_timescale, ADMFLAG_ROOT);
}

Action sm_host_timescale(int iClient, int args)
{
    if(args != 1)
    {
        ReplyToCommand(iClient, "Use sm_host_timescale 1.0");
       
        return Plugin_Handled;
    }
   
    char szBuf[24];
    GetCmdArg(1, szBuf, sizeof szBuf);
   
    float fScale = StringToFloat(szBuf);
   
    if(fScale < 0.1)
    {
        ReplyToCommand(iClient, "Minimum value 0.1");
       
        return Plugin_Handled;
    }
   
    host_timescale.SetFloat(fScale, false, false);
   
    Protobuf pb = view_as<Protobuf>(StartMessageAll("CurrentTimescale"));
    pb.SetFloat("cur_timescale", fScale);
    EndMessage();
   
    return Plugin_Handled;
}
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,519
Реакции
4,979
@Napas, судя по самому первому сообщению, ему нужно для CS:S, а не CS:GO.
 
Сверху Снизу