Начинающий
- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 5
- Реакции
- 0
- Выберите загрузчик игры
- Vanilla
всем ку. мой первый пост. решил слить FakePlayer. base expensive 3.1. можно и спастить и под другие клиенты это не так и сложно . имеется лгбт кода.
FakePlayer:
package im.Abadonclient.functions.impl.player;
import com.google.common.eventbus.Subscribe;
import im.Abadonclient.events.EventPacket;
import im.Abadonclient.events.EventUpdate;
import im.Abadonclient.functions.api.Category;
import im.Abadonclient.functions.api.Function;
import im.Abadonclient.functions.api.FunctionRegister;
import im.Abadonclient.functions.api.impl.BooleanSetting;
import im.Abadonclient.functions.impl.render.DeathEffect;
import net.minecraft.client.entity.player.RemoteClientPlayerEntity;
import net.minecraft.network.play.client.CUseEntityPacket;
import net.minecraft.entity.Entity;
import net.minecraft.util.Hand;
import net.minecraft.util.SoundEvents;
@FunctionRegister(name = "FakePlayer", type = Category.Player)
public class FakePlayer extends Function {
private final BooleanSetting killable = new BooleanSetting("Можно убить", true);
private RemoteClientPlayerEntity fakePlayer;
private final int FAKE_PLAYER_ID = -1337;
private long deathTime = 0;
public FakePlayer() {
addSettings(killable);
}
@Override
public boolean onEnable() {
super.onEnable();
if (mc.world == null || mc.player == null) {
toggle();
return false;
}
spawnFakePlayer();
return true;
}
@Override
public boolean onDisable() {
super.onDisable();
if (mc.world != null && fakePlayer != null) {
mc.world.removeEntityFromWorld(FAKE_PLAYER_ID);
fakePlayer = null;
deathTime = 0;
}
return true;
}
private void spawnFakePlayer() {
fakePlayer = new RemoteClientPlayerEntity(mc.world, mc.player.getGameProfile());
fakePlayer.copyLocationAndAnglesFrom(mc.player);
fakePlayer.rotationYawHead = mc.player.rotationYawHead;
fakePlayer.renderYawOffset = mc.player.renderYawOffset;
fakePlayer.inventory.copyInventory(mc.player.inventory);
fakePlayer.setHealth(20.0F);
fakePlayer.setEntityId(FAKE_PLAYER_ID);
mc.world.addEntity(FAKE_PLAYER_ID, fakePlayer);
}
@Subscribe
public void onUpdate(EventUpdate e) {
if (fakePlayer == null) return;
if (killable.get() && fakePlayer.getHealth() <= 0) {
if (deathTime == 0) {
deathTime = System.currentTimeMillis();
fakePlayer.deathTime = 1;
if (DeathEffect.INSTANCE != null && DeathEffect.INSTANCE.isState()) {
DeathEffect.INSTANCE.spawnCrystals(fakePlayer.getPosX(), fakePlayer.getPosY() + fakePlayer.getHeight() / 2f, fakePlayer.getPosZ());
try {
im.Abadonclient.utils.client.ClientUtil.playSoundOneShot("glass_break", 80f);
} catch (Exception ignored) {}
}
}
if (System.currentTimeMillis() - deathTime > 1500) {
mc.world.removeEntityFromWorld(FAKE_PLAYER_ID);
spawnFakePlayer();
deathTime = 0;
}
} else {
deathTime = 0;
}
}
@Subscribe
public void onPacket(EventPacket e) {
if (e.isSend() && e.getPacket() instanceof CUseEntityPacket) {
CUseEntityPacket packet = (CUseEntityPacket) e.getPacket();
Entity target = packet.getEntityFromWorld(mc.world);
if (target != null && target.getEntityId() == FAKE_PLAYER_ID) {
e.cancel();
if (packet.getAction() == CUseEntityPacket.Action.ATTACK) {
mc.player.swingArm(Hand.MAIN_HAND);
if (fakePlayer != null && fakePlayer.getHealth() > 0) {
fakePlayer.performHurtAnimation();
fakePlayer.playSound(SoundEvents.ENTITY_PLAYER_HURT, 1.0F, 1.0F);
if (killable.get()) {
fakePlayer.setHealth(fakePlayer.getHealth() - 2.0F);
}
}
}
}
}
}
}
Пожалуйста, авторизуйтесь для просмотра ссылки.
-YOUTUBE
Последнее редактирование: