Контракты: contract

Текущий контракт, его тип и события начала и завершения.

mod.game.contract описывает текущий контракт — игровое взаимодействие, отслеживаемое пакетами контрактов. В конструкторе вызовите mod.game.initialize('contract').

Свойства

active показывает, активен ли контракт; id — его идентификатор; type — тип. Отдельных публичных методов управления контрактом нет: этот подмодуль отслеживает состояние.

События

begin(type, id) вызывается при начале нового контракта по S_REQUEST_CONTRACT. end(how) — при завершении, где how принимает:

Значение Пакет
accept S_ACCEPT_CONTRACT
reject S_REJECT_CONTRACT
cancel S_CANCEL_CONTRACT
mod.game.initialize('contract');
const onBegin = (type, id) => mod.log(`Contract ${id}, type ${type}`);
mod.game.contract.on('begin', onBegin);
// Remove onBegin in your destructor.

Некоторые серверные взаимодействия заканчиваются без соответствующего S_*_CONTRACT. Исходная библиотека прямо отмечает, что в таких случаях состояние может не обновиться корректно; не используйте active как универсальную гарантию открытого игрового интерфейса.

Источник: mods/tera-game-state/doc/contract.md.