Перейти к основному содержимому

Tycoon

Расширение Tycoon предлагает полноценный игровой режим Zoo Tycoon. Игроки продвигаются по дереву исследований, убивая мобов для разблокировки категорий, наполняя катализаторы ресурсами и запуская попытки исследования предметами топлива. Принадлежащие животные приносят пассивный доход, будучи размещёнными в зоопарке, могут использоваться как маунты во временных измерениях приключений, скрещиваться для получения гибридных яиц, престижироваться ради постоянных бонусов и отправляться в экспедиции на определённое время. Единое меню Control Panel — на 100% управляемое данными, без единого жёстко закодированного визуала — объединяет все системы в 16 вкладках.

Возможности

  • Control Panel — Единое меню FrameLayout в раскладке 4│1│4 (боковые вкладки │ навигация прокруткой │ контент), скопированное с паттерна BTCSky. 16 вкладок (info, bestiary, zoo, research, expeditions, mounts, shop, adventure, prestige, ranking, challenges, breeding, staff, market, contracts, decorations) используют одно и то же окно; контент определяется по вкладке, а под-представления (tab:context, например research:reptiles) наследуют подсветку родительской вкладки. Каждый визуал, заголовок и кнопка берутся из страниц Typewriter — код лишь заполняет живые теги данных и подключает взаимодействия.
  • Дерево исследований — Технологическое дерево по категориям, разблокируемое убийством мобов. Каждому животному требуется катализатор (наполняемый настраиваемыми ресурсными предметами) и предмет топлива для финального броска активации.
  • Пассивная экономика — Размещённые животные зоопарка со временем приносят доход. На доход влияют совместимость с биомом, блоки среды обитания, персонал, декорации и уровень счастья. При повторном подключении происходит оффлайн-накопление дохода.
  • Карта приключений — Исследуйте временное измерение, клонируемое по запросу из шаблонного мира (через BTC-CORE / Advanced Slime Paper). Телепортируйтесь к настроенным чанкам, чтобы открыть их; шкала усталости (увеличиваемая маунтами) истощается во время исследования и принудительно возвращает игрока в начальную точку при нуле. Мир автоматически выгружается, когда становится пустым.
  • Маунты — Катайтесь на своих животных, используя управление ZQSD через перехват STEER_VEHICLE от PacketEvents. Шкала усталости истощается со временем и восстанавливается вне измерений приключений.
  • Слияние — Слияние животных одного вида, запускаемое действием: объединяет двух самых высокоуровневых животных игрока одного вида в инкубируемое яйцо, с настраиваемым шансом повышения редкости и косметической мутации.
  • Разведение — Межвидовое скрещивание по рецептам во вкладке «Разведение». Выберите двух подходящих родителей (сохраняются для каждого игрока во время просмотра), запустите инкубацию согласно настроенному рецепту и заберите вылупившееся потомство, когда оно будет готово.
  • Престиж — Сбросьте животное максимального уровня до 1 уровня ради постоянного бонуса к доходу. Бонус накапливается в зависимости от количества престижей.
  • Магазин доставки — Ротационный торговец-NPC с реальным расписанием (фиксированный интервал вроде 30m/2h/1d, ежедневное время HH:MM или запасной вариант с перезарядкой) и взвешенным пулом предметов. Механика FOMO — ассортимент меняется при каждой ротации.
  • Экспедиции — Отправьте подходящее животное на таймированную пассивную миссию из вкладки «Экспедиции» (пустой слот → выберите животное в под-представлении expeditions:start). Длительность сокращается нанятым Гидом экспедиций. По возвращении вы получаете ресурсы, опыт, предметы-катализаторы или редких бонусных животных.
  • Уровни и опыт животных — У каждого животного свой уровень, кривая опыта и максимальный уровень. Опыт начисляется за использование в качестве маунта, экспедиции и время, проведённое размещённым в зоопарке.
  • Персонализация — Переименовывайте животных, применяйте варианты скинов (на основе ссылочных EntityDefinitions), надевайте аксессуары (шляпа, ошейник, седло).
  • Система счастья — У животных есть уровень счастья от 0 до 100, влияющий на доход. Повышается за счёт подходящих биомов, блоков среды обитания, кормления, персонала и декораций. Снижается из-за перенаселённости.
  • Ежедневные/еженедельные испытания — Ротационные испытания (поймать животное, разместить животное, убить мобов, заработать доход, использовать престиж, исследовать животное) на независимых ежедневных/еженедельных циклах. Забирайте награду во вкладке «Испытания» — деньги и командные награды.
  • Персонал зоопарка — Нанимайте персонал с пассивным эффектом роли: Сборщик дохода (множитель дохода), Смотритель (минимальный порог счастья), Гид экспедиций (ускоряет экспедиции), Исследователь (ускоряет исследования). Требует периодической оплаты содержания; автоматически увольняется при неуплате.
  • Кросс-серверный рейтинг — Рейтинг по общему заработку, количеству животных, суммарному престижу или числу размещённых животных (переключение сортировки во вкладке «Рейтинг»). Синхронизируется по всей сети через Redis pub/sub при наличии TypeWriter-MySqlExtension; иначе используются только игроки этого сервера.
  • Рынок игроков — Выставляйте своих животных на продажу и покупайте у других игроков, в том числе на других серверах. Протокол Redis pub/sub (list/unlist/buy/confirm/deny) обеспечивает авторитет сервера-владельца объявления над сделкой, с возвратом средств покупателю при отказе или разрыве соединения. Без Redis используется только локальный рынок.
  • Контракты на поставку животных — Сдавайте животных, соответствующих виду/категории, минимальному уровню и количеству, за награду деньгами и командами. Контракты могут быть одноразовыми или повторяемыми.
  • Декорации и вольеры — Размещайте настоящие блоки как декорации зоопарка из вкладки «Декорации», каждая из которых даёт бонус к счастью и/или доходу, с лимитом на игрока. Убирайте их, чтобы освободить слот.

