Void setATB( sUnitName, n1 )

Функция позволяет управлять положением юнита на ATB. Значения второго параметра большие нуля приводят к сдвигу юнита по ATB в начало шкалы, прочие – в конец. Вероятно, существует какая-то количественная интерпретация параметра, но я ее не уловил. Следует вызывать только из хуков, т.к. в противном случае можно получить рассинхронизацию ATB с действительным порядком ходов.

Информационные и прочие функции.

TsUnits GetUnits(nSideID, nType)

Возвращает таблицу имен юнитов типа nType для стороны nSideID. Константы nType прописаны в /scripts/combat-startup.lua и могут быть

HERO = 0

CREATURE = 1

WAR_MACHINE = 2

BUILDING = 3

С использованием данной функции в файле /scripts/combat-startup.lua реализованы примитивы более высокого уровня:

sHeroName GetHero(nSideID)

tsUnits GetCreatures(nSideID)

tsUnits GetWarMachines(nSideID)

tsUnits GetBuildings(nSideID)

sHeroName GetAttackerHero()

sHeroName GetDefenderHero()

tsUnits GetAttackerCreatures()

tsUnits GetDefenderCreatures()

tsUnits GetAttackerWarMachines()

tsUnits GetDefenderWarMachines()

tsUnits GetAttackerBuildings()

tsUnits GetDefenderBuildings()

NCreatureID GetCreatureType( sCreatureName )

Возвращает тип существ в стеке с именем sCreatureName.

NX, nY pos( sUnitName )

Возвращает координаты юнита с именем sCreatureName. Функция имеет алиас с именем GetCombatPosition.

Bool combatStarted()

Возвращает false до тех пор, пока не началась былинная битва. Имеет смысл использовать только вне хуков.

SHeroName GetHeroName( sUnitName )

Возвращает «стратегическое» имя героя sUnitName. Если передано не имя героя – вызов приведет к ошибке.

Number GetCreatureNumber( sUnitName )

Возвращает количество существ в стеке с именем 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)

Наши рекомендации