Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Описание скриптовых функций.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
655.36 Кб
Скачать

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

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.