Не могу увеличить скорость движения игрока.

  • Автор темы Автор темы polki
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Сообщения
5
Реакции
1
Баллы
3
Сразу скажу что в настройках я изменил переменную:

// Allow player speed to exceed maximum running speed
// 0 - disabled (default behaviour)
// 1 - enabled
//
// Default value: "0"
sv_enablebunnyhopping 1

А вот так я пытаюсь увеличить скорость игрока:
C++:
#include <amxmodx>    // Стандартная библиотека AMX Mod X — основные функции, события, команды                                                                                                                                                                               
#include <reapi>      // Библиотека ReAPI — расширенные хуки и нативы для ReHLDS/ReGameDLL                                                                                                                                                                                   
                                                                                                                                                                                                                                                                            
// ============================================================================                                                                                                                                                                                             
// Инициализация плагина                                                                                                                                                                                                                                                     
// ============================================================================                                                                                                                                                                                             
public plugin_init()                                                                                                                                                                                                                                                         
{                                                                                                                                                                                                                                                                           
    // Регистрируем информацию о плагине: название, версия, автор                                                                                                                                                                                                           
    register_plugin("ReAPI Plugin", "1.1.1", "kak");                                                                                                                                                                                                                         
                                                                                                                                                                                                                                                                            
    // Регистрируем хук на спавн игрока (RG_CBasePlayer_Spawn)                                                                                                                                                                                                               
    // Параметр `true` означает POST-хук — вызывается ПОСЛЕ стандартного спавна                                                                                                                                                                                             
    RegisterHookChain(RG_CBasePlayer_Spawn, "OnPlayerSpawn", true);                                                                                                                                                                                                         
                                                                                                                                                                                                                                                                            
    // Регистрируем хук на сброс максимальной скорости (RG_CBasePlayer_ResetMaxSpeed)                                                                                                                                                                                       
    // Параметр `false` означает PRE-хук — вызывается ДО стандартной функции движка                                                                                                                                                                                         
    // Это критически важно, чтобы иметь возможность заблокировать сброс скорости                                                                                                                                                                                           
    RegisterHookChain(RG_CBasePlayer_ResetMaxSpeed, "OnResetMaxSpeed", false);                                                                                                                                                                                               
}                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                            
// ============================================================================                                                                                                                                                                                             
// Хук: игрок заспавнился                                                                                                                                                                                                                                                   
// ============================================================================                                                                                                                                                                                             
public OnPlayerSpawn(id)                                                                                                                                                                                                                                                     
{                                                                                                                                                                                                                                                                           
    // Объявляем переменную для хранения текущей скорости (тип Float — дробное число)                                                                                                                                                                                       
    new Float:speed;                                                                                                                                                                                                                                                         
                                                                                                                                                                                                                                                                            
    // Устанавливаем максимальную скорость игрока на 800.0 единиц                                                                                                                                                                                                           
    // var_maxspeed — это константа из ReAPI, соответствующая полю pev_maxspeed                                                                                                                                                                                             
    set_entvar(id, var_maxspeed, 800.0);                                                                                                                                                                                                                                     
                                                                                                                                                                                                                                                                            
    // Сразу читаем текущее значение maxspeed для проверки                                                                                                                                                                                                                   
    speed = get_entvar(id, var_maxspeed);                                                                                                                                                                                                                                   
                                                                                                                                                                                                                                                                            
    // Выводим игроку сообщение с фактической установленной скоростью                                                                                                                                                                                                       
    client_print(id, print_chat, "Текущая maxspeed: %.1f", speed);                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                            
    // ВАЖНО: без блокировки OnResetMaxSpeed эта скорость будет почти мгновенно                                                                                                                                                                                             
    // сброшена движком на значение sv_maxspeed (обычно 320)                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                            
    set_task(0.5, "CheckSpeed", id)                                                                                                                                                                                                                                         
}                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                            
// ============================================================================                                                                                                                                                                                             
// Хук: попытка сброса скорости (например, при спавне, смене оружия и т.д.)                                                                                                                                                                                                 
// ============================================================================                                                                                                                                                                                             
public OnResetMaxSpeed(id)                                                                                                                                                                                                                                                   
{                                                                                                                                                                                                                                                                           
    // Выводим в консоль сервера сообщение о том, что хук сработал                                                                                                                                                                                                           
    server_print("[Warmup] Я работаю, в отличие от некоторых %d", id);                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                            
    // HC_SUPERCEDE — говорит ReAPI: "НЕ выполняй оригинальную функцию движка"                                                                                                                                                                                               
    // Это предотвращает сброс скорости на sv_maxspeed                                                                                                                                                                                                                       
    return HC_SUPERCEDE; // Не сбрасывать                                                                                                                                                                                                                                   
}                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                            
public CheckSpeed(id) {                                                                                                                                                                                                                                                     
    new Float:s = get_entvar(id, var_maxspeed);                                                                                                                                                                                                                             
    client_print(id, print_chat, "Скорость через 0.5 сек: %.1f", s);                                                                                                                                                                                                         
}