Архитектура

Записи

  • ОпределенияAnimal Definition: конфигурация вида (редкость, предметы-катализаторы, топливо, экономика, слияние, характеристики маунта, варианты модели).
  • МанифестыResearch Category: папка технологического дерева с требованиями по убийствам мобов. Research Recipe: рецепт исследования катализатор/топливо. Adventure Map: шаблон измерения, сетка чанков, усталость по умолчанию. Delivery Shop: расписание ротации торговца и пул предметов. Breeding Recipe: пара родительских видов → потомство. Challenge: ежедневная/еженедельная цель и награда. Staff: нанимаемая роль, стоимость и содержание. Animal Contract: требование поставки и награда. Decoration: размещаемый блок, стоимость и бонусы. Control Panel Configuration: шаблоны слотов динамического списка для каждой вкладки.
  • ДействияControl Panel: открывает меню 4│1│4. Catalyst Activate: использовать предмет топлива для попытки исследования. Category Unlock: разблокировать категорию по достижении порога убийств. Revenue Collect: собрать накопленный доход зоопарка. Animal XP: начислить опыт принадлежащим животным. Fusion: слияние животных одного вида в инкубируемое яйцо. Prestige: сбросить животное максимального уровня ради постоянного бонуса. Expedition Start: отправить животное на таймированную миссию. Customize Animal: переименовать, изменить скин и надеть аксессуары.
  • АртефактыPlayer Data: профиль зоопарка игрока (животные, доход, исследования, персонал, испытания, декорации). Market Listings: активные объявления рынка игроков.

Быстрый старт

Это расширение полностью управляется данными — ничего не отображается без содержимого страниц (Pages):

  • 1. Создайте страницу Control Panel — Создайте запись tycoon_menu с layoutPool типа FrameLayout: фрейм sidebar (вкладки, кнопки tycoon_tab:<id>), фрейм nav (прокрутка) и по одной раскладке <tabId>_content на вкладку с кнопками tycoon_button: для динамического контента.
  • 2. Настройте динамические шаблоны — Заполните tycoon_menu_config шаблонами SlotItemConfig для каждого списка, используемого вашими страницами (записи бестиария, животные исследования, строки рейтинга, объявления рынка, …). Любой оставленный пустым шаблон отображается как пустой слот.
  • 3. Определите контент — Начните с animal_definition, research_category и adventure_map для основного игрового цикла, затем добавьте tycoon_breeding_recipe, tycoon_challenge, tycoon_staff, tycoon_decoration, tycoon_animal_contract и delivery_shop для дополнительных систем, которые вы хотите включить.

Команды

Игрок

КомандаОписаниеPermission
/zooОткрывает Control Panel на вкладке Infoнет
/zoo visit <player>Телепортирует к зоопарку другого игроканет
/adventureОткрывает Control Panel на вкладке Приключениянет
/mountsОткрывает Control Panel на вкладке Маунтынет
/collectВручную собирает накопленный доходнет

Admin

Все подкоманды /tycoon (кроме внутренних действий самого GUI) требуют tycoon.admin.

КомандаОписаниеPermission
/tycoon give <player> <animalId>Выдать животное игрокуtycoon.admin
/tycoon remove <player> <animalId>Удалить животноеtycoon.admin
/tycoon setlevel <player> <animalId> <level>Установить уровень животногоtycoon.admin
/tycoon info [player]Показать профиль tycoon игрокаtycoon.admin
/tycoon reloadПринудительно сохранить все профилиtycoon.admin
/tycoon spawnshop <shopId>Принудительно заспавнить магазин доставкиtycoon.admin
/tycoon resetfatigue [player]Сбросить усталость от приключенийtycoon.admin
/tycoon unlockcategory <player> <catId>Разблокировать категорию исследованийtycoon.admin

Каждый клик по кнопке Control Panel также проходит через /tycoon <action> ... (например, cp, list_scroll, market_buy, breed_start) — эти команды генерируются самим меню и доступны любому игроку в рамках его собственной сессии; они не предназначены для ручного использования.

Плейсхолдеры

Префикс: %typewriter_tycoon_*%

Глобальная статистика

