FOnline
 Указатель Классы Функции Переменные Группы Страницы
Класс Map

Карта. Подробнее...

Открытые члены

Скрипты и события

300

bool SetScript (string @+script)
 Устанавливает новый скрипт и вызывает в нем функцию инициализации с параметром firstTime равным true. Подробнее...
 
uint GetScriptId ()
 Возвращает ID текущего скрипта, связанного с данной картой. Подробнее...
 
void SetEvent (int eventType, string &funcName)
 Биндит функцию-обработчика определенного события. Подробнее...
 
Ручной вызов событий

295

void EventFinish (bool deleted)
 Принудительно вызывает событие MAP_EVENT_FINISH. Подробнее...
 
void EventLoop0 ()
 Принудительно вызывает событие MAP_EVENT_LOOP_0. Подробнее...
 
void EventLoop1 ()
 Принудительно вызывает событие MAP_EVENT_LOOP_1. Подробнее...
 
void EventLoop2 ()
 Принудительно вызывает событие MAP_EVENT_LOOP_2. Подробнее...
 
void EventLoop3 ()
 Принудительно вызывает событие MAP_EVENT_LOOP_3. Подробнее...
 
void EventLoop4 ()
 Принудительно вызывает событие MAP_EVENT_LOOP_4. Подробнее...
 
void EventInCritter (Critter &cr)
 Принудительно вызывает событие MAP_EVENT_IN_CRITTER. Подробнее...
 
void EventOutCritter (Critter &cr)
 Принудительно вызывает событие MAP_EVENT_OUT_CRITTER. Подробнее...
 
void EventCritterDead (Critter &cr, Critter @killer)
 Принудительно вызывает событие MAP_EVENT_CRITTER_DEAD. Подробнее...
 
void EventTurnBasedBegin ()
 Принудительно вызывает событие MAP_EVENT_TURN_BASED_BEGIN. Подробнее...
 
void EventTurnBasedEnd ()
 Принудительно вызывает событие MAP_EVENT_TURN_BASED_END. Подробнее...
 
void EventTurnBasedProcess (Critter &cr, bool beginTurn)
 Принудительно вызывает событие MAP_EVENT_TURN_BASED_PROCESS. Подробнее...
 
Общие

200

uint16 GetProtoId ()
 Возвращает ID прототипа карты. Подробнее...
 
Location GetLocation ()
 Позволяет получить локацию, в которой находится карта. Подробнее...
 
int GetTime ()
 Возвращает текущее время суток на карте. Подробнее...
 
void SetTime (int time)
 Позволяет изменить время суток на карте. Подробнее...
 
int GetData (uint index)
 Возвращает значение из массива для работы с собственной информацией. Подробнее...
 
void SetData (uint index, int value)
 Позволяет записать значение в массив для работы с собственной информацией. Подробнее...
 
bool IsTurnBasedAvailability ()
 Позволяет проверить, возможен ли на данной карте пошаговый режим боя. Подробнее...
 
void SetTurnBasedAvailability (bool value)
 Позволяет включить или отключить возможность пошагового режима боя на данной карте. Подробнее...
 
void BeginTurnBased (Critter @+firstTurnCrit)
 Включает пошаговый режим на карте. Подробнее...
 
void EndTurnBased ()
 Завершает пошаговый режим на карте. Подробнее...
 
bool IsTurnBased ()
 Позволяет проверить, включен ли сейчас на карте пошаговый режим. Подробнее...
 
bool Reload ()
 Переинициализирует карту. Подробнее...
 
void SetLoopTime (uint8 loop, uint16 ms)
 Устанавливает период вызова loop-функций. Подробнее...
 
uint16 GetWidth ()
 Возвращает ширину карты. Подробнее...
 
uint16 GetHeight ()
 Возвращает высоту карты. Подробнее...
 
Визуальные и аудио эффекты

190

void RunEffect (uint16 protoId, uint16 hexX, uint16 hexY, uint effectRadius)
 Проигрывает анимацию указанного эффекта (например, анимацию взрыва). Подробнее...
 
void RunFlyEffect (uint16 protoId, Critter @+fromCr, Critter @+toCr, uint16 fromX, uint16 fromY, uint16 toX, uint16 toY)
 Проигрывает летящую анимацию указанного эффекта (например, анимацию летящего снаряда). Подробнее...
 
uint8 GetRain ()
 Возвращает плотность дождя. Подробнее...
 
void SetRain (uint8 capacity)
 Включает/выключает дождь. Подробнее...
 
void SetText (uint16 hexX, uint16 hexY, uint color, string text)
 Выводит надпись в указанном гексагоне карты. Подробнее...
 
void SetTextMsg (uint16 hexX, uint16 hexY, uint color, uint16 textMsg, uint strNum)
 Выводит надпись в указанном гексагоне карты. Подробнее...
 
