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”) вернут один и тот же массив.

Void AddObjectCreatures(sObjectName, nGreatureID, nCount)

NCount GetObjectCreatures(sObjectName, nCreatureID)

Void RemoveObjectCreatures(sObjectName, nCreatureID, nCount)

 

Позволяет добавить/получить/удалить стеки существ, охраняющих объект. В качестве объекта может выступать любой объект, допускающий наличие армии, либо монстр на карте. В последнем случае функцией AddObjectCreatures добавить можно только существ, которые уже есть в армии монстра. Если после операции удаления в армии монстра не остается ни одного существа, монстр удаляется с карты. Герой в качестве объекта выступать не может (несмотря на то, что в официальном руководстве по скриптам написано обратное). Соответствующие операции с героем осуществляются с помощью функций GetHeroCreatures/AddHeroCreatures/RemoveHeroCreatures.

Void SetObjectDwellingCreatures(sObjectName, nCreatureID, nCount)

NCount GetObjectDwellingCreatures(sTownName, nCreatureID)

 

Позволяет установить/получить стеки существ, которые будут э-э-э, произрастать в объекте, если последний является точкой найма (например, городом). Уточню – изменить тип нанимаемых существ нельзя, можно управлять только их количеством. Например, при попытке вызвать SetObjectDwellingCreatures для города инферно с параметром nCreatureID=1 (крестьяне) никаких крестьян в городе не образуется. (Впрочем, к ошибке данный вызов не приводит) Т.е. данный тип стека должно в принципе быть возможным нанять в указанном месте.

Void CreateArtifact(sArtName, nArtID, nX, nY, nFloorID)

 

Создает артефакт nArtID в точке с указанными координатами и присваивает ему имя sArtName.

void ShowFlyingSign(spTXT, sObjectName, nPlayerID = -1, nTimeSec = 1.0)

 

Показывает всплывающую надпись из файла spTXT над объектом sObjectName для игрока nPlayerID в течение nTimeSec секунд. Если nPlayerID = -1, то надпись показывается для всех игроков. Функция имеет алиас с именем ShowFlyMessage.

Void CreateMonster(sMonsterName, nCreatureID, nCount, nX, nY, nFloorID, nMonsterMoodID, nCreatureCourageID)       

 

Создает стек существ из nCount существ типа nCreatureID в указанных координатах и присваивает ему имя sMonsterName. Созданный стек имеет mood и courage (ага, трудности у меня с внятным переводом – настроение и кураж? Как-то не звучит…) в соответствии с константами

MONSTER_MOOD_FRIENDLY = 0

MONSTER_MOOD_AGGRESSIVE = 1

MONSTER_MOOD_HOSTILE = 2

MONSTER_MOOD_WILD = 3

и

MONSTER_COURAGE_ALWAYS_JOIN = 0

MONSTER_COURAGE_ALWAYS_FIGHT = 1

MONSTER_COURAGE_CAN_FLEE_JOIN = 2

Данные константы нигде не определены. Стек принадлежит нейтральному игроку c ID = PLAYER_NONE.

Если тайл с указанными координатами занят, монстр будет создан на ближайшем свободном тайле. Начиная с версии игры 1.3 последние два параметра функции имеют умолчательные параметры MONSTER_MOOD_AGGRESSIVE и, соответственно, MONSTER_COURAGE_CAN_FLEE_JOIN. В официальном руководстве к скриптам у функции указан еще один опциональный параметр – rotation. Однако, даже если он и есть, то на результат никак не влияет.

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

Void RemoveAllMonsters(nCreatureID)

 

Удаляет с карты все стеки с типом существ nCreatureID. Функция имеет алиас с именем KillMobs

Void GenerateMonsters(nCreatureID, nCountGroupsMin, nCountGroupsMax, nCountInGroupMin, nCountInGroupMax)

 

Генерирует в рандомных местах карты от nCountGroupsMin до nCountGroupsMax стеков существ типа nCreatureID от nCountInGroupMin до nCountInGroupMax существ в каждом стеке. Созданные стеки принадлежат нейтральному игроку c ID = PLAYER_NONE.

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

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


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



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