Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос MoveFix

  • Автор темы Автор темы Rokbolyt
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
10 Янв 2025
Сообщения
38
Реакции
1
как сделать мувфикс?Мне гпт что то написала
package fun.cosmo.mixin;

import fun.cosmo.Mytheria;
import fun.cosmo.main.module.combat.AttackAura;
import fun.cosmo.main.module.combat.aura.angle.Angle;
import fun.cosmo.main.module.combat.aura.rotation.RotationController;
import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.util.math.MathHelper;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(ClientPlayerEntity.class)
public class RotationMovementMixin {

private float originalYaw = Float.NaN;

@Inject(method = "tickMovement", at = @At("HEAD"))
private void onTickMovementPre(CallbackInfo ci) {
ClientPlayerEntity player = (ClientPlayerEntity) (Object) this;
Angle serverAngle = RotationController.INSTANCE.getServerAngle();

AttackAura aura = (AttackAura) Mytheria.getInstance().getModuleManager().find(AttackAura.class);

if (aura == null || !aura.isEnabled()
|| serverAngle == null) {
return;
}

this.originalYaw = player.getYaw();
player.setYaw(serverAngle.getYaw());
}

@Inject(method = "tickMovement", at = @At("RETURN"))
private void onTickMovementPost(CallbackInfo ci) {
ClientPlayerEntity player = (ClientPlayerEntity) (Object) this;

if (!Float.isNaN(this.originalYaw)) {
player.setYaw(this.originalYaw);
this.originalYaw = Float.NaN;
}
}
}
,но эта херня двигать локально тело , а это не оч
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ХАХАХХАХАХАХАХХАХАХА player.setYaw(this.originalYaw);
 
как сделать мувфикс?Мне гпт что то написала
package fun.cosmo.mixin;

import fun.cosmo.Mytheria;
import fun.cosmo.main.module.combat.AttackAura;
import fun.cosmo.main.module.combat.aura.angle.Angle;
import fun.cosmo.main.module.combat.aura.rotation.RotationController;
import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.util.math.MathHelper;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(ClientPlayerEntity.class)
public class RotationMovementMixin {

private float originalYaw = Float.NaN;

@Inject(method = "tickMovement", at = @At("HEAD"))
private void onTickMovementPre(CallbackInfo ci) {
ClientPlayerEntity player = (ClientPlayerEntity) (Object) this;
Angle serverAngle = RotationController.INSTANCE.getServerAngle();

AttackAura aura = (AttackAura) Mytheria.getInstance().getModuleManager().find(AttackAura.class);

if (aura == null || !aura.isEnabled()
|| serverAngle == null) {
return;
}

this.originalYaw = player.getYaw();
player.setYaw(serverAngle.getYaw());
}

@Inject(method = "tickMovement", at = @At("RETURN"))
private void onTickMovementPost(CallbackInfo ci) {
ClientPlayerEntity player = (ClientPlayerEntity) (Object) this;

if (!Float.isNaN(this.originalYaw)) {
player.setYaw(this.originalYaw);
this.originalYaw = Float.NaN;
}
}
}
,но эта херня двигать локально тело , а это не оч
Разобрать код в майне, где используется углы игрока для движения? Нееее
Спросить гпт и писать на югейм? Даааа
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ну скажи тогда как НУЖНО делать
миксин делаешь на KeyboardInput в методе tick там где создается PlayerInput - его и перехватываешь берешь свой серверный угол из твоего ротейт контроллера считаешь дельту между ним и визуальным yaw игрока forward/backward/left/right превращаешь в -1 0 1 потом поворачиваешь этот вектор на дельту через cos/sin (новый стрейф = стрейф* cos - форвард * sin новый форвард = форвард * cos + стрейф * sin) округляешь и обратно в булевы флаги запихиваешь в новый PlayerInput который возвращаешь
 
миксин делаешь на KeyboardInput в методе tick там где создается PlayerInput - его и перехватываешь берешь свой серверный угол из твоего ротейт контроллера считаешь дельту между ним и визуальным yaw игрока forward/backward/left/right превращаешь в -1 0 1 потом поворачиваешь этот вектор на дельту через cos/sin (новый стрейф = стрейф* cos - форвард * sin новый форвард = форвард * cos + стрейф * sin) округляешь и обратно в булевы флаги запихиваешь в новый PlayerInput который возвращаешь
Спасибо
 
Назад
Сверху Снизу