一、脚本显示不全的原因与解密
你遇到的“脚本只能显示一部分,游戏里却能正常使用”是典型的脚本加密现象。服务端为了防修改,使用了M2插件或引擎自带的加密功能对NPC脚本进行了压缩或编码。
解密与查看方法:
1. 检查插件管理:打开M2Server → 查看 → 插件管理,查看是否加载了“脚本加密”或“NPC保护”类插件。若有,通常可在其配置界面解密。
2. 文件特征:加密后的脚本文件(如\后台管理\物理伤害.txt)在记事本中打开可能显示为乱码或大量空白,但引擎能正常读取。
3. 解决方案:若无法解密,你只能参照现有功能逻辑重写,或联系版本发布者索取明文脚本。下面的代码将为你提供重写模板。
二、灵魂属性NPC脚本重写(GOM/GEE引擎)
根据你提供的[@main]菜单,以下为你重写物理伤害吸收和致命一击两个核心功能的完整脚本。此脚本采用OK框放入装备模式,兼容性强,可直接替换加密文件。
1. 主NPC脚本(保存为 .txt 文件)
[@main]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
年轻人啊,老夫在此数十载,您可只老夫在此地都忙于什么吗?
呵呵...告诉你吧,老夫在此是为了研究玛法大陆失传已久的锻造技术
现在老夫要将此技术为广大的玛法大陆勇士们施展出来。
但是我要收取2000的元宝作为我的辛苦费,这个不算过分吧 嗯?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<物理伤害吸收/@物理伤害> <魔法伤害吸收/@魔法伤害> <增加致命一击/@致命一击>
<增加伤害反弹/@伤害反弹> <增加体质/@体质增加> <增加经验/@附加经验>
<忽视目标防御/@忽视防御> <加强攻击伤害/@攻击伤害>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
;### 物理伤害吸收 ###
[@物理伤害]
#if
#act
OPENMERCHANTBIGDLG 11 0 1 4 0 0 0 ; 打开大对话框
#say
请放入需要附加【物理伤害吸收】属性的装备:\ \
<放入装备:/@放入装备_物理伤害>\ \
<开始附加/@开始附加_物理伤害>(需2000元宝)
;### 致命一击 ###
[@致命一击]
#if
#act
OPENMERCHANTBIGDLG 11 0 1 4 0 0 0
#say
请放入需要附加【致命一击】属性的装备:\ \
<放入装备:/@放入装备_致命>\ \
<开始附加/@开始附加_致命>(需2000元宝)
2. 功能执行脚本(核心逻辑)
;--- 物理伤害吸收逻辑 ---
[@放入装备_物理伤害]
#if
#act
OPENUPGRADEDLG 1 ; 打开OK框(位置1)
[@开始附加_物理伤害]
#if
NOT CHECKUSEITEM 1 ; 检测OK框1是否有装备
#act
messagebox 请先放入一件装备!
break
#if
CHECKGAMEGOLD < 2000
#act
messagebox 元宝不足2000!
break
#if
#act
GAMEGOLD - 2000
SetNewItemValue 1 2 + 5 ; 给OK框1的装备增加5%物理伤害吸收(属性编号2)
SENDMSG 6 恭喜!物理伤害吸收+5%附加成功!"
RECLAIMITEM 1 ; 收回装备
goto @main
;--- 致命一击逻辑 ---
[@放入装备_致命]
#if
#act
OPENUPGRADEDLG 1
[@开始附加_致命]
#if
NOT CHECKUSEITEM 1
#act
messagebox 请先放入一件装备!
break
#if
CHECKGAMEGOLD < 2000
#act
messagebox 元宝不足2000!
break
#if
#act
GAMEGOLD - 2000
SetNewItemValue 1 0 + 3 ; 给OK框1的装备增加3%致命一击(属性编号0)
SENDMSG 6 恭喜!致命一击+3%附加成功!"
RECLAIMITEM 1
goto @main
三、关键命令与属性编号对照表
SetNewItemValue 命令详解:
• 格式:SetNewItemValue 装备位置 属性编号 操作符(+/-/=) 数值
• 装备位置:-1代表当前触发OK框,1代表1号OK框,0代表身上衣服。
• 属性编号(GEE/GOM通用):
◦ 0:暴击几率/致命一击
◦ 1:攻击伤害增加
◦ 2:物理伤害吸收
◦ 3:魔法伤害吸收
◦ 4:忽视目标防御
◦ 5:伤害反弹
◦ 7:体质增加
◦ 21:经验加成(部分引擎)
四、Hero引擎(老版本)替代写法
如果你的服务端是Hero引擎(不支持SetNewItemValue),需改用UPGRADEITEMEX命令修改装备的扩展属性。以“物理伤害吸收”为例:
[@开始附加_物理伤害]
#if
CHECKGAMEGOLD > 1999
#act
GAMEGOLD - 2000
UPGRADEITEMEX 1 2 0 5 0 ; 参数:位置1, 属性2, 成功率100%, 点数5, 不破碎
SENDMSG 6 物理伤害吸收附加完成!"
注意:Hero引擎需在M2中预先设置好“属性2”对应物理吸收,否则无效。
五、部署与调试步骤
1. 备份:将原NPC脚本文件(如锻造师.txt)重命名为锻造师_backup.txt。
2. 新建:创建新文件锻造师.txt,将上述重写脚本粘贴进去。
3. 重载:在M2Server上点击“控制” → “重新加载NPC”。
4. 测试:在游戏中点击NPC,放入一件白板装备测试扣费和属性增加。
常见报错:
• “未知命令”:说明引擎不支持SetNewItemValue,请切换至UPGRADEITEMEX写法。
• 属性不显示:确认客户端补丁中的NewopUI.Pak或Prguse.wzl文件是否支持显示“致命一击”等新属性文字。
通过上述重写,你可以完全摆脱对加密脚本的依赖,并自由调整附加属性的数值和费用。

