Void QuestionBox( spTXT, sCallback )

 

Выдает немодальный QuestionBox с текстом spTXT и кнопками «Да/Отмена», по завершении в случае положительного ответа вызывает функцию с именем sCallback и пустым списком параметров. Обращаю внимание – функция немодальная. Т.е. скрипт продолжит выполнение со следующей за вызовом функции строчки, не ожидая нажатия к/л кнопки игроком. Функция имеет алиас с именем QuestionBoxInt.


void StartDialogScene(spDialogSceneXDB, sCallback = nil, sSaveName = nil)

 

Стартует диалоговую сцену на движке согласно первому параметру. Если второй параметр не nil, то после диалога будет вызвана функция с именем sCallback и пустым списком параметров. Если sSaveName не nil, то перед диалогом будет произведено сохранение в соотв. слот. Что мешает просто вызывать перед StartDialogScene функцию Save пока не понимаю. Возможно, дело в состоянии экрана на момент сохранения (и, соответственно, в картинке, которая ляжет в сейв).

void StartCutScene(sAnimSceneXDB, sCallback = nil, saveName = nil)

 

Стартует анимированную сцену на движке согласно первому параметру. Если второй параметр не nil, то после ролика будет вызвана функция с именем sCallback и пустым списком параметров. Если sSaveName не nil, то перед диалогом будет произведено сохранение в соотв. слот.

void MessageBox(spTXT, sCallback = nil, sSaveName = nil)

 

Выдает модальный MessageBox с текстом spTXT, по завершении вызывает функцию с именем sCallback и пустым списком параметров. Если sSaveName не nil, то перед диалогом будет произведено сохранение в соотв. слот.


Void StartDialogSceneInt(spDialogSceneXDB, sCallback, sSaveName)

Void StartCutSceneInt(spAnimSceneXDB, sCallback, sSaveName)

Void MessageBoxInt(spTXT, sCallback, sSaveName)

 

Немодальные аналоги перечисленных выше функций. «Немодальность» означает, что во время работы интерфейсного элемента поток скрипта, вызвавшего функцию, продолжает работу. Собственно, их модальные «братья» реализованы скриптом в /scripts/advmap-startup.lua с помощью использования механизма event-ов и функции parse.

void MoveCamera(nX, nY, nFloorID, nZoom = 50, nPitch = pi/2, nYawl = 0, nNoZoom = 0, nNoRotate = 0)

 

Перемещает камеру в положение, заданное параметрами. С данной функцией я не экспериментировал, посему просто изложу перевод того, что написано в официальном руководстве по скрипту:

 

nX, nY, nFllorID – коодинаты тайла, на котором будет сфокусирована камера.

nZoom – расстояние от камеры до этого тайла.

nPitch – угол размещения камеры в вертикальной плоскости (0 – камера смотрит горизонтально, pi/2 – вертикально)

nYawl – угол поворота камеры в горизонтальной плоскости (0 – север)

nNoZoom – если равно 1, то камера не будет менять расстояние до тайта при перемещении.

nNoRotate - если равно 1, то камера не будет вращаться при перемещении.

 

Функции общей направленности.

Void Loose()

 

Вызов приводит к автоматическому проигрышу миссии игроком PLAYER_1 (т.е. человеком). На мультиплеерных картах функция неприменима и приводит к ошибке.

Void Win()

 

Вызов приводит к автоматической победе игрока PLAYER_1 (т.е. человека) в миссии. На мультиплеерных картах функция неприменима и приводит к ошибке.

Void BlockGame()

 

Блокирует интерфейс пользователя. Дабы игрок не дергал попусту мышь и клавиатуру и не сбивал режиссуру ролика с передвижением героев, камеры и т.п.

Void UnblockGame()

 

Соответственно - разблокирует интерфейс пользователя.

Void ExitGame()

 

Немедленный выход из игры. Без всяких промежуточных вопросов.

Number GetDate(nDateID)

 

Возвращает текущую дату в формате согласно переданному параметру. Соотв. константы для nDateID прописаны в /scripts/advmap-startup.lua и бывают такими:

DAY = 0

WEEK = 1

MONTH = 2

DAY_OF_WEEK = 3

ABSOLUTE_DAY = DAY

Отсчет в любом случае начинается с единицы.

NX, nY GetTerrainSize()

 

Возвращает размер текущей карты в тайлах.

Number GetMaxFloor()      

 

На картах с подземельями данная функция возвращает 1, без оных – 0.

bool IsTilePassable(nX, nY, nFloorID = GROUND)

 

Возвращает, проходим ли тайл с указанными координатами.



String GetAllNames(nFilterCode)

 

Возвращает строку, содержащую через пробел имена сообразно переданному параметру. Т.к. в реализации языка отсутствуют функции работы со строками, предполагаю, что данная функция может использоваться исключительно для отладки. Соотв. константы для nFilterCode прописаны в /scripts/advmap-startup.lua и бывают такими:

       FILTER_HEROES = 0

       FILTER_OBJECTS = 1

       FILTER_REGIONS = 2

       FILTER_OBJECTIVES = 3

Реально работают всего два фильтра - FILTER_HEROES и FILTER_OBJECTIVES. Использование остальных ведет к получению пустой строки. Функция имеет алиас с именем names.

Void SetWarfogBehaviour(nOnLand, nOnSea)

 

Устанавливает поведение «тумана войны» на суше и на море. Если соответствующий параметр равен 1, то герой игрока будет открывать «туман войны», иначе – нет.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: