Установки, как таковой, не требуется. Вам нужно только создать любой проект в Visual Studio с поддержкой C#.
Для примера я создам обычное консольное приложение. Имя может быть абсолютно любым:

Далее добавьте ссылку на библиотеку, используя меню "Ссылки->Добавить ссылку".

Далее нажмите на кнопку "Обзор" и укажите путь к "GTA.dll" и нажмите "Ок" в окне "Менеджер ссылок":


После успешного выполнения этих действий, можно приступить к написанию кода. Откроем созданный проект и в методе "Main" будем настраивать генератор:
using GTA.Generator; // подключим пространство имён генератора
using System; // нужно только для доступа к классу "Console"
namespace demo_app {
class Program {
static void Main( string[] args ) {
// указываем время задержки по-умолчанию
Generator.DefaultWaitTime = 250; // не меньше нуля!
// указываем память потоков; не знаю зачем он был разработчикам MAIN.SCM, но решил добавить и сюда
// это свойство будет генерироваться только для игры GTA San Andreas!
Generator.UnknownThreadsMemory = 2048;
// генератор не будет использовать стандартный список секции DEFINE OBJECTS
Generator.DontUseDefaultDefineObjects = true;
Console.ReadKey(); // ставим задержку консоли, чтобы дать возможность генератору закончить работу
}
}
}
Приведённый код только настраивает генератор, но этого делать не обязательно, так как он уже используют значения по-умолчанию. Сейчас нас интересует как запустить генератор. Нам необходимо создать класс с любым названием ( "CTRL+ALT+C" или через меню ). Для примера я назву его "MAIN_SCM". Сначала подключим пространства имён, которые нужны для генерации скрипта:
using GTA; // подключаем типы данных и команды, которые используются в GTA III, VC и SA
using GTA.SA; // подключаем типы данных и команды, которые используются только в GTA SA
//using GTA.III; // или если нужно использовать GTA 3
//using GTA.VC; // или если нужно использовать GTA Vice City
namespace demo_app {
public sealed partial class MAIN_SCM : Script { // "sealed partial" писать не обязательно
//public MAIN_SCM() { } // удаляем, если конструктор ничего не делает
}
}
Класс "MAIN_SCM" должен наследовать класс "Script", иначе мы не сможем запустить генератор. Этот класс содержит функции, которые имеют такие же названия, как и опкоды в Sanny Builder.
Конструктор я закомментировал, он не нужен. Если Вы оставите его, то он обязательно должен быть в таком виде, как на коде выше. В фигурных скобках можете вызывать другие методы, которые могут Вам понадобиться.
Теперь возвращаеся к консольному проекту, и запускаем генератор, указав в треугольных скобках название класса, что мы создали ранее:
using GTA.Generator;
using System;
namespace demo_app {
class Program {
static void Main( string[] args ) {
//Generator.DefaultWaitTime = 250; // я закомментировал, так как значение 250 установлено по-умолчанию
Generator.UnknownThreadsMemory = 2048;
Generator.DontUseDefaultDefineObjects = true;
Generator.Start<MAIN_SCM>( true ); // запускаем генератор!
Console.ReadKey();
}
}
}
В методе запуска генератора я использовал параметр "true", который после генерации кода откроет результат в текстовом редакторе. Этот параметр является опциональным и указывать его не обязательно.
Генератор не умеет самостоятельно компилировать скрипты, однако есть поддержка использования компилятора Sanny Builder. Для этого нужно вместо метода "Generator.Start" использовать функцию "Compile":
using GTA.Generator;
using System;
namespace demo_app {
class Program {
static void Main( string[] args ) {
Generator.UnknownThreadsMemory = 2048;
Generator.DontUseDefaultDefineObjects = true;
// Generator.Start<MAIN_SCM>( true ); // вызывается автоматически в методе "Compile"
Generator.Compile<MAIN_SCM>( @"D:\Programm\Sanny Builder 3\sanny.exe" );
Console.ReadKey();
}
}
}
Мы должны передать в метод путь к Sanny Builder. Всё остальное будет сделано автоматически. На текущий момент есть "подводные камни" в этой функции:
Подготовка к созданию первого скрипта завершена! Можете закрыть класс с консолью, дальше мы будет работать только с "MAIN_SCM.CS".