AStages (англ. AStages — «стадии») — мод ступенчатого прогресса: он делит игру на именованные стадии и до их открытия закрывает конкретному игроку предметы, рецепты, измерения и целые моды.[1] Своего контента у мода почти нет — один служебный блок; всё остальное — невидимая работа судьи, который решает, что игроку «пока не положено».[1]
Стадия хранится у каждого игрока персонально: один открыл — у другого всё ещё закрыто. Выдача сопровождается зелёной строкой в чате и надписью по центру экрана, а снять ограничения можно только получив стадию — обойти их «в обход» нельзя.[1]
Как устроено #how
У каждого игрока есть личный набор стадий — он сохраняется вместе с игроком и синхронизируется на клиент.[1] Сервер при каждом действии сверяется с таблицей ограничений: действие запрещено, если у игрока нет стадии, на которой оно разрешено. Ограничения бывают пятнадцати видов — от предметов и рецептов до биомов, чар и лута в сундуках:[1]
- Предметы и моды — запрещает подбирать, держать, надевать, атаковать и просто кликать закрытым предметом, прячет его имя и подсказку, умеет убирать из интерфейса рецептов; можно закрыть как один предмет, так и весь мод разом.[1]
- Рецепты — закрывает рецепты верстака и модовых машин: рецепт не собирается и не показывается, пока стадия не открыта.[1]
- Измерения — запрещает вход в мир, а режимом «доступ по счётчику» даёт ограниченное число попыток входа с сообщением, сколько осталось.[1]
- Руды и структуры — подменяет закрытые руды на другой блок и не даёт входить в постройки и взаимодействовать с ними.[1]
- Мобы и питомцы — запрещает атаковать и взаимодействовать с закрытыми существами, приручать, оседлывать и разводить их.[1]
- Прочее — закрытые интерфейсы («Вы не можете открыть это меню!»), броня, чары, культуры на грядках, эффекты зелий, лут и целые области, где отключены команды и взаимодействие.[1]
Единственный блок мода — служебный astages:limit_movement: невидимая неразрушимая преграда, которой скрипты перегораживают путь. В руках игрока она не встречается.[1]
Как это выглядит в игре #ingame
Чаще всего игрок сталкивается с ограничением на предмет. Закрытый предмет нельзя подобрать с земли — «Вам не удалось подобрать предмет: …», а оказавшись в инвентаре (например, из сундука) он выпадает из рук — «Вы выронили предмет: …».[1] Атаковать и пользоваться им тоже не выйдет: «Вы не умеете атаковать этим предметом: …», «Вы не умеете пользоваться предметом: …», «Вы не умеете добывать этим предметом: …».[1]
Имя закрытого предмета подменяется — по умолчанию на «Незнакомый предмет», а подсказка гласит: «Этот предмет привязан к стадии [<стадия>]».[1] Мод интегрируется с Jade: наведение на закрытый блок покажет «Незнакомый блок» или «Незнакомый предмет», на закрытого моба — «Неизвестное существо!».[1]
Когда стадию выдают, игрок видит красная надпись «Открыто: <стадия>!» по центру экрана и зелёную строку чата «Стадия <стадия> успешно добавлена!» — с этого мгновения все ограничения этой стадии для него исчезают.[2]
Команды #commands
Все команды мода требуют прав оператора (уровень 2), игрокам они недоступны:[1]
- /astages add <игрок> <стадия> — выдать стадию (вариант с двумя флагами silentChat silentTitle отключает сообщения); /astages remove <игрок> <стадия> и /astages remove_all <игрок> — отнять.[1]
- /astages info [игрок] — список стадий игрока, /astages client_info — стадий на клиенте.[1]
- /astages server add|remove|remove_all <стадия> — «серверные» стадии, общие для всех, и /astages server info — их список.[1]
- /astages restrict … и /astages remove_restrict … — быстрые ограничения прямо из игры (предмет в руке, измерение, структура, интерфейс и другие) без перезагрузки.[1]
- /astages timer … — таймеры и счётчики доступа: set_timer, reset_timer, set_access, increase_access, decrease_access, reset_access, reset_all по id ограничения.[1]
- /astages_utils hand|stages|ids — служебные списки: предмет в руке, все стадии сервера, все id.[1]
См. также
Примечания
- По коду AStages 1.4.0 (декомпиляция).
- По серверным настройкам мода.
- По серверным скриптам (KubeJS).