Иконка ресурса

WaterJump 1.0

Нет прав для скачивания
Установка
  1. Откройте .sma и настройте его по своему вкусу (строки 15-20)
  2. Скомпилируйте плагин (инструкция)
  3. Скопируйте скомпилированный .amxx в директорию /amxmodx/plugins/
  4. Пропишите .amxx в файле /amxmodx/configs/plugins.ini
  5. Смените карту или перезапустите сервер.
Исходный код
Код:
/**
    История изменений:
        1.0 (15.11.2021) by b0t.
            - Первый релиз;
*/

new const VERSION[] = "1.0";

#include <amxmodx>
#include <reapi>
#include <xs>

enum _:XYZ {
    Float:X,Float:Y,Float:Z
};

new
    Float:g_pCvarFloat_JumpPower,
    g_pCvarNum_JumpType;

public plugin_init() {
    register_plugin("WaterControl",VERSION,"b0t.");

    RegisterHookChain(RG_CBasePlayer_PostThink,"RG_CBasePlayerPostThink_Post", .post = true);

    bind_pcvar_float(
        create_cvar(
            "amx_water_jump_power",
            "300.0",
            .description = "Скорость в момент толчка от воды"
        ),
        g_pCvarFloat_JumpPower
    );

    bind_pcvar_num(
        create_cvar(
            "amx_water_jump_type",
            "1",
            .description = "Игрока будет отталкивать если он в воде:^n\
            1 -- По ноги^n\
            2 -- По талию^n\
            3 -- По голову"
        ),
        g_pCvarNum_JumpType
    );

    AutoExecConfig(true,"WaterJump");
}


public RG_CBasePlayerPostThink_Post(const id) {
    if(!is_user_alive(id))
        return HC_CONTINUE;

    if(get_entvar(id,var_waterlevel) != g_pCvarNum_JumpType)
        return HC_CONTINUE;

    static Float:fVelocity[XYZ];
    get_entvar(id,var_velocity,fVelocity);

    fVelocity[Z] = g_pCvarFloat_JumpPower;
    set_entvar(id,var_velocity,fVelocity);

    return HC_CONTINUE;
}
Настройки
amx_water_jump_power -- Скорость в момент толчка от воды
amx_water_jump_type -- Игрока будет отталкивать если он в воде:
1 -- По ноги
2 -- По талию
3 -- По голову
Сверху Снизу