Раздел:
7. Скрипты
Автор оригинала:
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.
У меня там есть несколько пресетов чтобы установить темно-синюю тему. Измените настройки так, как удобно вам, но ради бога не изменяйте ничего кроме цветов.
`
ОЖИДАНИЕ РЕКЛАМЫ...