跳到主要内容

Tycoon

Tycoon 扩展提供完整的 Zoo Tycoon 游戏模式。玩家通过击杀怪物解锁类别,在研究树中不断推进;用资源喂养催化剂,并用燃料物品触发研究尝试。已拥有的动物放置到动物园后会产生被动收入,可在临时冒险维度中作为坐骑骑乘,可培育成混种蛋,可转生以获得永久加成,还可派往限时探险。一个单一的 Control Panel 菜单——100% 数据驱动,没有任何硬编码的视觉元素——在 16 个标签页中容纳了所有系统。

功能

  • Control Panel — 一个 4│1│4 布局(侧边栏标签 │ 滚动导航 │ 内容)的单一 FrameLayout 菜单,克隆自 BTCSky 模式。16 个标签页(info、bestiary、zoo、research、expeditions、mounts、shop、adventure、prestige、ranking、challenges、breeding、staff、market、contracts、decorations)共用同一窗口;内容按标签页解析,子视图(tab:context,例如 research:reptiles)沿用父标签页的高亮状态。每一处视觉效果、标题和按钮都来自 Typewriter Pages —— 代码只负责填充实时数据标签并绑定交互。
  • 研究树 — 按类别划分的科技树,通过击杀怪物解锁。每种动物都需要一个催化剂(用可配置的资源物品喂养)和一个燃料物品来进行最终的激活判定。
  • 被动经济 — 已放置的动物园动物会随时间产生收入。生物群系亲和度、栖息地方块、员工、装饰品和快乐值都会影响收入。重新连接时会进行离线收益结算。
  • 冒险地图 — 探索一个按需从模板世界克隆出的临时维度(通过 BTC-CORE / Advanced Slime Paper)。传送到已配置的区块以发现它们;疲劳值(可被坐骑延长)会在探索过程中消耗,归零时会强制传送回起点。世界在无人时会自动卸载。
  • 坐骑 — 通过 PacketEvents 拦截 STEER_VEHICLE 数据包,使用 ZQSD 控制骑乘已拥有的动物。疲劳值会随时间消耗,在冒险维度之外会恢复。
  • 融合 — 由动作触发的同种融合:将玩家同一物种中等级最高的两只动物合并为一颗孵化中的蛋,并有可配置的稀有度提升与外观突变几率。
  • 繁殖 — 在「繁殖」标签页中进行的配方驱动跨物种繁殖。选择两只符合条件的父母动物(浏览期间按玩家持久保存),启动与已配置配方匹配的孵化,孵化完成后领取后代。
  • 转生 — 将满级动物重置为 1 级,以获得永久性收入加成。加成会随转生次数叠加。
  • 配送商店 — 拥有真实排期(固定间隔如 30m/2h/1d、每日固定时间 HH:MM,或作为后备的冷却时间)和加权物品池的轮换 NPC 商人。FOMO 机制——库存每次轮换都会变化。
  • 探险 — 从「探险」标签页派遣符合条件的动物执行限时挂机任务(空位 → 在 expeditions:start 子视图中选择动物)。雇佣探险向导可缩短时长。返回时会带回资源、经验、催化剂物品或稀有奖励动物。
  • 动物等级与经验 — 每只动物都有各自的等级、经验曲线和最高等级。可通过骑乘、探险以及在动物园中放置的时长获得经验。
  • 个性化 — 重命名动物、应用外观变体(基于引用的 EntityDefinitions)、装备配饰(帽子、项圈、鞍具)。
  • 快乐值系统 — 动物拥有影响收入的 0–100 快乐值。匹配的生物群系、栖息地方块、喂食、员工和装饰品都能提升快乐值;过度拥挤则会降低快乐值。
  • 每日/每周挑战 — 在各自独立的每日/每周周期中轮换的挑战(捕获一只动物、放置一只动物、击杀怪物、赚取收入、转生、研究一种动物)。在「挑战」标签页领取金钱和命令奖励。
  • 动物园员工 — 雇佣拥有被动角色效果的员工:收入收集员(收入倍率)、饲养员(快乐值下限)、探险向导(加快探险速度)、研究员(加快研究速度)。会定期收取维护费;欠费则自动解雇。
  • 跨服排行榜 — 按总收入、拥有动物数、总转生次数或已放置动物数排名(在「排行榜」标签页循环切换排序方式)。当存在 TypeWriter-MySqlExtension 时,通过 Redis pub/sub 在全网同步;否则回退为仅显示本服玩家。
  • 玩家市场 — 上架已拥有的动物出售,并向其他玩家(包括跨服)购买。Redis pub/sub 协议(list/unlist/buy/confirm/deny)确保挂单所属服务器对交易拥有权威控制,在拒绝或断线时向买家退款。没有 Redis 时会回退为仅限本服的市场。
  • 动物交付合同 — 交出符合物种/类别、最低等级和数量要求的动物,以换取金钱 + 命令奖励。合同可以是一次性的,也可以是可重复的。
  • 装饰与围栏 — 在「装饰」标签页放置真实方块作为动物园装饰,每种装饰都会带来快乐值和/或收入加成,并按玩家设有上限。移除装饰可回收该槽位。

架构

条目

快速开始

此扩展完全由数据驱动——没有 Pages 内容就不会渲染任何东西:

  • 1. 构建 Control Panel 页面 — 创建一个带有 FrameLayout 类型 layoutPooltycoon_menu 条目:一个 sidebar frame(标签页、tycoon_tab:<id> 按钮)、一个 nav frame(滚动),以及每个标签页一个使用 tycoon_button: 按钮实现动态内容的 <tabId>_content 布局。
  • 2. 配置动态模板 — 在 tycoon_menu_config 中为页面使用的每个列表(图鉴条目、研究动物、排行榜行、市场挂单……)填写 SlotItemConfig 模板。任何留空的模板都会渲染为空槽位。
  • 3. 定义内容 — 先从 animal_definitionresearch_categoryadventure_map 开始搭建核心循环,然后根据需要启用的额外系统添加 tycoon_breeding_recipetycoon_challengetycoon_stafftycoon_decorationtycoon_animal_contractdelivery_shop

命令

玩家

命令说明Permission
/zoo在 Info 标签页打开 Control Panel
/zoo visit <player>传送到另一位玩家的动物园
/adventure在冒险标签页打开 Control Panel
/mounts在坐骑标签页打开 Control Panel
/collect手动收取累积收入

Admin

除 GUI 自身的内部动作外,所有 /tycoon 子命令都需要 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> ...(例如 cplist_scrollmarket_buybreed_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%稀有度十六进制颜色
%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%探险槽位 N 中的动物 ID
%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 系统(所有 /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