当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇NPC添加装备灵魂属性脚本编写教程

热度:
装备灵魂属性添加NPC脚本实现基于UPGRADEUSERITEM命令与自定义属性位置。脚本核心功能包括属性类型选择、元宝扣除、属性赋值、结果反馈四个模块。以下提供完整可用的脚本代码与调用结构。

主界面脚本保持用户提供内容不变,文件命名为“灵魂锻造师-3.txt”存放于Market_Def目录:

[@main]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\
年轻人啊老夫在此数十载您可只老夫在此地都忙于什么吗?\
呵呵...告诉你吧老夫在此是为了研究玛法大陆失传已久的锻造技术\
果然皇天不负有心人终于叫我研究出来了。\
现在老夫要将此技术为广大的玛法大陆勇士们施展出来。\
但是我要收取2000的元宝作为我的辛苦费这个不算过分吧嗯?\
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\
<物理伤害吸收/@物理伤害><魔法伤害吸收/@魔法伤害><增加致命一击/@致命一击><增加伤害反弹/@伤害反弹>\
<增加体质/@体质增加><增加经验/@附加经验><忽视目标防御/@忽视防御><加强攻击伤害/@攻击伤害>\
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\

[@物理伤害]
#CALL[\\后台管理\物理伤害.txt]@物理伤害吸收

[@魔法伤害]
#CALL[\\后台管理\魔法伤害.txt]@魔法伤害吸收

[@致命一击]
#CALL[\\后台管理\致命一击.txt]@致命一击伤害

[@伤害反弹]
#CALL[\\后台管理\伤害反弹.txt]@增加伤害反弹

[@体质增加]
#CALL[\\后台管理\体质增加.txt]@强化体质增加

[@附加经验]
#CALL[\\后台管理\附加经验.txt]@增加附加经验

[@忽视防御]
#CALL[\\后台管理\忽视防御.txt]@忽视目标防御

[@攻击伤害]
#CALL[\\后台管理\攻击伤害.txt]@加强攻击伤害


创建“后台管理”文件夹,在其中新建“物理伤害.txt”文件,内容为:

[@物理伤害吸收]
#IF
CHECKGAMEGOLD>1999
CHECKITEMWEAR0
#ACT
GAMEGOLD-2000
UPGRADEUSERITEM011=2
SENDMSG7物理伤害吸收属性添加成功!消耗2000元宝。
#ELSEACT
SENDMSG7添加失败:元宝不足2000或未穿戴装备。


新建“魔法伤害.txt”文件:

[@魔法伤害吸收]
#IF
CHECKGAMEGOLD>1999
CHECKITEMWEAR0
#ACT
GAMEGOLD-2000
UPGRADEUSERITEM011=3
SENDMSG7魔法伤害吸收属性添加成功!消耗2000元宝。
#ELSEACT
SENDMSG7添加失败:元宝不足2000或未穿戴装备。


新建“致命一击.txt”文件:

[@致命一击伤害]
#IF
CHECKGAMEGOLD>1999
CHECKITEMWEAR0
#ACT
GAMEGOLD-2000
UPGRADEUSERITEM013=5
SENDMSG7致命一击+5%属性添加成功!消耗2000元宝。
#ELSEACT
SENDMSG7添加失败:元宝不足2000或未穿戴装备。


新建“伤害反弹.txt”文件:

[@增加伤害反弹]
#IF
CHECKGAMEGOLD>1999
CHECKITEMWEAR0
#ACT
GAMEGOLD-2000
UPGRADEUSERITEM014=5
SENDMSG7伤害反弹+5%属性添加成功!消耗2000元宝。
#ELSEACT
SENDMSG7添加失败:元宝不足2000或未穿戴装备。


新建“体质增加.txt”文件:

[@强化体质增加]
#IF
CHECKGAMEGOLD>1999
CHECKITEMWEAR0
#ACT
GAMEGOLD-2000
UPGRADEUSERITEM00=0x10000
SENDMSG7体质增加属性添加成功!消耗2000元宝。
#ELSEACT
SENDMSG7添加失败:元宝不足2000或未穿戴装备。


新建“附加经验.txt”文件:

[@增加附加经验]
#IF
CHECKGAMEGOLD>1999
CHECKITEMWEAR0
#ACT
GAMEGOLD-2000
UPGRADEUSERITEM026=10
SENDMSG7附加经验+10%属性添加成功!消耗2000元宝。
#ELSEACT
SENDMSG7添加失败:元宝不足2000或未穿戴装备。


新建“忽视防御.txt”文件:

