361引擎装备打造NPC全设置:生活技能MakeItem与makedrug脚本概率合成StdItems排错

来源: 作者: 点击:
361引擎做装备打造分两套。一套走F11生活技能面板,用MakeMagic.txt配技能等级、MakeItem.txt配材料金币概率,玩家在生活技能里点打造;另一套不走面板,在Market_Def写NPC,脚本头加@makedrug、脚本尾加[MakeItems]直接列可打造装备,原生活技能的限制全部失效。纯自定义概率合成再用CheckItem、Take、Give、Random写分支,适合做高阶神兵、套装、保底打造。

一、F11生活技能原生打造

1.MakeMagic.txt配置技能与可打造列表

路径Mir200\Envir\MakeMagic.txt,格式按资料示例:

技能编号 所需技能等级 所需人物等级 分类 装备名称

武器示例:

0 0 110 $战士专用 火舞凤凰斩

衣服示例:

1 0 110 男性服装 法师专用 火舞凤凰甲(男)

编号0到9按引擎分配,武器、头盔、衣服、腰带、靴子各占一段;所需技能等级写0表示生活技能不升级也能打,写1到N要求生活技能等级;人物等级写110表示110级可打,低了面板不显示。分类用战士专用、法师专用、道士专用、男性服装、$女性服装控制职业和性别,不写分类则全职业可见。

2.MakeItem.txt配置每件装备材料

路径Mir200\Envir\MakeItem.txt,按装备名建段:

[火舞凤凰斩]
2000000 10 100
传说之剑 1 1
火舞神兵记载卷 5 2
完美的红陨铁矿 5 3
金矿 1 4

第一行三个数按资料示例理解为:所需金币、默认机率、最高机率;不同361子版本字段顺序可能把“默认机率、最高机率、金币”重排,以M2生活技能说明为准。第二行开始是材料,格式:

物品名 数量 摆放位置

摆放位置1到5只控制面板显示排序,最多5件材料;材料名必须和StdItems.DB的Name完全一致,多一个空格、少一个符号都会导致面板不识别。

3.M2生活技能开关

打开M2生活技能/打造相关页,确认允许打造、读取MakeMagic和MakeItem、生活技能升级经验按版本填。改完两个txt保存,M2重载生活技能或重启;玩家按F11进面板,选分类、选装备、放材料、点打造,按默认机率出装。想全成功把默认机率和最高机率都设成100;想按生活技能等级提升成功率,就把默认机率设低、最高机率设高,技能等级越高越接近最高。

二、NPC直接用@makedrug快捷打造

不做面板、不让生活技能等级卡人,用NPC调用打造。Market_Def新建“装备打造师-0.txt”,文件头按引擎Merchant格式写地图、坐标、范围、名称;脚本体:

[@main]
打造雷霆系列/domaket0
打造烈焰系列/domaket1
打造光芒系列/domaket2

[@domaket0]
makedrug

say

放入对应材料后由系统按本NPC可打造列表出装。
[MakeItems]
头盔 战士专用 雷霆头盔
头盔 法师专用 烈焰头盔
头盔 道士专用 光芒头盔
男性服装 战士专用 雷霆战甲(男)
男性服装 法师专用 烈焰魔衣(男)
男性服装 道士专用 光芒道袍(男)
女性服装 战士专用 雷霆战甲(女)
女性服装 法师专用 烈焰魔衣(女)
女性服装 道士专用 光芒道袍(女)
腰带 战士专用 雷霆腰带
腰带 法师专用 烈焰腰带
腰带 道士专用 光芒腰带
靴子 战士专用 雷霆战靴
靴子 法师专用 烈焰魔靴
靴子 道士专用 光芒道靴

脚本头[@domaket0]上方或段内按361资料加#makedrug,脚本尾[MakeItems]列出本NPC能造的装备;分类前缀头盔、男性服装、女性服装、腰带、靴子对应装备部位,后面战士专用、法师专用、道士专用控制职业。其它部位照抄改名字即可,例如项链 战士专用 战神项链。

这种写法不读MakeItem.txt材料规则,材料、金币、成功率全由NPC脚本另行控制;若只写[MakeItems]不写扣材料逻辑,等于点名字直接出装,测试可用,正式服必须配合CheckItem、Take收材料。

三、NPC概率合成打造(不依赖生活技能)

纯脚本做“材料换装备、按概率出高阶”,最通用。Market_Def建“神兵打造师-0.txt”:

[@main]
雷霆刀打造/forgeleiting
屠龙级打造/forgetuolong
保底合成/forgebaodi

[@forgetuolong]
if

