[@PickUpItemEx]
#if
#act
LINKPICKUPITEM
UpDateBoxItem -1
LINKITEMBYMAKEINDEX <$NEWBAGITEMID>
GETITEMADDVALUE -1 2 N$攻击额外增加 0
GETITEMADDVALUE -1 3 N$魔法额外增加 0
GETITEMADDVALUE -1 4 N$道术额外增加 0
GETITEMADDVALUE -1 0 N$防御额外增加 0
GETITEMADDVALUE -1 1 N$魔防额外增加
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-04-19 16:56:51 |
👁️ 阅读: 4
根据课程日志记录,`changeitemaddvalue`命令用于调整装备的极品属性。你的脚本逻辑是:当捡起装备时,检测其攻击、魔法、道术、防御、魔防的极品属性值,如果这些值都等于0(即没有额外增加),则统一设置为1。
脚本中的`GETITEMADDVALUE`命令用于获取指定位置的装备的指定极品属性值。参数`-1`表示OK框中的物品(即刚捡起或链接的物品),第二个参数是属性ID(0-13),对应关系为:0=防御,1=魔御,2=攻击,3=魔法,4=道术。第三个参数是存入的变量,第四个参数是偏移量(通常为0)。
`#or`和`#elseact`的用法在此处存在语法问题。TXT脚本中,条件判断应使用`#IF`、`#ELSEACT`结构。`#or`不是有效的条件连接符。正确的写法应是将多个`large`条件用`#IF`和`#ACT`组合,或者使用`#IF`配合`SMALL`或`EQUAL`来检测值是否为0。
以下是修正后的脚本结构示例:
```
[@PickUpItemEx]
#if
#act
LINKPICKUPITEM
UpDateBoxItem -1
LINKITEMBYMAKEINDEX <$NEWBAGITEMID>
GETITEMADDVALUE -1 2 N$攻击额外增加 0
GETITEMADDVALUE -1 3 N$魔法额外增加 0
GETITEMADDVALUE -1 4 N$道术额外增加 0
GETITEMADDVALUE -1 0 N$防御额外增加 0
GETITEMADDVALUE -1 1 N$魔防额外增加 0
#if
EQUAL N$攻击额外增加 0
EQUAL N$魔法额外增加 0
EQUAL N$道术额外增加 0
EQUAL N$防御额外增加 0
EQUAL N$魔防额外增加 0
#act
changeitemaddvalue -1 2 = 1
changeitemaddvalue -1 3 = 1
changeitemaddvalue -1 4 = 1
changeitemaddvalue -1 0 = 1
changeitemaddvalue -1 1 = 1
UpDateBoxItem -1
#elseact
sendmsg 6 该装备已有极品属性。
```
注意:`changeitemaddvalue`的第二个参数是属性位置(0-13),第三个参数是操作符(`=`表示设置,`+`表示增加,`-`表示减少),第四个参数是数值。你的脚本中使用了`=`,会将对应属性直接设置为1。
← 返回问答库