void SetTextMsg (uint16 hexX, uint16 hexY, uint color, uint16 textMsg, uint strNum, string &lexems)
 Выводит надпись в указанном гексагоне карты. Подробнее...
 
void PlaySound (string &soundName)
 Проигрывает звук на стороне клиента. Подробнее...
 
void PlaySound (string &soundName, uint16 hexX, uint16 hexY, uint radius)
 Проигрывает звук с эпицентром в указанном гексагоне на стороне клиента. Подробнее...
 
Для криттеров

180

Critter GetCritter (uint16 hexX, uint16 hexY)
 Возвращает указатель на криттера, который находится в указанном гексагоне. Подробнее...
 
Critter GetCritter (uint critterId)
 Возвращает указатель на криттера, с указанным ID. Подробнее...
 
uint GetCrittersHex (uint16 hexX, uint16 hexY, uint radius, int findType, Critter @[]@+critters)
 Находит криттеров, находящихся в указанной области. Подробнее...
 
uint GetCrittersPath (uint16 fromHx, uint16 fromHy, uint16 toHx, uint16 toHy, float angle, uint dist, int findType, Critter @[]@+critters)
 Проводит трассировку с указанными параметрами и находит всех криттеров, под неё попавших. Подробнее...
 
uint GetCrittersPath (uint16 fromHx, uint16 fromHy, uint16 toHx, uint16 toHy, float angle, uint dist, int findType, Critter @[]@+critters, uint16 &preBlockHx, uint16 &preBlockHy, uint16 &blockHx, uint16 &blockHy)
 Проводит трассировку с указанными параметрами и находит всех криттеров, под неё попавших. Подробнее...
 
uint GetCritters (uint16 pid, int findType, Critter @[]@+critters)
 Находит на карте всех криттеров, имеющих указанный прототип. Подробнее...
 
uint GetCrittersWhoViewPath (uint16 fromHx, uint16 fromHy, uint16 toHx, uint16 toHy, int findType, Critter @[]@+critters)
 Собирает всех криттеров, которые видят указанный путь. Подробнее...
 
uint GetCrittersSeeing (Critter @[]&critters, bool lookOnThem, int findType, Critter @[]@+crittersResult)
 Позволяет получить всех криттеров, которые видят криттера из группы или которых видят криттеры из группы. Подробнее...
 
Critter AddNpc (uint16 protoId, uint16 hexX, uint16 hexY, uint8 dir)
 Добавляет криттера в указанный гексагон на карте. Подробнее...
 
uint GetNpcCount (int npcRole, int findType)
 Возвращает количество NPC на карте, имеющих указанное значение параметра ST_NPC_ROLE. Подробнее...
 
Critter GetNpc (int npcRole, int findType, uint skipCount)
 Выбор NPC по его роли. Подробнее...
 
Для предметов

170

Item AddItem (uint16 hexX, uint16 hexY, uint16 protoId, uint count)
 Добавляет предмет в указанный гексагон на карте. Подробнее...
 
Item GetItem (uint itemId)
 Возвращает указатель на объект предмета, который находится на карте. Подробнее...
 
Item GetItem (uint16 hexX, uint16 hexY, uint16 protoId)
 Возвращает указатель на объект предмета, который находится на карте. Подробнее...
 
uint GetItems (uint16 hexX, uint16 hexY, Item @[]@+items)
 Находит все предметы, находящиеся на указанном гексагоне. Подробнее...
 
uint GetItems (uint16 protoId, Item @[]@+items)
 Находит на карте все предметы с указанным номером прототипа. Подробнее...
 
uint GetItemsByType (int type, Item @[]@+items)
 Находит на карте все предметы указанного типа. Подробнее...
 
Item GetDoor (uint16 hexX, uint16 hexY)
 Возвращает указатель на объект двери, находящейся в указанном гексагоне. Подробнее...
 
bool OpenDoor (Item &door)
 Открывает дверь или контейнер. Подробнее...
 
bool CloseDoor (Item &door)
 Закрывает дверь или контейнер. Подробнее...
 
Item GetCar (uint16 hexX, uint16 hexY)
 Возвращает указатель на объект машины, которая находится в указанном гексагоне. Подробнее...
 
Для гексагонов

160

bool CheckPlaceForItem (uint16 hexX, uint16 hexY, uint16 protoCar)
 Проверяет, можно ли поставить на данный гексагон карты указанный предмет. Подробнее...
 
uint CountEntire (uint8 entire)
 Возвращает количество специально обозначенных гексагонов. Подробнее...
 
bool GetEntireCoords (uint8 entire, uint8 num, uint16 &hexX, uint16 &hexY)
 Возвращает координаты специально обозначенного гексагона. Подробнее...
 
bool GetEntireCoords (int entire, uint skip, uint16 &hexX, uint16 &hexY, uint8 &dir)
 Расширенная версия функции GetEntireCoords, возвращающая направление (Dir) Подробнее...
 
bool GetNearEntireCoords (int &entire, uint16 &hexX, uint16 &hexY)
 Для поиска ближайшего гекса. Подробнее...
 
bool GetNearEntireCoords (int &entire, uint16 &hexX, uint16 &hexY, uint8 &dir)
 Расширенная версия функции GetNearEntireCoords, возвращающая направление (Dir) Подробнее...
 
void GetHexCoord (uint16 fromHx, uint16 fromHy, uint16 &toHx, uint16 &toHy, float angle, uint dist)
 Позволяет получить координаты гексагона, достигнутого при трассировке по указанной траектории. Подробнее...
 
void GetHexCoordWall (uint16 fromHx, uint16 fromHy, uint16 &toHx, uint16 &toHy, float angle, uint dist)
 Позволяет получить координаты гексагона, достигнутого при трассировке по указанной траектории. Подробнее...
 
bool IsHexPassed (uint16 hexX, uint16 hexY)
 Проверяет, проходим ли гексагон или нет. Подробнее...
 
bool IsHexRaked (uint16 hexX, uint16 hexY)
 Проверяет, простреливается ли гексагон. Подробнее...
 
uint GetPathLength (uint16 fromHx, uint16 fromHy, uint16 toHx, uint16 toHy, uint cut)
 Определяет длину пути между гексагонами. Подробнее...
 
uint GetPathLength (Critter &cr, uint16 toHx, uint16 toHy, uint cut)
 Определяет длину пути от персонажа до указанного гекса учитывая мултигексовость персонажа. Подробнее...
 
void MoveHexByDir (uint16 &hexX, uint16 &hexY, uint8 dir, uint steps)
 Двигает гексы hx, hy в направлении dir на steps шагов. Подробнее...
 
Для сценери

180

Scenery GetScenery (uint16 hexX, uint16 hexY, uint16 protoId)
 Позовляет получить объект сценери нужного прототипа в указанном гексагоне карты. Подробнее...
 
uint GetSceneries (uint16 hexX, uint16 hexY, Scenery @[]@+sceneries)
 Позволяет получить все объекты сценери в указанном гексагоне карты. Подробнее...
 
uint GetSceneries (uint16 protoId, Scenery @[]@+sceneries)
 Позволяет получить все имеющиеся на карте объекты сценери с указанными прототипом. Подробнее...
 

Открытые атрибуты

const uint Id
 Идентификатор карты. Подробнее...
 
const bool IsNotValid
 Позволяет определить валидность объекта. Подробнее...
 

Подробное описание

Карта.

Методы

bool SetScript ( string @+  script)

Устанавливает новый скрипт и вызывает в нем функцию инициализации с параметром firstTime равным true.

Аргументы
scriptИмя скрипта.
Возвращает
true в случае успешной операции, false в случае провала.
Прим.
Если скрипт или функция не найдена, то установки значения скрипта не произойдет.
uint GetScriptId ( )

Возвращает ID текущего скрипта, связанного с данной картой.

Возвращает
ID текущего скрипта. 0, если скрипт не назначен.
void SetEvent ( int  eventType,
string funcName 
)

Биндит функцию-обработчика определенного события.

Аргументы
eventTypeТип события (см. Map events).
funcNameИмя функции-обработчика.
void EventFinish ( bool  deleted)

Принудительно вызывает событие MAP_EVENT_FINISH.

void EventLoop0 ( )

Принудительно вызывает событие MAP_EVENT_LOOP_0.

void EventLoop1 ( )

Принудительно вызывает событие MAP_EVENT_LOOP_1.

void EventLoop2 ( )

Принудительно вызывает событие MAP_EVENT_LOOP_2.

void EventLoop3 ( )

Принудительно вызывает событие MAP_EVENT_LOOP_3.

void EventLoop4 ( )

Принудительно вызывает событие MAP_EVENT_LOOP_4.

void EventInCritter ( Critter cr)

Принудительно вызывает событие MAP_EVENT_IN_CRITTER.

void EventOutCritter ( Critter cr)

Принудительно вызывает событие MAP_EVENT_OUT_CRITTER.

void EventCritterDead ( Critter cr,
Critter killer 
)

Принудительно вызывает событие MAP_EVENT_CRITTER_DEAD.

void EventTurnBasedBegin ( )

Принудительно вызывает событие MAP_EVENT_TURN_BASED_BEGIN.

void EventTurnBasedEnd ( )

Принудительно вызывает событие MAP_EVENT_TURN_BASED_END.

void EventTurnBasedProcess ( Critter cr,
bool  beginTurn 
)

