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

Sergey1953

Стажёры
  • Публикаций

    2
  • Зарегистрирован

  • Посещение

Репутация

0 Навыки не прокачены

Информация о Sergey1953

  • Звание
    Гость
  • День рождения 06/11/1998

Информация

  • Пол
    Мужчина
  • Город
    404
  • Интересы
    Hacking
  1. Доброго времени суток! Увлекаюсь изучением игр изнутри довольно давно, но до сих пор не смог понять одной простой вещи - это то, где или как в 3D играх формируется скорость. Поясню ситуацию, имеется игрушка GTA III, там есть машинки, которыми мы можем управлять, то есть мы сели и поехали. Особого труда не составит найти координаты хотя бы X и Y (Z не учитываем), также через поиск по структуре можно запросто найти адреса памяти в которых хранится смещение на координатной плоскости (то, что прибавляется к значению в адрес с координатами). К примеру, мы двигаемся на машине на север с постоянной скоростью => по оси Y у нас идёт смещение, например, +3.0. то есть по оси Y было 0.0, потом 3.0, 6.0 и так далее. Всё бы ничего да только эти значения не являются скоростью автотранспорта => по моему разумению, нужно найти тот участок памяти (адрес), в котором записана текущая скорость, которую набрал транспорт, с этим как раз и проблема. Хочу заметить что я в курсе, что тут возможно есть работа с векторами скорости, так как копаясь в одной функции для Cheat Device, что в свою очередь был для GTA Vice City Stories (но то не важно), мною была обнаружен такой комментарий и код: // velocity = velocity + forward vector * thrust boost = 0.5; thrust = boost * 0.00333; setfloat(pcar + 0x0140, getfloat(pcar + 0x0140) + getfloat(pcar + 0x0010) * thrust); setfloat(pcar + 0x0144, getfloat(pcar + 0x0144) + getfloat(pcar + 0x0014) * thrust); setfloat(pcar + 0x0148, getfloat(pcar + 0x0148) + getfloat(pcar + 0x0018) * thrust); Это C подобный синтаксис, поэтому поясню сам: 1) boost - ускорение 2) thrust - толчок 3) pcar - начало структуры машины, в которой мы сидим По моему разумению, pcar + 0x0140 - это адрес, который как раз таки и хранит смещение по координатам, которые прибавляются к осям X, Y, Z. Тогда исходя из формулы: // velocity = velocity + forward vector * thrust ===> скорость = смещение по координатам + вектор * толчок. Если я всё правильно понимаю конечно же)) Но вопрос, что же такое forward vector? Это угол разворота машины или же что-то иное?
×

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

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