Возвращает, существует ли на карте объект с данным именем. Функция имеет алиас с именем 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.
Работа с интерфейсом.