Принудительно вызывает событие MAP_EVENT_TURN_BASED_PROCESS.

uint16 GetProtoId ( )

Возвращает ID прототипа карты.

Возвращает
ID прототипа карты. В случае провала - 0.
Location GetLocation ( )

Позволяет получить локацию, в которой находится карта.

Возвращает
Указатель на локацию.
int GetTime ( )

Возвращает текущее время суток на карте.

См. также
SetTime
void SetTime ( int  time)

Позволяет изменить время суток на карте.

Начальное значение берется из MAPS.TXT, где оно определяется параметром map_time, управляющим освещенностью карты. Если его там нет, то значение по умолчанию равно -1. При отрицательном значении освещенность зависит от времени в игре, а при >=0 освещенность будет анологична времени суток, начиная с 00.00, в минутах.

Аргументы
timeУстанавливаемое время суток (в минутах).
См. также
GetTime
int GetData ( uint  index)

Возвращает значение из массива для работы с собственной информацией.

Аргументы
indexИндекс ячейки массива (0<=index<=63).
См. также
SetData
void SetData ( uint  index,
int  value 
)

Позволяет записать значение в массив для работы с собственной информацией.

Массив для работы с собственной информацией имеет размер в 63 элемента и позволяет хранить произвольные данные для карты.

Аргументы
indexИндекс ячейки массива (0<=index<=63).
valueЗаписываемое значение.
См. также
GetData
bool IsTurnBasedAvailability ( )

Позволяет проверить, возможен ли на данной карте пошаговый режим боя.

Возвращает
Если true, то на карте возможен пошаговый режим. Если false, то нет.
См. также
BeginTurnBased
IsTurnBased
SetTurnBasedAvailability
void SetTurnBasedAvailability ( bool  value)

Позволяет включить или отключить возможность пошагового режима боя на данной карте.

Аргументы
valueУстанавливаемое значение.
См. также
BeginTurnBased
IsTurnBased
IsTurnBasedAvailability
void BeginTurnBased ( Critter @+  firstTurnCrit)

Включает пошаговый режим на карте.

Аргументы
firstTurnCritУказатель на криттера, который ходит первым.
См. также
IsTurnBased
IsTurnBasedAvailability
SetTurnBasedAvailability
void EndTurnBased ( )

Завершает пошаговый режим на карте.

См. также
IsTurnBased
IsTurnBasedAvailability
SetTurnBasedAvailability
bool IsTurnBased ( )

Позволяет проверить, включен ли сейчас на карте пошаговый режим.

Возвращает
Если true, то на карте включен пошаговый режим. Если false, то нет.
См. также
BeginTurnBased
IsTurnBasedAvailability
SetTurnBasedAvailability
bool Reload ( )

Переинициализирует карту.

Возвращает
true – в случае успеха, false – в случае провала.
void SetLoopTime ( uint8  loop,
uint16  ms 
)

Устанавливает период вызова loop-функций.

Всего этих функций может быть 5 (loop_0, loop_1, loop_2 и т.д.).

