Перейти к содержанию

Лидеры

  1. imaginary

    imaginary

    Помогаторы


    • Баллы

      12

    • Постов

      319


  2. Antonshka

    Antonshka

    Пользователи+


    • Баллы

      2

    • Постов

      410


  3. Xipho

    Xipho

    Администраторы


    • Баллы

      1

    • Постов

      4 023


  4. Habar

    Habar

    Стажёры


    • Баллы

      -1

    • Постов

      11


Популярный контент

Показан контент с высокой репутацией 19.02.2018 во всех областях

  1. В этой теме можно узнать как сделать управление запускаемыми снарядами в Terraria и сделать отправку их положения на сервер (Что бы другие игроки видели как летает снаряд, простая замена условия в коде) Скрипт: Видео:
    4 балла
  2. В этой теме можно узнать о том, как сделать полет по повороту камеры в 3D пространстве (лететь туда куда смотришь) и как сделать перевод числа в 360, если оно превышаем 360 или наоборот, ниже нуля. Перед просмотром видео лучше ознакомится с предыдущими темами, так как там показано как найти адрес персонажа. Скрипт- функция расчета ускорения из поворота: Скрип записывающий в ускорение игрока и вызывающий функцию выше: Видео: Часть 1: Часть 2: Часть 3:
    3 балла
  3. Нормализовать угол поворота камеры можно также и следующим образом fcos и fsin работают с радианами, поэтому для корректного их использования, необходимо конвертировать значение угла из градусов в радианы Интересно было посмотреть на реализацию этого и предыдущего замыслов. Наверно это оттого что я и сам некогда недавно занимался этими же вопросами. *Что если необходимо сделать плавное перемещение (полёт) игрока до некоторой точки в пространстве, используя при этом лишь только 3 координаты положения игрока и 3 координаты положения точки, при условии что скорость перемещения должны быть всегда одной и той же, как для малых дистанция, так и для больших. Так же по возможности необходимо сделать плавное увеличение и плавное уменьшение скорости полёта, например от 0 до 10 % пути, сделать плавное увеличение скорости, а от 90-100% пути сделать плавное уменьшение скорости, до 0. Осилил бы такую задачу?
    2 балла
  4. В этой теме можно узнать как сделать полёт на определённые координаты исходя из координат точки и координат персонажа. Для созданий этого скрипта надо иметь у себя адрес персонажа, потому лучше еще прочитать предыдущую тему. Скрипт: Видео:
    2 балла
  5. Antonshka Вот на примере 1 координаты, если больше то вычитаем, меньше то добавляем, и так двигаем персонажа (с постоянной скоростью) к точке где будет 0, то есть к нашей сохраненной точке, такое делается на все координаты. Я думаю можно сделать как то проще.
    1 балл
  6. Их сравнивают как обычные числа. К примеру, приведенный выше цвет в hex (16-ричном) равен AB3B2E (в памяти будет "перевернут" 2E3BAB). Значит, если тебе нужно выполнить какие-то действия, если считанный пиксель будет такого цвета, тебе нужно сделать следующее: if (pixels[i, j] == 0xAB3B2E) { // TODO: Тут выполнить действия, которые нужно }
    1 балл
  7. Terraria лицензия, потому смещения и адреса на репаках могут отличатся. Для начала, нам нужно найти все необходимые адреса, как это сделать думаю понятно, адрес игрока можно найти по здоровью и сделать указатель на него. У меня получился вот такой указатель: Для вставки в скрипт: [[[Terraria.Main::DoDraw+375]]+08+[[Terraria.Main::DoDraw+37B]]*4] Принцип такого указателя: В Terraria.Main::DoDraw+375 в коде вписан адрес структуры с игроками Таким образом в Terraria.Main::DoDraw+37B записан адрес хранящий номер активного игрока Далее идет прибавление +08 до первого элемента, потом номер игрока умножается на 4, так как 1 адрес занимает 4 байта, вот и получается адрес игрока. Теперь необходимо найти структуру содержащую адреса существ, думаю это тоже понятно как найти, у меня вот такой адрес: Для вставки в скрипт: [[Terraria.Main::UpdateAudio+4F7]], по такому же принципу как и 2 адреса сверху. Теперь мы можем начать писать скрипт коллизии, суть скрипта в организации проверок координат касания углов персонажа и координат углов существа. Вот примерная схема этого действа: Желтым изображены виртуальные полигоны коллизии, то есть промежутки в которых скрипт делает проверку, попадает ли точка игрока в них. Самый верхний желтый полигон используется для другой проверки, о которой будет сказано ниже. Итак, у нас есть адрес игрока, и предположительно адрес существа, для проверки существ нужно сделать цикл, перебирающий их и проверяющий координаты каждого: Как тут указано, тут так же проверяется совпадение адреса существа в цикле с адресом существа для которого делается коллизия, это сделано для того что бы не было самоколлизии, то есть столкновения существа с самим собой. Так же имеется проверка на активность, есть ли вообще этот объект, или он отсутствует или отключен. Теперь, так как у нас имеется цикл перебора существ, мы можем сделать вычисление крайних точек существа. Координаты существа в игре - это его крайняя левая нижняя точка. Так же у существа есть размер, и исходя из этих данных игра центрирует точку координат перед выводом существа на позицию в карте. Координаты в структуре существа отображают именно крайнюю левую нижнюю точку. Делаем вычисления после цикла и записываем в метки координаты точек и расстояние: Теперь можно написать проверки. Данный код проверяет положение точек 1 существа, относительно другого, при этом проверяется как X так и Y, иначе коллизия будет размером во всю карту, а не только по размерам существа, из за этого в каждом блоке по 4 проверки. После проверок в метку записывается состояние персонажа, слева он, сверху, справа или снизу. Следующий код делает проверку значения записанного в метку 1/2 1/2 и относительно этого выполняет действия с персонажем, убавляет его координаты или прибавляет на еденичку, создавая таким образом координатную коллизию, не пропускающую игрока сквозь существо. После выполнения данного скрипта, мы получаем коллизию, с учетом того, что если существо выше персонажа или наоборот, то персонаж или существо не будут вдавливать друг друга в землю, а вот толкнуть вверх могут. Теперь о том, зачем было использовать в скрипте полигон коллизии расположенный в самом верху. Если игрок попадает в тот полигон своей нижней стороной, то в таком случае делается проверка и в метку записывается значение: Если сделать скрипт без этой проверки, то персонаж на существе стоять не будет, то есть он будет висеть на нем с анимацией падения, и при слезании получит огромный урон, так как считается что он падает. Что бы избежать такого недоразумения находим функцию проверяющую стоит игрок на земле или нет, и вот как раз тут и пригодится нам наш полигон коллизии. В функцию делаем инъекцию кода параллельно с основным: Таким образом персонаж будет стоять на существе как на земле, и при слезании не получит огромный урон. В скрипте так же имеются проверки на тип существа, и изменение его проверочного размера. Вот такой вот получается скрипт целиком: Этот скрипт должен на входе получить адрес структуры для проверки. Он выполняется 2 раза, 1 раз делает коллизию игроку, а 2 раз делает коллизию тому адрес чего получен дальше. В моём случае этот адрес - адрес существа. Этот скрипт вызывается другим скриптом с потоком: Вот эти сложные махинации создают коллизию между игроком и существами, и между самими существами. Картинки работы: Скрипт работает - существа не могут пройти сквозь друг друга и игрока: Скрипт отключён:
    1 балл
  8. Minercraft 1.7.10, java x64 Проектный Для начала необходимо найти сам адрес игрока, сделать это на сервере проще всего по векторному ускорению игрока. Оно имеет тип doble. Делать мы это будем следующим образом: Встаём на земле, ищем неизвестное значение, залезаем в воду - ищем увеличилось, и так далее. Вместо залезания в воду можно прыгнуть или еще как либо изменить ускорение игрока по вертикальной оси. Предположим нам удалось найти адрес структуры игрока таким образом. У нас есть адрес игрока, делаем все так же как и при простом поиске указателя, ищем полученный адрес с помощью поиска в hex 4 байта, у нас найдет очень много значений. Отсеиваем их пока не останется около 30 Ставим бряк на доступ к найденным адресам и находим тот в котором будет инструкция со смещением. Мы находим адрес структуры в которой лежит адрес игрока, он то нам и нужен, делаем анализ структур Наш адрес игрока лежит по смещению +84. Дальше указатели искать бессмысленно, лучше вывести сигнатуру из части этой структуры, которая всегда будет одинакова и уникальна, сделать это можно из первых значений в структуре. Это - размеры отображаемого пространства, проверить можно изменив одно значение: Исходя из этого можно понять что эти адреса всегда будут уникальны, потому можно смело сделать из этого следующую сигнатуру, у меня получилась вот такая: C0 02 00 00 10 27 00 00 56 03 00 00 Осталось лишь написать скрипт который будет записывать в метки нужные нам адреса, так как 64x процесс CE думает что указатели по 8 байт, и при простом переходе по указателям получается невесть что, потому попробуем сделать запись адресов через скрипт. Получившийся у меня скрипт: Таким образом - скрипт ищет адрес структуры, потом вызывает поток который запишет адреса в метки и вернется. Как выглядит у меня: Активируем: Ваши значения в структуре могут быть иными, потому сигнатура может не работать, например из за иного разрешения экрана, потому надо найти её самостоятельно. Использовать эти адреса можно как угодно, например сделать моментальное ломание любых блоков на сервере, в том числе и коренной породы. Надо учитывать что адреса меняются после перехода в другой мир или при смерти игрока, потому надо перезапускать поиск. Я считаю что есть способы более удобные, но это пожалуй для 32 битной java, а здесь лучшего способа чем этот мне пока найти не удалось.
    1 балл
  9. Как ты вообще представляешь себе это? Тригербот на цвету пикселя...Намного легче и эффективнее читать память. А так алгоритм то легкий. - Получить hwnd игры - Получить размеры окна - Вычислить центр в этом окне - От цента сделать квадрат, например 50x50 px - Сканировать этот квадрат в цикле GetPixel И всё это будет криво работать, потому-что в игре куча разных цветов и оттенков. И еще игра может перехватывать обычные сообщения мыши, а принимать только DirectInput.
    1 балл
  10. Не за тем следите. Лучше бы помогали новичкам ответы получить на вопросы, а не оформление тем смотрели. Больше суток теме, ни 1 ответа . Накинуться должны были отвечать, чтобы интересно дальше было сидеть на этой помойке. 8 лет форуму 15-20 активных участников, теперь понятно почему. Вообще збс форум, топчик
    -2 балла
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.