Опрос на сайте
Что вы делаете с GTA?

Популярные новости

Magic - TXD Builder 0.9.1

Magic - TXD Builder 0.9.1
Полезная программа для сборки TXD файлов, которая важные параметры, такие как mip map, DXT сжатие... Кроме того, программа

Vertex Alpha в Vice City

Vertex Alpha в Vice City
То, что некогда было доступно лишь в GTA: San Andreas и выше: Vertex Alpha, а потенциально - и физический бленд текстур в

Компактное меню

Компактное меню
Компактное меню для глобальных модов. Исключено все лишнее.

Main Menu Scene

Main Menu Scene
"Main Menu Scene" дает вам возможность создавать собственные сцены в "Главном Меню" игры с кастомными картой и скриптом, при

Rollerskates Mod

Rollerskates Mod
Модификация позволяет кататься на роликах, прямо как пляжные девушки.

03 ноябрь 2014

Подхват переменных в GTA Vice City


Разберем вкратце, что же за такой подхват переменных в GTA Vice City. Например мы просто объявляем некую переменную в нашем коде C++ и просто присваиваем ей тот адрес, где и будет наше нужное нам игровое значение. Теперь же разберем это на реальном примере, ну и конечно же для примера возьмем тот адрес, по которому расположено значения игровых денег. Процесс будет весьма простым, мы напишем обработчик, из системных функций API. Наш готовы код будет выглядеть вот так:

#include "stdafx.h"

auto pMoney = (DWORD*)0x094ADC8;
//DWORD * ppMoney = (DWORD*)0x094ADC8;

//Код обработки нажатия
void Update() {

if (GetKeyState(0x4D) > 0)
*pMoney += 10;

};

BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
SetTimer(0,0, 100, (TIMERPROC)Update);

break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}


Теперь, давайте для понимания, разберем данный код, как он работает. Сперва вы объявляем типизированные указатель, которым присваиваем адрес где находиться значение игровых денег GTA Vice City:

auto pMoney  = (DWORD*)0x094ADC8;    //Первый вариант объявления с автоматическим приведением


или можно объявить так:

DWORD * ppMoney = (DWORD*)0x094ADC8; //Второй вариант чистый C++ код


Затем мы пишем обычную свою процедуру, в которой будем проверять нажатия клавиши “M”, как только нажмем, мы прибавим значение, к текущему балансу денег, 10 игровых долларов прям в игре.


//Код обработки нажатия
void Update() {

if (GetKeyState(0x4D) > 0)
*pMoney += 10;

};


GetKeyState(0x4D) – это Api функция, и параметр это номер клавиши, об этом подробно можно найти в интернете.

case DLL_PROCESS_ATTACH:
SetTimer(0,0, 100, (TIMERPROC)Update);
break;


Тут также API функция, которая вешает таймер на процедуру, получается как только плагин загружается, сразу вешаем таймер, на нашу процедуру, с интервалом 100 миллисекунд об этой функции также есть доступная справка, если хотите узнать по подробней. Теперь подведем итоги этого нашего творения:

*pMoney += 10;


С этим методом, теперь не нужно, делать так, как мы делали чтение и запись в предыдущих уроках, для таких задач, этот урок вам пригодиться. Достаточно объявить правильно типизированный указатель с нужным размером и затем присвоить ему адрес. Использовать потом, переменную легко, разыменовывать * этим и спокойно присваивать или считывать значение в дальнейшем. Вот такая вот простая и в тоже время удобная логика кода, для различных целей.

Скачать исходник примера ASI [22,22 Kb] (cкачиваний: 46)

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Добавить свой комментарий

Полужирный Наклонный текст Подчёркнутый текст Зачёркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Вопрос: Введите первые 3 (Русские) буквы сайта (заглавные).
Ответ:*
Другие материалы

Вывод на экран GXT текста в GTA VC

Вывод на экран GXT текста в GTA VC
Настала пора поработать не много с текстами в GTA Vice City, а это значит что в этом уроке мы научимся выводить текст GXT,

Вызов методов класса в GTA Vice City

Вызов методов класса в GTA Vice City
После того как мы разобрались в предыдущей статье, как вызывать функцию по адресу, теперь можно переходить к вызову методов

Вызов функций и процедур в GTA Vice City

Вызов функций и процедур в GTA Vice City
Вся игра состоит на самом деле из функций и процедур а также методов различных классов, о которых мы поговорим позднее.

Создаем первый плагин ASI на C++ Часть 3

Создаем первый плагин ASI на C++ Часть 3
Сейчас мы сделаем, самый простой плагин, который лишь выведет системное сообщение в виде привет, после запуска игры. Из кода
Ads

Группа GTA Builder