Работа с объективами (или с обжективами – кому как). — КиберПедия 

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Работа с объективами (или с обжективами – кому как).

2018-01-29 197
Работа с объективами (или с обжективами – кому как). 0.00 из 5.00 0 оценок
Заказать работу

nState GetObjectiveState(sObjectiveName, nPlayerID = PLAYER_1)

 

Возвращает статус объективы sObjectiveName. Соотв. константы прописаны в /scripts/advmap-startup.lua и бывают такими:

OBJECTIVE_SCENARIO_INFO = 0

OBJECTIVE_UNKNOWN = 1

OBJECTIVE_ACTIVE = 2

OBJECTIVE_COMPLETED = 3

OBJECTIVE_FAILED = 4


void SetObjectiveState(sObjectiveName, nState, nPlayerID = PLAYER_1)

 

Устанавливает статус объективы с именем sObjectiveName. Следует понимать, что не у всех объектив статус можно установить вручную – можно или нельзя, определяется дизайном карты. Если таки нельзя, то вызов ни к чему, кроме выдачи ошибки в консоль, не приведет.

Кроме того, то, какой статус можно установить объективе зависит от текущего статуса объективы. Матрица переходов следующая:

OBJECTIVE_SCENARIO_INFO -> none

OBJECTIVE_UNKNOWN -> OBJECTIVE_ACTIVE, OBJECTIVE_FAILED

OBJECTIVE_ACTIVE -> OBJECTIVE_COMPLETED, OBJECTIVE_FAILED

OBJECTIVE_COMPLETED -> OBJECTIVE_ACTIVE, OBJECTIVE_FAILED

OBJECTIVE_FAILED -> none

Если объективе выставляется статус OBJECTIVE_ACTIVE она автоматически становится видимой игроку (см. IsObjectiveVisible/SetObjectiveVisible)

nProgress GetObjectiveProgress(sObjectiveName, nPlayerID = PLAYER_1)

void SetObjectiveProgress(sObjectiveName, nProgress, nPlayerID = PLAYER_1)

 

Возвращает и устанавливает степень прогресса в выполнении объективы sObjectiveName в случае, если дизайн это позволяет. Типичный пример – директива «наберите армию из 1000 лучников».

bool IsObjectiveVisible(sObjectiveName, nPlayerID = PLAYER_1)

void SetObjectiveVisible(sObjectiveName, bVisible, nPlayerID = PLAYER_1)

 

Функции возвращают и устанавливают видимость на интерфейсе объективы с именем sObjectiveName.

Работа с ключами.

Bool HasBorderguardKey(nPlayerID, nKeyID)

Void GiveBorderguardKey(nPlayerID, nKeyID)

 

Функции проверяют наличие и выдают игроку ключ должного цвета. Соотв. константы для nKeyID прописаны в /scripts/advmap-startup.lua и бывают такими:

RED_KEY = 1

BLUE_KEY = 2

GREEN_KEY = 3

YELLOW_KEY = 4

ORANGE_KEY = 5

TEAL_KEY = 6

PURPLE_KEY = 7

TAN_KEY = 8

Работа с регионами.

void SetRegionBlocked(sRegionName, bEnable, nPlayerID = -1)

 

Блокирует/разблокирует регион sRegionName для игрока nPlayerID. Если последний параметр не указан, то данное действие производится для всех игроков.

Bool IsRegionBlocked(sRegionName, nPlayerID)

 

Возвращает, заблокирован ли регион sRegionName для игрока nPlayerID.

TsObjects GetObjectsInRegion(sRegionName, nObjectsTypeID)

 

Возвращает массив имен объектов в регионе с именем sRegionName. На настоящий момент второй параметр может быть только OBJECT_HERO = 0, а соотв. массив будет содержать только информацию о героях. На основе данной функции в файле /scripts/advmap-common.lua реализован примитив более высокого уровня –

bool IsPlayerHeroesInRegion(nPlayerID, sRegionName)

NX, nY, nFloorID RegionToPoint(sRegionName)

 

Возвращает координаты региона в том случае, если регион состоит из одного тайла. Если нет – ничего полезного не вернет, а ошибку таки вызовет.

Bool IsObjectInRegion(sHeroName, sRegionName)

 

Проверяет, находится ли объект sHeroName внутри региона sRegionName. На настоящий момент функция работает только для объектов одного типа – для героев.

Void OpenRegionFog(nPlayerID, sRegionName)

 

Открывает для игрока nPlayerID туман войны, скрывающий регион sRegionName.

Работа с AI.

 

Для не AI игрока перечисленные ниже функции смысла не имеют, и при вызове приводят к ошибке.

Void SetAIPlayerAttractor(sObjectName, nPlayerID, nPriority)

 

Устанавливает для игрока nPlayerID «точку притяжения» на объекте с именем sObjectName. Герои игрока будут бегать вокруг объекта, периодически к нему возвращаясь и пытаясь им овладеть. (Да-да, Вы правильно подумали, в качестве имени объекта в данной функции может выступать и имя героя). Поведение игрока будет тем агрессивнее, чем больше nPriority. Последний может принимать значения от -1 до 2. Значение nPriority = 0 является выделенным, и используется для того, чтобы убрать данную логику. В официальном руководстве по скрипту имеется предупреждение, что данная функция может некорректно работать для подвижных объектов.



Поделиться с друзьями:

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.008 с.