HERO引擎物品合成脚本通过NPC对话实现,核心逻辑基于概率判断和材料检测。脚本需放置在服务端Mir200\Envir\Market_Def目录下的NPC脚本文件中,通过NPC对话触发合成选项。合成过程包括材料检查、概率计算、材料消耗、结果发放四个步骤,失败处理根据不同公式区别对待。
基础合成公式脚本实现两物品合成逻辑。以下为乌木剑与黑铁矿合成铁剑的完整脚本段落:
[@基础合成]
#IF
#SAY
乌木剑 + 黑铁矿 合成 铁剑\ \
成功率:50%\ \
失败后果:所有材料消失\ \
<开始合成/@基础合成执行>\ \
<返回/@main>
[@基础合成执行]
#IF
CheckItem 乌木剑 1
CheckItem 黑铁矿 1
#ACT
Take 乌木剑 1
Take 黑铁矿 1
#IF
Random 2
#ACT
Give 铁剑 1
SendMsg 6 合成成功!获得铁剑!
Goto @基础合成
Break
#ELSEACT
SendMsg 6 合成失败!所有材料已消失。
Goto @基础合成
Break
#ELSEACT
SendMsg 6 材料不足,无法合成!
Goto @基础合成
高级合成公式脚本实现三物品合成逻辑。乌木剑、黑铁矿、金矿合成铁剑,失败返还乌木剑:
[@高级合成]
#IF
#SAY
乌木剑 + 黑铁矿 + 金矿 合成 铁剑\ \
成功率:70%\ \
失败后果:仅返还乌木剑\ \
<开始合成/@高级合成执行>\ \
<返回/@main>
[@高级合成执行]
#IF
CheckItem 乌木剑 1
CheckItem 黑铁矿 1
CheckItem 金矿 1
#ACT
Take 乌木剑 1
Take 黑铁矿 1
Take 金矿 1
#IF
Random 3
#ACT
Give 铁剑 1
SendMsg 6 合成成功!获得铁剑!
Goto @高级合成
Break
#ELSEACT
Give 乌木剑 1
SendMsg 6 合成失败!已返还乌木剑。
Goto @高级合成
Break
#ELSEACT
SendMsg 6 材料不足,无法合成!
Goto @高级合成
主NPC对话界面整合两个合成选项。创建NPC脚本文件,通常命名为合成使者.txt,内容如下:
[@main]
#IF
#SAY
欢迎使用装备合成系统\ \
请选择合成配方:\ \
<基础合成:乌木剑+黑铁矿→铁剑/@基础合成>\ \
<高级合成:乌木剑+黑铁矿+金矿→铁剑/@高级合成>\ \
<离开/@exit>
概率控制机制通过Random函数实现。Random 2表示50%成功率,即1/2概率。Random 3表示33%成功率,但配合条件顺序可调整实际概率。若需30%概率,使用Random 10配合条件判断小于等于3。概率数字可自定义,Random 100可精确到1%概率控制。
材料检查命令确保背包物品充足。CheckItem命令检查指定物品和数量,成功返回真值。多个材料检查并列放置,全部满足才执行合成动作。物品名称必须与数据库StdItems.DB中Name字段完全一致,包括符号和空格。
材料收取顺序影响脚本稳定性。Take命令在执行前应再次确认物品存在,防止检查后消耗前物品被转移。建议在Take命令前添加确认检查,或使用TakeEx命令直接尝试收取并返回结果。收取数量可调整,支持一次收取多个相同物品。
结果发放逻辑包含成功和失败分支。Give命令发放结果物品到玩家背包,发放前可检查背包空位避免失败。SendMsg发送合成结果提示,6代表私人消息仅当前玩家可见。消息内容可自定义,包含合成结果和剩余材料信息。
脚本优化添加背包空间检查。在Give命令前添加CheckBagSize条件,确保背包有足够空间容纳结果物品。若空间不足,提前返还材料并提示玩家清理背包。防止因背包满导致物品丢失,提升脚本健壮性。
多级合成扩展支持复杂合成链。铁剑可进一步参与高级合成,添加三级合成选项。检查铁剑与新材料合成更高级武器,形成装备成长体系。合成链长度可无限扩展,但需合理设置概率和材料获取难度。
材料通用化改造便于重复使用。将具体物品名称替换为变量,通过参数传递实现通用合成函数。创建@合成模板标签,接收参数物品A、物品B、物品C、概率值,动态执行合成逻辑。减少代码重复,便于管理大量合成公式。
日志记录功能追踪合成数据。在合成成功和失败时记录到文本文件,格式为“时间角色名 材料 结果
成功与否”。通过Log命令写入QuestDiary\合成日志.txt文件,便于分析玩家合成行为和调整概率参数。
合成冷却时间防止批量刷取。添加个人变量记录上次合成时间,每次合成检查时间间隔。通过CheckDuration命令验证冷却时间是否结束,未结束提示等待时间。冷却时间可设置为60秒或300秒,控制合成频率。
特效添加提升合成体验。成功时播放特效动画,使用EFFECT命令显示指定效果编号。播放合成成功音效,通过PlaySound命令调用Wav文件。特效和音效资源需提前添加到客户端,确保玩家能看到听到效果。
合成界面美化增强交互体验。使用更复杂的#SAY语法,添加颜色代码和换行排版。创建多页合成列表,每页显示10个合成公式,通过下一页翻页。添加材料预览功能,显示所需材料图标和当前持有数量。
脚本安全防护防止恶意利用。添加合成次数限制,每日最多合成50次,通过个人变量计数。验证合成材料是否绑定,禁止使用非绑定材料合成绑定装备。防止复制漏洞,合成前后检查材料唯一ID是否合法。
通过以上脚本实现,完全满足用户提出的两种合成公式需求。基础公式失败失去所有材料,高级公式失败保留物品A。脚本结构清晰,概率可调,易于扩展更多合成公式。可直接复制到NPC脚本中使用,或根据具体需求修改物品名称和概率参数。

