Вопрос RebuildSetupBones

Участник
Статус
Оффлайн
Регистрация
19 Апр 2020
Сообщения
1,169
Реакции[?]
313
Поинты[?]
151K
есть ли смысл в ребилде костей? или можно без ребилда?
мой код:
void CAnimationSystem::BuildMatrix(CBasePlayer* player, matrix3x4_t* boneToWorld, int maxBones, int mask, AnimationLayer* animlayers) {

    memcpy(player->GetAnimlayers(), animlayers, sizeof(AnimationLayer) * 13);

    static auto r_jiggle_bones = CVar->FindVar("r_jiggle_bones");
    auto r_jiggle_bones_backup = r_jiggle_bones->GetInt();

    bool backupMaintainSequenceTransitions = player->m_bMaintainSequenceTransitions();
    int backupEffects = player->m_fEffects();

    r_jiggle_bones->SetInt(0);

    *(uint8_t*)((uintptr_t)this + 0x274) |= FL_ONGROUND;

    player->m_fEffects() |= EF_NOINTERP;
    player->m_bMaintainSequenceTransitions() = false;

    hook_info.setup_bones = true;
    player->SetupBones(boneToWorld, maxBones, mask, player->m_flSimulationTime());
    hook_info.setup_bones = false;

    player->m_fEffects() = backupEffects;
    player->m_bMaintainSequenceTransitions() = backupMaintainSequenceTransitions;
    r_jiggle_bones->SetInt(r_jiggle_bones_backup);

}
 
Забаненный
Статус
Оффлайн
Регистрация
3 Июл 2023
Сообщения
29
Реакции[?]
5
Поинты[?]
5K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ладно sky1e
не обижайся
так вот ты можешь использовать мой ребилд..
но на самом деле это не ребилд а просто сетап костей с фиксами..

C++:
 ALWAYS_INLINE bool cs_player_t::setup_bones( valve::bones_t& bones, const float time ) {
        const auto backup_occlusion_frame = occlusion_frame( );
        const auto backup_client_effects = client_effects( );
        const auto backup_ik_ctx = ik_ctx( );
        const auto backup_effects = effects( );
        const auto backup_occlusion_flags = occlusion_flags( );

        effects( ) |= 8u;
        occlusion_flags( ) &= ~0xau;
        occlusion_frame( ) = 0;

        ik_ctx( ) = nullptr;
        client_effects( ) |= 2u;

        last_setup_bones_frame( ) = 0;

        invalidate_bone_cache( );

        auto& jiggle_bones = g_ctx->cvars( ).r_jiggle_bones;
        const auto backup_jiggle_bones = jiggle_bones->get_int( );

        jiggle_bones->set_int( 0 );

        const auto backup_frame_count = valve::g_global_vars->m_frame_count;
        valve::g_global_vars->m_frame_count = -999;

        g_ctx->allow_setup_bones( ) = true;
        const auto ret = renderable( )->setup_bones( bones.data( ), valve::k_max_bones, 0xffd00, time );
        g_ctx->allow_setup_bones( ) = false;

        valve::g_global_vars->m_frame_count = backup_frame_count;

        jiggle_bones->set_int( backup_jiggle_bones );

        effects( ) = backup_effects;
        occlusion_flags( ) = backup_occlusion_flags;
        occlusion_frame( ) = backup_occlusion_frame;

        ik_ctx( ) = backup_ik_ctx;
        client_effects( ) = backup_client_effects;

        return ret;
    }
 
Хех.......)#манипулятор #кукловод #манипуляция
Участник
Статус
Оффлайн
Регистрация
28 Дек 2019
Сообщения
560
Реакции[?]
224
Поинты[?]
3K
ладно sky1e
не обижайся
так вот ты можешь использовать мой ребилд..
но на самом деле это не ребилд а просто сетап костей с фиксами..

C++:
 ALWAYS_INLINE bool cs_player_t::setup_bones( valve::bones_t& bones, const float time ) {
        const auto backup_occlusion_frame = occlusion_frame( );
        const auto backup_client_effects = client_effects( );
        const auto backup_ik_ctx = ik_ctx( );
        const auto backup_effects = effects( );
        const auto backup_occlusion_flags = occlusion_flags( );

        effects( ) |= 8u;
        occlusion_flags( ) &= ~0xau;
        occlusion_frame( ) = 0;

        ik_ctx( ) = nullptr;
        client_effects( ) |= 2u;

        last_setup_bones_frame( ) = 0;

        invalidate_bone_cache( );

        auto& jiggle_bones = g_ctx->cvars( ).r_jiggle_bones;
        const auto backup_jiggle_bones = jiggle_bones->get_int( );

        jiggle_bones->set_int( 0 );

        const auto backup_frame_count = valve::g_global_vars->m_frame_count;
        valve::g_global_vars->m_frame_count = -999;

        g_ctx->allow_setup_bones( ) = true;
        const auto ret = renderable( )->setup_bones( bones.data( ), valve::k_max_bones, 0xffd00, time );
        g_ctx->allow_setup_bones( ) = false;

        valve::g_global_vars->m_frame_count = backup_frame_count;

        jiggle_bones->set_int( backup_jiggle_bones );

        effects( ) = backup_effects;
        occlusion_flags( ) = backup_occlusion_flags;
        occlusion_frame( ) = backup_occlusion_frame;

        ik_ctx( ) = backup_ik_ctx;
        client_effects( ) = backup_client_effects;

        return ret;
    }
Извините мИстер потрошИтель, но это даже ребилдом трудно назвать) В принципе, вы как всегда - хотели насрать, но забыли снять штаны...
 
Участник
Статус
Оффлайн
Регистрация
13 Ноя 2020
Сообщения
1,230
Реакции[?]
180
Поинты[?]
70K
Забаненный
Статус
Оффлайн
Регистрация
26 Июл 2023
Сообщения
3
Реакции[?]
1
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Извините мИстер потрошИтель, но это даже ребилдом трудно назвать) В принципе, вы как всегда - хотели насрать, но забыли снять штаны...
простите мистер селлер кейбиднов за 500 рублей, вы не имеете понятия о том о чем вы пишите в целом, но хотите написать много гадостей обо мне.. к слову данный код который я приложил выше относится к великому читу skeet, gamesense, называйте как хотите но это роли не меняет
have nice day!
 
Участник
Статус
Оффлайн
Регистрация
13 Ноя 2020
Сообщения
1,230
Реакции[?]
180
Поинты[?]
70K
простите мистер селлер кейбиднов за 500 рублей, вы не имеете понятия о том о чем вы пишите в целом, но хотите написать много гадостей обо мне.. к слову данный код который я приложил выше относится к великому читу skeet, gamesense, называйте как хотите но это роли не меняет
have nice day!
Дмитрий, опять за старое взялся? Я щкитер.сасу называю своим именем — скот.сасу
 
Хех.......)#манипулятор #кукловод #манипуляция
Участник
Статус
Оффлайн
Регистрация
28 Дек 2019
Сообщения
560
Реакции[?]
224
Поинты[?]
3K
простите мистер селлер кейбиднов за 500 рублей, вы не имеете понятия о том о чем вы пишите в целом, но хотите написать много гадостей обо мне.. к слову данный код который я приложил выше относится к великому читу skeet, gamesense, называйте как хотите но это роли не меняет
have nice day!
ДимитрИй, прошу конечно прощения, если вас задело то, что не должно было, но вы так и не ответили на вОпрОс... а где, собственно говоря, тут рЕбИлд?????
 
Забаненный
Статус
Оффлайн
Регистрация
26 Июл 2023
Сообщения
3
Реакции[?]
1
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Хех.......)#манипулятор #кукловод #манипуляция
Участник
Статус
Оффлайн
Регистрация
28 Дек 2019
Сообщения
560
Реакции[?]
224
Поинты[?]
3K
Сверху Снизу