Установка и настройка

Установки, как таковой, не требуется. Вам нужно только создать любой проект в 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. Всё остальное будет сделано автоматически. На текущий момент есть "подводные камни" в этой функции:

  1. Мы должны закрыть Sanny Builder, иначе файл кода будет в нём открываться;
  2. Режимы редактирования должны быть стандартными, чтобы не было возможных конфликтов;
  3. В настройках "Форматирование" регистр букв должен быть установлен в "Как есть";

Подготовка к созданию первого скрипта завершена! Можете закрыть класс с консолью, дальше мы будет работать только с "MAIN_SCM.CS".