传奇酿酒系统本质是NPC对话脚本与物品消耗逻辑的组合。核心流程为:玩家点击NPC → 检测背包材料 → 扣除物品并概率生成酒品。以下基于HeroM2/GOM引擎,详解脚本结构与关键命令。
一、脚本基础结构与存放路径
1. 文件位置:脚本需放在 MirServer\Mir200\Envir\Market_Def 目录下,文件名通常对应NPC编号(如“盟重酒馆-3.txt”)。
2. 编码格式:必须使用 ANSI 编码保存,否则游戏内显示乱码。
3. 核心标签:[@main] 为NPC默认对话入口,#IF 为条件判断,#ACT 为执行动作。
二、酿酒NPC主菜单脚本示例
以下为完整的“酒馆老板娘”对话脚本,包含材料检测与奖励发放:
[@main]
您好,我是酒馆的老板娘,专门负责帮勇士们酿酒。\ \
酿造普通烧酒需要:**稻米 x5、清水 x3、酒曲 x1**。\ \
请选择操作:\ \
\<开始酿造/@酿造_烧酒> \<离开/@exit>
[@酿造_烧酒]
#IF
CheckItem 稻米 5
CheckItem 清水 3
CheckItem 酒曲 1
#ACT
Take 稻米 5
Take 清水 3
Take 酒曲 1
MOVR N$酿酒品质 100 ; 随机一个0-100的数决定品质
#IF
SMALL N$酿酒品质 60 ; 60%概率出普通
#ACT
Give 普通烧酒 1
SendMsg 5 “酿造成功!获得【普通烧酒】x1”
Break
#IF
LARGE N$酿酒品质 90 ; 10%概率出极品
#ACT
Give 极品烧酒 1
SendMsg 5 “人品爆发!酿造出【极品烧酒】x1”
Break
#IF
; 中间30%概率出优质
#ACT
Give 优质烧酒 1
SendMsg 5 “酿造成功!获得【优质烧酒】x1”
#ELSESAY
材料不够哦,再仔细找找背包吧。\ \
\<返回/@main>
三、关键命令与参数解析
1. 材料检测与扣除:
◦ CheckItem 稻米 5:检测背包是否有5个稻米。
◦ Take 稻米 5:扣除5个稻米。顺序必须先Check后Take。
2. 概率与品质控制:
◦ MOVR N$酿酒品质 100:将0-99的随机数赋值给变量 N$酿酒品质。
◦ SMALL N$酿酒品质 60:判断变量是否小于60(即60%概率区间)。
3. 酒品属性配置(StdItems.DB):
脚本只负责“给物品”,酒的饮用效果(如加HP/MP、临时攻击)需在数据库设置:
◦ StdMode:通常设为0(普通物品)或1(药品)。
◦ AC/MAC:分别控制HP和MP的恢复量。
◦ Source:若需叠加(如999瓶/格),需设为5并配合DuraMax字段。
四、高级功能:药酒与酒量系统
若版本支持“酒量值”属性,需配合全局脚本(QFunction-0.txt)实现饮用效果:
1. 饮用触发脚本(在QFunction-0.txt中添加):
[@Drink_普通烧酒]
#ACT
INC N$人物酒量 10 ; 饮酒增加10点酒量
SendMsg 5 “你饮下烧酒,酒量值+10!”
Break
2. 醉酒判定:在脚本中通过 CheckVar N$人物酒量 > 100 判断是否进入“醉酒”状态(屏幕晃动、攻击不准)。
五、常见报错与调试
• 点击NPC无反应:检查文件名是否与Merchant.txt中的NPC配置一致,或路径是否含中文。
• 材料不扣除:确认物品名称与数据库(StdItems.DB)中的Name字段完全一致,包括空格。
• 酒品无效果:检查数据库中药水的AC/MAC字段是否填了数值,且Shape字段是否为1(瞬间恢复)。
总结:酿酒脚本的核心是“检测-扣除-随机-给予”的循环逻辑。先写好基础的材料兑换,再通过随机变量扩展品质系统,最后在数据库中完善酒品的饮用属性。

