Вопрос [NL] Animation breaker

Начинающий
Статус
Оффлайн
Регистрация
30 Апр 2022
Сообщения
194
Реакции[?]
8
Поинты[?]
1K
хочу узнать параметр для moonwalk в аирах (без хука и юза либы)
 
ЧВК EB_LAN
Эксперт
Статус
Оффлайн
Регистрация
26 Янв 2021
Сообщения
1,567
Реакции[?]
522
Поинты[?]
185K
хочу узнать параметр для moonwalk в аирах (без хука и юза либы)
Ну вот тебе примо наработочка, и в аирах и просто в беге мунволк (лег мувмент 2 я не помню это вроде форс слайд либо эвойд)
code_language.lua:
    if AnimSelection:get(1) and GetVelocity() > 0 then -- Moonwalk
        LegMovement:set(2)
        ctx:set_render_pose(e_poses.MOVE_YAW, 0.0)
        ctx:set_render_animlayer(e_animlayers.MOVEMENT_MOVE, 1.0)
    end
возьми да перекостыль под апи нла себе эту фигню
 
Начинающий
Статус
Оффлайн
Регистрация
30 Апр 2022
Сообщения
194
Реакции[?]
8
Поинты[?]
1K
Ну вот тебе примо наработочка, и в аирах и просто в беге мунволк (лег мувмент 2 я не помню это вроде форс слайд либо эвойд)
code_language.lua:
    if AnimSelection:get(1) and GetVelocity() > 0 then -- Moonwalk
        LegMovement:set(2)
        ctx:set_render_pose(e_poses.MOVE_YAW, 0.0)
        ctx:set_render_animlayer(e_animlayers.MOVEMENT_MOVE, 1.0)
    end
возьми да перекостыль под апи нла себе эту фигню
хмхмххм
такого метода нету в нле просто напросто
 
ЧВК EB_LAN
Эксперт
Статус
Оффлайн
Регистрация
26 Янв 2021
Сообщения
1,567
Реакции[?]
522
Поинты[?]
185K
хмхмххм
такого метода нету в нле просто напросто
раз изобрели эти ивенты и в маркете отказываются постить твою луа при виде хука через ффай, значит всё есть и ты сможешь сделать, ну и как ты понял я не буду просто брать и спунфидить тебе код.
pre_update_clientside_animation
Fired before C_CSPlayer::UpdateClientSideAnimation is called.
post_update_clientside_animation
Fired after C_CSPlayer::UpdateClientSideAnimation is called.
 
ryo
Пользователь
Статус
Оффлайн
Регистрация
4 Июн 2021
Сообщения
324
Реакции[?]
113
Поинты[?]
2K
хочу узнать параметр для moonwalk в аирах (без хука и юза либы)
писал по памяти, вроде должно работать

code_language.lua:
local ffi = require "ffi";

ffi.cdef [[
    typedef struct {
        char  pad_0000[20];
        int m_nOrder;
        int m_nSequence;
        float m_flPrevCycle;
        float m_flWeight;
        float m_flWeightDeltaRate;
        float m_flPlaybackRate;
        float m_flCycle;
        void *m_pOwner;
        char  pad_0038[4];
    } CAnimationLayer_t;
]]

events.post_update_clientside_animation:set(function ()
    local me = entity.get_local_player();

    if not me or not me:is_alive() then
        return
    end

    local layers = ffi.cast("CAnimationLayer_t**", ffi.cast("uintptr_t", me[0]) + 0x2990)[0];

    -- add in air check
    layers[6].m_flWeight = 5;
end)
 
Начинающий
Статус
Оффлайн
Регистрация
30 Апр 2022
Сообщения
194
Реакции[?]
8
Поинты[?]
1K
писал по памяти, вроде должно работать

code_language.lua:
local ffi = require "ffi";

ffi.cdef [[
    typedef struct {
        char  pad_0000[20];
        int m_nOrder;
        int m_nSequence;
        float m_flPrevCycle;
        float m_flWeight;
        float m_flWeightDeltaRate;
        float m_flPlaybackRate;
        float m_flCycle;
        void *m_pOwner;
        char  pad_0038[4];
    } CAnimationLayer_t;
]]

events.post_update_clientside_animation:set(function ()
    local me = entity.get_local_player();

    if not me or not me:is_alive() then
        return
    end

    local layers = ffi.cast("CAnimationLayer_t**", ffi.cast("uintptr_t", me[0]) + 0x2990)[0];

    -- add in air check
    layers[6].m_flWeight = 5;
end)
/del
писал по памяти, вроде должно работать

code_language.lua:
local ffi = require "ffi";

ffi.cdef [[
    typedef struct {
        char  pad_0000[20];
        int m_nOrder;
        int m_nSequence;
        float m_flPrevCycle;
        float m_flWeight;
        float m_flWeightDeltaRate;
        float m_flPlaybackRate;
        float m_flCycle;
        void *m_pOwner;
        char  pad_0038[4];
    } CAnimationLayer_t;
]]

events.post_update_clientside_animation:set(function ()
    local me = entity.get_local_player();

    if not me or not me:is_alive() then
        return
    end

    local layers = ffi.cast("CAnimationLayer_t**", ffi.cast("uintptr_t", me[0]) + 0x2990)[0];

    -- add in air check
    layers[6].m_flWeight = 5;
end)
спасибо большое
конечно хотелось бы без ffi, но и так сойдет
 
Последнее редактирование:
Сверху Снизу