Все наверное помнят замечательный редактор карт Moo mapper для GTA III и GTA Vice City.Этот редактор карт оснащен различным функционалом, умеет показывать текстуры, модели и даже прикреплять текстуру карты, под весь игровой городок GTA Vice City. Тут в архиве содержится исходник для языка программирования Delphi самого редактора карт.
GTA Vice City 2 – это не новая игра от официальных разработчиков, это модификация под движок Rage. Так что не нужно путать. В настоящее время, модификация находиться в разработке, дата выпуска мода пока совсем не известна. Над модом работает 12 разработчиков энтузиастов. Конечно судя по скриншотам, текстурщики и моделлеры замечательно выполняют свою работу…
После того как мы разобрались в предыдущей статье, как вызывать функцию по адресу, теперь можно переходить к вызову методов класса. Принцип вызова метода почти такой же, но разница лишь в том, что надо еще передавать адрес самого объекта, к которому принадлежит метод. Для примера сделаем вызов нескольких методов CCamera (камеры) игры.
Вся игра состоит на самом деле из функций и процедур а также методов различных классов, о которых мы поговорим позднее. Данный урок покажет как написать правильно код, для того что-бы вызывать какую-то функцию и что для этого вам нужно будет. Для этого нам как обычно понадобиться база GTA Vice City для IDA pro что-бы, находить там функции игры, а затем их вызывать.
Иногда бывает, такие случаи, что один участок памяти (т.е переменная) используется в разных местах, для разных вещей. Но это нам не всегда нужно, например когда мы разрабатывает различные моды для GTA Vice City в виде плагинов. Теперь для примера, сейчас будет наша задача, поменять иконки оружия размеры, но не просто поменять, а задать тут же высоту и ширину, по разному.
Сейчас в начале разберем вкратце, что же за такой подхват переменных в GTA Vice City. Например мы просто объявляем некую переменную в нашем коде C++ и просто присваиваем ей тот адрес, где и будет наше нужное нам игровое значение. Теперь же разберем это на реальном примере, ну и конечно же для примера возьмем тот адрес, по которому расположено значения игровых денег.
Продолжение урока по программированию плагинов, которые работают со значениями и производят запись/чтения в заданные адреса.