帮我写一个合成脚本
🤖 回答引擎: TXT语法专家 |
🕒 时间: 2026-02-24 22:16:46 |
👁️ 阅读: 3
合成功能可以通过读取cfg_makeitems.csv表格来实现。这里提供一个完整的合成脚本示例,包含前端面板触发和后端物品检测、扣除、给予逻辑。
```txt
[@main]
#ACT
;将合成表格数据加载到内存
NEWREADCSV ..\Data\cfg_makeitems.csv
;打开合成面板,2201对应cfg_menulayer.xls中的面板ID
OPENWINDOWS 2201
;合成按钮点击后的处理函数
[@G_CompoundItem10000]
#IF
#ACT
;读取前端传递的合成项ID参数
MOV S$系统合成_IDx判断 <$param1>
;在合成表中查找该ID对应的行
MOV S$系统合成_初始行判断 <$GetTypeBRow(cfg_makeitems,0,<$str(S$系统合成_IDx判断)>)>
#IF
;检测所需材料是否足够(表格中第8、9列配置的材料)
checkitems <$cfg_makeitems(<$str(S$系统合成_初始行判断)>_8)> 0 1
checkitems <$cfg_makeitems(<$str(S$系统合成_初始行判断)>_9)> 0 1
#ACT
;扣除材料
takes <$cfg_makeitems(<$str(S$系统合成_初始行判断)>_8)> N$合成_道具绑定状态 1
takes <$cfg_makeitems(<$str(S$系统合成_初始行判断)>_9)> N$合成_货币绑定状态 1
;给予合成产物(表格中第7列配置的产物)
gives <$cfg_makeitems(<$str(S$系统合成_初始行判断)>_7)>
;通知前端更新显示
SendActionOfJson 10000 {"action":"event","data":{"recog":0,"param1":<$str(S$系统合成_IDx判断)>}}
#ELSEACT
sendmsg 6 材料不足,无法合成!
```
这个脚本实现了:
1. 通过`OPENWINDOWS 2201`打开合成界面
2. 使用`NEWREADCSV`加载合成配置表
3. 通过`@G_CompoundItem10000`固定触发字段处理合成请求
4. 使用`checkitems`检测材料是否足够
5. 使用`takes`扣除材料,`gives`给予产物
6. 通过`SendActionOfJson`通知前端刷新显示
注意:合成表的配置需要在cfg_makeitems.csv中完成,包括材料、产物等列的配置。合成成功率在表格配置中是固定100%的,如果需要概率合成,需要通过脚本方式实现。
← 返回问答库