• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Вопрос Local animations

  • Автор темы Автор темы sky1e
  • Дата начала Дата начала
так он всё по факту написал...
1693563765215.png

я спросил в чем проблема и что бы мне помогли
 
Посмотреть вложение 257703
я спросил в чем проблема и что бы мне помогли
тебе не раз написали в чем твоя проблема, дали тебе готовый код чтобы ты увидел как оно должно быть, и понял где твои ошибки
есил ты нихуя не понимаешь - выйди в окошко
 
В ТОМ ЧТО Я БЛЯТЬ АНИМЛЕЕРЫ ПОСЛЕ АПДЕЙТА БЕКАПЛЮ? блять чел, я даже сделал до апдейта, увы не помогло
ну так нахуя самостоятельно анмстейт обновлять, шизик ебанный, ещё раз блять
бекапишь лееры
обновляешь клиент анимации
бекапишь на сендпакете позпараметры
ресторишь лееры и позпараметры
собираешь матрицу
устанавливаешь render_angles и gfy
сетаешь abs_angles

готово
 
можна и без матрицы обойтись
понял, теперь понятно почему у тебя нихуя не работает, ты даже банальный смысл анимфикса не понимаешь
в таком случае ждём пока проснётся дед-дима и пояснит молодому за афикс
 
  • Мне нравится
Реакции: Bouy
понял, теперь понятно почему у тебя нихуя не работает, ты даже банальный смысл анимфикса не понимаешь
в таком случае ждём пока проснётся дед-дима и пояснит молодому за афикс
у меня без сетап бонс локал анимации работали
 

Код:
Expand Collapse Copy
#include "LocalAnimationSystem.h"
#include "../AntiAim/AntiAim.h"
#include "Interpolate.h"
#include "AnimationSystem.h"

void CLocalAnimations::StoreLocalAnims() {
    auto animstate = Cheat.LocalPlayer->GetAnimstate();

    stored_local_anims.bOnGround = animstate->bOnGround;
    stored_local_anims.flAffectedFraction = animstate->flAffectedFraction;
    stored_local_anims.flDurationInAir = animstate->flDurationInAir;
    stored_local_anims.flEyePitch = animstate->flEyePitch;
    stored_local_anims.flEyeYaw = animstate->flEyeYaw;
    stored_local_anims.flGoalFeetYaw = animstate->flGoalFeetYaw;
    stored_local_anims.flJumpFallVelocity = animstate->flJumpFallVelocity;
    stored_local_anims.flLeanAmount = animstate->flLeanAmount;
    stored_local_anims.flMoveYaw = animstate->flMoveYaw;
    stored_local_anims.poseparams = Cheat.LocalPlayer->m_flPoseParameter();
    local_abs_angles = QAngle(0, animstate->flGoalFeetYaw, 0);
    stored_local_anims.filled = true;
}

void CLocalAnimations::RestoreLocalAnims() {
    if (!stored_local_anims.filled)
        return;

    auto animstate = Cheat.LocalPlayer->GetAnimstate();

    animstate->bOnGround = stored_local_anims.bOnGround;
    animstate->flAffectedFraction = stored_local_anims.flAffectedFraction;
    animstate->flDurationInAir = stored_local_anims.flDurationInAir;
    animstate->flEyePitch = stored_local_anims.flEyePitch;
    animstate->flEyeYaw = stored_local_anims.flEyeYaw;
    animstate->flGoalFeetYaw = stored_local_anims.flGoalFeetYaw;
    animstate->flJumpFallVelocity = stored_local_anims.flJumpFallVelocity;
    animstate->flLeanAmount = stored_local_anims.flLeanAmount;
    animstate->flMoveYaw = stored_local_anims.flMoveYaw;
    Cheat.LocalPlayer->m_flPoseParameter() = stored_local_anims.poseparams;
    Cheat.LocalPlayer->SetAbsAngles(local_abs_angles);
}

void CLocalAnimations::OnCreateMove() {

    CCSGOPlayerAnimationState* animstate = Cheat.LocalPlayer->GetAnimstate();

    if (AntiAim->desyncing)
        animstate->flGoalFeetYaw = AntiAim->realAngle;

    memcpy(local_animlayers, Cheat.LocalPlayer->GetAnimlayers(), sizeof(AnimationLayer) * 13);

    Cheat.LocalPlayer->UpdateAnimationState(animstate, Cheat.thirdpersonAngles, true);
    Cheat.LocalPlayer->UpdateClientSideAnimation();

    if (ctx.send_packet) {
        StoreLocalAnims();
    }

    memcpy(Cheat.LocalPlayer->GetAnimlayers(), local_animlayers, sizeof(AnimationLayer) * 13);
}

void CLocalAnimations::UpdateLocalAnimations() {

    CCSGOPlayerAnimationState* animstate = Cheat.LocalPlayer->GetAnimstate();

    animstate->iLastUpdateFrame = GlobalVars->framecount;

    RestoreLocalAnims();
}

