他也玩传奇 首页 传奇学院 引擎功能 996引擎 查看内容

传奇996引擎版本合成系统配置功能说明

2023-11-8 21:51| 发布者: 积木GM论坛| 查看: 1459| 评论: 0

摘要: 合成系统配置及脚本写作方法示例;前端面板由引擎提供,通过脚本读表形式实现各种合成方法(仅做为LUA面板与脚本交互实现的方法,不提供后续面板扩展样式支持)合成表下载(根据下方脚本下载下来的CSV请放入DATA目录中) ...
合成系统配置及脚本写作方法示例;

前端面板由引擎提供,通过脚本读表形式实现各种合成方法
(仅做为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判断)>}}

相关阅读

最新评论