Bool LevelUpHero( sHeroName )

 

Выдать герою с именем sHeroName один уровень. Точнее говоря – выдать количество exp points, которых герою не хватает до следующего уровня. Если герой уже достиг максимально возможного уровня функция вернет nil, в противном случае – true.

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

NLevel GetHeroLevel(sHeroName)

 

Получить уровень героя с именем sHeroName.

Bool IsHeroAlive(sHeroName)

 

Возвращает, жив ли герой с именем sHeroName.


void DeployReserveHero(sHeroName, nX, nY, nFloorID = GROUND)

 

Разместить по указанным координатам героя из резерва. Герои резервируются при дизайне карты. В таверне, соответственно, их нанять нельзя. Если указанный тайл уже занят, герой будет размещен на ближайшем свободном тайле. Если на момент вызова функции герой мертв, он все равно будет размещен по указанному тайлу в своем изначальном состоянии (т.е. с армией, указанной при дизайне карты).

Если указанный герой не был резервирован при дизайне, вызов функции приведет к ошибке.


Void UnreserveHero(sHeroName)

 

Вывести указанного героя из резерва. Соответственно, данный герой становится доступным к найму в тавернах. Если к моменту вызова функции этот герой еще жив, и находится под контролем игрока, то из под контроля он не выводится. К найму он будет доступен только после гибели.

Если указанный герой не был резервирован при дизайне, вызов функции приведет к ошибке.

nCost CalcHeroMoveCost(sHeroName, nX, nY, nFloorID = -1)

 

Возвращает количество movepoints героя, которые ему придется затратить при перемещении в точку с указанными координатами. Если в данную точку переместиться нельзя (т.е., например, путь кем-либо заблокирован), функция вернет -1. Данная функция не работает с героями, находящимися внутри города. Если не указан этаж, то будет использован тот, на котором герой уже находится.

void MoveHeroRealTime(sHeroName, nX, nY, nFloorID = -1) 

 

Герой поскачет в точку с указанными координатами. Безотносительно того, чей ход и наличия/отсутствия у него movepoints. Данная функция не работает с героями, находящимися внутри города. Если не указан этаж, то будет использован тот, на котором герой находится. Если герой не может достичь указанного тайла, вызов функции приведет к ошибке. Если тайл занят героем противника (и герой находится в «разрешенном» состоянии, см. SetObjectEnabled), стартует тактическая битва.

Функция немодальна – скрипт продолжит выполнение сразу после вызова функции, а не после того, как герой достигнет точки назначения. Интерфейс пользователя и действия АИ блокируются на время движения героя.

NCount GetHeroCreatures(sHeroName, nCreatureID)

Void AddHeroCreatures(sHeroName, nCreateureID, nCount)

Void RemoveHeroCreatures(sHeroName, nCreatureID, nCount)

 

Функции соответственно возвращают/добавляют/удаляют герою с именем sHeroName стек юнитов типа nCreatureID. Соотв. константы CREATURE_* для nCreatureID см. в /scripts/common.lua. Сюда писать не буду ввиду большого объема. Если стек должного типа отсутствует у героя, то вызов RemoveHeroCreatures к ошибке не приводит. В случае, если у героя отсутствуют стеки за исключением удаляемых, одно существо из стека герою будет оставлено.

Герой с именем sHeroName может отсутствовать на глобальной карте (например, может находиться в городе).

void GiveArtefact(sHeroName, nArtID, nBindToHero = 0)

 

Выдает герою с именем sHeroName артефакт nArtID. Соотв. константы ARTIFACT_* для nArtID см. в /scripts/advmap-startup.lua. Сюда писать не буду ввиду большого объема.

Если третий параметр отличен от нуля, то передать артефакт другому герою будет нельзя.

Артефакт всегда экипируется, если это возможно, и всегда выдается в единичном количестве. Чтобы выдать два одинаковых – нужно вызвать функцию с одинаковыми параметрами дважды.

Если после выдачи артефакта подразумевается к/л немедленное продолжение работы с этим предметом (типа удаления, или проверки наличия) рекомендую писать sleep(1) сразу после GiveArtefact. Т.к. иначе предмет может не успеть выдаться. Собственно, это замечание относится ко всем функциям, в которых герою (или объекту) что-либо выдается. Отсюда мораль – ставьте sleep, он лишним не будет. Функция имеет алиас с именем GiveArtifact.

 

Bool HasArtefact(sHeroName, nArtID)

 

Функция возвращает, есть ли у героя с именем sHeroName хотя бы один артефакт nArtID. Узнать, использует ли герой артефакт, или последний просто валяется в торбе, нельзя.

Void RemoveArtefact(sHeroName, nArtID)

 

Функция удаляет у героя с именем sHeroName один артефакт nArtID. Если он у него есть. Если нет – вызов функции приводит к ошибке.

Void SetHeroLootable(sHeroName, bEnable)

Bool IsHeroLootable(sHeroName)

 

Функции устанавливают/возвращают «лутабельность» героя с именем sHeroName. Говоря по-простому – будет ли выпадать из героя лут при его поражении в бою.

Void MarkObjectAsVisited(sObjectName, sHeroName)

 

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

STownName GetHeroTown(sHeroName)

 

Если герой с именем sHeroName находится в городе (имеется ввиду – именно внутри, а не на карте около входа), то данная функция возвращает имя города. В противном случае функция вернет nil.

SHeroName GetTownHero(sTownName)

 

Аналогично GetHeroTown, но в этом случае имя героя ищется по имени города.

tsObjects GetObjectsFromPath(sHeroName, nX, nY, nFloorID = -1)

 

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

Void GiveHeroWarMachine(sHeroName, nWarMachineID)

Void HasHeroWarMachine(sHeroName, nWarMachineID)


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



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