-
Автор темы
- #1
т.к. некоторые индивидуумы , которые не знают как смотреть из-за чего анрегает, не могут слить нормальный булет тп на 236, то солью свой, нормальный, адекватный, превосходный, селфкодный, не купленный у baffclient , красивый код, который берёт максимально допустимое значение булет тп, а не делит тревел тайм на 25. Я чуть от смеха не умер когда сметанка свой код слил, это же кринж чел, ты на раст делаешь читы дольше чем я
Если отклонения в пастинге, то ds: kakrazz.
Код:
float CalculateBulletRadius(float distToTarget, float num10, float num11, float boundsPadding) {
float num12 = boundsPadding + num10 * num11;
return num12;
}
Код:
if (projectile->isAuthoritative())
{
if (vars::combat::bullet_tp) {
BasePlayer* targetPlayer = reinterpret_cast<BasePlayer*>(target_player);
if (auto transform = targetPlayer->transform_(head)) {
auto targetPos = transform->position();
auto projPos = projectile->transform()->position();
auto distToTarget = targetPos.distance(projPos);
HitTest* hitTest = reinterpret_cast<HitTest*>(projectile->_hitTest());
bool flag18 = !(projectile->projectileID());
if (!flag18)
{
bool flag22 = projectile->integrity() <= 0.f;
if (!flag22)
{
float num = Mathf::Clamp(projectile->traveledTime(), 0.f, 8.f);
float num2 = 1.f + 0.5f;
float projectile_clientframes = 2.f;
float projectile_serverframes = 2.f;
float num3 = Mathx::Decrement(projectile->launchTime());
float num4 = Mathf::Clamp(Mathx::Increment(Time::realtimeSinceStartup()) - num3, 0.f, 8.f);
float num5 = num;
float num7 = Mathf::Min(num4, num5);
float num8 = projectile_clientframes / 60.f;
float num9 = projectile_serverframes * Mathx::Max(Time::deltaTime(), Time::smoothDeltaTime(), Time::fixedDeltaTime());
float desyncTime = (Time::realtimeSinceStartup() - LocalPlayer::Entity()->lastSentTickTime()) - 0.03125 * 3;
float num10 = (desyncTime + num7 + num8 + num9) * num2;
float num11 = targetPlayer->MaxVelocity() + targetPlayer->GetParentVelocity().Magnitude();
float num12 = targetPlayer->BoundsPadding() + num10 * num11;
float num13 = distToTarget;
bool flag64 = num13 > num12;
float bulletRadius = CalculateBulletRadius(distToTarget, num10, num11, targetPlayer->BoundsPadding());
vars::combat::bullet_tp_radius = bulletRadius;
if (vars::visuals::show_radius_bullettp) {
DDraw::Capsule(target_player->transform_(head)->position(), Quaternion(), bulletRadius, 2 * (bulletRadius), Color(1.f, 1.f, 1.f, 1.f), 0.01f, false);
}
if (distToTarget <= bulletRadius)
{
if (GamePhysics::LineOfSight_(target_player->get_bone_pos(spine2), projectile->currentPosition(), LayerMasks::ProjectileLineOfSightCheckTerrain, 0.f) &&
GamePhysics::LineOfSight_(target_player->get_bone_pos(head), projectile->currentPosition(), LayerMasks::ProjectileLineOfSightCheckTerrain, 0.f))
{
auto newPos = MoveTowards(projectile->transform()->position(), targetPos, 1.0f);
Ray r(projectile->transform()->position(), newPos - projectile->_currentPosition());
hitTest->AttackRay() = r;
hitTest->HitTransform() = transform;
hitTest->HitEntity() = targetPlayer;
hitTest->HitPoint() = transform->InverseTransformPoint(newPos);
hitTest->HitNormal() = transform->InverseTransformDirection(projectile->transform()->position());
hitTest->DidHit() = true;
hitTest->HitDistance() = distToTarget;
hitTest->MaxDistance() = 999.f;
projectile->initialDistance(999.f);
projectile->DoHit(hitTest, newPos, hitTest->HitNormalWorld());
Color sphereColor(vars::colors::colsphere.x, vars::colors::colsphere.y, vars::colors::colsphere.z, 1.f);
DDraw::Capsule(projectile->currentPosition(), Quaternion(), 0.5f, 2 * 0.5f, sphereColor, 5.f, false);
}
}
}
}
}
}
}
Последнее редактирование: