帮我写个 装备合成脚本
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-05-17 17:31:17 |
👁️ 阅读: 26
根据课程日志记录,装备合成可以通过合成系统实现。以下是基于合成表(cfg_makeitems.csv)的脚本示例:
首先,在`QFunction-0.txt`中配置固定触发字段:
```
[@G_CompoundItem10000]
#IF
#ACT
; 将前端传递的合成ID存入变量
MOV S$系统合成IDx判断 <$param1>
; 在表中查找该ID对应的行
MOV S$系统合成初始行判断 <$GetTypeBRow(cfg_makeitems,0,<$str(S$系统合成IDx判断)>)>
; 检测所需材料是否足够
#IF
CHECKITEM <$cfg_makeitems(<$str(S$系统合成初始行判断)>_8)> 0 1
CHECKITEM <$cfg_makeitems(<$str(S$系统合成初始行判断)>_9)> 0 1
#ACT
; 扣除材料
TAKE <$cfg_makeitems(<$str(S$系统合成初始行判断)>_8)> 1
TAKE <$cfg_makeitems(<$str(S$系统合成初始行判断)>_9)> 1
; 给予合成后的装备
GIVE <$cfg_makeitems(<$str(S$系统合成初始行判断)>_10)> 1
; 通知前端合成成功
SENDACTIONOFJSON 10000 {"action":"event","data":{"recog":0,"param1":<$str(S$系统合成IDx判断)>}}
#ELSESAY
材料不足!
```
如果需要保留附加属性,可以在合成前读取原装备属性,合成后使用`ADDATTLIST`命令将属性附加到新装备上。例如:
```
; 假设原装备在背包位置0
GETITEMADDVALUE -1 0 S$原装备属性
; 合成后,将属性加到新装备(假设新装备在背包位置1)
ADDATTLIST 保留属性 + <$str(S$原装备属性)>
```
合成成功率方面,如果使用合成表,几率是固定的100%。若需要几率控制,需在脚本中自行使用`RANDOM`等命令进行判断。
注意:合成系统的前端面板由引擎提供,通过`OPENWINDOWS`打开对应面板ID(如2201)。详细配置请参考`cfg_makeitems.csv`表格结构。
← 返回问答库