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

Лидеры

  1. imaginary

    imaginary

    Помогаторы


    • Баллы

      9

    • Постов

      319


  2. MasterGH

    MasterGH

    Ветераны


    • Баллы

      2

    • Постов

      2 999


  3. Garik66

    Garik66

    Помогаторы


    • Баллы

      1

    • Постов

      5 750


  4. Xipho

    Xipho

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


    • Баллы

      151

    • Постов

      4 023


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

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

  1. 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 раз делает коллизию тому адрес чего получен дальше. В моём случае этот адрес - адрес существа. Этот скрипт вызывается другим скриптом с потоком: Вот эти сложные махинации создают коллизию между игроком и существами, и между самими существами. Картинки работы: Скрипт работает - существа не могут пройти сквозь друг друга и игрока: Скрипт отключён:
    3 балла
  2. В этой теме можно узнать о том, как сделать полет по повороту камеры в 3D пространстве (лететь туда куда смотришь) и как сделать перевод числа в 360, если оно превышаем 360 или наоборот, ниже нуля. Перед просмотром видео лучше ознакомится с предыдущими темами, так как там показано как найти адрес персонажа. Скрипт- функция расчета ускорения из поворота: Скрип записывающий в ускорение игрока и вызывающий функцию выше: Видео: Часть 1: Часть 2: Часть 3:
    2 балла
  3. В этой теме можно узнать как сделать полёт на определённые координаты исходя из координат точки и координат персонажа. Для созданий этого скрипта надо иметь у себя адрес персонажа, потому лучше еще прочитать предыдущую тему. Скрипт: Видео:
    2 балла
  4. 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, а здесь лучшего способа чем этот мне пока найти не удалось.
    2 балла
  5. Зачем так сложно, я же уже предложил вариант, где во все три адреса запишется нужное значение. ТЫК
    1 балл
  6. Версия 1.1

    49 раз скачали

    Назначение В помощь по составлению регулярных выражений на Lua Установка Запустить файл "Lua Regular expression.CETRAINER" с помощью Cheat Engine После чего откроется окно, в котором можно составлять регулярные выражения. Даются простые примеры. Исходники Исходники зашифрованы, но будут исходники без шифрования в скрытом разделе форума
    1 балл
  7. Потому что они гордятся своей исключительностью, а мы над ними посмеиваемся и относимся терпеливо, как к нашкодившему ребенку
    0 баллов
×
×
  • Создать...

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

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