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

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

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

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

2018-01-29 185
Работа с объективами (или с обжективами – кому как). 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 является выделенным, и используется для того, чтобы убрать данную логику. В официальном руководстве по скрипту имеется предупреждение, что данная функция может некорректно работать для подвижных объектов.



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

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

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...



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

0.01 с.