NLevel GetTownBuildingLevel( sTownName, nBuildingID ) — КиберПедия 

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

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

NLevel GetTownBuildingLevel( sTownName, nBuildingID )

2018-01-29 195
NLevel GetTownBuildingLevel( sTownName, nBuildingID ) 0.00 из 5.00 0 оценок
Заказать работу

NLevel GetTownBuildingLimitLevel(sTownName, nBuildingID)

NLevel GetTownBuildingMaxLevel(sTownName, nBuildingID)

 

Функции позволяют узнать уровень/лимит на развитие/максимальный уровень здания nBuildingID в городе с именем sTownName. Соотв. константы TOWN_BUILDING_* для nBuildingID см. в /scripts/advmap-startup.lua. Сюда писать не буду ввиду большого объема.

Уровень 0 означает, что соответствующее здание отсутствует.

Void SetTownBuildingLimitLevel(sTownName, nBuildingID, nLevel)

 

Функция позволяет выставить лимит на уровень развития здания nBuildingID в городе с именем sTownName. При попытке выставить уровень больше максимально возможного вызов функции приводит к ошибке. Уровень 0 означает запрет на строительство здания.

Void TransformTown(sTownName, nTownTypeID)

 

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

TOWN_HEAVEN = 0

TOWN_PRESERVE = 1

TOWN_ACADEMY = 2

TOWN_DUNGEON = 3

TOWN_NECROMANCY = 4

TOWN_INFERNO = 5

Если в момент трансформации в городе находится герой, он погибнет.

Void RazeTown(sTownName)

 

Разрушает город с именем sTownName. Только в том случае, если при дизайне карты город помечен как «разрушаемый» (т.е. поле razed в его свойствах корректно заполнено). Иначе вызов данной функции приводит к ошибке. Фактически город удаляется с карты и заменяется на статический объект, который занимает столько же тайлов, сколько и оригинал.

Работа с объектами.

 

Под объектом понимается практически все, что угодно – это здания, города, монстры, герои и т.п. Правда, некоторые функции работают только с определенными видами объектов (например, про работу с героями рассказано выше). Если объект, имя которого передано в функцию, отсутствует, то вызов функции приводит к ошибке.

NX, nY, nFloorID GetObjectPosition(sObjectName)

 

Функция возвращает позицию объекта. Функция имеет алиас с именем GetObjectPos. На основе данной функции в файле /scripts/advmap-common.lua реализован примитив более высокого уровня – bool IsInDungeon(sObjectName).

В качестве объекта может выступать, например, герой.

void SetObjectPosition(sObjectName, nX, nY, nFloorID = -1)

 

Функция устанавливает позицию объекта. Объект должен быть перемещаемым, что определяется при дизайне этого самого объекта. Например, города перемещать нельзя.

В качестве объекта может выступать, например, герой. Если не указан этаж, то будет использован текущий, т.е. тот, на котором объект уже находится. Попытка переместить объект на уже занятый тайл приведет к ошибке.

Функция имеет алиас с именем SetObjectPos.

Void RemoveObject(sObjectName)

 

Удаляет объект с карты. Объект должен быть перемещаемым и присутствовать на карте. Т.е., например, город удалить нельзя.

В качестве объекта может выступать, например, герой.

Bool IsObjectExists(sObjectName)

 

Возвращает, существует ли на карте объект с данным именем. Функция имеет алиас с именем Exists. В качестве объекта может выступать, например, герой.

Bool IsObjectEnabled(sObjectName)

 

Возвращает, находится ли объект с именем sObjectName в состоянии enabled. Если да, то объект будет взаимодействовать с героем игрока обычным образом (т.е. для города – зарядится интерфейс города, для героя противника – стартует битва и т.п.) В противном случае «атоматом» ничего происходить не будет. Это удобно, когда на объект навешен триггер OBJECT_TOUCH_TRIGGER, который должен среагировать на «тырканье» нестандартным образом.

Void SetObjectEnabled(sObjectName, bEnable)

 

Выставляет или снимает с объекта sObjectName состояние enabled.

TsObjects GetObjectNamesByType(sObjectTypeSubstr)

 

Выдает массив имен объектов на карте в соответствии с подстройкой sObjectNameSubstr, которая встречается в наименовании его типа. Полностью список соответствующих строк BUILDING_*, TOWN_*, CREATURE_* и HERO_CLASS_* можно найти в файле /types.xml, ветка /Base/Tables. Обращаю внимание, что 1) параметр – именно строка и к константам в /scripts/common.lua имеет весьма опосредованное отношение 2) полного совпадения имени не требуется, достаточно совпадения куска. Например, вызовы

GetObjectNamesByType(“SAWMILL”) и GetObjectNamesByType(“BUILDING_SAWMILL”) вернут один и тот же массив.


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

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

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



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

0.01 с.