[@TakeOnBeforeEX]
SENDMSG 6 个人变量J117: <$STR(J117)>
#IF
EQUAL J117 1
#ACT
GetDBItemFieldValue <$CURRTEMNAME> idx S$物品IDX
SENDMSG 6 物品ID: <$S(S$物品IDX)>
MOV P0 <$S(S$物品IDX)>
#IF
SMALL P0 21294
#ACT
SENDMSG 6 公共副本禁止穿戴副本之外的装备
stop
#ELSESAY
; 可以在此处添加其他处理或留
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-07-02 19:59:13 |
👁️ 阅读: 11
在 `[@TakeOnBeforeEX]` 触发标签中,你的脚本结构存在几个关键问题。
根据课程日志记录,`GetDBItemFieldValue` 命令用于查询物品的基础ID,其参数顺序为:`GetDBItemFieldValue <$CURRTEMNAME> IDX S$物品IDX`。同时,输出字符串变量应使用 `<$STR(S$物品IDX)>`。
以下是修正后的脚本示例:
```
[@TakeOnBeforeEX]
#ACT
SENDMSG 6 个人变量J117: <$STR(J117)>
#IF
EQUAL J117 1
#ACT
GetDBItemFieldValue <$CURRTEMNAME> IDX S$物品IDX
SENDMSG 6 物品基础ID: <$STR(S$物品IDX)>
MOV P0 <$STR(S$物品IDX)>
#IF
SMALL P0 21294
#ACT
SENDMSG 6 公共副本禁止穿戴副本之外的装备
stop
#ELSESAY
#ELSEACT
```
主要修正点:
1. 将初始的 `SENDMSG` 放入 `#ACT` 段,确保 `#IF` 条件判断前有正确的执行段。
2. 修正 `GetDBItemFieldValue` 命令的参数,第二个参数应为 `IDX` 而非 `idx`。
3. 将 `MOV P0 <$S(S$物品IDX)>` 修正为 `MOV P0 <$STR(S$物品IDX)>`,以正确获取字符串变量的值进行数字比较。
4. 确保脚本结构符合TXT语法规范,`#IF` 后紧跟 `#ACT` 或 `#SAY` 等执行段。
← 返回问答库