EcotaleCoins - 实体货币

EcotaleCoins - 实体货币

物理硬币物品和银行系统,适用于Ecotale经济体系。玩家在游戏世界中收集硬币,并将其存入银行。

游戏玩法

EcotaleCoins - 海拓尔游戏币实体化模组

物理硬币物品和银行系统,用于Ecotale经济体系。玩家可以在世界中收集硬币并将其存入银行。

版本 作者 依赖

截图

银行界面

银行界面

实物硬币

实物硬币

功能特性

实体货币

  • 6种硬币面额 - 铜币(COPPER)、铁币(IRON)、钴币(COBALT)、金币(GOLD)、秘银币(MITHRIL)、精金币(ADAMANTITE)
  • 世界掉落 - 安装EcotaleJobs后,怪物会掉落硬币
  • 最优拆分 - 大数额自动转换为最高面额
  • 拾取系统 - 走过硬币即可拾取

银行系统

  • 安全存储 - 银行余额与背包中的硬币分开管理
  • 存入/取出 - 在银行和实物硬币之间自由转换
  • 兑换 - 在不同面额间进行兑换
  • 合并 - 将小面额硬币合并为大面额

API

  • 完整的提供程序API,供其他插件使用
  • 可在实体位置掉落硬币
  • 安全的交易处理

安装方法

  1. 首先安装 Ecotale
  2. 下载 EcotaleCoins-1.0.0.jar
  3. 放入Hytale的 mods/ 文件夹
  4. 启动服务器

首次启动行为

首次安装时,插件会将硬币资产解压到 mods/Ecotale_EcotaleCoins/ 目录。此举将创建一个资产包,Hytale需要加载该资产包。

服务器在解压资产后将自动重启一次。 这是正常行为——Hytale需要重启才能注册新的资产包。

[EcotaleCoins] 检测到首次设置。正在重启服务器以加载资产...

重启后,硬币即可正常使用。此操作仅会进行一次。

指令

指令 描述 权限
/bank 打开银行界面 ecotale.ecotalecoins.command.bank
/bank deposit amount all 将硬币存入银行 ecotale.ecotalecoins.command.bank.deposit
/bank withdraw amount all 从银行取出硬币 ecotale.ecotalecoins.command.bank.withdraw

自定义

所有硬币资产均解压至 mods/Ecotale_EcotaleCoins/ 目录,可进行修改。

纹理自定义

位于 Common/Items/Currency/Coins/ 目录:

文件 描述
Coin_Copper.png 铜币纹理(64x64)
Coin_Iron.png 铁币纹理
Coin_Cobalt.png 钴币纹理
Coin_Gold.png 金币纹理
Coin_Mithril.png 秘银币纹理
Coin_Adamantite.png 精金币纹理

自定义方法: 将任意PNG文件替换为你自己的64x64纹理,然后重启服务器。

模型自定义

文件 描述
Coin.blockymodel 掉落硬币的3D模型
Coin_Held.blockymodel 手持/物品栏硬币模型

图标自定义

位于 Common/Icons/Items/Coins/ 目录——这些图标会显示在物品栏界面中。


硬币价值

硬币 基础价值 相对价值
铜币(COPPER) 1 1枚硬币
铁币(IRON) 10 10铜币
钴币(COBALT) 100 10铁币
金币(GOLD) 1,000 10钴币
精金币(ADAMANTITE) 10,000 10金币
秘银币(MITHRIL) 100,000 10精金币

配置说明

注意: EcotaleCoins 没有配置文件。硬币价值定义在 CoinType.java 枚举中,若不重新编译则无法更改。

如果需要可配置的硬币价值,请提交功能请求或修改 CoinType.java 文件:

public enum CoinType {
    COPPER("Coin_Copper", 1, "Copper"),
    IRON("Coin_Iron", 10, "Iron"),
    COBALT("Coin_Cobalt", 100, "Cobalt"),
    GOLD("Coin_Gold", 1_000, "Gold"),
    ADAMANTITE("Coin_Adamantite", 10_000, "Adamantite");
    MITHRIL("Coin_Mithril", 100_000, "Mithril"),
    // ...
}

API使用示例

import com.ecotale.api.EcotaleAPI;
import com.ecotale.api.PhysicalCoinsProvider;

// 检查硬币附加组件是否可用
if (EcotaleAPI.isPhysicalCoinsAvailable()) {
    PhysicalCoinsProvider coins = EcotaleAPI.getPhysicalCoins();

    // 在实体位置掉落硬币
    coins.dropCoinsAtEntity(entityRef, store, commandBuffer, 500L);
}

从源码构建

前置条件: 将JAR文件放入 libs/ 文件夹:

  • hytale-server.jar(Hytale专用服务器)
  • Ecotale-1.0.0.jar(来自 Ecotale 项目)
./gradlew jar

输出文件:build/libs/EcotaleCoins-1.0.0.jar

许可证

MIT许可证 - 2026 Tera-bytez