Recipe 扩充
通过Lua引擎,我们可以扩充现有的Recipe数量,突破GMSV限制的255个。
这种方式的优势在于,我们可以不用修改原有的数据库模型,方便老的服务器无缝扩充。
GMSV会在运行中自动调用指定作用的Lua函数,做到Recipe扩展的支持。
定义方式
在lua脚本的init.lua或其他脚本中加入几个lua函数,函数的参数下面会介绍
RecipeExpandCheckFlgCall 参数定义
获取旗标的结果 RecipeExpandCheckFlgCall(player, flg)
- player: [数值型] 玩家的对象实例的索引
- flg: [数值型] 旗标数,一般为大于255的值,最大65535
返回值 0 或者 1,0表示未包含当前状态,1表示包含
RecipeExpandSetFlgCall 参数定义
设置旗标的结果 RecipeExpandSetFlgCall(player, flg)
- player: [数值型] 玩家的对象实例的索引
- flg: [数值型] 旗标数,一般为大于255的值,最大65535
将指定玩家的指定旗标设置为包含(1)状态
RecipeExpandClsFlgCall 参数定义
取消旗标的结果 RecipeExpandClsFlgCall(player, flg)
- player: [数值型] 玩家的对象实例的索引
- flg: [数值型] 旗标数,一般为大于255的值,最大65535
将指定玩家的指定旗标设置为不包含(0)状态
其他说明
扩充的旗标可以在gmsv自带脚本、称号判定等情况中正常使用。
例子
function RecipeExpandCheckFlgCall(player, flg)
NLG.SystemMessage(player, "获取角色是否习得"..flg.."号Recipe状态")
return 1
end
function RecipeExpandSetFlgCall(player, flg)
NLG.SystemMessage(player, "设置角色习得"..flg.."号Recipe")
return 1
end
function RecipeExpandClsFlgCall(player, flg)
NLG.SystemMessage(player, "设置角色忘记"..flg.."号Recipe")
return 1
end