-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
каде:
public class Blink extends Module {
private final List<Packet> PACKETS = new ArrayList();
private final TimerHelper useTicker = new TimerHelper();
private final TimerHelper timeOutTicker = new TimerHelper();
public static EntityOtherPlayerMP fakeModelPlayer;
Settings Type;
Settings Usage;
Settings DelayMS;
Settings TimeOut;
Settings TimeOutMS;
private boolean blinkState;
public Blink() {
super("Blink", 0, Category.PLAYER);
this.settings.add(this.Type = new Settings("Type", "Position", this, new String[]{"All", "Position"}));
this.settings.add(this.Usage = new Settings("Usage", "OnlyToggle", this, new String[]{"OnlyToggle", "InDelay"}));
this.settings.add(this.DelayMS = new Settings("DelayMS", 400.0F, 1000.0F, 100.0F, this, () -> {
return this.Usage.currentMode.equalsIgnoreCase("InDelay");
}));
this.settings.add(this.TimeOut = new Settings("TimeOut", false, this));
this.settings.add(this.TimeOutMS = new Settings("TimeOutMS", 2000.0F, 10000.0F, 500.0F, this, () -> {
return this.TimeOut.bValue;
}));
}
public static boolean isFakeEntity(Entity entity) {
return entity != null && fakeModelPlayer != null && (entity == fakeModelPlayer || entity.getEntityId() == 462462989);
}
private boolean packetIsSuitable(Packet packet, String blinkType) {
return packet != null && packet.toString().contains("CPacket") && (blinkType.equalsIgnoreCase("All") || packet instanceof CPacketPlayer || packet instanceof CPacketEntityAction || packet instanceof CPacketConfirmTransaction || packet instanceof CPacketConfirmTeleport) && !(packet instanceof CPacketConfirmTransaction);
}
public void onUpdate() {
String usage = this.Usage.currentMode;
float delay = usage.equalsIgnoreCase("OnlyToggle") ? 0.0F : this.DelayMS.fValue;
boolean timeOut = this.TimeOut.bValue && this.timeOutTicker.hasReached((double)this.TimeOutMS.fValue);
boolean canUsage = mc.world != null && Minecraft.player != null && Minecraft.player.connection != null && Minecraft.player.ticksExisted > 10;
if (!timeOut && canUsage) {
if (delay != 0.0F && this.useTicker.hasReached((double)delay)) {
this.resetBlink();
this.startBlink();
this.useTicker.reset();
}
boolean hasDelay = this.useTicker.hasReached((double)delay);
boolean useBlink = delay != 0.0F && !hasDelay;
if (hasDelay) {
this.useTicker.reset();
}
if (this.blinkState) {
this.updateBlink();
}
if (this.blinkState != useBlink) {
this.blinkState = useBlink;
if (this.blinkState) {
this.startBlink();
} else {
this.resetBlink();
}
}
super.onUpdate();
} else {
this.toggle(false);
}
}
private void updateBlink() {
}
private void startBlink() {
fakeModelPlayer = new EntityOtherPlayerMP(mc.world, new GameProfile(UUID.fromString("70ee432d-0a96-4137-a2c0-37cc9df67f03"), "§6VegaLine§f > §cBLINK§r"));
mc.world.addEntityToWorld(462462989, fakeModelPlayer);
fakeModelPlayer.copyLocationAndAnglesFrom(Minecraft.player);
fakeModelPlayer.inventory = Minecraft.player.inventory;
fakeModelPlayer.setHealth(Minecraft.player.getHealth());
fakeModelPlayer.setAbsorptionAmount(Minecraft.player.getAbsorptionAmount());
fakeModelPlayer.limbSwing = Minecraft.player.limbSwing;
fakeModelPlayer.limbSwingAmount = Minecraft.player.limbSwingAmount;
if (Minecraft.player.getActiveHand() != null) {
fakeModelPlayer.setActiveHand(Minecraft.player.getActiveHand());
}
fakeModelPlayer.swingingHand = Minecraft.player.swingingHand;
fakeModelPlayer.swingProgress = Minecraft.player.swingProgress;
fakeModelPlayer.swingProgressInt = Minecraft.player.swingProgressInt;
fakeModelPlayer.renderYawOffset = Minecraft.player.renderYawOffset;
fakeModelPlayer.prevRenderYawOffset = Minecraft.player.prevRenderYawOffset;
fakeModelPlayer.rotationYawHead = Minecraft.player.rotationYawHead;
fakeModelPlayer.prevRotationYawHead = Minecraft.player.prevRotationYawHead;
fakeModelPlayer.rotationPitchHead = Minecraft.player.rotationPitchHead;
fakeModelPlayer.boundingBox = (new AxisAlignedBB(fakeModelPlayer.getPositionVector(), fakeModelPlayer.getPositionVector())).expandXyz(0.10000000149011612);
fakeModelPlayer.hurtTime = Minecraft.player.hurtTime;
fakeModelPlayer.motionX = Minecraft.player.motionX;
fakeModelPlayer.motionY = Minecraft.player.motionY;
fakeModelPlayer.motionZ = Minecraft.player.motionZ;
fakeModelPlayer.onGround = Minecraft.player.onGround;
}
private void resetBlink() {
mc.world.removeEntityFromWorld(462462989);
fakeModelPlayer = null;
if (Minecraft.player.connection != null) {
if (!this.PACKETS.isEmpty()) {
Iterator<Packet> packetIterator = this.PACKETS.iterator();
while(packetIterator.hasNext()) {
Packet packet = (Packet)packetIterator.next();
if (packet != null) {
Minecraft.player.connection.sendPacket(packet);
Client.msg("send " + packet, false);
}
}
}
this.PACKETS.clear();
this.blinkState = false;
}
}
private boolean blinkHasWrite(Packet packet) {
if (this.packetIsSuitable(packet, this.Type.currentMode) && mc.world != null && Minecraft.player != null && Minecraft.player.connection != null && Minecraft.player.ticksExisted > 10) {
if (this.PACKETS.stream().noneMatch((writed) -> {
return writed == packet;
})) {
this.PACKETS.add(packet);
Client.msg("add " + packet, false);
}
return true;
} else {
return false;
}
}
public void onToggled(boolean actived) {
if (actived) {
this.useTicker.reset();
this.timeOutTicker.reset();
this.startBlink();
} else {
this.resetBlink();
}
super.onToggled(actived);
}
@EventTarget
public void onSendingPackets(EventSendPacket packetEvent) {
if (this.blinkHasWrite(packetEvent.getPacket())) {
packetEvent.cancel();
}
}
}