всем ку помогите перенести функцию с зенита на 3.1
Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.
Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.
Курсор в помощьвсем ку помогите перенести функцию с зенита на 3.1
Скрытое содержимое
зенит 1.21.4 и даже если это 1.16.5 там своя база так что нетвсем ку помогите перенести функцию с зенита на 3.1
Скрытое содержимое
Да, попроси его он сделает все, выбери Клауд 4.5зенит 1.21.4 и даже если это 1.16.5 там своя база так что нет
package im.expensive.functions.impl.movement;
import com.google.common.eventbus.Subscribe;
import im.expensive.Expensive;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.impl.combat.KillAura;
import im.expensive.functions.settings.impl.BooleanSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.utils.player.MoveUtils;
import net.minecraft.entity.LivingEntity;
@FunctionRegister(name = "StrafeRage", type = Category.Movement)
public class StrafeRage extends Function {
private final BooleanSetting 跳跃 = new BooleanSetting("Jump", true);
private final SliderSetting 距离 = new SliderSetting("Distance", 2.5f, 0.5f, 6.0f, 0.5f);
private final SliderSetting 速度 = new SliderSetting("Speed", 1.8f, 0.5f, 5.0f, 0.5f);
private final BooleanSetting 激进模式 = new BooleanSetting("Aggressive", true);
private final SliderSetting 环绕半径 = new SliderSetting("StrafeRadius", 1.5f, 0.5f, 4.0f, 0.5f);
private boolean 切换方向 = false;
private int 环绕计时器 = 0;
public StrafeRage() {
addSettings(跳跃, 距离, 速度, 激进模式, 环绕半径);
}
@Override
public void onEnable() {
super.onEnable();
切换方向 = false;
环绕计时器 = 0;
}
@Override
public void onDisable() {
super.onDisable();
if (mc.player != null && mc.player.movementInput != null) {
mc.player.movementInput.moveForward = 0.0f;
mc.player.movementInput.moveStrafe = 0.0f;
}
}
private boolean 可环绕() {
if (mc.player == null || mc.world == null) return false;
return !mc.player.abilities.isFlying;
}
@Subscribe
private void onPast(EventUpdate 事件更新) {
if (!可环绕()) return;
KillAura 自动攻击 = Expensive.getInstance().getFunctionRegistry().getKillAura();
if (自动攻击 != null && 自动攻击.getTarget() != null && 自动攻击.isState()) {
LivingEntity 目标 = 自动攻击.getTarget();
if (mc.player.isOnGround() && 跳跃.get()) {
mc.player.jump();
}
double 当前距离 = Math.sqrt(mc.player.getDistanceSq(目标));
double 移动速度 = 速度.get();
if (当前距离 > 距离.get()) {
double 差值X = 目标.getPosX() - mc.player.getPosX();
double 差值Z = 目标.getPosZ() - mc.player.getPosZ();
double 目标距离 = Math.sqrt(差值X * 差值X + 差值Z * 差值Z);
if (目标距离 > 0) {
double 标准化X = 差值X / 目标距离;
double 标准化Z = 差值Z / 目标距离;
double 最终速度 = 激进模式.get() ? 移动速度 * 1.2 : 移动速度;
mc.player.setVelocity(
标准化X * 最终速度 * 0.3,
mc.player.motion.getY(),
标准化Z * 最终速度 * 0.3
);
mc.player.movementInput.moveForward = 1.0f;
mc.player.movementInput.moveStrafe = 0.0f;
double 偏航角 = Math.toDegrees(Math.atan2(差值Z, 差值X)) - 90.0;
float 旧偏航 = mc.player.rotationYaw;
mc.player.setRotation((float) 偏航角, mc.player.rotationPitch);
MoveUtils.setMotion(最终速度 * 0.2);
}
} else {
环绕计时器++;
if (环绕计时器 > 40) {
切换方向 = !切换方向;
环绕计时器 = 0;
}
double 角度 = Math.atan2(mc.player.getPosZ() - 目标.getPosZ(), mc.player.getPosX() - 目标.getPosX());
角度 += 切换方向 ? 0.15 : -0.15;
double 环绕X = 目标.getPosX() + 环绕半径.get() * Math.cos(角度);
double 环绕Z = 目标.getPosZ() + 环绕半径.get() * Math.sin(角度);
double 环绕差值X = 环绕X - mc.player.getPosX();
double 环绕差值Z = 环绕Z - mc.player.getPosZ();
double 环绕距离 = Math.sqrt(环绕差值X * 环绕差值X + 环绕差值Z * 环绕差值Z);
if (环绕距离 > 0.1) {
double 环绕标准化X = 环绕差值X / 环绕距离;
double 环绕标准化Z = 环绕差值Z / 环绕距离;
double 环绕速度 = 移动速度 * 0.8;
mc.player.setVelocity(
环绕标准化X * 环绕速度 * 0.25,
mc.player.getMotion().getY(),
环绕标准化Z * 环绕速度 * 0.25
);
mc.player.movementInput.moveForward = 0.8f;
mc.player.movementInput.moveStrafe = 切换方向 ? 0.6f : -0.6f;
double 环绕偏航角 = Math.toDegrees(Math.atan2(环绕差值Z, 环绕差值X)) - 90.0;
float 旧偏航角 = mc.player.rotationYaw;
mc.player.setRotation((float) 环绕偏航角, mc.player.rotationPitch);
MoveUtils.setMotion(环绕速度 * 0.15);
mc.player.setRotation(旧偏航角, mc.player.rotationPitch);
}
}
}
}
}
ЫВХАЫВЪАЫЪВАЪЫВАЪВЫЪВЫЪВахЫВХАЫВХАЫХВАХВЫХА ЧТО ЭТОКод:package im.expensive.functions.impl.movement; import com.google.common.eventbus.Subscribe; import im.expensive.Expensive; import im.expensive.events.EventUpdate; import im.expensive.functions.api.Category; import im.expensive.functions.api.Function; import im.expensive.functions.api.FunctionRegister; import im.expensive.functions.impl.combat.KillAura; import im.expensive.functions.settings.impl.BooleanSetting; import im.expensive.functions.settings.impl.SliderSetting; import im.expensive.utils.player.MoveUtils; import net.minecraft.entity.LivingEntity; @FunctionRegister(name = "StrafeRage", type = Category.Movement) public class StrafeRage extends Function { private final BooleanSetting 跳跃 = new BooleanSetting("Jump", true); private final SliderSetting 距离 = new SliderSetting("Distance", 2.5f, 0.5f, 6.0f, 0.5f); private final SliderSetting 速度 = new SliderSetting("Speed", 1.8f, 0.5f, 5.0f, 0.5f); private final BooleanSetting 激进模式 = new BooleanSetting("Aggressive", true); private final SliderSetting 环绕半径 = new SliderSetting("StrafeRadius", 1.5f, 0.5f, 4.0f, 0.5f); private boolean 切换方向 = false; private int 环绕计时器 = 0; public StrafeRage() { addSettings(跳跃, 距离, 速度, 激进模式, 环绕半径); } @Override public void onEnable() { super.onEnable(); 切换方向 = false; 环绕计时器 = 0; } @Override public void onDisable() { super.onDisable(); if (mc.player != null && mc.player.movementInput != null) { mc.player.movementInput.moveForward = 0.0f; mc.player.movementInput.moveStrafe = 0.0f; } } private boolean 可环绕() { if (mc.player == null || mc.world == null) return false; return !mc.player.abilities.isFlying; } @Subscribe private void onPast(EventUpdate 事件更新) { if (!可环绕()) return; KillAura 自动攻击 = Expensive.getInstance().getFunctionRegistry().getKillAura(); if (自动攻击 != null && 自动攻击.getTarget() != null && 自动攻击.isState()) { LivingEntity 目标 = 自动攻击.getTarget(); if (mc.player.isOnGround() && 跳跃.get()) { mc.player.jump(); } double 当前距离 = Math.sqrt(mc.player.getDistanceSq(目标)); double 移动速度 = 速度.get(); if (当前距离 > 距离.get()) { double 差值X = 目标.getPosX() - mc.player.getPosX(); double 差值Z = 目标.getPosZ() - mc.player.getPosZ(); double 目标距离 = Math.sqrt(差值X * 差值X + 差值Z * 差值Z); if (目标距离 > 0) { double 标准化X = 差值X / 目标距离; double 标准化Z = 差值Z / 目标距离; double 最终速度 = 激进模式.get() ? 移动速度 * 1.2 : 移动速度; mc.player.setVelocity( 标准化X * 最终速度 * 0.3, mc.player.motion.getY(), 标准化Z * 最终速度 * 0.3 ); mc.player.movementInput.moveForward = 1.0f; mc.player.movementInput.moveStrafe = 0.0f; double 偏航角 = Math.toDegrees(Math.atan2(差值Z, 差值X)) - 90.0; float 旧偏航 = mc.player.rotationYaw; mc.player.setRotation((float) 偏航角, mc.player.rotationPitch); MoveUtils.setMotion(最终速度 * 0.2); } } else { 环绕计时器++; if (环绕计时器 > 40) { 切换方向 = !切换方向; 环绕计时器 = 0; } double 角度 = Math.atan2(mc.player.getPosZ() - 目标.getPosZ(), mc.player.getPosX() - 目标.getPosX()); 角度 += 切换方向 ? 0.15 : -0.15; double 环绕X = 目标.getPosX() + 环绕半径.get() * Math.cos(角度); double 环绕Z = 目标.getPosZ() + 环绕半径.get() * Math.sin(角度); double 环绕差值X = 环绕X - mc.player.getPosX(); double 环绕差值Z = 环绕Z - mc.player.getPosZ(); double 环绕距离 = Math.sqrt(环绕差值X * 环绕差值X + 环绕差值Z * 环绕差值Z); if (环绕距离 > 0.1) { double 环绕标准化X = 环绕差值X / 环绕距离; double 环绕标准化Z = 环绕差值Z / 环绕距离; double 环绕速度 = 移动速度 * 0.8; mc.player.setVelocity( 环绕标准化X * 环绕速度 * 0.25, mc.player.getMotion().getY(), 环绕标准化Z * 环绕速度 * 0.25 ); mc.player.movementInput.moveForward = 0.8f; mc.player.movementInput.moveStrafe = 切换方向 ? 0.6f : -0.6f; double 环绕偏航角 = Math.toDegrees(Math.atan2(环绕差值Z, 环绕差值X)) - 90.0; float 旧偏航角 = mc.player.rotationYaw; mc.player.setRotation((float) 环绕偏航角, mc.player.rotationPitch); MoveUtils.setMotion(环绕速度 * 0.15); mc.player.setRotation(旧偏航角, mc.player.rotationPitch); } } } } }
дикпик за 1 промт перенес, че там сложного такого
СХХАХАХ ДИПСИК НА РОДНОМ ЗАГОВОРИЛКод:package im.expensive.functions.impl.movement; import com.google.common.eventbus.Subscribe; import im.expensive.Expensive; import im.expensive.events.EventUpdate; import im.expensive.functions.api.Category; import im.expensive.functions.api.Function; import im.expensive.functions.api.FunctionRegister; import im.expensive.functions.impl.combat.KillAura; import im.expensive.functions.settings.impl.BooleanSetting; import im.expensive.functions.settings.impl.SliderSetting; import im.expensive.utils.player.MoveUtils; import net.minecraft.entity.LivingEntity; @FunctionRegister(name = "StrafeRage", type = Category.Movement) public class StrafeRage extends Function { private final BooleanSetting 跳跃 = new BooleanSetting("Jump", true); private final SliderSetting 距离 = new SliderSetting("Distance", 2.5f, 0.5f, 6.0f, 0.5f); private final SliderSetting 速度 = new SliderSetting("Speed", 1.8f, 0.5f, 5.0f, 0.5f); private final BooleanSetting 激进模式 = new BooleanSetting("Aggressive", true); private final SliderSetting 环绕半径 = new SliderSetting("StrafeRadius", 1.5f, 0.5f, 4.0f, 0.5f); private boolean 切换方向 = false; private int 环绕计时器 = 0; public StrafeRage() { addSettings(跳跃, 距离, 速度, 激进模式, 环绕半径); } @Override public void onEnable() { super.onEnable(); 切换方向 = false; 环绕计时器 = 0; } @Override public void onDisable() { super.onDisable(); if (mc.player != null && mc.player.movementInput != null) { mc.player.movementInput.moveForward = 0.0f; mc.player.movementInput.moveStrafe = 0.0f; } } private boolean 可环绕() { if (mc.player == null || mc.world == null) return false; return !mc.player.abilities.isFlying; } @Subscribe private void onPast(EventUpdate 事件更新) { if (!可环绕()) return; KillAura 自动攻击 = Expensive.getInstance().getFunctionRegistry().getKillAura(); if (自动攻击 != null && 自动攻击.getTarget() != null && 自动攻击.isState()) { LivingEntity 目标 = 自动攻击.getTarget(); if (mc.player.isOnGround() && 跳跃.get()) { mc.player.jump(); } double 当前距离 = Math.sqrt(mc.player.getDistanceSq(目标)); double 移动速度 = 速度.get(); if (当前距离 > 距离.get()) { double 差值X = 目标.getPosX() - mc.player.getPosX(); double 差值Z = 目标.getPosZ() - mc.player.getPosZ(); double 目标距离 = Math.sqrt(差值X * 差值X + 差值Z * 差值Z); if (目标距离 > 0) { double 标准化X = 差值X / 目标距离; double 标准化Z = 差值Z / 目标距离; double 最终速度 = 激进模式.get() ? 移动速度 * 1.2 : 移动速度; mc.player.setVelocity( 标准化X * 最终速度 * 0.3, mc.player.motion.getY(), 标准化Z * 最终速度 * 0.3 ); mc.player.movementInput.moveForward = 1.0f; mc.player.movementInput.moveStrafe = 0.0f; double 偏航角 = Math.toDegrees(Math.atan2(差值Z, 差值X)) - 90.0; float 旧偏航 = mc.player.rotationYaw; mc.player.setRotation((float) 偏航角, mc.player.rotationPitch); MoveUtils.setMotion(最终速度 * 0.2); } } else { 环绕计时器++; if (环绕计时器 > 40) { 切换方向 = !切换方向; 环绕计时器 = 0; } double 角度 = Math.atan2(mc.player.getPosZ() - 目标.getPosZ(), mc.player.getPosX() - 目标.getPosX()); 角度 += 切换方向 ? 0.15 : -0.15; double 环绕X = 目标.getPosX() + 环绕半径.get() * Math.cos(角度); double 环绕Z = 目标.getPosZ() + 环绕半径.get() * Math.sin(角度); double 环绕差值X = 环绕X - mc.player.getPosX(); double 环绕差值Z = 环绕Z - mc.player.getPosZ(); double 环绕距离 = Math.sqrt(环绕差值X * 环绕差值X + 环绕差值Z * 环绕差值Z); if (环绕距离 > 0.1) { double 环绕标准化X = 环绕差值X / 环绕距离; double 环绕标准化Z = 环绕差值Z / 环绕距离; double 环绕速度 = 移动速度 * 0.8; mc.player.setVelocity( 环绕标准化X * 环绕速度 * 0.25, mc.player.getMotion().getY(), 环绕标准化Z * 环绕速度 * 0.25 ); mc.player.movementInput.moveForward = 0.8f; mc.player.movementInput.moveStrafe = 切换方向 ? 0.6f : -0.6f; double 环绕偏航角 = Math.toDegrees(Math.atan2(环绕差值Z, 环绕差值X)) - 90.0; float 旧偏航角 = mc.player.rotationYaw; mc.player.setRotation((float) 环绕偏航角, mc.player.rotationPitch); MoveUtils.setMotion(环绕速度 * 0.15); mc.player.setRotation(旧偏航角, mc.player.rotationPitch); } } } } }
дикпик за 1 промт перенес, че там сложного такого
Ты зачем наложил маппинги с крутым дрипсикомКод:package im.expensive.functions.impl.movement; import com.google.common.eventbus.Subscribe; import im.expensive.Expensive; import im.expensive.events.EventUpdate; import im.expensive.functions.api.Category; import im.expensive.functions.api.Function; import im.expensive.functions.api.FunctionRegister; import im.expensive.functions.impl.combat.KillAura; import im.expensive.functions.settings.impl.BooleanSetting; import im.expensive.functions.settings.impl.SliderSetting; import im.expensive.utils.player.MoveUtils; import net.minecraft.entity.LivingEntity; @FunctionRegister(name = "StrafeRage", type = Category.Movement) public class StrafeRage extends Function { private final BooleanSetting 跳跃 = new BooleanSetting("Jump", true); private final SliderSetting 距离 = new SliderSetting("Distance", 2.5f, 0.5f, 6.0f, 0.5f); private final SliderSetting 速度 = new SliderSetting("Speed", 1.8f, 0.5f, 5.0f, 0.5f); private final BooleanSetting 激进模式 = new BooleanSetting("Aggressive", true); private final SliderSetting 环绕半径 = new SliderSetting("StrafeRadius", 1.5f, 0.5f, 4.0f, 0.5f); private boolean 切换方向 = false; private int 环绕计时器 = 0; public StrafeRage() { addSettings(跳跃, 距离, 速度, 激进模式, 环绕半径); } @Override public void onEnable() { super.onEnable(); 切换方向 = false; 环绕计时器 = 0; } @Override public void onDisable() { super.onDisable(); if (mc.player != null && mc.player.movementInput != null) { mc.player.movementInput.moveForward = 0.0f; mc.player.movementInput.moveStrafe = 0.0f; } } private boolean 可环绕() { if (mc.player == null || mc.world == null) return false; return !mc.player.abilities.isFlying; } @Subscribe private void onPast(EventUpdate 事件更新) { if (!可环绕()) return; KillAura 自动攻击 = Expensive.getInstance().getFunctionRegistry().getKillAura(); if (自动攻击 != null && 自动攻击.getTarget() != null && 自动攻击.isState()) { LivingEntity 目标 = 自动攻击.getTarget(); if (mc.player.isOnGround() && 跳跃.get()) { mc.player.jump(); } double 当前距离 = Math.sqrt(mc.player.getDistanceSq(目标)); double 移动速度 = 速度.get(); if (当前距离 > 距离.get()) { double 差值X = 目标.getPosX() - mc.player.getPosX(); double 差值Z = 目标.getPosZ() - mc.player.getPosZ(); double 目标距离 = Math.sqrt(差值X * 差值X + 差值Z * 差值Z); if (目标距离 > 0) { double 标准化X = 差值X / 目标距离; double 标准化Z = 差值Z / 目标距离; double 最终速度 = 激进模式.get() ? 移动速度 * 1.2 : 移动速度; mc.player.setVelocity( 标准化X * 最终速度 * 0.3, mc.player.motion.getY(), 标准化Z * 最终速度 * 0.3 ); mc.player.movementInput.moveForward = 1.0f; mc.player.movementInput.moveStrafe = 0.0f; double 偏航角 = Math.toDegrees(Math.atan2(差值Z, 差值X)) - 90.0; float 旧偏航 = mc.player.rotationYaw; mc.player.setRotation((float) 偏航角, mc.player.rotationPitch); MoveUtils.setMotion(最终速度 * 0.2); } } else { 环绕计时器++; if (环绕计时器 > 40) { 切换方向 = !切换方向; 环绕计时器 = 0; } double 角度 = Math.atan2(mc.player.getPosZ() - 目标.getPosZ(), mc.player.getPosX() - 目标.getPosX()); 角度 += 切换方向 ? 0.15 : -0.15; double 环绕X = 目标.getPosX() + 环绕半径.get() * Math.cos(角度); double 环绕Z = 目标.getPosZ() + 环绕半径.get() * Math.sin(角度); double 环绕差值X = 环绕X - mc.player.getPosX(); double 环绕差值Z = 环绕Z - mc.player.getPosZ(); double 环绕距离 = Math.sqrt(环绕差值X * 环绕差值X + 环绕差值Z * 环绕差值Z); if (环绕距离 > 0.1) { double 环绕标准化X = 环绕差值X / 环绕距离; double 环绕标准化Z = 环绕差值Z / 环绕距离; double 环绕速度 = 移动速度 * 0.8; mc.player.setVelocity( 环绕标准化X * 环绕速度 * 0.25, mc.player.getMotion().getY(), 环绕标准化Z * 环绕速度 * 0.25 ); mc.player.movementInput.moveForward = 0.8f; mc.player.movementInput.moveStrafe = 切换方向 ? 0.6f : -0.6f; double 环绕偏航角 = Math.toDegrees(Math.atan2(环绕差值Z, 环绕差值X)) - 90.0; float 旧偏航角 = mc.player.rotationYaw; mc.player.setRotation((float) 环绕偏航角, mc.player.rotationPitch); MoveUtils.setMotion(环绕速度 * 0.15); mc.player.setRotation(旧偏航角, mc.player.rotationPitch); } } } } }
дикпик за 1 промт перенес, че там сложного такого
так мне похуй на типа и я юзаю клауд он имбаДа, попроси его он сделает все, выбери Клауд 4.5
ХАХАХХАХА ЧТО ЭТО ЗА ПИЗДЕЦКод:package im.expensive.functions.impl.movement; import com.google.common.eventbus.Subscribe; import im.expensive.Expensive; import im.expensive.events.EventUpdate; import im.expensive.functions.api.Category; import im.expensive.functions.api.Function; import im.expensive.functions.api.FunctionRegister; import im.expensive.functions.impl.combat.KillAura; import im.expensive.functions.settings.impl.BooleanSetting; import im.expensive.functions.settings.impl.SliderSetting; import im.expensive.utils.player.MoveUtils; import net.minecraft.entity.LivingEntity; @FunctionRegister(name = "StrafeRage", type = Category.Movement) public class StrafeRage extends Function { private final BooleanSetting 跳跃 = new BooleanSetting("Jump", true); private final SliderSetting 距离 = new SliderSetting("Distance", 2.5f, 0.5f, 6.0f, 0.5f); private final SliderSetting 速度 = new SliderSetting("Speed", 1.8f, 0.5f, 5.0f, 0.5f); private final BooleanSetting 激进模式 = new BooleanSetting("Aggressive", true); private final SliderSetting 环绕半径 = new SliderSetting("StrafeRadius", 1.5f, 0.5f, 4.0f, 0.5f); private boolean 切换方向 = false; private int 环绕计时器 = 0; public StrafeRage() { addSettings(跳跃, 距离, 速度, 激进模式, 环绕半径); } @Override public void onEnable() { super.onEnable(); 切换方向 = false; 环绕计时器 = 0; } @Override public void onDisable() { super.onDisable(); if (mc.player != null && mc.player.movementInput != null) { mc.player.movementInput.moveForward = 0.0f; mc.player.movementInput.moveStrafe = 0.0f; } } private boolean 可环绕() { if (mc.player == null || mc.world == null) return false; return !mc.player.abilities.isFlying; } @Subscribe private void onPast(EventUpdate 事件更新) { if (!可环绕()) return; KillAura 自动攻击 = Expensive.getInstance().getFunctionRegistry().getKillAura(); if (自动攻击 != null && 自动攻击.getTarget() != null && 自动攻击.isState()) { LivingEntity 目标 = 自动攻击.getTarget(); if (mc.player.isOnGround() && 跳跃.get()) { mc.player.jump(); } double 当前距离 = Math.sqrt(mc.player.getDistanceSq(目标)); double 移动速度 = 速度.get(); if (当前距离 > 距离.get()) { double 差值X = 目标.getPosX() - mc.player.getPosX(); double 差值Z = 目标.getPosZ() - mc.player.getPosZ(); double 目标距离 = Math.sqrt(差值X * 差值X + 差值Z * 差值Z); if (目标距离 > 0) { double 标准化X = 差值X / 目标距离; double 标准化Z = 差值Z / 目标距离; double 最终速度 = 激进模式.get() ? 移动速度 * 1.2 : 移动速度; mc.player.setVelocity( 标准化X * 最终速度 * 0.3, mc.player.motion.getY(), 标准化Z * 最终速度 * 0.3 ); mc.player.movementInput.moveForward = 1.0f; mc.player.movementInput.moveStrafe = 0.0f; double 偏航角 = Math.toDegrees(Math.atan2(差值Z, 差值X)) - 90.0; float 旧偏航 = mc.player.rotationYaw; mc.player.setRotation((float) 偏航角, mc.player.rotationPitch); MoveUtils.setMotion(最终速度 * 0.2); } } else { 环绕计时器++; if (环绕计时器 > 40) { 切换方向 = !切换方向; 环绕计时器 = 0; } double 角度 = Math.atan2(mc.player.getPosZ() - 目标.getPosZ(), mc.player.getPosX() - 目标.getPosX()); 角度 += 切换方向 ? 0.15 : -0.15; double 环绕X = 目标.getPosX() + 环绕半径.get() * Math.cos(角度); double 环绕Z = 目标.getPosZ() + 环绕半径.get() * Math.sin(角度); double 环绕差值X = 环绕X - mc.player.getPosX(); double 环绕差值Z = 环绕Z - mc.player.getPosZ(); double 环绕距离 = Math.sqrt(环绕差值X * 环绕差值X + 环绕差值Z * 环绕差值Z); if (环绕距离 > 0.1) { double 环绕标准化X = 环绕差值X / 环绕距离; double 环绕标准化Z = 环绕差值Z / 环绕距离; double 环绕速度 = 移动速度 * 0.8; mc.player.setVelocity( 环绕标准化X * 环绕速度 * 0.25, mc.player.getMotion().getY(), 环绕标准化Z * 环绕速度 * 0.25 ); mc.player.movementInput.moveForward = 0.8f; mc.player.movementInput.moveStrafe = 切换方向 ? 0.6f : -0.6f; double 环绕偏航角 = Math.toDegrees(Math.atan2(环绕差值Z, 环绕差值X)) - 90.0; float 旧偏航角 = mc.player.rotationYaw; mc.player.setRotation((float) 环绕偏航角, mc.player.rotationPitch); MoveUtils.setMotion(环绕速度 * 0.15); mc.player.setRotation(旧偏航角, mc.player.rotationPitch); } } } } }
дикпик за 1 промт перенес, че там сложного такого
Код:package im.expensive.functions.impl.movement; import com.google.common.eventbus.Subscribe; import im.expensive.Expensive; import im.expensive.events.EventUpdate; import im.expensive.functions.api.Category; import im.expensive.functions.api.Function; import im.expensive.functions.api.FunctionRegister; import im.expensive.functions.impl.combat.KillAura; import im.expensive.functions.settings.impl.BooleanSetting; import im.expensive.functions.settings.impl.SliderSetting; import im.expensive.utils.player.MoveUtils; import net.minecraft.entity.LivingEntity; @FunctionRegister(name = "StrafeRage", type = Category.Movement) public class StrafeRage extends Function { private final BooleanSetting 跳跃 = new BooleanSetting("Jump", true); private final SliderSetting 距离 = new SliderSetting("Distance", 2.5f, 0.5f, 6.0f, 0.5f); private final SliderSetting 速度 = new SliderSetting("Speed", 1.8f, 0.5f, 5.0f, 0.5f); private final BooleanSetting 激进模式 = new BooleanSetting("Aggressive", true); private final SliderSetting 环绕半径 = new SliderSetting("StrafeRadius", 1.5f, 0.5f, 4.0f, 0.5f); private boolean 切换方向 = false; private int 环绕计时器 = 0; public StrafeRage() { addSettings(跳跃, 距离, 速度, 激进模式, 环绕半径); } @Override public void onEnable() { super.onEnable(); 切换方向 = false; 环绕计时器 = 0; } @Override public void onDisable() { super.onDisable(); if (mc.player != null && mc.player.movementInput != null) { mc.player.movementInput.moveForward = 0.0f; mc.player.movementInput.moveStrafe = 0.0f; } } private boolean 可环绕() { if (mc.player == null || mc.world == null) return false; return !mc.player.abilities.isFlying; } @Subscribe private void onPast(EventUpdate 事件更新) { if (!可环绕()) return; KillAura 自动攻击 = Expensive.getInstance().getFunctionRegistry().getKillAura(); if (自动攻击 != null && 自动攻击.getTarget() != null && 自动攻击.isState()) { LivingEntity 目标 = 自动攻击.getTarget(); if (mc.player.isOnGround() && 跳跃.get()) { mc.player.jump(); } double 当前距离 = Math.sqrt(mc.player.getDistanceSq(目标)); double 移动速度 = 速度.get(); if (当前距离 > 距离.get()) { double 差值X = 目标.getPosX() - mc.player.getPosX(); double 差值Z = 目标.getPosZ() - mc.player.getPosZ(); double 目标距离 = Math.sqrt(差值X * 差值X + 差值Z * 差值Z); if (目标距离 > 0) { double 标准化X = 差值X / 目标距离; double 标准化Z = 差值Z / 目标距离; double 最终速度 = 激进模式.get() ? 移动速度 * 1.2 : 移动速度; mc.player.setVelocity( 标准化X * 最终速度 * 0.3, mc.player.motion.getY(), 标准化Z * 最终速度 * 0.3 ); mc.player.movementInput.moveForward = 1.0f; mc.player.movementInput.moveStrafe = 0.0f; double 偏航角 = Math.toDegrees(Math.atan2(差值Z, 差值X)) - 90.0; float 旧偏航 = mc.player.rotationYaw; mc.player.setRotation((float) 偏航角, mc.player.rotationPitch); MoveUtils.setMotion(最终速度 * 0.2); } } else { 环绕计时器++; if (环绕计时器 > 40) { 切换方向 = !切换方向; 环绕计时器 = 0; } double 角度 = Math.atan2(mc.player.getPosZ() - 目标.getPosZ(), mc.player.getPosX() - 目标.getPosX()); 角度 += 切换方向 ? 0.15 : -0.15; double 环绕X = 目标.getPosX() + 环绕半径.get() * Math.cos(角度); double 环绕Z = 目标.getPosZ() + 环绕半径.get() * Math.sin(角度); double 环绕差值X = 环绕X - mc.player.getPosX(); double 环绕差值Z = 环绕Z - mc.player.getPosZ(); double 环绕距离 = Math.sqrt(环绕差值X * 环绕差值X + 环绕差值Z * 环绕差值Z); if (环绕距离 > 0.1) { double 环绕标准化X = 环绕差值X / 环绕距离; double 环绕标准化Z = 环绕差值Z / 环绕距离; double 环绕速度 = 移动速度 * 0.8; mc.player.setVelocity( 环绕标准化X * 环绕速度 * 0.25, mc.player.getMotion().getY(), 环绕标准化Z * 环绕速度 * 0.25 ); mc.player.movementInput.moveForward = 0.8f; mc.player.movementInput.moveStrafe = 切换方向 ? 0.6f : -0.6f; double 环绕偏航角 = Math.toDegrees(Math.atan2(环绕差值Z, 环绕差值X)) - 90.0; float 旧偏航角 = mc.player.rotationYaw; mc.player.setRotation((float) 环绕偏航角, mc.player.rotationPitch); MoveUtils.setMotion(环绕速度 * 0.15); mc.player.setRotation(旧偏航角, mc.player.rotationPitch); } } } } }
дикпик за 1 промт перенес, че там сложного такого
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz