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,格式按资料示例:

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

武器示例:

00110$战士专用火舞凤凰斩

衣服示例:

10110男性服装法师专用火舞凤凰甲(男)

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

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

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

[火舞凤凰斩]
200000010100
传说之剑11
火舞神兵记载卷52
完美的红陨铁矿53
金矿14

第一行三个数按资料示例理解为:所需金币、默认机率、最高机率;不同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
CheckGold1000000
act

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

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

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

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

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

[@forgeleiting]
if

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

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

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

elsesay

Random7
act

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

elsesay

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

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

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

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

[@forgetuolong]
if

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

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

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

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

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

五、新增打造装备入StdItems

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

1.DBC类StdItems

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

Name:雷霆战刀,和NPCGive名字一字不差。
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重载物品数据库;不重载新装备NPCGive会报不存在。

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判断符号反了,或Random100后判断小于1但引擎返回0到99规则不同;先用Random2测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加:

00110$战士专用雷霆战刀

MakeItem.txt加:

[雷霆战刀]
2000000100100
完美矿石51
雷霆碎片32
金矿13

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
CheckBagSpace1
act

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

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

elsesay

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

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

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