-
Постов
410 -
Зарегистрирован
-
Посещение
-
Победитель дней
16
Тип контента
Профили
Форумы
Загрузки
Блоги
Весь контент Antonshka
-
Привет, сделал лимит скорости передвижения автомобиля, посредством Velocity X и Y, но почему-то иногда машина движется с разной скоростью. К примеру, если выставить максимальное допустимое Velocity 5, то в этом случае если X будет равен 0, а Y будет равен 5, скорость будет 10 км/ч. А если Х будет равен 0.5, а Y будет равен 4.5, то скорость будет 8 км/ч. Словом, когда одна из осей равна 0, а другая равна максимально допустимой, тогда скорость машины наибольшая. Код для лимита @imaginary насколько я помню, ты знакома с координатами и с тем что с ними связано не понаслышке. Вот здесь такая задача, - сделать лимит скорости передвижения объекта, независимо от направления его движения. Мне даже не столько важно найти решение, как посоревноваться с тобой и с другими участниками. Посоревноваться, подумать вместе, вместе искать решение. Это интересно. Как когда/то мы искали с @Garik66 способ сделать обход античита для ассасина, или искали способ сделать декриптор imul.
-
Всем привет! Родилась очередная идея, получить полный контроль над анимацией персонажа. Например, вытащить водителя автомобиля из водительского кресла и посадить его на капот, или же просто поставить его где-нибудь рядом, сделав на лице победную улыбку?. Для удобства манипулирования частями тела и мышцами лица, сделать "онлайн мост", между памятью игры и трехмерным редактором maya 3D . Что уже есть: - Участок адресов в памяти игры с координатами и углами поворота частей тела - "Онлайн мост" Чего нет: - Понимания каким образом вращать и перемещать части тела. Тело персонажа состоит из костей, скрепленных между собою, и если сместить скажем коленную чашечку правой ноги немного выше, то нужно будет сместить и те косточки, что с нею связаны, иначе нога просто вытянется. Положение кости рассчитывается с учетом положения её родителя, у которого в свою очередь опять есть свой родитель. Рассчитать положение одного в зависимости от другого не вызывает у меня проблем. Но вот как получить иерархию, это большой вопрос. Вот такие мысли и предположения. Возможно они неверны. Если есть такие кто также двигается в этой теме, присоединяйтесь. Вместе скорее решим эту задачу. Тема контроля анимации одна из самых захватывающих для меня.
- 1 ответ
-
- 1
-
-
Может на форуме СЕ есть решение твоего вопроса. В разделе lua. У меня сейчас со временем для программирования никак.
-
По идее ничего сложного там быть не должно. С Velocity имею ввиду. Для каждой оси координат есть свое Velocity, то есть Velocity всего 3. Когда перс стоит на месте, все 3 Velocity должны быть равны 0. Если делать полет не по координатам а по Velocity, то та формула что я выложил должна так же подойти. В смысле рассчитывать полет нужно будет так же с использованием синуса и косинуса. Логика скрипта с Velocity кажется должна быть немного другой. Я с Velocity давно не работал. Все с координатами да с координатами. Ты выложи сюда свои наработки, где перс не в ту сторону летит.
-
На Lua можно. Для этого нужно будет занопить инструкцию пишущую значения в координаты. Либо на время активации полета подсовывать в читающую инструкцию адреса с новыми значениями координат. Но я бы не советовал на Lua. Вероятно возникновение дерганного полета. На пишущей или читающей инструкции самое то. То есть на ассемблере лучше написать.
-
X и Z - это горизонтальные оси? Координаты поворота на скрине это синус и косинус угла Yaw. Эти два значения можно напрямую использовать для FlyHack. Единственное ты не сможешь при полете направляться вверх или вниз, при движении мыши в этом направлении. Сможешь только лететь в сторону куда смотрит камера в горизонтальной плоскости. Для того чтобы была возможность направляться вверх или вниз нужен угол Pitch, но такой угол у персонажа равен 0, потому как он не наклоняется. Угол Pitch есть у камеры, но его тебе не вытащить как я понял, пока что. Вот по какой формуле я делал полет
-
Возможно инструкция слишком часто пишет значения в эти адреса. Самый короткий путь к созданию FlyHack, как здесь уже писали, это качнуть из интернета готовую таблицу. Готовую таблицу где реализован либо FlyHack персонажа, либо FreeCamera. С матрицей кстати, я не встречал таких готовых таблиц. Вообще FlyHack это довольно таки серьезный мод. Просто так сразу и не напишешь.
-
Я использовал этот метод readRegionFromFile(filename, destinationaddress)
-
Перемещаться в пространстве мне больше нравиться с помощью координат. С помощью Velocity (ускорения) чувствую себя как бы ограниченным. С помощью координат и отключение коллизии не обязательно. Персонаж при таком способе через все стены пролетает спокойно . Для хорошего FlyHack нужны координаты и матрица поворотов. Иногда в памяти лежат уже готовые углы Yaw и Pitch, в таком случае сделать FlyHack проще. Однако чаще всего в памяти есть только матрица поворотов.
-
Для коллизии я раньше делал так - найти координаты автомобиля - подъехать вплотную к какому-либо объекту (например дереву) - начать искать какую-нибудь координату (напимер Х) этого дерева, используя значение какой-нибудь координаты (напимер Х) автомобиля. (координата Х автомобиля имеет значение 500, значит первый скан для поиска координаты Х дерева делать от 450 до 550) - менять по порциям найденные значения и каждый раз пробовать проехать сквозь это дерево - на найденную координату Х дерева поставить бряк на ЧТЕНИЕ - поменять поведение инструкции подсунув ей какие-нибудь левые большие значения (при таком способе оригинальные значения координат объектов в памяти не изменяются, поэтому в любой момент времени коллизию можно вернуть без перезагрузки карты) Суть способа переместить сам объект. Его текстура при этом остается на месте. У объекта есть координаты самого объекта, координаты его текстуры, координаты самого объекта для определения начала рендеринга, и некоторые другие. Для новичков это сложно, по моему мнению. Некоторые игры не дают заинжектить dll, наприме Forza Horizon 4. В таких случаях с видовой матрицей придется работать вручную. Для новичков вполне достаточно иметь лишь только СЕ, луа, ассемблер, фантазию, смекалку, терпение, хитрость, упорство, время, и конечно же друзей единомышленников. Для того чтобы понять как работает матрица, я в свое время качал и устанавливал 3Ds max. Созданный объект в сцене был моим подопытным кроликом. С помощью СЕ я подключался к процессу 3Ds max, а с помощью сначала калькулятора, а затем и скрипта луа, я пытался понять алгоритм работы матрицы. Моей задачей было зафиксировать первый объект относительно второго объекта, во время вращения и перемещения второго объекта.
-
Как вариант. Только что помог друг. Средства / Параметры / Шрифты и цвета / Среда Сменить с авто на любой другой.
- 2 ответа
-
- 1
-
-
Привет, подскажите кто знает, как увеличить размер шрифта меню в Visual Studio (19). За два часа поиска только удалось найти как увеличить размер шрифта самого кода (ctrl + mouse scroll). Везде где смотрел, говорят об увеличении размера шрифта кода. Казалось бы, такая тривиальная задача, а решение так и не нашлось.
-
Тот же скрипт с функцией сохранения адресов по порядку, по возрастанию. Можно сделать и по убыванию, для этого в скрипте нужно поменять строку jb Get_Bones_Bases_scr_1_Sorting_Process_Replace_Skip на ja Get_Bones_Bases_scr_1_Sorting_Process_Replace_Skip Сам скрипт. В нем сохраняются адреса (без смещения 50), и их содержимое. Просто так нужно для приложения.
-
edx и ebx трудно распознавать, путаются?. Используй пожалуйста визуально хорошо различимые регистры?
-
Кажется запишется один и тот же адрес многое количество раз. Я не до конца понял схему работы скрипта.
-
Только что придумалось Наверно есть и попроще способы. но это все что смог. Сейчас пытаюсь понять способ предложенный @imaginary Если не жалко, выложите свои варианты.
-
Нужно в СЕ, да. Мне просто нужно в собранном трейнере/приложении получать эти адреса.
-
Сам не понимаю происходящего ?
-
Привет, уже несколько часов пытаюсь придумать способ сохранить все адреса с которыми работает одна инструкция. Сохранить куда-нибудь в память, в одно место, для удобства. Когда-то давно проделывал такое с легкостью, как помниться, но не сейчас. Ничего не получается.
-
Привет, сталкивался ли кто-нибудь с блокировкой курсора мыши в центре окна игры? Мне стало интересно, как игра рассчитывает вращение персонажа, когда сам курсор стоит на месте. Интересен сам механизм определения насколько изменилась позиция курсора. То что курсор постоянно возвращается в центр это известно, но то что происходит дальше нет. Есть предположения 1 - игра определяет насколько был сдвинут курсор 2 - затем игра после возвращает курсор в центр То есть игра получает сообщения через SetCursorPos, и после тут же возвращает курсор в центр. значит где-то в памяти есть постоянно увеличивающееся и постоянно уменьшающееся значение, как для X, так и для Y. Такие предположения. Кто-то знает как на самом деле?
-
То есть просто напросто игра зависнет или вылетит? Если это все, то это не так и страшно тогда. Из-за неправильного внедрения в обычный пользовательский код ведь происходит тоже самое.
-
Понятно, спасибо. Опасная вещь.
-
А почему по рукам бьют за внедрение в memcpy? Что в этом плохого? Недавно мне попалась проверка целостности кода. Она работала также через memcpy. Я просто заменил RSI на начало продублированного exe модуля. Работает нормально.
-
Не могу использовать такой способ. Инструкцию Repe movsb вызывает свой CALL, например раз 30 в секунду, это сегодня, завтра же может быть она будет вызывать её уже раз 35 в секунду. Мне нужна постоянная частота записи в нужные мне адреса. Нужен свой поток. В игре такая ситуация, есть два буфера, и есть блок памяти с моими адресами. инструкция Repe movsb копирует из первого буфера данные в мой блок, затем она же копирует данные из моего блока во второй буфер. То есть нужно посмотреть что пишет в первый буфер до того как он будет скопирован инструкцией Repe movsb? Или посмотреть что будет читать второй буфер после того как в него будут скопированы данные?
-
Да, все дело в том что должны быть отключены только некоторые адреса. Для остальных адресов этого блока памяти Repe movsb должна продолжать работать . Например из 1000 адресов, только 10 нужно отключить на время. Нужна фильтрация адресов для инструкции Repe movsb. Пока я не знаю другого способа, а хочется. Потому что способ с фильтрация и расчетом какой-то сложный.