热血传奇添加挖矿功能脚本编写方法

来源: 作者: 点击:
在《热血传奇》中实现挖矿功能,需修改服务端脚本,包括NPC对话、挖矿触发、物品产出及冷却控制。以下为完整实现步骤,适用于标准Mir2服务端架构。

一、创建挖矿NPC脚本
在Npc_def目录下新建文件,如“Miner.txt”,内容如下:

[@main]
想挖矿吗?



[@startmine]
IF
CHECKMAP 11
ACT
CALL [MineSystemMineProcess]
ELSEACT
MESSAGE 当前地图禁止挖矿!

此脚本限定仅在地图11(如矿区)允许挖矿,其他地图提示无效。

二、建立挖矿主逻辑脚本
在QuestDiary目录下创建MineSystem文件夹,内建MineProcess.txt:

[@main]
IF
EQUAL S0 1
ACT
MESSAGE 挖矿冷却中,请稍后再试。
break
IF
CHECKITEM 镐子 1
ACT
TAKE 镐子 1
MOV S0 1
TIMERECALL @mineresult 5
SENDMSG 6 正在挖掘中……
ELSEACT
MESSAGE 你没有镐子,无法挖矿!

S0作为冷却标记,值为1时表示正在冷却;使用TIMERECALL延迟5秒后执行结果判定。

三、挖矿结果判定脚本
在同一目录下创建MineResult.txt(由TIMERECALL调用):

[@mineresult]
IF
RANDOM 30
ACT
GIVE 铁矿 1
SENDMSG 6 挖到一块铁矿!
ELSEIF
RANDOM 10
ACT
GIVE 银矿 1
SENDMSG 6 挖到一块银矿!
ELSEIF
RANDOM 5
ACT
GIVE 金矿 1
SENDMSG 6 挖到一块金矿!
ELSEACT
SENDMSG 6 一无所获,继续努力!
MOV S0 0

RANDOM数值代表万分比概率,30=0.3%,10=0.1%,5=0.05%。最后重置S0=0解除冷却。

四、配置挖矿物品与工具
确保Item.db或StdItems中已定义“镐子”“铁矿”“银矿”“金矿”等物品ID,并在客户端MapInfo.txt中设置地图11为可挖矿区域(部分版本需在MapQuest_def/CA11.txt中添加挖矿事件支持)。

五、添加冷却解除机制(可选)
若需更精确冷却,可用D变量记录时间戳。例如:

ACT
MOV D100 HUMTIME
INC D100 300

后续检测时比对当前HUMTIME是否大于D100,实现5分钟冷却。

六、测试与调试要点
确保NPC坐标位于地图11内;
镐子必须为可叠加物品,否则TAKE命令可能失效;
挖矿结果脚本路径需与CALL指令完全一致;
若无反应,检查QuestDiary目录权限及脚本编码是否为ANSI。

通过以上步骤,即可在游戏中加入完整的挖矿系统,玩家消耗镐子触发随机产出,具备冷却控制与地图限制,防止滥用。