-
Автор темы
- #1
- Выберите загрузчик игры
- Vanilla, Forge
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Мой второй пост!
Я бы не назвал это прям крипер фармом, но думаюдля пастерков пойдет.
я тупо изменил тригербот и добавил автонаводку и автобег к мобам
СС нет чекайте сами
Я бы не назвал это прям крипер фармом, но думаюдля пастерков пойдет.
я тупо изменил тригербот и добавил автонаводку и автобег к мобам
СС нет чекайте сами
котакбас:
package im.Nexgen.functions.impl.combat;
import com.google.common.eventbus.Subscribe;
import im.Nexgen.cmd.friends.FriendStorage;
import im.Nexgen.functions.api.Category;
import im.Nexgen.functions.api.Function;
import im.Nexgen.utils.math.StopWatch;
import im.Nexgen.utils.player.AttackUtil;
import im.Nexgen.utils.player.InventoryUtil;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.util.Hand;
import net.minecraft.util.math.EntityRayTraceResult;
import net.minecraft.util.math.RayTraceResult;
import im.Nexgen.events.EventUpdate;
import im.Nexgen.functions.api.FunctionRegister;
import im.Nexgen.functions.settings.impl.BooleanSetting;
import java.util.List;
import java.util.stream.Collectors;
@FunctionRegister(name = "CreeperFarm", type = Category.Combat)
public class MobFarm extends Function {
private final BooleanSetting players = new BooleanSetting("Игроки", true);
private final BooleanSetting mobs = new BooleanSetting("Мобы", true);
private final BooleanSetting animals = new BooleanSetting("Животные", true);
private final BooleanSetting onlyCrit = new BooleanSetting("Только криты", true);
private final BooleanSetting shieldBreak = new BooleanSetting("Ломать щит", false);
private final BooleanSetting friend = new BooleanSetting("Не бить друзей", true);
public MobFarm() {
addSettings(players, mobs, animals, onlyCrit, shieldBreak, friend);
}
private final StopWatch stopWatch = new StopWatch();
[USER=1474073]@Subscribe[/USER]
public void onUpdate(EventUpdate e) {
Entity entity = getClosestValidEntity();
if (entity == null || mc.player == null) {
return;
}
moveToEntity(entity); // А это автобег к цели
lookAtEntity(entity); // крч это автонаводка
if (shouldAttack()) {
stopWatch.setLastMS(500);
attackEntity(entity);
}
}
private boolean shouldAttack() {
return AttackUtil.isPlayerFalling(onlyCrit.get(), true, false) && stopWatch.hasTimeElapsed();
}
private void attackEntity(Entity entity) {
boolean shouldStopSprinting = false;
if (onlyCrit.get() && CEntityActionPacket.lastUpdatedSprint) {
mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.STOP_SPRINTING));
shouldStopSprinting = true;
}
mc.playerController.attackEntity(mc.player, entity);
mc.player.swingArm(Hand.MAIN_HAND);
if (shieldBreak.get() && entity instanceof PlayerEntity) {
breakShieldPlayer(entity);
}
if (shouldStopSprinting) {
mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_SPRINTING));
}
}
private Entity getClosestValidEntity() {
List<Entity> entities = mc.world.getEntitiesWithinAABB(LivingEntity.class, mc.player.getBoundingBox().grow(15));
return entities.stream()
.filter(entity -> checkEntity((LivingEntity) entity))
.findFirst()
.orElse(null);
}
public static void breakShieldPlayer(Entity entity) {
if (((LivingEntity) entity).isBlocking()) {
int invSlot = InventoryUtil.getInstance().getAxeInInventory(false);
int hotBarSlot = InventoryUtil.getInstance().getAxeInInventory(true);
if (hotBarSlot == -1 && invSlot != -1) {
int bestSlot = InventoryUtil.getInstance().findBestSlotInHotBar();
mc.playerController.windowClick(0, invSlot, 0, ClickType.PICKUP, mc.player);
mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player);
mc.player.connection.sendPacket(new CHeldItemChangePacket(bestSlot));
mc.playerController.attackEntity(mc.player, entity);
mc.player.swingArm(Hand.MAIN_HAND);
mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player);
mc.playerController.windowClick(0, invSlot, 0, ClickType.PICKUP, mc.player);
}
if (hotBarSlot != -1) {
mc.player.connection.sendPacket(new CHeldItemChangePacket(hotBarSlot));
mc.playerController.attackEntity(mc.player, entity);
mc.player.swingArm(Hand.MAIN_HAND);
mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
}
}
}
private boolean checkEntity(LivingEntity entity) {
if (friend.get() && entity instanceof PlayerEntity) {
String playerName = ((PlayerEntity) entity).getName().getString();
if (FriendStorage.isFriend(playerName)) {
return false;
}
}
AttackUtil entitySelector = new AttackUtil();
if (players.get()) {
entitySelector.apply(AttackUtil.EntityType.PLAYERS);
}
if (mobs.get()) {
entitySelector.apply(AttackUtil.EntityType.MOBS);
}
if (animals.get()) {
entitySelector.apply(AttackUtil.EntityType.ANIMALS);
}
return entitySelector.ofType(entity, entitySelector.build()) != null && entity.isAlive();
}
private void lookAtEntity(Entity entity) {
double dx = entity.getPosX() - mc.player.getPosX();
double dy = entity.getPosY() + entity.getEyeHeight() - (mc.player.getPosY() + mc.player.getEyeHeight());
double dz = entity.getPosZ() - mc.player.getPosZ();
double distance = Math.sqrt(dx * dx + dz * dz);
float yaw = (float) Math.toDegrees(Math.atan2(dz, dx)) - 90;
float pitch = (float) -Math.toDegrees(Math.atan2(dy, distance));
mc.player.rotationYaw = yaw;
mc.player.rotationPitch = pitch;
}
private void moveToEntity(Entity entity) {
double distance = mc.player.getDistance(entity);
if (distance > 3) {
mc.player.moveForward = 1.0F;
mc.player.setSprinting(true);
} else {
mc.player.moveForward = 0.0F;
mc.player.setSprinting(false);
}
}
[USER=1367676]@override[/USER]
public void onDisable() {
stopWatch.reset();
super.onDisable();
}
}