polki
Пользователь
- Регистрация
- 22 Сен 2017
- Сообщения
- 24
- Симпатии
- 0
Сразу скажу что в настройках я изменил переменную:
// Allow player speed to exceed maximum running speed
// 0 - disabled (default behaviour)
// 1 - enabled
//
// Default value: "0"
sv_enablebunnyhopping 1
А вот так я пытаюсь увеличить скорость игрока:
Медленнее он может двигаться, а быстрее нет.
Подскажите, как правильно увеличить скорость игроку?
// 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);
}
Медленнее он может двигаться, а быстрее нет.
Подскажите, как правильно увеличить скорость игроку?