-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Всем привет! Я начинающий кодер. Решил вот поделиться с вами своим первым работающим обходом :) Данный спидхак работает по принципу буста игрока от столкновения с сущностью и ускоряет примерно в 3 раза. Я проверял его на анархии где стоит Grim и на сервере с мини-играми где стоит Matrix. И там и там модуль показал себя отлично! Сливаю вам, чтобы вы тоже смогли быстро бегать как и я. Сам модуль написал на базе Meteor Client 1.20.4 так что всё что нужно сделать, это создать новый класс в базе и добавить в список модулей. И да, я знаю, что скорее всего, до этого метода обхода додумался кто-то до меня, ну да ладно
Java:
/*
* This file is part of the Meteor Client distribution (https://github.com/MeteorDevelopment/meteor-client).
* Copyright (c) Meteor Development.
*/
package meteordevelopment.meteorclient.systems.modules.movement;
import meteordevelopment.meteorclient.events.game.GameLeftEvent;
import meteordevelopment.meteorclient.events.world.TickEvent;
import meteordevelopment.meteorclient.settings.*;
import meteordevelopment.meteorclient.systems.modules.Categories;
import meteordevelopment.meteorclient.systems.modules.Module;
import meteordevelopment.orbit.EventHandler;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.decoration.ArmorStandEntity;
import net.minecraft.entity.vehicle.BoatEntity;
public class CollisionBoost extends Module {
private final SettingGroup sgGeneral = settings.getDefaultGroup();
// Настройка для включения/отключения столкновений с ArmorStand
private final Setting<Boolean> armorStands = sgGeneral.add(new BoolSetting.Builder()
.name("armor-stands")
.description("Учитывать столкновения с ArmorStand.")
.defaultValue(false)
.build()
);
// Настройка для ускорения
private final Setting<Double> speedMultiplier = sgGeneral.add(new DoubleSetting.Builder()
.name("speed-multiplier")
.description("Множитель скорости на основе количества столкновений.")
.defaultValue(0.08)
.min(0.01)
.sliderMax(1.0)
.build()
);
// Настройка для максимального количества столкновений
private final Setting<Integer> maxCollisions = sgGeneral.add(new IntSetting.Builder()
.name("max-collisions")
.description("Максимальное количество столкновений для ускорения.")
.defaultValue(5)
.min(1)
.sliderMax(10)
.build()
);
public CollisionBoost() {
super(Categories.Movement, "collision-boost", "Ускоряет игрока в зависимости от количества столкновений с объектами.");
}
@Override
public void onDeactivate() {
// Сбрасываем скорость игрока при выключении модуля
mc.player.setVelocity(0, mc.player.getVelocity().y, 0);
}
@EventHandler
private void onTick(TickEvent.Post event) {
if (mc.player == null || mc.world == null) return;
// Подсчитываем количество столкновений
int collisions = 0;
for (Entity ent : mc.world.getEntities()) {
if (ent != mc.player &&
(!(ent instanceof ArmorStandEntity) || armorStands.get()) &&
(ent instanceof LivingEntity || ent instanceof BoatEntity) &&
mc.player.getBoundingBox().expand(1.0).intersects(ent.getBoundingBox())) {
collisions++;
}
}
// Ограничиваем количество столкновений до максимального значения
if (collisions > maxCollisions.get()) {
collisions = maxCollisions.get();
}
// Увеличиваем скорость игрока
double speed = speedMultiplier.get() * collisions;
double[] motion = calculateMotion(speed);
mc.player.addVelocity(motion[0], 0, motion[1]);
}
// Метод для расчета движения вперед
private double[] calculateMotion(double speed) {
double yaw = Math.toRadians(mc.player.getYaw());
double x = -Math.sin(yaw) * speed;
double z = Math.cos(yaw) * speed;
return new double[] { x, z };
}
}