Возвращает количество существ в стеке с именем sUnitName.
NX, nY GetUnitPosition(sUnitName)
Аналог функции pos.
Bool exist(sUnitName)
Возвращает, а жив ли еще юнит с именем sUnitName. Функция имеет алиас с именем IsCombatUnit.
NHostType GetHost(nSideID)
Возвращает, под чьим управлением находится сторона nSideID – человека или AI.
Возвращаемые константы прописаны в /scripts/common.lua и могут быть
HUMAN = 0
COMPUTER = 1
С использованием данной функции в файле /scripts/combat-startup.lua реализованы примитивы более высокого уровня:
bool IsHuman(nSideID)
bool IsComputer(nSideID)
NSideID GetUnitSide(sUnitName)
Возвращает, к какой стороне относится юнит с именем sUnitName.
Возвращаемые константы прописаны в /scripts/combat-startup.lua и могут быть
ATTACKER = 0
DEFENDER = 1
С использованием данной функции в файле /scripts/combat-startup.lua реализованы примитивы более высокого уровня:
bool IsAttacker(sUnitName)
bool IsDefender(sUnitName)
Number GetUnitType(sUnitName)
Возвращает тип юнита с именем sUnitName. Возвращаемые константы прописаны в /scripts/combat-startup.lua и могут быть
HERO = 0
CREATURE = 1
WAR_MACHINE = 2
BUILDING = 3
С использованием данной функции в файле /scripts/combat-startup.lua реализованы примитивы более высокого уровня:
|
|
bool IsHero(sUnitName)
bool IsCreature(sUnitName)
bool IsWarMachine(sUnitName)
bool IsBuilding(sUnitName)
Number GetWarMachineType(sUnitName)
Возвращает тип машины с именем sUnitName. Возвращаемые константы прописаны в /scripts/common.lua и могут быть
WAR_MACHINE_BALLISTA = 1
WAR_MACHINE_CATAPULT = 2
WAR_MACHINE_FIRST_AID_TENT = 3
WAR_MACHINE_AMMO_CART = 4
С использованием данной функции в файле /scripts/combat-startup.lua реализованы примитивы более высокого уровня:
sUnitName GetWarMachine(nSideID, nWarMachineTypeID)
sUnitName GetAttackerWarMachine(nWarMachineTypeID)
sUnitName GetDefenderWarMachine(nWarMachineTypeID)
Number GetBuildingType(sUnitName)
Возвращает тип здания с именем sUnitName. Возвращаемые константы прописаны в /scripts/combat-startup.lua и могут быть
BUILDING_WALL = 1
BUILDING_GATE = 2
BUILDING_LEFT_TOWER = 3
BUILDING_BIG_TOWER = 4
BUILDING_MOAT = 5
BUILDING_RIGHT_TOWER = 6
BUILDING_MAGIC_WALL = 7
С использованием данной функции в файле /scripts/combat-startup.lua реализованы примитивы более высокого уровня:
sUnitName GetBuilding(nSideID, nBuildingID)
sUnitName GetAttackerBuilding(nBuildingID)
sUnitName GetDefenderBuilding(nBuildingID)
SUnitName combatReadyPerson()
Возвращает имя юнита, который готов совершить ход (т.е. находится в самом начале ATB).
String unitNames()
Возвращает строку, содержащую через пробел имена всех юнитов на поле боя. Полагаю, функция нужна, в основном, для отладочных целей.
void postEvent(sEvent, n1 = -1, n2 = -1)
Функция позволяет эмулировать событие от клавиатуры/мыши. В качестве sEvent могут выступать названия биндов, см. файл input.cfg. Полный список биндов я предоставить в настоящий момент не готов. Смысл двух последних параметров мне так же неясен.
Режим города.
|
|
При старте режима города игра делает следующее:
1. Загружает файл /scripts/town-startup.lua и все прописанные в нем с помощью doFile скрипты
2. Приступает к интерпретации файла скрипта города. Упомянутый скрипт города может появиться в результате дизайна города.
3. В зависимости от ситуации вызывает один из двух хуков.
Хуки
Void CreatureHired(nCreatureID, nCount)
Вызывается при найме существ. Идентификатор типа существа и их количество передаются в качестве параметра.
Void HeroHired(sHeroName)
Вызывается при найме героя. Имя героя передается в качестве параметра.
Прочие функции
Собственно, никаких прочих функций я не нашел. Работать можно только с теми, которые перечислены в разделе 3.1.