PoC Life
-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Сразу хочу подметить, что после выхода первой темы многие не поняли смысл, я здесь чтобы разжевать уже существующие способы реализации чего либо в читах. Если вы знаете способ лучше - поделитесь им с нами (ну ведь никто же не поделится ведь). Начинаем
Список:
1. Создаём главный класс + снимаем ограничения - https://yougame.biz/threads/325113
2. Автобус евентов - https://yougame.biz/threads/325114
3. OpenGL + Шейдеры + Рендер - https://yougame.biz/threads/325115
4. Аим - https://yougame.biz/threads/325188
5. GlowESP aka OpenGL Framebuffer - https://yougame.biz/threads/325211/
6. Текст, шрифты, атлас - https://yougame.biz/threads/325292
Теория
Итак представим, что мы нашли противника. Нарисуем небольшое представление как это выглядит на 3д графе (скрин не мой):
Чтобы нам было проще мы превратим её в 2д граф сверху вниз забыв про ось Y.
Теперь это выглядит вот так:
Как вы видите я нарисовал стрелочку исходящую из игрока. Это стрелочка показывает направление, туда, куда смотрит игрок. Обычно они базируются на углах Ейлера (yaw - поворот влево вправо, pitch - поворот вверх вниз, roll - мы не затрагиваем). Сейчас мы говорим только о yaw.
Давайте попробуем изменить направление игрока на противника и нарисовать треугольник:
Теперь нам ясно, что нужно найти альфа угол (я подсветил его красным). Если бы мы заранее знали этот угол, то через тангенс смогли бы высчитать противоположную и прилежащую сторону. Т.к. задача стоит у нас другая, то мы можем высчитать данный угол через обратный тангенс (atan), он и вернет нам угол поворота до игрока и сделает аим.
Практика
Для начала нужно найти противника. Т.к. я просто рассказываю концепт аима, то я просто найду ближайшего
Затем, нам нужно высчитать позицию противника относительно нас самих.
Далее высчитаем yaw (угол поворота налево направо). Я использовал toDegrees потому, что atan возвращает результат не в уголах (degrees), а в радианах.
Предлагаю сразу не медлить, а проверить:
Чето не так, где-то мы ошиблись, а точнее забыли, что на графе 0 - это справо, а не 90:
Да, действительно всё работает, но мы можем улучшить наш код, заменив atan на atan2. Но зачем? Т.к. обратный тангенс не поддерживает негативные числа (которые меньше 0), то аим будет наводиться в противоположном значение если вдруг противник вне поле зрения:
Такую же формулу мы возьмем и для pitch (угол поворота вверх вниз):
Проверяем:
Да, теперь действительно всё максимально идеально. Опять же, я рассказал концепцию аима. О том, как текущие методы позволяют обойти античит чутка позже. Всем пока)
Список:
1. Создаём главный класс + снимаем ограничения - https://yougame.biz/threads/325113
2. Автобус евентов - https://yougame.biz/threads/325114
3. OpenGL + Шейдеры + Рендер - https://yougame.biz/threads/325115
4. Аим - https://yougame.biz/threads/325188
5. GlowESP aka OpenGL Framebuffer - https://yougame.biz/threads/325211/
6. Текст, шрифты, атлас - https://yougame.biz/threads/325292
Теория
Итак представим, что мы нашли противника. Нарисуем небольшое представление как это выглядит на 3д графе (скрин не мой):
Чтобы нам было проще мы превратим её в 2д граф сверху вниз забыв про ось Y.
Теперь это выглядит вот так:
Как вы видите я нарисовал стрелочку исходящую из игрока. Это стрелочка показывает направление, туда, куда смотрит игрок. Обычно они базируются на углах Ейлера (yaw - поворот влево вправо, pitch - поворот вверх вниз, roll - мы не затрагиваем). Сейчас мы говорим только о yaw.
Давайте попробуем изменить направление игрока на противника и нарисовать треугольник:
Теперь нам ясно, что нужно найти альфа угол (я подсветил его красным). Если бы мы заранее знали этот угол, то через тангенс смогли бы высчитать противоположную и прилежащую сторону. Т.к. задача стоит у нас другая, то мы можем высчитать данный угол через обратный тангенс (atan), он и вернет нам угол поворота до игрока и сделает аим.
Практика
Для начала нужно найти противника. Т.к. я просто рассказываю концепт аима, то я просто найду ближайшего
Затем, нам нужно высчитать позицию противника относительно нас самих.
Java:
float relativeX = (float) (enemy.getPosX() - mc.player.getPosX());
float relativeY = (float) (enemy.getPosY() - mc.player.getPosY());
float relativeZ = (float) (enemy.getPosZ() - mc.player.getPosZ());
Java:
float yaw = (float) Math.toDegrees(Math.atan(relativeZ / relativeX));
mc.player.rotationYaw = yaw;
Чето не так, где-то мы ошиблись, а точнее забыли, что на графе 0 - это справо, а не 90:
Да, действительно всё работает, но мы можем улучшить наш код, заменив atan на atan2. Но зачем? Т.к. обратный тангенс не поддерживает негативные числа (которые меньше 0), то аим будет наводиться в противоположном значение если вдруг противник вне поле зрения:
Java:
float yaw = (float) Math.toDegrees(Math.atan2(relativeZ, relativeX));
Java:
double xzDistance = Math.hypot(diffX, diffZ); // Получаем расстояние до игрока высчитав гипотенузу по теореме пифагора
float pitch = (float) Math.toDegrees(Math.atan2(relativeY, xzDistance));
Да, теперь действительно всё максимально идеально. Опять же, я рассказал концепцию аима. О том, как текущие методы позволяют обойти античит чутка позже. Всем пока)
Последнее редактирование: