Блокировка быстрого передвижения по воде

Сообщения
500
Реакции
275
Помог
6 раз(а)
Нужны идеи реализации блокировки техники быстрого передвижения по воде. В чём заключается техника: удерживается прыжок, чтобы всегда быть на поверхности воды и стрейфами набирается скорость. При пониженной гравитации передвижение становится очень быстрым.
 
Сообщения
397
Реакции
221
Помог
13 раз(а)
CHEL74, вариант с RG_CBasePlayer_Jump + FL_WATERJUMP + vector_length не канает?
 
Сообщения
3,593
Реакции
1,576
Помог
141 раз(а)
b0t., есть хук RG_PM_WaterJump.

CHEL74, не тестил, но попробуй изменить квар sv_wateraccelerate, его название намекает что он может относиться к этому
 
Сообщения
500
Реакции
275
Помог
6 раз(а)
@CHEL74, не тестил, но попробуй изменить квар sv_wateraccelerate, его название намекает что он может относиться к этому
Не, не заметил изменений.

Что касается плагина, на днях попробую советы
 
Сообщения
500
Реакции
275
Помог
6 раз(а)
@b0t., есть хук RG_PM_WaterJump.
Этот хук срабатывает только на полное выпрыгивание из воды и не подходит для задачи. Однако, рядом был RG_PM_CheckWaterJump, который вызывается тогда, когда игрок находится на поверхности воды. С этим хуком получилось реализовать плагин, используя логику, про которую упоминал выше SergeyShorokhov:
Код:
#include <amxmodx>
#include <reapi>

public plugin_init() {
    register_plugin("Block Water Boost", "0", "CHEL74")
    
    RegisterHookChain(RG_PM_CheckWaterJump, "CheckWaterJump_Post", true)
}

public CheckWaterJump_Post(pPlayer) {
    if(~get_entvar(pPlayer, var_button) & IN_JUMP) {
        return
    }
    
    #define SPEED_LIMIT 100.0
    
    static Float:fVelocity[3]
    get_entvar(pPlayer, var_velocity, fVelocity)
    
    fVelocity[0] = floatclamp(fVelocity[0], -SPEED_LIMIT, SPEED_LIMIT)
    fVelocity[1] = floatclamp(fVelocity[1], -SPEED_LIMIT, SPEED_LIMIT)
    
    set_pmove(pm_velocity, fVelocity)
}
Спасибо всем за помощь.
 

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

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