传奇Legendm2界面元素升级脚本:UPGRADEITEMEX元素位、NPC交互、成功率判定与冷却公告

来源: 作者: 点击:
Legendm2引擎做元素升级,重点不是把界面做得多花哨,而是把元素属性位、NPC交互、成功率判定、材料扣除、冷却控制和公告提示写清楚。元素属性本身由M2控制台开启,脚本端主要通过 UPGRADEITEMEX 对装备位增加或升级元素。 界面按钮、图标、提示框等前端效果需要配合客户端素材和引擎UI配置,脚本只能负责逻辑判断和属性写入。

一、元素属性位说明

Legendm2常见元素属性位如下:

位置17:忽视目标防御,值0-15
位置18:增加伤害,值0-15
位置19:伤害反射,值0-15
位置20:物理伤害减少,值0-15
位置21:魔法伤害减少,值0-15
位置22:经验吸收增加,0-15,部分版本未启用

这些位置不是随意填写的编号,必须对应引擎支持的元素位。升级时通常每次增加1点,也可以按材料品质增加2-3点。

二、NPC主入口脚本

[@main]
IF
CHECKITEM 元素升级卷轴 1
ACT
GOTO @选择装备
ELSESAY
你身上没有元素升级卷轴,无法进行元素升级。\
<离开/@exit>

[@选择装备]
SAY
请将需要升级的武器放在武器位置。\
确认后将检测装备和材料。\
\
<开始检测/@检测装备>\
<离开/@exit>

[@检测装备]
IF
CHECKITEM 黑铁矿石 10
CHECKITEM 元素结晶 5
CHECKITEM 元素升级卷轴 1
ACT
GOTO @确认升级
ELSESAY
材料不足。\
需要:黑铁矿石10个、元素结晶5个、元素升级卷轴1个。\
<返回/@main>\
<离开/@exit>

三、成功率判定脚本

成功率可以根据装备当前元素值、材料数量和幸运值计算。

[@确认升级]
IF
ACT
MOV N1 60
INC N1 <LUCKY>
DEC N1 <ELEMENTLEVEL>
GOTO @限制成功率

[@限制成功率]
IF
LARGE N1 90
ACT
MOV N1 90

IF
SMALL N1 10
ACT
MOV N1 10

IF
ACT
MOV N2 <RANDOM(100)>
GOTO @升级判定

四、升级执行脚本

[@升级判定]
IF
SMALL N2 N1
ACT
GOTO @升级成功
ELSESAY
GOTO @升级失败

[@升级成功]
IF
ACT
TAKE 黑铁矿石 10
TAKE 元素结晶 5
TAKE 元素升级卷轴 1
UPGRADEITEMEX 1 17 0 1 0
UPGRADEITEMEX 1 18 0 1 0
SENDMSG 0 【元素升级】<USERNAME>武器元素升级成功,忽视防御与增伤属性提升!
GOTO @升级完成

[@升级失败]
IF
ACT
TAKE 黑铁矿石 10
TAKE 元素结晶 5
TAKE 元素升级卷轴 1
SENDMSG 0 【元素升级】<USERNAME>武器元素升级失败,材料已消耗。
GOTO @升级完成

[@升级完成]
SAY
本次元素升级已完成。\
<继续升级/@main>\
<离开/@exit>

五、单属性定向升级脚本

如果希望玩家自行选择升级哪条元素,可以增加分支选择。

[@选择属性]
SAY
请选择要升级的元素属性。\
\
<忽视防御/@升级忽视防御>\
<增加伤害/@升级增加伤害>\
<伤害反射/@升级伤害反射>\
<物伤减少/@升级物伤减少>\
<魔伤减少/@升级魔伤减少>\
<返回/@main>\
<离开/@exit>

[@升级忽视防御]
IF
CHECKITEM 黑铁矿石 10
CHECKITEM 元素结晶 5
CHECKITEM 元素升级卷轴 1
ACT
TAKE 黑铁矿石 10
TAKE 元素结晶 5
TAKE 元素升级卷轴 1
UPGRADEITEMEX 1 17 0 1 0
SENDMSG 6 你的武器忽视目标防御属性提升。
BREAK
ELSESAY
材料不足,无法升级。

[@升级增加伤害]
IF
CHECKITEM 黑铁矿石 10
CHECKITEM 元素结晶 5
CHECKITEM 元素升级卷轴 1
ACT
TAKE 黑铁矿石 10
TAKE 元素结晶 5
TAKE 元素升级卷轴 1
UPGRADEITEMEX 1 18 0 1 0
SENDMSG 6 你的武器增加伤害属性提升。
BREAK
ELSESAY
材料不足,无法升级。

六、装备位置说明

UPGRADEITEMEX 第一个参数通常为装备位置。常见写法中,1代表武器位置。不同引擎可能把武器位置定义为0或1,需要以当前Legendm2引擎M2帮助为准。 如果升级衣服、首饰、腰带等部位,需要修改对应位置编号。

示例:

UPGRADEITEMEX 1 17 0 1 0
表示对武器位置增加忽视目标防御1点。

UPGRADEITEMEX 1 18 0 2 0
表示对武器位置增加增加伤害2点。

七、冷却控制脚本

元素升级不能无限制触发,建议增加个人冷却。

[@开始升级]
IF
LARGE <ELECOOL> 0
ACT
SENDMSG 6 元素升级冷却中,请等待<STR(ELECOOL)>秒。
BREAK
ELSEACT
MOV <ELECOOL> 300
GOTO @升级判定

[@冷却结束]
IF
LARGE <ELECOOL> 0
ACT
DEC <ELECOOL> 1
GOTO @冷却结束
ELSEACT
MOV <ELECOOL> 0
BREAK

八、元素上限控制

元素属性通常有上限,升级前应先检测当前值。

[@检测元素上限]
IF
ACT
MOV N3 15
GOTO @判断是否满级

[@判断是否满级]
IF
LARGE <CURRENTVALUE> N3
ACT
SENDMSG 6 该元素属性已达到上限,无法继续升级。
BREAK
ELSEACT
GOTO @升级判定

如果引擎支持直接检测装备元素值,可用对应检测命令;若不支持,可用自定义变量记录升级次数。

九、公告与提示

升级成功建议发送全服公告,失败只发送私人提示。

成功公告:

SENDMSG 0 【元素升级】<$USERNAME>武器元素升级成功,获得更强属性!

失败提示:

SENDMSG 6 你的武器元素升级失败,材料已消耗。

十、调试要点

先在M2控制台确认“启用新增属性”已开启,否则客户端可能不显示元素。
元素位置17-22必须与当前引擎版本一致。
UPGRADEITEMEX 的装备位置、属性位、数值参数要按顺序填写。
材料名称必须与物品数据库一致。
升级成功后要确认客户端是否刷新属性显示。
冷却变量在倒计时结束后必须归零。
脚本修改后重新加载或重启服务端。
界面按钮、图标、提示框需要客户端素材和UI配置配合,脚本只负责升级逻辑。