void CLocalAnimations::FrameStageNotify(EClientFrameStage stage) {
    switch (stage)
    {
    case FRAME_NET_UPDATE_POSTDATAUPDATE_END:
        for (int i = 0; i < ClientState->m_nMaxClients; ++i) {
            CBasePlayer* player = reinterpret_cast<CBasePlayer*>(EntityList->GetClientEntity(i));

            if (player && player != Cheat.LocalPlayer)
                Interpolate->DisableInterpolationFlags(player);
        }
        break;
    case FRAME_NET_UPDATE_END:
        break;
    case FRAME_RENDER_START:
        if (Cheat.LocalPlayer && Cheat.LocalPlayer->IsAlive()) {
            UpdateLocalAnimations();
        }
        break;
    default:
        break;
    }
}

CLocalAnimations* LocalAnimations = new CLocalAnimations;
Посмотреть вложение 257701

даже если я все сделаю как говоришь ты все ровнопроблема не пропадает
Код:
Expand Collapse Copy
#include "LocalAnimationSystem.h"
#include "../AntiAim/AntiAim.h"
#include "Interpolate.h"
#include "AnimationSystem.h"

void CLocalAnimations::StoreLocalAnims() {
    auto animstate = Cheat.LocalPlayer->GetAnimstate();

    //stored_local_anims.bOnGround = animstate->bOnGround;
    //stored_local_anims.flAffectedFraction = animstate->flAffectedFraction;
    //stored_local_anims.flDurationInAir = animstate->flDurationInAir;
    //stored_local_anims.flEyePitch = animstate->flEyePitch;
    //stored_local_anims.flEyeYaw = animstate->flEyeYaw;
    //stored_local_anims.flGoalFeetYaw = animstate->flGoalFeetYaw;
    //stored_local_anims.flJumpFallVelocity = animstate->flJumpFallVelocity;
    //stored_local_anims.flLeanAmount = animstate->flLeanAmount;
    //stored_local_anims.flMoveYaw = animstate->flMoveYaw;
    memcpy(pose_parameter, &Cheat.LocalPlayer->m_flPoseParameter(), 24 * sizeof(float));
    local_abs_angles = QAngle(0, animstate->flGoalFeetYaw, 0);
    stored_local_anims.filled = true;
}

void CLocalAnimations::RestoreLocalAnims() {
    if (!stored_local_anims.filled)
        return;

    auto animstate = Cheat.LocalPlayer->GetAnimstate();

    //animstate->bOnGround = stored_local_anims.bOnGround;
    //animstate->flAffectedFraction = stored_local_anims.flAffectedFraction;
    //animstate->flDurationInAir = stored_local_anims.flDurationInAir;
    //animstate->flEyePitch = stored_local_anims.flEyePitch;
    //animstate->flEyeYaw = stored_local_anims.flEyeYaw;
    //animstate->flGoalFeetYaw = stored_local_anims.flGoalFeetYaw;
    //animstate->flJumpFallVelocity = stored_local_anims.flJumpFallVelocity;
    //animstate->flLeanAmount = stored_local_anims.flLeanAmount;
    //animstate->flMoveYaw = stored_local_anims.flMoveYaw;
    Cheat.LocalPlayer->SetAbsAngles(local_abs_angles);
    memcpy(Cheat.LocalPlayer->GetAnimlayers(), local_animlayers, sizeof(AnimationLayer) * 13);
    memcpy(&Cheat.LocalPlayer->m_flPoseParameter(), pose_parameter, 24 * sizeof(float));
}

void CLocalAnimations::OnCreateMove() {

    CCSGOPlayerAnimationState* animstate = Cheat.LocalPlayer->GetAnimstate();

    if (AntiAim->desyncing)
        animstate->flGoalFeetYaw = AntiAim->realAngle;

    memcpy(local_animlayers, Cheat.LocalPlayer->GetAnimlayers(), sizeof(AnimationLayer) * 13);

    Cheat.LocalPlayer->UpdateAnimationState(animstate, Cheat.thirdpersonAngles, true);
    Cheat.LocalPlayer->UpdateClientSideAnimation();

    if (ctx.send_packet) {
        StoreLocalAnims();
    }
}

void CLocalAnimations::UpdateLocalAnimations() {

    CCSGOPlayerAnimationState* animstate = Cheat.LocalPlayer->GetAnimstate();

    animstate->iLastUpdateFrame = GlobalVars->framecount;

    RestoreLocalAnims();
}

void CLocalAnimations::FrameStageNotify(EClientFrameStage stage) {
    switch (stage)
    {
    case FRAME_NET_UPDATE_POSTDATAUPDATE_END:
        for (int i = 0; i < ClientState->m_nMaxClients; ++i) {
            CBasePlayer* player = reinterpret_cast<CBasePlayer*>(EntityList->GetClientEntity(i));

            if (player && player != Cheat.LocalPlayer)
                Interpolate->DisableInterpolationFlags(player);
        }
        break;
    case FRAME_NET_UPDATE_END:
        break;
    case FRAME_RENDER_START:
        if (Cheat.LocalPlayer && Cheat.LocalPlayer->IsAlive()) {
            UpdateLocalAnimations();
        }
        break;
    default:
        break;
    }
}

CLocalAnimations* LocalAnimations = new CLocalAnimations;
я сейчас нихуя не понял, судя по видео, кроме рассинхрона на паблик серваках, я нихуя больше не вижу
у меня без сетап бонс локал анимации работали
ну так если ты сделашь анимки по человечески, то он тебе понадобится, как минимум для сетапа кешед костей когда игра сама пытается обновлять анимки или устанавливать кости
 
Назад
Сверху Снизу