Sys = {} Sys.EventCfg = {} --* 获取新建玩家数量 设置运行机器人或者系统任务 function Sys.calcNewHuman(actor) local _newHuman = Sys.getint(VarCfg.sys.int["新建玩家人数"]) or 0 if _newHuman < ConstCfg.botstartHuman then Sys.addint(VarCfg.sys.int["新建玩家人数"], 1) return else if Sys.getint(VarCfg.sys.int["开区时间戳"]) == 0 then Sys.setint(VarCfg.sys.int["开区时间戳"], os.time()) end end end GameEvent.add(EventCfg.onNewHuman, function(actor) Sys.calcNewHuman(actor) end, Sys) --------------* 普通变量----------------- ---* 设置系统普通str变量 function Sys.setstr(key, nValue,itype) SetSysStr(key, nValue,itype or 0) ---* 修改变量触发事件 if Sys.EventCfg[key] then GameEvent.push(Sys.EventCfg[key]) end end ---* 设置系统普通int变量 function Sys.setint(key, nValue,itype) SetSysInt(key, nValue,itype or 0) ---* 修改变量触发事件 if Sys.EventCfg[key] then GameEvent.push(Sys.EventCfg[key]) end end ---* 设置系统int变量+值 function Sys.addint(key, nValue,itype) SetSysInt(key, Sys.getint(key) + nValue,itype or 0) ---* 修改变量触发事件 if Sys.EventCfg[key] then GameEvent.push(Sys.EventCfg[key]) end end ---* 获取系统普通str变量 function Sys.getstr(key) return GetSysStr(key) end ---* 获取系统普通int变量 function Sys.getint(key) return GetSysInt(key) end --------------* 临时变量----------------- ---* 设置系统临时str变量 function Sys.settempstr(key, nValue) SetSysTempStr(key, nValue) ---* 修改变量触发事件 if Sys.EventCfg[key] then GameEvent.push(Sys.EventCfg[key]) end end ---* 设置系统临时int变量 function Sys.settempint(key, nValue) SetSysTempInt(key, nValue) ---* 修改变量触发事件 if Sys.EventCfg[key] then GameEvent.push(Sys.EventCfg[key]) end end ---* 设置系统临时int变量+值 function Sys.additempint(key, nValue) SetSysTempInt(key, Sys.gettempint(key) + nValue) ---* 修改变量触发事件 if Sys.EventCfg[key] then GameEvent.push(Sys.EventCfg[key]) end end ---* 获取系统临时str变量 function Sys.gettempstr(key) return GetSysTempStr(key) end ---* 获取系统临时int变量 function Sys.gettempint(key) return GetSysTempInt(key) end --------------------------* 期限变量------------------------------ ---* 设置系统期限str变量 ---* 系统对象 ---* 变量名 ---* 值 ---* 时间戳 可空 默认明天0点过期 ---@param key any ---@param value any ---@param time any function Sys.setTLstr(key, value, time) SetSysTLStr(key, value, time or DateOBJ.getTomorrowZero()) ---* 修改变量触发事件 if Sys.EventCfg[key] then GameEvent.push(Sys.EventCfg[key]) end end ---* 设置系统期限int变量 ---* 系统对象 ---* 变量名 ---* 值 ---* 时间戳 可空 默认明天0点过期 ---@param key any ---@param value any ---@param time any function Sys.setTLint(key, value, time) SetSysTLInt(key, value, time or DateOBJ.getTomorrowZero()) ---* 修改变量触发事件 if Sys.EventCfg[key] then GameEvent.push(Sys.EventCfg[key]) end end ---* 获取系统期限str变量 function Sys.getTLstr(key) local value, time = GetSysTLStr(key) return value end ---* 获取系统期限int变量 function Sys.getTLint(key) local value, time = GetSysTLInt(key) return value end -------------------- 键值类 --------------------------- function Sys.setkeycount(var, key, value) if var == nil then return false end if key == nil then return false end local tempvar = Sys.getstr(var) local data = tempvar and json2tblex(tempvar) or {} if not data[key] then data["J_" .. key] = value else data["J_" .. key] = value end Sys.setstr(var, tbl2json(data)) end ----* 获取键值对 function Sys.getkeycount(var, key) if var == nil then return false end if key == nil then return false end local tempvar = Sys.getstr(var) local data = tempvar and json2tblex(tempvar) or {} return data["J_"..key] or nil end -- 获取键值返回键值表 function Sys.getkeytbl(var) if var == nil then return false end local tempvar = Sys.getstr(var) local data = tempvar and json2tblex(tempvar) or {} local newData = {} for key, value in pairs(data or {}) do newData[key:gsub("J_", "")] = value end return newData end function Sys.delcountkey(var, key) if var == nil then return false end if key == nil then return false end local tempvar = Sys.getstr(var) local data = tempvar and json2tblex(tempvar) or {} if data["J_"..key] then data["J_"..key] = nil end Sys.setstr(var, tbl2json(data)) end return Sys