[@AddBag]
#act
GetDBItemFieldValue <$NEWBAGITEMNAME> stdmode S$物品类型
GetDBItemFieldValue <$NEWBAGITEMNAME> idx S$物品IDX
#if
checkcontainstext |10|28|19|26|22|64|62|100|101|102|103|104|105|106|107|108|109|110|111| |<$str(S$物品类型)>|
#act
getvalidstrsupe
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-04-28 18:22:22 |
👁️ 阅读: 1
在 `[@AddBag]` 触发中,你的脚本结构存在几个问题。
首先,`[@AddBag]` 是背包增加物品的触发,但根据课程日志记录,该触发中获取新增物品信息的常量通常是 `<$NEWBAGITEM>`(物品IDX)或 `<$NEWBAGITEMNAME>`(物品名称)。你代码中使用的 `<$NEWBAGITEMID>` 和 `<$NEWBAGITEMNAME>` 常量需要确认是否在该触发中有效。
其次,在 `WHILE` 循环内部直接使用了 `#IF`、`#ACT` 等条件判断和执行语句,这是不被允许的。`WHILE` 和 `ENDWHILE` 之间不能直接包含这些命令,需要通过 `GOTO` 跳转到其他标签进行判断。
另外,代码中 `inc A260 *<$NEWBAGITEMID>*<$username>*<$MONTH>*<$DAY>*<$HOUR>*<$MINUTE>*<$SECOND>` 这一行,`INC` 命令通常用于数字变量增加数值,用于字符串拼接可能不符合预期。对于字符串记录,建议使用 `MOV` 或 `ADD` 命令来构建。
最后,`mov A260` 这一行缺少要赋给 A260 的值,语法不完整。
因此,按照当前写法,脚本无法正常执行。你需要调整脚本结构,将循环内的判断逻辑移到 `WHILE` 循环外部,并通过 `GOTO` 来实现。同时,需要确认在 `[@AddBag]` 触发中使用的物品信息常量是否正确。
← 返回问答库