宝箱产出分两层管。物品数据库管“宝箱是什么、双击怎么触发、钥匙收什么费”;宝箱规则文件管“里面出什么、出几个、几率多少”。只改数据库不写规则文件,开箱没奖励;只写规则文件不建数据库物品,双击没反应或M2不识别。
一、StdItems物品库建宝箱与钥匙
传统宝箱在StdItems.DB建两行:
宝箱行示例
Name=黄金宝箱
Stdmode=48
Shape=1
Anicount=0或指定值
Source=1或对应规则文件编号
Reserved按引擎填0旧宝箱/1新宝箱/2九周年类
其他价格、库存、职业按普通物品补。
Stdmode=48通常是宝箱类,Shape 1到6对应不同外观,6可给珍珑;Anicount在某些资料里用于转动抽取,0表示转动抽取、100表示不转直接给,具体看引擎宝箱模块 。Source对应Envir下BoxsList/Boxs目录里的规则文件编号。
钥匙行示例
Name=黄金钥匙
Stdmode=49
Shape=与宝箱Anicount一致
Need=0金币/1元宝/2灵符/3金刚石
NeedLevel=收费数量
钥匙Shape和宝箱Anicount对上才能开;Need决定扣费类型,NeedLevel决定每次扣多少。只做消耗钥匙不扣货币,Need填0、NeedLevel填0,脚本里再用TAKE扣钥匙。
Hero类双击物品开箱不一定要Stdmode48。物品库把宝箱Stdmode设31,Anicount设触发号X,QFunction-0.txt写:
[@StdModeFuncX]
IF
ACT
OpenItemBox 宝箱名
SENDMSG 7 开启宝箱成功
OpenItemBox对应的爆物走怪物爆率/ItemBox,不直接在StdItems写数量 。这种方式适合“背包双击宝箱→按爆率出物”,数量概率在爆率文件管。
二、Blue/LEG的BoxItem.txt数量与几率
Envir\BoxItem.txt按宝箱名分段,格式:
[黄金宝箱]
经验 2000 1
经验 200000 5
声望 5 10
声望 15 20
金刚石 10 30
金刚石 20 40
天尊头盔 1 150
天尊项链 1 150
天尊手镯 1 99
天尊戒指 1 99
圣战头盔 1 99
圣战项链 1 150
圣战戒指 1 150
法神头盔 1 150
法神项链 1 150
法神戒指 1 99
三列含义:物品名、数量、获取几率。部分Blue资料写几率1到255,数字越大越难出,0不获取 ;LEG同类示例也用“物品 数量 几率”,中间格由引擎按几率排。经验、声望、金刚石用“经验 数值”“声望 数值”“金刚石 数值”写法,不要写具体物品名。
NPC用钥匙开箱示例:
[@开黄金宝箱]
IF
CHECKITEM 黄金宝箱 1
CHECKITEM 黄金钥匙 1
CHECKBAGGAGE 1
ACT
TAKE 黄金宝箱 1
TAKE 黄金钥匙 1
OPENBOX 黄金宝箱
SENDMSG 0 黄金宝箱已开启
BREAK
ELSEACT
SENDMSG 0 需要黄金宝箱1个和黄金钥匙1个
BREAK
OPENBOX调BoxItem.txt里同名段;BoxItem改完在M2菜单重载,不重载不生效 。
三、GEE/盛大类BoxsList与X.txt数量几率
数据库宝箱Stdmode48、Shape对应外观,Source写规则编号。Envir下建BoxsList.txt:
0
1
2
每行一个编号,必须连续。每个编号建0.txt、1.txt、2.txt,格式:
0.txt首行可写多次开启与收费参数,常见:
1 10 10 20 20 50 50 3
含义按引擎文档:是否多次、起始金币、起始元宝、累增金币、累增元宝、有效金币、有效元宝、最高次数。后面逐行写物品:
天尊头盔 0 1
天尊项链 0 1
天尊手镯 0 1
天尊戒指 0 1
经验(2000) 0
金刚石(20) 0
声望(200) 0
圣战头盔 1
圣战项链 1
法神头盔 2
经验(1000000) 3
物品类型0可得、1不可得、2中间隔、3永远不可得;经验/金刚石/声望用“经验(数量)”“金刚石(数量)”“声望(数量)” 。传统宝箱至少12个物品、珍珑至少8个、抽奖至少20个,数量不足M2可能不让开 。
NPC命令可用OPENBOXS 宝箱号码 钥匙shape 0;第三参0普通、非零按珍珑/抽奖走对应文件 。数据库Source、BoxsList编号、X.txt名称三者对齐,差一个开箱空白。
四、3K/新宝箱类型数量几率
部分新宝箱规则按“物品名 类型 数量 几率”四列:
天尊头盔 0 1 30
天尊项链 0 1 40
天尊手镯 0 1 50
天尊戒指 0 1 60
经验 0 1000 12
金刚石 0 10 13
声望 0 20 14
圣战头盔 1 1 100
圣战项链 1 1 100
圣战戒指 1 1 100
法神头盔 0 1 70
金刚石 2 50 113
类型0普通、1填充、2中间格、3极品;几率1到65535,数字越大概率越小 。天赐类要求0类型至少8件、3类型至少2件,每次从0类随机取6到7件、3类取1到2件;九周年在StdItems的Reserved填2,M2物品装备里配钥匙数 。
五、ItemBox.txt四列与权重算法
部分引擎Envir\ItemBox.txt按“宝箱名 物品名 数量 参数”多列:
赤金宝箱 金砖 1 1
赤金宝箱 经验 200000 1
赤金宝箱 完美摄魂 1 1
有资料把第四列当掉落开关,1进池、0不出;概率另由整体爆率控制 。也有资料把第三列当权重,某物概率=该物权重÷同宝箱所有物权重和,例如10个物全权重1各10%,金砖改5、其余1则总权重14、金砖约35.7% 。写之前先看本服ItemBox表头注释:若是“名 物 数 开关”,数量填第三列、概率不在这里;若是“名 物 数 权重A 权重B”,按权重改,0通常特殊分组。
六、数量与堆叠的实际规则
数据库物品本身有堆叠上限,Stackable/Overlap或StdItems对应字段决定“数量”能发多少。宝箱规则写“屠龙 1”每次发1把;写“金砖 10”要看金砖物品库是否允许堆叠10,不允许就分多行或改发10次1个。经验、声望、金刚石不是实体装备,用经验(数值)、声望(数值)、金刚石(数值),不受背包堆叠限制但受M2单条经验上限影响。
绑定类产出在StdItems设Bind,或在规则文件用绑定标记;BoxItem纯文本不支持绑定时,改NPC开箱后GIVE绑定物品替代OPENBOX。比如不写OPENBOX,改:
[@开绑定宝箱]
IF
CHECKITEM 黄金宝箱 1
ACT
TAKE 黄金宝箱 1
RANDOMEX 100
IF
SMALL 30
ACT
GIVE 屠龙 1
BindItem 屠龙
SENDMSG 0 获得绑定屠龙
BREAK
IF
SMALL 70
ACT
GIVE 金砖 10
SENDMSG 0 获得金砖10
BREAK
ELSEACT
GIVE 经验卷 1
BREAK
BindItem命令名按引擎替换,没有就用数据库Bind字段预先绑定再GIVE。
七、怪物掉宝箱与宝箱再出物
宝箱作为怪物掉落,在MonItems/怪物名.txt写:
1/100 黄金宝箱 1
表示100分之一掉1个黄金宝箱。宝箱本身数量在爆率文件管,宝箱里面数量在BoxItem/Boxs/X.txt管,两层分开。Hero双击Stdmode31开箱时,OpenItemBox调的“宝箱名”要在怪物爆率里有对应掉落池;若用ItemBox.txt,则ItemBox的宝箱名和怪物掉出的宝箱名一致 。
八、NPC自由配数量概率,不依赖数据库宝箱
不做Stdmode48、不建BoxItem,纯脚本也能跑:
[@超级宝箱]
IF
CHECKITEM 超级宝箱 1
CHECKITEM 宝箱钥匙 1
CHECKBAGGAGE 2
ACT
TAKE 超级宝箱 1
TAKE 宝箱钥匙 1
RANDOMEX 1000
IF
SMALL 50
ACT
GIVE 屠龙 1
SENDMSG 0 开出屠龙1把
BREAK
IF
SMALL 200
ACT
GIVE 金砖 20
SENDMSG 0 开出金砖20个
BREAK
IF
SMALL 500
ACT
GIVE 经验卷 5
SENDMSG 0 开出经验卷5个
BREAK
ELSEACT
GIVE 金币袋 1
SENDMSG 0 开出金币袋1个
BREAK
RANDOMEX 1000配SMALL 50是5%,SMALL 200累计到20%,SMALL 500累计到50%,剩下走#else。多档别都从0开始,否则低档拦截高档;要独立概率就每段重新RANDOMEX。
九、排错
开箱没任何物品:先确认BoxItem/Boxs/X.txt名称与NPC OPENBOX、数据库Source完全一致;再确认M2已重载宝箱规则;Stdmode48宝箱还要看Shape、Anicount、Source三字段。
只出经验不出装备:BoxItem里装备几率写太大,比如150、200,相对经验1到5几乎不出;按目标概率重算,经验若想常出写1到10,极品装备写100到300。
双击宝箱没反应:Hero查Stdmode31、Anicount触发号、QFunction[@StdModeFuncX];传统查Stdmode48、Shape,NPC开箱查OPENBOX/OPENBOXS命令是否本引擎支持。
钥匙扣了不开:CHECKITEM钥匙数量、TAKE顺序、CHECKBAGGAGE空格都要写;先发物再TAKE会白给,先TAKE再发物断线可能扣钥匙不发奖,用变量锁或M2事务开箱最稳。
数量发成0:规则文件数量列写0、数据库GIVE数量写0、爆率数量列写0都会不出;BoxItem第三列是数量不是几率,别把几率填第三列。
珍珑/抽奖空白:传统12、珍珑8、抽奖20最少物品数,类型分配不对也开不了;新宝箱0类/3类最少件数按M2要求补 。
改完用管理员小号分别测:空箱规则、单物品100%规则、低几率极品、经验/声望/金刚石、绑定装备、钥匙扣费、多次转盘收费。确认数量、几率、数据库字段、规则文件全部对应再放到正式地图怪物掉落。
传奇宝箱物品数据库数量配置教程:StdItems与BoxItem权重几率实例
来源:
作者:
点击:

