当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇酿酒系统脚本编写与实现逻辑

热度:
传奇酿酒系统本质是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
MOVRN$酿酒品质100;随机一个0-100的数决定品质
#IF
SMALLN$酿酒品质60;60%概率出普通
#ACT
Give普通烧酒1
SendMsg5“酿造成功!获得【普通烧酒】x1”
Break
#IF
LARGEN$酿酒品质90;10%概率出极品
#ACT
Give极品烧酒1
SendMsg5“人品爆发!酿造出【极品烧酒】x1”
Break
#IF
;中间30%概率出优质
#ACT
Give优质烧酒1
SendMsg5“酿造成功!获得【优质烧酒】x1”
#ELSESAY
材料不够哦,再仔细找找背包吧。\\
\<返回/@main>


三、关键命令与参数解析

1.材料检测与扣除:
◦CheckItem稻米5:检测背包是否有5个稻米。

◦Take稻米5:扣除5个稻米。顺序必须先Check后Take。

2.概率与品质控制:
◦MOVRN$酿酒品质100:将0-99的随机数赋值给变量N$酿酒品质。

◦SMALLN$酿酒品质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
INCN$人物酒量10;饮酒增加10点酒量
SendMsg5“你饮下烧酒,酒量值+10!”
Break

2.醉酒判定:在脚本中通过CheckVarN$人物酒量>100判断是否进入“醉酒”状态(屏幕晃动、攻击不准)。

五、常见报错与调试

•点击NPC无反应:检查文件名是否与Merchant.txt中的NPC配置一致,或路径是否含中文。

•材料不扣除:确认物品名称与数据库(StdItems.DB)中的Name字段完全一致,包括空格。

•酒品无效果:检查数据库中药水的AC/MAC字段是否填了数值,且Shape字段是否为1(瞬间恢复)。

总结:酿酒脚本的核心是“检测-扣除-随机-给予”的循环逻辑。先写好基础的材料兑换,再通过随机变量扩展品质系统,最后在数据库中完善酒品的饮用属性。
[顶部]