Пишем простой ASI плагин для GTA San Andreas. Пишем простой ASI плагин для GTA San Andreas Скачать плагины на гта сан андреас

ASI Loader — позволяет запускать asi скрипты, необходим для работы модов в GTA 5. Отметим, если у вас уже установлен , то в этом случае ставить ASI Loader вам уже не надо, так как asi скрипт уже включен в скрипт хук.

Скрипт нужно тем игрокам, которые предпочитают использовать в игре разнообразные моды, добавляющие множество различных возможностей, от функционала по смене моделей главных героев, до всяческих трейнеров.

Мод ASI Mod Manager

Некоторые игроки думают, что запускать asi loader нужно как-то отдельно, но это не так, следует лишь установить файл с расширением.dll и все последующие загруженные модификации будут работать.

Местом действия Grand Theft Auto V стал вымышленный город Лос-Сантос (англ. Los Santos ), прототипом которого является Лос-Анджелес. Лос-Сантос впервые появился в одной из предыдущих игр серии - Grand Theft Auto: San Andreas, вышедшей в 2004 году. В игре, помимо самого города, также присутствуют прилегающие территории сельской местности, гор, лесов, холмов, и пляжей, в игре получившие название «округ Блейн». Также есть отдельное игровое пространство - вымышленный штат Северный Янктон (англ. North Yankton ); вероятно, пародия на реально существующий штат Северная Дакота вблизи с канадской границей. В этом штате всего один мрачный город - Людендорф. В Северный Янктон нельзя попасть, исключение составляют две сюжетные миссии, действие которых разворачивается непосредственно в Людендорфе. Вся карта Лос-Сантоса и его окрестностей открыта игрокам с самого начала. Всего в игре 39 локаций.

Как установить

Скопируйте файл dinput8.dll в корневую папку GTA 5. Если данный файл уже присутствует просто замените его.

Сразу предупреждаю будет сложно, но не все так страшно, как кажется.
Давайте напишем простой плагин, функцией которого будет: по нажатию клавиши, даем нашему игроку кучу баксов, для богатой и счастливой жизни!
Статья для новичков, опытным кодерам она будет бесполезна.

Ближе к делу! Для начала скачайте интегрированную среду для разработки, а простыми словами - программу, в которой программисты творят свои чудеса. Я выбрал бесплатную и довольно удобную, а самое главное простую - Dev C++ 5.11.
Скачать ее можно
Вы можете выбрать, что угодно, например Code Blocks, или Visual Studio C++, дело вкуса, рекомендую Code Blocks.

Заранее предупреждаю, если вы не смогли установить себе данную программу, или скачать, то дальше вам не стоит читать эту статью.

Запускаем программу, щелкаем в меню - создать ---> проект и выбираем DLL.

Сохраняем наш проект в любую, заранее созданную папку, под именем AsiPlugin.
Перед нами открывается исходный код проекта, ничего не трогаем, все что вам сейчас нужно - это функция под названием DllMain.

Что такое DllMain? Это функция, которая может быть вызвана игрой при запуске и соответственно, все, что вы задумали выполнится в этом участке кода. Для нашего маленького эксперимента нам понадобится следующий участок кода:

Case DLL_PROCESS_ATTACH: { // сюда мы запишем наше действие и оно выполнится. break; }

Что нам нужно для того чтобы пополнить счет игрока? Правильно, сначала узнать когда мы нажали на клавишу!
Я дам вам шаблон данной функции и им можно будет пользоваться в дальнейшем.

Void OnTimer(HWND hwnd, UINT msg, UINT idTimer, DWORD dwTime) { if (GetAsyncKeyState(0x47) & 0x8000) // если нажали на G, 0x47 - код клавиши { // то тут выполняем наш код } }

Коды для клавиатуры можно найти .
Данный участок кода, постоянно будет повторяться и каждый раз будет проверяться состояние клавиши G.

Далее самое сложное. Нам нужен адрес переменной, которая хранит в себе количество денег игрока. При помощи этого адреса мы считаем деньги в нашу переменную и запишем новую сумму.
Заходим сюда (здесь вы найдете основные адреса перменных игры)

Видим наш адрес: 0xB7CE50 - Деньги.
Как этим пользоваться спросите вы? Объясняю!

DWORD Many = *(DWORD*)0xB7CE50; // получаем деньги.
*(DWORD*)0xB7CE50 = 1000000; // даем денег игроку

DWORD Many = *(DWORD*)0xB7CE50; // сколько денег у игрока? if(Many

Далее нам необходимо запустить таймер, который будет выполнять нашу функцию и каждый раз спрашивать: нажали ли мы клавишу?
Делается это так - SetTimer(0, 0, 200, (TIMERPROC)OnTimer); // 200 интервал в миллисекундах

В итоге получим следующий код:

Void OnTimer(HWND hwnd, UINT msg, UINT idTimer, DWORD dwTime) { if (GetAsyncKeyState(0x47) & 0x8000) // если нажали G { DWORD Many = *(DWORD*)0xB7CE50; // получаем количетсво денег if(Many

Теперь нам осталось скомпилировать нашу программу и попробовать ее в игре. Сразу хочу обратить внимание. Выберите 32 битный компилятор в Dev C++, иначе наш плагин работать не будет.
Смотрите картинку, как это сделать и что нажать для компиляции.

Получилось без ошибок? Если да, то идем в папку с нашим проектом и находим файл DLL, который у нас получился. Переименовываем расширение в ASI и кидаем в папку с игрой. Важно! Не забудьте установить AsiLoader , или CLEO 4 .
Вот и все. Запускайте игру и жмите G. Все работает? Молодцы, поздравляю!
Спросите что дальше? Отвечу: изучайте программирование, быть может из вас получится гуру моддинга, а может быть и круче.
Тем у кого не получилось, дарю плагин AsiPlugin.rar и исходник проекта lesson.rar .

Полезные ссылки:
Книги по программированию можно скачать .
Адреса и функции Gta San Andreas , там же можно найти базу для IDA, в которой много чего интересного. Как пользоваться IDA боюсь, нужна отдельная статья.

Спасибо за внимание, надеюсь статья понравилась! Всем удачи!
p.s: Если статья вызовет интерес, то в следующей статье научу пользоваться функциями GTA и к примеру спавнить машины.

Статья эксклюзивна для сайта сайт, при копировании материала необходимо указать ссылку на сайт.

Скрипты

При использовании CLEO в игру можно добавлять новые скрипты, написанные в Sanny Builder или другом редакторе скриптов, без необходимости начала новой игры. Все, что требуется для добавления такого скрипта в игру, - это поместить его в папку CLEO. Cкрипт начнет работу после начала игры. Для удаления скрипта из игры - удалите соответствующий файл.

Все скрипты написаны фанатами игры и не имеют отношения к разработчикам CLEO. Хотя сама библиотека CLEO должна работать с различными версиями игры, отдельные скрипты могут иметь собственные ограничения и требования к файлам игры. По вопросам работоспособности конкретного скрипта обращайтесь к его автору.

Опкоды

CLEO 4 добавляет в игру 100 новых скриптовых команд, которые позволяют работать с внешними файлами, изменять данные в памяти игры, вызывать игровые функции со своими параметрами, а также многое другое.

В четвертой версии появились новые команды для работы со звуками, строками, была добавлена возможность выводить на экран текст без использования внешних файлов (.gxt, .fxt). Чтобы оценить новые достижения и использовать их в ваших скриптах, установите последнюю версию библиотеки CLEO 4.

Плагины

CLEO-плагины - это обычные DLL-файлы, но имеющие расширение.CLEO. При запуске библиотека CLEO ищет в папке CLEO файлы с данным расширением и пытается загрузить их. В случае удачной загрузки плагин начинает работать и выполнять те функции, для которых он написан.

CLEO 4 позволяет создавать новые опкоды, используя исходные коды CLEO SDK. В стартовом комплекте библиотеки можно найти три примера таких плагинов.

Плагины устанавливаются и удаляются также как и скрипты. Список доступных плагинов можно найти на этой странице .

Установка

CLEO 4 распространяется в виде автоматического инсталлятора. Для установки библиотеки запустите инсталлятор и следуйте его инструкциям.

CLEO 4.3 поддерживает три версии игры GTA San Andreas: 1.0, 1.01, 3.0 (steam).

CLEO требует установки ASI Loader, который идет совместно с библиотекой. ASI Loader - это программа, которая автоматически загружает файлы с расширением.asi при старте игры. ASI Loader заменяет один из оригинальных файлов игры "vorbisFile.dll" собственным, поэтому убедитесь, что вы сделали копию этого файла.

Другие файлы игры не заменяются, однако добавляются следующие файлы и папки:
- cleo\ (папка CLEO, в которую копируются все скрипты и плагины)
- cleo\FileSystemOperations.cleo (плагин для работы с файлами)
- cleo\IniFiles.cleo (плагин для работы с INI)
- cleo\IntOperations.cleo (плагин для работы с целыми числами на уровне битов)
- cleo\cleo_save\ (папка сохранений CLEO)
- cleo.asi (ядро библиотеки CLEO)
- bass.dll (библиотека для работы с аудио)
- vorbisHooked.dll (Silent"s ASI Loader)
Все плагины опциональны, но их функционал может быть использован различными CLEO скриптами.

CLEO 4 для San Andreas для проигрывания звуковых файлов требует установленной библиотеки BASS.dll версии 2.4, которую можно скачать с официального сайта Un4seen Developments Ltd .

Совместимость с CLEO 3

CLEO постоянно улучшается и расширяется с течением времени. В очень редких случаях некоторые скрипты, написанные для CLEO 3, могут не работать с CLEO 4. Начиная с CLEO 4.3, вы можете включить специальный режим совместимости для скриптов CLEO 3. Для этого измените расширение файла скрипта (обычно это ".cs") на ".cs3". CLEO 4.3 будет работать с такими скриптами в особом режиме, который включает в себя изменение поведения некоторых скриптовых команд. В тоже время в абсолютном большинстве случаев скрипты CLEO 3 работают с CLEO 4 без каких-либо проблем, и использование режима совместимости не требуется.

Об авторах

Разработчики не имеют отношения к Take 2 Interactive или Rockstar Games и не несут никакой ответственности за возможные негативные последствия, вызванные использованием данного продукта или любых других продуктов, распространяемых вместе с библиотекой. Используйте его на свой страх и риск.

Информацию об изменениях в версии 4.3 и более подробное описание возможностей CLEO можно найти в readme-файлах, которые идут в комплекте с библиотекой.

Статьи по теме