Начинающий
- Статус
- Оффлайн
- Регистрация
- 8 Авг 2024
- Сообщения
- 509
- Реакции
- 2
- Выберите загрузчик игры
- Fabric
- Прочие моды
всем ку, обитатели югейма!
и вот, я снова в строю, и снова сливаю вам свойговнокод
сегодня я солью стрейфы на зенит
код:
пацаны только после публикации заметил, что забыл сделать проверку на сникинг
кому надо доделают)
и вот, я снова в строю, и снова сливаю вам свойговнокод
сегодня я солью стрейфы на зенит
код:
strafe.java:
package wtf.tokyoware.implement.features.modules.movement;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.option.KeyBinding;
import net.minecraft.entity.effect.StatusEffectInstance;
import net.minecraft.entity.effect.StatusEffects;
import net.minecraft.util.math.Vec3d;
import wtf.tokyoware.api.event.EventHandler;
import wtf.tokyoware.api.feature.module.Module;
import wtf.tokyoware.api.feature.module.ModuleCategory;
import wtf.tokyoware.api.feature.module.setting.implement.BooleanSetting;
import wtf.tokyoware.api.feature.module.setting.implement.SelectSetting;
import wtf.tokyoware.api.feature.module.setting.implement.ValueSetting;
import wtf.tokyoware.implement.events.player.MoveEvent;
import wtf.tokyoware.common.util.other.StopWatch;
import wtf.tokyoware.common.util.other.Instance;
@Getter
@FieldDefaults(level = AccessLevel.PRIVATE)
public class Strafe extends Module {
public static Strafe get() {
return Instance.get(Strafe.class);
}
// настройки ( перенес почти фулл стрейфы с exc recode ( моя старая тема ), переписал
final SelectSetting mode = new SelectSetting("Mode", "Что байпасим?")
.value("Default", "Matrix", "MetaHVH");
final BooleanSetting dmgBoost = new BooleanSetting("Damage Boost", "Буст при уроне (ХВХ)")
.setValue(false);
final ValueSetting koefBoosta = new ValueSetting("Boost Speed", "Скорость буста при уроне")
.setValue(0.7f).range(0.1f, 5.0f).step(0.1f)
.visible(dmgBoost::isValue);
final StopWatch timer = new StopWatch();
double prevSpeed = 0.0;
public Strafe() {
super("Strafe", "Strafe", ModuleCategory.MOVEMENT);
setup(mode, dmgBoost, koefBoosta);
}
// сами стрефы собственно говоря
@EventHandler
public void onMove(MoveEvent e) {
if (mc.player == null) return;
String m = mode.getSelected();
if (!isMove()) {
prevSpeed = 0;
return;
}
double spd = ckopoctb();
if (dmgBoost.isValue() && timer.finished(700L)) {
spd += koefBoosta.getValue();
timer.reset();
}
if (m.equals("Matrix")) {
matrix(e);
return;
}
if (m.equals("MetaHVH")) {
spd *= 1.2;
}
move(e, spd);
prevSpeed = spd;
}
// по идее небольшой обход под матрикс ( допустим скорость 5 бпс , а так будет +- 0.001 )
private void matrix(MoveEvent e) {
double spd = 0.25 - Math.random() * 0.001;
move(e, spd);
prevSpeed = spd;
}
// gpt solutions, вродь ворк
private double ckopoctb() {
double spd = 0.2873;
StatusEffectInstance eff = mc.player.getStatusEffect(StatusEffects.SPEED);
if (eff != null) spd *= 1.0 + 0.2 * (eff.getAmplifier() + 1);
return spd;
}
// движение по z, x лево-право
private void move(MoveEvent e, double spd) {
float yaw = mc.player.getYaw(1.0f);
float fwd = getFwd();
float str = getStr();
if (fwd == 0 && str == 0) return;
double radik = Math.toRadians(yaw);
double x = (str * Math.cos(radik) - fwd * Math.sin(radik)) * spd;
double z = (str * Math.sin(radik) + fwd * Math.cos(radik)) * spd;
e.setMovement(new Vec3d(x, e.getMovement().y, z));
}
//проверка на движение для предовтращения ошибок
private boolean isMove() {
return mc.options.forwardKey.isPressed() || mc.options.backKey.isPressed() || mc.options.leftKey.isPressed() || mc.options.rightKey.isPressed();
}
// движение вперед - назад ( гетаем клавишу, если w преобразуем в 1, s в -1 )
private float getFwd() {
KeyBinding w = mc.options.forwardKey;
KeyBinding s = mc.options.backKey;
return (w.isPressed() ? 1 : 0) - (s.isPressed() ? 1 : 0);
}
// так же само только лево - право, при этом все гетаем в +1 чтобы при нажатии налево не шло вправо или наоборот
private float getStr() {
KeyBinding a = mc.options.leftKey;
KeyBinding d = mc.options.rightKey;
return (a.isPressed() ? 1 : 0) - (d.isPressed() ? 1 : 0);
}
}
//p.s код писался в 5 утра, и getStr getFwd move можно было обьеденить, но мне ща лень
Пожалуйста, авторизуйтесь для просмотра ссылки.
пацаны только после публикации заметил, что забыл сделать проверку на сникинг
кому надо доделают)
