-
Автор темы
- #1
ета
очинь
УМНИЙ
тлиггел-бат
если у вас не находит AntiBot.isBotU, то убирайте проверку
если не находит крит-фиксер, забивайте хуй и оставляйте вариант с attackEntity()
заранее - задержка в 380 для того, что бы игрок не бил рукой два раза в одно падение
что-бы спиздить данный пиздец - создаем класс с названием TliggerLssdgFURRY, и туда кидаем кодек
SS не нужен, хуле
по вопросам не пишите, плахие!!!(((



если у вас не находит AntiBot.isBotU, то убирайте проверку
если не находит крит-фиксер, забивайте хуй и оставляйте вариант с attackEntity()
заранее - задержка в 380 для того, что бы игрок не бил рукой два раза в одно падение
что-бы спиздить данный пиздец - создаем класс с названием TliggerLssdgFURRY, и туда кидаем кодек
SS не нужен, хуле
по вопросам не пишите, плахие!!!(((
Код:
package im.expensive.functions.impl.combat;
import com.google.common.eventbus.Subscribe;
import im.expensive.Expensive;
import im.expensive.command.friends.FriendStorage;
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.settings.impl.BooleanSetting;
import im.expensive.functions.settings.impl.ModeListSetting;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
import im.expensive.utils.player.MouseUtil;
import net.minecraft.block.material.Material;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.item.ArmorStandEntity;
import net.minecraft.entity.monster.MonsterEntity;
import net.minecraft.entity.passive.AnimalEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Items;
import net.minecraft.tags.FluidTags;
import net.minecraft.util.Hand;
import net.minecraft.util.math.RayTraceContext;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.util.math.vector.Vector3f;
import static net.minecraft.util.math.MathHelper.wrapDegrees;
@FunctionRegister(name = "Trigger Bot", type = Category.Combat)
public class TliggerLssdgFURRY extends Function {
private final ModeListSetting targets = new ModeListSetting("Targets",
new BooleanSetting("Players", true),
new BooleanSetting("Nakeds", true),
new BooleanSetting("Mobs", false),
new BooleanSetting("Animals", false),
new BooleanSetting("Friends", false),
new BooleanSetting("Naked invisibles", true),
new BooleanSetting("Invisibles", true));
private final ModeSetting mode = new ModeSetting("Mode", "Default", "Default", "Miss Hit");
private final SliderSetting missHitAngle = new SliderSetting("Miss Hit Angle", 30.0f, 20.0f, 90.0f, 1.0f)
.setVisible(() -> mode.is("Miss Hit"));
private final SliderSetting missDelay = new SliderSetting("Miss Delay", 0.8f, 0.6f, 0.89f, 0.01f)
.setVisible(() -> mode.is("Miss Hit"));
private StopWatch stopWatch = new StopWatch();
public TliggerLssdgFURRY() {
addSettings(targets, mode, missHitAngle, missDelay);
}
@Subscribe
public void onUpdate(EventUpdate e) {
for (Entity entityIn : mc.world.getAllEntities()) {
if (entityIn != null && entityIn != mc.player && entityIn instanceof LivingEntity) {
if (isFalling()) {
updateAttack(entityIn);
if (mode.is("Miss Hit")) missHitHandle(entityIn);
} else {
reset();
}
}
}
}
private void updateAttack(Entity entity) {
float addedDistance = mc.player.isOnGround() ? 0.20074566600005f : 0;
float nextDistance = 3.0f + addedDistance;
if (!rayAll((LivingEntity) entity, new Vector3f(mc.player.rotationYaw,
mc.player.rotationPitch, mc.player.renderYawOffset), 3.0f) && getAngleClient(entity) > 16.5f) return;
if (!rayTraceBlocks((LivingEntity) entity)) return;
if ((mc.player.isHandActive()) && !(mc.player.getHeldItemOffhand().getItem() == Items.SHIELD)) return;
if (mc.player.isBlocking()) mc.playerController.onStoppedUsingItem(mc.player);
KillAura killAura = Expensive.getInstance().getFunctionRegistry().getKillAura();
if (!isValid((LivingEntity) entity, nextDistance)) return;
if (entity instanceof PlayerEntity) killAura.breakShieldPlayer((PlayerEntity) entity);
boolean canAttacked = mc.player.getCooledAttackStrength(1.5f) >= (!mc.player.collidedHorizontally ? 0.944 : 0.9);
stopWatch.setLastMS(380);
if (isFalling() && canAttacked && mc.player.getDistanceEyePos((LivingEntity) entity) <= nextDistance) {
CritFixer critFixer = Expensive.getInstance().getFunctionRegistry().getCritFixer();
if (critFixer.isState()) {
mc.playerController.attackEntityStater(mc.player, entity);
} else {
mc.playerController.attackEntity(mc.player, entity);
}
mc.player.swingArm(Hand.MAIN_HAND);
}
}
private void missHitHandle(Entity entity) {
boolean canAttacked = mc.player.getCooledAttackStrength(1.5f) >= (!mc.player.collidedHorizontally ? missDelay.get() : missDelay.get() - .044f);
if (mode.is("Miss Hit")) {
if (getAngleClient(entity) <= missHitAngle.get() && getAngleClient(entity) > 16.5f && canAttacked) {
mc.clickMouse();
stopWatch.reset();
}
}
}
private boolean isFalling() {
return isPlayerFalling(true,true);
}
private void reset() {
this.stopWatch.reset();
}
private boolean isPlayerFalling(boolean onlyCrit, boolean onlySpace) {
boolean cancelReason = mc.player.isInWater() && mc.player.areEyesInFluid(FluidTags.WATER)
|| mc.player.isInLava() && mc.player.areEyesInFluid(FluidTags.LAVA)
|| mc.player.isOnLadder()
|| mc.world.getBlockState(mc.player.getPosition()).getMaterial() == Material.WEB
|| mc.player.abilities.isFlying;
boolean onSpace = !mc.gameSettings.keyBindJump.isKeyDown() && mc.player.isOnGround() && onlySpace;
boolean maxFall = mc.player.fallDistance > 0.0754441;
if (mc.player.fallDistance > 1 && mc.player.fallDistance < 1.14 && !mc.player.isElytraFlying()) return false;
if (!cancelReason && onlyCrit) {
return onSpace || !mc.player.isOnGround() && maxFall;
}
if (mc.player.isElytraFlying()) return true;
return true;
}
private float getAngleClient(Entity entity) {
double diffX = entity.getPosX() - mc.player.getPosX();
double diffZ = entity.getPosZ() - mc.player.getPosZ();
return (float) Math.abs(wrapDegrees((Math.toDegrees(Math.atan2(diffZ, diffX)) - 90) - mc.player.rotationYaw));
}
private boolean rayAll(LivingEntity target, Vector3f rotateVector, float range) {
return MouseUtil.getMouseOver(target, rotateVector.x, rotateVector.y, range) != null;
}
private boolean rayTraceBlocks(LivingEntity entity) {
return mc.world.rayTraceBlocks(new RayTraceContext(mc.player.getPositionVec().add(0.0D, mc.player.getEyeHeight(), 0.0D),
entity.getPositionVec().add(0.0D, entity.getEyeHeight(), 0.0D), RayTraceContext.BlockMode.COLLIDER,
RayTraceContext.FluidMode.NONE, mc.player)).getType() == RayTraceResult.Type.MISS;
}
private boolean isValid(LivingEntity entity, float distance) {
if (entity instanceof ClientPlayerEntity) return false;
if (entity.ticksExisted < 3) return false;
if (mc.player.getDistanceEyePos(entity) >= distance) return false;
if (entity instanceof PlayerEntity p) {
if (AntiBot.isBot(entity)) return false;
if (AntiBot.isBotU(entity)) return false;
if (!targets.getValueByName("Friends").get() && FriendStorage.isFriend(p.getName().getString())) return false;
if (p.getName().getString().equalsIgnoreCase(mc.player.getName().getString())) return false;
}
if (entity instanceof PlayerEntity && !targets.getValueByName("Players").get()) return false;
if (entity instanceof PlayerEntity && entity.getTotalArmorValue() == 0 && !targets.getValueByName("Nakeds").get()) return false;
if (entity instanceof PlayerEntity && entity.isInvisible() && entity.getTotalArmorValue() == 0 && !targets.getValueByName("Naked invisibles").get()) return false;
if (entity instanceof PlayerEntity && entity.isInvisible() && !targets.getValueByName("Invisibles").get()) return false;
if (entity instanceof MonsterEntity && !targets.getValueByName("Mobs").get()) return false;
if (entity instanceof AnimalEntity && !targets.getValueByName("Animals").get()) return false;
return !entity.isInvulnerable() && entity.isAlive() && !(entity instanceof ArmorStandEntity);
}
@Override
public void onDisable() {
super.onDisable();
stopWatch.reset();
}
@Override
public void onEnable() {
super.onEnable();
stopWatch.reset();
}
}

