StarCraft 2: Как писать скрипты, базовый уровень

» Раздел: 1. Основы
» Автор оригинала: Sevion
» Источник: http://starcraft-2-galaxy-editor-tutorials.thehelper.net/tutorials.php?view=155112

Сперва вам нужно открыть ваш любимый текстовый редактор. В моем случае это Notepad++, он хорош своей приятной подсветкой синтаксиса и другими полезными вещами.
(Учтите, если вы используете Notepad++, там будет подсветка синтаксиса И автозаполнение прикрепленное к концу данного сообщения :3)
Далее вам нужно открыть Менеджер Импорта, или как там он называется... Я никогда не запоминаю названия окон.
Теперь создайте в вашем текстовом редакторе файл с расширением .galaxy (писать перед точкой можете что угодно, главное чтобы расширение осталось тем же).
Ну, а теперь вставляйте этот код:
//==================================================================================================​
//
// <Your Map> MapScript
//
// Name:   <Your Map>
// Author: <Your Name>
//
//==================================================================================================​
include "MainScript.galaxy"

//--------------------------------------------------------------------------------------------------​
// Map Initialization
//--------------------------------------------------------------------------------------------------​
void InitMap () {
    Main();
}
Как видите файл должен называться MainScript.galaxy, мы будем в будущем с ним работать. Хотя, конечно, вы можете изменить название тогда когда хотите. Просто важно помнить, что в любом случае вам нужно будет именно такое название файла.
Сразу на будущее. Создайте файл MainScript.galaxy и вставьте туда следующее:
//==================================================================================================​
//
// <Your Map> MainScript
//
// Name:   <Your Map>
// Author: <Your Name>
//
//==================================================================================================​
include "TriggerLibs/NativeLib"
include "Globals.galaxy"

//--------------------------------------------------------------------------------------------------​
// Trigger: Initialization
//--------------------------------------------------------------------------------------------------​

void InitTriggers() {
}

//--------------------------------------------------------------------------------------------------​
// Library Initialization
//--------------------------------------------------------------------------------------------------​
void InitLibs () {
    libNtve_InitLib();
}

//--------------------------------------------------------------------------------------------------​
// Map Initialization
//--------------------------------------------------------------------------------------------------​
void Main () {
    InitLibs();
    InitTriggers();
    InitGlobals();
}
Отлично, теперь закройте файл. Создайте новый файл под названием Globals.galaxy.
Вставьте это:
//==================================================================================================​
//
// <Your Map> Globals
//
// Name:  <Your Map>
// Author: <Your Name>
//
//==================================================================================================​
include "TriggerLibs/NativeLib"

//Objects

//Triggers

// Variables

//--------------------------------------------------------------------------------------------------​
// Globals Initialization
//--------------------------------------------------------------------------------------------------​
void InitGlobals () {
}
Фантастика! Все ключевые файлы созданы.
Теперь вы можете начинать писать скрипты (сценарии). Создайте ваш скриптовый файл... Допустим, если вы хотите установить вашу игру, имя должно быть типа SetupGame.galaxy.
//==================================================================================================​
//
// <Your Map> SetupGame
//
// Name:   <Your Map>
// Author: <Your Name>
//
//==================================================================================================​
include "TriggerLibs/NativeLib"
include "Globals.galaxy"

bool SetupGame ( bool testConds, bool runActions ) {
    //Dew Stuffz
    UIDisplayMessage(PlayerGroupAll(), c_messageAreaSubtitle, StringToText("I Has Init!");
}
В таком случае, в секции триггеры в Globals.galaxy добавьте ваш триггер:
//Triggers
trigger gt_SetupGame
Включите файл в MainScript.galaxy:
//==================================================================================================​
//
// <Your Map> MainScript
//
// Name:   <Your Map>
// Author: <Your Name>
//
//==================================================================================================​
include "TriggerLibs/NativeLib"
include "Globals.galaxy"
include "SetupGame.galaxy"
Инициализируйте его в MainScript.galaxy:
void InitTriggers () {
    gt_SetupGame = TriggerCreate(SetupGame);
    TriggerAddEventMapInit(gt_SetupGame)
}
Наконец, импортируйте их ВСЕХ в вашу карту через Менеджер Импорта и переименуйте самый первый скрипт который вы создали в MapScript.galaxy. Замените его. Сохраните.
Ура! Теперь, все что вам осталось делать - писать скрипты, и убедиться в том, что они действительно исполняются в файлах скрипта. Вам не нужно следовать этим рекомендациям, но мне они нравятся и их легко выполнить если у вас есть такой редактор как Notepad++.
Теперь о моей подсветке синтаксиса и системе автозаполнения:
Мини-Туториал:
Скачайте прикрепление и распакуйте его. Поместите Galaxy.xml в $ProgramFiles$\Notepad++\Plugins\Apis\
Откройте Notepad++ и нажмите View -> User Defined Language Dialog.
Импортируйте новый язык и выберите Galaxy Highlighting.xml.
У меня там есть несколько пресетов чтобы установить темно-синюю тему. Измените настройки так, как удобно вам, но ради бога не изменяйте ничего кроме цветов.

Просмотров: 2 173

Комментарии пока отсутcтвуют