传奇NPC装备加灵魂属性脚本解密与重写

来源: 作者: 点击:
一、脚本“加密”真相与解决方案

你遇到的“只能显示一部分”并非加密,而是脚本调用(#CALL)机制。原脚本将核心逻辑放在了外部文件中,NPC脚本只保留入口。要查看完整内容,需进入MirServer\Mir200\Envir\QuestDiary\后台管理\目录,打开对应的.txt文件(如物理伤害.txt)。

若文件丢失或损坏,需重写。基于你提供的NPC界面,重写逻辑需使用SetNewItemValue(新属性)或CHANGEITEMADDVALUE(老属性)命令。

二、核心命令:SetNewItemValue详解

现代引擎(GOM/GEE)添加灵魂属性主要使用SetNewItemValue命令。其格式为:
SetNewItemValue装备位置属性类型操作符(+/-/=)数值

属性类型对照表(关键)
属性代码对应属性

0致命一击几率

1攻击伤害增加

2物理伤害减少(吸收)

3魔法伤害减少(吸收)

4忽视目标防御

5伤害反弹

6人物体质增加

7经验加成(部分引擎)

装备位置代码
•-1:OK框中的装备(需配合UPGRADEITEM放入)

•1:武器

•4:头盔

•5:左手镯

•6:右手镯

三、完整脚本重写示例(以“物理伤害吸收”为例)

由于你提供的界面有8个功能,全部写完篇幅过长。以下以“物理伤害吸收”和“致命一击”为例,提供可直接粘贴的完整脚本。其他属性只需修改“属性代码”即可。

步骤1:修改NPC主脚本(替换原[@物理伤害]段)
[@物理伤害]
#IF
CHECKGAMEGOLD>1999;检查是否有2000元宝
;可选:CheckNewItemValue12<10(检查武器吸收是否小于10点,防刷爆)
#ACT
TAKECREDIT2000;扣除2000元宝
SetNewItemValue12+1;给武器(位置1)增加1点物理伤害吸收(属性2)
SENDMSG6恭喜!武器物理伤害吸收+1点!
#ELSESAY
元宝不足2000点,无法进行锻造。


步骤2:其他属性脚本模板(以“致命一击”为例)
[@致命一击]
#IF
CHECKGAMEGOLD>1999
#ACT
TAKECREDIT2000
SetNewItemValue10+1;属性0=致命一击
SENDMSG6恭喜!武器致命一击几率+1%!
#ELSESAY
元宝不足2000点,无法进行锻造。


四、针对不同引擎的适配修改

1.GOM/GEE引擎(主流):直接使用上述SetNewItemValue命令,属性代码按上表对应。
2.HERO/LEGEND引擎(老版):老引擎可能不支持新属性,需改用元素系统命令:
#ACT
TAKECREDIT2000
SetItemsEffect1+21;给武器增加2号元素(物理吸收)1点
SENDMSG6锻造成功!

3.BLUE引擎:部分BLUE引擎需使用CHANGEITEMADDVALUE修改基础属性,或使用插件支持新属性。

五、关于“附加经验”属性的特殊处理

你界面中的“增加经验”属性通常无法直接附加到装备上(除非引擎支持自定义属性)。常见的替代方案是:
•方案A:改为给人物增加一个“经验倍数”的变量(如INC<$HUMAN(经验倍数)>10),在杀怪脚本中读取该变量。

•方案B:使用SetNewItemValue17+1,前提是引擎的7号属性定义为经验加成(需测试)。

六、脚本调试与常见错误

•属性不显示:确认引擎支持“新属性”功能(GOM需勾选M2选项)。属性添加后需取下装备重新佩戴才能刷新显示。

•扣费无效果:检查TAKECREDIT命令是否适用于你的版本(部分版本用GAMEGOLD-2000)。

•文件路径错误:如果你仍想使用#CALL调用,确保路径为QuestDiary\后台管理\物理伤害.txt,且文件内标签为[@物理伤害吸收]。

建议:为避免外部文件丢失,建议直接将上述重写后的脚本代码粘贴到NPC脚本的对应标签下(如[@物理伤害]),删除原有的#CALL行,这样所有逻辑都在一个文件内,便于管理。
[顶部]