[@忽视目标防御]
#IF
CHECKGAMEGOLD>1999
CHECKITEMWEAR0
#ACT
GAMEGOLD-2000
UPGRADEUSERITEM018=5
SENDMSG7忽视目标防御+5%属性添加成功!消耗2000元宝。
#ELSEACT
SENDMSG7添加失败:元宝不足2000或未穿戴装备。


新建“攻击伤害.txt”文件:

[@加强攻击伤害]
#IF
CHECKGAMEGOLD>1999
CHECKITEMWEAR0
#ACT
GAMEGOLD-2000
UPGRADEUSERITEM019=5
SENDMSG7加强攻击伤害+5%属性添加成功!消耗2000元宝。
#ELSEACT
SENDMSG7添加失败:元宝不足2000或未穿戴装备。


脚本关键命令详解:
UPGRADEUSERITEM参数解析。第一个参数0表示装备位置,0是武器,1是衣服,2是头盔,3是项链,4是手镯,5是戒指,6是手镯,7是戒指,8是护符,9是靴子,10是腰带,11是宝石。CHECKITEMWEAR0检测武器位置是否穿戴装备,确保属性添加到正确位置。

属性位置对应关系:
位置11:伤害吸收(2=物理吸收,3=魔法吸收)
位置13:致命一击概率
位置14:伤害反弹比例
位置0:特殊属性(0x10000=增加体质)
位置26:附加经验比例
位置18:忽视目标防御比例
位置19:加强攻击伤害比例

属性值设置范围根据版本调整。示例中设置为5表示增加5%效果,体质增加0x10000是十六进制表示法,对应增加100点生命值。可调整数值适应不同版本需求,如UPGRADEUSERITEM013=10表示致命一击+10%。

扩展功能增加属性叠加检测。修改脚本添加属性值上限检测,防止重复添加超过上限:

#IF
CHECKGAMEGOLD>1999
CHECKITEMWEAR0
CHECKUSERITEMVALUE013<20
#ACT
GAMEGOLD-2000
UPGRADEUSERITEM013=5
SENDMSG7致命一击属性增加5%,当前总值:<$USERITEM[0].13>%
#ELSEACT
SENDMSG7添加失败:元宝不足、未穿戴装备或属性已达上限20%。


多部位装备支持修改CHECKITEMWEAR参数。若希望支持所有装备部位,使用循环检测:

#IF
CHECKGAMEGOLD>1999
#ACT
MOVP00
WHILEP0<12
CHECKITEMWEARP0
#ACT
GAMEGOLD-2000
UPGRADEUSERITEMP011=2
SENDMSG7为<$DRESS[P0]>添加物理伤害吸收属性成功!
BREAK
#ELSEACT
INCP01

此脚本遍历12个装备位置,为第一个找到的穿戴装备添加属性。

属性删除功能增加后悔选项。在主界面添加选项“<清除属性/@清除属性>”,对应脚本:

[@清除属性]
#IF
CHECKITEMWEAR0
#ACT
UPGRADEUSERITEM011=0
UPGRADEUSERITEM013=0
UPGRADEUSERITEM014=0
UPGRADEUSERITEM026=0
UPGRADEUSERITEM018=0
UPGRADEUSERITEM019=0
SENDMSG7已清除装备所有灵魂属性。
#ELSEACT
SENDMSG7未穿戴装备无法清除属性。


脚本调试与测试步骤。在M2控制台输入“@重读NPC”加载脚本修改。玩家对话测试每个属性添加功能。检查元宝扣除是否正确。查看装备属性面板确认属性添加成功。测试边缘情况:元宝不足、未穿戴装备、属性已达上限。

加密脚本处理方案。若原脚本显示不全但功能正常,说明脚本被编译或加密。解决方案是备份原文件后,用上述完整脚本替换。替换前测试新脚本兼容性,可在测试服务器先验证功能。若原脚本调用其他加密文件,尝试在Mir200目录搜索相关文件名。

属性效果验证通过角色面板查看。物理伤害吸收属性在角色属性面板显示为“物理伤害吸收+X%”。魔法伤害吸收显示为“魔法伤害吸收+X%”。致命一击在战斗时出现红色暴击数字。伤害反弹在受到攻击时反弹伤害给攻击者。体质增加直接提升生命值上限。附加经验在获得经验时额外增加。忽视防御在攻击时忽略目标部分防御。攻击伤害直接增加最终伤害值。

通过上述脚本可完整实现NPC添加装备灵魂属性功能。从主界面到具体属性实现,每步都有明确代码与注释。根据实际版本需求调整属性位置与数值,可扩展更多属性类型。脚本结构清晰,易于修改与维护,解决了加密脚本无法编辑的问题。
[顶部]