[@main]
#SAY
<Img|x=124.0|y=80.0|width=546|height=396|loadDelay=1|show=0|img=public/bg_npc_01.png|bg=1|reset=1|move=0>
<Layout|x=545|y=0|width=80|height=80|link=@exit>
<Button|x=669.0|y=87.0|pimg=public/1900000511.png|nimg=public/1900000510.png|link=
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-06-04 19:52:44 |
👁️ 阅读: 6
根据课程日志记录,装备合成保留附加属性需要先读取装备的属性,然后加到现有的装备上。对于你提供的脚本,要实现保留附加属性,需要在合成执行前获取材料装备的属性,并在给予产物时将这些属性附加到新装备上。
从脚本看,你使用的是CSV表格配置的合成系统,但脚本中没有处理属性转移的逻辑。要实现属性保留,需要修改`[@背包执行]`部分:
```txt
[@背包执行]
#ACT
; 先获取材料装备的属性(假设材料1是主装备)
MOV S$属性字符串 ""
#IF
NOT EQUAL S$材料1 ""
#ACT
; 这里需要获取材料1装备的属性组
; 注意:实际获取属性需要装备在背包中且被检测到
; 由于CHECKITEM只检测存在性,需要额外处理
GOTO @获取属性
```
然后需要添加`[@获取属性]`函数来读取装备属性。不过课程日志显示,装备属性操作需要使用`ADDATTLIST`命令,格式为:
```
ADDATTLIST 自定义属性组名称 + 属性字符串(3#1#100|3#2#100|3#3#10|3#4#10)
```
由于你的脚本中材料装备是通过名称检测的,没有具体的装备实例,要获取具体属性比较复杂。建议改用合成系统内置的`@G_CompoundItem10000`触发,或者修改为使用物品框(ITEMBOX)让玩家放入具体装备,这样可以通过`<ITEMBOX>`的`boxindex`获取装备实例并读取其属性。
当前脚本的遍历逻辑也存在问题:`#IF`和`#ACT`的嵌套使用不规范,多个`#ELSEACT`没有对应的`#IF`。建议使用标准的条件判断结构。
← 返回问答库