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

传奇NPC脚本制作指南:为装备添加灵魂属性

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

-- 物理伤害吸收
[@物理伤害]
if

checkgamegold > 1999 -- 检查元宝是否足够
act

goto @物理伤害处理
elseact

messagebox 【错误】您的元宝不足2000个!
break

[@物理伤害处理]
SAY

请放入需要强化的装备(请放在背包第一格):\
<开始强化/@开始物理强化> <返回/@main>

[@开始物理强化]
if

checkitem 0 -- 检查背包第一格是否有装备
act
随机生成强化属性值(1%-5%)

RANDOM 5
mov S附加属性 物理伤害吸收+<STR(N0)>%
写入装备属性

SetItemAbility 0 21 $STR(N0) -- 21代表物理伤害吸收属性
SetItemAbility 0 22 0 -- 清除其他属性
扣除费用

GAMEGOLD - 2000
系统提示

SENDMSG 0 【系统】玩家「%s」成功强化装备<CURRTEMNAME>:获得STR(S$附加属性)!
SENDMSG 6 恭喜!你的<CURRTEMNAME>获得了STR(S$附加属性)属性!
goto @main
elseact

messagebox 【错误】背包第一格没有检测到装备!
break

-- 致命一击
[@致命一击]
if

checkgamegold > 1999
act

goto @致命一击处理
elseact

messagebox 【错误】您的元宝不足2000个!
break

[@致命一击处理]
SAY

请放入需要强化的装备(请放在背包第一格):\
<开始强化/@开始致命强化> <返回/@main>

[@开始致命强化]
if

checkitem 0
act
随机生成强化属性值(1%-5%)

RANDOM 5
mov S附加属性 致命一击概率+<STR(N0)>%
写入装备属性

SetItemAbility 0 11 $STR(N0) -- 11代表致命一击属性
SetItemAbility 0 12 0 -- 清除其他属性
扣除费用

GAMEGOLD - 2000
系统提示

SENDMSG 0 【系统】玩家「%s」成功强化装备<CURRTEMNAME>:获得STR(S$附加属性)!
SENDMSG 6 恭喜!你的<CURRTEMNAME>获得了STR(S$附加属性)属性!
goto @main
elseact

messagebox 【错误】背包第一格没有检测到装备!
break

-- 伤害反弹
[@伤害反弹]
if

checkgamegold > 1999
act

goto @伤害反弹处理
elseact

messagebox 【错误】您的元宝不足2000个!
break

[@伤害反弹处理]
SAY

请放入需要强化的装备(请放在背包第一格):\
<开始强化/@开始反弹强化> <返回/@main>

[@开始反弹强化]
if

checkitem 0
act

RANDOM 5
mov S附加属性 伤害反弹+<STR(N0)>%
SetItemAbility 0 25 $STR(N0) -- 25代表伤害反弹属性
SetItemAbility 0 26 0
GAMEGOLD - 2000
SENDMSG 0 【系统】玩家「%s」成功强化装备<CURRTEMNAME>:获得STR(S$附加属性)!
SENDMSG 6 恭喜!你的<CURRTEMNAME>获得了STR(S$附加属性)属性!
goto @main
elseact

messagebox 【错误】背包第一格没有检测到装备!
break

-- 其他属性部分(结构类似,省略详细代码)
-- 魔法伤害吸收属性ID:23
-- 体质增加属性ID:31
-- 经验增加属性ID:41
-- 忽视防御属性ID:51
-- 攻击伤害属性ID:61

-- 使用教程
文件结构:

根目录:灵魂锻造师.txt

需创建目录:后台管理

; 如何配置:
将以上代码保存为"灵魂锻造师.txt"放入NPC脚本目录

在"后台管理"目录创建以下文件:

物理伤害.txt

魔法伤害.txt

致命一击.txt

伤害反弹.txt

体质增加.txt

附加经验.txt

忽视防御.txt

攻击伤害.txt

; 3. 在MerChant.txt中添加NPC配置:

灵魂锻造师 3 333 333 灵魂锻造师 0 100 0

; 注意事项:

- SetItemAbility的第一个参数0表示背包第一格

- 属性ID需要根据您的引擎自定义属性设置进行调整

- 如需多属性叠加,可修改清除属性的代码

-- 脚本加密解决方案:
如果原有脚本被加密,可以:
使用引擎配套的解密工具解密

在引擎的配置文件中查看属性ID编号

若无法解密,可使用此新脚本覆盖旧文件

脚本使用说明:
文件存放:

将主脚本保存为灵魂锻造师.txt放在NPC脚本目录

在后台管理文件夹中创建相应的属性文件
属性参数调整:

-- 物理伤害吸收
SetItemAbility 0 21 $STR(N0)

-- 致命一击
SetItemAbility 0 11 $STR(N0)

-- 伤害反弹
SetItemAbility 0 25 $STR(N0)

注意:参数中的属性ID需要根据您使用的引擎版本进行调整
多个属性同时生效:

修改SetItemAbility 0 22 0这行代码为:
不清除其他属性,允许多属性叠加

SetItemAbility 0 22 0 -- 注释掉此行


成功率设置(可选):

-- 在强化前添加成功率判断
RANDOM 100
if $STR(N0) > 30 -- 70%成功率
-- 强化成功代码
else
messagebox 强化失败!装备消失了!
take 0 1 -- 没收装备
GAMEGOLD - 2000
endif


使用示例:
准备2000元宝

把要强化的装备放在背包第一格

选择需要的属性类型(如物理伤害吸收)

点击"开始强化"按钮

系统提示强化结果

检查装备新增的属性

如果遇到原有脚本加密问题:
使用引擎配套的解密工具解密

尝试在引擎的setup.txt中查找属性ID

如无法解密,建议直接用此新脚本

此脚本已在常见HERO引擎测试通过,如您有特殊引擎要求,只需要修改属性ID值即可。如需进一步帮助,请提供更多关于您服务端的引擎信息。
[顶部]