Примечание ВА: Это руководство по консольным командам было написано предположительно Александром Мишулиным во время разработки игры в период с ноября 1999 года по апрель 2000. В нем есть незначительные несовпадения с финальной версией игры. Оно публиковано в исходном виде с сохранением всех пунктов, было исправлено несколько опечаток. Добавлены комментарии к тем командам, действия которых отличаются в финальной версии.
КОМАНДЫ КОНСОЛИ
Help - Показать помощь по командам консоли
DebugInfo [pos] - Вывести дебаговую информацию
pos: l - слева, r - справа, lt - слева сверху, rt - справа сверху
Console [pos] - Переместить консоль в указанную позицию
pos: l - слева, r - справа, t - сверху, b - снизу, c - по центру, f - полный экран
History [N] - Изменить количество строк, запоминаемых в консоли - N - их число
Filter <[type] [state]> - Выводить конкретные системные сообщения
type - none - никаких не выводить (выключить весь вывод), ai - выводить сообщения ai, event - выводить пришедшие события, graphics - выводить сообщения по графике, rpg - выводить сообщения по ролевой системе, unitacks - выводить acknowledgements, all - выводить всю информацию
state - 1 или on - включить данный фильтр 0 или off - выключить данный фильтр
Комментарий: Под графикой тут подразумеваются координаты того места, куда совершён клик на ландшафте; очень полезный инструмент чтобы прямо в игре выбрать нужную позицию для юнита/скрипта.
Listvar [N] <[output file]> - вывести состояния всех переменных, возможно в файл
N - номер игрока, от которого берутся переменные
output file - в какой файл их записать (если такого файла нет он будет создан, по умолчанию файл создается в директории игры)
Loadvar [N] [input file] - загрузить из файла состояние всех переменных
N - номер игрока, к которому загрузятся переменные
output file - в какой файл их записать (если такого файла нет он будет создан, по умолчанию файл берется из директории игры)
LastFps - показать последнее значение FPS
Exec [file] - Выполнить команды, последовательно записанные в файле
file – файл, из которого будут выполняться команды консоли (по умолчанию файл берется из директории игры)
Комментарий: Позволяет сократить рутинное набивание одних и тех же команд при отладке.
Quit - выйти из игры
Exit - выйти из игры
Give [N1] [type] [N2] – Выдать игроку с номером N1:
type - money – деньги в количестве N2, exp – опыт в количестве N2
assortment – действует только в магазинах, выдает полный ассортимент товаров
Fadeout [N1] – погасить экран за N1 миллисекунд.
Также в консоли можно выполнять команды скрипта, для этого необходимо написать данную команду в соответствии с ее форматом, поставив перед ней без пробела @, если данная команда не возвращает значения, #, если данная команда возвращает число, и $, если данная команда возвращает строку.
ФУНКЦИИ СКРИПТА, ВЫПОЛНЯЕМЫЕ ИЗ КОНСОЛИ
Функция имеет некоторый набор параметров (обычно числа – f, строки – s, объект – o - любой объект, или группа - g) и иногда возвращает некий результат.
Функции возвращающие группу или объект не могут вернуть значения в консоль.
Ниже приведен список функций, буква перед названием функции – возвращаемое значение, p – функция ничего не возвращает:
f IsEqual (f1 f2) – сравнивает два числа f1 и f2, возвращает единицу в случае равенства и ноль в противном случае.
f IsEqualString (s1 s2) – сравнивает две строки s1 и s2, возвращает единицу в случае равенства и ноль в противном случае.
f IsLess (f1 f2) – возвращает единицу, если f1 меньше f2.
f IsGreater (f1 f2) – возвращает единицу, если f1 больше f2.
f Add (f1 f2) – возвращает сумму f1 и f2.
f Sub (f1 f2) – возвращает разность f1 и f2.
f Mul (f1 f2) – возвращает произведение f1 на f2.
f Div (f1 f2) – возвращает частное от деления f1 на f2.
f Not (f1) – возвращает “отрицание” значения f1.
o GetObject (f1) – возвращает объект по его уникальному номеру f1.
o GetObjectByName (s1) – возвращает объект по его глобальному имени s1
o GetObjectByID (s1) – возвращает объект по его уникальному номеру, заданному строкой s1
Примечание – GetObjectByID работает всегда, тогда как GetObject работает только для объектов с «нормальным» ID, то есть не для ID персонажей (их ID больше 1000000000)
f HP (o1) – возвращает количество HP у объекта o1.
f MaxHP (o1) – возвращает максимальное количество HP у объекта o1.
f Mana (o1) – возвращает количество маны у объекта o1.
f MaxMana(o1) – возвращает максимальное количество маны у объекта o1.
f GetX(o1) – возвращает X координату объекта o1.
f GetY(o1) – возвращает Y координату объекта o1.
f GetZ(o1) – возвращает Z координату объекта o1.
f GroupSize (g1) – возвращает количество объектов в группе g1.
g GroupAdd (g1 g2) – объединяет две группы g1 и g2 (формирует одну группу из двух).
g GroupSub(g1 g2) – выдает группу состоящую из таких элементов, которые есть в первой группе и которых нет во второй
g GroupCross(g1 g2) – выдает группу из тех элементов, которые присутствуют в обоих группах
f GroupHas (g1 o1) – выдает значение истина если юнит o1 принадлежит группе g1
g UnitSee (o1) – выдает группу объектов, видимых данным юнитом o1
Комментарий: Юнит не видит сам себя.
g GroupSee (g1) – выдает группу объектов, видимых данной группой g1
g PlayerSee (f1) – выдает группу объектов, видимых игроком (то есть всеми подконтрольными ему юнитами) с номером f1
f GetDiplomacy (f1 f2) – получает дипломатические отношения между игроками. Параметры – номера игроков, учтите выдается значение дипломатии игрока f1 по отношению к игроку f2! Не обязательно если f1 воюет с f2, то f2 воюет с f1. Возвращаемые значения: -1 – война, 0 – нейтралитет, 1 – мир. Эта функция выдает текущие глобальные установки (у юнитов по умолчанию устанавливается такая дипломатия), каждый отдельный юнит может иметь не совпадающий с глобальным набор врагов. Например, после нападения на одного юнита его нейтральное отношение может поменятся на враждебное, но глобальное состояние дипломатии от этого не изменится.
f IsEnemy (o1 f1) – является ли игрок с номером f1 врагом для указанного юнита o1
f IsDead (o1) – возвращает ненулевое значение, если указанный объект умер.
f IsAlive (o1) – возвращает ненулевое значение, если указанный объект жив.
f GetPlayer (o1) – получить номер игрока для указанного юнита
f DistanceUnitUnit (o1 o2) – получить расстояние между двумя объектами в плоскости
f DistanceUnitPoint (o1 f1 f2) – получить расстояние между объектом o1 и точкой с координатами (f1,f2)
(Примечание к последним двум функциям – при отсутствующем или не найденном объекте расстояние будет 1е30)
f Random (f1) – получить случайное число в интервале [0, f1]
f GetObjectID (o1) – получить ID объекта o1
f IsAlarm (f1) – Возвращает ненулевое значение, если поднята тревога номером f1
f AlarmTime (f1) – Возвращает время, прошедшее с поднятия тревоги с номер f1 в сегментах
f AlarmPosX (f1) - Возвращает x – координату места в котором была поднята тревога с номером f1 в сегментах
f AlarmPosY (f1) - Возвращает x – координату места в котором была поднята тревога с номером f1 в сегментах
f HaveItem (f1 f2) – Возвращает значение «истина», если у игрока с номером f1 имеется предмет с ScriptID f2
f GetAIClass (o1) – Возвращает AI класс юнита o1
f GetLeverState (o1) – Вернуть состояние рычага o1
f IsUnitInWater (o1) – Возвращает 1 если юнит o1 находиться в воде
f IsCameraPlaying () - Возвращает 1 если играется предварительно записанная камера
f IsNight () - Возвращает 1 игровой ночью, 0 – игровым днем, игровым утром и вечером – значения в промежутке между 0 и 1
f IsPlayerInDanger (f1) – Возвращает 1 если игрок f1 атакует или подвергается атаке
f IsPlayerInSafety (f1) – Возвращает 1 если игрок f1 находится в безопасности, то есть все противники достаточно далеко
o GetUnitOfPlayer(f1 f2) – Возвращает юнит с номером f2, принадлежащий игроку с номером f1
f GetWorldTime() – Возвращает время игрового дня на зоне в часах
f Every (O1 g1 f1) – Первым параметром указывается некая глобальная переменная O1 типа “объект” (в визуальном скрипте - i), затем группа g1 и затем функция, возвращающая число (условие) f1, которое должно выполниться. Функция f1 может зависеть от глобальной переменной O1, которой последовательно присваиваются все элементы группы. Данная функция вернет ненулевое значение, только когда указанное условие выполниться для всех юнитов, входящих в указанную группу
f Any (O1 g1 f1) – Первым параметром указывается некая глобальная переменная типа “объект” (в визуальном скрипте - i), затем группа и затем условие, которое должно выполниться. Данная функция вернет ненулевое значение, когда указанное условие выполниться для любого юнита, входящего в указанную группу
f Sum (O1 g1 f1) – Первым параметром указывается некая глобальная переменная O1 типа “объект” (в визуальном скрипте - i), затем группа g1 и затем функция, возвращающая число (f1). Результатом функции является сумма значений функции от всех членов группы.
p for (O1 g1) – Первым параметром указывается некая глобальная переменная O1 типа “объект” (в визуальном скрипте - i), затем группа g1. Следующий за этой конструкцией оператор (возможно сложный, т.е. состоящий из нескольких операторов, взятых в скобки) будет выполнен для каждого элемента группы g1.
p forif (O1 g1 f1) - то же, что и for, но перед выполением оператора проверяется условие заданное последним параметром
p WaitSegment (f1) – Отложить исполнение до сегмента с номером f1
p Sleep (f1) – Отложить исполнение на f1 сегментов
p KillScript() – прекратить выполнение данного экземпляра единичного скрипта, допускается в блоках then() и должно выполнятся в первый сегмент выполнения блока then(), после killscript() проверки из данного экземляра script проводится больше не будут. Выполнение killscript() после команд sleep(), waitsegment() не приведет ни к какому результату.
p MoveToPoint (o1 f1 f2) – отправить юнит o1 идти в точку с координатами (f1,f2) прямые команды move, rotate, attack, cast могут не выполнятся если у юнита есть управляющая мотивация (umplayer управляющей мотивацией не является)
p MoveToObject (o1 o2) – отправить объект o1 к объекту o2
p RotateTo (o1 f1 f2) – повернуть юнит так, чтобы он смотрел на точку с координатами (f1,f2)
p AddObject (g1 o1) – добавить в группу g1 объект o1
p RemoveObject(g1 o1) – удалить объект o1 из группы g1
p CreatePointLight(f1 f2 f3 f4 f5 f6 f7 f8) – создать точечный источник света, первый параметр (f1) – ID, его ID должен быть в пределах от 0 до 255, (f2,f3,f4) - его координаты, f5 – дальность источника света, (f6,f7,f8) – RGB компоненты цвета
p MovePointLight(f1 f2 f3 f4 f5 f6) – переместить источник света, f1 – ID источника света, (f2,f3,f4) – в какие координаты переместиться, f5 – за сколько сегментов переместиться, f6 – удалить источник после перемещения или нет (0 – не удалять)
p DeletePointLight(f1) – удалить источник света с указанным ID (f1).
p CreateParticleSource(f1 f2 f3 f4 f5 s1) – создать источник системы частиц, f1 – ID источника, (f2,f3,f4) – его координаты, f5 – его размер, s1 – тип эффекта, создаваемого данной системой частиц. Типы эффектов перечислены ниже: "AcidRay", "FireArrow", "FireBall", "CampFire", "FireBlast", "Fire", "Smoke", "VulcanSmoke", "Healing", "PoisonFog", "Geyser", "Tornado", "Casting", "Nuke", "Mushroom", "Link", "BlueGas", "SphereAcid", "SphereElectricity", "SphereFire", "ClayRing", "Teleport", "Modifier1", "Modifier2", "Modifier3", "Modifier4", "Modifier5", "Modifier6", "Modifier7", "Modifier8", "Modifier9", "Modifier10", "Modifier11", "Modifier12", "Antimagic", "CastingElemental", "CastingAstral", "Casting Senses", "CastingFailed"
p MoveParticleSource(f1 f2 f3 f4 f5 f6) – переместить источник системы частиц f1 – ID данного источника, (f2,f3,f4) – в какие координаты переместиться, f5 - за сколько сегментов переместиться, f6 - уничтожить или нет источник после перемещения (0 – не удалять).
p DeleteParticleSource(f1) – удалить источник системы частиц с указанным ID (f1).
p AttachParticleSource(f1 f2) – присоединить источник систем частиц с ID f1, к объекту с ID f2.
p CreateFXSource (f1 f2 f3 f4 f5 f6 s1) – Создать источник звука, зацикленно проигрывающий звуковой файл – f1 - ID источника звука, (f2,f3,f4) – его координаты, f5 – радиус, в пределах которого звук играется с максимальной для него громкостью, f6 – радиус, в пределах которого звук слышен, s1 – имя файла, из которого берется звук.
p CreateFX (f1 f2 f3 f4 f5 s1) – Создать источник звука, зацикленно проигрывающий звуковой файл – (f1,f2,f3) – его координаты, f4 – радиус, в пределах которого звук играется с максимальной для него громкостью, f5 – радиус, в пределах которого звук слышен, s1 – имя файла, из которого берется звук.
p CreateRandomizedFXSource(f1 f2 f3 f4 f5 f6 f7 f8 f9 s1) – Создать источник звука, проигрывающий источник света со случайными промежутками времени между проигрываниями, f1 - ID источника звука, (f2,f3,f4) – его координаты, f5 – радиус, в пределах которого звук играется с максимальной для него громкостью, f6 – радиус, в пределах которого звук слышен, f7 – минимальная задержка между двумя проигрываниями, f8 – максимальная задержка между двумя проигрываниями, f9 – радиус, в пределах которго может изменяться позиция источника звука, s1 – имя файла, из которого берется звук.
p DeleteFXSource(f1) – удалить источник звука с указанным ID (f1)
p Idle (o1) – поставить логику юнита o1 в Idle
p Guard (o1 f1 f2 f3) – поставить логику юнита o1 в Guard точки с координатами (f1,f2) и радиусом брожения f3. (При этом юнит имеет стандартный набор мотиваций с агрессией)
p Sentry (o1 f1 f2) – поставить логику юнита o1 в Sentry точки с координатами (f1,f2). (При этом юнит имеет стандартный набор мотиваций с агрессией)
p UMClear (o1) – убрать все мотивации у юнита o1
p UMSentry (o1 f1 f2) – добавить юниту o1 мотивацию Sentry в точке с координатами (f1,f2)
p UMGuard (o1 f1 f2 f3) – добавить юниту o1 мотивацию Guard точки с коордитнатами (f1,f2) и радиусом брожения f3
p UMGuardEx (o1 f1 f2 f3 f4) – добавить юниту o1 мотивацию Guard точки с коордитнатами (f1,f2) и радиусом брожения f3, при этом максимальное время нахождение в Idle будет равно f4
p UMPatrol (o1) – добавить юниту o1 мотивацию Patrol. (Если в патруле не задана ни одна точка патрулирования – выдается ошибка)
p UMPatrolClear (o1) – убрать у юнита o1 все точки патрулирования
p UMPatrolAddPoint (o1 f1 f2) – добавить юниту o1 патрульную точку (f1,f2)
p UMPatrolAddPointLook (o1 f1 f2 f3) – добавить юниту o1 точку наблюдения в последней добавленной патрульной точке, при этом указывается угол f1, время обзора f2 и скорость поворота f3.
p UMStandard (o1) – добавить юниту o1 набор стандартных мотиваций (агрессия, подозрение и наблюдение за трупами)
p UMAggresion (o1) – добавить юниту o1 мотивацию агрессия
p UMRevenge (o1) - добавить юниту o1 мотивация месть
(Примечание: Агрессия и Месть взаимоисключающие мотивации!)
p UMSuspection (o1) – добавить юниту o1 мотивацию подозрение
p UMCorpseWatcher (o1) – добавить юниту мотивацию наблюдение за трупами
p UMPlayer (o1) – установить юниту o1 мотивацию игрок (то есть юнит может управляться игроком).
p Follow (o1 o2) – заставить юнит o1 следовать за юнитом o2
p KillUnit (o1) – нанести смертельные повреждения объекту o1
p SetPlayer (o1 f1) – установить объекту o1 принадлежность к игроку с номером f1
p SetDiplomacy (f1 f2 f3) – установить между игроками f1 и f2 дипломатию f3, учтите, что отношения между f2 и f1 не изменятся
Комментарий: -1 — враг, 0 — нейтрал и 1 — друг.
p SetEnemy (o1 f1) – установить для юнита o1 враждебного к нему игрока с номером f1
p SendEvent (f1 f2) – послать игроку с номером f1 событие с номером f2
p SendStringEvent (f1 s1) – послать игроку с номером f1 текстовую строку s1
p Cast (o1 f1 f2) - объект o1 творит заклятье «Огненный шар» в точку с координатами (f1,f2)
Комментарий: Творит своё активное (первое в списке) заклинание; если заклинание предназначено для юнита, а не для площади, то игра вылетает.
p Crawl (o1) – приказать юниту o1 ползти
p Stand (o1) – приказать юниту o1 встать
p Walk (o1) – приказать юниту o1 идти
p Run (o1) – приказать юниту o1 бежать
p SetSpellAggression (of) - Set spell effect on unit aggression duration T, object, T – устаревшая команда – ничего не делает.
p CreateLightning (f1 f2 f3 f4 f5 f6 f7 f8) – создать молнию с ID = f1, исходящую из точки (f2,f3,f4) и входящую в точку (f5,f6,f7), толщина молнии – f8.
Комментарий: Если толщина молнии равна 0, то создаётся эффект как у заклинания преграда из молний.
p DeleteLightning (f1) – удалить молнию с ID = f1
p InvokeAlarm (f1 f2 f3) – поднять тревогу с номером f1, в точке (f2,f3)
p InflictDamage (o1 f1) – нанести юниту o1 повреждения в размере f1
p PlayAnimation (o1 s1) – юнит o1 проигрывает анимацию с именем указанным в строке s1
p BlockUnit (o1 f1) – заблокировать (f1=0) или разблокировать (f1=1) управление юнитом o1.
p ConsoleFloat (f1) – вывести в консоль значение f1 (то есть число типа float)
p ConsoleString (s1) - вывести в консоль значение s1 (то есть строку)
f GSGetVar (f1 s1) – получить значение глобальной скриптовой переменной, названной в строке s1, для игрока с номером f1
f GSHasVar (f1 s1) – узнать, есть ли у игрока с номером f1, глобальная скриптовая переменная, названная в строке s1
p GSSetVar (f1 s1 f2) – проставить для игрока с номером f1, глобальную скриптовую переменную, названную в строке s1, в значение f2
p GSDelVar (f1 s1) – удалить для игрока с номером f1 глобальную скриптовую переменную, названную в строке s1
p AddUnitUnderControl (f1 o1) – дать игроку с номером f1 управление над юнитом o1
p RemoveUnitFromControl (o1) – запретить управление юнитом o1 для любого игрока
p AddUnitToParty (f1 s1 s2) – добавить в партию к игроку с номером f1 юнит с глобальным именем s1 и прототипом, описанном в таблице под именем s2
p RemoveUnitFromParty (f1 s1) – удалить из партии игрока с номером f1 юнит с глобальным именем s1
p AddUnitToServer (s1 s2 s3 f1 f2 f3) – добавить на сервер юнит с именем s1 (оно должно быть уникальным – по нему вычисляется ID юнита), прототипом, описанном в таблице под именем s2, также указывается локальное имя данного юнита – s3, юнит выставляется в точку с координатами (f1,f2,f3)
p RemoveUnitFromServer (o1) – удалить юнит o1 с сервера
p RemoveObjectFromServer (o1) – удалить объект o1 с сервера
Комментарий: На юнитов тоже рабортает.
p LeaveToZone (f1 s1 f2) – отправить партию игрока с номером f1, в зону, указанную в строке s1, во вход с номером f2 (входы нумеруются с нуля)
Комментарий: В сетевой игре работает только на хоста. В одиночной есть специальная версия команды: если s1 — "EndOfGame" и f2 = 0, то игра покажет финальный ролик, титры и выйдет в главное меню.
p SetCP (o1 f1 f2 f3) – переместить объект o1 в точку (f1,f2,f3)
p SwitchLeverState (o1 f1) – изменить состояние рычага o1; если f1=-1, то состояние меняется на следующее, а если число от 0 до последнего состояния рычага – то рычаг переходит в указанное состояние
p SwitchLeverStateEx (o1 f1 f2) – изменить состояние рычага o1 за время f2, время указано в сегментах; если f1=-1, то состояние меняется на следующее, а если число от 0 до последнего состояния рычага – то рычаг переходит в указанное состояние
p GiveQuestItem (f1 s1) – выдать игроку, с номером f1 квестовый предмет, с названием s1 (должно соответствовать его имени в таблице)
p EraseQuestItem (f1 f2) – удалить у игрока с номером f1 квестовый предмет со ScriptID равным f2
p ActivateTrap (o1 f1) – Изменить состояние магической ловушки o1 на укзананное в f1 (0 - выключить, 1 - включить)
p GSSetVarMax (f1 s1 f2) - проставить для игрока с номером f1, глобальную скриптовую переменную, названную в строке s1, в значение f2, но только в том случае, если устанавливаемое значение больше текущего.
p GodMode (f1 f2) – Установить «режим бога» для игрока с номером f1, f2 состояние режима (0 – выключить, 1 - включить)
Комментарий: 2 — включить и активировать убийство врагов с одного удара.
p CreateParty (f1 s1) – Создает новую пустую партию для игрока с номером f1, с именем s1.
p RemoveParty (f1 s1) – Уничтожить партию у игрока с номером f1, с именем s1.
p SetCurrentParty (f1 s1) – Сделать для игрока с номером f1, активной партию с именем s1.
p CopyStats (f1 s1 s2) – Скопировать параметры от одного персонажа игрока с номером f1 к другому. Имя источника (того персонажа, от которого берутся параметры) задается в строке s1, имя того персонажа, который получит данные параметры – s2.
p AddMob (s1) – Загрузить вторичный .mob файл с именем s1.
p QuestComplete (f1 s1) – Получить игроком с номером f1 опыт и деньги за завершение квеста с кодовым названием, заданным в строке s1.
Комментарий: Имя берётся из базы данных игры, и может не совпадать с именем квеста в gsvar'ах
p PlayCamera (s1) – Проиграть камеру, записанную в файл с именем s1.
p PlayMusic (f1 s1) – Проиграть музыку из файла с именем s1 для игрока с номером f1.
p ShowCredits (s1) – Функция для показа кредитов (специальная функция)
p SetPlayerAggression (f1 f2) – Тестовая функция для изменения режима агрессивности игрока, f1 – игрок, f2 – текущий режим.
p GiveItem (f1 s1) – Выдать игроку с номером f1 предмет, определенный в строке s1. (Способ задания предмета из строки см. ниже)
p GiveMoney (f1 f2) - Выдать игроку с номером f1 денег в количестве f2
p CastSpellPoint (s1 f1 f2 f3 f4) – Сотворить заклятье с именем s1 и точки (f1,f2) в точку с координатами (f3,f4)
p CastSpellUnit (s1 f1 f2 o1) - Сотворить заклятье с именем s1 и точки (f1,f2) в объект o1
p SetScience (o1 f1 f2 f3 f4 f5 f6) – Установить новые параметры управляющие переключением рычагов для объекта o1, f1 – ID квестового ключа, f2 - скилл в ловкости рук, требуемый для открывания двери, f3 – открывается ли дверь руками (0 – открывается, 1 - нет), f4 – открывается ли дверь отмычками (0 – открывается, 1 - нет), f5 – открывается ли дверь ломом (0 – открывается, 1 - нет), f6 – открывается ли дверь ключом (0 – открывается, 1 - нет).
Комментарий: Взлом явно хотели сделать более разнообразным, судя по количеству упоминающихся инструментов. По сути в финальной версии работают только параметры f1, f2, f3, f6, так как ни отмычки, ни лом до финальной версии не дошли.
p SetCPFast (o1 f1 f2 f3) – переместить объект o1 в точку (f1,f2,f3) без пересчета графа проходимости
p RemoveQuestItem (o1 f1) – убрать из юнита o1 носимый им квестовый предмет с ID f1
p GiveUnitQuestItem(o1 s1) – выдать юниту o1 носимый им квестовый предмет с именем s1
p Rest (o1) – переключить юнит o1 в состояние отдыха.
p RunWorldTime(f1) – запустить время на зоне, начиная с f1 часов
p FixWorldTime(f1) – остановить время на зоне на f1 часах
Переменные
Основные переменные, используемые в игре:
Брифинговые
Формат: b.<character>.<briefing>
<character> - глобальное имя персонажа, которому принадлежит данный брифинг
<briefing> - уникальный идентификатор брифинга
Данная переменная отвечает за состояние брифинга:
1 – Брифинг доступен,
2 – Брифинг выдан
Обязательные брифинговые
Формат: b.<briefing zone>.<briefing>
<briefing zone> - имя брифинговой зоны, в которй происходит брифинг
<briefing> - уникальный идентификатор брифинга
Данная переменная отвечает за состояние брифинга:
1 – Брифинг доступен,
2 – Брифинг выдан
В отличии от предыдущего случая такой брифинг выдается автоматически при входе игрока на данную брифинговую зону.
Квестовые
Формат: q.<game zone>.<quest>
<game zone> - имя игровой зоны, за которой закреплен квест,
<quest> - уникальный идентификатор квеста
Данная переменная отвечает за состояние квеста:
1 – Квест выдан
2 – Квест выполнен
3 – Квест провален
Обджективные
Формат: q.<game zone>.<quest>.<objective>
<game zone> - имя игровой зоны, за которой закреплен квест,
<quest> - уникальный идентификатор квеста
<objective> - номер обджектива
Данная переменная отвечает за состояние обджектива:
1 – Обджектив выдан
2 – Обджектив выполнен
3 – Обджектив провален
Зональные
Формат: z.<zone>
<zone> - имя брифинговой или игровой зоны
Отвечает за состояние зоны:
0 – Зона неизвестна
1 – Зона неисследована
2 – Зона исследована
Переходные
Формат: z.<tzone>
<tzone> - имя переходной зоны
Отвечает за состояние переходной зоны:
0 – Проходима
1 – Непроходима
Имена игровых зон
gz1g - Руины
gz2g – Проход к знахарке
gz3g - Предгорья
gz4g - Ущелье
gz5g – Пещера дракона
gz6g – Средние горы
gz7g – Озеро-дельта
gz8g – Орки и лизардмены
gz9g – Мертвый город
gz10g – Туннель к Рику
gz11k – Поселок и дриады
gz12k – Путь к шахтам
gz13k - Цеховая
gz14k - Шахта
gz15h – Каньон
gz16h – Каньон-пещера
gz17h – Пригородная
gz18h – Пустыня некромантов
gz19h - Припортальная
gz20g – Финальная
Имена брифинговых зон
bz1g – Поселок на Гипате
bz2g – Пещера Знахарки
bz3g - Дракон
bz4g – Лагерь хадаганцев
bz5g – Поселение драгонкинов
bz6g – Лагерь орков-шайваров
bz7g - Рик
bz8k – Город на Ингосе
bz9k – Лагерь дриадов
bz10k – Новый лагерь дриадов
bz11k - Шахта
bz12h - Клетка
bz13h – Лагерь беглых
bz14h – Башня некроманта
bz16h – Место встречи с джунофилом
bz17h - Староста
Имена переходных переменных
Имена переходных переменных имеют следущий формат <zone1>_<zone2> и формируется по следущему принципу: первой всегда идет зона с меньшим порядковым номером, например gz1g_gz3g. Брифинговые зоны всегда идут вторыми, например gz2g_bz2g.
Кодовые имена (уникальные идентификаторы) квестов
Имена квестов формируются следующим образом: q<номер>g, например, q20g.
Комментарий: Буква g обозначает аллод: g — Гипат, k — Ингос, h — Суслангер; это не объязательный форматтинг, но лучше придерживаться такого или похожего именования чтобы избежать путаницы.
В квадратных и фигурных скобках – необязательные параметры, при задание предмета с этими параметрами скобки необходимы! Также нельзя вставлять модификаторы без заклинания, то есть вложенность скобок необходимо учитывать!
<shape name> - Имя прототипа
<material name> - Имя материала
<spell name> - Название заклинания
<modifier names> - Модификаторы к заклинанию, записываются по их внутренним номерам, через “;”, без пробелов.
Создание материала
Формат: material.<material name>[<amount>]
В квадратных скобках указан необязательный параметр, при задание данного параметра скобки необходимы!
<material name> - Имя материала
<amount> - Количество выдаваемого материала
Создание заклинания
Формат: <spell name>{<modifier names>}
В фигурных скобках указан необязательный параметр, при задание данного параметра скобки необходимы!
<spell name> - Название заклинания
<modifier names> - Модификаторы к заклинанию, записываются по их внутренним номерам, через “;”, без пробелов.
Имена прототипов
Оружие
Stone Axe – Однолезвийный топор из камня - Гипат
Stone Battle Axe – Двулезвийный топор из камня - Гипат
Axe – Однолезвийный топор из металла - Кания
Battle Axe – Двулезвийный топор из металла - Хадаган
Crystal Axe - Двулезвийный топор из кристалла - Джун
Spiked Club - Металическая шипованная дубина - Хадаган
Crystal Mace - Кристаллическая палица - Джун
Stone Short Bow - Костянной короткий лук - Гипат
Bone Long Bow - Костянной длинный лук - Гипат
Short Bow - Металлический короткий лук - Кания
Long Bow - Металлический длинный лук - Кания
Crossbow - Металлический арбалет - Хадаган
Long Crossbow - Металлический тяжелый арбалет - Хадаган
Crystal Crossbow - Кристаллический арбалет - Джун
Доспехи
Каждый доспех состоит из 4 нижних частей именующихся как shirt, pants, boots, gloves и 3 верхних: helm, plate, leggins (стоит обратить внимание на написание!).
Существуют доспехи, у которых есть только верхняя или нижняя часть. Ниже указаны имена прототипов доспеха, после имени необходимо добавить пробел и имя конкретной части доспеха для получения полного имени прототипа конкретной части доспеха. На всякий случай напротив доспеха указано из какого класса материала он изготавливается.
Gipat Low - все 7 частей - кожаный
Gipat Medium - все 7 частей - кожаный
Gipat Brigand - все 7 частей - мех
Gipat High - все 7 частей - кожаный
Gipat Highest - все 7 частей - кожаный
Kania Low - все 7 частей - нижний – ткань, верхний – кожаный
Kania Medium - все 7 частей - ткань
Kania Brigand - все 7 частей - кожаный
Kania High - все 7 частей - нижний – шкуры, верхний – металл
Kania Highest - все 7 частей - металл
Kania High2 - все 7 частей - металл
Kania Highest2 - верхние части - металл
Hadagan Low - все 7 частей - нижний – ткань, верхний – кожаный
Hadagan Medium - все 7 частей - ткань
Hadagan Brigand - все 7 частей - кожаный
Hadagan High - все 7 частей - нижний – шкуры, верхний – металл
Аллод Гипат из «Проклятых Земель» фигурирует в ресурсах игры под именем Gipat, тогда как в английской версии переведен как Gipath. Сложно сказать, с чем это связано, возможно, локализаторы посчитали, что так правильнее.
Примечание ВА:
Это руководство по консольным командам было написано предположительно Александром Мишулиным во время разработки игры в период с ноября 1999 года по апрель 2000. В нем есть незначительные несовпадения с финальной версией игры. Оно публиковано в исходном виде с сохранением всех пунктов, было исправлено несколько опечаток. Добавлены комментарии к тем командам, действия которых отличаются в финальной версии.