Начинающий
- Статус
- Оффлайн
- Регистрация
- 4 Дек 2025
- Сообщения
- 21
- Реакции
- 0
- Выберите загрузчик игры
- Fabric
в крации знаю точно что обходит сп дуэли
че вы срете мб обходит и не только сп дуэли я не знаю мне тип сказал который тестит и то и то обходит но что бы не воздуханить я указал только сп дуэли тк не тестил на анках
ss:
Пожалуйста, авторизуйтесь для просмотра ссылки.
че вы срете мб обходит и не только сп дуэли я не знаю мне тип сказал который тестит и то и то обходит но что бы не воздуханить я указал только сп дуэли тк не тестил на анках
ss:
self pasting:
if (this.rotationMode.is(this.spookyTimeRotation)) {
if (mc.player.age % 500 == 0) {
this.noise = new PerlinNoise();
this.noiseFactor = 1.0F;
}
boolean collide = EntityUtility.collideWith(targetedEntity, 1.0F);
Vec3d nearYx = RotationMath.getNearestPoint(targetedEntity);
float neckHeight = targetedEntity.getEyeHeight(targetedEntity.getPose()) - 0.3f;
Vec3d targetPos = targetedEntity.getPos().add(0, neckHeight, 0);
if (this.attackTimer.finished(200L)) {
float randomOffsetX = (float)(Math.random() - 0.5f) * 0.1f;
float randomOffsetZ = (float)(Math.random() - 0.5f) * 0.1f;
targetPos = targetPos.add(randomOffsetX, 0, randomOffsetZ);
}
Vec3d vecToNeck = targetPos.subtract(mc.player.getEyePos());
float yawToTarget = (float) MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(vecToNeck.z, vecToNeck.x)) - 90.0);
float pitchToTarget = (float) (-Math.toDegrees(Math.atan2(vecToNeck.y, Math.hypot(vecToNeck.x, vecToNeck.z))));
Rotation targetRotx = new Rotation(yawToTarget, pitchToTarget);
if (collide) {
targetRotx = RotationMath.getRotationTo(targetedEntity.getPos().add(0.0, 0.5, 0.0));
}
if (!MathUtility.canTraceWithBlock(
this.attackDistance.getCurrentValue(), targetRotx.getYaw(), targetRotx.getPitch(), mc.player, targetedEntity, !this.walls.isEnabled()
)
&& mc.player.getEyePos().distanceTo(targetedEntity.getEyePos()) > 3.0) {
Rotation multipointx = RotationMath.getRotationTo(RotationMath.getNearestPoint(targetedEntity));
targetRotx.setPitch(multipointx.getPitch() + 10.0F);
}
boolean idlex = this.attackTimer.finished(collide ? 500L : 200L);
if (this.additional == null) {
this.additional = new Rotation(0.0F, 0.0F);
}
float targetYawx = targetRotx.getYaw();
float targetPitchx = targetRotx.getPitch();
Rotation currentRotx = handler.getCurrentRotation();
float currentYawx = currentRotx.getYaw();
float currentPitchx = currentRotx.getPitch();
float yawDiffx = RotationMath.getAngleDifference(currentYawx, targetYawx);
float pitchDiffx = RotationMath.getAngleDifference(currentPitchx, targetPitchx);
float randomYawFactor = (float) (Math.random() * 2.5F - 1.5F);
float randomPitchFactor = (float) (Math.random() * 2.5F - 1.0F);
float randomThreshold = (float) (Math.random() * 2.5F);
float randomAddition = (float) (Math.random() * 3.5F + 2.5F);
if (!this.shouldPreventSprinting() && idlex && EntityUtility.getBlock(0.0, 2.0, 0.0) == Blocks.AIR) {
targetYawx += 10.0F;
targetPitchx -= 20.0F;
}
float clampedYaw = Math.min(Math.max(Math.abs(yawDiffx), 1.0E-4F), this.isCooledDown() ? 45F : 26F);
float clampedPitch = Math.min(Math.max(Math.abs(pitchDiffx), 1.0E-4F), 7.0F);
if (this.attackTimer.finished(300L)) {
clampedPitch = Math.max(Math.abs(pitchDiffx), 1.0F);
} else {
clampedPitch /= 3.0F;
}
if (Math.abs(clampedYaw - (this.additional != null ? this.additional.getYaw() : 0)) <= randomThreshold) {
clampedYaw = (this.additional != null ? this.additional.getYaw() : 0) + randomAddition;
}
clampedYaw += randomYawFactor;
clampedPitch += randomPitchFactor;
float yawSpeed = Math.max(
(90.0F - Math.abs(yawDiffx))
/ (!this.shouldPreventSprinting() && idlex ? 5.0F : (idlex ? (mc.player.fallDistance > 0.0F ? 25.0F : 10.0F) : 60.0F)),
MathUtility.random(1.0, 5.0)
)
* MathUtility.random(0.9, 1.1);
float pitchSpeed = Math.abs(pitchDiffx)
/ (!this.shouldPreventSprinting() && idlex ? 5.0F : (idlex ? (mc.player.fallDistance > 0.0F ? 25.0F : 10.0F) : 40.0F))
* MathUtility.random(0.9, 1.1);
if (!EntityUtility.collideWith(targetedEntity)) {
this.collideTimer.reset();
}
if (this.collideTimer.finished(500L) && CombatUtility.stalin(targetedEntity)) {
targetPitchx = (float)(
64.0 + (mc.player.getY() - targetedEntity.getY() + 1.0) * (5.0 + Math.sin(mc.player.age % 100 / 5 * 1924.12F) * 35.0) - 5.0 + 10.0
);
yawSpeed /= MathUtility.random(30.0, 50.0);
}
if (!idlex && EntityUtility.getBlock(0.0, 2.0, 0.0) == Blocks.AIR && !collide) {
targetYawx += this.additional.getYaw();
targetPitchx += this.additional.getPitch();
}
if (this.walls.isEnabled() && !MathUtility.canSeen(nearYx) && mc.player.fallDistance <= CombatUtility.getFallDistance(targetedEntity)) {
targetPitchx = -90.0F;
}
float finalYaw = currentYawx + (yawDiffx > 0.0F ? clampedYaw : -clampedYaw);
float finalPitch = MathHelper.clamp(currentPitchx + (pitchDiffx > 0.0F ? clampedPitch : -clampedPitch), -80.0F, 70.0F);
float gcd = this.getGCDValue();
finalYaw -= (finalYaw - currentYawx) % gcd;
finalPitch -= (finalPitch - currentPitchx) % gcd;
long timeElapsed = System.currentTimeMillis() - this.rotationStartTime;
float yawNoise = (float)this.noise.noise(timeElapsed * 5.0E-4);
float pitchNoise = (float)this.noise.noise(timeElapsed * 5.0E-4, 10.0);
float yawOffset = yawNoise * 25.0F * this.noiseFactor;
float pitchOffset = pitchNoise * 25.0F * this.noiseFactor;
float finalTargetYaw = finalYaw + yawOffset;
float finalTargetPitch = finalPitch + pitchOffset;
float totalDiff = Math.abs(yawDiffx) + Math.abs(pitchDiffx);
if (totalDiff < 10.0F) {
this.noiseFactor = Math.max(0.0F, this.noiseFactor - 0.05F);
}
handler.rotate(
new Rotation(finalTargetYaw, Math.clamp(finalTargetPitch, -90.0F, 90.0F)),
moveCorrection,
yawSpeed * 25.0F,
pitchSpeed * 25.0F,
MathUtility.random(30.0, 70.0),
RotationPriority.TO_TARGET
);
}
Последнее редактирование:
