Наш первый скрипт. Необходимые условия его написания
Итак, мы подошли в плотную к написанию скрипта, и здесь мы рассмотрим необходимые условия для его создания.
Last updated
Итак, мы подошли в плотную к написанию скрипта, и здесь мы рассмотрим необходимые условия для его создания.
Last updated
Первым шагом будет подключения необходимых библиотек для работы. В обозревателе решений выделим папку "Ссылки". Нажимаем ПКМ->Добавить ссылку...
. В появившемся окне выбираем вкладку "Обзор" и ищем в нём файл "ScriptHookDotNet.dll". Он лежит в папке
Нажимаем Ок:
В этой библиотека находятся все функции GTA 4, которые мы будем использовать в скриптах.
Также нам необходима ещё одна ссылка. Используя метод выше, добавим ссылку "System". Она уже вложена в каталог, поэтому искать её нужно во вкладке ".NET":
Минимальные ссылки мы подключили. Теперь можно писать код. В первую очередь нам необходимо подключить пространства имён из этих ссылок. Делается это командой using
. В поле редактора добавляем следующий код:
Теперь мы можем пользоваться командами, находящиеся в этих библиотеках. Дальше мы должны объявить область, которая содержит набор связанных объектов (namespase
). Обычно это делается как для удобства так и во избежание возможных конфликтов между типами (в разных пространствах имён могут существовать типы с одинаковыми именами).
Этому пространству обычно дают название такое же, как и название проекта. В нашем случаи это "TestScript". В отличии от SannyBuilder, скобки {
и }
являются блоком, внутри которого пишется код. Они всегда должны идти парно, чтобы одна открывала блок, другая — закрывала. В сумме этот блок формирует так званую "область видимости".
Как и известном Sanny Builder, тут присутствуют комментарии. Синтаксис написания таков:
В блоке "namespace" нам нужно добавить новый класс с произвольным именем. Это будет как бы аналогом потока в SannyBuilder:
В нашем случае, мы объявили поток с именем "Thread". "Script" — это класс, который нужен для запуска этого потока. Другими словами эта конструкция "превращает" класс в скрипт, используемый игрой. Символ :
здесь говорит о том, что все методы, которые есть в классе "Script" будут доступны и в классе "Thread". В C# это принято называть наследованием. Это одна из базовых концепций объектно-ориентированного программирования. Об этих концепциях будут отдельные уроки.
Этот "поток", как Вы уже догадались по скобкам, так же блочный. Внутри его находится область видимости, которое я здесь упрощённо назвал "пространством функций". В нём мы можем размещать различные методы в блоке и прочее. Главная функция, которая начинает поток (что-то вроде name_thread
в Sanny Builder), имеет следующий синтаксис написания:
Стоит отметить, что этот синтаксис не подходит для остальных функций. Дело в том, что это "конструктор" — функция, котороя создаёт объект. Имя функции совпадает с и именем класса. Поскольку ScriptHook имеет свою реализацию запуска, то создавать объекты через него нам не нужно. Это делается автоматически. Внутри этого блока мы как раз и будем писать скрипт, вызывая функции для GTA IV. Если собрать всё в кучу, то мы получим следующий код:
Этот код будет работать примерно так же, как и этот в Sanny Builder:
Сохраняем наш проект. НЕ компилируем, а просто сохраняем! Можем закрывать Visual Studio и перейти в папку с проектом. Копируем файл "TestScript.cs" в папку GTA IV\scripts
. Скрипт установлен! Теперь он готов к выполнению! :)
Естественно, скрипт ничего не делает, так как он пуст. Что и как писать я расскажу в следующих уроках. Это только основа.
Создать текстовый файл в папке "GTA IV\scripts";
Переименовать расширение файла с *.txt
на *.cs
;
Нажимаем ПКМ
на названии проекта и выбрать Добавить->Существующий элемент...
:
В появившемся окне выбираем созданный нами файл в шаге 1 и нажимаем "Добавить". Далее сохраняем проект. В результате мы можем редактировать несколько проектов!
Автор: wmysterio