ПлейсхолдерОписание
%typewriter_tycoon_total_animals%Всего животных в собственности
%typewriter_tycoon_placed_animals%Сейчас размещено в зоопарке
%typewriter_tycoon_unplaced_animals%В собственности, но не размещено
%typewriter_tycoon_total_revenue%Доход за всё время (отформатированный)
%typewriter_tycoon_total_revenue_raw%Доход за всё время (необработанное число)
%typewriter_tycoon_categories_unlocked%Разблокированные категории исследований
%typewriter_tycoon_categories_total%Всего категорий исследований
%typewriter_tycoon_categories_locked%Заблокированные категории исследований
%typewriter_tycoon_milestones_count%Завершённые вехи коллекции
%typewriter_tycoon_prestige_bonuses_count%Активные бонусы престижа
%typewriter_tycoon_expeditions_active%Активные экспедиции
%typewriter_tycoon_expeditions_completed%Завершённые экспедиции (в настоящее время всегда 0)
%typewriter_tycoon_zoo_visitors%Всего посетителей зоопарка
%typewriter_tycoon_active_mount_id%ID текущего выбранного маунта
%typewriter_tycoon_last_revenue_collect%Метка времени последнего сбора дохода

По категориям

ПлейсхолдерОписание
%typewriter_tycoon_category_<id>_unlocked%Разблокирована ли категория
%typewriter_tycoon_category_<id>_mobs_killed%Убито мобов к разблокировке
%typewriter_tycoon_category_<id>_required_kills%Требуется убийств для разблокировки
%typewriter_tycoon_category_<id>_progress_percent%Процент прогресса разблокировки
%typewriter_tycoon_category_<id>_name%Отображаемое имя категории

По животным

ПлейсхолдерОписание
%typewriter_tycoon_animal_<id>_level%Уровень животного
%typewriter_tycoon_animal_<id>_owned%Владеет животным (true/false)
%typewriter_tycoon_animal_<id>_prestige%Количество престижей
%typewriter_tycoon_animal_<id>_xp%Текущий опыт
%typewriter_tycoon_animal_<id>_rarity%Название редкости
%typewriter_tycoon_animal_<id>_rarity_color%HEX-цвет редкости
%typewriter_tycoon_animal_<id>_placed%Размещено в зоопарке (true/false)
%typewriter_tycoon_animal_<id>_custom_name%Пользовательское имя
%typewriter_tycoon_animal_<id>_is_mountable%Можно оседлать (true/false)
%typewriter_tycoon_animal_<id>_mount_speed%Множитель скорости в качестве маунта
%typewriter_tycoon_animal_<id>_fatigue_capacity%Запас усталости (секунды)
%typewriter_tycoon_animal_<id>_max_level%Максимальный уровень
%typewriter_tycoon_animal_<id>_revenue_rate%Базовая ставка дохода
%typewriter_tycoon_animal_<id>_fusion_level%Минимальный уровень для слияния
%typewriter_tycoon_animal_<id>_display_name%Отображаемое имя
%typewriter_tycoon_animal_<id>_catalyst_progress%Процент заполнения катализатора
%typewriter_tycoon_animal_<id>_catalyst_power%Текущая мощность катализатора
%typewriter_tycoon_animal_<id>_catalyst_items%Количество переданных типов предметов

Информация о размещённом животном

ПлейсхолдерОписание
%typewriter_tycoon_placed_<id>_happiness%Уровень счастья
%typewriter_tycoon_placed_<id>_biome%Текущий биом
%typewriter_tycoon_placed_<id>_world%Название мира
%typewriter_tycoon_placed_<id>_coords%Координаты (x, y, z)
%typewriter_tycoon_placed_<id>_chunk%Чанк (x, z)

Престиж и экспедиции

ПлейсхолдерОписание
%typewriter_tycoon_prestige_<id>%Процент бонуса престижа
%typewriter_tycoon_expedition_count%Общее количество экспедиций
%typewriter_tycoon_expedition_<n>_animal%ID животного в слоте экспедиции N
%typewriter_tycoon_expedition_<n>_remaining_seconds%Секунд до возвращения
%typewriter_tycoon_expedition_<n>_remaining_minutes%Минут до возвращения
%typewriter_tycoon_expedition_<n>_duration_hours%Общая длительность в часах
%typewriter_tycoon_expedition_<n>_ready%Готово к сбору (true/false)

Права

PermissionОписание
tycoon.adminАдминистрирование системы tycoon (все подкоманды admin /tycoon).

Зависимости

ExtensionОбязательноНазначение
EntityExtensionОбязательноОпределения сущностей для моделей животных
Typewriter-GUIExtensionОбязательноРендеринг Control Panel (FrameLayout, кнопки, управляемые данными)
TypeWriter-VehicleExtensionОпциональноСистема маунтов (опционально, на основе PacketEvents)
TypeWriter-RPGCOREExtensionОпциональноОграничение лимитов поимки по уровню профессии
TypeWriter-TemporaryDimensionExtensionОпциональноКлонирование измерения карты приключений (SlimeWorldManager)
TypeWriter-ShopsExtensionОпциональноАбстракции экономики (Vault/Points/Placeholder)
TypeWriter-MySqlExtensionОпциональноRedis pub/sub для кросс-серверного рейтинга и рынка игроков