Медленнее он может двигаться, а быстрее нет.
Подскажите, как правильно увеличить скорость игроку?
 
Решение
какое значение переменной sv_maxspeed? если не забыл, то по стандарту стоит 300, попробуй поставить значение, например, 1000 в server.cfg
(в первом посте другая переменная)
По идее как то так :
C++:
#include <amxmodx>
#include <reapi>

const Float:fSpeed = 420.0

public plugin_init()
    RegisterHookChain(RG_CBasePlayer_ResetMaxSpeed, "CBasePlayer_ResetMaxSpeed_Post", true)

public CBasePlayer_ResetMaxSpeed_Post(id)
    if(is_user_alive(id))
        set_entvar(id, var_maxspeed, fSpeed)
 
По идее как то так :
C++:
#include <amxmodx>
#include <reapi>

const Float:fSpeed = 420.0

public plugin_init()
    RegisterHookChain(RG_CBasePlayer_ResetMaxSpeed, "CBasePlayer_ResetMaxSpeed_Post", true)

public CBasePlayer_ResetMaxSpeed_Post(id)
    if(is_user_alive(id))
        set_entvar(id, var_maxspeed, fSpeed)
Это тоже самое что и у меня
 
На клиенте есть ограничения кварами cl_forwardspeed, cl_sidespeed, cl_backspeed. Увеличь их минимум до 800 как в примере
 
На клиенте есть ограничения кварами cl_forwardspeed, cl_sidespeed, cl_backspeed. Увеличь их минимум до 800 как в примере
На клиенте эти команды стоят со значением 400, я их изменил на 800, но это не помогло.

Если запустить мой скрипт и не выбрать сразу команду, то отработает set_task(0.5, "CheckSpeed", id)

и покажет в чате: Скорость через 0.5 сек: 1.0
Это такое значение стоит в var_maxspeed по умолчанию?
 
На клиенте эти команды стоят со значением 400, я их изменил на 800, но это не помогло.

Если запустить мой скрипт и не выбрать сразу команду, то отработает set_task(0.5, "CheckSpeed", id)

и покажет в чате: Скорость через 0.5 сек: 1.0
Это такое значение стоит в var_maxspeed по умолчанию?
Может у тебя срабатывает таск во время заморозки ? Чему равен mp_freezetime ? 😁
 
Может есть какой нибудь плагин современный где меняют скорость
Может у тебя срабатывает таск во время заморозки ? Чему равен mp_freezetime ? 😁
mp_freezetime 0 стоит. Команду не выбрал сразу и заметил сообщение в чат.
Завтра попробую пошустрить зомби моды, там же должны легкие зомби бегать быстро
 
какое значение переменной sv_maxspeed? если не забыл, то по стандарту стоит 300, попробуй поставить значение, например, 1000 в server.cfg
(в первом посте другая переменная)
 
Решение
какое значение переменной sv_maxspeed? если не забыл, то по стандарту стоит 300, попробуй поставить значение, например, 1000 в server.cfg
(в первом посте другая переменная)
Я поменял в конфиге сервера sv_maxspeed 1000, после проверяю значения в консоле сервера и он показал 270.
Я сделал поиск sv_maxspeed по всем файла сервера и увидел в папке valve/server.cfg sv_maxspeed 270
Я удалил конфиг из valve, и все заработало!!!!

Всем кто отвечал спасибо!!!
 
Статус
Закрыто для дальнейших ответов.

Кто просматривает тему

Назад
Верх