Уроки моддинга
Основной раздел
Search
K
Links

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

Итак, мы подошли в плотную к написанию скрипта, и здесь мы рассмотрим необходимые условия для его создания.
Первым шагом будет подключения необходимых библиотек для работы. В обозревателе решений выделим папку "Ссылки". Нажимаем ПКМ->Добавить ссылку.... В появившемся окне выбираем вкладку "Обзор" и ищем в нём файл "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. 1.
    Создать текстовый файл в папке "GTA IV\scripts";
  2. 2.
    Переименовать расширение файла с *.txt на *.cs;
  3. 3.
    Нажимаем ПКМ на названии проекта и выбрать Добавить->Существующий элемент...:
В появившемся окне выбираем созданный нами файл в шаге 1 и нажимаем "Добавить". Далее сохраняем проект. В результате мы можем редактировать несколько проектов!
Автор: wmysterio