235 lines
4.6 KiB
Lua
235 lines
4.6 KiB
Lua
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
|