合成系统配置及脚本写作方法示例
前端面板由引擎提供,通过脚本读表形式实现各种合成方法
(仅做为LUA面板与脚本交互实现的方法,不提供后续面板扩展样式支持)
合成表cfg_makeitem.xls列表请
在新三端全套表里获取加载命令NEWREADCSV改为NewReadExcel

[@G_CompoundItem10000] 点击合成按钮触发QFunction-0.txt固定标签
<$param1> 关联参数返回表格的对应IDX(配置该IDX时不要重复cfg_makeitems.xls的IDX)
返回前端面板消息
SENDJSON 10000
{"action":"event","data":{"recog":参数1,"param1":参数2}}
参数1:[0=成功、-1=失败(货币不足)、-2=失败(道具不足)]
参数2:返回成功的cfg_makeitems.xls的IDX字段(即前端发送的<$param1>)
[@G_CompoundItem10001] 点击页面按钮触发
<$param1> 关联参数返回表格的对应IDX(配置该IDX时不要重复cfg_makeitems.xls的IDX)
自定义按钮主窗口ID:42(参照说明书自定义按钮功能详解)
通过面板传过来的ID我们可以在对应面板上添加一些其他的合成条件或文字说明及其他!
[@G_CompoundItem10001]
#if
#act
MOV S$图标
<Button|a=0|x=180.0|y=2.0|tips={点击查看【金钻服务】/FCOLOR=250}|tipsx=10|tipsy=110|nimg=custom/zdy/tubiao/jzhuiyuan1.png|color=255|size=18|pimg=custom/zdy/tubiao/jzhuiyuan1.png|link=@会员服务>
INC S$图标
<Button|a=0|x=260.0|y=2.0|tips=点击查看【在线奖励】|tipsx=10|tipsy=110|nimg=custom/zdy/tubiao/zxjiangli1.png|color=255|size=18|pimg=custom/zdy/tubiao/zxjiangli1.png|link=@在线奖励>
ADDBUTTON 42 1 <$STR(S$图标)>
打开面板
[@main]
#if
#ACT
;面板ID对应cfg_menulayer.xls表ID
OPENHYPERLINK 2201
合成示例一:(简单扣除给予脚本示例)
[@G_CompoundItem10000]
#if
#act
;读表配置到内存常量中,如果不会经常临时更改建议放置QM.启动触发中执行
NEWREADEXCEL ..\Data\cfg_makeitems.xls
#if
NOT EQUAL <$param1>
#act
;将前端的<$param1>参数赋个自定义变量,因<$param1>经常用于服务端数据传递常用参数,所以为保证参数不会发生改变而赋到个人变量中
MOV S$系统合成_IDx判断 <$param1>
;我们将点击合成按钮触发的参数ID到表中找到它的初始行在第几行中并赋到自定义变量中
;赋到自定义变量中详解:因服务端在表中寻找中实际也是在遍历,所以为了引擎不必要的耗时,我们只采取让引擎只遍历一次
MOV S$系统合成_初始行判断
<$GetTypeBRow(cfg_makeitems,0,<$str(S$系统合成_IDx判断)>)>
#if
;批量检测,在日常我们配表时,实际上是可以将所需要的道具及货币配置在一起的,因让策划更好分辨所以分开
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
;给予时我们配置物品IDX或物品名字都可以执行
gives
<$cfg_makeitems(<$str(S$系统合成_初始行判断)>_7)>
SendActionOfJson 10000
{"action":"event","data":{"recog":0,"param1":<$str(S$系统合成_IDx判断)>}}
合成示例二:(完整扣除给予脚本示例)
[@G_CompoundItem10000]
#if
#act
;读表配置到内存常量中,如果不会经常临时更改建议放置QM.启动触发中执行
NEWREADEXCEL ..\Data\cfg_makeitems.xls
#if
NOT EQUAL <$param1>
#act
;将前端的<$param1>参数赋个自定义变量,因<$param1>经常用于服务端数据传递常用参数,所以为保证参数不会发生改变而赋到个人变量中
MOV S$系统合成_IDx判断 <$param1>
;我们将点击合成按钮触发的参数ID到表中找到它的初始行在第几行中并赋到自定义变量中
;赋到自定义变量中详解:因服务端在表中寻找中实际也是在遍历,所以为了引擎不必要的耗时,我们只采取让引擎只遍历一次
MOV S$系统合成_初始行判断
<$GetTypeBRow(cfg_makeitems,0,<$str(S$系统合成_IDx判断)>)>
#if
NOT checkitems
<$cfg_makeitems(<$str(S$系统合成_初始行判断)>_8)> 0 1
#ACT
SENDJSON 10000
{"action":"event","data":{"recog":-2,"param1":<$str(S$系统合成_IDx判断)>}}
BREAK
#if
NOT checkitems
<$cfg_makeitems(<$str(S$系统合成_初始行判断)>_8)> 0 1
#ACT
SENDJSON 10000
{"action":"event","data":{"recog":-1,"param1":<$str(S$系统合成_IDx判断)>}}
BREAK
#if
;批量检测,在日常我们配表时,实际上是可以将所需要的道具及货币配置在一起的,因让策划更好分辨所以分开
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
;给予时我们配置物品IDX或物品名字都可以执行
gives
<$cfg_makeitems(<$str(S$系统合成_初始行判断)>_7)>
SENDJSON 10000
{"action":"event","data":{"recog":0,"param1":<$str(S$系统合成_IDx判断)>}}
合成示例三:(特殊需求示例:检测背包有绑定到具时合成给予绑定物品)
[@G_CompoundItem10000]
#if
#act
;读表配置到内存常量中,如果不会经常临时更改建议放置QM.启动触发中执行
NEWREADEXCEL ..\Data\cfg_makeitems.xls
#if
NOT EQUAL <$param1>
#act
;将前端的<$param1>参数赋个自定义变量,因<$param1>经常用于服务端数据传递常用参数,所以为保证参数不会发生改变而赋到个人变量中
MOV S$系统合成_IDx判断 <$param1>
;我们将点击合成按钮触发的参数ID到表中找到它的初始行在第几行中并赋到自定义变量中
;赋到自定义变量中详解:因服务端在表中寻找中实际也是在遍历,所以为了引擎不必要的耗时,我们只采取让引擎只遍历一次
MOV S$系统合成_初始行判断
<$GetTypeBRow(cfg_makeitems,0,<$str(S$系统合成_IDx判断)>)>
#if
NOT checkitems
<$cfg_makeitems(<$str(S$系统合成_初始行判断)>_8)> 0 1
#ACT
SENDJSON 10000
{"action":"event","data":{"recog":-2,"param1":<$str(S$系统合成_IDx判断)>}}
BREAK
#if
NOT checkitems
<$cfg_makeitems(<$str(S$系统合成_初始行判断)>_8)> 0 1
#ACT
SENDJSON 10000
{"action":"event","data":{"recog":-1,"param1":<$str(S$系统合成_IDx判断)>}}
BREAK
#if
;批量检测,在日常我们配表时,实际上是可以将所需要的道具及货币配置在一起的,因让策划更好分辨所以分开
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
MOV S$系统合成_跳转检测 已开启
goto
@系统合成_检测绑定
MOV S$系统合成_跳转检测
[@系统合成_检测绑定]
#if
EQUAL S$系统合成_跳转检测
#act
break
#or
EQUAL N$合成_道具绑定状态 1
EQUAL N$合成_货币绑定状态 1
#act
MOV S$合成绑定规则 354
gives
<$cfg_makeitems(<$str(S$系统合成_初始行判断)>_7)>#<$str(S$合成绑定规则)>
SENDJSON 10000
{"action":"event","data":{"recog":0,"param1":<$str(S$系统合成_IDx判断)>}}