CheckItem 黑铁矿石 10
CheckItem 屠龙碎片 5
CheckItem 火龙心髓 1
CheckGold 1000000
act

Take 黑铁矿石 10
Take 屠龙碎片 5
Take 火龙心髓 1
Gold - 1000000
Random 5
act

Give 屠龙刀 1
SendMsg 6 打造成功,获得屠龙刀。
elsesay

打造失败,材料已消耗。
break

Random 5表示1/5成功,Random 2是50%,Random 3约33%,Random 10是10%,Random 100可精细到1%;不同361子版本Random返回值区间可能用“大于某值算成功”或“等于0算成功”,按M2命令帮助改判断。CheckItem检测背包材料数量,CheckGold或CheckGameGold检测货币,Take扣材料,Gold - 或GameGold - 扣钱,Give发成品,SendMsg 6只给当前玩家发私聊提示。

多档概率示例,成功30%、破碎全扣、保底返还部分:

[@forgeleiting]
if

CheckItem 完美矿石 5
CheckItem 雷霆碎片 3
act

Take 完美矿石 5
Take 雷霆碎片 3
Random 10
act

Give 雷霆战刀 1
SendMsg 6 雷霆战刀打造成功。
break

elsesay

Random 7
act

Give 完美矿石 2
SendMsg 6 打造失败,返还部分矿石。
break

elsesay

SendMsg 6 打造失败,材料全部损耗。
break

逻辑是先Random 10,命中前3个值走成功段;未命中再Random 7分流返还和全扣。实际写脚本按引擎Random规则化简,不要套太多层导致不进分支。

四、打造前检测背包与职业

发成品前查空位,避免Give失败丢物品:

[@forgetuolong]
if

CheckItem 黑铁矿石 10
CheckItem 屠龙碎片 5
CheckBagSpace 1
act

Take 黑铁矿石 10
Take 屠龙碎片 5
Random 5
act

Give 屠龙刀 1
SendMsg 6 打造成功,获得屠龙刀。
elsesay

背包无空位或材料不足,无法打造。
break

职业限制用Need相关判断或M2物品规则;NPC层面可用CheckJob 0/1/2,0战士、1法师、2道士按版本常量核对。战士刀打造段加CheckJob 0,道士扇加CheckJob 2,法师杖加CheckJob 1,避免三职业通用破坏定位。

五、新增打造装备入StdItems

自制雷霆、烈焰、光芒、屠龙变体,先改数据库再写NPC。

1.DBC类StdItems

Mir200\DB或Mud2\DB下StdItems.DB,按Idx升序新增,避免Idx:0或重复。字段重点:

Name:雷霆战刀,和NPC Give名字一字不差。
Stdmode:单手武器5、双手6、衣服男10女11、头盔具体按版本、腰带靴子按版本。
Shape:外观子类,部分引擎和客户端资源绑定。
Looks:背包/地面图标编号,对应Item.wil/Items.pak;自制外观先导补丁再写编号,不写或写错会空白。
DuraMax:按千进制,60点写60000、50点写50000。
AC/AC2、MAC/MAC2、DC/DC2、MC/MC2、SC/SC2:按职业填,战士只填DC,法师只填MC,道士填SC,通用装可全填但会破坏平衡。
Need/NeedLevel:职业需求按引擎,1战士、2法师、3道士或Need=0仅等级;等级按打造目标设。
Price:商店价,打造产出可写0。
Bind:测试0,正式按防倒卖1或2。
Reserved:特殊触发、不可修理、零持久消失等按版本代码填,普通打造留0。

保存后DBC按Idx排序,M2重载物品数据库;不重载新装备NPC Give会报不存在。

2.文本类StdItems

部分361子版本用Envir\StdItems.txt,按自带列头加行,不要套DBC列序。新增后M2物品管理重载,GM用制造命令造新名验证,能进背包再写打造NPC。

六、材料与爆率闭环

打造材料建独立物品:黑铁矿石、完美矿石、屠龙碎片、火龙心髓、雷霆碎片、记载卷等,全部进StdItems。MonItems按BOSS分发:

屠龙碎片只给高级火龙、暗之触龙,1/50到1/200。
黑铁矿石给矿区普通怪,1/5到1/20。
记载卷给活动副本,1/10。
雷霆碎片给雷霆级小BOSS,1/30。

NPC打造扣材料,机器人活动发材料,商店可用金币换低级矿,形成“打怪出材料—NPC打造—高阶出装—高阶再拆材料”的循环。材料名在MonItems、StdItems、NPC三段必须完全一致。

七、M2与脚本重载顺序

