В кт напримерПридурак у тебя только поиск забора в инве 15 строк занимает) и нахуй вообще ты ищешь по всем 36 слотам если он из инва не перекладывает, тебя за это просто кикнет за это когда нибудь
блин буковкой промазал ну ладно
В кт напримерПридурак у тебя только поиск забора в инве 15 строк занимает) и нахуй вообще ты ищешь по всем 36 слотам если он из инва не перекладывает, тебя за это просто кикнет за это когда нибудь
К чему ты это вообщеВ кт например
блин буковкой промазал ну ладно
Что функцию надо доработать, а так вообще не знаю к чему это яК чему ты это вообще
Сократи слоты, убери бекспейсом разделение условия, я для каждого типа откладывал строчку для своего же удобства, а так это условие в одну строку спокойно пойдётПридурак у тебя только поиск забора в инве 15 строк занимает) и нахуй вообще ты ищешь по всем 36 слотам если он из инва не перекладывает, тебя за это просто кикнет за это когда нибудь
Если это твой первый бупас то получилось совсем неплохоСократи слоты, убери бекспейсом разделение условия, я для каждого типа откладывал строчку для своего же удобства, а так это условие в одну строку спокойно пойдёт
Опять же, никто флай этот не сливал на юг и это мой первый слитый байпас, что ты от меня хочешь?
Ну так доработай, я тебе рабочий обход дал, ты можешь его немного переделать что бы он например сейвился от паденияЧто функцию надо доработать, а так вообще не знаю к чему это я
Чтобы ты удалил эту тему и нихуя больше не постилСократи слоты, убери бекспейсом разделение условия, я для каждого типа откладывал строчку для своего же удобства, а так это условие в одну строку спокойно пойдёт
Опять же, никто флай этот не сливал на юг и это мой первый слитый байпас, что ты от меня хочешь?
Не, мне лень дорабатыватьНу так доработай, я тебе рабочий обход дал, ты можешь его немного переделать что бы он например сейвился от падения
Какой нахуй обход ты просто блок ставишь перед собой и прыгаешьНу так доработай, я тебе рабочий обход дал, ты можешь его немного переделать что бы он например сейвился от падения
Я не понимаю, какой смысл тебе докапываться до кода, когда ты его можешь пофиксить за минуту-двеЧтобы ты удалил эту тему и нихуя больше не постил
thxЕсли это твой первый бупас то получилось совсем неплохо
Потому что это и другие люди будут смотреть и кто то даже спиздит этот в свой ахуеный клиентЯ не понимаю, какой смысл тебе докапываться до кода, когда ты его можешь пофиксить за минуту-две
Я слил полностью рабочий обход под фантайм, улучшать или нет это исключительно дело тех, кто этот код возьмёт
Ну все ровно фича прикольная, можно на всяких копиях серверов так играть и ливать, может даже на оригинальных получитсяКакой нахуй обход ты просто блок ставишь перед собой и прыгаешь
Дельта клиент данную функцию называют обходом, почему бы и мне так не назвать?Какой нахуй обход ты просто блок ставишь перед собой и прыгаешь
ФТ ориг сервер если что, обход под его ац сделанможет даже на оригинальных получится
Пусть пиздят, мне то че, просто если тип не 10 летний школьник он поймёт что код с юг взятПотому что это и другие люди будут смотреть и кто то даже спиздит этот в свой ахуеный клиент
Предлагаю тебе слить сурсы своего клиентаСливаю вам байпасс спайдера aka FenceFly в дельте
Вам нужно:
1. Держать забор любого материала в хотбаре( с инвентаря будет в хаб кикать)
2. Поставить столб 2 забора в высоту
3. Встать в упор к заборам
4. Включить функцию и зажать W
Иногда может подфлагивать когда у вас заканчивается стак заборов и начинают ставиться новые
Так же иногда когда ставит последний забор может дать запрыгнуть на верх и не упасть, но вероятнее всего вы начнете падать, можете поставить под себя блок либо
улучшить чтоб последний забор оно ставило под игроком
SS =Жду попкорна и данного обхода в каждом yougame clientFenceFly:package im.expensive.functions.impl.movement; import com.google.common.eventbus.Subscribe; import im.expensive.events.EventMotion; import im.expensive.functions.api.Category; import im.expensive.functions.api.Function; import im.expensive.functions.api.FunctionRegister; 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.client.entity.player.ClientPlayerEntity; import net.minecraft.client.multiplayer.PlayerController; import net.minecraft.client.world.ClientWorld; import net.minecraft.item.BlockItem; import net.minecraft.item.Items; import net.minecraft.util.Direction; import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.World; @FunctionRegister(name = "Spider", type = Category.Movement) public class Spider extends Function { public ModeSetting mode = new ModeSetting("Mode", "Grim", "Grim", "Matrix", "Funtime Fence"); private final SliderSetting spiderSpeed = new SliderSetting( "Speed", 2.0f, 1.0f, 10.0f, 0.05f ).setVisible(() -> !mode.is("Grim") && !mode.is("Funtime Fence")); StopWatch stopWatch = new StopWatch(); public Spider() { addSettings(spiderSpeed, mode); } /** * author moyten * wonderful boost yoo */ @Subscribe private void onMotion(EventMotion motion) { switch (mode.get()) { case "Matrix" -> { if (!mc.player.collidedHorizontally) { return; } long speed = MathHelper.clamp(500 - (spiderSpeed.get().longValue() / 2 * 100), 0, 500); if (stopWatch.isReached(speed)) { motion.setOnGround(true); mc.player.setOnGround(true); mc.player.collidedVertically = true; mc.player.collidedHorizontally = true; mc.player.isAirBorne = true; mc.player.jump(); stopWatch.reset(); } } case "Grim" -> { int slotInHotBar = getSlotInInventoryOrHotbar(true); if (slotInHotBar == -1) { print("Блоки не найдены!"); toggle(); return; } if (!mc.player.collidedHorizontally) { return; } if (mc.player.isOnGround()) { motion.setOnGround(true); mc.player.setOnGround(true); mc.player.jump(); } if (mc.player.fallDistance > 0 && mc.player.fallDistance < 2) { placeBlocks(motion, slotInHotBar); } } case "Funtime Fence" -> { if (!mc.player.collidedHorizontally) { return; } long speed = 200; if (stopWatch.isReached(speed)) { motion.setOnGround(true); mc.player.setOnGround(true); mc.player.collidedVertically = true; mc.player.collidedHorizontally = true; mc.player.isAirBorne = true; mc.player.jump(); placeFenceStack(motion); stopWatch.reset(); } } } } private void placeFenceStack(EventMotion motion) { int slotFence = getSlotForFence(); if (slotFence == -1) { print("Заборы не найдены!"); toggle(); return; } int lastSlot = mc.player.inventory.currentItem; mc.player.inventory.currentItem = slotFence; BlockPos playerPos = mc.player.getPosition(); for (int i = 1; i <= 2; i++) { BlockPos fencePos = playerPos.up(i); if (mc.world.getBlockState(fencePos).isAir()) { placeFenceBlock(fencePos, Hand.MAIN_HAND, mc.playerController, mc.world, mc.player); } } mc.player.inventory.currentItem = lastSlot; } private void placeFenceBlock(BlockPos pos, Hand hand, PlayerController playerController, World world, ClientPlayerEntity player) { if (!world.getBlockState(pos).isAir()) { return; } Direction direction = Direction.UP; BlockPos tPos = pos.down(); BlockRayTraceResult traceResult = new BlockRayTraceResult( new Vector3d(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5), direction, tPos, false); playerController.processRightClickBlock(player, (ClientWorld) world, hand, traceResult); player.swingArm(hand); } private int getSlotForFence() { for (int i = 0; i < 36; i++) { if (mc.player.inventory.getStackInSlot(i).getItem() == Items.OAK_FENCE || mc.player.inventory.getStackInSlot(i).getItem() == Items.BIRCH_FENCE || mc.player.inventory.getStackInSlot(i).getItem() == Items.SPRUCE_FENCE || mc.player.inventory.getStackInSlot(i).getItem() == Items.ACACIA_FENCE || mc.player.inventory.getStackInSlot(i).getItem() == Items.DARK_OAK_FENCE || mc.player.inventory.getStackInSlot(i).getItem() == Items.JUNGLE_FENCE || mc.player.inventory.getStackInSlot(i).getItem() == Items.CRIMSON_FENCE || mc.player.inventory.getStackInSlot(i).getItem() == Items.WARPED_FENCE || mc.player.inventory.getStackInSlot(i).getItem() == Items.NETHER_BRICK_FENCE) { return i; } } return -1; } public int getSlotInInventoryOrHotbar(boolean inHotBar) { int firstSlot = inHotBar ? 0 : 9; int lastSlot = inHotBar ? 9 : 36; int finalSlot = -1; for (int i = firstSlot; i < lastSlot; i++) { if (mc.player.inventory.getStackInSlot(i).getItem() == Items.TORCH) { continue; } if (mc.player.inventory.getStackInSlot(i).getItem() instanceof BlockItem || mc.player.inventory.getStackInSlot(i).getItem() == Items.WATER_BUCKET) { finalSlot = i; } } return finalSlot; } private void placeBlocks(EventMotion motion, int block) { int last = mc.player.inventory.currentItem; mc.player.inventory.currentItem = block; motion.setPitch(80); motion.setYaw(mc.player.getHorizontalFacing().getHorizontalAngle()); BlockRayTraceResult r = (BlockRayTraceResult) MouseUtil.rayTrace(4, motion.getYaw(), motion.getPitch(), mc.player); mc.player.swingArm(Hand.MAIN_HAND); mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, r); mc.player.inventory.currentItem = last; mc.player.fallDistance = 0; } }
Предлагаю отказатьсяПредлагаю тебе слить сурсы своего клиента
Ну как знаешь ваще, а ещё у меня их за твоего фикса функции не работалиНе, мне лень дорабатывать
слей худ пажеСливаю вам байпасс спайдера aka FenceFly в дельте
Вам нужно:
1. Держать забор любого материала в хотбаре( с инвентаря будет в хаб кикать)
2. Поставить столб 2 забора в высоту
3. Встать в упор к заборам
4. Включить функцию и зажать W
Иногда может подфлагивать когда у вас заканчивается стак заборов и начинают ставиться новые
Так же иногда когда ставит последний забор может дать запрыгнуть на верх и не упасть, но вероятнее всего вы начнете падать, можете поставить под себя блок либо
улучшить чтоб последний забор оно ставило под игроком
SS =Жду попкорна и данного обхода в каждом yougame clientFenceFly:package im.expensive.functions.impl.movement; import com.google.common.eventbus.Subscribe; import im.expensive.events.EventMotion; import im.expensive.functions.api.Category; import im.expensive.functions.api.Function; import im.expensive.functions.api.FunctionRegister; 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.client.entity.player.ClientPlayerEntity; import net.minecraft.client.multiplayer.PlayerController; import net.minecraft.client.world.ClientWorld; import net.minecraft.item.BlockItem; import net.minecraft.item.Items; import net.minecraft.util.Direction; import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.World; @FunctionRegister(name = "Spider", type = Category.Movement) public class Spider extends Function { public ModeSetting mode = new ModeSetting("Mode", "Grim", "Grim", "Matrix", "Funtime Fence"); private final SliderSetting spiderSpeed = new SliderSetting( "Speed", 2.0f, 1.0f, 10.0f, 0.05f ).setVisible(() -> !mode.is("Grim") && !mode.is("Funtime Fence")); StopWatch stopWatch = new StopWatch(); public Spider() { addSettings(spiderSpeed, mode); } /** * author moyten * wonderful boost yoo */ @Subscribe private void onMotion(EventMotion motion) { switch (mode.get()) { case "Matrix" -> { if (!mc.player.collidedHorizontally) { return; } long speed = MathHelper.clamp(500 - (spiderSpeed.get().longValue() / 2 * 100), 0, 500); if (stopWatch.isReached(speed)) { motion.setOnGround(true); mc.player.setOnGround(true); mc.player.collidedVertically = true; mc.player.collidedHorizontally = true; mc.player.isAirBorne = true; mc.player.jump(); stopWatch.reset(); } } case "Grim" -> { int slotInHotBar = getSlotInInventoryOrHotbar(true); if (slotInHotBar == -1) { print("Блоки не найдены!"); toggle(); return; } if (!mc.player.collidedHorizontally) { return; } if (mc.player.isOnGround()) { motion.setOnGround(true); mc.player.setOnGround(true); mc.player.jump(); } if (mc.player.fallDistance > 0 && mc.player.fallDistance < 2) { placeBlocks(motion, slotInHotBar); } } case "Funtime Fence" -> { if (!mc.player.collidedHorizontally) { return; } long speed = 200; if (stopWatch.isReached(speed)) { motion.setOnGround(true); mc.player.setOnGround(true); mc.player.collidedVertically = true; mc.player.collidedHorizontally = true; mc.player.isAirBorne = true; mc.player.jump(); placeFenceStack(motion); stopWatch.reset(); } } } } private void placeFenceStack(EventMotion motion) { int slotFence = getSlotForFence(); if (slotFence == -1) { print("Заборы не найдены!"); toggle(); return; } int lastSlot = mc.player.inventory.currentItem; mc.player.inventory.currentItem = slotFence; BlockPos playerPos = mc.player.getPosition(); for (int i = 1; i <= 2; i++) { BlockPos fencePos = playerPos.up(i); if (mc.world.getBlockState(fencePos).isAir()) { placeFenceBlock(fencePos, Hand.MAIN_HAND, mc.playerController, mc.world, mc.player); } } mc.player.inventory.currentItem = lastSlot; } private void placeFenceBlock(BlockPos pos, Hand hand, PlayerController playerController, World world, ClientPlayerEntity player) { if (!world.getBlockState(pos).isAir()) { return; } Direction direction = Direction.UP; BlockPos tPos = pos.down(); BlockRayTraceResult traceResult = new BlockRayTraceResult( new Vector3d(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5), direction, tPos, false); playerController.processRightClickBlock(player, (ClientWorld) world, hand, traceResult); player.swingArm(hand); } private int getSlotForFence() { for (int i = 0; i < 36; i++) { if (mc.player.inventory.getStackInSlot(i).getItem() == Items.OAK_FENCE || mc.player.inventory.getStackInSlot(i).getItem() == Items.BIRCH_FENCE || mc.player.inventory.getStackInSlot(i).getItem() == Items.SPRUCE_FENCE || mc.player.inventory.getStackInSlot(i).getItem() == Items.ACACIA_FENCE || mc.player.inventory.getStackInSlot(i).getItem() == Items.DARK_OAK_FENCE || mc.player.inventory.getStackInSlot(i).getItem() == Items.JUNGLE_FENCE || mc.player.inventory.getStackInSlot(i).getItem() == Items.CRIMSON_FENCE || mc.player.inventory.getStackInSlot(i).getItem() == Items.WARPED_FENCE || mc.player.inventory.getStackInSlot(i).getItem() == Items.NETHER_BRICK_FENCE) { return i; } } return -1; } public int getSlotInInventoryOrHotbar(boolean inHotBar) { int firstSlot = inHotBar ? 0 : 9; int lastSlot = inHotBar ? 9 : 36; int finalSlot = -1; for (int i = firstSlot; i < lastSlot; i++) { if (mc.player.inventory.getStackInSlot(i).getItem() == Items.TORCH) { continue; } if (mc.player.inventory.getStackInSlot(i).getItem() instanceof BlockItem || mc.player.inventory.getStackInSlot(i).getItem() == Items.WATER_BUCKET) { finalSlot = i; } } return finalSlot; } private void placeBlocks(EventMotion motion, int block) { int last = mc.player.inventory.currentItem; mc.player.inventory.currentItem = block; motion.setPitch(80); motion.setYaw(mc.player.getHorizontalFacing().getHorizontalAngle()); BlockRayTraceResult r = (BlockRayTraceResult) MouseUtil.rayTrace(4, motion.getYaw(), motion.getPitch(), mc.player); mc.player.swingArm(Hand.MAIN_HAND); mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, r); mc.player.inventory.currentItem = last; mc.player.fallDistance = 0; } }
Проект предоставляет различный материал, относящийся к сфере киберспорта, программирования, ПО для игр, а также позволяет его участникам общаться на многие другие темы. Почта для жалоб: admin@yougame.biz