
EcoTale 任务
每日与每周任务系统 — 击杀怪物、挖掘矿石、砍伐树木、收获作物,配备自动生成的奖励池、等级适配的奖励,以及里程碑通知。
查看大图📜 EcoTale Quests
Hytale 服务器的每日与每周任务系统
为玩家提供每日和每周任务——击杀怪物、开采矿石、砍伐树木、收获作物、赚取货币、获得经验——基于 46 个以上任务候选自动生成,包含通配目标、等级缩放奖励、一个原生 GUI 面板、一个管理员设置面板,任务名称完全本地化,并支持实时聊天进度通知。
✨ 功能特性
| 功能 | 描述 |
|---|---|
| 📋 每日任务 | 每天从生成的池中提供最多 10 个新任务(同时激活 4 个) |
| 📅 每周任务 | 每周最多 5 个任务,奖励更丰厚(同时激活 2 个) |
| ⚔️ 击杀怪物 | 11 种怪物类型——僵尸、骷髅、蜘蛛、碎颅、奎比克、斯卡拉克、费兰、流浪者、迅猛龙、熔岩傀儡 + 任意怪物通配符 |
| ⛏️ 开采矿石 | 8 种矿石类型——铜、铁、银、金、钴、翡翠、秘银 + 任意矿石通配符 |
| 🪓 砍伐树木 | 7 种树木类型——橡木、桦木、松木、柳木、红木、丛林木 + 任意木材通配符 |
| 🌾 收获作物 | 10 种作物类型——小麦、马铃薯、胡萝卜、浆果、番茄、洋葱、南瓜、玉米、西瓜 + 任意作物通配符 |
| 💰 赚取货币 | 元任务——从任何来源赚取一定总量的货币 |
| ✨ 获得经验 | 元任务——从任何来源获得 RPG 经验值 |
| 🎯 通配符目标 | any_mob、any_ore、any_wood、any_crop — 匹配该类型的任意操作 |
| 🖥️ GUI 面板 | 原生任务面板,带有每日/每周标签页、接受/放弃/信息按钮 |
| 🛠️ 管理员面板 | 管理员设置 GUI — 切换模块、重载配置、保存设置 |
| 📊 本地化进度 | 聊天中显示完全翻译的任务名称(例如 [Q] 任务:开采铁矿:3/22) |
| 🎲 自动生成 | 46 个以上任务候选,池子每天/每周自动生成 |
| 📈 等级缩放 | 任务难度和奖励随玩家的 RPG 等级缩放 |
| 🏅 里程碑提醒 | 在进度达到 25%、50%、75% 时发送额外通知 |
| 🛡️ 滥用防护 | 接受冷却、世界过滤、重复任务预防、强制过期 |
| 💾 JSON 存储 | 每个玩家的任务数据保存为 JSON 文件 |
| 🌍 本地化 | 支持俄语、英语、巴西葡萄牙语、法语、德语、西班牙语——所有任务名称、目标和 UI 元素均完全翻译 |
| 🔧 热重载 | /quests reload — 无需重启服务器 |
| 🏅 冒险家等级 | E→S 等级进阶、任务上的等级徽章、等级锁定任务 |
| ⏰ 任务计时器 | 可配置的任务时间限制,带有倒计时显示 |
| 📌 任务板 | 可放置于墙上的物理任务板方块 — 按下 [F] 键与之交互以打开任务界面 |
📦 前置依赖
| 依赖项 | 必需 | 描述 |
|---|---|---|
| Ecotale ≥ 1.0.0 | ✅ | 经济与货币系统 |
| RPG Leveling ≥ 0.2.0 | ✅ | 怪物奖励的等级缩放 |
| EconomyAPI ≥ 1.4.5 | ✅ | 经济与货币系统 |
| MMO Skill Tree ≥ 0.11.2 | ✅ | 怪物奖励的等级缩放 |
| Endless Leveling ≥ 5.13 | ✅ | 怪物奖励的等级缩放 |
🚀 快速开始
# 1. 将 JAR 文件复制到服务器的 mods/ 文件夹
cp EcoTaleQuests-1.3.1.jar /server/mods/
# 2. 确保 Ecotale-1.0.7.jar 也在 mods/ 中
# 3. 启动服务器 — 配置文件与语言文件会自动创建
# 4. 根据需要自定义任务模板
nano mods/com.crystalrealm_EcoTaleQuests/EcoTaleQuests.json
就这么简单。 任务池会在首次启动时生成。玩家可以立即浏览并接受任务。
🎮 命令
| 命令 | 描述 | 权限 |
|---|---|---|
/quests tracker |
切换玩家的 HUD 显示 (开/关) | |
/quests |
显示当前活跃任务及其进度 | ecotalequests.command.quests |
/quests available |
浏览可接受的任务 | ecotalequests.command.quests |
/quests accept |
从池中接受一个任务 | ecotalequests.command.quests |
/quests abandon |
放弃一个活跃任务 | ecotalequests.command.quests |
/quests info |
查看任务的详细信息 | ecotalequests.command.quests |
/quests gui |
打开任务 GUI 面板 | ecotalequests.use |
/quests admin |
打开管理员设置面板 | ecotalequests.admin.settings |
/quests stats |
查看你的任务完成统计信息 | ecotalequests.use |
/quests rank |
查看你的冒险家等级及进度 | ecotalequests.use |
/quests reload |
重载配置与语言文件 | ecotalequests.admin.reload |
/quests lang |
切换语言 (en/ru/pt_br/fr/de/es) | — |
/quests help |
命令参考帮助 | — |
[!NOTE] 任务 ID 使用 8 字符的短标识符(例如
a3f7b2c1)。
🖥️ GUI 面板
玩家任务面板 (/quests gui)
基于 Hytale 的 InteractiveCustomUIPage API 和 .ui 布局构建的原生 GUI:
- 每日 标签页 — 显示可用的每日任务,带有接受/放弃/信息按钮
- 每周 标签页 — 显示可用的每周任务,带有接受/放弃/信息按钮
- 每个活跃任务都会显示进度条和状态
面板在接受或放弃任务后会自动刷新。
管理员设置面板 (/quests admin)
仅限管理员使用的服务器配置面板:
- 开关模块(怪物击杀、采矿、伐木、农耕、货币、经验)
- 重载 — 重载配置与语言文件
- 刷新 — 重新生成任务池
- 保存 — 将当前设置持久化到磁盘
🔐 权限
基础权限 — 所有玩家:
ecotalequests.use # /quests, available, accept, abandon, info, gui, stats
VIP 等级 (可在 VipTiers 中配置):
ecotalequests.multiplier.vip # ×1.25 任务奖励倍率 (VIP)
ecotalequests.multiplier.mvp # ×1.50 任务奖励倍率 (MVP)
ecotalequests.multiplier.mvp_plus # ×2.00 任务奖励倍率 (MVP+)
管理员权限:
ecotalequests.admin.reload # /quests reload
ecotalequests.admin.settings # /quests admin (settings panel)
ecotalequests.* # 所有权限
⚙️ 配置
配置文件路径:mods/com.crystalrealm_EcoTaleQuests/EcoTaleQuests.json
📋 通用与限制设置
{
"General": {
"DebugMode": false,
"Language": "ru",
"NotifyOnProgress": true,
"NotifyOnComplete": true,
"AutoSaveIntervalMinutes": 5
},
"QuestLimits": {
"MaxDailyActive": 4,
"MaxWeeklyActive": 2,
"DailyPoolSize": 10,
"WeeklyPoolSize": 5,
"MaxAbandonPerDay": 3,
"DailyResetTime": "00:00",
"WeeklyResetDay": "MONDAY"
}
}
| 键 | 默认值 | 描述 |
|---|---|---|
MaxDailyActive |
4 | 玩家可同时拥有的最大每日任务数量 |
MaxWeeklyActive |
2 | 玩家可同时拥有的最大每周任务数量 |
DailyPoolSize |
10 | 每天生成多少个每日任务 |
WeeklyPoolSize |
5 | 每周生成多少个每周任务 |
MaxAbandonPerDay |
3 | 每天最多可以放弃多少个任务 |
DailyResetTime |
00:00 | 每日任务池刷新的时间 |
WeeklyResetDay |
MONDAY | 每周任务池刷新的星期几 |
🎲 任务生成模板
每个模板定义一个可能出现在任务池中的任务:
{
"Generation": {
"mobTemplates": [
{ "target": "Kweebec", "minAmount": 5, "maxAmount": 15 },
{ "target": "Trork", "minAmount": 3, "maxAmount": 10 },
{ "target": "Scarak", "minAmount": 5, "maxAmount": 20 },
{ "target": "Feran", "minAmount": 3, "maxAmount": 12 },
{ "target": "Fen_Stalker", "minAmount": 2, "maxAmount": 8 },
{ "target": "Void_Dragon", "minAmount": 1, "maxAmount": 3 }
],
"oreTemplates": [
{ "target": "copper", "minAmount": 10, "maxAmount": 30 },
{ "target": "iron", "minAmount": 8, "maxAmount": 25 },
{ "target": "gold", "minAmount": 5, "maxAmount": 15 },
{ "target": "cobalt", "minAmount": 3, "maxAmount": 10 }
],
"woodTemplates": [
{ "target": "oak", "minAmount": 15, "maxAmount": 40 },
{ "target": "birch", "minAmount": 15, "maxAmount": 40 },
{ "target": "pine", "minAmount": 10, "maxAmount": 30 },
{ "target": "ebony", "minAmount": 5, "maxAmount": 15 }
],
"cropTemplates": [
{ "target": "wheat", "minAmount": 20, "maxAmount": 50 },
{ "target": "pumpkin", "minAmount": 10, "maxAmount": 30 },
{ "target": "berry", "minAmount": 15, "maxAmount": 40 }
]
}
}
生成器会从这些模板中随机选取,应用等级缩放调整数量,并创建任务目标。
💰 奖励配置
{
"Rewards": {
"dailyBaseCoins": 15.0,
"weeklyBaseCoins": 75.0,
"bonusXpPerQuest": 50,
"levelScalingFactor": 0.08,
"vipMultiplier": 1.25,
"premiumMultiplier": 1.5
}
}
| 键 | 默认值 | 描述 |
|---|---|---|
dailyBaseCoins |
15.0 | 每日任务的基础货币奖励 |
weeklyBaseCoins |
75.0 | 每周任务的基础货币奖励 |
bonusXpPerQuest |
50 | 每个完成的任务奖励的额外 RPG 经验值 |
levelScalingFactor |
0.08 | 每级玩家等级的奖励倍率 (等级 × 系数) |
奖励计算公式: 最终奖励 = 基础奖励 × (1 + 等级 × 系数)
🛡️ 防护设置
{
"Protection": {
"acceptCooldownSeconds": 30,
"allowedWorlds": [],
"blockAbuseInCreative": true
}
}
| 键 | 默认值 | 描述 |
|---|---|---|
acceptCooldownSeconds |
30 | 接受任务之间的冷却时间(秒) |
allowedWorlds |
[] (所有) |
将任务进度限制在特定世界中 |
blockAbuseInCreative |
true | 阻止在创造模式下推进任务进度 |
📝 任务生命周期
┌─────────────┐ accept ┌────────────┐ progress ┌───────────────┐
│ AVAILABLE │────────────▶│ ACTIVE │─────────────▶│ COMPLETED │
│ (in pool) │ │ (tracking) │ (100%) │ (rewarded!) │
└─────────────┘ └──────┬──────┘ └───────────────┘
│
abandon │ expire
▼
┌──────────────┐
│ ABANDONED / │
│ EXPIRED │
└──────────────┘
- 池子生成 — 服务器根据配置模板生成每日/每周任务池
- 浏览与接受 — 玩家查看可用任务(GUI 或聊天)并接受
- 进度追踪 — 通过 ECS 事件和余额轮询自动追踪操作
- 通知 — 玩家在每次操作时收到聊天消息,并在 25/50/75% 进度时收到里程碑通知
- 完成与奖励 — 进度达到 100% 时,通过 Ecotale API 发放货币奖励,并给予额外经验值
- 过期 — 未完成的任务在下次每日/每周重置时过期
关键设计决策
- ECS 事件模式 — 方块监听器使用 Hytale 的
EntityEventSystem<EntityStore, Event>,结合ArchetypeChunk来解析玩家实体 - 反射优先 — 所有对 Store、PlayerRef、Message 的调用都使用反射以保证桩兼容性
- Ecotale API (静态) — 通过
com.ecotale.api.EcotaleAPI(来自 Ecotale-1.0.7 的静态 API)进行奖励发放和货币追踪 - 余额轮询 —
CoinQuestListener每 2 秒检查一次余额——如果增加,差额计入收入 - RPG API 自动检测 — 尝试调用
get()、getInstance()、getAPI()方法以实现跨版本兼容 - JSON 存储 — 基于文件的持久化(
quests/存储池子,players/<uuid>.json存储进度)——无需数据库 - 不可变任务 —
Quest对象不可变;仅PlayerQuestData追踪可变进度状态 - HyUI GUI — 带有接受/放弃按钮、进度条、自动刷新的标签化任务面板
🔌 EcoTale 生态系统
EcoTaleQuests 是 CrystalRealm EcoTale 插件家族的一员:
| 插件 | 描述 |
|---|---|
| EcoTaleIncome | 通过击杀怪物、采矿、伐木、农耕赚取货币 |
| EcoTaleBanking | 银行系统——存款、贷款、信用评分、利息 |
| EcoTaleQuests | 每日与每周任务系统 ← 当前页面 |
🌍 本地化
内置支持 6 种语言:英语、俄语、巴西葡萄牙语、法语、德语、西班牙语。语言文件在首次启动时自动生成。
每个玩家可单独切换语言:
/quests lang en
/quests lang ru
/quests lang pt_br
/quests lang fr
/quests lang de
/quests lang es
快捷别名同样有效:/quests langen、/quests langru、/quests langpt、/quests langfr、/quests langde、/quests langes
所有任务名称均已完全本地化。 玩家在 GUI 和聊天中看到的都是翻译后的任务描述(任务:开采铁矿 ×24、任务:击杀任意怪物 ×22),而非原始的内部 ID。
包含 100 多个本地化键,例如:
quest.completed/quest.action_progress— 进度和完成消息quest.desc.*— 所有 6 种任务类型的描述quest.type.*— 类别名称(怪物、矿石、木材、作物、货币、经验)target.*— 40 多个目标(怪物、矿石、树木、作物),包括通配符(任意怪物、任意矿石……)cmd.*— 命令反馈gui.*— GUI 面板元素
自定义翻译: 编辑 mods/com.crystalrealm_EcoTaleQuests/lang/ 下生成的 JSON 文件即可。
⚠️ 问题反馈与功能请求
请通过 GitHub Issues 报告任何 Bug、问题或功能建议。 这有助于保持反馈的条理性,并使我们能够更快地追踪和修复问题。
📄 许可证
本项目使用 MIT 许可证授权——详情请参阅 LICENSE 文件。
由 CrystalRealm 为 Hytale 社区 ❤️ 制作
显示 1-12 条,共 12 条
以上为资源接口提供的文件记录。安装时请在客户端确认文件、游戏版本及依赖。










还没有人评论,去客户端里说两句吧。
评论在新手盒子客户端中发表,这里同步展示。