-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
So before the update the other week I used rebuild setup velocity to get the players max and min body yaw but after update it crashes whenever I try kill someone, it is the resolver because cheat works fine without it. I tried weave, lw and pandora and it crashed with all. IF anyone can give some help I would be gratefull.
C++:
void ResolveAngles(player_t* ent) {
auto animationstate = ent->get_animation_state();
if (!animationstate)
return;
auto weapont = ent->m_hActiveWeapon();
float flMaxMovementSpeedt = 260.0f;
if (weapont)
flMaxMovementSpeedt = std::fmax(weapont->get_csweapon_info()->flMaxPlayerSpeed, 0.001f);
auto m_flVelocityUnknown = *(float*)(uintptr_t(animationstate) + 0x2A4);
if (animationstate->m_flFeetSpeedUnknownForwardOrSideways < 1.0f)
{
if (animationstate->m_flFeetSpeedUnknownForwardOrSideways < 0.5f)
{
float vel = m_flVelocityUnknown;
float delta = animationstate->m_flLastClientSideAnimationUpdateTime * 60.0f;
float newvel;
if ((80.0f - vel) <= delta)
{
if (-delta <= (80.0f - vel))
newvel = 80.0f;
else
newvel = vel - delta;
}
else
{
newvel = vel + delta;
}
m_flVelocityUnknown = newvel;
}
}
bool bWasMovingLastUpdate = false;
bool bJustStartedMovingLastUpdate = false;
if (ent->m_vecVelocity().Length2D() <= 0.0f)
{
animationstate->m_flTimeSinceStartedMoving = 0.0f;
bWasMovingLastUpdate = animationstate->m_flTimeSinceStoppedMoving <= 0.0f;
animationstate->m_flTimeSinceStoppedMoving += animationstate->m_flLastClientSideAnimationUpdateTime;
}
else
{
animationstate->m_flTimeSinceStoppedMoving = 0.0f;
bJustStartedMovingLastUpdate = animationstate->m_flTimeSinceStartedMoving <= 0.0f;
animationstate->m_flTimeSinceStartedMoving = animationstate->m_flLastClientSideAnimationUpdateTime + animationstate->m_flTimeSinceStartedMoving;
}
animationstate->m_flCurrentFeetYaw = animationstate->AbsYaw();
auto v47 = std::clamp(animationstate->AbsYaw(), -360.0f, 360.0f);
auto v49 = math::normalize_yaw(math::AngleDiff(animationstate->m_flEyeYaw, v47));
if (animationstate->m_flFeetSpeedForwardsOrSideWays >= 0.0)
animationstate->m_flFeetSpeedForwardsOrSideWays = fminf(animationstate->m_flFeetSpeedForwardsOrSideWays, 1.0);
else
animationstate->m_flFeetSpeedForwardsOrSideWays = 0.0;
auto v54 = animationstate->m_fDuckAmount;
auto v55 = ((((*(float*)((uintptr_t)animationstate + 0x11C)) * -0.30000001) - 0.19999999) * animationstate->m_flFeetSpeedForwardsOrSideWays) + 1.0f;
if (v54 > 0.0)
{
if (animationstate->m_flFeetSpeedUnknownForwardOrSideways >= 0.0)
animationstate->m_flFeetSpeedUnknownForwardOrSideways = fminf(animationstate->m_flFeetSpeedUnknownForwardOrSideways, 1.0);
else
animationstate->m_flFeetSpeedUnknownForwardOrSideways = 0.0;
v55 += ((animationstate->m_flFeetSpeedUnknownForwardOrSideways * v54) * (0.5f - v55));
}
auto v58 = *(float*)((uintptr_t)animationstate + 0x334) * v55;
auto v59 = *(float*)((uintptr_t)animationstate + 0x330) * v55;
if (v49 <= v58)
{
if (v59 > v49)
animationstate->m_flGoalFeetYaw = fabs(v59) + animationstate->m_flEyeYaw;
}
else
animationstate->m_flGoalFeetYaw = animationstate->m_flEyeYaw - fabs(v58);
animationstate->m_flGoalFeetYaw = math::normalize_yaw(animationstate->m_flGoalFeetYaw);
if (ent->m_vecVelocity().Length2D() > 0.1 || fabs(animationstate->flUpVelocity) > 100.0)
{
animationstate->m_flGoalFeetYaw = ApproachAngle(
animationstate->m_flEyeYaw,
animationstate->AbsYaw(),
(((*(float*)((uintptr_t)animationstate + 0x11C)) * 20.0f) + 30.0f)
* animationstate->m_flLastClientSideAnimationUpdateTime);
}
else
{
animationstate->m_flGoalFeetYaw = ApproachAngle(
ent->GetLBY(),
animationstate->AbsYaw(),
animationstate->m_flLastClientSideAnimationUpdateTime * 100.0f);
}
bool balance_adjust[128];
if (ent->m_vecVelocity().Length2D() <= 1.0
&& animationstate->m_bOnGround
&& animationstate->m_flLastClientSideAnimationUpdateTime > 0.0
&& (math::AngleDiff(animationstate->m_flCurrentFeetYaw, animationstate->AbsYaw()) / animationstate->m_flLastClientSideAnimationUpdateTime) > 120.0)
{
balance_adjust[entityindex] = true;
}
else
balance_adjust[entityindex] = false;
if (ent->m_vecVelocity().Length2D() > 0.0)
{
float velAngle = (atan2(-ent->m_vecVelocity().y, -ent->m_vecVelocity().x) * 180.0f) * (1.0f / M_PI);
if (velAngle < 0.0f)
velAngle += 360.0f;
animationstate->m_flUnknownVelocityLean = math::normalize_yaw(math::AngleDiff(velAngle, animationstate->AbsYaw()));
}
animationstate-> m_flLeanAmount = math :: normalize_yaw (math :: AngleDiff (animationstate-> m_flUnknownVelocityLean, animationstate-> m_flCurrentTorsoYaw));
if (bJustStartedMovingLastUpdate && animationstate-> m_flFeetYawRate <= 0.0)
{
animationstate-> m_flCurrentTorsoYaw = animationstate-> m_flUnknownVelocityLean;
}
else
{
if (ent-> m_vecVelocity (). Length2D ()> 0.1f)
{
animationstate-> m_flCurrentTorsoYaw = animationstate-> m_flUnknownVelocityLean;
}
else
{
if (animation * tate-> m_flFeetSpeedUnknownForwardOrSideways> = 0.0)
animationstate-> m_flFeetSpeedUnknownForwardOrSideways = fminf (animationstate-> m_flFeetSpeedUnknownForwardOrSideways, 1.0);
else
animationstate-> m_flFeetSpeedUnknownForwardOrSideways = 0.0;
if (animationstate-> m_flFeetSpeedForwardsOrSideWays> = 0.0)
animationstate-> m_flFeetSpeedForwardsOrSideWays = fminf (animationstate-> m_flFeetSpeedForwardsOrSideWays, 1.0);
else
animationstate-> m_flFeetSpeedForwardsOrSideWays = 0.0;
auto v105 = ((animationstate-> m_flFeetSpeedUnknownForwardOrSideways - animationstate-> m_flFeetSpeedForwardsOrSideWays) * animationstate-> m_fDuckAmount) + animationstate-> m_flFeetSpeedForwardsOrSideWays;
auto v156 = math :: normalize_yaw ((((v105 + 0.1f) * animationstate-> m_flUnknownVelocityLean) + animationstate-> m_flCurrentTorsoYaw));
animationstate-> m_flCurrentTorsoYaw = v156;
}
}
float eye_goalfeet_delta = math :: AngleDiff (animationstate-> m_flEyeYaw - animationstate-> AbsYaw (), 360.0f);
float new_body_yaw_pose = 0.0f;
if (eye_goalfeet_delta <0.0f || v58 == 0.0f)
{
if (v59! = 0.0f)
new_body_yaw_pose = (eye_goalfeet_delta / v59) * -58.0f;
}
else
{
new_body_yaw_pose = (eye_goalfeet_delta / v58) * 58.0f;
}
} [/ CODE]