合成系统配置及脚本写作方法示例; 前端面板由引擎提供,通过脚本读表形式实现各种合成方法 (仅做为LUA面板与脚本交互实现的方法,不提供后续面板扩展样式支持) 合成表下载(根据下方脚本下载下来的CSV请放入DATA目录中): 下载地址:cfg_makeitems.rar 实现方式: 我们采用读表方式二(CSV表格读取)来做示例 QFunction-0.txt固定触发字段 @G_CompoundItem10000 点击合成按钮触发 关联参数<$param1> 参数返回表格的对应IDX(配置该IDX时不要重复cfg_makeitems.csv的IDX) 返回前端面板消息 SendActionOfJson 10000 {"action":"event","data":{"recog":参数1,"param1":参数2}} 参数1:[0=成功、-1=失败(货币不足)、-2=失败(道具不足)] 参数2:返回成功的cfg_makeitems.csv的IDX字段(即前端发送的<$param1>) @G_CompoundItem10001 点击页面按钮触发 关联参数<$param1> 参数返回表格的对应IDX(配置该IDX时不要重复cfg_makeitems.csv的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.启动触发中执行 NEWREADCSV ..\Data\cfg_makeitems.csv #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.启动触发中执行 NEWREADCSV ..\Data\cfg_makeitems.csv #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 SendActionOfJson 10000 {"action":"event","data":{"recog":-2,"param1":<$str(S$系统合成_IDx判断)>}} BREAK #if NOT checkitems <$cfg_makeitems(<$str(S$系统合成_初始行判断)>_8)> 0 1 #ACT SendActionOfJson 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)> SendActionOfJson 10000 {"action":"event","data":{"recog":0,"param1":<$str(S$系统合成_IDx判断)>}} -------------------------------------------------------------------------------- 合成示例三:(特殊需求示例:检测背包有绑定到具时合成给予绑定物品) [@G_CompoundItem10000] #if #act ;读表配置到内存常量中,如果不会经常临时更改建议放置QM.启动触发中执行 NEWREADCSV ..\Data\cfg_makeitems.csv #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 SendActionOfJson 10000 {"action":"event","data":{"recog":-2,"param1":<$str(S$系统合成_IDx判断)>}} BREAK #if NOT checkitems <$cfg_makeitems(<$str(S$系统合成_初始行判断)>_8)> 0 1 #ACT SendActionOfJson 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$合成绑定规则)> SendActionOfJson 10000 {"action":"event","data":{"recog":0,"param1":<$str(S$系统合成_IDx判断)>}} |