-
Notifications
You must be signed in to change notification settings - Fork 17
Home
Все сообщения отладки выводятся в консоль TERA Toolbox (Tera-Proxy).
Toolbox(/8) | Описание команды |
---|---|
guide debug s | Вкл./выкл. вывода информации об умениях босса. |
guide debug am | Вкл./выкл. вывода информации об эффектах, наложенных на вас боссом. |
guide debug ae | Вкл./выкл. вывода информации об эффектах, наложенных на вас сервером. |
guide debug ab | Вкл./выкл. вывода информации об эффектах, наложенных на босса. |
guide debug ar | Вкл./выкл. вывода информации об удалении эффектов с вас. |
guide debug ad | Вкл./выкл. вывода информации об удалении эффектов с босса. |
guide debug h | Вкл./выкл. вывода информации о здоровье босса. |
guide debug ns | Вкл./выкл. вывода информации о спауне NPC. |
guide debug nd | Вкл./выкл. вывода информации о деспауне NPC. |
guide debug dm | Вкл./выкл. вывода информации Dungeon Message. |
guide debug qb | Вкл./выкл. вывода информации Quest Balloon. |
guide debug all | Вкл./выкл. вывода всей отладочной информации (установленные выше опции игнорируются). |
guide debug chat | Вкл./выкл. вывода отладочной информации в чат Proxy в игре. |
guide debug status | Отобразить состояние всех настроек режима отладки. |
Toolbox(/8) | Описание команды |
---|---|
guide event load zone
|
Загрузить указанный в параметре zone гайд (указывается id данжа из списка поддерживаемых). Допустимо указание значения test для чтения гайда из файла guides/test.js (пример файла https://github.com/hsdn/tera-guide/wiki/Test-Guide). При загрузке будут добавлены все хуки, связанные с гайдом. |
guide event reload | Перезагрузить конфигурацию и хуки текущего загруженного гайда. |
guide event unload | Выгрузить всю конфигурацию и удалить хуки для текущего загруженного гайда. |
guide event trigger key
|
Выполнить событие из загруженного гайда, где key указывается ключ события. |
guide event spawn context
|
Создать объект (предмет, табличка и т.д.), где context указывается запись в формате JSON. |
guide event text context
|
Вывести текстовое сообщение в чат или на экран, где context указывается запись в формате JSON. |
/8 guide event load 3026
/8 guide event trigger "s-3026-1000-2153-0"
/8 guide event text '{"sub_type":"message","message":"Сообщение"}'
/8 guide event spawn '{"sub_type":"item","id":"88704","sub_delay":"999999"}'
Сначала установите параметры отладки при помощи команд описанных выше (для добавления хуков и вывода нужной информации), затем войдите в данж, для которого вы хотите создать гайд. Как только вы вошли, посмотрите в консоли на идентификатор (id). Далее создайте файл в папке guides. Имя файла должно состоять из id (номера) данжа с расширением ".js". Первой строкой в файле необходимо указать комментарий с названием данжа на английском языке (см. примеры в существующих файлах). Редактирование файла config.json не требуется, вся необходимая информация о конфигурации созданного гайда будет добавлена автоматически при входе в игру.
Важно отметить, что вам нужно будет включить основную информацию для загрузки в созданный файл:
module.exports = (dispatch, handlers, guide, lang) => {
// здесь описываются вспомогательные функции
return {
// здесь описывается сценарий гайда
};
};
dispatch
- объект экземпляра класса Dispatch (экземпляр модуля доступен как dispatch._dispatch
).
handlers
- объект экземпляра класса Handlers, содержит все функции обработчиков событий.
guide
- объект данных загруженного гайда.
lang
- объект данных языковых настроек.
Хук (hook) - функция, вызываемая при срабатывании определенного событии, сгенерированного игрой (например при атаке босса, наложении эффекта и т.д.). Каждый хук может быть связан с необходимым алгоритмом обработки при помощи сценария гайда. О том как написать свой сценарий и связать нужные хуки с желаемыми действиями (выводом текста на экран, спауном маркеров и т.д.) - читайте ниже.
Примечание: все хуки, связанные с включенными опциями отладки, будут принудительно добавлены в любой гайд при его загрузке, даже если его сценарий не содержит ключей, добавляющих данные хуки.
Для написания сценария используется определенный формат, заданный в виде объекта JavaScript {...}
, возвращаемого основной функцией в файле гайда (в значении оператора return
). Каждый элемент данного объекта представляет из себя ключ, в значении которого указывается массив [...]
с объектами {...}
, содержащими параметры, необходимые для обработки событий. Форматы ключей и объектов обработки событий описаны ниже.
Ключ представляет из себя строку, разделенную символами "-", состоящую из: префикса (указывающего на тип отслеживаемого события), идентификатора зоны huntingZoneId (id данжа или локации), идентификатора босса/моба templateId, а также отслеживаемой информации (hp% босса, идентификатор умения, стадия анимации умения и т.д.).
Пример ключа:
"s-735-1000-304-0": [...]
s
- префикс, указывающий на обработку умения босса (при загрузке гайда будет добавлен нужный хук).
735
- идентификатор данжа (обычно совпадает с идентификатором гайда).
1000
- идентификатор босса (первый босс обычно имеет id 1000, второй босс 2000 и т.д.).
304
- идентификатор умения босса (формат может отличаться в зависимости от указанного типа гайда, см. ниже).
0
- стадия анимации умения босса (многие анимации умений имеют несколько стадий, указываемых от 0 до n).
Существует несколько типов форматирования идентификаторов умений боссов, предназначенных для упрощения написания сценариев. Например если необходимо, чтобы все умения босса учитывали состояние его ярости, можно указать тип SP
, после чего вначале идентификатора будет добавлена дополнительная цифра, указывающая на состояние босса. Ниже представлена таблица с описанием всех типов.
Тип | Диапазоны | Возможное применение |
---|---|---|
SP | 1000-1999 2000-2999 3000-3999 |
Обработка умений в состоянии ярости (2000-2999) и без ярости (1000-1999), а также обработка специальных умений. |
ES | 100-299 3000-3999 |
Обработка умений без учета состояния ярости, а также обработка специальных умений. |
нет | 100-399 | Обработка умений без учета состояния ярости. |
Тип форматирования указывается внутри основной функции в файле гайда при помощи свойства type
для аргумента guide
. Значение задается в виде констант SP
или ES
, например:
guide.type = SP;
При отсутствии указания типа, будет применено форматирование по умолчанию (диапазон 100-399).
Чтобы обрабатывать событие, вызываемое хуком при нахождении соответствующего ключа в сценарии, необходимо в массиве значения ключа указать один или более объектов обработки событий. Объект обработки событий представляет из себя набор параметров, описывающих то или иное действие, выполняемое при срабатывании события.
Пример объекта обработки события:
{ type: "text", sub_type: "message", message: "Out", message_RU: "От него" }
type
- тип действия, которое необходимо совершить ("text" - вывод сообщения на экран).
sub_type
- дополнительный параметр для типа "text" ("message" - стандартное сообщение).
message
и message_RU
- тексты сообщения на разных языках.
Набор параметров не ограничивается только теми, которые указаны в примере выше. Объекты событий могут описывать не только вывод сообщений на экран, но и спаун сложных объектов, вызов функций, проигрывание речи и т.д. Точный список всех доступных параметров описан в таблице ниже.
return {
// ключи // массивы объектов обработки события
"s-735-1000-304-0": [{ type: "text", sub_type: "message", message: "Out", message_RU: "От него" }],
"s-735-1000-305-0": [{ type: "text", sub_type: "message", message: "In", message_RU: "К нему" }],
};
Префикс a
указывает на средство обработки эффекта. Однако помимо этого, есть подтипы к эффектам:
Подтип | Описание |
---|---|
m | Эффект был наложен на вас боссом. |
e | Эффект был наложен на вас сервером. |
b | Эффект был наложен на босса. |
r | Эффект был удален. |
d | Эффект был удален с босса. |
Префикс s
указывает на обработку умения NPC.
Префикс h
указывает на здоровье NPC (только целые числа). Например h-735-1000-60
означает, что событие сработает на 60% здоровья.
Префикс ns
указывает на обработку событий спауна (выполняется при появлении босса).
Префикс nd
указывает на обработку событий деспауна (выполняется при смерти/вайпе босса).
Префикс dm
указывает на обработку Dungeon Message.
Префикс qb
указывает на обработку Quest Balloon.
Для записей, указывающих обработку умений NPC, после последней "-" всегда указывается значение стадии анимации (число 0 или больше). Например для срабатывания на нулевой (0) стадии анимации умения с id 304, указывается: s-735-1000-304-0
.
Все хуки, связанные с указанным в ключе префиксом, будут добавлены автоматически при загрузке гайда.
Параметр (ключ) | Обязательный | Значения | Использование |
---|---|---|---|
type | Да | text, spawn, despawn, despawn_all, marker, marker_remove, marker_remove_all, func, stop_timers | Определяет, какие действия будут произведены при вызове события. |
sub_type | Да(text), Возможно(spawn), Нет | message(text), notification(text), alert(text), warning(text), collection(spawn(default)), item(spawn), build_object(spawn) | Используется в сочетании с определенными типами. |
id | Да(spawn, marker, marker_remove), Нет | Уникальный идентификатор. | Используется для спауна объекта (item id), размещения маркера на цель (gameId). НЕ ИСПОЛЬЗУЙТЕ 0 ДЛЯ ID НИ В КАКОМ СЛУЧАЕ! |
delay | Нет | Задержка в миллисекундах | Создает таймер, который можно использовать для задержки ЛЮБОГО события. |
sub_delay | Да(spawn), Возможно(marker), Нет | Продолжительность существования в миллисекундах. | Используется при спауне объектов или при размещении маркера на цели. |
distance | Возможно(spawn), Нет | Дистанция в единицах (1 метр = 25 ед.) | Используется при спауне (насколько далеко будет размещено относительно NPC). |
offset | Возможно(spawn), Нет | -PI, PI | Используется при спауне (угол смещения относительно NPC). используйте это или pos |
pos | Возможно(spawn), Нет | { x, y, z } | Используется при спауне (указание координат на карте). используйте это или offset |
message, message_LANG
|
Да(text), Нет | Текст, который вы хотите отобразить при выполнении записи. | Используйте с типом text. |
func | Да(func), Нет | Функция, которая должна вызываться при выполнении записи. | Вызов будет передан указанной функции с параметрами события, из которого оно было вызвано, такими как: ent - сущность объекта босса, event - сущность события, handlers - сущность обработчиков. |
args | Да(func), Возможно(spawn), Нет | Список аргументов функции | Определяет список аргументов, передаваемых в функцию, указанную в func. |
color | Возможно(marker), Нет | red, yellow, blue | Определяет наименования цвета маркера. |
class_position | Нет | tank, dps, heal, priest, mystic, lancer | Если это используется, событие будет выполняться только для указанного игрового класса. |
Все функции описаны в классе Spawn
в файле lib/spawn.js модуля tera-guide-core.
Аргументы функции: item
, angle
, distance
, delay
, duration
Аргумент | Значение | Использование |
---|---|---|
item | Число | Идентификатор предмета, см. https://teralore.com/ru/items/ |
angle | Число | Угол поворота относительно точки привязки (допускается отрицательное значение) |
distance | Число | Смещение относительно точки привязки в единицах (25 ед. = 1 метр) |
delay | Число | Временная задержка до спауна в миллисекундах |
duration | Число | Продолжительность спауна в миллисекундах |
{ "type": "spawn", "func": "item", "args": [88704, 0, 0, 0, 1000] }
Аргументы функции: target
, angle
, distance
, delay
, duration
, highlight
, label
Аргумент | Значение | Использование |
---|---|---|
target | true, false | Использование сущности dest вместо loc при определении точки привязки |
angle | Число | Угол поворота относительно точки привязки (допускается отрицательное значение) |
distance | Число | Смещение относительно точки привязки в единицах (25 ед. = 1 метр) |
delay | Число | Временная задержка до спауна в миллисекундах |
duration | Число | Продолжительность спауна в миллисекундах |
highlight | true, false | Разрешить/запретить свечение (создание доп.объекта) |
label | [Строка, Строка], null | Тексты надписей на табличке (заголовок, текст) |
{ "type": "spawn", "func": "marker", "args": [false, 180, 100, 0, 2000, false, ["CENTER", "IN"]] }
Аргументы функции: item
, angle
, distance
, delay
, duration
Аргумент | Значение | Использование |
---|---|---|
item | Число | Идентификатор предмета, см. https://teralore.com/ru/gatherables/ |
angle | Число | Угол поворота относительно точки привязки (допускается отрицательное значение) |
distance | Число | Смещение относительно точки привязки в единицах (25 ед. = 1 метр) |
delay | Число | Временная задержка до спауна в миллисекундах |
duration | Число | Продолжительность спауна в миллисекундах |
{ "type": "spawn", "func": "point", "args": [553, 120, 250, 0, 3000] }
Аргументы функции: item
, offsetAngle
, offsetDistance
, angle
, length
, delay
, duration
Аргумент | Значение | Использование |
---|---|---|
item | Число | Идентификатор предмета, см. https://teralore.com/ru/gatherables/ |
offsetAngle | Число | Угол поворота смещения относительно точки привязки (допускается отрицательное значение) |
offsetDistance | Число | Смещение относительно точки привязки в единицах (25 ед. = 1 метр) |
angle | Число | Угол поворота вектора относительно смещения (допускается отрицательное значение) |
length | Число | Длина вектора в единицах (25 ед. = 1 метр) |
delay | Число | Временная задержка до спауна в миллисекундах |
duration | Число | Продолжительность спауна в миллисекундах |
{ "type": "spawn", "func": "vector", "args": [553, 0, 0, 240, 380, 0, 2000] },
{ "type": "spawn", "func": "vector", "args": [553, 0, 0, 120, 380, 0, 2000] }
Аргументы функции: target
, item
, offsetAngle
, offsetDistance
, interval
, radius
, delay
, duration
Аргумент | Значение | Использование |
---|---|---|
target | true, false | Использование сущности dest вместо loc при определении точки привязки |
item | Число | Идентификатор предмета, см. https://teralore.com/ru/gatherables/ |
offsetAngle | Число | Угол поворота смещения относительно точки привязки (допускается отрицательное значение) |
offsetDistance | Число | Смещение относительно точки привязки в единицах (25 ед. = 1 метр) |
interval | Число | Интервал чередования объектов (меньшее значение - больше объектов) |
radius | Число | Радиус круга в единицах (25 ед. = 1 метр) |
delay | Число | Временная задержка до спауна в миллисекундах |
duration | Число | Продолжительность спауна в миллисекундах |
{ "type": "spawn", "func": "circle", "args": [true, 553, 0, 300, 12, 228, 0, 3000] }
Аргументы функции: degree1
, degree2
, item
, offsetAngle
, offsetDistance
, interval
, radius
, delay
, duration
Аргумент | Значение | Использование |
---|---|---|
degree1 | Число | Градус первой половины полукруга (допускается отрицательное значение) |
degree2 | Число | Градус второй половины полукруга (допускается отрицательное значение) |
item | Число | Идентификатор предмета, см. https://teralore.com/ru/gatherables/ |
offsetAngle | Число | Угол поворота смещения относительно точки привязки (допускается отрицательное значение) |
offsetDistance | Число | Смещение относительно точки привязки в единицах (25 ед. = 1 метр) |
interval | Число | Интервал чередования объектов (меньшее значение - больше объектов) |
radius | Число | Радиус круга в единицах (25 ед. = 1 метр) |
delay | Число | Временная задержка до спауна в миллисекундах |
duration | Число | Продолжительность спауна в миллисекундах |
{ "type": "spawn", "func": "semicircle", "args": [-60, 70, 912, 0, 50, 8, 450, 0, 4000] },
{ "type": "spawn", "func": "semicircle", "args": [120, 250, 912, 0, 50, 8, 450, 0, 4000] }
id | Название |
---|---|
553 | Цилиндр с циазмами |
912 | Яйцо страуса |
445 | Эфра |
537 | Мутировавший гриб |
413 | Сладкий сеноцвет |
476 | Лазурный осколок |
548 | Отражающий корень |
id | Название | Свечение |
---|---|---|
89542 | Диск уничтожения | Синий столб |
89543 | Диск уничтожения | Фиолетовый столб |
206960 | Ящик с дыханием мира | Красный столб |
110684 | Исключительное Парные клинки | Синий столб (без надписи) |
88704 | Памятная монета Велики | Высокий столб |
https://teralore.com/ru/instances/
https://teralore.com/en/instances/