Наш первый скрипт. Необходимые условия его написания

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

Первым шагом будет подключения необходимых библиотек для работы. В обозревателе решений выделим папку "Ссылки". Нажимаем ПКМ->Добавить ссылку.... В появившемся окне выбираем вкладку "Обзор" и ищем в нём файл "ScriptHookDotNet.dll". Он лежит в папке

GTA IV\scripts\for Developers\bin 

Нажимаем Ок:

В этой библиотека находятся все функции GTA 4, которые мы будем использовать в скриптах.

Также нам необходима ещё одна ссылка. Используя метод выше, добавим ссылку "System". Она уже вложена в каталог, поэтому искать её нужно во вкладке ".NET":

Минимальные ссылки мы подключили. Теперь можно писать код. В первую очередь нам необходимо подключить пространства имён из этих ссылок. Делается это командой using. В поле редактора добавляем следующий код:

using System;
using GTA;

Теперь мы можем пользоваться командами, находящиеся в этих библиотеках. Дальше мы должны объявить область, которая содержит набор связанных объектов (namespase). Обычно это делается как для удобства так и во избежание возможных конфликтов между типами (в разных пространствах имён могут существовать типы с одинаковыми именами).

namespace TestScript {

   // Сюда пишем код!
   // Это как область для главного потока 'MAIN' в Sanny Builder.

}

Этому пространству обычно дают название такое же, как и название проекта. В нашем случаи это "TestScript". В отличии от SannyBuilder, скобки { и } являются блоком, внутри которого пишется код. Они всегда должны идти парно, чтобы одна открывала блок, другая — закрывала. В сумме этот блок формирует так званую "область видимости".

Как и известном Sanny Builder, тут присутствуют комментарии. Синтаксис написания таков:

код;
код; // Это строчный комментарий!
код;
код;

/* -------------------------------------
А это уже
многострочный комментарий!!!
код; -------------------------------- */

код;

В блоке "namespace" нам нужно добавить новый класс с произвольным именем. Это будет как бы аналогом потока в SannyBuilder:

public class Thread : Script {

 /* ПРОСТРАНСТВО ФУНКЦИЙ */

} ///////////////////////

В нашем случае, мы объявили поток с именем "Thread". "Script" — это класс, который нужен для запуска этого потока. Другими словами эта конструкция "превращает" класс в скрипт, используемый игрой. Символ : здесь говорит о том, что все методы, которые есть в классе "Script" будут доступны и в классе "Thread". В C# это принято называть наследованием. Это одна из базовых концепций объектно-ориентированного программирования. Об этих концепциях будут отдельные уроки.

Этот "поток", как Вы уже догадались по скобкам, так же блочный. Внутри его находится область видимости, которое я здесь упрощённо назвал "пространством функций". В нём мы можем размещать различные методы в блоке и прочее. Главная функция, которая начинает поток (что-то вроде name_thread в Sanny Builder), имеет следующий синтаксис написания:

public Thread() {

 /* ПРОСТРАНСТВО ПОТОКА */

} ///////////////////////

Стоит отметить, что этот синтаксис не подходит для остальных функций. Дело в том, что это "конструктор" — функция, котороя создаёт объект. Имя функции совпадает с и именем класса. Поскольку ScriptHook имеет свою реализацию запуска, то создавать объекты через него нам не нужно. Это делается автоматически. Внутри этого блока мы как раз и будем писать скрипт, вызывая функции для GTA IV. Если собрать всё в кучу, то мы получим следующий код:

using System;
using GTA;

namespace TestScript {

	/* ПРОСТРАНСТВО ДЛЯ ВСЕХ ПОТОКОВ */

	public class Thread : Script {

		public Thread() {

			/* ПРОСТРАНСТВО ДЛЯ КОНКРЕТНОГО ПОТОКА */

		}

		/* ПРОСТРАНСТВО ФУНКЦИЙ ПОТОКА */

	}

}

Этот код будет работать примерно так же, как и этот в Sanny Builder:

{$CLEO}
0000:

{ ПРОСТРАНСТВО ФУНКЦИЙ ПОТОКА }

thread 'Thread'

// ПРОСТРАНСТВО ДЛЯ КОНКРЕТНОГО ПОТОКА

0A93: end_custom_thread

Сохраняем наш проект. НЕ компилируем, а просто сохраняем! Можем закрывать Visual Studio и перейти в папку с проектом. Копируем файл "TestScript.cs" в папку GTA IV\scripts. Скрипт установлен! Теперь он готов к выполнению! :)

Естественно, скрипт ничего не делает, так как он пуст. Что и как писать я расскажу в следующих уроках. Это только основа.

Рекомендация

  1. Создать текстовый файл в папке "GTA IV\scripts";

  2. Переименовать расширение файла с *.txt на *.cs;

  3. Нажимаем ПКМ на названии проекта и выбрать Добавить->Существующий элемент...:

В появившемся окне выбираем созданный нами файл в шаге 1 и нажимаем "Добавить". Далее сохраняем проект. В результате мы можем редактировать несколько проектов!

Автор: wmysterio

Last updated