1.80金币传奇是基于Mir2引擎修改的版本,核心特征为取消元宝、礼券等虚拟代币,全部交易、强化、传送均以金币结算。该版本需调整客户端数值上限、服务端脚本及数据库结构,确保金币流通逻辑完整。
客户端关键文件为Client.exe和StdItems.def。因默认金币上限为20亿(32位整型限制),1.80金币版通常将上限提升至99亿,需使用十六进制编辑器修改Client.exe中金币显示模块偏移地址(常见位置0x001A2C34)。同时在StdItems.def中确认金币图标ID(通常为7)未被替换。
服务端需重写所有涉及充值或元宝的NPC脚本。进入EnvirMarket_def目录,打开QFunction-0.txt,搜索[@Buy]、[@Repair]、[@Upgrade]等标签,将原“CheckGold”或“CheckGameGold”统一改为“CheckItem 金币 数量”。例如:
IF
CheckItem 金币 500000
ACT
Take 金币 500000
Give 火龙剑 1
地图内金币掉落由MonItems目录控制。每个怪物文件(如Woma.txt)需明确金币奖励行,格式为:
ITEMGOLD 10000 50000
表示击杀后掉落1万至5万金币。若怪物不掉金币,检查Monster.txt中是否启用DropGold=1全局开关。
商店系统全面重构。标准Shop目录下各NPC文件(如武器店N_001.txt)原使用Price字段定义元宝价格,现改为Gold字段。示例:
[Gold]
屠龙 20000000
表示屠龙售价两千万金币。客户端需同步更新Shop.ini以识别新价格标签。
技能书与高级装备获取绑定金币消耗。在Dungeons地图(如祖玛寺庙)设置守门NPC,对话脚本要求支付指定金币才可进入。例如:
IF
CheckItem 金币 1000000
ACT
MapMove 3/150/150
ELSEACT
SENDMSG 7 金币不足,无法进入!
数据库需扩展金币字段精度。DBServer目录下!Setup.txt中设置MaxGold=9900000000,并确保StdItems.DBC中金币堆叠上限设为99999999。若玩家金币超过20亿后变为负数,说明DBC未适配64位整型,需用DBC编辑器修正ItemUnit字段。
最后,防止金币溢出导致存档损坏。在M2启动参数中加入-goldlimit 9900000000,强制截断超限数值。定期使用DBCheck工具扫描人物表,清理异常金币记录。