Аргументы
loopНомер loop-функции.
msПериод вызова (в миллисекундах; 1 секунда = 1000 миллисекунд.
См. также
MAP_EVENT_LOOP_0
MAP_EVENT_LOOP_1
MAP_EVENT_LOOP_2
MAP_EVENT_LOOP_3
MAP_EVENT_LOOP_4
uint16 GetWidth ( )

Возвращает ширину карты.

uint16 GetHeight ( )

Возвращает высоту карты.

void RunEffect ( uint16  protoId,
uint16  hexX,
uint16  hexY,
uint  effectRadius 
)

Проигрывает анимацию указанного эффекта (например, анимацию взрыва).

Аргументы
protoIdID прототипа эффекта (см. Effects в файле ITEMPID.H).
hexX,hexYКоординаты гексагона, на котором необходимо проиграть анимацию.
effectRadiusРадиус эффекта.
void RunFlyEffect ( uint16  protoId,
Critter @+  fromCr,
Critter @+  toCr,
uint16  fromX,
uint16  fromY,
uint16  toX,
uint16  toY 
)

Проигрывает летящую анимацию указанного эффекта (например, анимацию летящего снаряда).

Приоритетным является указание криттера. Если передается null, то берутся координаты гексагонов.

Аргументы
protoIdID прототипа эффекта (см. Effects в файле ITEMPID.H).
fromCrКриттер, от которого должен лететь снаряд.
toCrКриттер, к которому должен лететь снаряд.
fromX,fromYКоординаты гексагона, из которого должен вылететь снаряд.
toX,toYКоординаты гексагона, в который должен прилететь снаряд.
uint8 GetRain ( )

Возвращает плотность дождя.

Возвращает
Плотность дождя.
См. также
SetRain
void SetRain ( uint8  capacity)

Включает/выключает дождь.

Аргументы
capacityПлотность дождя. Если плотность дождя == 0, то это значит, что дождь отключен. Максимальное значение – 255.
См. также
GetRain
void SetText ( uint16  hexX,
uint16  hexY,
uint  color,
string  text 
)

Выводит надпись в указанном гексагоне карты.

Если на этом гексагоне находится предмет или криттер, то надпись будет показана над ними.

Аргументы
hexX,hexYКоординаты гексагона.
colorЦвет шрифта. Для задания цвета шрифта пользуйтесь специальным макросом (см. Other в файле _macros.fos).
textВыводимый текст.
void SetTextMsg ( uint16  hexX,
uint16  hexY,
uint  color,
uint16  textMsg,
uint  strNum 
)

Выводит надпись в указанном гексагоне карты.

Если на этом гексагоне находится предмет или криттер, то надпись будет показана над ними.

Аргументы
hexX,hexYКоординаты гексагона.
colorЦвет шрифта. Для задания цвета шрифта пользуйтесь специальным макросом (см. Other в файле _macros.fos).
textMsgНомер MSG файла (см. Msg nums).
strNumНомер строки.
См. также
SetTextMsg(uint16, uint16, uint, uint16, uint, string&)
void SetTextMsg ( uint16  hexX,
uint16  hexY,
uint  color,
uint16  textMsg,
uint  strNum,
string lexems 
)

Выводит надпись в указанном гексагоне карты.

Аргументы
hexX,hexYКоординаты гексагона.
colorЦвет шрифта. Для задания цвета шрифта пользуйтесь специальным макросом (см. Other в файле _macros.fos).
textMsgНомер MSG файла (см. Msg nums).
strNumНомер строки.
lexemsСтрока значений лексем (см. описание тэга @lex@, где описан формат строки).
См. также
SetTextMsg(uint16, uint16, uint, uint16, uint)
void PlaySound ( string soundName)

Проигрывает звук на стороне клиента.

Аргументы
soundNameИмя звука в клиенте.
void PlaySound ( string soundName,
uint16  hexX,
uint16  hexY,
uint  radius 
)

Проигрывает звук с эпицентром в указанном гексагоне на стороне клиента.

Аргументы
soundNameИмя звука в клиенте.
hexX,hexYКоординаты гексагона, в котором находится эпицентр звука.
radiusВ радиусе скольких клеток будет слышен звук; если указан 0, то услышат те, у кого радиус видимости достигает эпицентра.
Critter GetCritter ( uint16  hexX,
uint16  hexY 
)

Возвращает указатель на криттера, который находится в указанном гексагоне.

Аргументы
hexX,hexYКоординаты гексагона, на котором находится криттер.
Возвращает
Указатель на экземпляр класса Critter. В случае провала – null.
Critter GetCritter ( uint  critterId)

Возвращает указатель на криттера, с указанным ID.

Аргументы
critterIdУникальный ID криттера.
Возвращает
Указатель на экземпляр класса Critter. В случае провала – null.
uint GetCrittersHex ( uint16  hexX,
uint16  hexY,
uint  radius,
int  findType,
Critter @@+[]  critters 
)

Находит криттеров, находящихся в указанной области.

Аргументы
hexX,hexYКоординаты гексагона, относительно которого будет проведен поиск криттеров.
radiusРадиус поиска, в гексагонах.
findTypeТип поиска (см. Critter find types).
crittersМассив указателей на криттеров, которые были найдены. Этот массив будет дописан с конца найденными криттерами.
Возвращает
Количество найденных криттеров.
Прим.
Чтобы просто узнать количество найденных криттеров, в параметре critters можно передать значение null вместо списка.
Найденные криттеры будут отсортированы по отдалению от базовой точки.
uint GetCrittersPath ( uint16  fromHx,
uint16  fromHy,
uint16  toHx,
uint16  toHy,
float  angle,
uint  dist,
int  findType,
Critter @@+[]  critters 
)

Проводит трассировку с указанными параметрами и находит всех криттеров, под неё попавших.

Аргументы
fromHx,fromHyКоординаты стартового гексагона.
toHx,toHyКоординаты гексагона назначения.
angleУгол отклонения луча, в градусах.
distМаксимальная дистанция трассировки.
findTypeТип поиска (см. Critter find types).
crittersМассив указателей на криттеров, которые были найдены. Этот массив будет дописан с конца найденными криттерами.
Возвращает
Количество найденных криттеров.
Прим.
Чтобы просто узнать количество найденных криттеров, в параметре critters можно передать значение null вместо списка.
uint GetCrittersPath ( uint16  fromHx,
uint16  fromHy,
uint16  toHx,
uint16  toHy,
float  angle,
uint  dist,
int  findType,
Critter @@+[]  critters,
uint16 &  preBlockHx,
uint16 &  preBlockHy,
uint16 &  blockHx,
uint16 &  blockHy 
)

Проводит трассировку с указанными параметрами и находит всех криттеров, под неё попавших.

Аргументы
fromHx,fromHyКоординаты стартового гексагона.
toHx,toHyКоординаты гексагона назначения.
angleУгол отклонения луча, в градусах.
distМаксимальная дистанция трассировки.
findTypeТип поиска (см. Critter find types).
crittersМассив указателей на криттеров, которые были найдены. Этот массив будет дописан с конца найденными криттерами.
[out]preBlockHx,preBlockHyПозиция гекса перед препятствием.
[out]blockHx,blockHyПозиция гекса препятствия.
Возвращает
Количество найденных криттеров.
Прим.
Если координаты preBlock* равны block*, то значит препятствия не было.
Чтобы просто узнать количество найденных криттеров, в параметре critters можно передать значение null вместо списка.
uint GetCritters ( uint16  pid,
int  findType,
Critter @@+[]  critters 
)

Находит на карте всех криттеров, имеющих указанный прототип.

Аргументы
pidПрототип NPC (см. _npc_pids.fos). При pid, равном -1, выбираются игроки, при -2 - NPC, при 0 - все криттеры (и игроки, и NPC) (?).
findTypeТип поиска (см. Critter find types).
crittersМассив указателей на криттеров. Этот массив будет дописан с конца найденными криттерами.
Возвращает
Количество найденных криттеров.
Прим.
Чтобы просто узнать количество найденных криттеров, в параметре critters можно передать значение null вместо списка.
uint GetCrittersWhoViewPath ( uint16  fromHx,
uint16  fromHy,
uint16  toHx,
uint16  toHy,
int  findType,
Critter @@+[]  critters 
)

Собирает всех криттеров, которые видят указанный путь.

Аргументы
fromHx,fromHyКоординаты стартового гексагона пути.
toHx,toHyКоординаты целевого гексагона пути.
findTypeТип поиска (см. Critter find types).
crittersМассив указателей на криттеров, которые были найдены. Этот массив будет дописан с конца найденными криттерами.
Возвращает
Количество найденных криттеров.
Прим.
Если вызывать метод несколько раз, в разных отрезках, но с одним массивом криттеров, то будут дописываться лишь те криттеры, которых нет в массиве.
uint GetCrittersSeeing ( Critter @&[]  critters,
bool  lookOnThem,
int  findType,
Critter @@+[]  crittersResult 
)

Позволяет получить всех криттеров, которые видят криттера из группы или которых видят криттеры из группы.

Аргументы
crittersИсходная группа криттеров. В результирующий массив будет записана в первую очередь.
lookOnThemУказывает, найти тех, кто видит этих криттеров (true) или тех, кого видят криттеры (false).
findTypeТип поиска (см. Critter find types).
crittersResultРезультирующий массив, в который будут дописаны найденные криттеры.
Возвращает
Количество найденных криттеров.
Прим.
Если при добавлении криттера, он уже присутствует в результирующем массиве, то повторно он туда не добавится.
Critter AddNpc ( uint16  protoId,
uint16  hexX,
uint16  hexY,
uint8  dir 
)

Добавляет криттера в указанный гексагон на карте.

Аргументы
protoIdНомер прототипа NPC (см. файл _npc_pids.fos).
hexX,hexYКоординаты гексагона.
dirНаправление.
Возвращает
Указатель на экземпляр класса Critter, если криттер создан. В противном случае – null.
uint GetNpcCount ( int  npcRole,
int  findType 
)

Возвращает количество NPC на карте, имеющих указанное значение параметра ST_NPC_ROLE.

Аргументы
npcRoleРоль NPC.
findTypeТип поиска (см. Critter find types).
Возвращает
Количество NPC на карте, имеющих указанное значение параметра ST_NPC_ROLE.
См. также
GetNpc
Critter GetNpc ( int  npcRole,
int  findType,
uint  skipCount 
)

Выбор NPC по его роли.

Аргументы
npcRoleРоль NPC.
findTypeТип поиска (см. Critter find types).
skipCountКоличество пропусков. Необходимо использовать этот параметр в том случае, если на карте есть несколько NPC с одной ролью.
Возвращает
Указатель на экземпляр класса Critter, если NPC найде. null – в противном случае.
См. также
GetNpcCount
Item AddItem ( uint16  hexX,
uint16  hexY,
uint16  protoId,
uint  count 
)

Добавляет предмет в указанный гексагон на карте.

Аргументы
hexX,hexYКоординаты гексагона.
protoIdID Прототипа предмета (см. файл ITEMPID.H).
countКоличество предметов.
Возвращает
Указатель на экземпляр класса Item. В случае провала – null.
Item GetItem ( uint  itemId)

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

Аргументы
itemIdУникальный ID предмета.
Возвращает
Указатель на экземпляр класса Item. В случае провала – null.
Item GetItem ( uint16  hexX,
uint16  hexY,
uint16  protoId 
)

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

Аргументы
hexX,hexYКоординаты гексагона, на котором находится предмет.
protoIdID прототипа предмета (см. файл ITEMPID.H).
Возвращает
Указатель на экземпляр класса Item. В случае провала – null.
uint GetItems ( uint16  hexX,
uint16  hexY,
Item @@+[]  items 
)

Находит все предметы, находящиеся на указанном гексагоне.

Аргументы
hexX,hexYКоординаты гексагона, на котором ищутся предметы.
itemsМассив указателей на предметы, в который будут записаны найденные предметы.
Возвращает
Количество найденных предметов.
uint GetItems ( uint16  protoId,
Item @@+[]  items 
)

Находит на карте все предметы с указанным номером прототипа.

Аргументы
protoIdID прототипа (см. файл ITEMPID.H).
itemsМассив, в который будут записаны указатели на найденные предметы.
Возвращает
Количество найденных предметов.
uint GetItemsByType ( int  type,
Item @@+[]  items 
)

Находит на карте все предметы указанного типа.

Аргументы
typeТип предмета (см. Items types).
itemsМассив, в конец которого будут записаны найденные предметы.
Возвращает
Количество найденных на карте предметов указанного типа.
Item GetDoor ( uint16  hexX,
uint16  hexY 
)

Возвращает указатель на объект двери, находящейся в указанном гексагоне.

Предупреждения
Помните, что двери относятся к классу Item.
Аргументы
hexX,hexYКоординаты гексагона, на котором находится объект.
Возвращает
Указатель на экземпляр класса Item. В случае провала – null.
bool OpenDoor ( Item door)

Открывает дверь или контейнер.

Аргументы
doorДверь или контейнер, который необходимо открыть.
Возвращает
В случае успешного открытия - true. В случае провала – false.
См. также
CloseDoor
bool CloseDoor ( Item door)

Закрывает дверь или контейнер.

Аргументы
doorДверь или контейнер, который необходимо закрыть.
Возвращает
В случае успешного закрытия - true. В случае провала – false.
См. также
OpenDoor
Item GetCar ( uint16  hexX,
uint16  hexY 
)

Возвращает указатель на объект машины, которая находится в указанном гексагоне.

Аргументы
hexX,hexYКоординаты гексагона, на котором находится объект.
Возвращает
Указатель на экземпляр класса Item. В случае провала – null.
bool CheckPlaceForItem ( uint16  hexX,
uint16  hexY,
uint16  protoCar 
)

Проверяет, можно ли поставить на данный гексагон карты указанный предмет.

Аргументы
hexX,hexYПредполагаемые координаты машины.
protoCarНомер прототипа предмета.
Возвращает
true – если место подходит для установки предмета; false – если место не подходит.
uint CountEntire ( uint8  entire)

Возвращает количество специально обозначенных гексагонов.

Гексагоны обозначаются в редакторе карт.

Аргументы
entireИдентификатор группы гексагонов. Устанавливается по усмотрению разработчика карты.
Возвращает
Количество найденных гексагонов с указанным значением идентификатора EntireNum.
См. также
GetEntireCoords
bool GetEntireCoords ( uint8  entire,
uint8  num,
uint16 &  hexX,
uint16 &  hexY 
)

Возвращает координаты специально обозначенного гексагона.

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

Аргументы
[in]entireИдентификатор группы гексагонов. Устанавливается по усмотрению разработчика карты.
[in]numПорядковый номер гексагона в группе.
[out]hexX,hexYПеременные, в которые функция запишет координаты гексагона.
Возвращает
true – при удачном выполнении функции; false – при провале.
См. также
CountEntire
bool GetEntireCoords ( int  entire,
uint  skip,
uint16 &  hexX,
uint16 &  hexY,
uint8 &  dir 
)

Расширенная версия функции GetEntireCoords, возвращающая направление (Dir)

bool GetNearEntireCoords ( int &  entire,
uint16 &  hexX,
uint16 &  hexY 
)

Для поиска ближайшего гекса.

Аргументы
entireНомер энтайра, если -1, то будет то будет возвращен ближайший валидный номер.
hexX,hexYКоординаты в области которых нужно производить поиск
Возвращает
true, в случае успеха.
bool GetNearEntireCoords ( int &  entire,
uint16 &  hexX,
uint16 &  hexY,
uint8 &  dir 
)

Расширенная версия функции GetNearEntireCoords, возвращающая направление (Dir)

void GetHexCoord ( uint16  fromHx,
uint16  fromHy,
uint16 &  toHx,
uint16 &  toHy,
float  angle,
uint  dist 
)

Позволяет получить координаты гексагона, достигнутого при трассировке по указанной траектории.

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

Аргументы
[in]fromHx,fromHyCтартовые гексы.
[out]toHx,toHyПеременные, в которые будут записаны итоговые координаты.
[in]angleУгол отклонения луча (в градусах).
[in]distДистанция до нужного гекса.
Прим.
Если на пути попадется не простреливаемый (IsHexRaked) гекс, то итоговые координаты будут указывать на гекс перед препятствием.
При (dist == 0) берется дистанция от гекса до гекса.
void GetHexCoordWall ( uint16  fromHx,
uint16  fromHy,
uint16 &  toHx,
uint16 &  toHy,
float  angle,
uint  dist 
)

Позволяет получить координаты гексагона, достигнутого при трассировке по указанной траектории.

Позволяет определить последний гекс перед стеной, т.к. криттеры и простреливаемые предметы игрнорируются при трассировке с помощью данного метода.

Аргументы
[in]fromHx,fromHyCтартовые гексы.
[out]toHx,toHyПеременные, в которые будут записаны итоговые координаты.
[in]angleУгол отклонения луча (в градусах).
[in]distДистанция до нужного гекса.
Прим.
Если на пути попадется непроходимый (IsHexPassed) гекс, то итоговые координаты будут указывать на гекс перед препятствием.
См. также
GetHexCoord
bool IsHexPassed ( uint16  hexX,
uint16  hexY 
)

Проверяет, проходим ли гексагон или нет.

Аргументы
hexX,hexYКоординаты гексагона.
Возвращает
true – если гексагон проходим; false – если гексагон непроходим.
bool IsHexRaked ( uint16  hexX,
uint16  hexY 
)

Проверяет, простреливается ли гексагон.

Аргументы
hexX,hexYКоординаты гексагона.
Возвращает
true – если гексагон простреливаем; false – если гексагон непростреливаем.
uint GetPathLength ( uint16  fromHx,
uint16  fromHy,
uint16  toHx,
uint16  toHy,
uint  cut 
)

Определяет длину пути между гексагонами.

Аргументы
fromHx,fromHyКоординаты исходного гексагона.
toHx,toHyКоординаты целевого гексагона.
cutУказывает, на сколько гексагонов необходимо обрезать путь с конца.
Возвращает
Длина пути между гексагонами. Если путь заблокирован, то возвращается 0.
uint GetPathLength ( Critter cr,
uint16  toHx,
uint16  toHy,
uint  cut 
)

Определяет длину пути от персонажа до указанного гекса учитывая мултигексовость персонажа.

Аргументы
crПерсонаж, от которого ищется путь.
toHx,toHyКоординаты целевого гексагона.
cutУказывает, на сколько гексагонов необходимо обрезать путь с конца.
Возвращает
Длина пути. Если путь заблокирован, то возвращается 0.
void MoveHexByDir ( uint16 &  hexX,
uint16 &  hexY,
uint8  dir,
uint  steps 
)

Двигает гексы hx, hy в направлении dir на steps шагов.

Т.к. хексагональная сетка имеет своеобразную систему координат, эта функция будет хорошим помощником для точной подстройки позиции.

Аргументы
[out]hexX,hexYПодстраиваемые координаты.
[in]dirНаправление смещения.
[in]stepsКоличество шагов смещения.
Прим.
В методе проводятся проверки на выходы из границ карты.
Scenery GetScenery ( uint16  hexX,
uint16  hexY,
uint16  protoId 
)

Позовляет получить объект сценери нужного прототипа в указанном гексагоне карты.

Аргументы
hexX,hexYКоординаты гексагона карты, на котором находится объект сценери.
protoIdНомер прототипа сценери.
Возвращает
Указатель на экземпляр класса Scenery. null – если в указанном месте сценери с указанным прототипом нет.
uint GetSceneries ( uint16  hexX,
uint16  hexY,
Scenery @@+[]  sceneries 
)

Позволяет получить все объекты сценери в указанном гексагоне карты.

Аргументы
hexX,hexYКоординаты гексагона карты.
sceneriesМассив, в конец которого будут записаны все найденные объекты сценери.
Возвращает
Количество объектов сценери в указанном гексагоне карты.
uint GetSceneries ( uint16  protoId,
Scenery @@+[]  sceneries 
)

Позволяет получить все имеющиеся на карте объекты сценери с указанными прототипом.

Аргументы
protoIdНомер прототипа сценери.
sceneriesМассив, в конец которого будут записаны все найденные объекты сценери.
Возвращает
Количество найденных объектов сценери.

Данные класса

const uint Id

Идентификатор карты.

const bool IsNotValid

Позволяет определить валидность объекта.