改MakeMagic.txt、MakeItem.txt:M2生活技能重载,或重启M2。
改Market_Def的NPC:M2重载NPC脚本,或GM命令行重载脚本;文件必须ANSI,中文段名乱码会导致@段不触发。
改StdItems.DB:关DBServer改完重启,或M2重载物品库;热改后造新装备测试。
改MonItems:M2重载爆率。
改[MakeItems]的NPC:重载NPC即可,@makedrug段若未注册,检查Merchant.txt是否挂NPC、脚本头是否带#makedrug。

一次只改一类:先改数据库能造白装,再改NPC扣材料,再加Random概率,最后改生活技能面板。混着改出问题分不出是哪层。

八、常见排错

点NPC没反应:Merchant.txt未注册、文件非ANSI、[@main]无选项、地图坐标不可走。先放已知可走图测试,能开主菜单再搬功能。
[MakeItems]不打造:漏写#makedrug,或361子版本要求脚本头固定@makedrug而非段内;按所用361资料把触发标识放对。
面板F11不显示装备:MakeMagic.txt分类写错,如法师装写成$战士专用;人物等级、生活技能等级高于角色当前值;装备名在StdItems不存在。先查MakeMagic行,再查StdItems的Name。
打造不扣材料:NPC只写[MakeItems]没写CheckItem/Take;生活技能路线要看MakeItem.txt材料行,摆放位置1到5不影响扣除但名字错就不扣。
概率永远成功:Random行未执行或写成固定成功分支;把Random放在Take之后、Give之前,成功段和失败段分开。
概率永远失败:Random判断符号反了,或Random 100后判断小于1但引擎返回0到99规则不同;先用Random 2测50%,通了再调精细值。
出装不显示图标:StdItems的Looks/Shape与客户端Item.wil、PAK不一致;新补丁导错序列,M2重载物品库后清客户端ItemCache重登。
新装备Give报不存在:NPC名字和StdItems的Name不一致,或数据库未重载;GM用制造命令造同名物品,能造说明库没问题,问题在NPC文本。
生活技能限制失效:用了@makedrug+[MakeItems]会绕开MakeMagic/MakeItem的等级机率;只想按面板控制就别写快捷NPC,两套并存要分不同NPC避免玩家走捷径。
DBC启动报Idx:0或物品加载失败:Idx重复、未按Idx排序、Name超长、文件被改名StdItems.DB.txt;DBC2000按Idx升序保存,重启DBServer和M2。
打造后属性不对职业:DC/MC/SC填错,或Stdmode把刀填成衣服;复制同类型老装备改数值最稳,例如复制屠龙改Name、DuraMax、DC范围,再改Looks。

九、完整最小可跑示例

1.生活技能雷霆刀

MakeMagic.txt加:

0 0 110 $战士专用 雷霆战刀

MakeItem.txt加:

[雷霆战刀]
2000000 100 100
完美矿石 5 1
雷霆碎片 3 2
金矿 1 3

M2重载生活技能,F11面板选武器、放材料、打造必出。默认机率和最高机率都100表示无概率;改20和100表示低等级技能20%、满等级100%。

2.NPC快捷不概率

Market_Def\装备打造师-0.txt:

[@main]
雷霆全套/quickmake

[@quickmake]
makedrug

say

系统按下列列表直接打造,材料另行扣除。
[MakeItems]
头盔 战士专用 雷霆头盔
男性服装 战士专用 雷霆战甲(男)
腰带 战士专用 雷霆腰带
靴子 战士专用 雷霆战靴

另写扣材料段在#makedrug前用CheckItem/Take,或接受“点名直接出”仅用于GM测试。

3.NPC概率打造

[@main]
概率造雷霆刀/randlting

[@randlting]
if

CheckItem 完美矿石 5
CheckItem 雷霆碎片 3
CheckBagSpace 1
act

Take 完美矿石 5
Take 雷霆碎片 3
Random 5
act

Give 雷霆战刀 1
SendMsg 6 雷霆战刀打造成功。
break

elsesay

打造失败,材料已消耗。
break

StdItems有雷霆战刀、完美矿石、雷霆碎片三个Name;M2重载物品、重载NPC;GM造材料后点NPC,按1/5出刀。

按生活技能MakeMagic/MakeItem做面板、@makedrug+[MakeItems]做快捷NPC、Random+CheckItem+Take+Give做概率合成三套并行,361装备打造可覆盖新手矿装、雷霆烈焰光芒中装、屠龙火龙神兵高装。排错先分面板不显示、NPC不触发、材料不扣、概率不对、出装不显示五类,一次只改一类最省时间。