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.