-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
короче вчера увидел фрилок с тоннной лишнего кода на фордж, поэтому решил слить нормальный свой фри лук под эксп 3.1, делал я его примерно месяц назад за минут 35 с учетём тестов и отвлеканий.
Создаёте класс, вставляете всё это, и всё)
так же кому надо кастомная дистанция до камеры от ф5, переходите в класс ActiveRenderInfo, ищите метод calcCameraDistance
и заменяете на это
Создаёте класс, вставляете всё это, и всё)
Пожалуйста, авторизуйтесь для просмотра ссылки.
Java:
/**
* @author Ieo117
* @created 24.07.2024, on 11:10:07
*/
@FunctionRegister(name = "CustomF5", type = Category.Util)
public class CustomF5 extends Function {
public SliderSetting pDistanceTo = new SliderSetting("Дистанция до камеры", 7.5f, 1.0f, 25.0f, 0.5f);
public BooleanSetting free = new BooleanSetting("Свободная камера", false);
public CustomF5(){
addSettings(pDistanceTo, free);
}
private float startYaw, startPitch;
@Override
public void onEnable(){
if(isFree()) {
startYaw = mc.player.rotationYaw;
startPitch = mc.player.rotationPitch;
}
super.onEnable();
}
@Override
public void onDisable(){
if(isFree()) {
mc.player.rotationYawOffset = Integer.MIN_VALUE;
mc.gameSettings.setPointOfView(PointOfView.FIRST_PERSON);
mc.player.rotationYaw = startYaw;
mc.player.rotationPitch = startPitch;
}
super.onDisable();
}
@Subscribe
public void onUpdate(EventUpdate e) {
AttackAura aura = Apollon.getInstance().getFunctionRegistry().getAura();
if (free.get()) {
if (! aura.isState() && aura.getTarget() == null) {
mc.gameSettings.setPointOfView(PointOfView.THIRD_PERSON_BACK);
mc.player.rotationYawOffset = startYaw;
} else {
Manager.notification.add("Свободную камеру нельзя использовать с Аурой", "Ошибка!", 3, NotificationManager.ImageType.FIRST_PHOTO);
this.setState(false, false);
}
}
}
@Subscribe
public void onMotion(EventMotion e){
if(free.get()) {
e.setYaw(startYaw);
e.setPitch(startPitch);
e.setOnGround(mc.player.isOnGround());
mc.player.rotationYawHead = mc.player.rotationYawOffset;
mc.player.renderYawOffset = mc.player.rotationYawOffset;
mc.player.rotationPitchHead = startPitch;
}
}
public boolean isFree(){
return free.get();
}
}
и заменяете на это
Java:
private double calcCameraDistance(double startingDistance) {
for (int i = 0; i < 8; ++i) {
float f = (float) ((i & 1) * 2 - 1);
float f1 = (float) ((i >> 1 & 1) * 2 - 1);
float f2 = (float) ((i >> 2 & 1) * 2 - 1);
f = f * 0.1F;
f1 = f1 * 0.1F;
f2 = f2 * 0.1F;
Vector3d vector3d = this.pos.add((double) f, (double) f1, (double) f2);
Vector3d vector3d1 = new Vector3d(
this.pos.x - (double) this.look.getX() * startingDistance + (double) f + (double) f2,
this.pos.y - (double) this.look.getY() * startingDistance + (double) f1,
this.pos.z - (double) this.look.getZ() * startingDistance + (double) f2);
RayTraceResult raytraceresult = this.world.rayTraceBlocks(new RayTraceContext(vector3d, vector3d1,
RayTraceContext.BlockMode.VISUAL, RayTraceContext.FluidMode.NONE, this.renderViewEntity));
if (raytraceresult.getType() != RayTraceResult.Type.MISS) {
double d0 = raytraceresult.getHitVec().distanceTo(this.pos);
if (d0 < startingDistance) {
startingDistance = d0;
}
}
}
CustomF5 custom = Apollon.getInstance().getFunctionRegistry().getCustom();
return custom.isState() ? custom.pDistanceTo.get().doubleValue() : startingDistance;
}
не забудьте в FunctionRegistry написать CustomF5 custom;
и там где идёт инициализация написать custom = new CustomF5()