forked from endernon/PGRData
Add scripts
This commit is contained in:
parent
ca33d3ba39
commit
9bbd7f15cc
3127 changed files with 495695 additions and 1 deletions
|
@ -3,6 +3,7 @@
|
|||
|
||||
- Client
|
||||
- Share
|
||||
- Scripts
|
||||
- Sha1
|
||||
|
||||
## Known Issue
|
||||
|
@ -12,4 +13,8 @@ Share\Fight\Map\Info\Scene01102\PathArea
|
|||
Share\Fight\Map\Info\Scene01103\PathArea
|
||||
Share\Fight\Map\Info\Scene01207\PathArea
|
||||
Share\Fight\Map\Info\Scene01306\PathArea
|
||||
```
|
||||
```
|
||||
|
||||
## Dump progress
|
||||
Lua Scripts : dumped **3126/4096** with success rate **76%** \
|
||||
Data : dumped **3513/4095** with success rate **85%**
|
34
Resources/Scripts/XBehavior/XLuaBehaviorAgent.lua
Normal file
34
Resources/Scripts/XBehavior/XLuaBehaviorAgent.lua
Normal file
|
@ -0,0 +1,34 @@
|
|||
XLuaBehaviorAgent = XClass(nil, "XLuaBehaviorAgent")
|
||||
|
||||
function XLuaBehaviorAgent:Ctor(agentName, agentProxy)
|
||||
self.Name = agentName
|
||||
self.AgentProxy = agentProxy
|
||||
self.Agent = agentProxy.BTAgent
|
||||
end
|
||||
|
||||
function XLuaBehaviorAgent:OnAwake()
|
||||
end
|
||||
|
||||
function XLuaBehaviorAgent:OnStart()
|
||||
end
|
||||
|
||||
function XLuaBehaviorAgent:OnEnable()
|
||||
end
|
||||
|
||||
function XLuaBehaviorAgent:OnDisable()
|
||||
end
|
||||
|
||||
function XLuaBehaviorAgent:OnDestroy()
|
||||
end
|
||||
|
||||
function XLuaBehaviorAgent:OnUpdate()
|
||||
|
||||
end
|
||||
|
||||
function XLuaBehaviorAgent:OnNotify()
|
||||
|
||||
end
|
||||
|
||||
function XLuaBehaviorAgent:OnGetEvents()
|
||||
|
||||
end
|
61
Resources/Scripts/XBehavior/XLuaBehaviorManager.lua
Normal file
61
Resources/Scripts/XBehavior/XLuaBehaviorManager.lua
Normal file
|
@ -0,0 +1,61 @@
|
|||
CsXBehaviorManager = CS.BehaviorTree.XBehaviorTreeManager
|
||||
CsNodeStatus = CS.BehaviorTree.XNodeStatus
|
||||
CsBehaviorNodeType = CS.BehaviorTree.XBehaviorNodeType
|
||||
|
||||
XLuaBehaviorManager = {}
|
||||
|
||||
local NodeClassType = {}
|
||||
local AgentClassType = {}
|
||||
|
||||
--注册行为节点
|
||||
function XLuaBehaviorManager.RegisterNode(super, classType, nodeType, islua, needUpdate)
|
||||
super = XLuaBehaviorNode or super
|
||||
CsXBehaviorManager.Instance:RegisterLuaNodeProxy(classType, nodeType, islua, needUpdate)
|
||||
local behaviorNode = XClass(super, classType)
|
||||
NodeClassType[classType] = behaviorNode
|
||||
return behaviorNode
|
||||
end
|
||||
|
||||
--创建行为节点实例
|
||||
function XLuaBehaviorManager.NewLuaNodeProxy(className, nodeProxy)
|
||||
local baseName = className
|
||||
local class = NodeClassType[baseName]
|
||||
if not class then
|
||||
class = NodeClassType[baseName]
|
||||
if not class then
|
||||
XLog.Error("XLuaBehaviorManager.NewLuaNodeProxy error, class not exist, name: " .. className)
|
||||
return nil
|
||||
end
|
||||
end
|
||||
local obj = class.New(className, nodeProxy)
|
||||
return obj
|
||||
end
|
||||
|
||||
--注册行为主体
|
||||
function XLuaBehaviorManager.RegisterAgent(super, classType)
|
||||
super = XLuaBehaviorAgent or super
|
||||
CsXBehaviorManager.Instance:RegisterLuaAgentProxy(classType)
|
||||
local behaviorNode = XClass(super, classType)
|
||||
AgentClassType[classType] = behaviorNode
|
||||
return behaviorNode
|
||||
end
|
||||
|
||||
--创建行为主体实例
|
||||
function XLuaBehaviorManager.NewLuaAgentProxy(className, agentProxy)
|
||||
local baseName = className
|
||||
local class = AgentClassType[baseName]
|
||||
if not class then
|
||||
class = AgentClassType[baseName]
|
||||
if not class then
|
||||
XLog.Error("XLuaBehaviorManager.NewLuaAgentProxy error, class not exist, name: " .. className)
|
||||
return nil
|
||||
end
|
||||
end
|
||||
local obj = class.New(className, agentProxy)
|
||||
return obj
|
||||
end
|
||||
|
||||
|
||||
function XLuaBehaviorManager.PlayId(id, agent)
|
||||
agent:PlayBehavior(id)
|
||||
end
|
89
Resources/Scripts/XBehavior/XLuaBehaviorNode.lua
Normal file
89
Resources/Scripts/XBehavior/XLuaBehaviorNode.lua
Normal file
|
@ -0,0 +1,89 @@
|
|||
XLuaBehaviorNode = XClass(nil, "XLuaBehaviorNode")
|
||||
|
||||
function XLuaBehaviorNode:Ctor(className, nodeProxy)
|
||||
self.Name = className
|
||||
self.NodeProxy = nodeProxy
|
||||
self.Node = nodeProxy.Node
|
||||
self.BehaviorTree = nodeProxy.Node.BTree
|
||||
self:InitNodeData()
|
||||
end
|
||||
|
||||
--初始化数据
|
||||
function XLuaBehaviorNode:InitNodeData()
|
||||
|
||||
if not self.Node.Fields then
|
||||
self.Fields = nil
|
||||
return
|
||||
end
|
||||
|
||||
self.Fields = {}
|
||||
|
||||
local fields = self.Node.Fields.Fields
|
||||
|
||||
for _, v in pairs(fields) do
|
||||
self.Fields[v.FieldName] = v.Value
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
function XLuaBehaviorNode:OnAwake()
|
||||
|
||||
end
|
||||
|
||||
function XLuaBehaviorNode:SetAgent()
|
||||
self.Agent = self.BehaviorTree.BTAgent
|
||||
self.Proxy = self.Agent.Proxy
|
||||
self.AgentProxy = self.Agent.Proxy.LuaAgentProxy
|
||||
self:OnStart()
|
||||
end
|
||||
|
||||
function XLuaBehaviorNode:OnEnable()
|
||||
|
||||
end
|
||||
|
||||
function XLuaBehaviorNode:OnStart()
|
||||
|
||||
end
|
||||
|
||||
function XLuaBehaviorNode:OnRecycle()
|
||||
self.Agent = nil
|
||||
self.Proxy = nil
|
||||
self.AgentProxy = nil
|
||||
end
|
||||
|
||||
|
||||
function XLuaBehaviorNode:OnDisable()
|
||||
|
||||
end
|
||||
|
||||
function XLuaBehaviorNode:OnEnter()
|
||||
|
||||
end
|
||||
|
||||
function XLuaBehaviorNode:OnExit()
|
||||
end
|
||||
|
||||
function XLuaBehaviorNode:OnReset()
|
||||
|
||||
end
|
||||
|
||||
function XLuaBehaviorNode:OnDestroy()
|
||||
|
||||
end
|
||||
|
||||
function XLuaBehaviorNode:OnUpdate(dt)
|
||||
|
||||
end
|
||||
|
||||
function XLuaBehaviorNode:OnFixedUpdate(dt)
|
||||
|
||||
end
|
||||
|
||||
function XLuaBehaviorNode:OnNotify(evt, ...)
|
||||
|
||||
end
|
||||
|
||||
function XLuaBehaviorNode:OnGetEvents()
|
||||
|
||||
end
|
8
Resources/Scripts/XCommon/Fix.lua
Normal file
8
Resources/Scripts/XCommon/Fix.lua
Normal file
|
@ -0,0 +1,8 @@
|
|||
fix = CS.Mathematics.fix
|
||||
fix.zero = CS.Mathematics.fix.zero
|
||||
fix.hundred = CS.Mathematics.fix.hundred
|
||||
fix.thousand = CS.Mathematics.fix.thousand
|
||||
fix.deg2rad = CS.Mathematics.fix.deg2rad
|
||||
FixParse = CS.FixExtension.Parse
|
||||
FixToInt = CS.FixExtension.FixToInt
|
||||
FixToDouble = CS.FixExtension.FixToDouble
|
397
Resources/Scripts/XCommon/Json.lua
Normal file
397
Resources/Scripts/XCommon/Json.lua
Normal file
|
@ -0,0 +1,397 @@
|
|||
--
|
||||
-- json.lua
|
||||
--
|
||||
-- Copyright (c) 2019 rxi
|
||||
--
|
||||
-- Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
-- this software and associated documentation files (the "Software"), to deal in
|
||||
-- the Software without restriction, including without limitation the rights to
|
||||
-- use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
-- of the Software, and to permit persons to whom the Software is furnished to do
|
||||
-- so, subject to the following conditions:
|
||||
--
|
||||
-- The above copyright notice and this permission notice shall be included in all
|
||||
-- copies or substantial portions of the Software.
|
||||
--
|
||||
-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
-- SOFTWARE.
|
||||
--
|
||||
local json = { _version = "0.1.2" }
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
-- Encode
|
||||
-------------------------------------------------------------------------------
|
||||
local encode
|
||||
|
||||
local escape_char_map = {
|
||||
["\\"] = "\\\\",
|
||||
["\""] = "\\\"",
|
||||
["\b"] = "\\b",
|
||||
["\f"] = "\\f",
|
||||
["\n"] = "\\n",
|
||||
["\r"] = "\\r",
|
||||
["\t"] = "\\t",
|
||||
}
|
||||
|
||||
local escape_char_map_inv = {["\\/"] = "/" }
|
||||
for k, v in pairs(escape_char_map) do
|
||||
escape_char_map_inv[v] = k
|
||||
end
|
||||
|
||||
|
||||
local function escape_char(c)
|
||||
return escape_char_map[c] or string.format("\\u%04x", c:byte())
|
||||
end
|
||||
|
||||
|
||||
local function encode_nil()
|
||||
return "null"
|
||||
end
|
||||
|
||||
|
||||
local function encode_table(val, stack)
|
||||
local res = {}
|
||||
stack = stack or {}
|
||||
|
||||
-- Circular reference?
|
||||
if stack[val] then error("circular reference") end
|
||||
|
||||
stack[val] = true
|
||||
|
||||
if rawget(val, 1) ~= nil or next(val) == nil then
|
||||
-- Treat as array -- check keys are valid and it is not sparse
|
||||
local n = 0
|
||||
for k in pairs(val) do
|
||||
if type(k) ~= "number" then
|
||||
error("invalid table: mixed or invalid key types")
|
||||
end
|
||||
n = n + 1
|
||||
end
|
||||
if n ~= #val then
|
||||
error("invalid table: sparse array")
|
||||
end
|
||||
-- Encode
|
||||
for _, v in ipairs(val) do
|
||||
table.insert(res, encode(v, stack))
|
||||
end
|
||||
stack[val] = nil
|
||||
return "[" .. table.concat(res, ",") .. "]"
|
||||
|
||||
else
|
||||
-- Treat as an object
|
||||
for k, v in pairs(val) do
|
||||
if type(k) ~= "string" then
|
||||
error("invalid table: mixed or invalid key types")
|
||||
end
|
||||
table.insert(res, encode(k, stack) .. ":" .. encode(v, stack))
|
||||
end
|
||||
stack[val] = nil
|
||||
return "{" .. table.concat(res, ",") .. "}"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
local function encode_string(val)
|
||||
return '"' .. val:gsub('[%z\1-\31\\"]', escape_char) .. '"'
|
||||
end
|
||||
|
||||
|
||||
local function encode_number(val)
|
||||
-- Check for NaN, -inf and inf
|
||||
if val ~= val or val <= -math.huge or val >= math.huge then
|
||||
error("unexpected number value '" .. tostring(val) .. "'")
|
||||
end
|
||||
return string.format("%.14g", val)
|
||||
end
|
||||
|
||||
|
||||
local type_func_map = {
|
||||
["nil" ] = encode_nil,
|
||||
["table"] = encode_table,
|
||||
["string"] = encode_string,
|
||||
["number"] = encode_number,
|
||||
["boolean"] = tostring,
|
||||
}
|
||||
|
||||
|
||||
encode = function(val, stack)
|
||||
local t = type(val)
|
||||
local f = type_func_map[t]
|
||||
if f then
|
||||
return f(val, stack)
|
||||
end
|
||||
error("unexpected type '" .. t .. "'")
|
||||
end
|
||||
|
||||
|
||||
function json.encode(val)
|
||||
return (encode(val))
|
||||
end
|
||||
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
-- Decode
|
||||
-------------------------------------------------------------------------------
|
||||
local parse
|
||||
|
||||
local function create_set(...)
|
||||
local res = {}
|
||||
for i = 1, select("#", ...) do
|
||||
res[select(i, ...)] = true
|
||||
end
|
||||
return res
|
||||
end
|
||||
|
||||
local space_chars = create_set(" ", "\t", "\r", "\n")
|
||||
local delim_chars = create_set(" ", "\t", "\r", "\n", "]", "}", ",")
|
||||
local escape_chars = create_set("\\", "/", '"', "b", "f", "n", "r", "t", "u")
|
||||
local literals = create_set("true", "false", "null")
|
||||
|
||||
local literal_map = {
|
||||
["true"] = true,
|
||||
["false"] = false,
|
||||
["null"] = nil,
|
||||
}
|
||||
|
||||
|
||||
local function next_char(str, idx, set, negate)
|
||||
for i = idx, #str do
|
||||
if set[str:sub(i, i)] ~= negate then
|
||||
return i
|
||||
end
|
||||
end
|
||||
return #str + 1
|
||||
end
|
||||
|
||||
|
||||
local function decode_error(str, idx, msg)
|
||||
local line_count = 1
|
||||
local col_count = 1
|
||||
for i = 1, idx - 1 do
|
||||
col_count = col_count + 1
|
||||
if str:sub(i, i) == "\n" then
|
||||
line_count = line_count + 1
|
||||
col_count = 1
|
||||
end
|
||||
end
|
||||
error(string.format("%s at line %d col %d", msg, line_count, col_count))
|
||||
end
|
||||
|
||||
|
||||
local function codepoint_to_utf8(n)
|
||||
-- http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=iws-appendixa
|
||||
local f = math.floor
|
||||
if n <= 0x7f then
|
||||
return string.char(n)
|
||||
elseif n <= 0x7ff then
|
||||
return string.char(f(n / 64) + 192, n % 64 + 128)
|
||||
elseif n <= 0xffff then
|
||||
return string.char(f(n / 4096) + 224, f(n % 4096 / 64) + 128, n % 64 + 128)
|
||||
elseif n <= 0x10ffff then
|
||||
return string.char(f(n / 262144) + 240, f(n % 262144 / 4096) + 128,
|
||||
f(n % 4096 / 64) + 128, n % 64 + 128)
|
||||
end
|
||||
error(string.format("invalid unicode codepoint '%x'", n))
|
||||
end
|
||||
|
||||
|
||||
local function parse_unicode_escape(s)
|
||||
local n1 = tonumber(s:sub(3, 6), 16)
|
||||
local n2 = tonumber(s:sub(9, 12), 16)
|
||||
-- Surrogate pair?
|
||||
if n2 then
|
||||
return codepoint_to_utf8((n1 - 0xd800) * 0x400 + (n2 - 0xdc00) + 0x10000)
|
||||
else
|
||||
return codepoint_to_utf8(n1)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
local function parse_string(str, i)
|
||||
local has_unicode_escape = false
|
||||
local has_surrogate_escape = false
|
||||
local has_escape = false
|
||||
local last
|
||||
for j = i + 1, #str do
|
||||
local x = str:byte(j)
|
||||
|
||||
if x < 32 then
|
||||
decode_error(str, j, "control character in string")
|
||||
end
|
||||
|
||||
if last == 92 then -- "\\" (escape char)
|
||||
if x == 117 then -- "u" (unicode escape sequence)
|
||||
local hex = str:sub(j + 1, j + 5)
|
||||
if not hex:find("%x%x%x%x") then
|
||||
decode_error(str, j, "invalid unicode escape in string")
|
||||
end
|
||||
if hex:find("^[dD][89aAbB]") then
|
||||
has_surrogate_escape = true
|
||||
else
|
||||
has_unicode_escape = true
|
||||
end
|
||||
else
|
||||
local c = string.char(x)
|
||||
if not escape_chars[c] then
|
||||
decode_error(str, j, "invalid escape char '" .. c .. "' in string")
|
||||
end
|
||||
has_escape = true
|
||||
end
|
||||
last = nil
|
||||
|
||||
elseif x == 34 then -- '"' (end of string)
|
||||
local s = str:sub(i + 1, j - 1)
|
||||
if has_surrogate_escape then
|
||||
s = s:gsub("\\u[dD][89aAbB]..\\u....", parse_unicode_escape)
|
||||
end
|
||||
if has_unicode_escape then
|
||||
s = s:gsub("\\u....", parse_unicode_escape)
|
||||
end
|
||||
if has_escape then
|
||||
s = s:gsub("\\.", escape_char_map_inv)
|
||||
end
|
||||
return s, j + 1
|
||||
|
||||
else
|
||||
last = x
|
||||
end
|
||||
end
|
||||
decode_error(str, i, "expected closing quote for string")
|
||||
end
|
||||
|
||||
|
||||
local function parse_number(str, i)
|
||||
local x = next_char(str, i, delim_chars)
|
||||
local s = str:sub(i, x - 1)
|
||||
local n = tonumber(s)
|
||||
if not n then
|
||||
decode_error(str, i, "invalid number '" .. s .. "'")
|
||||
end
|
||||
return n, x
|
||||
end
|
||||
|
||||
|
||||
local function parse_literal(str, i)
|
||||
local x = next_char(str, i, delim_chars)
|
||||
local word = str:sub(i, x - 1)
|
||||
if not literals[word] then
|
||||
decode_error(str, i, "invalid literal '" .. word .. "'")
|
||||
end
|
||||
return literal_map[word], x
|
||||
end
|
||||
|
||||
|
||||
local function parse_array(str, i)
|
||||
local res = {}
|
||||
local n = 1
|
||||
i = i + 1
|
||||
while 1 do
|
||||
local x
|
||||
i = next_char(str, i, space_chars, true)
|
||||
-- Empty / end of array?
|
||||
if str:sub(i, i) == "]" then
|
||||
i = i + 1
|
||||
break
|
||||
end
|
||||
-- Read token
|
||||
x, i = parse(str, i)
|
||||
res[n] = x
|
||||
n = n + 1
|
||||
-- Next token
|
||||
i = next_char(str, i, space_chars, true)
|
||||
local chr = str:sub(i, i)
|
||||
i = i + 1
|
||||
if chr == "]" then break end
|
||||
if chr ~= "," then decode_error(str, i, "expected ']' or ','") end
|
||||
end
|
||||
return res, i
|
||||
end
|
||||
|
||||
|
||||
local function parse_object(str, i)
|
||||
local res = {}
|
||||
i = i + 1
|
||||
while 1 do
|
||||
local key, val
|
||||
i = next_char(str, i, space_chars, true)
|
||||
-- Empty / end of object?
|
||||
if str:sub(i, i) == "}" then
|
||||
i = i + 1
|
||||
break
|
||||
end
|
||||
-- Read key
|
||||
if str:sub(i, i) ~= '"' then
|
||||
decode_error(str, i, "expected string for key")
|
||||
end
|
||||
key, i = parse(str, i)
|
||||
-- Read ':' delimiter
|
||||
i = next_char(str, i, space_chars, true)
|
||||
if str:sub(i, i) ~= ":" then
|
||||
decode_error(str, i, "expected ':' after key")
|
||||
end
|
||||
i = next_char(str, i + 1, space_chars, true)
|
||||
-- Read value
|
||||
val, i = parse(str, i)
|
||||
-- Set
|
||||
res[key] = val
|
||||
-- Next token
|
||||
i = next_char(str, i, space_chars, true)
|
||||
local chr = str:sub(i, i)
|
||||
i = i + 1
|
||||
if chr == "}" then break end
|
||||
if chr ~= "," then decode_error(str, i, "expected '}' or ','") end
|
||||
end
|
||||
return res, i
|
||||
end
|
||||
|
||||
|
||||
local char_func_map = {
|
||||
['"'] = parse_string,
|
||||
["0"] = parse_number,
|
||||
["1"] = parse_number,
|
||||
["2"] = parse_number,
|
||||
["3"] = parse_number,
|
||||
["4"] = parse_number,
|
||||
["5"] = parse_number,
|
||||
["6"] = parse_number,
|
||||
["7"] = parse_number,
|
||||
["8"] = parse_number,
|
||||
["9"] = parse_number,
|
||||
["-"] = parse_number,
|
||||
["t"] = parse_literal,
|
||||
["f"] = parse_literal,
|
||||
["n"] = parse_literal,
|
||||
["["] = parse_array,
|
||||
["{"] = parse_object,
|
||||
}
|
||||
|
||||
|
||||
parse = function(str, idx)
|
||||
local chr = str:sub(idx, idx)
|
||||
local f = char_func_map[chr]
|
||||
if f then
|
||||
return f(str, idx)
|
||||
end
|
||||
decode_error(str, idx, "unexpected character '" .. chr .. "'")
|
||||
end
|
||||
|
||||
|
||||
function json.decode(str)
|
||||
if type(str) ~= "string" then
|
||||
error("expected argument of type string, got " .. type(str))
|
||||
end
|
||||
local res, idx = parse(str, next_char(str, 1, space_chars, true))
|
||||
idx = next_char(str, idx, space_chars, true)
|
||||
if idx <= #str then
|
||||
decode_error(str, idx, "trailing garbage")
|
||||
end
|
||||
return res
|
||||
end
|
||||
|
||||
|
||||
return json
|
35
Resources/Scripts/XCommon/XAnalyticsEvent.lua
Normal file
35
Resources/Scripts/XCommon/XAnalyticsEvent.lua
Normal file
|
@ -0,0 +1,35 @@
|
|||
--==============================--
|
||||
-- 通用数据收集事件
|
||||
--==============================--
|
||||
XAnalyticsEvent = XAnalyticsEvent or {}
|
||||
|
||||
local OnRoleCreate = function()
|
||||
if XUserManager.Channel == XUserManager.CHANNEL.HERO then
|
||||
XHeroSdkManager.CreateNewRole()
|
||||
end
|
||||
end
|
||||
|
||||
local OnLogin = function()
|
||||
if XUserManager.Channel == XUserManager.CHANNEL.HERO then
|
||||
XHeroSdkManager.EnterGame()
|
||||
end
|
||||
|
||||
CS.BuglyAgent.SetUserId(tostring(XPlayer.Id))
|
||||
end
|
||||
|
||||
local OnLevelUp = function()
|
||||
if XUserManager.Channel == XUserManager.CHANNEL.HERO then
|
||||
XHeroSdkManager.RoleLevelUp()
|
||||
end
|
||||
end
|
||||
|
||||
local OnLogout = function()
|
||||
|
||||
end
|
||||
|
||||
function XAnalyticsEvent.Init()
|
||||
XEventManager.AddEventListener(XEventId.EVENT_NEW_PLAYER, OnRoleCreate)
|
||||
XEventManager.AddEventListener(XEventId.EVENT_LOGIN_SUCCESS, OnLogin)
|
||||
XEventManager.AddEventListener(XEventId.EVENT_PLAYER_LEVEL_CHANGE, OnLevelUp)
|
||||
XEventManager.AddEventListener(XEventId.EVENT_USER_LOGOUT, OnLogout)
|
||||
end
|
171
Resources/Scripts/XCommon/XBindTools.lua
Normal file
171
Resources/Scripts/XCommon/XBindTools.lua
Normal file
|
@ -0,0 +1,171 @@
|
|||
local rawget = rawget
|
||||
local rawset = rawset
|
||||
local getmetatable = getmetatable
|
||||
local setmetatable = setmetatable
|
||||
|
||||
XBindTool = XBindTool or {}
|
||||
|
||||
local oldPairs = pairs
|
||||
|
||||
local pairs = function(arr)
|
||||
local meta_t = getmetatable(arr)
|
||||
if meta_t and meta_t.__pairs then
|
||||
return meta_t.__pairs(arr)
|
||||
end
|
||||
return oldPairs(arr)
|
||||
end
|
||||
|
||||
local function InitBind(obj)
|
||||
if rawget(obj, "___isBinded") then return end
|
||||
|
||||
local store = {}
|
||||
for key, _ in pairs(obj) do
|
||||
local v = rawget(obj, key)
|
||||
if v ~= nil then
|
||||
store[key] = v
|
||||
obj[key] = nil
|
||||
end
|
||||
end
|
||||
|
||||
local meta_t = getmetatable(obj)
|
||||
if meta_t then setmetatable(store, meta_t) end
|
||||
|
||||
setmetatable(obj, {
|
||||
__index = function(_, index)
|
||||
local ret = rawget(obj, index)
|
||||
if ret ~= nil then return ret end
|
||||
return store[index]
|
||||
end,
|
||||
__newindex = function(_, index, v)
|
||||
local event = rawget(obj, "___bind_event")
|
||||
local old_v = store[index]
|
||||
store[index] = v
|
||||
if old_v ~= v then
|
||||
if event and event[index] then
|
||||
event[index].running = true
|
||||
for key, func in pairs(event[index].callList) do
|
||||
if not event[index].removeList[key] then
|
||||
func(v, old_v)
|
||||
end
|
||||
end
|
||||
event[index].running = nil
|
||||
if next(event[index].removeList) then
|
||||
for removeIndex, _ in pairs(event[index].removeList) do
|
||||
event[index].callList[removeIndex] = nil
|
||||
end
|
||||
event[index].removeList = {}
|
||||
end
|
||||
end
|
||||
end
|
||||
end,
|
||||
__pairs = function(_)
|
||||
return oldPairs(store)
|
||||
end
|
||||
})
|
||||
|
||||
rawset(obj, "___isBinded", true)
|
||||
rawset(obj, "___bind_store", store)
|
||||
rawset(obj, "___bind_event", {})
|
||||
rawset(obj, "___bind_id", 0)
|
||||
end
|
||||
|
||||
function XBindTool.BindAttr(obj, attr, callback)
|
||||
InitBind(obj)
|
||||
|
||||
local event = rawget(obj, "___bind_event")
|
||||
local id = rawget(obj, "___bind_id")
|
||||
event[attr] = event[attr] or { callList = {}, removeList = {} }
|
||||
id = id + 1
|
||||
rawset(obj, "___bind_id", id)
|
||||
event[attr].callList[id] = callback
|
||||
|
||||
local value = obj[attr]
|
||||
if value ~= nil then
|
||||
callback(value)
|
||||
end
|
||||
return { obj = obj, attr = attr, id = id }
|
||||
end
|
||||
|
||||
function XBindTool.GetBindInfo(val)
|
||||
if type(val) ~= "table" then return val, false end
|
||||
if not rawget(val, "___isBinded") then return val, false end
|
||||
return rawget(val, "___bind_store"), true
|
||||
end
|
||||
|
||||
function XBindTool.UnBind(handle)
|
||||
local event = rawget(handle.obj, "___bind_event")
|
||||
if event and event[handle.attr] then
|
||||
if event[handle.attr].running then
|
||||
event[handle.attr].removeList[handle.id] = true
|
||||
else
|
||||
event[handle.attr].callList[handle.id] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XBindTool.UnBindObj(obj)
|
||||
local event = rawget(obj, "___bind_event")
|
||||
if event then
|
||||
for _, attrListener in pairs(event) do
|
||||
if attrListener.running then
|
||||
for key, _ in pairs(attrListener.callList) do
|
||||
attrListener.removeList[key] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
rawset(obj, "___bind_event", {})
|
||||
end
|
||||
end
|
||||
|
||||
local NodeBindInfoRecord = {}
|
||||
|
||||
function XBindTool.BindNode(node, obj, attr, func, unbindFunc)
|
||||
if not NodeBindInfoRecord[node] then
|
||||
NodeBindInfoRecord[node] = {}
|
||||
end
|
||||
local bindInfo = NodeBindInfoRecord[node]
|
||||
bindInfo[obj] = bindInfo[obj] or { length = 0, record = {} }
|
||||
local checkExist
|
||||
if node.Exist then
|
||||
checkExist = function() return node:Exist() end
|
||||
else
|
||||
local gameObject = node.GameObject or node.gameObject or node.Transform or node.transform
|
||||
if gameObject and gameObject.Exist then
|
||||
checkExist = function() return gameObject:Exist() end
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
local handle
|
||||
if checkExist then
|
||||
handle = XBindTool.BindAttr(obj, attr, function(...)
|
||||
if not checkExist() then
|
||||
XBindTool.UnBindNode(node)
|
||||
if unbindFunc then
|
||||
unbindFunc()
|
||||
end
|
||||
else
|
||||
func(...)
|
||||
end
|
||||
end)
|
||||
else
|
||||
handle = XBindTool.BindAttr(obj, attr, func)
|
||||
end
|
||||
|
||||
bindInfo[obj].record[handle.id] = handle
|
||||
bindInfo[obj].length = bindInfo[obj].length + 1
|
||||
return handle
|
||||
end
|
||||
|
||||
function XBindTool.UnBindNode(node)
|
||||
local bindInfo = NodeBindInfoRecord[node]
|
||||
if bindInfo then
|
||||
for key, val in pairs(bindInfo) do
|
||||
for _, item in pairs(val.record) do
|
||||
XBindTool.UnBind(item)
|
||||
end
|
||||
bindInfo[key] = nil
|
||||
end
|
||||
NodeBindInfoRecord[node] = nil
|
||||
end
|
||||
end
|
111
Resources/Scripts/XCommon/XCameraHelper.lua
Normal file
111
Resources/Scripts/XCommon/XCameraHelper.lua
Normal file
|
@ -0,0 +1,111 @@
|
|||
XCameraHelper = XCameraHelper or {}
|
||||
|
||||
function XCameraHelper.SetCameraTarget(cameraCtrl, targetTrans, distance)
|
||||
if cameraCtrl and cameraCtrl:Exist() then
|
||||
distance = distance or 0
|
||||
cameraCtrl:SetLookAt(targetTrans, distance)
|
||||
end
|
||||
end
|
||||
|
||||
XCameraHelper.SCREEN_SHOT_WIDTH = 1920;
|
||||
XCameraHelper.SCREEN_SHOT_HEIGHT = 1080;
|
||||
XCameraHelper.DefaultRect = CS.UnityEngine.Rect(0, 0, XCameraHelper.SCREEN_SHOT_WIDTH, XCameraHelper.SCREEN_SHOT_HEIGHT);
|
||||
XCameraHelper.ScreenRect = CS.UnityEngine.Rect(0, 0, CS.UnityEngine.Screen.width, CS.UnityEngine.Screen.height)
|
||||
|
||||
function XCameraHelper.ScreenShot(image, beginCb, cb)
|
||||
if beginCb then
|
||||
beginCb()
|
||||
end
|
||||
CS.XTool.WaitForEndOfFrame(function()
|
||||
local screenShot = XCameraHelper.DoScreenShot(image)
|
||||
if cb then
|
||||
cb(screenShot)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
-- 截取屏幕画面到image中 (注意内存开销,需使用后及时释放)
|
||||
-- image Image组件
|
||||
-- cameraFar Camera组件
|
||||
-- cameraNear Camera组件(可选)
|
||||
function XCameraHelper.DoScreenShot(image)
|
||||
if XTool.UObjIsNil(image) then
|
||||
XLog.Error("ScreenShot image is nil")
|
||||
return
|
||||
end
|
||||
|
||||
-- if XTool.UObjIsNil(cameraFar) then
|
||||
-- XLog.Error("ScreenShot cameraFar is nil")
|
||||
-- return
|
||||
-- end
|
||||
|
||||
local rect = XCameraHelper.ScreenRect
|
||||
-- -- 创建一个rt对象
|
||||
-- local rt = CS.UnityEngine.RenderTexture(rect.width, rect.height, 24)
|
||||
-- rt.antiAliasing = 8
|
||||
|
||||
-- cameraFar.targetTexture = rt;
|
||||
-- if not XTool.UObjIsNil(cameraNear) then
|
||||
-- cameraNear.targetTexture = rt
|
||||
-- end
|
||||
|
||||
-- cameraFar:Render();
|
||||
-- if not XTool.UObjIsNil(cameraNear) then
|
||||
-- cameraNear:Render()
|
||||
-- end
|
||||
|
||||
-- local currentRT = CS.UnityEngine.RenderTexture.active
|
||||
-- -- 激活rt 读取像素
|
||||
-- CS.UnityEngine.RenderTexture.active = rt;
|
||||
local screenShot = CS.UnityEngine.Texture2D(rect.width, rect.height, CS.UnityEngine.TextureFormat.RGB24, false);
|
||||
screenShot:ReadPixels(rect, 0, 0);
|
||||
screenShot:Apply();
|
||||
|
||||
-- 重置相关参数
|
||||
-- cameraFar.targetTexture = nil;
|
||||
-- if not XTool.UObjIsNil(cameraNear) then
|
||||
-- cameraNear.targetTexture = nil;
|
||||
-- end
|
||||
|
||||
-- CS.UnityEngine.RenderTexture.active = currentRT;
|
||||
-- CS.UnityEngine.Object.Destroy(rt);
|
||||
|
||||
local sprite = CS.UnityEngine.Sprite.Create(screenShot, rect, CS.UnityEngine.Vector2.zero);
|
||||
image.sprite = sprite
|
||||
|
||||
return screenShot
|
||||
end
|
||||
|
||||
-- 调用该接口,由ScreenCaptureWithCallBack回调函数传出的Texture用完后必须销毁
|
||||
function XCameraHelper.ScreenShotNew(image, camera, cb, beginCb)
|
||||
if not image then
|
||||
XLog.Error("ScreenShot Call invalid parameter:image is nil")
|
||||
return
|
||||
end
|
||||
|
||||
if not camera then
|
||||
XLog.Error("ScreenShot Call invalid parameter:camera is nil")
|
||||
return
|
||||
end
|
||||
|
||||
if not cb then
|
||||
XLog.Error("The ScreenShot API Must Need CallBack")
|
||||
return
|
||||
end
|
||||
|
||||
-- if not XTool.UObjIsNil(image.mainTexture) and image.mainTexture.name ~= "UnityWhite" then -- 销毁texture2d (UnityWhite为默认的texture2d)
|
||||
-- CS.UnityEngine.Object.Destroy(image.mainTexture)
|
||||
-- end
|
||||
|
||||
if beginCb then
|
||||
beginCb()
|
||||
end
|
||||
CS.XScreenCapture.ScreenCaptureWithCallBack(camera,function(texture)
|
||||
local rect = CS.UnityEngine.Rect(0, 0, texture.width, texture.height)
|
||||
local sprite = CS.UnityEngine.Sprite.Create(texture, rect, CS.UnityEngine.Vector2.zero);
|
||||
image.sprite = sprite
|
||||
if cb then
|
||||
cb(texture)
|
||||
end
|
||||
end)
|
||||
end
|
81
Resources/Scripts/XCommon/XClass.lua
Normal file
81
Resources/Scripts/XCommon/XClass.lua
Normal file
|
@ -0,0 +1,81 @@
|
|||
local getinfo = debug.getinfo
|
||||
local type = type
|
||||
|
||||
local _class = {}
|
||||
local _classNameDic = {}
|
||||
|
||||
function XClass(super, className)
|
||||
local class
|
||||
|
||||
if XMain.IsEditorDebug then
|
||||
local fullClassName = className .. getinfo(2, "S").source
|
||||
class = _classNameDic[fullClassName]
|
||||
if class then
|
||||
return class
|
||||
end
|
||||
|
||||
class = {}
|
||||
_classNameDic[fullClassName] = class
|
||||
else
|
||||
class = {}
|
||||
end
|
||||
|
||||
class.Ctor = false
|
||||
class.Super = super
|
||||
class.New = function(...)
|
||||
local obj = {}
|
||||
setmetatable(obj, { __index = _class[class] })
|
||||
do
|
||||
local create
|
||||
create = function(c, ...)
|
||||
if c.Super then
|
||||
create(c.Super, ...)
|
||||
end
|
||||
|
||||
if c.Ctor then
|
||||
c.Ctor(obj, ...)
|
||||
end
|
||||
end
|
||||
create(class, ...)
|
||||
end
|
||||
return obj
|
||||
end
|
||||
|
||||
local vtbl = {}
|
||||
_class[class] = vtbl
|
||||
|
||||
setmetatable(class, {
|
||||
__newindex = function(_, k, v)
|
||||
vtbl[k] = v
|
||||
end,
|
||||
__index = function(_, k)
|
||||
return vtbl[k]
|
||||
end
|
||||
})
|
||||
|
||||
if super then
|
||||
setmetatable(vtbl, {
|
||||
__index = function(_, k)
|
||||
local ret = _class[super][k]
|
||||
vtbl[k] = ret
|
||||
return ret
|
||||
end
|
||||
})
|
||||
end
|
||||
|
||||
return class
|
||||
end
|
||||
|
||||
function UpdateClassType(newClass, oldClass)
|
||||
if "table" ~= type(newClass) then return end
|
||||
if "table" ~= type(oldClass) then return end
|
||||
|
||||
if oldClass == newClass then return end
|
||||
|
||||
local new_vtbl = _class[newClass]
|
||||
local old_vtbl = _class[oldClass]
|
||||
if not new_vtbl or not old_vtbl then return end
|
||||
|
||||
_class[oldClass] = new_vtbl
|
||||
_class[newClass] = nil
|
||||
end
|
2526
Resources/Scripts/XCommon/XCode.lua
Normal file
2526
Resources/Scripts/XCommon/XCode.lua
Normal file
File diff suppressed because it is too large
Load diff
123
Resources/Scripts/XCommon/XCountDown.lua
Normal file
123
Resources/Scripts/XCommon/XCountDown.lua
Normal file
|
@ -0,0 +1,123 @@
|
|||
XCountDown = XCountDown or {}
|
||||
|
||||
XCountDown.GTimerName = {
|
||||
UrgentEvent = "UrgentEvent",
|
||||
FubenInfestorExplore = "FubenInfestorExplore",
|
||||
FubenInfestorExploreDaily = "FubenInfestorExploreDaily",
|
||||
Stronghold = "Stronghold", --超级据点活动倒计时
|
||||
KillZone = "KillZone", --杀戮无双活动倒计时
|
||||
}
|
||||
|
||||
-- 倒计时存储容器
|
||||
-- bindCnt : 当前倒计时的总数
|
||||
-- record : 倒计时
|
||||
-- record[name] : 通过倒计时命名来记录
|
||||
-- record[name].remainTime : 剩余时间
|
||||
-- record[name].lastTime : 最后一次绑定时间
|
||||
-- record[name].bindCnt : 单个命名绑定的倒计时的个数
|
||||
-- record[name].nodeList : 记录当前名字存下的节点
|
||||
-- timeHandle : 处理事件
|
||||
local TimerRecord = { bindCnt = 0, record = {}, timeHandle = nil }
|
||||
|
||||
local function UpdateTimerRecord()
|
||||
local now = XTime.GetServerNowTimestamp()
|
||||
for _, v in pairs(TimerRecord.record) do
|
||||
if v.bindCnt > 0 and v.remainTime > 0 then
|
||||
v.remainTime = v.remainTime - (now - v.lastTime)
|
||||
v.lastTime = now
|
||||
if v.remainTime < 0 then
|
||||
v.remainTime = 0
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XCountDown.CreateTimer(name, remainTime, now)
|
||||
if not TimerRecord.record[name] then
|
||||
TimerRecord.record[name] = {
|
||||
bindCnt = 0,
|
||||
}
|
||||
end
|
||||
now = now or XTime.GetServerNowTimestamp()
|
||||
TimerRecord.record[name].remainTime = remainTime
|
||||
TimerRecord.record[name].lastTime = now
|
||||
end
|
||||
|
||||
function XCountDown.RemoveTimer(name)
|
||||
local record = TimerRecord.record[name]
|
||||
if record then
|
||||
TimerRecord.bindCnt = TimerRecord.bindCnt - record.bindCnt
|
||||
XBindTool.UnBindObj(record)
|
||||
TimerRecord.record[name] = nil
|
||||
if TimerRecord.bindCnt == 0 and TimerRecord.timeHandle then
|
||||
XScheduleManager.UnSchedule(TimerRecord.timeHandle)
|
||||
TimerRecord.timeHandle = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XCountDown.GetRemainTime(name)
|
||||
local record = TimerRecord.record[name]
|
||||
if record then
|
||||
local now = XTime.GetServerNowTimestamp()
|
||||
if record.bindCnt > 0 and record.remainTime > 0 then
|
||||
record.remainTime = record.remainTime - (now - record.lastTime)
|
||||
record.lastTime = now
|
||||
if record.remainTime < 0 then
|
||||
record.remainTime = 0
|
||||
end
|
||||
end
|
||||
return record.remainTime
|
||||
else
|
||||
return 0
|
||||
end
|
||||
end
|
||||
|
||||
function XCountDown.BindTimer(node, name, cb)
|
||||
local record = TimerRecord.record[name]
|
||||
if record then
|
||||
if not record.nodeList then
|
||||
record.nodeList = {}
|
||||
end
|
||||
table.insert(record.nodeList, node)
|
||||
|
||||
if not TimerRecord.timeHandle then
|
||||
TimerRecord.timeHandle = XScheduleManager.ScheduleForever(function()
|
||||
UpdateTimerRecord()
|
||||
end, XScheduleManager.SECOND, 0)
|
||||
UpdateTimerRecord()
|
||||
end
|
||||
|
||||
TimerRecord.bindCnt = TimerRecord.bindCnt + 1
|
||||
record.bindCnt = record.bindCnt + 1
|
||||
XBindTool.BindNode(node, record, "remainTime", cb, function()
|
||||
TimerRecord.bindCnt = TimerRecord.bindCnt - 1
|
||||
record.bindCnt = record.bindCnt - 1
|
||||
if TimerRecord.bindCnt == 0 then
|
||||
XScheduleManager.UnSchedule(TimerRecord.timeHandle)
|
||||
TimerRecord.timeHandle = nil
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
function XCountDown.UnBindTimer(curNode, name)
|
||||
XBindTool.UnBindNode(curNode)
|
||||
|
||||
local record = TimerRecord.record[name]
|
||||
if not record or not record.nodeList then
|
||||
return
|
||||
end
|
||||
|
||||
for i = 1, #record.nodeList do
|
||||
if record.nodeList[i] == curNode then
|
||||
TimerRecord.bindCnt = TimerRecord.bindCnt - 1
|
||||
record.bindCnt = record.bindCnt - 1
|
||||
if TimerRecord.bindCnt == 0 then
|
||||
XScheduleManager.UnSchedule(TimerRecord.timeHandle)
|
||||
TimerRecord.timeHandle = nil
|
||||
end
|
||||
table.remove(record.nodeList, i)
|
||||
end
|
||||
end
|
||||
end
|
268
Resources/Scripts/XCommon/XDynamicList.lua
Normal file
268
Resources/Scripts/XCommon/XDynamicList.lua
Normal file
|
@ -0,0 +1,268 @@
|
|||
XDynamicList = XClass(nil, "XDynamicList")
|
||||
|
||||
DLDelegateEvent = {
|
||||
DYNAMIC_GRID_TOUCHED = 5,
|
||||
DYNAMIC_GRID_ATINDEX = 6,
|
||||
DYNAMIC_GRID_RECYCLE = 7,
|
||||
}
|
||||
|
||||
DLInsertDataDir = {
|
||||
None = 0,
|
||||
Head = 1,
|
||||
Tail = 2,
|
||||
}
|
||||
|
||||
DLScrollDataDir = {
|
||||
None = 0,
|
||||
Head = 1,
|
||||
Tail = 2
|
||||
}
|
||||
|
||||
function XDynamicList:DebugLog(...)
|
||||
if self.showLog then
|
||||
XLog.Error(...)
|
||||
end
|
||||
end
|
||||
|
||||
function XDynamicList:Ctor(ui)
|
||||
self.GameObject = ui.gameObject
|
||||
self.Transform = ui.transform
|
||||
self.ItemCache = {}
|
||||
|
||||
self.showLog = false
|
||||
|
||||
self:ResetData()
|
||||
self:InitView()
|
||||
end
|
||||
|
||||
function XDynamicList:ResetData()--重置数据
|
||||
self.Data = {}
|
||||
self.curDataMaxIndex = 0--当前数据最大的索引
|
||||
self.dataHeadIndex = -1 --当前数据头索引
|
||||
self.dataTailIndex = -1--当前数据尾索引
|
||||
self.NodeListData = {}
|
||||
|
||||
self.curShowHeadIndex = -1--当前展示的头索引
|
||||
self.curShowTailIndex = -1--当前展示的尾索引
|
||||
end
|
||||
|
||||
function XDynamicList:InitView()
|
||||
self.DynamicList = self.Transform:GetComponent("XVerticalDynamicList")
|
||||
self.DynamicListBar = self.DynamicList.verticalScrollbar
|
||||
if self.DynamicList == nil then
|
||||
XLog.Error("Not Find XVerticalDynamicList Component!")
|
||||
return
|
||||
end
|
||||
self.DynamicList:SetViewSize(self.Transform:GetComponent("RectTransform").rect.size)
|
||||
end
|
||||
|
||||
function XDynamicList:SetData(data, cb)--设置数据
|
||||
self:DebugLog("------数据初始化----", data)
|
||||
self:ResetData()
|
||||
self.CallBack = cb
|
||||
self.DynamicList.tableViewGridDelegate = function(evt, index, dir)
|
||||
return self:GenerateItem(evt, dir, index)
|
||||
end
|
||||
self:FormatData(data)
|
||||
end
|
||||
|
||||
function XDynamicList:FormatData(data)--格式化数据
|
||||
if data == nil then
|
||||
XLog.Error("------FormatData is error!------> data is nil! please check!")
|
||||
return
|
||||
end
|
||||
self.dataHeadIndex = 1
|
||||
self.dataTailIndex = #data
|
||||
self.NodeListData = {}
|
||||
for i = 1, self.dataTailIndex do
|
||||
self.curDataMaxIndex = self.curDataMaxIndex + 1
|
||||
local temp = {}
|
||||
temp.data = data[i]
|
||||
temp.index = self.curDataMaxIndex
|
||||
temp.Pre = (i == 1) and -1 or self.curDataMaxIndex - 1
|
||||
temp.Next = (i == #data) and -1 or self.curDataMaxIndex + 1
|
||||
self.NodeListData[self.curDataMaxIndex] = temp
|
||||
end
|
||||
self:DebugLog("------FormatData------", self.NodeListData)
|
||||
self:ReloadData()
|
||||
end
|
||||
|
||||
function XDynamicList:ReloadData()
|
||||
-- if #self.NodeListData <= 0 then
|
||||
-- return
|
||||
-- end
|
||||
self.curShowTailIndex = -1
|
||||
self.curShowHeadIndex = -1
|
||||
self.DynamicList.TotalCount = #self.NodeListData
|
||||
self.DynamicList:ReloadData(true)
|
||||
self:DebugLog("------ReloadData------", self.NodeListData)
|
||||
end
|
||||
|
||||
function XDynamicList:InsertData(insertData, dir, isReload)--插入数据
|
||||
if #insertData == 0 then
|
||||
XLog.Error("-----------insertData is null--------------")
|
||||
return
|
||||
end
|
||||
local tempDataHeadIndex = self.dataHeadIndex
|
||||
local tempDataTailIndex = self.dataTailIndex
|
||||
for i = 1, #insertData do
|
||||
self.curDataMaxIndex = self.curDataMaxIndex + 1
|
||||
local temp = {}
|
||||
temp.data = insertData[i]
|
||||
temp.index = self.curDataMaxIndex
|
||||
if dir == DLInsertDataDir.Head then
|
||||
temp.Pre = (i == 1) and -1 or self.curDataMaxIndex - 1
|
||||
if #self.NodeListData == 0 then
|
||||
temp.Next = -1
|
||||
else
|
||||
temp.Next = (i == #insertData) and self.dataHeadIndex or self.curDataMaxIndex + 1
|
||||
end
|
||||
if i == 1 then
|
||||
tempDataHeadIndex = self.curDataMaxIndex
|
||||
end
|
||||
if i == #insertData and #self.NodeListData > 0 then
|
||||
self.NodeListData[self.dataHeadIndex].Pre = self.curDataMaxIndex
|
||||
end
|
||||
elseif dir == DLInsertDataDir.Tail then
|
||||
if #self.NodeListData == 0 then
|
||||
temp.Pre = -1
|
||||
else
|
||||
temp.Pre = (i == 1) and self.dataTailIndex or self.curDataMaxIndex - 1
|
||||
end
|
||||
temp.Next = (i == #insertData) and -1 or self.curDataMaxIndex + 1
|
||||
if i == 1 and #self.NodeListData > 0 then
|
||||
self.NodeListData[self.dataTailIndex].Next = self.curDataMaxIndex
|
||||
end
|
||||
if i == #insertData then
|
||||
tempDataTailIndex = self.curDataMaxIndex
|
||||
end
|
||||
end
|
||||
self.NodeListData[self.curDataMaxIndex] = temp
|
||||
end
|
||||
self.dataHeadIndex = tempDataHeadIndex
|
||||
self.dataTailIndex = tempDataTailIndex
|
||||
self:AddTotalCount(#insertData, dir)
|
||||
if isReload then
|
||||
self:ReloadData()
|
||||
end
|
||||
end
|
||||
|
||||
function XDynamicList:AddTotalCount(addCount, dir)
|
||||
self.DynamicList.TotalCount = self.DynamicList.TotalCount + addCount;
|
||||
if dir == DLInsertDataDir.Head then
|
||||
self.DynamicList.StartIndex = self.DynamicList.StartIndex + addCount
|
||||
-- self.DynamicList.EndIndex = self.DynamicList.EndIndex + addCount
|
||||
end
|
||||
end
|
||||
|
||||
function XDynamicList:GenerateItem(evt, dir, index)
|
||||
if self.DynamicListBar then
|
||||
if self:GetBarValue() <= 0 then--拉到底了
|
||||
XEventManager.DispatchEvent(XEventId.EVENT_PULL_SCROLLVIEW_END, 0)
|
||||
-- 添加新事件系统触发
|
||||
CsXGameEventManager.Instance:Notify(XEventId.EVENT_PULL_SCROLLVIEW_END, 0)
|
||||
elseif self:GetBarValue() >= 1 then--拉到顶了
|
||||
XEventManager.DispatchEvent(XEventId.EVENT_PULL_SCROLLVIEW_UP, 0)
|
||||
-- 添加新事件系统触发
|
||||
CsXGameEventManager.Instance:Notify(XEventId.EVENT_PULL_SCROLLVIEW_UP, 0)
|
||||
end
|
||||
end
|
||||
if not self.CallBack then
|
||||
XLog.Error("You must be set callBack......")
|
||||
return
|
||||
end
|
||||
if evt == DLDelegateEvent.DYNAMIC_GRID_ATINDEX then
|
||||
if #self.NodeListData == 0 then
|
||||
return true
|
||||
end
|
||||
local curShowDataIndex = nil--下一个需要展示的数据index
|
||||
if dir == DLScrollDataDir.Head then
|
||||
if not self.NodeListData[self.curShowHeadIndex] then
|
||||
return true
|
||||
end
|
||||
if self.NodeListData[self.curShowHeadIndex].Pre == -1 then
|
||||
return true
|
||||
end
|
||||
self.curShowHeadIndex = self.NodeListData[self.curShowHeadIndex].Pre
|
||||
curShowDataIndex = self.curShowHeadIndex
|
||||
elseif dir == DLScrollDataDir.Tail then
|
||||
if self.curShowTailIndex == -1 and self.curShowHeadIndex == -1 then
|
||||
self.curShowHeadIndex = self.dataHeadIndex
|
||||
self.curShowTailIndex = self.dataHeadIndex
|
||||
else
|
||||
if not self.NodeListData[self.curShowTailIndex] then
|
||||
return true
|
||||
end
|
||||
if self.NodeListData[self.curShowTailIndex].Next == -1 then
|
||||
return true
|
||||
end
|
||||
self.curShowTailIndex = self.NodeListData[self.curShowTailIndex].Next
|
||||
end
|
||||
curShowDataIndex = self.curShowTailIndex
|
||||
end
|
||||
self.CallBack(self.NodeListData[curShowDataIndex].data, function(poolName, ctor)
|
||||
local item = self.DynamicList:PreDequeueGrid(poolName, index)
|
||||
local xlayoutNode = item:GetComponent("XLayoutNode")
|
||||
if self.DynamicList and xlayoutNode then
|
||||
xlayoutNode.minSize = CS.UnityEngine.Vector2(self.DynamicList.transform:GetComponent("RectTransform").rect.width, 0)
|
||||
end
|
||||
if item == nil then
|
||||
XLog.Error("GenerateItem is Fail......index = ", index)
|
||||
return false
|
||||
end
|
||||
local key = item.gameObject:GetHashCode()
|
||||
local itemScript = self.ItemCache[key]
|
||||
if itemScript ~= nil then
|
||||
return itemScript
|
||||
else
|
||||
local newItemScript = ctor(item.gameObject)
|
||||
self.ItemCache[key] = newItemScript
|
||||
return newItemScript
|
||||
end
|
||||
|
||||
end)
|
||||
return false
|
||||
elseif evt == DLDelegateEvent.DYNAMIC_GRID_RECYCLE then
|
||||
if dir == DLScrollDataDir.Head then
|
||||
self.curShowHeadIndex = self.NodeListData[self.curShowHeadIndex].Next
|
||||
elseif dir == DLScrollDataDir.Tail then
|
||||
self.curShowTailIndex = self.NodeListData[self.curShowTailIndex].Pre
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--------------------------Set-------------------
|
||||
function XDynamicList:SetReverse(code)
|
||||
self.DynamicList.Reverse = code
|
||||
end
|
||||
|
||||
function XDynamicList:SetBarValue(value)
|
||||
self.DynamicListBar.value = value
|
||||
end
|
||||
|
||||
function XDynamicList:SetViewSize(rectSize, isReload)
|
||||
self.DynamicList:SetViewSize(rectSize)
|
||||
if isReload then
|
||||
self:ReloadData()
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------Get-----------------
|
||||
function XDynamicList:GetBarValue()
|
||||
if self.DynamicListBar then
|
||||
return self.DynamicListBar.value
|
||||
else
|
||||
XLog.Error("------DynamicList Not ScrollBar Component!------")
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
function XDynamicList:GetCurDataCount()
|
||||
return #self.NodeListData
|
||||
end
|
||||
|
||||
function XDynamicList:AddObjectPools(poolName, prefab)
|
||||
self.DynamicList.ObjectPool:Add(poolName, prefab)
|
||||
end
|
35
Resources/Scripts/XCommon/XEntityHelper.lua
Normal file
35
Resources/Scripts/XCommon/XEntityHelper.lua
Normal file
|
@ -0,0 +1,35 @@
|
|||
XEntityHelper = XEntityHelper or {}
|
||||
|
||||
XEntityHelper.TEAM_MAX_ROLE_COUNT = 3
|
||||
|
||||
-- entityId : CharacterId or RobotId
|
||||
function XEntityHelper.GetCharacterIdByEntityId(entityId)
|
||||
if XRobotManager.CheckIsRobotId(entityId) then
|
||||
return XRobotManager.GetRobotTemplate(entityId).CharacterId
|
||||
else
|
||||
return entityId
|
||||
end
|
||||
end
|
||||
|
||||
function XEntityHelper.GetIsRobot(entityId)
|
||||
return XRobotManager.CheckIsRobotId(entityId)
|
||||
end
|
||||
|
||||
function XEntityHelper.GetCharacterName(entityId)
|
||||
local characterId = XEntityHelper.GetCharacterIdByEntityId(entityId)
|
||||
local config = XCharacterConfigs.GetCharacterTemplate(characterId)
|
||||
if not config then return "none" end
|
||||
return config.Name
|
||||
end
|
||||
|
||||
function XEntityHelper.GetCharacterTradeName(entityId)
|
||||
local characterId = XEntityHelper.GetCharacterIdByEntityId(entityId)
|
||||
local config = XCharacterConfigs.GetCharacterTemplate(characterId)
|
||||
if not config then return "none" end
|
||||
return config.TradeName
|
||||
end
|
||||
|
||||
function XEntityHelper.GetCharacterSmallIcon(entityId)
|
||||
local characterId = XEntityHelper.GetCharacterIdByEntityId(entityId)
|
||||
return XDataCenter.CharacterManager.GetCharSmallHeadIcon(characterId, 0, true)
|
||||
end
|
949
Resources/Scripts/XCommon/XEventId.lua
Normal file
949
Resources/Scripts/XCommon/XEventId.lua
Normal file
|
@ -0,0 +1,949 @@
|
|||
--[[ id值为 EVENT_模块名_具体事件名]]
|
||||
--
|
||||
XEventId = {
|
||||
--社交
|
||||
EVENT_CHAT_RECEIVE_PRIVATECHAT = "EVENT_CHAT_RECEIVE_PRIVATECHAT", --收到私聊
|
||||
EVENT_CHAT_RECEIVE_WORLD_MSG = "EVENT_CHAT_RECEIVE_WORLD_MSG", --收到世界聊天信息
|
||||
EVENT_CHAT_RECEIVE_ROOM_MSG = "EVENT_CHAT_RECEIVE_ROOM_MSG", --收到房间聊天信息
|
||||
EVENT_CHAT_MSG_SYNC = "EVENT_CHAT_MSG_SYNC", --同步私聊
|
||||
EVENT_CHAT_OPEN = "EVENT_CHAT_OPEN", --打开聊天界面
|
||||
EVENT_CHAT_CLOSE = "EVENT_CHAT_CLOSE", --关闭聊天界面
|
||||
EVENT_CHAT_CHANNEL_CHANGED = "EVENT_CHAT_CHANNEL_CHANGED", --聊天频道id更换
|
||||
EVENT_CHAT_SERVER_CHANNEL_CHANGED = "EVENT_CHAT_SERVER_CHANNEL_CHANGED", --服务端主动更换聊天频道
|
||||
EVENT_CHAT_MATCH_EFFECT = "EVENT_CHAT_MATCH_EFFECT", --聊天关键字匹配播放特效
|
||||
|
||||
|
||||
EVENT_FRIEND_DELETE = "EVENT_FRIEND_DELETE", --删除好友
|
||||
EVENT_FRIEND_WAITING_PASS = "EVENT_FRIEND_WAITING_PASS", --等待通过,新的好友申请
|
||||
EVENT_FRIEND_OPEN_PRIVATE_VIEW = "EVENT_FRIEND_OPEN_PRIVATE_VIEW", --打开私聊界面
|
||||
EVENT_FRIEND_READ_PRIVATE_MSG = "EVENT_FRIEND_READ_PRIVATE_MSG", --读取私聊信息
|
||||
EVENT_FRIEND_REMARK_NAME = "EVENT_FRIEND_REMARK_NAME", --好友备注名改变
|
||||
EVENT_BLACK_DATA_CHANGE = "EVENT_BLACK_DATA_CHANGE", --黑名单列表改变
|
||||
|
||||
EVENT_PULL_SCROLLVIEW_END = "EVENT_PULL_SCROLLVIEW_END", --数据拉到底了 --后续会清掉
|
||||
EVENT_PULL_SCROLLVIEW_UP = "EVENT_PULL_SCROLLVIEW_UP", --数据拉到头了 --后续会清掉
|
||||
|
||||
--设置事件
|
||||
EVENT_CUSTOM_UI_SCHEME_CHANGED = "EVENT_CUSTOM_UI_SCHEME_CHANGED", -- 战斗自定义按键改变
|
||||
--邮件事件
|
||||
EVENT_MAIL_SYNC = "EVENT_MAIL_SYNC", --服务端同步邮件,
|
||||
EVENT_MAIL_READ = "EVENT_MAIL_READ", --读取邮件,
|
||||
EVENT_MAIL_DELETE = "EVENT_MAIL_DELETE", --删除邮件,
|
||||
EVENT_MAIL_GET_MAIL_REWARD = 'EVENT_MAIL_GET_MAIL_REWARD', --领取邮件附件
|
||||
EVENT_MAIL_GET_ALL_MAIL_REWARD = 'EVENT_MAIL_GET_ALL_MAIL_REWARD', --一键领取附件
|
||||
EVENT_MAIL_COUNT_CHANGE = 'EVENT_MAIL_COUNT_CHANGE', --邮件数发生改变
|
||||
--角色事件
|
||||
EVENT_CHARACTER_ADD_SYNC = "EVENT_CHARACTER_ADD_SYNC", --添加构造体
|
||||
EVENT_CHARACTER_LEVEL_UP = "EVENT_CHARACTER_LEVEL_UP", --升级
|
||||
EVENT_CHARACTER_QUALITY_STAR_PROMOTE = "EVENT_CHARACTER_QUALITY_STAR_PROMOTE", --进化
|
||||
EVENT_CHARACTER_QUALITY_PROMOTE = "EVENT_CHARACTER_QUALITY_PROMOTE", --升品
|
||||
EVENT_CHARACTER_GRADE = "EVENT_CHARACTER_GRADE", --晋升,升星
|
||||
EVENT_CHARACTER_GRADE_PART = "EVENT_CHARACTER_GRADE_PART", --小晋升
|
||||
EVENT_CHARACTER_SKILL_UNLOCK = "EVENT_CHARACTER_SKILL_UNLOCK", --解锁技能
|
||||
EVENT_CHARACTER_SKILL_UP = "EVENT_CHARACTER_SKILL_UP", --升级技能
|
||||
EVENT_CHARACTER_INCREASE_TIP = "EVENT_CHARACTER_INCREASE_TIP", -- 角色属性提升后提醒
|
||||
EVENT_CHARACTER_FIRST_GET = "EVENT_CHARACTER_FIRST_GET", --首次获得角色
|
||||
EVENT_CHARACTER_SYN = "EVENT_CHARACTER_SYN", --角色信息变更
|
||||
EVENT_CHARACTER_SUPPORT = "EVENT_CHARACTER_SUPPORT", -- 角色编入支援
|
||||
|
||||
--联机Boss事件
|
||||
EVENT_ONLINEBOSS_UPDATE = "EVENT_ONLINEBOSS_UPDATE", --数据刷新
|
||||
EVENT_ONLINEBOSS_REFRESH = "EVENT_ONLINEBOSS_REFRESH", --活动刷新
|
||||
EVENT_ONLINEBOSS_DROPREWARD_NOTIFY = "EVENT_ONLINEBOSS_DROPREWARD_NOTIFY", --抽奖通知
|
||||
EVENT_ONLINE_BOSS_REFRESH = "EVENT_ONLINE_BOSS_REFRESH", --联机boss刷新
|
||||
|
||||
--房间事件
|
||||
EVENT_ROOM_REFRESH = "EVENT_ROOM_REFRESH", --房间刷新
|
||||
EVENT_ROOM_PLAYER_ENTER = "EVENT_ROOM_PLAYER_ENTER", --玩家加入
|
||||
EVENT_ROOM_PLAYER_LEAVE = "EVENT_ROOM_PLAYER_LEAVE", --玩家离开
|
||||
EVENT_ROOM_PLAYER_STAGE_REFRESH = "EVENT_ROOM_PLAYER_STAGE_REFRESH", --玩家状态更新
|
||||
EVENT_ROOM_PLAYER_NPC_REFRESH = "EVENT_ROOM_PLAYER_NPC_REFRESH", --玩家角色信息更新
|
||||
EVENT_ROOM_AUTO_MATCH_CHANGE = "EVENT_ROOM_AUTO_MATCH_CHANGE", --房间自动匹配状态修改
|
||||
EVENT_ROOM_STAGE_LEVEL_CHANGE = "EVENT_ROOM_STAGE_LEVEL_CHANGE", --房间难度等级修改
|
||||
EVENT_ROOM_STAGE_ABILITY_LIMIT_CHANGE = "EVENT_ROOM_STAGE_ABILITY_LIMIT_CHANGE", --房间战力修改
|
||||
EVENT_ROOM_STAGE_CHANGE = "EVENT_ROOM_STAGE_CHANGE", --房间状态修改
|
||||
|
||||
EVENT_ROOM_MATCH = "EVENT_ROOM_MATCH", --匹配
|
||||
EVENT_ROOM_CANCEL_MATCH = "EVENT_ROOM_CANCEL_MATCH", --取消匹配
|
||||
EVENT_ROOM_ENTER_ROOM = "EVENT_ROOM_ENTER_ROOM", --进入房间
|
||||
EVENT_ROOM_KICKOUT = "EVENT_ROOM_KICKOUT", --踢出房间
|
||||
EVENT_ROOM_LEAVE_ROOM = "EVENT_ROOM_LEAVE_ROOM", --离开房间(主动退出或被踢出房间)
|
||||
EVENT_ROOM_COUNT_DOWN = "EVENT_ROOM_COUNT_DOWN", --倒计时
|
||||
EVENT_ROOM_CHANGE_STAGE = "EVENT_ROOM_CHANGE_STAGE", --切换关卡
|
||||
EVENT_ROOM_CHANGE_STAGE_SUMMER_EPISODE = "EVENT_ROOM_CHANGE_STAGE_SUMMER_EPISODE", --夏活照相关切换关卡
|
||||
|
||||
--UI
|
||||
UiOpenPanel = "EVENT_UI_OPEN_PANEL", --参数:(bool, string),打开/关闭,ui名称
|
||||
EVENT_MAINUI_ENABLE = "EVENT_MAINUI_ENABLE", --主界面显示
|
||||
|
||||
EVENT_PLAYER_SETTING = "EVENT_PLAYER_SETTING", -- 玩家展示设置
|
||||
|
||||
--引导
|
||||
EVENT_GUIDE_REQ_OPEN_SUCCESS = "EVENT_GUIDE_REQ_OPEN_SUCCESS", --请求引导完成
|
||||
EVENT_GUIDE_START = "EVENT_GUIDE_START", --引导开始
|
||||
EVENT_GUIDE_END = "EVENT_GUIDE_END", --引导结束
|
||||
EVENT_GUIDE_COMPLETED_SUCCESS = "EVENT_GUIDE_COMPLETED_SUCCESS", --请求引导完成
|
||||
|
||||
|
||||
EVENT_GUIDE_STEP_OPEN_EVENT = "EVENT_GUIDE_STEP_OPEN_EVENT", --检测步骤
|
||||
|
||||
--功能开启
|
||||
EVENT_FUNCTION_OPEN_COMPLETE = "EVENT_FUNCTION_OPEN_COMPLETE", --功能开启
|
||||
|
||||
EVENT_FUNCTION_EVENT_START = "EVENT_FUNCTION_EVENT_START", --功能开始
|
||||
EVENT_FUNCTION_EVENT_COMPLETE = "EVENT_FUNCTION_EVENT_COMPLETE", --功能开启完成
|
||||
EVENT_FUNCTION_EVENT_END = "EVENT_FUNCTION_EVENT_END", --功能结束
|
||||
EVENT_FESTIVAL_COMMUNICATE_FUNCTION_EVENT_END = "EVENT_FESTIVAL_COMMUNICATE_FUNCTION_EVENT_END", --節日通訊功能结束
|
||||
-- 时间
|
||||
EVENT_TIMEID_BOUND_PREFIX = "EVENT_TIMEID_UPDATE_",
|
||||
EVENT_ETCD_TIME_CHANGE = "EVENT_ETCD_TIME_CHANGE",--ETCD上某个TimeID对应的时间发生改变
|
||||
--紧急事件
|
||||
EVENT_URGENTEVENT_SYNC = "EVENT_URGENTEVENT_SYNC", -- 收到紧急事件
|
||||
|
||||
--副本
|
||||
EVENT_FUBEN_DAILY_REFRESH = "EVENT_FUBEN_DAILY_REFRESH", --日常副本刷新
|
||||
EVENT_FUBEN_REFRESH_STAGE_DATA = "EVENT_FUBEN_REFRESH_STAGE_DATA", --副本变更推送
|
||||
EVENT_FUBEN_CHAPTER_REWARD = "EVENT_FUBEN_CHAPTER_REWARD", --领取章节奖励
|
||||
EVENT_FUBEN_CLOSE_FUBENSTAGEDETAIL = "EVENT_FUBEN_CLOSE_FUBENSTAGEDETAIL", --关闭副本详细界面
|
||||
EVENT_FUBEN_ENTERFIGHT = "EVENT_FUBEN_ENTERFIGHT", --点击作战开始
|
||||
EVENT_FUBEN_STAGE_SYNC = "EVENT_FUBEN_STAGE_SYNC", --stage同步
|
||||
EVENT_FUBEN_NEW_STAGE = "EVENT_FUBEN_NEW_STAGE", --新的关卡
|
||||
EVENT_FUBEN_NEW_MAIN_LINE_CHAPTER = "EVENT_FUBEN_NEW_MAIN_LINE_CHAPTER", --新的主线章节
|
||||
EVENT_FUBEN_SETTLE_REWARD = "EVENT_FUBEN_SETTLE_REWARD", --副本结算奖励
|
||||
EVENT_FUBEN_SHOW_REWARD = "EVENT_FUBEN_SHOW_REWARD", --显示副本奖励
|
||||
EVENT_FUBEN_CHANGE_MAIN_LINE_DIFFICULT = "EVENT_FUBEN_CHANGE_MAIN_LINE_DIFFICULT", --修改主线副本难度
|
||||
EVENT_PRE_ENTER_FIGHT = "EVENT_PRE_ENTER_FIGHT", --进入战斗前
|
||||
EVENT_ENTER_FIGHT = "EVENT_ENTER_FIGHT", --进入战斗
|
||||
EVENT_FUBEN_EXPLORE_UPDATE = "EVENT_FUBEN_EXPLORE_UPDATE", --探索更新UI
|
||||
EVENT_FUBEN_EXPLORE_UPDATEBUFF = "EVENT_FUBEN_EXPLORE_UPDATEBUFF", --更新探索buff UI
|
||||
EVENT_FUBEN_RESOURCE_AUTOSELECT = "EVENT_FUBEN_RESOURCE_AUTOSELECT", --资源自动选中
|
||||
EVENT_FUBEN_PREQUEL_AUTOSELECT = "EVENT_FUBEN_PREQUEL_AUTOSELECT", --前传自动选中
|
||||
EVENT_FUBEN_MAINLINE_TAB_SELECT = "EVENT_FUBEN_MAINLINE_TAB_SELECT", --剧情界面子标签页自动选中
|
||||
EVENT_FUBEN_MAINLINE_DIFFICUTY_SELECT = "EVENT_FUBEN_MAINLINE_DIFFICUTY_SELECT", --主线难度标签页自动选中
|
||||
EVENT_FUBEN_SETTLE_FAIL = "EVENT_FUBEN_FIGHT_CHECK_FAIL", --副本结算失败
|
||||
EVENT_FUBEN_NEW_CHALLEGE = "EVENT_FUBEN_NEW_CHALLEGE", --副本挑战新玩法出现
|
||||
EVENT_FUBEN_EXTRACHAPTER_REWARD = "EVENT_FUBEN_EXTRACHAPTER_REWARD", --领取番外章节奖励
|
||||
EVENT_FUBEN_NEW_EXTRA_CHAPTER = "EVENT_FUBEN_NEW_EXTRA_CHAPTER", --新的番外章节
|
||||
EVENT_FUBEN_CHANGE_EXTRA_CHAPTER_DIFFICULT = "EVENT_FUBEN_CHANGE_EXTRA_CHAPTER_DIFFICULT", --更改番外副本难度
|
||||
EVENT_FUBEN_NEW_EXPEDITION_STAGE = "EVENT_FUBEN_NEW_EXPEDITION_STAGE", --虚像地平线解锁新关卡
|
||||
EVENT_FUBEN_NIER_STAGE_REWARD = "EVENT_FUBEN_NEW_NIER_STAGE", --尼尔玩法通关新副本
|
||||
EVENT_FUBEN_NEWCHARACT_REWARD = "EVENT_FUBEN_NEWCHARACT_REWARD", --领取新角色活动奖励
|
||||
EVENT_FUBEN_SIMUCOMBAT_UPDATE = "EVENT_FUBEN_SIMUCOMBAT_UPDATE", --模拟作战更新UI
|
||||
EVENT_FUBEN_SIMUCOMBAT_REWARD = "EVENT_FUBEN_SIMUCOMBAT_REWARD", --模拟作战领取奖励
|
||||
EVENT_FUBEN_HACK_UPDATE = "EVENT_FUBEN_HACK_UPDATE", --骇入玩法更新UI
|
||||
EVENT_FUBEN_HACK_CLICK = "EVENT_FUBEN_HACK_CLICK", --骇入玩法点击
|
||||
EVENT_FUBEN_COUPLECOMBAT_UPDATE = "EVENT_FUBEN_COUPLECOMBAT_UPDATE", --双人下场玩法更新UI
|
||||
--活动相关
|
||||
EVENT_ACTIVITY_MAINLINE_STATE_CHANGE = "EVENT_ACTIVITY_MAINLINE_STATE_CHANGE", --主线副本抢先体验活动状态变更
|
||||
EVENT_ACTIVITY_EXTRACHAPTER_STATE_CHANGE = "EVENT_ACTIVITY_EXTRACHAPTER_STATE_CHANGE", --番外副本抢先体验活动状态变更
|
||||
EVENT_ACTIVITY_INFO_UPDATE = "EVENT_ACTIVITY_INFO_UPDATE", -- 活动状态或数据变化
|
||||
EVENT_ACTIVITY_ON_RESET = "EVENT_ACTIVITY_ON_RESET", -- 活动重置或结束时通知(用于出战界面等通用界面通知时间边界处理)
|
||||
--主线探索玩法
|
||||
EVENT_MAINLINE_EXPLORE_ITEM_GET = "EVENT_MAINLINE_EXPLORE_ITEM_GET", --主线探索玩法获得隐藏道具
|
||||
EVENT_MAINLINE_EXPLORE_ITEMBOX_CLOSE = "EVENT_MAINLINE_EXPLORE_ITEMBOX_CLOSE", --主线探索玩法关闭道具包
|
||||
EVENT_EXTRACHAPTER_EXPLORE_ITEM_GET = "EVENT_EXTRACHAPTER_EXPLORE_ITEM_GET", --番外探索玩法获得隐藏道具
|
||||
EVENT_EXTRACHAPTER_EXPLORE_ITEMBOX_CLOSE = "EVENT_EXTRACHAPTER_EXPLORE_ITEMBOX_CLOSE", --番外探索玩法关闭道具包
|
||||
|
||||
--自动作战
|
||||
EVENT_AUTO_FIGHT_CHANGE = "EVENT_AUTO_FIGHT_CHANGE", --自动作战状态改变
|
||||
EVENT_AUTO_FIGHT_START = "EVENT_AUTO_FIGHT_START", --自动作战开始
|
||||
EVENT_AUTO_FIGHT_COMPLETE = "EVENT_AUTO_FIGHT_COMPLETE", --自动作战完成
|
||||
EVENT_AUTO_FIGHT_REMOVE = "EVENT_AUTO_FIGHT_REMOVE", --自动作战移除
|
||||
|
||||
--竞技
|
||||
EVENT_ARENA_TEAM_CHANGE = "EVENT_ARENA_TEAM_CHANGE", --竞技队伍变化
|
||||
EVENT_ARENA_TEAM_INITIATIVE_LEAVE = "EVENT_ARENA_TEAM_INITIATIVE_LEAVE", --竞技主动离队
|
||||
EVENT_ARENA_TEAM_RECEIVE_APPLY_DATA = "EVENT_ARENA_TEAM_RECEIVE_APPLY_DATA", --竞技得到申请列表
|
||||
EVENT_ARENA_TEAM_APPLY_CHANGE = "EVENT_ARENA_TEAM_APPLY_CHANGE", --竞技申请列表变化
|
||||
EVENT_ARENA_TEAM_NEW_APPLY_ENTER = "EVENT_ARENA_TEAM_NEW_APPLY_ENTER", --竞技新申请信息数量变化
|
||||
EVENT_ARENA_MAIN_INFO = "EVENT_ARENA_MAIN_INFO", --竞技主界面信息
|
||||
EVENT_ARENA_REFRESH_TEAM_RANK_INFO = "EVENT_ARENA_REFRESH_TEAM_RANK_INFO", --竞技刷新排行信息
|
||||
EVENT_ARENA_REFRESH_AREA_INFO = "EVENT_ARENA_REFRESH_AREA_INFO", --竞技刷新战区信息
|
||||
EVENT_ARENA_UNLOCK_AREA = "EVENT_ARENA_UNLOCK_AREA", --竞技解锁战区
|
||||
EVENT_ARENA_RESULT_CLOSE = "EVENT_ARENA_RESULT_CLOSE", --竞技关闭奖励界面
|
||||
EVENT_ARENA_RESULT_AUTOFIGHT = "EVENT_ARENA_RESULT_AUTOFIGHT", --战区自动作战
|
||||
|
||||
--任务
|
||||
EVENT_TASK_SYNC = "EVENT_TASK_SYNC", --任务改变
|
||||
EVENT_FINISH_TASK = "EVENT_FINISH_TASK", --任务改变
|
||||
EVENT_TASK_COURSE_REWAED = "EVENT_TASK_COURSE_REWAED", --领取历程奖励
|
||||
EVENT_TASK_TAB_CHANGE = "EVENT_TASK_TAB_CHANGE", --任务tab改变
|
||||
EVENT_TASK_FINISH_FAIL = "EVENT_TASK_FINISH_FAIL", --任务领取失败
|
||||
|
||||
--道具
|
||||
EVENT_ITEM_COUNT_UPDATE_PREFIX = "EVENT_ITEM_COUNT_UPDATE_",
|
||||
EVENT_ITEM_BUYTIEMS_UPDATE_PREFIX = "EVENT_ITEM_BUYTIMES_UPDATE_",
|
||||
EVENT_ITEM_BUYASSET = "EVENT_ITEM_BUYASSET", -- 购买道具
|
||||
EVENT_ITEM_USE = "EVENT_ITEM_USE", -- 使用道具
|
||||
EVENT_TIMELIMIT_ITEM_USE = "EVENT_TIMELIMIT_ITEM_USE", -- 使用限时道具
|
||||
EVENT_ITEM_RECYCLE = "EVENT_ITEM_RECYCLE", -- 回收道具
|
||||
EVENT_ITEM_MULTIPLY_USE = "EVENT_ITEM_MULTIPLY_USE", -- 使用多组道具
|
||||
EVENT_ITEM_FAST_TRADING = "EVENT_ITEM_FAST_TRADING", -- 快捷购买道具
|
||||
|
||||
--玩家
|
||||
EVENT_USERID_CHANGE = "EVENT_USERID_CHANGE", -- 更换账号
|
||||
EVENT_USERNAME_CHANGE = "EVENT_USERNAME_CHANGE", -- 更换账号
|
||||
EVENT_USER_LOGOUT = "EVENT_USER_LOGOUT", -- 登出
|
||||
EVENT_LOGIN_SUCCESS = "EVENT_LOGIN_SUCCESS", -- 登陆成功
|
||||
EVENT_LOGIN_DATA_LOAD_COMPLETE = "EVENT_LOGIN_DATA_LOAD_COMPLETE", -- 登录数据加载完毕
|
||||
EVENT_NETWORK_DISCONNECT = "EVENT_NETWORK_DISCONNECT", -- 断开连接
|
||||
EVENT_SERVER_LIST_CHANGE = "EVENT_SERVER_LIST_CHANGE", -- 服务器列表变更
|
||||
|
||||
EVENT_NEW_PLAYER = "EVENT_NEW_PLAYER", -- 新创建的玩家
|
||||
EVENT_PLAYER_SET_NAME = "EVENT_PLAYER_SET_NAME", -- 玩家改名
|
||||
EVENT_PLAYER_LEVEL_CHANGE = "EVENT_PLAYER_LEVEL_CHANGE", -- 等级发生变化
|
||||
|
||||
EVENT_PLAYER_LEVEL_UP_ANIMATION_END = "EVENT_PLAYER_LEVEL_UP_ANIMATION_END", --玩家等级提升动画结束
|
||||
|
||||
--赏金任务
|
||||
EVENT_BOUNTYTASK_INFO_CHANGE_NOTIFY = "EVENT_BOUNTYTASK_INFO_CHANGE_NOTIFY", --赏金任务改变推送
|
||||
EVENT_BOUNTYTASK_ACCEPT_TASK = "EVENT_BOUNTYTASK_ACCEPT_TASK", --接受赏金任务
|
||||
EVENT_BOUNTYTASK_ACCEPT_TASK_REWARD = "EVENT_BOUNTYTASK_ACCEPT_TASK_REWARD", --接受赏金任务
|
||||
EVENT_BOUNTYTASK_TASK_COMPLETE_NOTIFY = "EVENT_BOUNTYTASK_TASK_COMPLETE_NOTIFY", --任务完成
|
||||
EVENT_BOUNTYTASK_TASK_REFRESH = "EVENT_BOUNTYTASK_TASK_REFRESH", --任务池刷新
|
||||
|
||||
--派遣
|
||||
EVENT_TASKFORCE_INFO_NOTIFY = "EVENT_TASKFORCE_INFO_NOTIFY", --派遣推送
|
||||
EVENT_TASKFORCE_SECTIONCHANGE_NOTIFY = "EVENT_TASKFORCE_SECTIONCHANGE_NOTIFY", --派遣章节改变推送
|
||||
EVENT_TASKFORCE_MAXTASKFORCECOUNT_CHANGE_NOTIFY = "EVENT_TASKFORCE_MAXTASKFORCECOUNT_CHANGE_NOTIFY", --可派遣队伍最大数量改变推送
|
||||
EVENT_TASKFORCE_COMPLETE_NOTIFY = "EVENT_TASKFORCE_COMPLETE_NOTIFY", --派遣任务完成推送
|
||||
EVENT_TASKFORCE_GIVEUP_TASK_REQUEST = "EVENT_TASKFORCE_GIVEUP_TASK_REQUEST", --派遣放弃任务
|
||||
EVENT_TASKFORCE_ACCEPT_TASK_REQUEST = "EVENT_TASKFORCE_ACCEPT_TASK_REQUEST", --派遣接受任务
|
||||
EVENT_TASKFORCE_REFRESH_REQUEST = "EVENT_TASKFORCE_REFRESH_REQUEST", --派遣刷新任务池
|
||||
EVENT_TASKFORCE_TASKFINISH_REQUEST = "EVENT_TASKFORCE_TASKFINISH_REQUEST", --派遣立即完成任务
|
||||
EVENT_TASKFORCE_ACCEPT_REWARD_REQUEST = "EVENT_TASKFORCE_ACCEPT_REWARD_REQUEST", --派遣获得奖励
|
||||
EVENT_TASKFORCE_TIP_MISSION_END = "EVENT_TASKFORCE_TIP_MISSION_END", --派遣队伍开启动画结束
|
||||
|
||||
--战斗
|
||||
EVENT_FIGHT_BEGIN_PLAYMOVIE = "EVENT_FIGHT_BEGIN_PLAYMOVIE", --战斗开始前播放剧情
|
||||
EVENT_FIGHT_LOADINGFINISHED = "EVENT_FIGHT_LOADINGFINISHED", --战斗Loading已打开
|
||||
EVENT_FIGHT_PROGRESS = "EVENT_FIGHT_PROGRESS", --战斗loading进度
|
||||
EVENT_FIGHT_RESULT = "EVENT_FIGHT_RESULT", --战斗结果
|
||||
EVENT_FIGHT_RESULT_WIN = "EVENT_FIGHT_RESULT_WIN", --战斗结果
|
||||
EVENT_FIGHT_EXIT = "EVENT_FIGHT_EXIT", --战斗结束(cs事件)
|
||||
EVENT_FIGHT_FINISH = "EVENT_FIGHT_FINISH", --战斗结束
|
||||
EVENT_FIGHT_FINISH_LOSEUI_CLOSE = "EVENT_FIGHT_FINISH_LOSEUI_CLOSE", --战斗失败界面关闭回调
|
||||
|
||||
--投票
|
||||
EVENT_VOTE_REFRESH = "EVENT_VOTE_REFRESH", --投票数据更新
|
||||
|
||||
--装备
|
||||
EVENT_EQUIP_PUTON_NOTYFY = "EVENT_EQUIP_PUTON_NOTYFY", --穿上
|
||||
EVENT_EQUIP_PUTON_WEAPON_NOTYFY = "EVENT_EQUIP_PUTON_WEAPON_NOTYFY", --穿上武器
|
||||
EVENT_EQUIP_TAKEOFF_NOTYFY = "EVENT_EQUIP_TAKEOFF_NOTYFY", --脱下单个
|
||||
EVENT_EQUIPLIST_TAKEOFF_NOTYFY = "EVENT_EQUIPLIST_TAKEOFF_NOTYFY", --脱下装备列表
|
||||
EVENT_EQUIP_LOCK_STATUS_CHANGE_NOTYFY = "EVENT_EQUIP_LOCK_STATUS_CHANGE_NOTYFY", --锁定状态变更
|
||||
EVENT_EQUIP_STRENGTHEN_NOTYFY = "EVENT_EQUIP_STRENGTHEN_NOTYFY", --强化
|
||||
EVENT_EQUIP_BREAKTHROUGH_NOTYFY = "EVENT_EQUIP_BREAKTHROUGH_NOTYFY", --突破
|
||||
EVENT_EQUIP_RESONANCE_NOTYFY = "EVENT_EQUIP_RESONANCE_NOTYFY", --共鸣随机技能返回
|
||||
EVENT_EQUIP_RESONANCE_ACK_NOTYFY = "EVENT_EQUIP_RESONANCE_ACK_NOTYFY", --共鸣确认选择技能
|
||||
EVENT_EQUIP_AWAKE_NOTYFY = "EVENT_EQUIP_AWAKE_NOTYFY", --觉醒
|
||||
EVENT_EQUIP_DATA_CHANGE_NOTIFY = "EVENT_EQUIP_DATA_CHANGE_NOTYFY", --装备数据变更
|
||||
EVENT_EQUIP_DATA_INIT_NOTIFY = "EVENT_EQUIP_DATA_INIT_NOTYFY", --装备数据初始化完成
|
||||
EVENT_EQUIP_CAN_BREAKTHROUGH_TIP_CLOSE = "EVENT_EQUIP_CAN_BREAKTHROUGH_TIP_CLOSE", --装备强化至满级开启突破弹条动画播放结束
|
||||
EVENT_EQUIP_DATA_LIST_UPDATE_NOTYFY = "EVENT_EQUIP_DATA_LIST_UPDATE_NOTYFY", --装备数据列表更新
|
||||
EVENT_EQUIP_SUIT_PREFAB_DATA_UPDATE_NOTIFY = "EVENT_EQUIP_SUIT_PREFAB_DATA_UPDATE_NOTIFY", --意识组合数据更新
|
||||
EVENT_EQUIP_RECYCLE_NOTIFY = "EVENT_EQUIP_RECYCLE_NOTIFY", --意识被回收
|
||||
EVENT_EQUIP_RECYCLE_STATUS_CHANGE_NOTYFY = "EVENT_EQUIP_RECYCLE_STATUS_CHANGE_NOTYFY", --待回收状态变更
|
||||
|
||||
--基地装备
|
||||
EVENT_BASE_EQUIP_DATA_CHANGE_NOTIFY = "EVENT_BASE_EQUIP_DATA_CHANGE_NOTYFY", --穿上基地装备
|
||||
EVENT_BASE_EQUIP_DATA_REFRESH = "EVENT_BASE_EQUIP_DATA_REFRESH", --基地装备数据刷新
|
||||
|
||||
-- 好感度偶遇
|
||||
EVENT_COMEACROSS_PLAY = "EVENT_COMEACROSS_PLAY", --开始游戏
|
||||
EVENT_COMEACROSS_PLAYRESULT = "EVENT_COMEACROSS_PLAYRESULT", --游戏结算
|
||||
|
||||
|
||||
-- 好感度
|
||||
EVENT_FAVORABILITY_MAIN_REFRESH = "EVENT_FAVORABILITY_MAIN_REFRESH", --好感度主界面信息同步
|
||||
EVENT_FAVORABILITY_RUMORS_PREVIEW = "EVENT_FAVORABILITY_RUMORS_PREVIEW", --异闻预览
|
||||
EVENT_FAVORABILITY_COLLECTGIFT = "EVENT_FAVORABILITY_COLLECTGIFT", --领取礼物
|
||||
EVENT_FAVORABILITY_PLOTUNLOCK = "EVENT_FAVORABILITY_PLOTUNLOCK", --剧情解锁
|
||||
EVENT_FAVORABILITY_INFOUNLOCK = "EVENT_FAVORABILITY_INFOUNLOCK", --资料解锁
|
||||
EVENT_FAVORABILITY_RUMERUNLOCK = "EVENT_FAVORABILITY_RUMERUNLOCK", --异闻解锁
|
||||
EVENT_FAVORABILITY_AUDIOUNLOCK = "EVENT_FAVORABILITY_AUDIOUNLOCK", --语音解锁
|
||||
EVENT_FAVORABILITY_ACTIONUNLOCK = "EVENT_FAVORABILITY_ACTIONUNLOCK", --动作解锁
|
||||
EVENT_FAVORABILITY_GIFT = "EVENT_FAVORABILITY_GIFT", --发送礼物
|
||||
EVENT_FAVORABILITY_LEVELCHANGED = "EVENT_FAVORABILITY_LEVELCHANGED", --好感度等级经验变化
|
||||
EVENT_FAVORABILITY_CHAR_ABILITY_CHANGED = "EVENT_FAVORABILITY_CHAR_ABILITY_CHANGED", --战斗参数变化
|
||||
EVENT_FAVORABILITY_CHAR_QUALITY_CHANGED = "EVENT_FAVORABILITY_CHAR_QUALITY_CHANGED", --角色品质变化
|
||||
EVENT_FAVORABILITY_ON_GIFT_CHANGED = "EVENT_FAVORABILITY_ON_GIFT_CHANGED", --选中的礼物变化
|
||||
|
||||
-- 新手任务
|
||||
EVENT_NEWBIETASK_DAYCHANGED = "EVENT_NEWBIETASK_DAYCHANGED", --新手目标天数变化
|
||||
EVENT_NEWBIETASK_PROGRESSCHANGED = "EVENT_NEWBIETASK_PROGRESSCHANGED", --新手进度
|
||||
|
||||
-- 队伍预设
|
||||
EVENT_TEAM_PREFAB_CHANGE = "EVENT_TEAM_PREFAB_CHANGE", --队伍预设改变
|
||||
EVENT_TEAM_PREFAB_SELECT = "EVENT_TEAM_PREFAB_SELECT", --队伍选中
|
||||
EVENT_TEAM_MEMBER_CHANGE = "EVENT_TEAM_MEMBER_CHANGE", --队伍成员发生变化
|
||||
|
||||
-- 公告
|
||||
EVENT_NOTICE_PIC_CHANGE = "EVENT_NOTICE_PIC_CHANGE", --宣传图改变
|
||||
EVENT_NOTICE_TYPE_CHANAGE = "EVENT_NOTICE_TYPE_CHANAGE", --公告页签改变
|
||||
EVENT_NOTICE_CLOSE_TEXT_NOTICE = "EVENT_NOTICE_CLOSE_TEXT_NOTICE", --关闭滚动公告
|
||||
EVENT_NOTICE_CONTENT_RESP = "EVENT_NOTICE_CONTENT_RESP", --公告内容返回
|
||||
|
||||
-- 活动系统
|
||||
EVENT_ACTIVITY_ACTIVITIES_READ_CHANGE = "EVENT_ACTIVITY_ACTIVITIES_READ_CHANGE", -- 活动已读状态改变
|
||||
EVENT_ACTIVITY_NOTICE_READ_CHANGE = "EVENT_ACTIVITY_NOTICE_READ_CHANGE", --公告已读状态改变
|
||||
|
||||
-- 运营相关
|
||||
EVENT_ACTIVITY_SUBMENU_READ_CHANGE = "EVENT_ACTIVITY_SUBMENU_READ_CHANGE", -- 主界面二级菜单已读状态改变
|
||||
|
||||
-- 试炼
|
||||
EVENT_TRIAL_LEVEL_FINISH = "EVENT_TRIAL_LEVEL_FINISH", --有对应关卡通关
|
||||
|
||||
|
||||
|
||||
-- 前传
|
||||
EVENT_NOTICE_REFRESHTIME_CHANGE = "EVENT_NOTICE_REFRESHTIME_CHANGE", --刷新时间
|
||||
EVENT_NOTICE_CHALLENGESTAGES_CHANGE = "EVENT_NOTICE_CHALLENGESTAGES_CHANGE", --挑战关卡刷新
|
||||
EVENT_NOTICE_SELECTCOVER_CHANGE = "EVENT_NOTICE_SELECTCOVER_CHANGE", --
|
||||
EVENT_NOTICE_PREQUELDETAIL_CLOSE = "EVENT_NOTICE_PREQUELDETAIL_CLOSE", --详情关闭
|
||||
|
||||
EVENT_NOTICE_TASKINITFINISHED = "EVENT_NOTICE_TASKINITFINISHED",
|
||||
|
||||
-- 弹窗
|
||||
EVENT_UIDIALOG_VIEW_ENABLE = "EVENT_UIDIALOG_VIEW_ENABLE", -- 提示弹窗显示
|
||||
|
||||
-- 签到
|
||||
EVENT_SING_IN_OPEN_BTN = "EVENT_SING_IN_OPEN_BTN", -- 签到领取完成开启关闭按钮
|
||||
|
||||
--宿舍
|
||||
EVENT_CLICKFURNITURE_GRID = "EVENT_CLICKFURNITURE_GRID", -- 点击单个家具
|
||||
EVENT_CLICKDRAFT_GRID = "EVENT_CLICKDRAFT_GRID", -- 点击单个图纸
|
||||
EVENT_CLICKCATEGORY_GRID = "EVENT_CLICKCATEGORY_GRID", -- 点击单个家具类型
|
||||
EVENT_CLICKFURNITURE_ONROOM = "EVENT_CLICKFURNITURE_ONROOM", -- 点击场景中的家具
|
||||
EVENT_FURNITURE_CREATE_CHANGED = "EVENT_FURNITURE_CREATE_CHANGED", -- 家具建造可领取
|
||||
EVENT_FURNITURE_ONDRAGITEM_CHANGED = "EVENT_FURNITURE_ONDRAGITEM_CHANGED", -- 家具拖动变化
|
||||
EVENT_FURNITURE_REFRESH = "EVENT_FURNITURE_REFRESH", -- 刷新家具摆放界面
|
||||
EVENT_FURNITURE_CLEANROOM = "EVENT_FURNITURE_CLEANROOM", -- 通知全部收起家具
|
||||
EVENT_FURNITURE_ON_MODIFY = "EVENT_FURNITURE_ON_MODIFY", -- 通知家具改变(分解,合成)
|
||||
EVENT_FURNITURE_Get_Furniture = "EVENT_FURNITURE_Get_Furniture", -- 领取家具
|
||||
EVENT_CHARACTER_MOOD_CHANGED = "EVENT_CHARACTER_MOOD_CHANGED", -- 构造体心情值变化
|
||||
EVENT_CHARACTER_VITALITY_CHANGED = "EVENT_CHARACTER_VITALITY_CHANGED", -- 构造体体力情值变化
|
||||
EVENT_CHARACTER_ADD_EVENT_NOTIFY = "EVENT_CHARACTER_ADD_EVENT_NOTIFY", -- 构造体事件通知
|
||||
EVENT_CHARACTER_SUB_EVENT_NOTIFY = "EVENT_CHARACTER_SUB_EVENT_NOTIFY", -- 构造体事件过期通知
|
||||
EVENT_CHARACTER_DORMMAIN_EVENT_NOTIFY = "EVENT_CHARACTER_DORMMAIN_EVENT_NOTIFY", -- 通知宿舍主界面有事件
|
||||
EVENT_CHARACTER_CHANGE_ROOM_CHARACTER = "EVENT_CHARACTER_CHANGE_ROOM_CHARACTER", -- 从房间新增或者移出构造体
|
||||
EVENT_DORM_ROOM = "EVENT_DORM_ROOM", -- 进入宿舍
|
||||
EXIT_DORM_ROOM = "EXIT_DORM_ROOM", -- 退出宿舍
|
||||
EVENT_DORM_ROOM_ACTIVE_SUCCESS = "EVENT_DORM_ROOM_ACTIVE_SUCCESS", -- 宿舍激活成功
|
||||
EVENT_DORM_CHARACTER_CLICK_SUCCESS = "EVENT_DORM_CHARACTER_CLICK_SUCCESS", -- 宿舍构造体点击
|
||||
EVENT_DORM_CHARACTER_POINTER_UP_SUCCESS = "EVENT_DORM_CHARACTER_POINTER_UP_SUCCESS", -- 宿舍构造体手指弹起
|
||||
EVENT_DORM_FURNITURE_POINTER_UP_SUCCESS = "EVENT_DORM_CHARACTER_POINTER_UP_SUCCESS", -- 宿舍家具手指弹起
|
||||
EVENT_DORM_FURNITURE_PUT_SUCCESS = "EVENT_DORM_CHARACTER_POINTER_UP_SUCCESS", -- 宿舍家具摆放
|
||||
EVENT_CHARACTER_SHOW_DIALOBOX = "EVENT_CHARACTER_SHOW_DIALOBOX", -- 对话气泡显示
|
||||
EVENT_CHARACTER_HIDE_DIALOBOX = "EVENT_CHARACTER_HIDE_DIALOBOX", -- 对话气泡隐藏
|
||||
EVENT_CHARACTER_SHOW_3DIOBJ = "EVENT_CHARACTER_SHOW_3DIOBJ", -- 3DUI显示
|
||||
EVENT_CHARACTER_HIDE_3DIOBJ = "EVENT_CHARACTER_HIDE_3DIOBJ", -- 3DUI隐藏
|
||||
EVENT_CHARACTER_CATCH = "EVENT_CHARACTER_CATCH", -- 抓起构造体
|
||||
EVENT_CHARACTER_EXIT = "EVENT_CHARACTER_EXIT", -- 抓起构造体读条放下
|
||||
EVENT_CHARACTER_PUT_ON = "EVENT_CHARACTER_PUT_ON", -- 构造体抓起读条
|
||||
EVENT_CHARACTER_PUT_DOWN = "EVENT_CHARACTER_PUT_DOWN", -- 放下构造体
|
||||
EVENT_DORM_TOUCH_ENTER = "EVENT_DORM_TOUCH_ENTER", -- 宿舍爱抚构造体进入
|
||||
EVENT_DORM_TOUCH_SHOW = "EVENT_DORM_TOUCH_SHOW", -- 宿舍爱抚构造体显示
|
||||
EVENT_DORM_TOUCH_SHOW_VIEW = "EVENT_DORM_TOUCH_SHOW_VIEW", -- 宿舍爱抚构造体显示(界面用)
|
||||
EVENT_DORM_TOUCH_HIDE = "EVENT_DORM_TOUCH_HIDE", -- 宿舍爱抚构造体隐藏
|
||||
EVENT_DORM_EXP_DETAIL_SHOW = "EVENT_DORM_EXP_DETAIL_SHOW", -- 显示体力详情
|
||||
EVENT_DORM_EXP_DETAIL_HIDE = "EVENT_DORM_EXP_DETAIL_HIDE", -- 隐藏体力详情
|
||||
EVENT_DORM_HEAD_TOUCH = "EVENT_DORM_HEAD_TOUCH", -- 点击头像里的抚摸按钮
|
||||
EVENT_DORM_EXP_SHOW = "EVENT_DORM_EXP_SHOW", -- 显示心情条
|
||||
EVENT_DORM_EXP_HIDE = "EVENT_DORM_EXP_HIDE", -- 隐藏心情条
|
||||
EVENT_DORM_HIDE_COMPONET = "EVENT_DORM_HIDE_COMPONET", -- 隐藏所有组建
|
||||
EVENT_DORM_CLOSE_COMPONET = "EVENT_DORM_CLOSE_COMPONET", -- 关闭宿舍3D场景
|
||||
EVENT_HOME_CHARACTER_STATUS_CHANGE = "EVENT_HOME_CHARACTER_STATUS_CHANGE", --宿舍角色状态改变
|
||||
EVENT_DORM_SHOW_EVENT_CHANGE = "EVENT_DORM_SHOW_EVENT_CHANGE", --宿舍角色体力/心情/体力恢复速度/心情恢复速度改变
|
||||
EVENT_DORM_FURNITURE_ATTR_TAG = "EVENT_DORM_FURNITURE_ATTR_SHOW", -- 家具属性显示
|
||||
EVENT_DORM_FURNITURE_ATTR_TAG_DETAIL = "EVENT_DORM_FURNITURE_ATTR_TAG_DETAIL", -- 家具属性显示细节
|
||||
EVENT_DORM_FURNITURE_HIDE_ATTR_TAG_DETAIL = "EVENT_DORM_FURNITURE_HIDE_ATTR_TAG_DETAIL", -- 隐藏家具属性细节
|
||||
EVENT_DORM_FURNITURE_HIDE_ALL_ATTR_TAG_DETAIL = "EVENT_DORM_FURNITURE_HIDE_ALL_ATTR_TAG_DETAIL", -- 隐藏家具属性细节
|
||||
EVENT_DORM_BAG_REFRESH = "EVENT_DORM_BAG_REFRESH", -- 通知刷新家具背包页面
|
||||
|
||||
|
||||
|
||||
--展示厅
|
||||
EVENT_CHARACTER_EXHIBITION_REFRESH = "EVENT_CHARACTER_EXHIBITION_REFRESH", --展示厅奖励信息刷新
|
||||
EVENT_CHARACTER_EXHIBITION_AUTOSELECT = "EVENT_CHARACTER_EXHIBITION_AUTOSELECT", --展示厅跳转选中
|
||||
|
||||
--指挥官头像
|
||||
EVENT_HEAD_PORTRAIT_NOTIFY = "EVENT_HEAD_PORTRAIT_NOTIFY", --新头像解锁通知
|
||||
EVENT_HEAD_PORTRAIT_RESETINFO = "EVENT_HEAD_PORTRAIT_RESETINFO", --新头像解锁通知
|
||||
EVENT_HEAD_PORTRAIT_TIMEOUT = "EVENT_HEAD_PORTRAIT_TIMEOUT", --新头像过期通知
|
||||
--勋章
|
||||
EVENT_MEDAL_NOTIFY = "EVENT_MEDAL_NOTIFY", --勋章解锁通知
|
||||
EVENT_MEDAL_TIPSOVER = "EVENT_MEDAL_TIPSOVER", --勋章飘窗结束
|
||||
EVENT_MEDAL_REDPOINT_CHANGE = "EVENT_MEDAL_REDPOINT_CHANGE", --勋章红点变动
|
||||
EVENT_SCORETITLE_CHANGE = "EVENT_SCORETITLE_CHANGE", --计分徽章分数改变通知
|
||||
EVENT_SCORETITLE_NEW = "EVENT_SCORETITLE_NEW", --获取新收藏品通知
|
||||
EVENT_MEDAL_USE = "EVENT_MEDAL_USE", --装备/解锁勋章
|
||||
-- 教学关卡
|
||||
EVENT_PRACTICE_ON_DATA_REFRESH = "EVENT_PRACTICE_ON_DATA_REFRESH", --数据刷新
|
||||
|
||||
-- 单挑Boss相关
|
||||
EVENT_BOSS_SINGLE_GET_REWARD = "EVENT_BOSS_SINGLE_GET_REWARD", --领取积分奖励
|
||||
EVENT_FUBEN_SINGLE_BOSS_SYNC = "EVENT_FUBEN_SINGLE_BOSS_SYNC", --数据刷新
|
||||
EVENT_FUBEN_SINGLE_BOSS_RESET = "EVENT_FUBEN_SINGLE_BOSS_RESET", --数据周重置
|
||||
EVENT_FUBEN_SINGLE_BOSS_RANK_SYNC = "EVENT_FUBEN_SINGLE_BOSS_RANK_SYNC", --排行刷新
|
||||
|
||||
-- 礼包更新
|
||||
EVENT_LB_UPDATE = "EVENT_LB_UPDATE", --礼包
|
||||
EVENT_YK_UPDATE = "EVENT_YK_UPDATE", --月卡数据更新
|
||||
-- 礼包过期通知
|
||||
EVENT_LB_EXPIRE_NOTIFY = "EVENT_LB_EXPIRE_NOTIFY",
|
||||
|
||||
-- 充值
|
||||
EVENT_CARD_REFRESH_WELFARE_BTN = "EVENT_CARD_REFRESH_WELFARE_BTN",
|
||||
EVENT_DAYLY_REFESH_RECHARGE_BTN = "EVENT_DAYLY_REFESH_RECHARGE_BTN",
|
||||
|
||||
-- 查询角色数据返回
|
||||
EVENT_REQUEST_PLAYER_INFO_BACK = "EVENT_REQUEST_PLAYER_INFO_BACK",
|
||||
|
||||
-- 打脸
|
||||
EVENT_AUTO_WINDOW_STOP = "EVENT_AUTO_WINDOW_STOP", -- 打脸暂停
|
||||
EVENT_AUTO_WINDOW_END = "EVENT_AUTO_WINDOW_END", -- 打脸结束
|
||||
|
||||
-- 宿舍打工Reward
|
||||
EVENT_DORM_WORK_REDARD = "EVENT_DORM_WORK_REDARD",
|
||||
|
||||
-- 宿舍打工重置
|
||||
EVENT_DORM_WORK_RESET = "EVENT_DORM_WORK_RESET",
|
||||
|
||||
-- 宿舍代工
|
||||
EVENT_DORM_DAI_GONE_REWARD = "EVENT_DORM_DAI_GONE_REWARD",
|
||||
|
||||
-- 宿舍跳转
|
||||
EVENT_DORM_SKIP = "EVENT_DORM_SKIP",
|
||||
EVENT_DORM_CLOSE_DETAIL = "EVENT_DORM_CLOSE_DETAIL",
|
||||
|
||||
-- 拍照
|
||||
EVENT_PHOTO_ENTER = "EVENT_PHOTO_ENTER", -- 进入拍照状态
|
||||
EVENT_PHOTO_LEAVE = "EVENT_PHOTO_LEAVE", -- 离开拍照状态
|
||||
EVENT_PHOTO_CHANGE_SCENE = "EVENT_PHOTO_CHANGE_SCENE", -- 切换场景
|
||||
EVENT_PHOTO_CHANGE_MODEL = "EVENT_PHOTO_CHANGE_MODEL", -- 切换模型
|
||||
EVENT_PHOTO_PLAY_ACTION = "EVENT_PHOTO_PLAY_ACTION", -- 播放动作
|
||||
EVENT_PHOTO_PHOTOGRAPH = "EVENT_PHOTO_PHOTOGRAPH", -- 拍照
|
||||
|
||||
-- 爱护
|
||||
EVENT_CARESS_SHOW = "EVENT_CARESS_SHOW",
|
||||
|
||||
-- 累计充值更新
|
||||
EVENT_ACCUMULATED_UPDATE = "EVENT_ACCUMULATED_UPDATE",
|
||||
|
||||
-- 累计充值奖励领取
|
||||
EVENT_ACCUMULATED_REWARD = "EVENT_ACCUMULATED_REWARD",
|
||||
|
||||
-- 宿舍二级界面显示情况
|
||||
EVENT_DORM_SECOND_STATE = "EVENT_DORM_SECOND_STATE",
|
||||
|
||||
-- 抽奖活动奖池数改变
|
||||
EVENT_DRAW_ACTIVITYCOUNT_CHANGE = "EVENT_DRAW_ACTIVITYCOUNT_CHANGE",
|
||||
|
||||
-- 抽奖活动奖池变化
|
||||
EVENT_DRAW_ACTIVITYDRAW_CHANGE = "EVENT_DRAW_ACTIVITYDRAW_CHANGE",
|
||||
|
||||
--试玩区完成情况发生改变
|
||||
EVENT_UPDATE_EXPERIMENT = "EVENT_UPDATE_EXPERIMENT",
|
||||
EVENT_EXPERIMENT_GET_STAR_REWARD = "EVENT_EXPERIMENT_GET_STAR_REWARD", -- 领取试玩区带有目标的奖励
|
||||
|
||||
-- 节日活动节目刷新
|
||||
EVENT_ON_FESTIVAL_CHANGED = "EVENT_ON_FESTIVAL_CHANGED",
|
||||
|
||||
-- 极地活动
|
||||
EVENT_BRIEF_CHANGE_TAB = "EVENT_BRIEF_CHANGE_TAB",
|
||||
|
||||
-- 宿舍访问跳转
|
||||
EVENT_DORM_VISTOR_SKIP = "EVENT_DORM_VISTOR_SKIP",
|
||||
|
||||
-- 巴别塔刷新
|
||||
EVENT_BABEL_STAGE_INFO_ASYNC = "EVENT_BABEL_STAGE_INFO_ASYNC",
|
||||
EVENT_BABEL_RESET_STATUES_CHANGED = "EVENT_BABEL_RESET_STATUES_CHANGED",
|
||||
EVENT_BABEL_ACTIVITY_STATUS_CHANGED = "EVENT_BABEL_ACTIVITY_STATUS_CHANGED",
|
||||
EVNET_BABEL_CHALLENGE_BUFF_CHANGED = "EVNET_BABEL_CHALLENGE_BUFF_CHANGED",
|
||||
|
||||
-- 爬塔活动
|
||||
EVENT_ROGUELIKE_ACTIONPOINT_CHARACTER_CHANGED = "EVENT_ROGUELIKE_ACTIONPOINT_CHARACTER_CHANGED", --出站角色、行动点改变
|
||||
EVENT_ROGUELIKE_ASSISTROBOT_CHANGED = "EVENT_ROGUELIKE_ASSISTROBOT_CHANGED", --支援角色改变
|
||||
EVENT_ROGUELIKE_REFRESH_ALLNODES = "EVENT_ROGUELIKE_REFRESH_ALLNODES", --刷新节点
|
||||
EVENT_ROGUELIKE_BUFFIDS_CHANGES = "EVENT_ROGUELIKE_BUFFIDS_CHANGES", --玩家buff改变
|
||||
EVENT_ROGUELIKE_TEAMEFFECT_CHANGES = "EVENT_ROGUELIKE_TEAMEFFECT_CHANGES", --队伍效果改变
|
||||
EVENT_ROGUELIKE_NODE_ADJUSTION = "EVENT_ROGUELIKE_NODE_ADJUSTION", --节点位置调整
|
||||
EVENT_ROGUELIKE_TASK_RESET = "EVENT_ROGUELIKE_TASK_RESET", --重置任务
|
||||
EVENT_ROGUELIKE_ILLEGAL_SHOP_RESET = "EVENT_ROGUELIKE_ILLEGAL_SHOP_RESET", --重置黑市商店
|
||||
EVENT_ROGUELIKE_SECTIONTYPE_CHANGE = "EVENT_ROGUELIKE_SECTIONType_CHANGE", --试炼模式开启
|
||||
EVENT_ROGUELIKE_SECTION_REFRESH = "EVENT_ROGUELIKE_SECTION_REFRESH", --重置进度
|
||||
EVENT_ROGUELIKE_TRIALPOINT_CHANGE = "EVENT_ROGUELIKE_TRIALPOINT_CHANGE", --积分更新
|
||||
|
||||
-- 公会系统
|
||||
EVENT_GUILD_RECEIVE_CHAT = "EVENT_GUILD_RECEIVE_CHAT", --公会收到消息
|
||||
EVENT_GUILD_UPDATE_MEMBER_INFO = "EVENT_GUILD_UPDATE_MEMBER_INFO", --刷新公会信息,只刷不增加
|
||||
EVENT_GUILD_ALLRANKNAME_UPDATE = "EVENT_GUILD_ALLRANKNAME_UPDATE", --公会自定义职位修改
|
||||
EVENT_GUILD_LEVEL_CHANGED = "EVENT_GUILD_LEVEL_CHANGED", --公会等级变化
|
||||
EVENT_GUILD_MAINTAIN_STATE_CHANGED = "EVENT_GUILD_MAINTAIN_STATE_CHANGED", --公会维护状态变化
|
||||
EVENT_GUILD_BUILD_CHANGED = "EVENT_GUILD_BUILD_CHANGED", --公会建设度变化
|
||||
EVENT_GUILD_CONTRIBUTE_CHANGED = "EVENT_GUILD_CONTRIBUTE_CHANGED", --公会贡献变化
|
||||
EVENT_GUILD_GIFT_CONTRIBUTE_CHANGED = "EVENT_GUILD_GIFT_CONTRIBUTE_CHANGED", --公会礼包贡献进度变化
|
||||
EVENT_GUILD_APPLY_LIST_CHANGED = "EVENT_GUILD_APPLY_LIST_CHANGED", --公会申请列表变化
|
||||
EVENT_GUILD_MEMBER_CONTRIBUTE_CONDITION = "EVENT_GUILD_MEMBER_CONTRIBUTE_CONDITION", --公会成员领取贡献
|
||||
EVENT_GUILD_RANKLEVEL_CHANGED = "EVENT_GUILD_RANKLEVEL_CHANGED", --公会职位变化
|
||||
EVENT_GUILD_WEEKLY_RESET = "EVENT_GUILD_WEEKLY_RESET", --公会周重置
|
||||
EVENT_GUILD_LEADER_DISSMISS = "EVENT_GUILD_LEADER_DISSMISS", --会长罢免
|
||||
EVENT_GUILD_NOTICE = "EVENT_GUILD_NOTICE", --公会消息同步
|
||||
EVENT_GUILD_NAME_CHANGED = "EVENT_GUILD_NAME_CHANGED", -- 公会名称变化
|
||||
EVENT_GUILD_DECLARATION_CHANGED = "EVENT_GUILD_DECLARATION_CHANGED", -- 公会宣言变化
|
||||
EVENT_GUILD_INTERCOM_CHANGED = "EVENT_GUILD_INTERCOM_CHANGED", -- 公会内部通讯变化
|
||||
EVENT_GUILD_FILTER_FINISH = "EVENT_GUILD_FILTER_FINISH", -- 返回过滤后的内容
|
||||
EVENT_GUILD_TALENT_ASYNC = "EVENT_GUILD_TALENT_ASYNC", --公会天赋变化
|
||||
EVNET_GUILD_LEADER_NAME_CHANGED = "EVNET_GUILD_LEADER_NAME_CHANGED", --队长职位变化
|
||||
EVNET_GUILD_LEADER_CHANGED = "EVNET_GUILD_LEADER_CHANGED", --队员数据变化
|
||||
EVENT_GUILD_MEMBERCOUNT_CHANGED = "EVENT_GUILD_MEMBERCOUNT_CHANGED", --队员人数变化
|
||||
EVENT_GUILD_RECRUIT_LIST_CHANGED = "EVENT_GUILD_RECRUIT_LIST_CHANGED", --招募列表变化
|
||||
EVENT_GUILD_MEMBER_SET = "EVENT_GUILD_MEMBER_SET", --点击成员的设置面板
|
||||
|
||||
--工会boss
|
||||
EVENT_GUILDBOSS_HPBOX_CHANGED = "EVENT_GUILDBOSS_HPBOX_CHANGED", --有工会bosshp奖励可以领
|
||||
EVENT_GUILDBOSS_SCOREBOX_CHANGED = "EVENT_GUILDBOSS_SCOREBOX_CHANGED", --有工会boss积分奖励可以领
|
||||
|
||||
--充值失败
|
||||
EVNET_FAIL_PAY = "EVNET_FAIL_PAY",
|
||||
EVENT_HGSDK_SETPASS_RESULT = "EVENT_HGSDK_SETPASS_RESULT",
|
||||
EVENT_LOGIN_ATTENTION = "EVENT_LOGIN_ATTENTION",
|
||||
|
||||
--图鉴系统
|
||||
EVNET_ARCHIVE_MONSTER_KILLCOUNTCHANGE = "EVNET_ARCHIVE_MONSTER_KILLCOUNTCHANGE", --怪物击杀(任一怪物)数发生改变
|
||||
EVNET_ARCHIVE_MONSTER_UNLOCKMONSTER = "EVNET_ARCHIVE_MONSTER_UNLOCKMONSTER", --消除新怪红点
|
||||
EVNET_ARCHIVE_MONSTER_UNLOCKMONSTERINFO = "EVNET_ARCHIVE_MONSTER_UNLOCKMONSTERINFO", --消除怪物新信息红点
|
||||
EVNET_ARCHIVE_MONSTER_UNLOCKMONSTERSKILL = "EVNET_ARCHIVE_MONSTER_UNLOCKMONSTERSKILL", --消除怪物新技能红点
|
||||
EVNET_ARCHIVE_MONSTER_UNLOCKMONSTERSETTING = "EVNET_ARCHIVE_MONSTER_UNLOCKMONSTERSETTING", --消除怪物新设定红点
|
||||
|
||||
EVENET_ARCHIVE_NEW_WEAPON = "EVENET_ARCHIVE_NEW_WEAPON", --新的武器
|
||||
EVENET_ARCHIVE_UNLOCK_WEAPON = "EVENET_ARCHIVE_UNLOCK_WEAPON", --记录武器的红点
|
||||
EVENET_ARCHIVE_UNLOCK_WEAPON_SETTING = "EVENET_ARCHIVE_UNLOCK_WEAPON_SETTING", --记录武器设定的红点
|
||||
EVENET_ARCHIVE_NEW_AWARENESS_SUIT = "EVENET_ARCHIVE_NEW_AWARENESS_SUIT", --新的意识套装的红点
|
||||
EVENET_ARCHIVE_UNLOCK_AWARENESS_SUIT = "EVENET_ARCHIVE_UNLOCK_AWARENESS_SUIT", --记录意识的红点
|
||||
EVENET_ARCHIVE_UNLOCK_AWARENESS_SETTING = "EVENET_ARCHIVE_UNLOCK_AWARENESS_SETTING", --记录意识设定的红点
|
||||
|
||||
EVENET_ARCHIVE_NEW_CG = "EVENET_ARCHIVE_NEW_CG", --新的CG
|
||||
EVENET_ARCHIVE_MARK_CG = "EVENET_ARCHIVE_MARK_CG", --解除新CG红点
|
||||
--剧情
|
||||
EVENT_MOVIE_BREAK_BLOCK = "EVENT_MOVIE_BREAK_BLOCK", --推动剧情下一步进展
|
||||
EVENT_MOVIE_UI_OPEN = "EVENT_MOVIE_UI_OPEN",
|
||||
EVENT_MOVIE_UI_DESTROY = "EVENT_MOVIE_UI_DESTROY",
|
||||
EVENT_MOVIE_UI_CLOSED = "EVENT_MOVIE_UI_CLOSED",--剧情UI完全关闭,所有节点清理行为结束
|
||||
EVENT_MOVIE_AUTO_PLAY = "EVENT_MOVIE_AUTO_PLAY",
|
||||
|
||||
-- 狙击战
|
||||
EVENT_UNIONKILL_BOSSCOUNTCHANGE = "EVENT_UNIONKILL_BOSSCOUNTCHANGE", --击杀boss次数变化
|
||||
EVENT_UNIONKILL_STAGEINFOCHANGE = "EVENT_UNIONKILL_STAGEINFOCHANGE", --关卡数据变化
|
||||
EVENT_UNIONKILL_PLAYERINFOCHANGE = "EVENT_UNIONKILL_PLAYERINFOCHANGE", --玩家信息变化
|
||||
EVENT_UNIONKILL_BOSSHPCHANGE = "EVENT_UNIONKILL_BOSSHPCHANGE", --boss血量变化
|
||||
EVENT_UNIONKILL_LEAVEROOM = "EVENT_UNIONKILL_LEAVEROOM", --通知玩家离开房间
|
||||
EVENT_UNIONKILL_TIPSMESSAGE = "EVENT_UNIONKILL_TIPSMESSAGE", --通知消息
|
||||
EVENT_UNIONKILL_ROOMDATANOTIFY = "EVENT_UNIONKILL_ROOMDATANOTIFY", --收到进入联机副本消息
|
||||
EVENT_UNIONKILL_ACTIVITYINFO = "EVENT_UNIONKILL_ACTIVITYINFO", --活动信息变化
|
||||
EVENT_UNIONKILL_FIGHTSTATUS = "EVENT_UNIONKILL_FIGHTSTATUS", --战斗状态变化
|
||||
|
||||
EVENT_UNIONKILLROOM_MATCHRESULT = "EVENT_UNIONKILLROOM_MATCHRESULT", --匹配到房间
|
||||
EVENT_UNIONKILLROOM_KICKOUT = "EVENT_UNIONKILLROOM_KICKOUT", --被踢出队伍
|
||||
EVENT_UNIONKILLROOM_LEADER_CHANGED = "EVENT_UNIONKILLROOM_LEADER_CHANGED", --队长改变
|
||||
EVENT_UNIONKILLROOM_PLAYERSTATE_CHANGED = "EVENT_UNIONKILLROOM_PLAYERSTATE_CHANGED", --玩家状态改变
|
||||
EVENT_UNIONKILLROOM_FIGHTNPC_CHANGED = "EVENT_UNIONKILLROOM_FIGHTNPC_CHANGED", --玩家出站角色改变
|
||||
EVENT_UNIONKILLROOM_PLAYERENTER = "EVENT_UNIONKILLROOM_PLAYERENTER", --有玩家加入
|
||||
EVENT_UNIONKILLROOM_PLAYERLEAVE = "EVENT_UNIONKILLROOM_PLAYERLEAVE", --玩家离开
|
||||
EVENT_UNIONKILLROOM_AUTOMATCHCHANGE = "EVENT_UNIONKILLROOM_AUTOMATCHCHANGE", --快速匹配变化
|
||||
|
||||
--工会boss
|
||||
EVENT_GUILDBOSS_UPDATEDIFF = "EVENT_GUILDBOSS_UPDATEDIFF", --设置下期难度后刷新难度页面
|
||||
EVENT_GUILDBOSS_UPDATEORDER = "EVENT_GUILDBOSS_UPDATEORDER", --设置战术布局后刷新难度页面
|
||||
|
||||
-- 边界公约
|
||||
EVENT_FUBEN_ASSIGN_STAGE_CLICK = "EVENT_FUBEN_ASSIGN_STAGE_CLICK", -- 点击关卡组
|
||||
EVENT_FUBEN_ASSIGN_STAGE_DETAIL_CLOSE = "EVENT_FUBEN_ASSIGN_STAGE_DETAIL_CLOSE", -- 关闭出战准备界面
|
||||
EVENT_FUBEN_ASSIGN_FORMATION_CONFIRM = "EVENT_FUBEN_ASSIGN_FORMATION_CONFIRM", -- 编队保存
|
||||
EVENT_ASSIGN_SELECT_OCCUPY_BEGIN = "EVENT_ASSIGN_SELECT_OCCUPY_BEGIN", -- 选择了驻守成员
|
||||
EVENT_ASSIGN_SELECT_OCCUPY_END = "EVENT_ASSIGN_SELECT_OCCUPY_END", -- 确认了所选的驻守成员
|
||||
EVENT_ON_ASSIGN_TEAM_CHANGED = "EVENT_ON_ASSIGN_TEAM_CHANGED",
|
||||
EVENT_ASSIGN_REFRESH_FORMATION = "EVENT_ASSIGN_REFRESH_FORMATION", -- 刷新编队界面
|
||||
EVENET_ASSIGN_CAN_REWARD = "EVENET_ASSIGN_CAN_REWARD", -- 可领奖红点
|
||||
EVENT_REFRESH_CHRACTER_ABLIITY = "EVENT_REFRESH_CHRACTER_ABLIITY", -- 刷新战力
|
||||
|
||||
--回归活动
|
||||
EVENT_REGRESSION_OPEN_STATUS_UPDATE = "EVENT_REGRESSION_OPEN_STATUS_UPDATE", -- 回归活动状态更新
|
||||
EVENT_REGRESSION_TASK_SCHEDULE_UPDATE = "EVENT_REGRESSION_TASK_SCHEDULE_UPDATE", -- 回归活动进度和进度奖励刷新
|
||||
EVENT_REGRESSION_TASK_SCHEDULE_REWARD_GET = "EVENT_REGRESSION_TASK_SCHEDULE_REWARD_GET", --获取回归活动任务进度奖励
|
||||
EVENT_REGRESSION_SEND_INVITATION_INFO_UPDATE = "EVENT_REGRESSION_SEND_INVITATION_INFO_UPDATE", -- 获取邀请他人信息更新
|
||||
|
||||
-- 战斗字幕
|
||||
EVENT_FIGHT_WORDS_NEXT = "EVENT_FIGHT_WORDS_NEXT", -- 战斗字幕播放下一条
|
||||
|
||||
-- 区域联机
|
||||
EVENT_ARENAONLINE_WEEK_REFRESH = "EVENT_ARENAONLINE_WEEK_REFRESH", --区域连接周更新
|
||||
EVENT_ARENAONLINE_DAY_REFRESH = "EVENT_ARENAONLINE_DAY_REFRESH", --区域连接日更新
|
||||
|
||||
-- 看图作文
|
||||
EVENT_PICCOMPOSITION_GET_WORD = "EVENT_PICCOMPOSITION_GET_WORD", --获取屏蔽词
|
||||
EVENT_PICCOMPOSITION_GET_RANKDATA = "EVENT_PICCOMPOSITION_GET_RANKDATA", --获取排行数据
|
||||
EVENT_PICCOMPOSITION_GET_OTHERDATA = "EVENT_PICCOMPOSITION_GET_OTHERDATA", --获取过审作品数据
|
||||
EVENT_PICCOMPOSITION_GET_MYDATA = "EVENT_PICCOMPOSITION_GET_MYDATA", --获取自己作品数据
|
||||
|
||||
-- 副本商店
|
||||
EVENT_FUBEN_DAILY_SHOP_CHECK_NEW = "EVENT_FUBEN_DAILY_SHOP_CHECK_NEW", --获取套装更新
|
||||
|
||||
--特训关
|
||||
EVENT_FUBEN_SPECIAL_TRAIN_REWARD = "EVENT_FUBEN_SPECIAL_TRAIN_REWARD", --领奖
|
||||
EVENT_FUBEN_SPECIAL_TRAIN_ACTIVITY_CHANGE = "EVENT_FUBEN_SPECIAL_TRAIN_ACTIVITY_CHANGE", --领奖
|
||||
|
||||
--小游戏
|
||||
EVENT_ELIMINATEGAME_GET_REWARD = "EVENT_ELIMINATEGAME_GET_REWARD", --领奖
|
||||
EVENT_ELIMINATEGAME_RESET = "EVENT_ELIMINATEGAME_RESET", --重置
|
||||
|
||||
-- 点消小游戏
|
||||
EVENT_CLICKCLEARGAME_INIT_COMPLETE = "EVENT_CLICKCLEARGAME_INIT_COMPLETE", --点消小游戏初始化完成
|
||||
EVENT_CLICKCLEARGAME_HEAD_COUNT_CHANGED = "EVENT_CLICKCLEARGAME_HEAD_COUNT_CHANGED", -- 头像数据更新
|
||||
EVENT_CLICKCLEARGAME_GAME_PLAYING = "EVENT_CLICKCLEARGAME_GAME_PLAYING", -- 游戏开始游玩
|
||||
EVENT_CLICKCLEARGAME_GAME_PAUSE = "EVENT_CLICKCLEARGAME_GAME_PAUSE", -- 游戏暂停
|
||||
EVENT_CLICKCLEARGAME_GAME_ACCOUNT = "EVENT_CLICKCLEARGAME_GAME_ACCOUNT", -- 点消小游戏结算
|
||||
EVENT_CLICKCLEARGAME_GAME_RESET = "EVENT_CLICKCLEARGAME_GAME_RESET", -- 点消小游戏重置
|
||||
EVENT_CLICKCLEARGAME_GAME_PAGE_CHANGED = "XEventId.EVENT_CLICKCLEARGAME_GAME_PAGE_CHANGED", -- 头像页发生变动
|
||||
EVENT_CLICKCLEARGAME_TAKED_REWARD = "EVENT_CLICKCLEARGAME_TAKED_REWARD", -- 领取小游戏奖励
|
||||
EVENT_CLICKCLEARGAME_FINISHED_GAME = "EVENT_CLICKCLEARGAME_FINISHED_GAME", -- 点消小游戏完成
|
||||
|
||||
-- 拼图小游戏
|
||||
EVENT_DRAG_PUZZLE_GAME_GET_PIECE = "EVENT_DRAG_PUZZLE_GAME_GET_PIECE", -- 获取了拼图碎片
|
||||
EVENT_DRAG_PUZZLE_GAME_PUZZLE_CHANGED = "EVENT_DRAG_PUZZLE_GAME_PUZZLE_CHANGED", -- 拼图数据发生改变
|
||||
EVENT_DRAG_PUZZLE_GAME_PUZZLE_COMPLETE = "EVENT_DRAG_PUZZLE_GAME_PUZZLE_COMPLETE", -- 拼图完成
|
||||
EVENT_DRAG_PUZZLE_GAME_GOT_REWARD = "EVENT_DRAG_PUZZLE_GAME_GOT_REWARD", -- 获取了奖励
|
||||
EVENT_DRAG_PUZZLE_GAME_PLAYED_VIDEO = "EVENT_DRAG_PUZZLE_GAME_PLAYED_VIDEO", -- 播放了通关剧情
|
||||
EVENT_DRAG_PUZZLE_GAME_PUZZLE_DECRYPTION = "EVENT_DRAG_PUZZLE_GAME_PUZZLE_DECRYPTION", -- 进入解密状态
|
||||
EVENT_DRAG_PUZZLE_GAME_CHANGE_PASSWORD = "EVENT_DRAG_PUZZLE_GAME_CHANGE_PASSWORD", -- 更改解密密码
|
||||
EVENT_DRAG_PUZZLE_GAME_PUZZLE_CHECK_WORD_ERROR = "EVENT_DRAG_PUZZLE_GAME_PUZZLE_CHECK_WORD_ERROR", -- 校验了密码
|
||||
|
||||
-- 圣诞树装饰小游戏
|
||||
EVENT_CHRISTMAS_TREE_ORNAMENT_ACTIVE = "EVENT_CHRISTMAS_TREE_ORNAMENT_ACTIVE", -- 获取了饰品
|
||||
EVENT_CHRISTMAS_TREE_ORNAMENT_READ = "EVENT_CHRISTMAS_TREE_ORNAMENT_READ", -- 使用了饰品
|
||||
EVENT_CHRISTMAS_TREE_GOT_REWARD = "EVENT_CHRISTMAS_TREE_GOT_REWARD", -- 领取了奖励
|
||||
|
||||
-- 春节对联小游戏
|
||||
EVENT_COUPLET_GAME_GET_WORD = "EVENT_COUPLET_GAME_GET_WORD", -- 获取了文字
|
||||
EVENT_COUPLET_GAME_COMPLETE = "EVENT_COUPLET_GAME_COMPLETE", -- 成功完成对联
|
||||
EVENT_COUPLET_GAME_SENTENCE_ERROR = "EVENT_COUPLET_GAME_SENTENCE_ERROR", -- 校验对联失败
|
||||
EVENT_COUPLET_GAME_CHANGE_WORD = "EVENT_COUPLET_GAME_CHANGE_WORD", -- 交换了文字
|
||||
EVENT_COUPLET_GAME_FINISH_TASK = "EVENT_COUPLET_GAME_FINISH_TASK", -- 领取了任务奖励
|
||||
EVENT_COUPLET_GAME_PLAYED_VIDEO = "EVENT_COUPLET_GAME_PLAYED_VIDEO", -- 播放剧情
|
||||
|
||||
--武器涂装
|
||||
EVENT_FASHION_WEAPON_EXPIRED_REFRESH = "EVENT_FASHION_WEAPON_EXPIRED_REFRESH", --武器涂装过期刷新
|
||||
|
||||
--感染体玩法
|
||||
EVENT_INFESTOREXPLORE_REFRESH_PALYER_RANK = "EVENT_INFESTOREXPLORE_REFRESH_PALYER_RANK", --第一阶段玩家排行数据更新
|
||||
EVENT_INFESTOREXPLORE_SELECT_CORE = "EVENT_INFESTOREXPLORE_SELECT_CORE", --选择核心刷新弹窗UI
|
||||
EVENT_INFESTOREXPLORE_CORE_PUTON = "EVENT_INFESTOREXPLORE_CORE_PUTON", --穿戴核心
|
||||
EVENT_INFESTOREXPLORE_CORE_TAKEOFF = "EVENT_INFESTOREXPLORE_CORE_TAKEOFF", --脱下核心
|
||||
EVENT_INFESTOREXPLORE_CORE_DECOMPOESE = "EVENT_INFESTOREXPLORE_CORE_DECOMPOESE", --分解核心
|
||||
EVENT_INFESTOREXPLORE_MOVE_TO_NEXT_NODE = "EVENT_INFESTOREXPLORE_MOVE_TO_NEXT_NODE", --移动到下一节点
|
||||
EVENT_INFESTOREXPLORE_CHAPTER_FINISH = "EVENT_INFESTOREXPLORE_CHAPTER_FINISH", --章节完成
|
||||
EVENT_FIGHT_INFESTOR_SCORE_CHANGE = "EVENT_FIGHT_INFESTOR_SCORE_CHANGE", --讨伐值变化
|
||||
EVENT_INFESTOREXPLORE_CONTRACT_DAILY_RESET = "EVENT_INFESTOREXPLORE_CONTRACT_DAILY_RESET", --灾厄合约每日重置
|
||||
EVENT_INFESTOREXPLORE_CHARACTER_HP_CHANGE = "EVENT_INFESTOREXPLORE_CHARACTER_HP_CHANGE", --队伍成员血量变化
|
||||
EVENT_INFESTOREXPLORE_RESET = "EVENT_INFESTOREXPLORE_RESET", --玩法阶段重置
|
||||
|
||||
--剧情相关
|
||||
EVENT_MOVIE_BEGIN = "EVENT_MOVIE_BEGIN", --开始播放剧情
|
||||
EVENT_MOVIE_END = "EVENT_MOVIE_END", --剧情结束
|
||||
--水上乐园
|
||||
EVENT_STORY_DISTORY = "EVENT_STORY_DISSTORY", --关闭新星辰剪影
|
||||
--虚像地平线
|
||||
EVENT_EXPEDITION_ACTIVECOMBOLIST_CHANGE = "EVENT_EXPEDITION_ACTIVECOMBOLIST_CHANGE", --激活羁绊发生变动时
|
||||
EVENT_EXPEDITION_MEMBERLIST_CHANGE = "EVENT_EXPEDITION_MEMBERLIST_CHANGE", --成员发生变动时
|
||||
EVENT_EXPEDITION_RECRUIT_REFRESH = "EVENT_EXPEDITION_RECRUIT_REFRESH", --招募成员刷新时
|
||||
EVENT_EXPEDITION_RECRUITTIME_REFRESH = "EVENT_EXPEDITION_RECRUITTIME_REFRESH", --招募次数刷新时
|
||||
EVENT_EXPEDITION_RANKING_REFRESH = "EVENT_EXPEDITION_RANKING_REFRESH", --排行榜刷新
|
||||
EVENT_EXPEDITION_COMMENTS_RECEIVE = "EVENT_EXPEDITION_COMMENTS_RECEIVE", --接收评论时
|
||||
EVENT_EXPEDITION_COMMENTS_DOLIKE = "EVENT_EXPEDITION_COMMENTS_DOLIKE", --点赞成功时
|
||||
EVENT_EXPEDITION_COMMENTS_SEND = "EVENT_EXPEDITION_COMMENTS_SEND", --发送自己信息成功时
|
||||
EVENT_EXPEDITION_ON_GET_CHAPTER_REWARD = "EVENT_EXPEDITION_ON_GET_CHAPTER_REWARD", --获取到章节奖励
|
||||
--世界boss相关
|
||||
EVENT_WORLDBOSS_SYNCDATA = "EVENT_WORLDBOSS_SYNCDATA", --同步世界boss公共数据
|
||||
EVENT_WORLDBOSS_TASK_RESET = "EVENT_WORLDBOSS_TASK_RESET", --重置任务
|
||||
EVENT_WORLDBOSS_REPORT = "EVENT_WORLDBOSS_REPORT", --同步战报
|
||||
--兵法蓝图
|
||||
EVENT_RPGTOWER_RESET = "EVENT_RPGTOWER_RESET", -- 兵法蓝图角色数据重置
|
||||
EVENT_RPGTOWER_MEMBERCHANGE = "EVENT_RPGTOWER_MEMBERCHANGE", -- 兵法蓝图角色数据变化时
|
||||
EVENT_RPGTOWER_ON_LEVELUP = "EVENT_RPGTOWER_ON_LEVELUP", -- 兵法蓝图角色升级成功时
|
||||
EVENT_RPGTOWER_ON_TALENT_UNLOCK = "EVENT_RPGTOWER_ON_TALENT_UNLOCK", -- 兵法蓝图角色天赋解锁成功时
|
||||
EVENT_RPGTOWER_REFRESH_DAILYREWARD = "EVENT_RPGTOWER_REFRESH_DAILYREWARD", -- 兵法蓝图获取每日补给
|
||||
--大富翁
|
||||
EVENT_MAINTAINERACTION_DAY_UPDATA = "EVENT_MAINTAINERACTION_DAY_UPDATA", --日更新
|
||||
EVENT_MAINTAINERACTION_WEEK_UPDATA = "EVENT_MAINTAINERACTION_WEEK_UPDATA", --周更新
|
||||
EVENT_MAINTAINERACTION_USECARD = "EVENT_MAINTAINERACTION_USECARD", --用卡
|
||||
EVENT_MAINTAINERACTION_SELECTCARD = "EVENT_MAINTAINERACTION_SELECTCARD", --选卡
|
||||
EVENT_MAINTAINERACTION_NODE_CHANGE = "EVENT_MAINTAINERACTION_NODE_CHANGE", --更换地图节点
|
||||
--跑团玩法
|
||||
EVENT_TRPG_MAZE_MOVE_NEXT = "EVENT_TRPG_MAZE_MOVE_NEXT", --迷宫前进
|
||||
EVENT_TRPG_MAZE_MOVE_TO = "EVENT_TRPG_MAZE_MOVE_TO", --迷宫跳转
|
||||
EVENT_TRPG_MAZE_RESTART = "EVENT_TRPG_MAZE_RESTART", --迷宫重新开始
|
||||
EVENT_TRPG_MAZE_RECORD_CARD = "EVENT_TRPG_MAZE_RECORD_CARD", --迷宫新增卡牌记录
|
||||
EVENT_TRPG_UPDATE_TARGET = "EVENT_TRPG_UPDATE_TARGET", --通知刷新目标
|
||||
EVENT_TRPG_WORLDBOSS_SYNCDATA = "EVENT_TRPG_WORLDBOSS_SYNCDATA", --同步世界boss数据
|
||||
EVENT_TRPG_EXAMINE_DATA_CHANGE = "EVENT_TRPG_EXAMINE_DATA_CHANGE", --检定数据改变
|
||||
EVENT_TRPG_EXAMINE_RESULT_SYN = "EVENT_TRPG_EXAMINE_RESULT_SYN", --检定结果通知
|
||||
EVENT_TRPG_EXAMINE_ROUND_CHANGE = "EVENT_TRPG_EXAMINE_ROUND_CHANGE", --检定轮次变更
|
||||
EVENT_TRPG_ROLES_DATA_CHANGE = "EVENT_TRPG_ROLES_DATA_CHANGE", --调查员数据改变
|
||||
EVENT_TRPG_FUNCTION_FINISH_SYN = "EVENT_TRPG_FUNCTION_FINISH_SYN", --功能完成通知
|
||||
EVENT_TRPG_SHOP_INFO_CHANGE = "EVENT_TRPG_SHOP_INFO_CHANGE", --商店数据发生改变
|
||||
EVENT_TRPG_BASE_INFO_CHANGE = "EVENT_TRPG_BASE_INFO_CHANGE", --经验、等级、耐力发生改变
|
||||
EVENT_TRPG_GET_MEMOIR_REWARD = "EVENT_TRPG_GET_MEMOIR_REWARD", --成功领取珍藏奖励
|
||||
EVENT_TRPG_GET_REWARD = "EVENT_TRPG_GET_REWARD", --成功领取奖励
|
||||
EVENT_TRPG_BOSS_HP_SYN = "EVENT_TRPG_BOSS_HP_SYN", --跑团世界BOSS血量通知
|
||||
EVENT_TRPG_FIRST_OPEN_TRUTH_ROAD = "EVENT_TRPG_FIRST_OPEN_TRUTH_ROAD", --首次打开求真之路
|
||||
EVENT_TRPG_FIRST_OPEN_COLLECTION = "EVENT_TRPG_FIRST_OPEN_COLLECTION", --首次打开珍藏
|
||||
EVENT_TRPG_OPEN_LEVEL_DIALOG = "EVENT_TRPG_OPEN_LEVEL_DIALOG", --打开等级说明弹窗
|
||||
|
||||
--师徒系统
|
||||
EVENT_CHAT_RECEIVE_MENTOR_MSG = "EVENT_CHAT_RECEIVE_MENTOR_MSG", --收到师徒聊天信息
|
||||
EVENT_MENTOR_GET_APPLY = "EVENT_MENTOR_GET_APPLY", --收到一条申请
|
||||
EVENT_MENTOR_OPERATION_APPLY = "EVENT_MENTOR_OPERATION_APPLY", --处理申请
|
||||
EVENT_MENTOR_GET_TEACHER = "EVENT_MENTOR_GET_TEACHER", --得到一个老师
|
||||
EVENT_MENTOR_GET_STUDENT = "EVENT_MENTOR_GET_STUDENT", --得到一个学生
|
||||
EVENT_MENTOR_LOSE_TEACHER = "EVENT_MENTOR_LOSE_TEACHER", --失去一个老师
|
||||
EVENT_MENTOR_LOSE_STUDENT = "EVENT_MENTOR_LOSE_STUDENT", --失去一个学生
|
||||
EVENT_MENTOR_TEACHERORSTUDENT_CHANGE = "EVENT_MENTOR_TEACHERORSTUDENT_CHANGE", --师生列表发生改变
|
||||
EVENT_MENTOR_SHIPCHANGE = "EVENT_MENTOR_SHIPCHANGE", --身份转变
|
||||
EVENT_MENTOR_CAN_GRADUATE = "EVENT_MENTOR_CAN_GRADUATE", --可毕业通知
|
||||
EVENT_MENTOR_GRADUATE_STUDENT = "EVENT_MENTOR_GRADUATE_STUDENT", --毕业一个学生
|
||||
EVENT_MENTOR_STUDENT_SYSTEMTASK_CHANGE = "EVENT_MENTOR_STUDENT_SYSTEMTASK_CHANGE", --学生的系统任务发生改变(学生身份)
|
||||
EVENT_MENTOR_STUDENT_WEEKLYTASK_CHANGE = "EVENT_MENTOR_STUDENT_WEEKLYTASK_CHANGE", --学生的已接任务状态发生改变(学生身份)
|
||||
EVENT_MENTOR_STUDENT_TASKCOUNT_CHANGE = "EVENT_MENTOR_STUDENT_TASKCOUNT_CHANGE", --学生的完成任务数发生改变
|
||||
EVENT_MENTOR_TEACHER_STUDENTWEEKLYTASK_CHANGE = "EVENT_MENTOR_TEACHER_STUDENTWEEKLYTASK_CHANGE", --学生的已接任务状态发生改变(老师身份)
|
||||
EVENT_MENTOR_TEACHER_STUDENTSYSTEMTASK_CHANGE = "EVENT_MENTOR_TEACHER_STUDENTSYSTEMTASK_CHANGE", --学生的系统任务发生改变(老师身份)
|
||||
EVENT_MENTOR_GETREWARD = "EVENT_MENTOR_GETREWARD", --学生或老师领取奖励
|
||||
EVENT_MENTOR_INTASKUI = "EVENT_MENTOR_INTASKUI", --进任务界面
|
||||
EVENT_MENTOR_DAY_RESET = "EVENT_MENTOR_DAY_RESET", --日更新
|
||||
EVENT_MENTOR_WEEK_RESET = "EVENT_MENTOR_WEEK_RESET", --周更新
|
||||
EVENT_MENTOR_TEACHER_CHANGECOUNT_PLUS = "EVENT_MENTOR_TEACHER_CHANGECOUNT_PLUS", --任务可更变数增加
|
||||
EVENT_MENTOR_MEMBERLEVEL_CHANGE = "EVENT_MENTOR_MEMBERLEVEL_CHANGE", --成员(老师/学生)等级改变
|
||||
EVENT_MENTOR_AUTO_GRADUATE = "EVENT_MENTOR_AUTO_GRADUATE", --到达等级后自动毕业
|
||||
EVENT_MENTOR_TEACHER_MONTHLYSTUDENTCOUNT_UPDATE = "EVENT_MENTOR_TEACHER_MONTHLYSTUDENTCOUNT_UPDATE", --通知老师本月已招募学员数改变
|
||||
EVENT_MENTOR_MESSAGE_UPDATE = "EVENT_MENTOR_MESSAGE_UPDATE", --通知所有人留言改变
|
||||
EVENT_MENTOR_ONLINE_UPDATE = "EVENT_MENTOR_ONLINE_UPDATE", --通知所有人在线状态
|
||||
EVENT_MENTOR_TEACHER_ACTIVATION_UPDATE = "EVENT_MENTOR_TEACHER_ACTIVATION_UPDATE",--通知老师获得活跃度礼物
|
||||
--尼尔玩法
|
||||
EVENT_NIER_ACTIVITY_REFRESH = "EVENT_NIER_ACTIVITY_REFRESH",
|
||||
EVENT_NIER_ACTIVITY_END = "EVENT_NIER_ACTIVITY_END",
|
||||
EVENT_NIER_CHARACTER_UPDATE = "EVENT_NIER_CHARACTER_UPDATE", --尼尔角色改变
|
||||
EVENT_NIER_POD_UPDATE = "EVENT_NIER_POD_UPDATE", --尼尔辅助机
|
||||
EVENT_NIER_REPEAT_CLICK = "EVENT_NIER_REPEAT_CLICK",
|
||||
|
||||
--口袋妖怪
|
||||
EVENT_POKEMON_MONSTERS_DATA_CHANGE = "EVENT_POKEMON_MONSTERS_DATA_CHANGE", --怪物信息改变
|
||||
EVENT_POKEMON_MONSTERS_LEVEL_UP = "EVENT_POKEMON_MONSTERS_LEVEL_UP", --怪物升级
|
||||
EVENT_POKEMON_MONSTERS_STAR_UP = "EVENT_POKEMON_MONSTERS_STAR_UP", --怪物升星
|
||||
EVENT_POKEMON_MONSTERS_SKILL_SWITCH = "EVENT_POKEMON_MONSTERS_SKILL_SWITCH", --怪物技能切换
|
||||
EVENT_POKEMON_REMAINING_TIMES_CHANGE = "EVENT_POKEMON_REMAINING_TIMES_CHANGE", --剩余次数改变
|
||||
EVENT_POKEMON_PASSED_STAGE_CHANGE = "EVENT_POKEMON_PASSED_STAGE_CHANGE", --通关关卡改变
|
||||
EVENT_POKEMON_RED_POINT_TIME_SUPPLY = "EVENT_POKEMON_RED_POINT_TIME_SUPPLY", --时间奖励红点
|
||||
|
||||
--战斗属性同步
|
||||
EVENT_ATTRIBUTE_MANAGER_INIT = "EVENT_ATTRIBUTE_MANAGER_INIT", --属性manager初始化完成
|
||||
--炸服押注
|
||||
EVENT_GUARD_CAMP_ACTIVITY_DATA_CHANGE = "EVENT_GUARD_CAMP_ACTIVITY_DATA_CHANGE", --活动数据发生改变通知
|
||||
EVENT_GUARD_CAMP_ACTIVITY_OPEN_STATE_CHANGE = "EVENT_GUARD_CAMP_ACTIVITY_OPEN_STATE_CHANGE", --活动状态发生改变
|
||||
|
||||
--@region 追击玩法
|
||||
|
||||
--追击地图更新
|
||||
EVENT_CHESSPURSUIT_MAP_UPDATE = "EVENT_CHESSPURSUIT_MAP_UPDATE",
|
||||
--保存队伍
|
||||
EVENT_CHESSPURSUIT_SAVETEAM = "EVENT_CHESSPURSUIT_SAVETEAM",
|
||||
--战斗胜利
|
||||
EVENT_CHESSPURSUIT_FIGHT_FINISH_WIN = "EVENT_CHESSPURSUIT_FIGHT_FINISH_WIN",
|
||||
--商店买卡
|
||||
EVENT_CHESSPURSUIT_BUY_CARD = "EVENT_CHESSPURSUIT_BUY_CARD",
|
||||
|
||||
--@endregion
|
||||
|
||||
--组合小游戏
|
||||
EVENT_COMPOSEGAME_BAGITEM_REFRESH = "EVENT_COMPOSEGAME_BAGITEM_REFRESH", --组合小游戏背包道具刷新
|
||||
EVENT_COMPOSEGAME_ITEM_COMPOSE = "EVENT_COMPOSEGAME_ITEM_COMPOSE", --组合小游戏道具合成事件
|
||||
EVENT_COMPOSEGAME_SHOP_REFRESH_TIME_CHANGE = "EVENT_COMPOSEGAME_SHOP_REFRESH_TIME_CHANGE", --组合小游戏商店刷新次数改变
|
||||
EVENT_COMPOSEGAME_SHOP_ITEM_REFRESH = "EVENT_COMPOSEGAME_SHOP_ITEM_REFRESH", --组合小游戏商店商品刷新
|
||||
EVENT_COMPOSEGAME_SCHEDULE_REFRESH = "EVENT_COMPOSEGAME_SCHEDULE_REFRESH", --组合小游戏进度刷新
|
||||
EVENT_COMPOSEGAME_TREASURE_GET = "EVENT_COMPOSEGAME_TREASURE_GET", --组合小游戏领取宝箱奖励时
|
||||
EVENT_COMPOSEGAME_RESET = "EVENT_COMPOSEGAME_RESET", --组合小游戏重置或关闭
|
||||
|
||||
--伙伴系统
|
||||
EVENT_PARTNER_DATAUPDATE = "EVENT_PARTNER_DATAUPDATE", --伙伴数据更新
|
||||
EVENT_PARTNER_OBTAIN = "EVENT_PARTNER_OBTAIN", --伙伴获得
|
||||
EVENT_PARTNER_SKILLCHANGE = "EVENT_PARTNER_SKILLCHANGE", --伙伴技能变动(等级激活)
|
||||
EVENT_PARTNER_CARRY = "EVENT_PARTNER_CARRY", --伙伴携带状况变动
|
||||
EVENT_PARTNER_SKILLUNLOCK = "EVENT_PARTNER_SKILLUNLOCK", --伙伴技能解锁
|
||||
EVENT_PARTNER_QUALITYUP = "EVENT_PARTNER_QUALITYUP", --伙伴品质改变
|
||||
EVENT_PARTNER_SKILLUNLOCK_CLOSERED = "EVENT_PARTNER_SKILLUNLOCK_CLOSERED", --关闭技能解锁红点
|
||||
EVENT_PARTNER_ABLITYCHANGE = "EVENT_PARTNER_ABLITYCHANGE", --战力改变
|
||||
EVENT_PARTNER_DECOMPOSE = "EVENT_PARTNER_DECOMPOSE", --分解
|
||||
--春节集字活动
|
||||
EVENT_SPRING_FESTIVAL_COLLECT_CARD_REFRESH = "EVENT_SPRING_FESTIVAL_COLLECT_CARD_REFRESH", --集字界面刷新
|
||||
EVENT_SPRING_FESTIVAL_SMASH_EGGS_REFRESH = "EVENT_SPRING_FESTIVAL_SMASH_EGGS_REFRESH", --砸蛋界面刷新
|
||||
EVENT_SPRING_FESTIVAL_GIFT_BAG_REFRESH = "EVENT_SPRING_FESTIVAL_GIFT_BAG_REFRESH", --礼物界面刷新
|
||||
EVENT_SPRING_FESTIVAL_GIFT_BAG_RED = "EVENT_SPRING_FESTIVAL_GIFT_BAG_RED", --礼物界面红点
|
||||
EVENT_SPRING_FESTIVAL_REWARD_RED = "EVENT_SPRING_FESTIVAL_REWARD_RED", --礼物界面红点
|
||||
|
||||
--超级据点
|
||||
EVENT_STRONGHOLD_CUR_DAY_CHANGE = "EVENT_STRONGHOLD_CUR_DAY_CHANGE", --当前天数改变
|
||||
EVENT_STRONGHOLD_ACTIVITY_STATUS_CHANGE = "EVENT_STRONGHOLD_ACTIVITY_STATUS_CHANGE", --活动状态改变
|
||||
EVENT_STRONGHOLD_ACTIVITY_END = "EVENT_STRONGHOLD_ACTIVITY_END", --当期活动结束通知
|
||||
EVENT_STRONGHOLD_MINERAL_RECORD_CHANGE = "EVENT_STRONGHOLD_MINERAL_RECORD_CHANGE", --矿产记录变更
|
||||
EVENT_STRONGHOLD_MINERAL_LEFT_CHANGE = "EVENT_STRONGHOLD_MINERAL_LEFT_CHANGE", --可领取矿石数量变动
|
||||
EVENT_STRONGHOLD_MAX_ELECTRIC_CHANGE = "EVENT_STRONGHOLD_MAX_ELECTRIC_CHANGE", --电能上限变更
|
||||
EVENT_STRONGHOLD_ELECTRIC_CHARACTER_CHANGE = "EVENT_STRONGHOLD_ELECTRIC_CHARACTER_CHANGE", --电能队伍变更
|
||||
EVENT_STRONGHOLD_ENDURANCE_CHANGE = "EVENT_STRONGHOLD_ENDURANCE_CHANGE", --耐力变更
|
||||
EVENT_STRONGHOLD_BORROW_COUNT_CHANGE = "EVENT_STRONGHOLD_BORROW_COUNT_CHANGE", --援助次数变更
|
||||
EVENT_STRONGHOLD_FINISH_GROUP_CHANGE = "EVENT_STRONGHOLD_FINISH_GROUP_CHANGE", --据点进度变更
|
||||
EVENT_STRONGHOLD_NEW_FINISH_GROUP_CHANGE = "EVENT_STRONGHOLD_NEW_FINISH_GROUP_CHANGE", --最新通过据点变更
|
||||
EVENT_STRONGHOLD_FINISH_REWARDS_CHANGE = "EVENT_STRONGHOLD_FINISH_REWARDS_CHANGE", --已领取奖励变更
|
||||
EVENT_STRONGHOLD_SHARE_CHARACTER_CHANGE = "EVENT_STRONGHOLD_SHARE_CHARACTER_CHANGE", --共享角色变更
|
||||
EVENT_STRONGHOLD_PLUGIN_CHANGE_ACK = "EVENT_STRONGHOLD_PLUGIN_CHANGE_ACK", --插件调整确认
|
||||
EVENT_STRONGHOLD_TEAMLIST_CHANGE = "EVENT_STRONGHOLD_TEAMLIST_CHANGE", --队伍列表变更
|
||||
EVENT_STRONGHOLD_SUPPORT_CHANGE = "EVENT_STRONGHOLD_SUPPORT_CHANGE", --电能支援角色变更
|
||||
EVENT_STRONGHOLD_SUPPORT_CANCEL = "EVENT_STRONGHOLD_SUPPORT_CANCEL", --电能支援角色撤回
|
||||
EVENT_STRONGHOLD_ASSISTANT_CHARACTER_SET_CHANGE = "EVENT_STRONGHOLD_ASSISTANT_CHARACTER_SET_CHANGE", --援助角色变更
|
||||
EVENT_STRONGHOLD_ACTIVITY_RESULT_CHANGE = "EVENT_STRONGHOLD_ACTIVITY_RESULT_CHANGE", --活动战报变更
|
||||
EVENT_STRONGHOLD_PAUSE_DAY_CHANGE = "EVENT_STRONGHOLD_PAUSE_DAY_CHANGE", --暂停天数改变
|
||||
EVENT_STRONGHOLD_RUNE_CHANGE = "EVENT_STRONGHOLD_RUNE_CHANGE", --符文变更
|
||||
|
||||
--白色情人节约会活动
|
||||
EVENT_WHITEVALENTINE_REFRESH_PLACE = "EVENT_WHITEVALENTINE_REFRESH_PLACE", --白色情人节地点数据刷新
|
||||
EVENT_WHITEVALENTINE_SHOW_PLACE = "EVENT_WHITEVALENTINE_SHOW_PLACE", --白色情人节显示地点
|
||||
EVENT_WHITEVALENTINE_OPEN_PLACE = "EVENT_WHITEVALENTINE_OPEN_PLACE", --白色情人节新地点开放
|
||||
EVENT_WHITEVALENTINE_INVITE_CHARA = "EVENT_WHITEVALENTINE_INVITE_CHARA",--白色情人节邀请角色
|
||||
EVENT_WHITEVALENTINE_ENCOUNTER_CHARA = "EVENT_WHITEVALENTINE_ENCOUNTER_CHARA",--白色情人节偶遇角色
|
||||
EVENT_WHITEVALENTINE_ENERGY_REFRESH = "EVENT_WHITEVALENTINE_ENERGY_REFRESH",--刷新体力
|
||||
EVENT_WHITEVALENTINE_INVITE_CHANCE_REFRESH = "EVENT_WHITEVALENTINE_INVITE_CHANCE_REFRESH",--刷新邀约次数
|
||||
EVENT_WHITEVALENTINE_CHARA_CHANGE = "EVENT_WHITEVALENTINE_CHARA_CHANGE",--角色列表变动时
|
||||
|
||||
--萌战
|
||||
EVENT_MOE_WAR_PREPARATION_GEAR_REWARD = "EVENT_MOE_WAR_PREPARATION_GEAR_REWARD", --赛事筹备领取奖励
|
||||
EVENT_MOE_WAR_VOTE_SUCC = "EVENT_MOE_WAR_VOTE_SUCC", --投票成功
|
||||
EVENT_MOE_WAR_UPDATE = "EVENT_MOE_WAR_UPDATE", --服务端推送数据
|
||||
EVENT_MOE_WAR_ACTIVITY_END = "EVENT_MOE_WAR_ACTIVITY_END", --活动结束
|
||||
EVENT_MOE_WAR_VOTE_PANEL_UPDATE = "EVENT_MOE_WAR_VOTE_PANEL_UPDATE", --服务端推送数据
|
||||
EVENT_MOE_WAR_CHECK_RECRUIT_RED_POINT = "EVENT_MOE_WAR_CHECK_RECRUIT_RED_POINT", --检查招募通讯的红点
|
||||
EVENT_MOE_WAR_PREPARATION_UPDATE = "EVENT_MOE_WAR_PREPARATION_UPDATE", --服务端推送赛事筹备数据
|
||||
EVENT_MOE_WAR_PLAY_SCREEN_RECORD = "EVENT_MOE_WAR_PLAY_SCREEN_RECORD", --播放滚屏弹幕
|
||||
EVENT_MOE_WAR_PLAY_SCREEN_RECORD_ANIMATION = "EVENT_MOE_WAR_PLAY_SCREEN_RECORD_ANIMATION", --播放滚屏弹幕动作
|
||||
EVENT_MOE_WAR_PLAY_THANK_ANIMATION = "EVENT_MOE_WAR_PLAY_THANK_ANIMATION", --播放感谢动画
|
||||
EVENT_MOE_WAR_PREPARATION_NOTIFY_ASSISTANCE = "EVENT_MOE_WAR_PREPARATION_NOTIFY_ASSISTANCE", --推送赛事筹备援助变化
|
||||
EVENT_MOE_WAR_PREPARATION_DAILY_RESET = "EVENT_MOE_WAR_PREPARATION_DAILY_RESET", --赛事筹备每日重置推送
|
||||
|
||||
--猜拳小游戏
|
||||
EVENT_FINGER_GUESS_OPEN_EYE = "EVENT_FINGER_GUESS_OPEN_EYE", --开启天眼成功
|
||||
EVENT_FINGER_GUESS_PLAY_FINGER = "EVENT_FINGER_GUESS_PLAY_FINGER", --出拳成功
|
||||
EVENT_FINGER_GUESS_GAME_START = "EVENT_FINGER_GUESS_GAME_START", --开始游戏
|
||||
EVENT_FINGER_GUESS_CHECK_EVENT_FINISH = "EVENT_FINGER_GUESS_CHECK_EVENT_FINISH", --检查事件完结
|
||||
--库洛姆人物活动
|
||||
EVENT_KORO_CHAR_ACTIVITY_REDPOINTEVENT = "EVENT_KORO_CHAR_ACTIVITY_REDPOINTEVENT", --人物活动关卡通关事件
|
||||
|
||||
--铭牌相关事件
|
||||
EVENT_NAMEPLATE_CHANGE = "EVENT_NAMEPLATE_CHANGE", --铭牌更新
|
||||
|
||||
--翻牌猜大小
|
||||
EVENT_POKER_GUESSING_UPDATE_SCORE = "EVENT_POKER_GUESSING_UPDATE_SCORE", --翻牌积分更新
|
||||
EVENT_POKER_GUESSING_UPDATE_STATE = "EVENT_POKER_GUESSING_UPDATE_STATE", --比赛进程更新
|
||||
EVENT_POKER_GUESSING_UPDATE_RESULT = "EVENT_POKER_GUESSING_UPDATE_RESULT", --比赛结果推送
|
||||
EVENT_POKER_GUESSING_ACTIVITY_END = "EVENT_POKER_GUESSING_ACTIVITY_END", --活动结束推送
|
||||
|
||||
-- 改造玩法
|
||||
EVENT_REFORM_EVOLVABLE_GROUP_UPDATE = "EVENT_REFORM_EVOLVABLE_GROUP_UPDATE", -- 改造元素更新(敌人、成员、加成和环境)
|
||||
|
||||
--刮刮卡
|
||||
EVENT_SCRATCH_TICKET_ACTIVITY_START = "EVENT_SCRATCH_TICKET_ACTIVITY_START", --刮刮卡活动信息更新
|
||||
EVENT_SCRATCH_TICKET_OPEN_GRID = "EVENT_SCRATCH_TICKET_OPEN_GRID", --刮刮卡预览格子成功时
|
||||
EVENT_SCRATCH_TICKET_SHOW_RESULT = "EVENT_SCRATCH_TICKET_SHOW_RESULT", --刮刮卡显示结果
|
||||
EVENT_SCRATCH_TICKET_RESET = "EVENT_SCRATCH_TICKET_RESET", --刮刮卡完成一局游戏后重置
|
||||
|
||||
--剧情合集
|
||||
EVENT_MOVIE_ASSEMBLE_WATCH_MOVIE = "EVENT_MOVIE_ASSEMBLE_WATCH_MOVIE", -- 剧情合集系统观看了剧情
|
||||
|
||||
--翻牌小游戏
|
||||
EVENT_INVERT_CARD_GAME_CARD_CHANGED = "EVENT_INVERT_CARD_GAME_CARD_CHANGED", -- 翻转卡牌事件
|
||||
EVENT_INVERT_CARD_GAME_GET_REWARD = "EVENT_INVERT_CARD_GAME_GET_REWARD", -- 获取奖励事件
|
||||
|
||||
-- 宠物教学
|
||||
EVENT_PARTNER_TEACHING_OPEN_STAGE_DETAIL = "EVENT_PARTNER_TEACHING_OPEN_STAGE_DETAIL", -- 宠物教学打开关卡详情
|
||||
EVENT_PARTNER_TEACHING_CLOSE_STAGE_DETAIL = "EVENT_PARTNER_TEACHING_CLOSE_STAGE_DETAIL", -- 宠物教学关闭关卡详情
|
||||
EVENT_PARTNER_TEACHING_STAGE_REFRESH = "EVENT_PARTNER_TEACHING_REFRESH", -- 宠物教学关卡刷新
|
||||
|
||||
--520端午活动
|
||||
EVENT_RPG_MAKER_GAME_ACTIVITY_END = "EVENT_RPG_MAKER_GAME_ACTIVITY_END", --活动结束
|
||||
|
||||
--扫雷活动
|
||||
EVENT_MINESWEEPING_STAGESTART = "EVENT_MINESWEEPING_STAGESTART", --开始关卡
|
||||
EVENT_MINESWEEPING_GRIDOPEN = "EVENT_MINESWEEPING_GRIDOPEN", --开启扫雷格子
|
||||
EVENT_MINESWEEPING_STORYPLAY = "EVENT_MINESWEEPING_STORYPLAY", --播放剧情
|
||||
-- 杀戮无双
|
||||
EVENT_KILLZONE_NEW_CHAPTER_CHANGE = "EVENT_KILLZONE_NEW_CHAPTER_CHANGE", --新章节变更
|
||||
EVENT_KILLZONE_NEW_DIFF_CHANGE = "EVENT_KILLZONE_NEW_DIFF_CHANGE", --新难度变更
|
||||
EVENT_KILLZONE_ACTIVITY_END = "EVENT_KILLZONE_ACTIVITY_END", --活动结束
|
||||
EVENT_KILLZONE_FARM_REWARD_OBTAIN_COUNT_CHANGE = "EVENT_KILLZONE_FARM_REWARD_OBTAIN_COUNT_CHANGE", --复刷奖励领取次数变更
|
||||
EVENT_KILLZONE_DAILYSTARREWARDINDEX_CHANGE = "EVENT_KILLZONE_DAILYSTARREWARDINDEX_CHANGE", --每日星级奖励档位变更
|
||||
EVENT_KILLZONE_STAGE_CHANGE = "EVENT_KILLZONE_STAGE_CHANGE", --通关记录变更
|
||||
EVENT_KILLZONE_STAR_REWARD_OBTAIN_RECORD_CHANGE = "EVENT_KILLZONE_STAR_REWARD_OBTAIN_RECORD_CHANGE", --星级奖励领取记录变更
|
||||
EVENT_KILLZONE_PLUGIN_CHANGE = "EVENT_KILLZONE_PLUGIN_CHANGE", --插件状态变更
|
||||
EVENT_KILLZONE_PLUGIN_SLOT_CHANGE = "EVENT_KILLZONE_PLUGIN_SLOT_CHANGE", --插件槽状态变更
|
||||
EVENT_KILLZONE_PLUGIN_OPERATE_CHANGE = "EVENT_KILLZONE_PLUGIN_OPERATE_CHANGE", --插件待操作Cookie变更
|
||||
|
||||
-- 系列涂装剧情活动
|
||||
EVENT_FASHION_STORY_OPEN_STAGE_DETAIL = "EVENT_FASHION_STORY_OPEN_STAGE_DETAIL", -- 打开章节关卡详情
|
||||
EVENT_FASHION_STORY_CLOSE_STAGE_DETAIL = "EVENT_FASHION_STORY_CLOSE_STAGE_DETAIL", -- 关闭章节关卡详情
|
||||
EVENT_FASHION_STORY_OPEN_TRIAL_DETAIL = "EVENT_FASHION_STORY_OPEN_TRIAL_DETAIL", -- 打开试玩关卡详情
|
||||
EVENT_FASHION_STORY_CHAPTER_REFRESH = "EVENT_FASHION_STORY_CHAPTER_REFRESH", -- 章节关刷新
|
||||
EVENT_FASHION_STORY_TRIAL_REFRESH = "EVENT_FASHION_STORY_TRIAL_REFRESH", -- 试玩关刷新
|
||||
|
||||
-- 超级爬塔
|
||||
EVENT_ST_FUNCTION_UNLOCK = "EVENT_ST_FUNCTION_UNLOCK", --特权解锁时
|
||||
EVENT_ST_MAP_THEME_SELECT = "EVENT_ST_MAP_THEME_SELECT", --主界面选某一个主题
|
||||
EVENT_ST_SHOP_REFRESH = "EVENT_ST_SHOP_REFRESH", --商店刷新
|
||||
EVENT_ST_PLUGIN_REFRESH = "EVENT_ST_PLUGIN_REFRESH", --插件刷新
|
||||
EVENT_ST_FINISH_FIGHT_COMPLETE = "EVENT_ST_FINISH_FIGHT_COMPLETE", --结束战斗处理完时
|
||||
--战斗通行证
|
||||
EVENT_NOTIFY_PASSPORT_BASE_INFO = "EVENT_NOTIFY_PASSPORT_BASE_INFO", --通知基础信息变化
|
||||
EVENT_BUY_PASSPORT_COMPLEATE = "EVENT_BUY_PASSPORT_COMPLEATE", --购买通行证成功
|
||||
EVENT_BUY_EXP_COMPLEATE = "EVENT_BUY_EXP_COMPLEATE", --购买等级成功
|
||||
EVENT_BUY_RECV_REWARD_COMPLEATE = "EVENT_BUY_RECV_REWARD_COMPLEATE", --领取单个奖励成功
|
||||
EVENT_BUY_RECV_ALL_REWARD_COMPLEATE = "EVENT_BUY_RECV_ALL_REWARD_COMPLEATE", --一键领取奖励
|
||||
EVENT_AUTO_GET_TASK_REWARD_LIST = "EVENT_AUTO_GET_TASK_REWARD_LIST", --通知自动领取任务奖励列表
|
||||
--日服定制化内容
|
||||
EVENT_BRIEF_CHANGE_TAB = "EVENT_BRIEF_CHANGE_TAB",
|
||||
EVENT_MEDAL_IN_DETAIL = "EVENT_MEDAL_IN_DETAIL", --进入勋章详情
|
||||
EVNET_HGSDKLOGIN_SUCCESS = "EVNET_HGSDKLOGIN_SUCCESS",
|
||||
EVENT_DORM_VISTOR_SKIP = "EVENT_DORM_VISTOR_SKIP",
|
||||
|
||||
EVENT_PURCAHSE_YKMAINREFRESH = "EVENT_PURCAHSE_YKMAINREFRESH",
|
||||
|
||||
--定制化内容
|
||||
EVENT_HGSDK_GET_BIND = "EVENT_HGSDK_GET_BIND",
|
||||
EVENT_HGSDK_BIND_RESULT = "EVENT_HGSDK_BIND_RESULT",
|
||||
EVENT_HGSDK_SETPASS_RESULT = "EVENT_HGSDK_SETPASS_RESULT",
|
||||
EVENT_LOGIN_ATTENTION = "EVENT_LOGIN_ATTENTION",
|
||||
|
||||
--商店直接使用日元购买
|
||||
EVENT_SHOP_BUYUSERIYUAN = "EVENT_SHOP_BUYUSERIYUAN",
|
||||
--采购直接使用日元购买
|
||||
EVENT_PURCAHSE_BUYUSERIYUAN = "EVENT_PURCAHSE_BUYUSERIYUAN",
|
||||
|
||||
--当用户协议更新完毕的时候
|
||||
EVENT_AGREEMENT_LOAD_FINISH = "EVENT_AGREEMENT_LOAD_FINISH",
|
||||
EVENT_WHEN_CLOSE_LOGIN_NOTICE = "EVENT_WHEN_CLOSE_LOGIN_NOTICE",
|
||||
|
||||
--购买失败的时候触发的消息,用来清空缓存
|
||||
EVENT_PURCHASEBUY_PAYCANCELORFAIL = "EVENT_PURCHASEBUY_PAYCANCELORFAIL",
|
||||
|
||||
--新年运势关闭的时候刷新一次公告界面
|
||||
EVENT_NEWYEARYUNSHI_CLOSE_REFRESH = "EVENT_NEWYEARYUNSHI_CLOSE_REFRESH",
|
||||
-- 海外定制老虎机小游戏
|
||||
EVENT_SLOT_MACHINE_STARTED = "EVENT_SLOT_MACHINE_STARTED",
|
||||
EVENT_SLOT_MACHINE_GET_REWARD = "EVENT_SLOT_MACHINE_GET_REWARD",
|
||||
EVENT_SLOT_MACHINE_FINISH_TASK = "EVENT_SLOT_MACHINE_FINISH_TASK",
|
||||
}
|
164
Resources/Scripts/XCommon/XFightNetwork.lua
Normal file
164
Resources/Scripts/XCommon/XFightNetwork.lua
Normal file
|
@ -0,0 +1,164 @@
|
|||
XFightNetwork = XFightNetwork or {}
|
||||
|
||||
local IsConnected = false
|
||||
|
||||
function XFightNetwork.IsConnected()
|
||||
return IsConnected
|
||||
end
|
||||
|
||||
-- 心跳相关
|
||||
local FightHeartbeatRequest = "FightHeartbeatRequest"
|
||||
local HeartbeatTimeout = CS.XGame.Config:GetInt("FightHeartbeatTimeout")
|
||||
local HeartbeatInterval = CS.XGame.Config:GetInt("FightHeartbeatInterval")
|
||||
local HeartbeatTimer
|
||||
XFightNetwork.DoHeartbeat = function()
|
||||
if not IsConnected then
|
||||
return
|
||||
end
|
||||
|
||||
HeartbeatTimer = XScheduleManager.ScheduleOnce(function()
|
||||
if CS.XNetwork.IsShowNetLog then
|
||||
XLog.Debug("fight tcp heartbeat time out.")
|
||||
end
|
||||
-- 超时断开连接
|
||||
CS.XFightNetwork.Disconnect()
|
||||
end, HeartbeatTimeout)
|
||||
|
||||
if CS.XFightNetwork.IsShowNetLog then
|
||||
XLog.Debug("fight tcp heartbeat request.")
|
||||
end
|
||||
XFightNetwork.Call(FightHeartbeatRequest, {}, function(res)
|
||||
XScheduleManager.UnSchedule(HeartbeatTimer)
|
||||
if CS.XFightNetwork.IsShowNetLog then
|
||||
XLog.Debug("fight tcp heartbeat response.")
|
||||
end
|
||||
if res.Code ~= XCode.Success then
|
||||
-- 心跳服务器返回错误,断开连接
|
||||
CS.XFightNetwork.Disconnect()
|
||||
return
|
||||
end
|
||||
HeartbeatTimer = XScheduleManager.ScheduleOnce(function()
|
||||
XFightNetwork.DoHeartbeat()
|
||||
end, HeartbeatInterval)
|
||||
end)
|
||||
end
|
||||
|
||||
function XFightNetwork.Connect(ip, port, cb)
|
||||
if not ip or not port then
|
||||
XLog.Debug("Lua.XFightNetwork.Connect error, ip is nil or port is nil")
|
||||
return
|
||||
end
|
||||
|
||||
-- 成功回调
|
||||
CS.XFightNetwork.OnConnect = function()
|
||||
XLog.Debug("Lua.XFightNetwork.Connect Success")
|
||||
IsConnected = true
|
||||
if cb then
|
||||
cb(true)
|
||||
end
|
||||
end
|
||||
|
||||
-- 网络错误回调
|
||||
CS.XFightNetwork.OnError = function(socketError)
|
||||
XLog.Error("Lua.XFightNetwork.Connect error, " .. tostring(socketError:ToString()))
|
||||
CS.XFightNetwork.Disconnect()
|
||||
if cb then
|
||||
cb(false)
|
||||
end
|
||||
end
|
||||
|
||||
CS.XFightNetwork.OnDisconnect = function()
|
||||
XLog.Debug("Lua.XFightNetwork.Connect OnDisconnect")
|
||||
IsConnected = false
|
||||
end
|
||||
|
||||
CS.XFightNetwork.OnRemoteDisconnect = function()
|
||||
XLog.Error("Lua.XFightNetwork.Connect OnRemoteDisconnect")
|
||||
IsConnected = false
|
||||
end
|
||||
|
||||
CS.XFightNetwork.OnMessageError = function()
|
||||
XLog.Error("Lua.XFightNetwork.Connect OnMessageError")
|
||||
CS.XFightNetwork.Disconnect()
|
||||
end
|
||||
|
||||
CS.XFightNetwork.Connect(ip, tonumber(port))
|
||||
end
|
||||
|
||||
local ConnectKcpTimer
|
||||
local KcpConnectRequestInterval = 500
|
||||
function XFightNetwork.ConnectKcp(ip, port, remoteConv, cb)
|
||||
XLog.Debug("Lua.XFightNetwork.ConnectKcp" .. " ip:" .. tostring(ip) .. " port:" .. tostring(port) .. " remoteConv:" .. tostring(remoteConv))
|
||||
CS.XFightNetwork.CreateUdpSession()
|
||||
local networkMode = XSaveTool.GetData(XNetwork.NetworkModeKey) or XNetwork.NetworkMode.Auto
|
||||
if networkMode == XNetwork.NetworkMode.Auto then
|
||||
CS.XFightNetwork.UdpConnect(ip, port, CS.XNetwork.NetworkMode.Auto)
|
||||
elseif networkMode == XNetwork.NetworkMode.Ipv4 then
|
||||
CS.XFightNetwork.UdpConnect(ip, port, CS.XNetwork.NetworkMode.Ipv4)
|
||||
elseif networkMode == XNetwork.NetworkMode.Ipv6 then
|
||||
CS.XFightNetwork.UdpConnect(ip, port, CS.XNetwork.NetworkMode.Ipv6)
|
||||
else -- Auto保底
|
||||
CS.XFightNetwork.UdpConnect(ip, port, CS.XNetwork.NetworkMode.Auto)
|
||||
end
|
||||
CS.XFightNetwork.CreateKcpSession(remoteConv)
|
||||
if ConnectKcpTimer then
|
||||
XScheduleManager.UnSchedule(ConnectKcpTimer)
|
||||
ConnectKcpTimer = nil
|
||||
end
|
||||
|
||||
-- kcp握手请求
|
||||
local tryCount = 0
|
||||
local kcpConnected = false
|
||||
local startTime = CS.XDateUtil.GetTime()
|
||||
|
||||
ConnectKcpTimer = XScheduleManager.ScheduleForever(function()
|
||||
-- 尝试次数超过10次且开始确认过去10秒
|
||||
if tryCount >= 10 and CS.XDateUtil.GetTime() - startTime >= 10 and not kcpConnected then
|
||||
CS.XFightNetwork.DisconnectKcp()
|
||||
XScheduleManager.UnSchedule(ConnectKcpTimer)
|
||||
ConnectKcpTimer = nil
|
||||
cb(false)
|
||||
end
|
||||
tryCount = tryCount + 1
|
||||
XLog.Debug("Lua.XFightNetwork.KcpConfirmRequest " .. tostring(tryCount))
|
||||
|
||||
local requestContent = XMessagePack.Encode({})
|
||||
CS.XFightNetwork.CallKcp("KcpConfirmRequest", requestContent, function()
|
||||
XLog.Debug("KcpConfirmResponse")
|
||||
if not kcpConnected then
|
||||
XScheduleManager.UnSchedule(ConnectKcpTimer)
|
||||
ConnectKcpTimer = nil
|
||||
kcpConnected = true
|
||||
cb(true)
|
||||
end
|
||||
end)
|
||||
end, KcpConnectRequestInterval)
|
||||
end
|
||||
|
||||
function XFightNetwork.Send(handler, request)
|
||||
local requestContent, error = XMessagePack.Encode(request)
|
||||
if requestContent == nil then
|
||||
XLog.Error("Lua.XFightNetwork.Send 函数错误, 客户端发送给服务端的数据编码处理失败, 失败原因:" .. error)
|
||||
return
|
||||
end
|
||||
|
||||
CS.XFightNetwork.Send(handler, requestContent);
|
||||
end
|
||||
|
||||
function XFightNetwork.Call(handler, request, reply)
|
||||
local requestContent, error = XMessagePack.Encode(request)
|
||||
if requestContent == nil then
|
||||
XLog.Error("Lua.XFightNetwork.Call 函数错误, 客户端发送给服务端的数据编码处理失败, 失败原因: " .. error)
|
||||
return
|
||||
end
|
||||
|
||||
CS.XFightNetwork.Call(handler, requestContent, function(responseContent)
|
||||
local response, err = XMessagePack.Decode(responseContent)
|
||||
if response == nil then
|
||||
XLog.Error("Lua.XFightNetwork.Call 函数错误, 服务端返回的数据解码失败, 失败原因: " .. err)
|
||||
return
|
||||
end
|
||||
reply(response)
|
||||
end)
|
||||
end
|
||||
|
117
Resources/Scripts/XCommon/XGlobalFunc.lua
Normal file
117
Resources/Scripts/XCommon/XGlobalFunc.lua
Normal file
|
@ -0,0 +1,117 @@
|
|||
local coroutineRunning = coroutine.running
|
||||
local coroutineResume = coroutine.resume
|
||||
local coroutineYiled = coroutine.yield
|
||||
local coroutineWrap = coroutine.wrap
|
||||
local tablePack = table.pack
|
||||
local tableUnpack = table.unpack
|
||||
local select = select
|
||||
|
||||
function Handler(target, func)
|
||||
return function(...)
|
||||
return func(target, ...)
|
||||
end
|
||||
end
|
||||
handler = Handler
|
||||
|
||||
function LuaGC()
|
||||
collectgarbage("collect")
|
||||
end
|
||||
|
||||
--回调转异步任务(需和RunAsyn配合使用)
|
||||
---@param function类型, 最后一位参数为异步回调, 示例:local testFunc = function(..., callback) end
|
||||
---@return 异步任务(不处理原函数返回值,异步需求默认void)
|
||||
---@Examplemple
|
||||
--[[
|
||||
local testFunc = function(str, cb)
|
||||
XScheduleManager.ScheduleOnce(function()
|
||||
XLog.Debug(str)
|
||||
if cb then cb() end
|
||||
end, XScheduleManager.SECOND)
|
||||
end
|
||||
|
||||
--callback hell
|
||||
XLog.Debug("kkkttt test callback begin")
|
||||
testFunc("kkkttt test callback CallBack 1"
|
||||
, function()
|
||||
testFunc("kkkttt test callback CallBack 2"
|
||||
, function()
|
||||
testFunc("kkkttt test callback CallBack 3")
|
||||
end)
|
||||
end)
|
||||
XLog.Debug("kkkttt test callback end")
|
||||
|
||||
--asyn task
|
||||
XLog.Debug("kkkttt test asyn task begin")
|
||||
local asynTest = asynTask(testFunc)
|
||||
RunAsyn(function()
|
||||
asynTest("kkkttt test asyn CallBack 1")
|
||||
XLog.Debug("kkkttt test asyn after 1")
|
||||
asynTest("kkkttt test asyn CallBack 2")
|
||||
asynTest("kkkttt test asyn CallBack 3")
|
||||
end)
|
||||
XLog.Debug("kkkttt test asyn task end")
|
||||
]]
|
||||
function asynTask(func, caller)
|
||||
return function(...)
|
||||
local results = {}
|
||||
|
||||
local running = coroutineRunning()
|
||||
local args = { ... }
|
||||
local length = select("#", ...) + 1
|
||||
args[length] = function()
|
||||
coroutineResume(running, tableUnpack(results))
|
||||
end
|
||||
|
||||
results = caller and tablePack(func(caller, tableUnpack(args))) or tablePack(func(tableUnpack(args)))
|
||||
|
||||
return coroutineYiled()
|
||||
end
|
||||
end
|
||||
|
||||
--异步等待second秒(需和RunAsyn配合使用)
|
||||
function asynWaitSecond(second)
|
||||
asynTask(function(cb)
|
||||
XScheduleManager.ScheduleOnce(cb, second * XScheduleManager.SECOND)
|
||||
end)()
|
||||
end
|
||||
|
||||
--异步执行
|
||||
function RunAsyn(asynFunc)
|
||||
return coroutineWrap(asynFunc)()
|
||||
end
|
||||
|
||||
-- function string.split(input, delimiter)
|
||||
-- input = tostring(input)
|
||||
-- delimiter = tostring(delimiter)
|
||||
-- if (delimiter=='') then return false end
|
||||
-- local pos,arr = 0, {}
|
||||
-- for st,sp in function() return string.find(input, delimiter, pos, true) end do
|
||||
-- table.insert(arr, string.sub(input, pos, st - 1))
|
||||
-- pos = sp + 1
|
||||
-- end
|
||||
-- table.insert(arr, string.sub(input, pos))
|
||||
-- return arr
|
||||
-- end
|
||||
|
||||
function appendArray(dst, src)
|
||||
for i, v in ipairs(src)do
|
||||
table.insert(dst, v)
|
||||
end
|
||||
return dst
|
||||
end
|
||||
|
||||
-- 保留digit位小数
|
||||
function getRoundingValue(value, digit)
|
||||
return math.floor( value * math.pow(10, digit) ) / math.pow(10 , digit)
|
||||
end
|
||||
|
||||
function math.pow(a, b)
|
||||
return a ^ b
|
||||
end
|
||||
|
||||
function table.indexof(array, value, begin)
|
||||
for i = begin or 1, #array do
|
||||
if array[i] == value then return i end
|
||||
end
|
||||
return false
|
||||
end
|
18
Resources/Scripts/XCommon/XGlobalVar.lua
Normal file
18
Resources/Scripts/XCommon/XGlobalVar.lua
Normal file
|
@ -0,0 +1,18 @@
|
|||
local IncId = 0
|
||||
|
||||
XGlobalVar = {
|
||||
ScrollViewScrollDir = {
|
||||
ScrollDown = "ScrollDown", --从上往下滚
|
||||
ScrollRight = "ScrollRight" --从左往右滚
|
||||
},
|
||||
|
||||
UiDesignSize = { --ui设计尺寸
|
||||
Width = 1920,
|
||||
Height = 1080,
|
||||
},
|
||||
|
||||
GetIncId = function()
|
||||
IncId = IncId + 1
|
||||
return IncId
|
||||
end
|
||||
}
|
188
Resources/Scripts/XCommon/XLog.lua
Normal file
188
Resources/Scripts/XCommon/XLog.lua
Normal file
|
@ -0,0 +1,188 @@
|
|||
XLog = XLog or {}
|
||||
|
||||
local MAX_DEPTH = 5
|
||||
|
||||
local Type = type
|
||||
local Tostring = tostring
|
||||
local TableRemove = table.remove
|
||||
local TableInsert = table.insert
|
||||
local TableConcat = table.concat
|
||||
local StringGub = string.gsub
|
||||
local DebugTraceback = debug.traceback
|
||||
local XLogDebug = CS.XLog.Debug
|
||||
local XLogWarning = CS.XLog.Warning
|
||||
local XLogError = CS.XLog.Error
|
||||
|
||||
local Pairs = function(arr)
|
||||
local meta_t = getmetatable(arr)
|
||||
if meta_t and meta_t.__pairs then
|
||||
return meta_t.__pairs(arr)
|
||||
end
|
||||
return pairs(arr)
|
||||
end
|
||||
|
||||
|
||||
local indentCache = { "" }
|
||||
local function GetIndent(depth)
|
||||
if not indentCache[depth] then
|
||||
indentCache[depth] = GetIndent(depth - 1) .. " "
|
||||
end
|
||||
return indentCache[depth]
|
||||
end
|
||||
|
||||
local function Dump(target)
|
||||
local content = {}
|
||||
local stack = {
|
||||
{
|
||||
obj = target,
|
||||
name = nil,
|
||||
depth = 1,
|
||||
symbol = nil,
|
||||
}
|
||||
}
|
||||
|
||||
while #stack > 0 do
|
||||
local top = TableRemove(stack)
|
||||
local obj = top.obj
|
||||
local name = top.name
|
||||
local depth = top.depth
|
||||
local symbol = top.symbol
|
||||
|
||||
if Type(obj) == "table" then
|
||||
if depth > MAX_DEPTH then
|
||||
TableInsert(stack, {
|
||||
obj = "too depth ...",
|
||||
name = name,
|
||||
depth = depth,
|
||||
symbol = symbol,
|
||||
})
|
||||
else
|
||||
TableInsert(stack, {
|
||||
obj = "}",
|
||||
name = nil,
|
||||
depth = depth,
|
||||
symbol = symbol,
|
||||
})
|
||||
|
||||
local temp = {}
|
||||
for k, v in Pairs(obj) do
|
||||
TableInsert(temp, {
|
||||
obj = v,
|
||||
name = k,
|
||||
depth = depth + 1,
|
||||
symbol = ",",
|
||||
})
|
||||
end
|
||||
|
||||
local count = #temp
|
||||
for i = 1, count do
|
||||
TableInsert(stack, temp[count - i + 1])
|
||||
end
|
||||
|
||||
TableInsert(stack, {
|
||||
obj = "{",
|
||||
name = name,
|
||||
depth = depth,
|
||||
symbol = nil,
|
||||
})
|
||||
end
|
||||
else
|
||||
TableInsert(content, GetIndent(depth))
|
||||
|
||||
if name then
|
||||
if Type(name) == "string" then
|
||||
TableInsert(content, "[\"")
|
||||
TableInsert(content, name)
|
||||
TableInsert(content, "\"]")
|
||||
else
|
||||
TableInsert(content, "[")
|
||||
TableInsert(content, Tostring(name))
|
||||
TableInsert(content, "]")
|
||||
end
|
||||
|
||||
TableInsert(content, " = ")
|
||||
end
|
||||
|
||||
if obj and Type(obj) == "string" then
|
||||
if obj ~= "{" and obj ~= "}" then
|
||||
TableInsert(content, "\"")
|
||||
TableInsert(content, obj)
|
||||
TableInsert(content, "\"")
|
||||
else
|
||||
TableInsert(content, obj)
|
||||
end
|
||||
else
|
||||
TableInsert(content, Tostring(obj))
|
||||
end
|
||||
|
||||
if symbol then
|
||||
TableInsert(content, symbol)
|
||||
end
|
||||
|
||||
TableInsert(content, "\n")
|
||||
end
|
||||
end
|
||||
|
||||
return TableConcat(content)
|
||||
end
|
||||
|
||||
local Print = function(...)
|
||||
local args = { ... }
|
||||
local count = #args
|
||||
|
||||
if count <= 0 then
|
||||
return
|
||||
end
|
||||
|
||||
local content = {}
|
||||
for i = 1, count do
|
||||
if Type(args[i]) == "table" then
|
||||
TableInsert(content, Dump(args[i]))
|
||||
else
|
||||
TableInsert(content, Tostring(args[i]))
|
||||
TableInsert(content, "\n")
|
||||
end
|
||||
end
|
||||
|
||||
return TableConcat(content)
|
||||
-- return StringGub(StringGub(TableConcat(content), "{", "/{"), "}", "/}")
|
||||
end
|
||||
|
||||
XLog.Debug = function(...)
|
||||
local content = Print(...)
|
||||
if content then
|
||||
XLogDebug(content .. "\n" .. DebugTraceback())
|
||||
else
|
||||
XLogDebug("nil\n" .. DebugTraceback())
|
||||
end
|
||||
end
|
||||
|
||||
XLog.Warning = function(...)
|
||||
local content = Print(...)
|
||||
if content then
|
||||
XLogWarning(content .. "\n" .. DebugTraceback())
|
||||
else
|
||||
XLogWarning("nil\n" .. DebugTraceback())
|
||||
end
|
||||
end
|
||||
|
||||
XLog.Error = function(...)
|
||||
local content = Print(...)
|
||||
if content then
|
||||
XLogError(content .. "\n" .. DebugTraceback())
|
||||
else
|
||||
XLogError("nil\n" .. DebugTraceback())
|
||||
end
|
||||
end
|
||||
|
||||
-- 表格找不到数据错误统一输出接口
|
||||
XLog.ErrorTableDataNotFound = function(functionName, dataName, tablePath, paramName, paramValue)
|
||||
XLog.Error(string.format("%s出错:找不到%s数据。搜索路径: %s 索引%s = %s", functionName, dataName, tablePath, paramName, paramValue))
|
||||
end
|
||||
|
||||
XLog.Dump = function(value)
|
||||
if type(value) ~= "table" then
|
||||
return tostring(value)
|
||||
end
|
||||
return Dump(value)
|
||||
end
|
34
Resources/Scripts/XCommon/XLuaBehaviour.lua
Normal file
34
Resources/Scripts/XCommon/XLuaBehaviour.lua
Normal file
|
@ -0,0 +1,34 @@
|
|||
XLuaBehaviour = XClass(nil, "XLuaBehaviour")
|
||||
|
||||
function XLuaBehaviour:Ctor(rootUi, ui)
|
||||
self.Transform = ui.transform
|
||||
self.GameObject = ui.gameObject
|
||||
|
||||
local behaviour = self.GameObject:GetComponent(typeof(CS.XLuaBehaviour))
|
||||
if not behaviour then
|
||||
behaviour = self.GameObject:AddComponent(typeof(CS.XLuaBehaviour))
|
||||
end
|
||||
|
||||
if self.Start then
|
||||
behaviour.LuaStart = function() self:Start() end
|
||||
end
|
||||
|
||||
if self.Update then
|
||||
behaviour.LuaUpdate = function() self:Update() end
|
||||
end
|
||||
|
||||
if self.LateUpdate then
|
||||
behaviour.LuaLateUpdate = function() self:LateUpdate() end
|
||||
end
|
||||
|
||||
if self.OnDestroy then
|
||||
behaviour.LuaOnDestroy = function() self:OnDestroy() end
|
||||
end
|
||||
end
|
||||
|
||||
function XLuaBehaviour:Dispose()
|
||||
local xLuaBehaviour = self.Transform:GetComponent(typeof(CS.XLuaBehaviour))
|
||||
if (xLuaBehaviour) then
|
||||
CS.UnityEngine.GameObject.Destroy(xLuaBehaviour)
|
||||
end
|
||||
end
|
59
Resources/Scripts/XCommon/XMath.lua
Normal file
59
Resources/Scripts/XCommon/XMath.lua
Normal file
|
@ -0,0 +1,59 @@
|
|||
local math = math
|
||||
|
||||
local mathFloor = math.floor
|
||||
local mathRandom = math.random
|
||||
|
||||
XMath = XMath or {}
|
||||
|
||||
function XMath.RandByWeights(weights)
|
||||
local weightSum = 0
|
||||
for i = 1, #weights do
|
||||
weightSum = weightSum + weights[i]
|
||||
end
|
||||
|
||||
local rand = mathRandom(weightSum)
|
||||
local curWeight = 0
|
||||
for i = 1, #weights do
|
||||
local weight = weights[i]
|
||||
curWeight = curWeight + weight
|
||||
if rand < curWeight then
|
||||
return i
|
||||
end
|
||||
end
|
||||
|
||||
return #weights
|
||||
end
|
||||
|
||||
function XMath.Clamp(value, min, max)
|
||||
if value < min then
|
||||
return min
|
||||
end
|
||||
if value > max then
|
||||
return max
|
||||
end
|
||||
return value
|
||||
end
|
||||
|
||||
|
||||
--==============================--
|
||||
--desc: 转换成整数,浮点数四舍五入
|
||||
--==============================--
|
||||
XMath.ToInt = function(val)
|
||||
if not val then return end
|
||||
return mathFloor(val + 0.5)
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 转换成整数,浮点数向下取整数
|
||||
--==============================--
|
||||
XMath.ToMinInt = function(val)
|
||||
if not val then return end
|
||||
return mathFloor(val)
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 最大整数,与C#一致
|
||||
--==============================--
|
||||
XMath.IntMax = function()
|
||||
return 2147483647
|
||||
end
|
274
Resources/Scripts/XCommon/XNetwork.lua
Normal file
274
Resources/Scripts/XCommon/XNetwork.lua
Normal file
|
@ -0,0 +1,274 @@
|
|||
XNetwork = XNetwork or {}
|
||||
|
||||
local Ip
|
||||
local Port
|
||||
local LastIp
|
||||
local LastPort
|
||||
local XRpc = XRpc
|
||||
local IsDebug = XMain.IsEditorDebug
|
||||
local ShieldedProtocol = {}
|
||||
local NeedShieldProtocol = false
|
||||
|
||||
XNetwork.NetworkMode = {
|
||||
Auto = 1,
|
||||
Ipv4 = 2,
|
||||
Ipv6 = 3,
|
||||
}
|
||||
XNetwork.NetworkModeKey = "NETWORK_MODE_KEY"
|
||||
|
||||
local function GetIpAndPort()
|
||||
return Ip, Port
|
||||
end
|
||||
|
||||
function XNetwork.SetGateAddress(ip, port)
|
||||
Ip = ip
|
||||
Port = port
|
||||
end
|
||||
|
||||
function XNetwork.CheckIsChangedGate()
|
||||
return LastIp ~= Ip or LastPort ~= Port
|
||||
end
|
||||
|
||||
local LogTableFunc = IsDebug and XLog.Debug or XLog.Error
|
||||
|
||||
local function TipTableDiff(sha1Table)
|
||||
if not CS.XTableManager.NeedSha1 then -- 开发环境下不解析Sha1
|
||||
return
|
||||
end
|
||||
|
||||
XTool.LoopMap(CS.XTableManager.Sha1Table, function(k, v)
|
||||
local sha1 = sha1Table[k]
|
||||
if not sha1 then
|
||||
LogTableFunc("多余表格: " .. k)
|
||||
return
|
||||
end
|
||||
|
||||
if v ~= sha1 then
|
||||
LogTableFunc("差异表格: " .. k .. ", 客户端sha1: " .. v .. " , 服务端sha1: " .. sha1)
|
||||
end
|
||||
|
||||
sha1Table[k] = nil
|
||||
end)
|
||||
|
||||
for k, _ in pairs(sha1Table) do
|
||||
LogTableFunc("缺少表格: " .. k)
|
||||
end
|
||||
end
|
||||
|
||||
XRpc.NotifyCheckTableSha1 = function(data)
|
||||
TipTableDiff(data.Sha1Table)
|
||||
end
|
||||
|
||||
function XNetwork.ConnectGateServer(args)
|
||||
if not args then
|
||||
return
|
||||
end
|
||||
|
||||
if IsDebug then
|
||||
XRpc.CheckLuaNetLogEnable()
|
||||
end
|
||||
|
||||
CS.XNetwork.OnConnect = function()
|
||||
if args.IsReconnect then
|
||||
local request = { PlayerId = XPlayer.Id, Token = XUserManager.ReconnectedToken, LastMsgSeqNo = CS.XNetwork.ServerMsgSeqNo }
|
||||
if CS.XNetwork.IsShowNetLog then
|
||||
XLog.Debug("PlayerId=" .. request.PlayerId .. ", Token=" .. request.Token .. ", LastMsgSeqNo=" .. request.LastMsgSeqNo)
|
||||
end
|
||||
|
||||
local request_func
|
||||
request_func = function()
|
||||
XNetwork.Call("ReconnectRequest", request, function(res)
|
||||
if res.Code == XCode.ReconnectAgain then
|
||||
if CS.XNetwork.IsShowNetLog then
|
||||
XLog.Debug("服务器返回再次重连。" .. tostring(res.Code))
|
||||
end
|
||||
|
||||
XScheduleManager.ScheduleOnce(function()
|
||||
request_func()
|
||||
end, 1000)
|
||||
|
||||
elseif res.Code ~= XCode.Success then
|
||||
if CS.XNetwork.IsShowNetLog then
|
||||
XLog.Debug("服务器返回断线重连失败。" .. tostring(res.Code))
|
||||
end
|
||||
XLoginManager.DoDisconnect()
|
||||
else
|
||||
XNetwork.Send("ReconnectAck")
|
||||
if CS.XNetwork.IsShowNetLog then
|
||||
XLog.Debug("服务器返回断线重连成功。")
|
||||
end
|
||||
XUserManager.ReconnectedToken = res.ReconnectToken
|
||||
if args.ConnectCb then
|
||||
args.ConnectCb()
|
||||
end
|
||||
|
||||
if res.OfflineMessages then
|
||||
CS.XNetwork.ProcessReconnectMessageList(res.OfflineMessages)
|
||||
end
|
||||
CS.XNetwork.ReCall(res.RequestNo)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
request_func()
|
||||
else
|
||||
XNetwork.Call("HandshakeRequest", {
|
||||
ApplicationVersion = CS.XRemoteConfig.ApplicationVersion,
|
||||
DocumentVersion = CS.XRemoteConfig.DocumentVersion,
|
||||
Sha1 = CS.XTableManager.Sha1
|
||||
}, function(response)
|
||||
if args.RemoveHandshakeTimerCb then
|
||||
args.RemoveHandshakeTimerCb()
|
||||
end
|
||||
|
||||
if response.Code ~= XCode.Success then
|
||||
local msgTab = {}
|
||||
msgTab.error_code = response.Code
|
||||
CS.XRecord.Record(msgTab, "24019", "HandshakeRequest")
|
||||
if response.Code == XCode.GateServerNotOpen then
|
||||
local localTimeStr = XTime.TimestampToLocalDateTimeString(response.UtcOpenTime, "yyyy-MM-dd HH:mm(G'M'T z)")
|
||||
local context = CS.XTextManager.GetCodeText(response.Code) .. localTimeStr
|
||||
XUiManager.SystemDialogTip("", context, XUiManager.DialogType.OnlySure)
|
||||
elseif response.Code == XCode.LoginApplicationVersionError then
|
||||
-- 处于调试模式时进错服显示取消按钮,否则不显示
|
||||
local cancelCb = XMain.IsDebug and function() end or nil
|
||||
CS.XTool.WaitCoroutine(CS.XApplication.CoDialog(CS.XApplication.GetText("Tip"),
|
||||
CS.XStringEx.Format(CS.XApplication.GetText("UpdateApplication"),
|
||||
CS.XInfo.Version), cancelCb, function() CS.XTool.WaitCoroutine(CS.XApplication.GoToUpdateURL(GetAppUpgradeUrl()), nil) end))
|
||||
else
|
||||
XUiManager.DialogTip("", CS.XTextManager.GetCodeText(response.Code), XUiManager.DialogType.OnlySure)
|
||||
end
|
||||
|
||||
if response.Code == XCode.LoginTableError then
|
||||
XLog.Error("配置表客户端和服务端不一致")
|
||||
TipTableDiff(response.Sha1Table)
|
||||
end
|
||||
|
||||
CS.XNetwork.Disconnect()
|
||||
return
|
||||
end
|
||||
|
||||
CS.XRecord.Record("24020", "HandshakeRequestSuccess")
|
||||
if args.ConnectCb then
|
||||
args.ConnectCb()
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
CS.XNetwork.OnDisconnect = function()
|
||||
if args.DisconnectCb then
|
||||
args.DisconnectCb()
|
||||
end
|
||||
end
|
||||
CS.XNetwork.OnRemoteDisconnect = function()
|
||||
if args.RemoteDisconnectCb then
|
||||
args.RemoteDisconnectCb()
|
||||
end
|
||||
end
|
||||
CS.XNetwork.OnError = function(error)
|
||||
if args.ErrorCb then
|
||||
args.ErrorCb(error)
|
||||
end
|
||||
end
|
||||
CS.XNetwork.OnMessageError = function()
|
||||
if args.MsgErrorCb then
|
||||
args.MsgErrorCb()
|
||||
end
|
||||
end
|
||||
CS.XNetwork.OnReconnectRequestFrequently = function()
|
||||
if args.ReconnectRequestFrequentlyCb then
|
||||
args.ReconnectRequestFrequentlyCb()
|
||||
end
|
||||
end
|
||||
|
||||
local ip, port
|
||||
if args.IsReconnect then
|
||||
ip, port = LastIp, LastPort
|
||||
else
|
||||
ip, port = GetIpAndPort()
|
||||
end
|
||||
|
||||
XNetwork.ConnectServer(ip, port, args.IsReconnect)
|
||||
end
|
||||
|
||||
function XNetwork.ConnectServer(ip, port, bReconnect)
|
||||
if not ip or not port then
|
||||
return
|
||||
end
|
||||
|
||||
LastIp, LastPort = ip, port
|
||||
local networkMode = XSaveTool.GetData(XNetwork.NetworkModeKey) or XNetwork.NetworkMode.Auto
|
||||
if networkMode == XNetwork.NetworkMode.Auto then
|
||||
CS.XNetwork.Connect(ip, tonumber(port), bReconnect, CS.XNetwork.NetworkMode.Auto)
|
||||
elseif networkMode == XNetwork.NetworkMode.Ipv4 then
|
||||
CS.XNetwork.Connect(ip, tonumber(port), bReconnect, CS.XNetwork.NetworkMode.Ipv4)
|
||||
elseif networkMode == XNetwork.NetworkMode.Ipv6 then
|
||||
CS.XNetwork.Connect(ip, tonumber(port), bReconnect, CS.XNetwork.NetworkMode.Ipv6)
|
||||
else -- Auto保底
|
||||
CS.XNetwork.Connect(ip, tonumber(port), bReconnect, CS.XNetwork.NetworkMode.Auto)
|
||||
end
|
||||
end
|
||||
|
||||
function XNetwork.Send(handler, request)
|
||||
-- 检查是否是屏蔽协议
|
||||
if NeedShieldProtocol and ShieldedProtocol[handler] then
|
||||
XUiManager.TipMsg(CS.XGame.ClientConfig:GetString("ShieldedProtocol"))
|
||||
return
|
||||
end
|
||||
local requestContent, error = XMessagePack.Encode(request)
|
||||
if IsDebug then
|
||||
XRpc.DebugPrint(XRpc.DEBUG_TYPE.Send, handler, requestContent)
|
||||
end
|
||||
|
||||
if requestContent == nil then
|
||||
XLog.Error("XNetwork.Send 函数错误, 客户端发送给服务端的数据编码处理失败, 失败原因:" .. error)
|
||||
return
|
||||
end
|
||||
|
||||
CS.XNetwork.Send(handler, requestContent);
|
||||
end
|
||||
|
||||
function XNetwork.Call(handler, request, reply)
|
||||
-- 检查是否是屏蔽协议
|
||||
if NeedShieldProtocol and ShieldedProtocol[handler] then
|
||||
XUiManager.TipMsg(CS.XGame.ClientConfig:GetString("ShieldedProtocol"))
|
||||
return
|
||||
end
|
||||
if IsDebug then
|
||||
XRpc.DebugPrint(XRpc.DEBUG_TYPE.Send_Call, handler, request)
|
||||
end
|
||||
|
||||
local requestContent, error = XMessagePack.Encode(request)
|
||||
if requestContent == nil then
|
||||
XLog.Error("XNetwork.Call 函数错误, 客户端发送给服务端的数据编码处理失败, 失败原因: " .. error)
|
||||
return
|
||||
end
|
||||
|
||||
CS.XNetwork.Call(handler, requestContent, function(responseContent)
|
||||
local response, err = XMessagePack.Decode(responseContent)
|
||||
if response == nil then
|
||||
XLog.Error("XNetwork.Call 函数错误, 服务端返回的数据解码失败, 失败原因: " .. err)
|
||||
return
|
||||
end
|
||||
|
||||
if IsDebug then
|
||||
XRpc.DebugPrint(XRpc.DEBUG_TYPE.Recv_Call, handler, response)
|
||||
end
|
||||
|
||||
reply(response)
|
||||
end)
|
||||
end
|
||||
|
||||
--================
|
||||
--设置协议屏蔽列表
|
||||
--@param protocolList:屏蔽协议名列表
|
||||
--================
|
||||
function XNetwork.SetShieldedProtocolList(protocolList)
|
||||
if not protocolList then return end
|
||||
ShieldedProtocol = {}
|
||||
NeedShieldProtocol = false
|
||||
for _, protocolName in pairs(protocolList) do
|
||||
NeedShieldProtocol = true
|
||||
ShieldedProtocol[protocolName] = true
|
||||
end
|
||||
end
|
92
Resources/Scripts/XCommon/XNpcAttribType.lua
Normal file
92
Resources/Scripts/XCommon/XNpcAttribType.lua
Normal file
|
@ -0,0 +1,92 @@
|
|||
-- auto export form enum
|
||||
-- Automatic generation of code, forbid to edit or delete
|
||||
XNpcAttribType = {
|
||||
Life = 1, -- 生命
|
||||
Energy = 2, -- 能量
|
||||
RunSpeed = 3, -- 跑速度
|
||||
WalkSpeed = 4, -- 走速度
|
||||
TurnRoundSpeed = 5, -- 转身角速度
|
||||
BallInterval = 6, -- 出球间隔帧
|
||||
DamageNormalImmunity = 7, -- 普通伤害免疫
|
||||
DamageMagicImmunity = 8, -- 元素伤害免疫
|
||||
AntiDamageNormalImmunity = 9, -- 反普通伤害免疫
|
||||
AntiDamageMagicImmunity = 10, -- 反元素伤害免疫
|
||||
AttackNormal = 11, -- 普通攻击
|
||||
AttackMagicBegin = 11, -- 元素攻击起始
|
||||
AttackMagic1 = 12, -- 元素1攻击
|
||||
AttackMagic2 = 13, -- 元素2攻击
|
||||
AttackMagic3 = 14, -- 元素3攻击
|
||||
AttackMagic4 = 15, -- 元素4攻击
|
||||
AttackMagicEnd = 16, -- 元素攻击结束
|
||||
AntiAttackNormal = 17, -- 反普通攻击
|
||||
AntiAttackMagicBegin = 17, -- 反元素攻击起始
|
||||
AntiAttackMagic1 = 18, -- 反元素1攻击
|
||||
AntiAttackMagic2 = 19, -- 反元素2攻击
|
||||
AntiAttackMagic3 = 20, -- 反元素3攻击
|
||||
AntiAttackMagic4 = 21, -- 反元素4攻击
|
||||
AntiAttackMagicEnd = 22, -- 反元素攻击结束
|
||||
DefenseNormal = 23, -- 普通防御
|
||||
AntiDefenseNormal = 24, -- 反普通防御
|
||||
DamageChangeP = 25, -- 总伤害加深率
|
||||
DamageNormalChangeP = 26, -- 普通伤害加深率
|
||||
DamageMagicChangePBegin = 26, -- 元素伤害加深率开始
|
||||
DamageMagic1ChangeP = 27, -- 元素1伤害加深率
|
||||
DamageMagic2ChangeP = 28, -- 元素2伤害加深率
|
||||
DamageMagic3ChangeP = 29, -- 元素3伤害加深率
|
||||
DamageMagic4ChangeP = 30, -- 元素4伤害加深率
|
||||
DamageMagicChangePEnd = 31, -- 元素伤害加深率结束
|
||||
AntiDamageChangeP = 32, -- 反总伤害加深率
|
||||
AntiDamageNormalChangeP = 33, -- 反普通伤害加深率
|
||||
AntiDamageMagicChangePBegin = 33, -- 反元素伤害加深率开始
|
||||
AntiDamageMagic1ChangeP = 34, -- 反元素1伤害加深率
|
||||
AntiDamageMagic2ChangeP = 35, -- 反元素2伤害加深率
|
||||
AntiDamageMagic3ChangeP = 36, -- 反元素3伤害加深率
|
||||
AntiDamageMagic4ChangeP = 37, -- 反元素4伤害加深率
|
||||
AntiDamageMagicChangePEnd = 38, -- 反元素伤害加深率结束
|
||||
DamagePBegin = 39, -- 类型伤害率开始
|
||||
Damage1P = 40, -- 类型1伤害率
|
||||
Damage2P = 41, -- 类型2伤害率
|
||||
Damage3P = 42, -- 类型3伤害率
|
||||
DamagePEnd = 43, -- 类型伤害率结束
|
||||
Crit = 44, -- 暴击
|
||||
CritP = 45, -- 暴击率
|
||||
CritDamageP = 46, -- 暴击伤害率
|
||||
AntiCritP = 47, -- 反暴击率
|
||||
AntiCritDamageP = 48, -- 反暴击伤害率
|
||||
Lifesteal = 49, -- 吸血
|
||||
LifestealP = 50, -- 吸血率
|
||||
CureChangeP = 51, -- 治疗加深率
|
||||
AntiCureChangeP = 52, -- 反治疗加深率
|
||||
Endure = 53, -- 霸体值
|
||||
ThreatRateP = 54, -- 仇恨生成速率
|
||||
DodgeEnergy = 55, -- 闪避能量值
|
||||
DodgeEnergyAutoRecovery = 56, -- 闪避能量自动回复
|
||||
CustomEnergy = 57, -- 自定义能量值
|
||||
AccuResistance1 = 58, -- 积蓄抗性1
|
||||
AccuResistance2 = 59, -- 积蓄抗性2
|
||||
AccuResistance3 = 60, -- 积蓄抗性3
|
||||
AccuResistance4 = 61, -- 积蓄抗性4
|
||||
AccuResistance5 = 62, -- 积蓄抗性5
|
||||
AccuResistance6 = 63, -- 积蓄抗性6
|
||||
AccuResistance7 = 64, -- 积蓄抗性7
|
||||
AccuResistance8 = 65, -- 积蓄抗性8
|
||||
AccuResistance9 = 66, -- 积蓄抗性9
|
||||
AccuResistance10 = 67, -- 积蓄抗性10
|
||||
SquatSpeed = 68, -- 蹲走速度
|
||||
NormalWeaknessP = 69, -- 物理弱点
|
||||
MagicWeaknessPBegin = 69, -- 元素弱点开始
|
||||
Magic1WeaknessP = 70, -- 元素弱点1
|
||||
Magic2WeaknessP = 71, -- 元素弱点2
|
||||
Magic3WeaknessP = 72, -- 元素弱点3
|
||||
Magic4WeaknessP = 73, -- 元素弱点4
|
||||
SprintSpeed = 74, -- 疾跑速度
|
||||
CustomEnergyGroup1 = 75, -- 自定义能量组1
|
||||
CustomEnergyGroup2 = 76, -- 自定义能量组2
|
||||
CustomEnergyGroup3 = 77, -- 自定义能量组3
|
||||
CustomEnergyGroup4 = 78, -- 自定义能量组4
|
||||
Hack = 79, -- 骇入值
|
||||
HackChangeP = 80, -- 骇入加深率
|
||||
AntiHackChangeP = 81, -- 骇入抵抗率
|
||||
HackAutoRecovery = 82, -- 骇入值自动回复
|
||||
End = 83, --
|
||||
}
|
82
Resources/Scripts/XCommon/XPerformance.lua
Normal file
82
Resources/Scripts/XCommon/XPerformance.lua
Normal file
|
@ -0,0 +1,82 @@
|
|||
XPerformance = XPerformance or {}
|
||||
|
||||
local CsTime = CS.UnityEngine.Time
|
||||
local IO = CS.System.IO
|
||||
local collectgarbage = collectgarbage
|
||||
local AutoSaveTime = 10
|
||||
local LastSaveTime = 0
|
||||
local TraceLevel = 5
|
||||
|
||||
XPerformance.SaveDataPath = XPerformance.SaveDataPath or string.format("Log/MemData_%s.tab", CS.System.DateTime.Now:ToString("MMddhhmm"))
|
||||
XPerformance.SaveTimerId = XPerformance.SaveTimerId or 0
|
||||
XPerformance.LuaMemData = XPerformance.LuaMemData or {}
|
||||
|
||||
-- 定期保存数据
|
||||
function XPerformance.StartLuaMenCollect()
|
||||
if CS.UnityEngine.Application.platform ~= CS.UnityEngine.RuntimePlatform.WindowsEditor then
|
||||
return
|
||||
end
|
||||
if XPerformance.SaveTimerId then
|
||||
XScheduleManager.UnSchedule(XPerformance.SaveTimerId)
|
||||
XPerformance.SaveTimerId = 0
|
||||
end
|
||||
XPerformance.SaveTimerId = XScheduleManager.ScheduleForever(function()
|
||||
if not next(XPerformance.LuaMemData) then
|
||||
return
|
||||
end
|
||||
local nowTime = CsTime.realtimeSinceStartup
|
||||
if nowTime - LastSaveTime > AutoSaveTime then
|
||||
LastSaveTime = nowTime
|
||||
XPerformance.SaveMemData()
|
||||
end
|
||||
end, AutoSaveTime * 1000)
|
||||
end
|
||||
|
||||
-- 保存数据
|
||||
function XPerformance.SaveMemData()
|
||||
local sw
|
||||
if not IO.File.Exists(XPerformance.SaveDataPath) then
|
||||
sw = IO.File.CreateText(XPerformance.SaveDataPath)
|
||||
sw:Write("traceName\tkey\tcostMem\tcurrentMem\n")
|
||||
else
|
||||
sw = IO.File.AppendText(XPerformance.SaveDataPath)
|
||||
sw:Write("\n")
|
||||
end
|
||||
|
||||
local tab = {}
|
||||
for key, str in pairs(XPerformance.LuaMemData) do
|
||||
table.insert(tab, str)
|
||||
end
|
||||
XPerformance.LuaMemData = {}
|
||||
local content = table.concat(tab, '\n')
|
||||
sw:Write(content)
|
||||
sw:Flush()
|
||||
sw:Close()
|
||||
|
||||
XLog.Debug("... save data:" .. content)
|
||||
end
|
||||
|
||||
-- 记录一段代码消耗的lua内存
|
||||
function XPerformance.RecordLuaMemData(name, func, isCollect)
|
||||
if isCollect == nil then
|
||||
isCollect = true
|
||||
end
|
||||
if isCollect then
|
||||
collectgarbage("collect")
|
||||
end
|
||||
local beforeMem = collectgarbage("count")
|
||||
func()
|
||||
if isCollect then
|
||||
collectgarbage("collect")
|
||||
end
|
||||
local currentMem = collectgarbage("count")
|
||||
|
||||
local costMem = currentMem - beforeMem
|
||||
costMem = math.floor(costMem / 1024 * 10000) / 10000
|
||||
currentMem = math.floor(beforeMem / 1024 * 10000) / 10000
|
||||
|
||||
-- 记录消耗
|
||||
local traceName = XTool.GetStackTraceName(TraceLevel)
|
||||
local str = string.format("%s\t%s\t%s\t%s", traceName, name, costMem, currentMem)
|
||||
table.insert(XPerformance.LuaMemData, str)
|
||||
end
|
60
Resources/Scripts/XCommon/XPool.lua
Normal file
60
Resources/Scripts/XCommon/XPool.lua
Normal file
|
@ -0,0 +1,60 @@
|
|||
XPool = XClass(nil, "XPool")
|
||||
|
||||
function XPool:Ctor(createFunc, onRelease)
|
||||
if not createFunc then
|
||||
XLog.Error("XPool:Ctor Error:createFunc is Empty.")
|
||||
return
|
||||
end
|
||||
|
||||
self.__Container = XStack.New()
|
||||
self.__CreateFunc = createFunc
|
||||
self.__OnRelease = onRelease
|
||||
self.__TotalCount = 0
|
||||
end
|
||||
|
||||
function XPool:Clear()
|
||||
self.__TotalCount = 0
|
||||
self.__Container:Clear()
|
||||
end
|
||||
|
||||
function XPool:GetItemFromPool()
|
||||
local item = self.__Container:Pop()
|
||||
if not item then
|
||||
item = self.__CreateFunc()
|
||||
if not item then
|
||||
XLog.Error("XPool:GetItemFromPool Error:createFunc return nil.")
|
||||
return
|
||||
end
|
||||
self.__TotalCount = self.__TotalCount + 1
|
||||
end
|
||||
return item
|
||||
end
|
||||
|
||||
function XPool:ReturnItemToPool(item)
|
||||
if not item then return end
|
||||
|
||||
if self:UsingCount() < 1 then
|
||||
return
|
||||
end
|
||||
|
||||
if self.__OnRelease then
|
||||
self.__OnRelease(item)
|
||||
end
|
||||
|
||||
self.__Container:Push(item)
|
||||
end
|
||||
|
||||
--池中剩余对象数量
|
||||
function XPool:LeftCount()
|
||||
return self.__Container:Count()
|
||||
end
|
||||
|
||||
--使用中对象数量
|
||||
function XPool:UsingCount()
|
||||
return self.__TotalCount - self:LeftCount()
|
||||
end
|
||||
|
||||
--已创建对象数量
|
||||
function XPool:TotalCount()
|
||||
return self.__TotalCount
|
||||
end
|
53
Resources/Scripts/XCommon/XPrefs.lua
Normal file
53
Resources/Scripts/XCommon/XPrefs.lua
Normal file
|
@ -0,0 +1,53 @@
|
|||
XPrefs = XPrefs or {}
|
||||
|
||||
-- 登陆模块
|
||||
XPrefs.UserId = "USER_ID"
|
||||
XPrefs.UserName = "USER_NAME"
|
||||
XPrefs.Channel = "CHANNEL"
|
||||
XPrefs.Token = "TOKEN"
|
||||
XPrefs.PasswordStatus = "PASSWORD_STATUS"
|
||||
|
||||
XPrefs.ServerId = "SERVER_ID"
|
||||
XPrefs.User_ServerId = "USER_SERVER_ID"
|
||||
|
||||
XPrefs.CharacterStoryRecord = "CHARACTER_STORY_RECORD"
|
||||
|
||||
XPrefs.AssistSwitch = "ASSIST_SWITCH"
|
||||
XPrefs.GuideTrigger = "GUIDE_DISABLE"
|
||||
XPrefs.CommunicationTrigger = "COMMUNICATION_DISABLE"
|
||||
XPrefs.FunctionEventTrigger = "FUNCTION_EVENT_DISABLE"
|
||||
XPrefs.LoginAnimTrigger = "LOGIN_ANIM_DISABLE"
|
||||
XPrefs.AccountHistory = "ACCOUNT_HISTORY"
|
||||
XPrefs.LuaNetLog = "LUA_NET_LOG"
|
||||
|
||||
XPrefs.TowerTip = "TOWER_TIP"
|
||||
|
||||
XPrefs.DormNewHint = "DORM_NEW_HINT_"
|
||||
XPrefs.PayOrder = "PAY_ORDER_"
|
||||
|
||||
XPrefs.BaseEquip = "BASE_EQUIP"
|
||||
|
||||
XPrefs.AutoWindowEach = "AUTO_WINDOW_EACH"
|
||||
|
||||
XPrefs.AutoWindowPeriod = "AUTO_WINDOW_PERIOD"
|
||||
|
||||
XPrefs.YKLocalCache = "YK_LOCAL_CACHAE"
|
||||
XPrefs.YKContinueBuy = "YK_CONTINUE_BUY"
|
||||
|
||||
XPrefs.ArenaTeamResult = "Arena_Team_Result"
|
||||
|
||||
XPrefs.ArenaOnlineInvit = "AreanOnline_Invit"
|
||||
|
||||
XPrefs.ArenaOnlineFirstOpen = "AreanOnline_First_Open"
|
||||
|
||||
-- 战斗设置
|
||||
XPrefs.DynamicJoystick = "DYNAMIC_JOYSTICK"
|
||||
XPrefs.FocusType = "FOCUS_TYPE"
|
||||
XPrefs.FocusButton = "FOCUS_BUTTON"
|
||||
XPrefs.InviteButton = "INVITE_BUTTON"
|
||||
|
||||
-- 武器显示设置
|
||||
XPrefs.WeaponTransType = "WEAPON_TRANS_TYPE"
|
||||
|
||||
-- 累积充值显示设置
|
||||
XPrefs.RechargeType = "RECHARGE_TYPE"
|
46
Resources/Scripts/XCommon/XQueue.lua
Normal file
46
Resources/Scripts/XCommon/XQueue.lua
Normal file
|
@ -0,0 +1,46 @@
|
|||
XQueue = XClass(nil, "XQueue")
|
||||
|
||||
function XQueue:Ctor()
|
||||
self:Clear()
|
||||
end
|
||||
|
||||
function XQueue:Clear()
|
||||
self.__Container = {}
|
||||
self.__StartIndex = 1
|
||||
self.__EndIndex = 0
|
||||
end
|
||||
|
||||
function XQueue:IsEmpty()
|
||||
return self.__StartIndex > self.__EndIndex
|
||||
end
|
||||
|
||||
function XQueue:Count()
|
||||
return self.__EndIndex - self.__StartIndex + 1
|
||||
end
|
||||
|
||||
function XQueue:Enqueue(element)
|
||||
if not element then return end
|
||||
|
||||
local endIndex = self.__EndIndex + 1
|
||||
self.__EndIndex = endIndex
|
||||
self.__Container[endIndex] = element
|
||||
end
|
||||
|
||||
function XQueue:Dequeue()
|
||||
if self:IsEmpty() then
|
||||
self:Clear()
|
||||
return
|
||||
end
|
||||
|
||||
local startIndex = self.__StartIndex
|
||||
local element = self.__Container[startIndex]
|
||||
|
||||
self.__StartIndex = startIndex + 1
|
||||
self.__Container[startIndex] = nil
|
||||
|
||||
return element
|
||||
end
|
||||
|
||||
function XQueue:Peek()
|
||||
return self.__Container[self.__StartIndex]
|
||||
end
|
99
Resources/Scripts/XCommon/XRpc.lua
Normal file
99
Resources/Scripts/XCommon/XRpc.lua
Normal file
|
@ -0,0 +1,99 @@
|
|||
XRpc = XRpc or {}
|
||||
|
||||
------- 方便调试协议的打印 ------
|
||||
local IsPrintLuaRpc = false
|
||||
if XMain.IsEditorDebug then
|
||||
CS.XNetwork.IsShowNetLog = false
|
||||
end
|
||||
XRpc.IgnoreRpcNames = { ["HeartbeatRequest"] = true, ["HeartbeatResponse"] = true, ["KcpHeartbeatRequest"] = true, ["KcpHeartbeatResponse"] = true }
|
||||
XRpc.DEBUG_TYPE = {
|
||||
Send = "Send",
|
||||
Send_Call = "Send_Call",
|
||||
Recv = "Recv",
|
||||
Recv_Call = "Recv_Call",
|
||||
}
|
||||
XRpc.DEBUG_TYPE_COLOR = {
|
||||
Send = "#5bf54f",
|
||||
Send_Call = "#5bf54f",
|
||||
Recv = "#42a8fa",
|
||||
Recv_Call = "#42a8fa",
|
||||
}
|
||||
-- 浅色主题用的字体颜色
|
||||
-- XRpc.DEBUG_TYPE_COLOR = {
|
||||
-- Send = "green",
|
||||
-- Send_Call = "green",
|
||||
-- Recv = "blue",
|
||||
-- Recv_Call = "blue",
|
||||
-- }
|
||||
XRpc.DebugKeyWords = {"GuildBoss"} -- 【关键协议】
|
||||
|
||||
function XRpc.CheckLuaNetLogEnable()
|
||||
IsPrintLuaRpc = XMain.IsEditorDebug and XSaveTool.GetData(XPrefs.LuaNetLog)
|
||||
return IsPrintLuaRpc
|
||||
end
|
||||
|
||||
function XRpc.SetLuaNetLogEnable(value)
|
||||
IsPrintLuaRpc = value
|
||||
XSaveTool.SaveData(XPrefs.LuaNetLog, IsPrintLuaRpc)
|
||||
end
|
||||
|
||||
function XRpc.DebugPrint(debugType, rpcName, request)
|
||||
if not IsPrintLuaRpc or XRpc.IgnoreRpcNames[rpcName] then
|
||||
return
|
||||
end
|
||||
local color = XRpc.DEBUG_TYPE_COLOR[debugType]
|
||||
if XRpc.DebugKeyWords then
|
||||
for i, keyWord in ipairs(XRpc.DebugKeyWords) do
|
||||
if (string.find(rpcName, keyWord)) then
|
||||
rpcName = "<color=red>" .. rpcName .. "</color>" -- 【关键协议】显示为红色 可本地自定义
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
XLog.Debug("<color=" .. color .. "> " .. debugType .. ": " .. rpcName .. ", content: </color>" .. XLog.Dump(request))
|
||||
end
|
||||
-------------------------------
|
||||
|
||||
local handlers = {}
|
||||
local IsHotReloadOpen = XMain.IsEditorDebug
|
||||
|
||||
function XRpc.Do(name, content)
|
||||
local handler = handlers[name]
|
||||
if handler == nil then
|
||||
XLog.Error("XRpc.Do 函数错误, 没有定义相应的接收服务端数据的函数, 函数名是: " .. name)
|
||||
return
|
||||
end
|
||||
|
||||
local request, error = XMessagePack.Decode(content)
|
||||
if request == nil then
|
||||
XLog.Error("XRpc.Do 函数错误, 服务端返回的数据解码错误, 错误原因: " .. error)
|
||||
return
|
||||
end
|
||||
|
||||
XRpc.DebugPrint(XRpc.DEBUG_TYPE.Recv, name, request)
|
||||
handler(request)
|
||||
end
|
||||
|
||||
setmetatable(XRpc, {
|
||||
__newindex = function(_, name, handler)
|
||||
if type(name) ~= "string" then
|
||||
XLog.Error("XRpc.register 函数错误, 参数name必须是string类型, type: " .. type(name))
|
||||
return
|
||||
end
|
||||
|
||||
if type(handler) ~= "function" then
|
||||
XLog.Error("XRpc.register 函数错误, 注册的接收服务端数据的函数的值必须是函数类型, type: " .. type(handler))
|
||||
return
|
||||
end
|
||||
|
||||
if handlers[name] and not IsHotReloadOpen then
|
||||
XLog.Error("XRpc.register 函数错误, 存在相同名字的接收服务端数据的函数, 名字是: " .. name)
|
||||
return
|
||||
end
|
||||
handlers[name] = handler
|
||||
end,
|
||||
})
|
||||
|
||||
XRpc.TestRequest = function(request)
|
||||
XLog.Warning(request);
|
||||
end
|
14
Resources/Scripts/XCommon/XRpcExceptionCode.lua
Normal file
14
Resources/Scripts/XCommon/XRpcExceptionCode.lua
Normal file
|
@ -0,0 +1,14 @@
|
|||
-- auto export form enum
|
||||
-- Automatic generation of code, forbid to edit or delete
|
||||
XRpcExceptionCode = {
|
||||
Success = 0,
|
||||
DecodeError = 1,
|
||||
ServerInternalError = 2,
|
||||
RequestOutOfLimit = 3,
|
||||
RpcTimeout = 4,
|
||||
InvalidRequest = 5,
|
||||
InvalidArgument = 6,
|
||||
FeaturesNotOpen = 7,
|
||||
RequestBlocked = 8,
|
||||
ServiceUnavailable = 9,
|
||||
}
|
146
Resources/Scripts/XCommon/XSaveTool.lua
Normal file
146
Resources/Scripts/XCommon/XSaveTool.lua
Normal file
|
@ -0,0 +1,146 @@
|
|||
local tostring = tostring
|
||||
local load = load
|
||||
local type = type
|
||||
local ipairs = ipairs
|
||||
local pairs = pairs
|
||||
local string = string
|
||||
local table = table
|
||||
|
||||
local stringDump = string.dump
|
||||
local stringGmatch = string.gmatch
|
||||
local tableUnpack = table.unpack
|
||||
local tableInsert = table.insert
|
||||
local tableSort = table.sort
|
||||
local tableConcat = table.concat
|
||||
|
||||
|
||||
XSaveTool = XSaveTool or {}
|
||||
XSaveTool.LocalCache = {}
|
||||
|
||||
local function fret(...)
|
||||
local args = { ... }
|
||||
return function()
|
||||
return tableUnpack(args)
|
||||
end
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 数据字符串化
|
||||
--@val: 需要封装成字符串的数据
|
||||
--@needSort: 是否需要排序
|
||||
--@cache: 缓存处理,table引用死锁判断
|
||||
--@return 封装好的字符串
|
||||
--==============================--
|
||||
function XSaveTool.Stringify(val, needSort, cache)
|
||||
cache = cache or {}
|
||||
|
||||
return (({
|
||||
["nil"] = fret "nil",
|
||||
["boolean"] = fret(tostring(val)),
|
||||
["number"] = fret(val),
|
||||
["function"] = function()
|
||||
return "function(...)" ..
|
||||
"return load(" ..
|
||||
XSaveTool.Stringify(stringDump(val), needSort, cache) ..
|
||||
")(...)" ..
|
||||
"end"
|
||||
end,
|
||||
["string"] = function()
|
||||
local s = "\""
|
||||
for c in stringGmatch(val, ".") do
|
||||
s = s .. "\\" .. c:byte()
|
||||
end
|
||||
return s .. "\""
|
||||
end,
|
||||
["table"] = function()
|
||||
if cache[val] then
|
||||
XLog.Error("loop Stringify")
|
||||
return
|
||||
end
|
||||
cache[val] = true
|
||||
local members = {}
|
||||
if needSort then
|
||||
local keys = {}
|
||||
for k, _ in pairs(val) do
|
||||
tableInsert(keys, k)
|
||||
end
|
||||
tableSort(keys)
|
||||
for _, v in ipairs(keys) do
|
||||
tableInsert(members, "[" .. XSaveTool.Stringify(v, needSort, cache) .. "]=" .. XSaveTool.Stringify(val[v], needSort, cache))
|
||||
end
|
||||
else
|
||||
for k, v in pairs(val) do
|
||||
tableInsert(members, "[" .. XSaveTool.Stringify(k, needSort, cache) .. "]=" .. XSaveTool.Stringify(v, needSort, cache))
|
||||
end
|
||||
end
|
||||
return "{" .. tableConcat(members, ",") .. "}"
|
||||
end,
|
||||
})[type(val)] or function()
|
||||
XLog.Error("cannot Stringify type:" .. type(val), 2)
|
||||
end)()
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 本地数据持久化
|
||||
--@key: 存储key
|
||||
--@value: 存储值
|
||||
--==============================--
|
||||
function XSaveTool.SaveData(key, value)
|
||||
local k = XSaveTool.Stringify(key, true)
|
||||
if value == false then
|
||||
XSaveTool.LocalCache[k] = nil
|
||||
else
|
||||
XSaveTool.LocalCache[k] = value or XSaveTool.LocalCache[k]
|
||||
end
|
||||
CS.UnityEngine.PlayerPrefs.SetString("LuaData:" .. k, XSaveTool.Stringify(XSaveTool.LocalCache[k]))
|
||||
CS.UnityEngine.PlayerPrefs.Save()
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 持久化数据删除
|
||||
--@key: 数据key
|
||||
--==============================--
|
||||
function XSaveTool.RemoveData(key)
|
||||
local k = XSaveTool.Stringify(key, true)
|
||||
XSaveTool.LocalCache[k] = nil
|
||||
CS.UnityEngine.PlayerPrefs.DeleteKey("LuaData:" .. k)
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 获取持久化数据
|
||||
--@key: 存储key
|
||||
--@return 存储值
|
||||
--==============================--
|
||||
function XSaveTool.GetData(key)
|
||||
local k = XSaveTool.Stringify(key, true)
|
||||
if XSaveTool.LocalCache[k] then
|
||||
return XSaveTool.LocalCache[k]
|
||||
end
|
||||
|
||||
local str = CS.UnityEngine.PlayerPrefs.GetString("LuaData:" .. k)
|
||||
if str and str ~= "" then
|
||||
local obj = load("return " .. str)()
|
||||
XSaveTool.LocalCache[k] = obj
|
||||
return obj
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 移除所有持久化数据(调试)
|
||||
--==============================--
|
||||
function XSaveTool.RemoveAll()
|
||||
local enable1 = XDataCenter.GuideManager.CheckFuncDisable()
|
||||
local enable2 = XDataCenter.CommunicationManager.CheckFuncDisable()
|
||||
local enable3 = XDataCenter.FunctionEventManager.CheckFuncDisable()
|
||||
local enable4 = XRpc.CheckLuaNetLogEnable()
|
||||
|
||||
XSaveTool.LocalCache = {}
|
||||
CS.UnityEngine.PlayerPrefs.DeleteAll()
|
||||
|
||||
XDataCenter.GuideManager.ChangeFuncDisable(enable1)
|
||||
XDataCenter.CommunicationManager.ChangeFuncDisable(enable2)
|
||||
XDataCenter.FunctionEventManager.ChangeFuncDisable(enable3)
|
||||
XRpc.SetLuaNetLogEnable(enable4)
|
||||
end
|
72
Resources/Scripts/XCommon/XScheduleManager.lua
Normal file
72
Resources/Scripts/XCommon/XScheduleManager.lua
Normal file
|
@ -0,0 +1,72 @@
|
|||
XScheduleManager = XScheduleManager or {}
|
||||
|
||||
local CSXScheduleManager = CS.XScheduleManager
|
||||
XScheduleManager.SECOND = CSXScheduleManager.SECOND
|
||||
|
||||
require("XCommon/XTool")
|
||||
local XTool = XTool
|
||||
local IsEditor = XMain.IsEditorDebug
|
||||
|
||||
-- /// <summary>
|
||||
-- /// 启动定时器
|
||||
-- /// </summary>
|
||||
-- /// <param name="handler">处理函数</param>
|
||||
-- /// <param name="interval">间隔毫秒(第一次执行在间隔时间后)</param>
|
||||
-- /// <param name="loop">循环次数</param>
|
||||
-- /// <param name="delay">延迟毫秒</param>
|
||||
-- /// <returns>定时器id</returns>
|
||||
function XScheduleManager.Schedule(func, interval, loop, delay)
|
||||
local name = IsEditor and XTool.GetStackTraceName() or nil
|
||||
return CSXScheduleManager.Schedule(func, interval, loop, delay or 0, name)
|
||||
end
|
||||
|
||||
-- /// <summary>
|
||||
-- /// 启动单次定时器
|
||||
-- /// </summary>
|
||||
-- /// <param name="handler">处理函数</param>
|
||||
-- /// <param name="delay">延迟毫秒</param>
|
||||
-- /// <returns>定时器id</returns>
|
||||
function XScheduleManager.ScheduleOnce(func, delay)
|
||||
local name = IsEditor and XTool.GetStackTraceName() or nil
|
||||
return CSXScheduleManager.ScheduleOnce(func, delay, name)
|
||||
end
|
||||
|
||||
-- /// <summary>
|
||||
-- /// 启动指定时间单次定时器
|
||||
-- /// </summary>
|
||||
-- /// <param name="handler">处理函数</param>
|
||||
-- /// <param name="timeStamp">需要启动的时间</param>
|
||||
-- /// <returns>定时器id</returns>
|
||||
function XScheduleManager.ScheduleAtTimestamp(func, timeStamp)
|
||||
local name = IsEditor and XTool.GetStackTraceName() or nil
|
||||
local nowTime = XTime.GetServerNowTimestamp()
|
||||
if timeStamp <= nowTime then
|
||||
return
|
||||
end
|
||||
return CSXScheduleManager.ScheduleOnce(func, (timeStamp - nowTime) * XScheduleManager.SECOND, name)
|
||||
end
|
||||
|
||||
-- /// <summary>
|
||||
-- /// 启动永久定时器
|
||||
-- /// </summary>
|
||||
-- /// <param name="handler">处理函数</param>
|
||||
-- /// <param name="interval">间隔毫秒</param>
|
||||
-- /// <param name="delay">延迟毫秒</param>
|
||||
-- /// <returns>定时器id</returns>
|
||||
function XScheduleManager.ScheduleForever(func, interval, delay)
|
||||
local name = IsEditor and XTool.GetStackTraceName() or nil
|
||||
return CSXScheduleManager.ScheduleForever(func, interval, delay or 0, name)
|
||||
end
|
||||
|
||||
-- /// <summary>
|
||||
-- /// 取消定时器
|
||||
-- /// </summary>
|
||||
-- /// <param name="id">定时器id</param>
|
||||
function XScheduleManager.UnSchedule(id)
|
||||
return CSXScheduleManager.UnSchedule(id)
|
||||
end
|
||||
|
||||
-- 释放所有定时器
|
||||
function XScheduleManager.UnScheduleAll()
|
||||
return CSXScheduleManager.UnScheduleAll()
|
||||
end
|
290
Resources/Scripts/XCommon/XSignBoardPlayer.lua
Normal file
290
Resources/Scripts/XCommon/XSignBoardPlayer.lua
Normal file
|
@ -0,0 +1,290 @@
|
|||
local XSignBoardPlayer = {}
|
||||
|
||||
local PlayerState = {
|
||||
IDLE = 0,
|
||||
PLAYING = 1,
|
||||
CHANGING = 2,
|
||||
PAUSE = 3
|
||||
}
|
||||
|
||||
--创建一个播放器
|
||||
function XSignBoardPlayer.New(playUi, coolTime, delay)
|
||||
if playUi == nil then
|
||||
return nil
|
||||
end
|
||||
|
||||
local player = {}
|
||||
setmetatable(player, { __index = XSignBoardPlayer })
|
||||
player:Init(playUi, coolTime, delay)
|
||||
return player
|
||||
end
|
||||
|
||||
--初始化
|
||||
function XSignBoardPlayer:Init(playUi, coolTime, delay)
|
||||
|
||||
self.CoolTime = coolTime --冷却时间
|
||||
self.PlayUi = playUi --执行Ui
|
||||
self.Status = PlayerState.IDLE
|
||||
self.DelayStart = XTime.GetServerNowTimestamp() + delay
|
||||
self.LastPlayTime = -1
|
||||
self.Delay = delay
|
||||
self.Time = XTime.GetServerNowTimestamp()
|
||||
self.AutoPlay = true
|
||||
self.PlayOne = false
|
||||
end
|
||||
|
||||
|
||||
-- self.PlayerData.PlayerList = {} --播放列表
|
||||
-- self.PlayerData..PlayingElement = nil --播放对象
|
||||
-- self.PlayerData.PlayedList = {} --播放过的列表
|
||||
-- self.LastPlayTime = -1 --上次播放时间
|
||||
function XSignBoardPlayer:SetPlayerData(data)
|
||||
self.PlayerData = data
|
||||
end
|
||||
|
||||
--设置播放队列
|
||||
function XSignBoardPlayer:SetPlayList(playList)
|
||||
if not playList or #playList <= 0 then
|
||||
return
|
||||
end
|
||||
|
||||
self.PlayerData.PlayerList = {}
|
||||
self.PlayerData.LastPlayTime = -1
|
||||
self.DelayStart = self.Time + self.Delay
|
||||
|
||||
for _, element in ipairs(playList) do
|
||||
table.insert(self.PlayerData.PlayerList, element)
|
||||
end
|
||||
end
|
||||
|
||||
--播放
|
||||
function XSignBoardPlayer:Play(tab, cvType)
|
||||
if not tab then
|
||||
return false
|
||||
end
|
||||
|
||||
if not self:IsActive() then
|
||||
return false
|
||||
end
|
||||
|
||||
if self.PlayerData.PlayingElement and self.PlayerData.PlayingElement.Id == tab.Id then
|
||||
return false
|
||||
end
|
||||
|
||||
local element = {}
|
||||
element.Id = tab.Id --Id
|
||||
element.AddTime = self.Time -- 添加事件
|
||||
element.StartTime = -1 --开始播放的时间
|
||||
element.EndTime = -1 --结束时间
|
||||
|
||||
-- 获取相应语言的动作持续时间
|
||||
local duration
|
||||
local defaultCvType = CS.XGame.Config:GetInt("DefaultCvType")
|
||||
local curElementCvType = cvType or CS.UnityEngine.PlayerPrefs.GetInt("CV_TYPE", defaultCvType)
|
||||
|
||||
if tab.Duration[curElementCvType] == nil then
|
||||
if tab.Duration[defaultCvType] == nil then
|
||||
XLog.Error(string.format("XSignBoardPlayer:Play函数错误,配置表SignboardFeedback.tab没有配置Id:%s的Duration数据", tostring(element.Id)))
|
||||
return false
|
||||
end
|
||||
duration = tab.Duration[defaultCvType]
|
||||
else
|
||||
duration = tab.Duration[curElementCvType]
|
||||
end
|
||||
|
||||
element.Duration = duration
|
||||
element.Validity = tab.Validity --有效期
|
||||
element.CoolTime = 0--tab.CoolTime --冷却时间
|
||||
element.Weight = tab.Weight --权重
|
||||
element.SignBoardConfig = tab
|
||||
element.CvType = cvType
|
||||
table.insert(self.PlayerData.PlayerList, 1, element)
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
--播放下一个
|
||||
--isRecord决定是否要保存当前动作播放记录
|
||||
function XSignBoardPlayer:PlayNext(isRecord)
|
||||
if not self:IsActive() then
|
||||
return
|
||||
end
|
||||
|
||||
if not self.PlayerData.PlayerList or #self.PlayerData.PlayerList == 0 then
|
||||
return
|
||||
end
|
||||
|
||||
--获取第一个在有限期之类的动画
|
||||
local head = nil
|
||||
while #self.PlayerData.PlayerList > 0 and not head do
|
||||
|
||||
local temp = table.remove(self.PlayerData.PlayerList, 1)
|
||||
-- local lastPlayTime = self.PlayerData.PlayedList[temp.Id]
|
||||
-- --如果还在冷却中
|
||||
-- if lastPlayTime and self.Time < lastPlayTime then
|
||||
-- if #self.PlayerData.PlayerList <= 0 then
|
||||
-- break
|
||||
-- end
|
||||
-- temp = table.remove(self.PlayerData.PlayerList, 1)
|
||||
-- end
|
||||
--检测是否过期
|
||||
if temp.Validity < 0 then
|
||||
head = temp
|
||||
else
|
||||
local validity = temp.Validity + temp.AddTime
|
||||
if validity > self.Time then
|
||||
head = temp
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--如果找不到合适的动画
|
||||
if not head then
|
||||
return
|
||||
end
|
||||
|
||||
head.StartTime = self.Time
|
||||
|
||||
self.PlayerData.PlayingElement = head
|
||||
self.Status = PlayerState.PLAYING
|
||||
self.PlayerData.LastPlayTime = head.StartTime + head.Duration
|
||||
|
||||
if isRecord then
|
||||
-- 记录播放过的动作
|
||||
XDataCenter.SignBoardManager.RecordSignBoard(head.SignBoardConfig)
|
||||
end
|
||||
|
||||
self.PlayUi:Play(head)
|
||||
|
||||
if self.PlayOne then
|
||||
-- 清空播放列表,只播放当前权重最高的动画(head)
|
||||
self.PlayerData.PlayerList = {}
|
||||
end
|
||||
end
|
||||
|
||||
--停止
|
||||
function XSignBoardPlayer:Stop()
|
||||
if self.PlayerData.PlayingElement == nil then
|
||||
return
|
||||
end
|
||||
|
||||
self.PlayerData.PlayedList[self.PlayerData.PlayingElement.Id] = XTime.GetServerNowTimestamp() + self.PlayerData.PlayingElement.CoolTime
|
||||
self.PlayUi:OnStop(self.PlayerData.PlayingElement)
|
||||
self.PlayerData.PlayingElement = nil
|
||||
self.Status = PlayerState.IDLE
|
||||
self.LastPlayTime = XTime.GetServerNowTimestamp()
|
||||
end
|
||||
|
||||
--暂停
|
||||
function XSignBoardPlayer:Pause()
|
||||
self.Status = PlayerState.PAUSE
|
||||
end
|
||||
|
||||
function XSignBoardPlayer:Freeze()
|
||||
self.Status = PlayerState.STOP
|
||||
end
|
||||
|
||||
function XSignBoardPlayer:Resume()
|
||||
self.LastPlayTime = XTime.GetServerNowTimestamp()
|
||||
self.Status = PlayerState.IDLE
|
||||
end
|
||||
|
||||
--更新
|
||||
function XSignBoardPlayer:Update(deltaTime)
|
||||
self.Time = self.Time + deltaTime
|
||||
|
||||
if self.Time < self.DelayStart then
|
||||
return
|
||||
end
|
||||
|
||||
if not self:IsActive() then
|
||||
return
|
||||
end
|
||||
|
||||
if (not self.PlayerData.PlayerList or #self.PlayerData.PlayerList == 0) and self.PlayerData.PlayingElement == nil then
|
||||
return
|
||||
end
|
||||
|
||||
if self.Status == PlayerState.STOP then
|
||||
return
|
||||
end
|
||||
|
||||
if self.Status == PlayerState.PAUSE then
|
||||
return
|
||||
end
|
||||
|
||||
local nextElementTime = self.PlayerData.LastPlayTime + self.CoolTime
|
||||
|
||||
--存在播放中的动作
|
||||
if self.PlayerData.PlayingElement ~= nil and self.PlayerData.PlayingElement.Duration > 0 then
|
||||
local deadline = self.PlayerData.PlayingElement.StartTime + self.PlayerData.PlayingElement.Duration
|
||||
if deadline < self.Time then
|
||||
if self.PlayUi.Parent.SetWhetherPlayChangeActionEffect then
|
||||
--动作生命周期正常结束,不用播放打断特效
|
||||
self.PlayUi.Parent:SetWhetherPlayChangeActionEffect(false)
|
||||
end
|
||||
self:SetInterruptDetection(false)
|
||||
self:Stop()
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
--冷却时间
|
||||
if nextElementTime < self.Time and self.Status ~= PlayerState.PLAYING and self.AutoPlay then
|
||||
self:PlayNext(true)
|
||||
end
|
||||
end
|
||||
|
||||
function XSignBoardPlayer:SetInterruptDetection(boolValue)
|
||||
self.IsInInterruptDetection = boolValue
|
||||
end
|
||||
|
||||
function XSignBoardPlayer:GetInterruptDetection()
|
||||
return self.IsInInterruptDetection
|
||||
end
|
||||
|
||||
--强制运行
|
||||
function XSignBoardPlayer:ForcePlay(tab, cvType, isRecord)
|
||||
if self.Status == PlayerState.STOP then
|
||||
return
|
||||
end
|
||||
|
||||
if self:Play(tab, cvType) then
|
||||
self:PlayNext(isRecord)
|
||||
end
|
||||
end
|
||||
|
||||
function XSignBoardPlayer:IsPlaying()
|
||||
return self.Status == PlayerState.PLAYING
|
||||
end
|
||||
|
||||
--设置自动播放
|
||||
function XSignBoardPlayer:SetAutoPlay(bAutoPlay)
|
||||
self.AutoPlay = bAutoPlay
|
||||
end
|
||||
|
||||
-- 播放队列是否只播放权重最高的动画
|
||||
function XSignBoardPlayer:SetPlayOne(bPlayOne)
|
||||
self.PlayOne = bPlayOne
|
||||
end
|
||||
|
||||
---生命周期----------------------------------------------
|
||||
function XSignBoardPlayer:IsActive()
|
||||
return self.Active
|
||||
end
|
||||
|
||||
function XSignBoardPlayer:OnEnable()
|
||||
self.Active = true
|
||||
self:Resume()
|
||||
end
|
||||
|
||||
function XSignBoardPlayer:OnDisable()
|
||||
self.Active = false
|
||||
self:Stop()
|
||||
end
|
||||
|
||||
function XSignBoardPlayer:OnDestroy()
|
||||
self:Stop()
|
||||
end
|
||||
|
||||
return XSignBoardPlayer
|
45
Resources/Scripts/XCommon/XStack.lua
Normal file
45
Resources/Scripts/XCommon/XStack.lua
Normal file
|
@ -0,0 +1,45 @@
|
|||
XStack = XClass(nil, "XStack")
|
||||
|
||||
function XStack:Ctor()
|
||||
self:Clear()
|
||||
end
|
||||
|
||||
function XStack:Clear()
|
||||
self.__Container = {}
|
||||
self.__EndIndex = 0
|
||||
end
|
||||
|
||||
function XStack:IsEmpty()
|
||||
return self.__EndIndex < 1
|
||||
end
|
||||
|
||||
function XStack:Count()
|
||||
return self.__EndIndex
|
||||
end
|
||||
|
||||
function XStack:Push(element)
|
||||
if not element then return end
|
||||
|
||||
local endIndex = self.__EndIndex + 1
|
||||
self.__EndIndex = endIndex
|
||||
self.__Container[endIndex] = element
|
||||
end
|
||||
|
||||
function XStack:Pop()
|
||||
if self:IsEmpty() then
|
||||
self:Clear()
|
||||
return
|
||||
end
|
||||
|
||||
local endIndex = self.__EndIndex
|
||||
local element = self.__Container[endIndex]
|
||||
|
||||
self.__EndIndex = endIndex - 1
|
||||
self.__Container[endIndex] = nil
|
||||
|
||||
return element
|
||||
end
|
||||
|
||||
function XStack:Peek()
|
||||
return self.__Container[self.__EndIndex]
|
||||
end
|
411
Resources/Scripts/XCommon/XString.lua
Normal file
411
Resources/Scripts/XCommon/XString.lua
Normal file
|
@ -0,0 +1,411 @@
|
|||
--==============================--
|
||||
-- 字符串相关扩展方法
|
||||
--==============================--
|
||||
local tonumber = tonumber
|
||||
local next = next
|
||||
local pairs = pairs
|
||||
local string = string
|
||||
local table = table
|
||||
local math = math
|
||||
|
||||
local stringLen = string.len
|
||||
local stringByte = string.byte
|
||||
local stringSub = string.sub
|
||||
local stringGsub = string.gsub
|
||||
local stringFind = string.find
|
||||
local stringMatch = string.match
|
||||
local tableInsert = table.insert
|
||||
local mathFloor = math.floor
|
||||
|
||||
--==============================--
|
||||
--desc: 通过utf8获取字符串长度
|
||||
--@str: 字符串
|
||||
--@return 字符串长度
|
||||
--==============================--
|
||||
function string.Utf8Len(str)
|
||||
local len = stringLen(str)
|
||||
local left = len
|
||||
local cnt = 0
|
||||
local arr = { 0, 192, 224, 240, 248, 252 }
|
||||
while left ~= 0 do
|
||||
local tmp = stringByte(str, -left)
|
||||
local i = #arr
|
||||
while arr[i] do
|
||||
if tmp >= arr[i] then
|
||||
left = left - i
|
||||
break
|
||||
end
|
||||
i = i - 1
|
||||
end
|
||||
cnt = cnt + 1
|
||||
end
|
||||
return cnt
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 通过utf8获取单个字符长度
|
||||
--@str: 单个字符
|
||||
--@return 字符串长度
|
||||
--==============================--
|
||||
function string.Utf8Size(char)
|
||||
if not char then
|
||||
return 0
|
||||
elseif char >= 252 then
|
||||
return 6
|
||||
elseif char >= 248 then
|
||||
return 5
|
||||
elseif char >= 240 then
|
||||
return 4
|
||||
elseif char >= 225 then
|
||||
return 3
|
||||
elseif char >= 192 then
|
||||
return 2
|
||||
else
|
||||
return 1
|
||||
end
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 按utf8长度截取字符串
|
||||
--@str: 字符串
|
||||
--@return 字符串
|
||||
--==============================--
|
||||
function string.Utf8Sub(str, startChar, numChars)
|
||||
local startIndex = 1
|
||||
while startChar > 1 do
|
||||
local char = stringByte(str, startIndex)
|
||||
startIndex = startIndex + string.Utf8Size(char)
|
||||
startChar = startChar - 1
|
||||
end
|
||||
|
||||
local currentIndex = startIndex
|
||||
while numChars > 0 and currentIndex <= #str do
|
||||
local char = stringByte(str, currentIndex)
|
||||
currentIndex = currentIndex + string.Utf8Size(char)
|
||||
numChars = numChars - 1
|
||||
end
|
||||
return str:sub(startIndex, currentIndex - 1)
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 将字符串分割成char table
|
||||
--@str: 字符串
|
||||
--@return char table
|
||||
--==============================--
|
||||
function string.SplitWordsToCharTab(str)
|
||||
local len = stringLen(str)
|
||||
local left = len
|
||||
local chartab = {}
|
||||
local arr = { 0, 192, 224, 240, 248, 252 }
|
||||
while left ~= 0 do
|
||||
local tmp = stringByte(str, -left)
|
||||
local i = #arr
|
||||
local value = left
|
||||
|
||||
while arr[i] do
|
||||
if tmp >= arr[i] then
|
||||
left = left - i
|
||||
break
|
||||
end
|
||||
i = i - 1
|
||||
end
|
||||
|
||||
local char = stringSub(str, -value, -left - 1)
|
||||
if stringSub(str, -left, -left + 1) == "\\n" then
|
||||
left = left - 2
|
||||
char = char .. "\n"
|
||||
end
|
||||
tableInsert(chartab, char)
|
||||
end
|
||||
return chartab
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 把有富文本格式的字符串变成char table
|
||||
--@str: 富文本字符串
|
||||
--@return char table
|
||||
--==============================--
|
||||
function string.CharsConvertToCharTab(str)
|
||||
--str = "我只是用来{<color=#00ffffff><size=40>测一测</size></color>}别xiabibi{<size=25><color=#ff0000ff>红色试一试</color></size>}试玩啦"--
|
||||
local leftindexs = {}
|
||||
local rightindexs = {}
|
||||
local startpos = 1
|
||||
while true do
|
||||
local pos = stringFind(str, "{", startpos)
|
||||
|
||||
if not pos then
|
||||
break
|
||||
end
|
||||
|
||||
tableInsert(leftindexs, pos)
|
||||
pos = stringFind(str, "}", pos + 1)
|
||||
if not pos then
|
||||
break
|
||||
end
|
||||
|
||||
tableInsert(rightindexs, pos)
|
||||
startpos = pos + 1
|
||||
end
|
||||
|
||||
local words = {}
|
||||
if #leftindexs > 0 then
|
||||
startpos = 1
|
||||
for i = 1, #leftindexs do
|
||||
tableInsert(words, stringSub(str, startpos, leftindexs[i] - 1))
|
||||
tableInsert(words, stringSub(str, leftindexs[i] + 1, rightindexs[i] - 1))
|
||||
startpos = rightindexs[i] + 1
|
||||
end
|
||||
|
||||
if rightindexs[#rightindexs] ~= stringLen(str) then
|
||||
tableInsert(words, stringSub(str, startpos))
|
||||
end
|
||||
else
|
||||
tableInsert(words, str)
|
||||
end
|
||||
|
||||
local result = {}
|
||||
for i = 1, #words do
|
||||
local tab
|
||||
local IsRichText
|
||||
local format
|
||||
|
||||
if stringSub(words[i], 1, 1) == "<" then
|
||||
IsRichText = true
|
||||
local pa = stringMatch(words[i], "%b></")
|
||||
pa = stringMatch(pa, ">(.*)<")
|
||||
format = stringGsub(words[i], "%b></", ">#$#</", 1)
|
||||
tab = string.SplitWordsToCharTab(pa)
|
||||
else
|
||||
IsRichText = false
|
||||
format = ""
|
||||
tab = string.SplitWordsToCharTab(words[i])
|
||||
end
|
||||
|
||||
for j = 1, #tab do
|
||||
if IsRichText then
|
||||
local char = stringGsub(format, "#$#", tab[j])
|
||||
tableInsert(result, char)
|
||||
else
|
||||
tableInsert(result, tab[j])
|
||||
end
|
||||
end
|
||||
end
|
||||
return result
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 检查字符串的开头是否与指定字符串匹配
|
||||
--@str: 需要检查的字符串
|
||||
--@value: 指定的字符串
|
||||
--@return true:匹配,false:不匹配
|
||||
--==============================--
|
||||
function string.StartsWith(str, value)
|
||||
return stringSub(str, 1, stringLen(value)) == value
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 检查字符串的结尾是否与指定字符串匹配
|
||||
--@str: 需要检查的字符串
|
||||
--@value: 指定的字符串
|
||||
--@return true:匹配,false:不匹配
|
||||
--==============================--
|
||||
function string.EndsWith(str, value)
|
||||
return value == "" or stringSub(str, -stringLen(value)) == value
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 字符串分割
|
||||
--@str: 原字符串
|
||||
--@separator: 分割符
|
||||
--@return 字符串数组
|
||||
--==============================--
|
||||
function string.Split(str, separator)
|
||||
if str == nil or str == "" then
|
||||
return {}
|
||||
end
|
||||
|
||||
if not separator then
|
||||
separator = "|"
|
||||
end
|
||||
|
||||
local result = {}
|
||||
local startPos = 1
|
||||
while true do
|
||||
local endPos = str:find(separator, startPos)
|
||||
if endPos == nil then
|
||||
break
|
||||
end
|
||||
|
||||
local elem = str:sub(startPos, endPos - 1)
|
||||
tableInsert(result, elem)
|
||||
startPos = endPos + #separator
|
||||
end
|
||||
|
||||
tableInsert(result, str:sub(startPos))
|
||||
return result
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 将字符串分割成int数组
|
||||
--@str: 原字符串
|
||||
--@separator: 分割符
|
||||
--@return int数组
|
||||
--==============================--
|
||||
function string.ToIntArray(str, separator)
|
||||
local strs = string.Split(str, separator)
|
||||
local array = {}
|
||||
if next(strs) then
|
||||
for _, v in pairs(strs) do
|
||||
tableInsert(array, mathFloor(tonumber(v)))
|
||||
end
|
||||
end
|
||||
return array
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 从一个字符串中查找另一个字符串的第一次匹配的索引
|
||||
--@str: 原字符串
|
||||
--@separator: 需要匹配的字符串
|
||||
--@return 索引号
|
||||
--==============================--
|
||||
function string.IndexOf(str, separator)
|
||||
if not str or str == "" or not separator or separator == "" then
|
||||
return -1
|
||||
end
|
||||
for i = 1, #str do
|
||||
local success = true
|
||||
for s = 1, #separator do
|
||||
local strChar = stringByte(str, i + s - 1)
|
||||
local sepChar = stringByte(separator, s)
|
||||
if strChar ~= sepChar then
|
||||
success = false
|
||||
break
|
||||
end
|
||||
end
|
||||
if success then
|
||||
return i
|
||||
end
|
||||
end
|
||||
return -1
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 从一个字符串中查找另一个字符串的最后一次匹配的索引
|
||||
--@str: 原字符串
|
||||
--@separator: 需要匹配的字符串
|
||||
--@return 索引号
|
||||
--==============================--
|
||||
function string.LastIndexOf(str, separator)
|
||||
if not str or str == "" or not separator or separator == "" then
|
||||
return -1
|
||||
end
|
||||
local strLen = #str
|
||||
local sepLen = #separator
|
||||
for i = 0, strLen - 1 do
|
||||
local success = true
|
||||
for s = 0, sepLen - 1 do
|
||||
local strChar = stringByte(str, strLen - i - s)
|
||||
local sepChar = stringByte(separator, sepLen - s)
|
||||
if strChar ~= sepChar then
|
||||
success = false
|
||||
break
|
||||
end
|
||||
end
|
||||
if success then
|
||||
return strLen - i - sepLen + 1
|
||||
end
|
||||
end
|
||||
return -1
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 判断字符串是否为nil或者为空
|
||||
--@str: 字符串对象
|
||||
--@return 如果为nil或者为空,返回true,否则返回fale
|
||||
--==============================--
|
||||
function string.IsNilOrEmpty(str)
|
||||
return str == nil or #str == 0
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 过滤utf文本特殊屏蔽字干扰字符
|
||||
--@str: 字符串对象
|
||||
--@return 过滤后文本
|
||||
--==============================--
|
||||
local FilterSymbols = [[·~!@#¥%……&*()-=——+【】{}、|;‘’:“”,。、《》?[]{}""'';:./?,<>\|-_=+*()!@#$%^&*~` ]]
|
||||
local FilterSymbolsTable = FilterSymbols:SplitWordsToCharTab()
|
||||
function string.FilterWords(str)
|
||||
local result = ""
|
||||
for i = 1, string.Utf8Len(str) do
|
||||
local nowStr = string.Utf8Sub(str, i, 1)
|
||||
local isValid = true
|
||||
for _, v in pairs(FilterSymbolsTable) do
|
||||
if nowStr == v then
|
||||
isValid = false
|
||||
break
|
||||
end
|
||||
end
|
||||
if isValid then
|
||||
result = result .. nowStr
|
||||
end
|
||||
end
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 字符串每隔X个字符插入 需要的字符串
|
||||
--@str: 字符串对象
|
||||
--@interval: 间隔多少个字符
|
||||
--@insertStr: 插入的字符串
|
||||
--@return 过滤后文本
|
||||
--==============================--
|
||||
function string.InsertStr(str, interval, insertStr)
|
||||
local index = 1
|
||||
local worldCount = 0
|
||||
local result = ""
|
||||
|
||||
while true do
|
||||
local world = stringSub(str, index, index)
|
||||
local byte = stringByte(world)
|
||||
|
||||
if byte > 128 then
|
||||
world = stringSub(str, index, index + 2)
|
||||
index = index + 3
|
||||
else
|
||||
index = index + 1
|
||||
end
|
||||
|
||||
result = result .. world
|
||||
worldCount = worldCount + 1
|
||||
if worldCount >= interval then
|
||||
result = result .. insertStr
|
||||
worldCount = 0
|
||||
end
|
||||
|
||||
if index > #str then
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
--判断字符串是否为合法IP"[0-255].[0-255].[0-255].[0-255]"
|
||||
function string.IsIp(ip)
|
||||
if string.IsNilOrEmpty(ip) then return false end
|
||||
|
||||
local valueSet = table.pack(string.find(ip, "(%d+)%.(%d+)%.(%d+)%.(%d+)"))
|
||||
|
||||
if not valueSet[1] then return false end
|
||||
|
||||
local ipNum
|
||||
for i = 3, 6 do
|
||||
ipNum = tonumber(valueSet[i])
|
||||
if not ipNum or ipNum < 0 or ipNum > 255 then
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
9911
Resources/Scripts/XCommon/XTable.lua
Normal file
9911
Resources/Scripts/XCommon/XTable.lua
Normal file
File diff suppressed because it is too large
Load diff
265
Resources/Scripts/XCommon/XTime.lua
Normal file
265
Resources/Scripts/XCommon/XTime.lua
Normal file
|
@ -0,0 +1,265 @@
|
|||
XTime = XTime or {}
|
||||
|
||||
local floor = math.floor
|
||||
local CsTime = CS.UnityEngine.Time
|
||||
|
||||
local ServerTimeWhenStartupList = {} --客户端启动时,服务器的时间戳
|
||||
local ServerTimeMaxCount = 10 --保存服务端时间的最大个数
|
||||
local CurrentSaveIndex = 1 --当前保存到的下标
|
||||
local ServerTimeWhenStartupAverage = 0 --客户端启动时,服务器的时间戳平局值
|
||||
|
||||
-- 一星期中的第几天 (3)[1 - 6 = 星期天 - 星期六]
|
||||
local WeekOfDay = {
|
||||
Sun = 0,
|
||||
Mon = 1,
|
||||
Tues = 2,
|
||||
Wed = 3,
|
||||
Thur = 4,
|
||||
Fri = 5,
|
||||
Sat = 6,
|
||||
NorSun = 7,
|
||||
}
|
||||
|
||||
local WeekOfDayIndex = {
|
||||
[WeekOfDay.Mon] = 1,
|
||||
[WeekOfDay.Tues] = 2,
|
||||
[WeekOfDay.Wed] = 3,
|
||||
[WeekOfDay.Thur] = 4,
|
||||
[WeekOfDay.Fri] = 5,
|
||||
[WeekOfDay.Sat] = 6,
|
||||
[WeekOfDay.Sun] = 7,
|
||||
[WeekOfDay.NorSun] = 7,
|
||||
}
|
||||
local WeekLength = 7
|
||||
local sec_of_a_day = 24 * 60 * 60
|
||||
local sec_of_refresh_time = 7 * 60 * 60
|
||||
|
||||
--==============================--
|
||||
--desc: 获取服务器当前时间戳
|
||||
--@return 长整型时间戳,单位(秒)
|
||||
--==============================--
|
||||
function XTime.GetServerNowTimestamp()
|
||||
local sinceStartup = CsTime.realtimeSinceStartup
|
||||
return floor(ServerTimeWhenStartupAverage + sinceStartup)
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 同步时间
|
||||
--@serverTime: 服务器时间
|
||||
--@reqTime: 发起请求时间
|
||||
--@resTime: 收到响应时间
|
||||
--==============================--
|
||||
function XTime.SyncTime(serverTime, reqTime, resTime)
|
||||
local startup = (reqTime + resTime) * 0.5
|
||||
local span = serverTime - startup
|
||||
|
||||
if CurrentSaveIndex > ServerTimeMaxCount then
|
||||
CurrentSaveIndex = CurrentSaveIndex - ServerTimeMaxCount
|
||||
end
|
||||
ServerTimeWhenStartupList[CurrentSaveIndex] = span
|
||||
CurrentSaveIndex = CurrentSaveIndex + 1
|
||||
|
||||
local count = #ServerTimeWhenStartupList
|
||||
local total = 0
|
||||
for _, v in ipairs(ServerTimeWhenStartupList) do
|
||||
total = total + v
|
||||
end
|
||||
ServerTimeWhenStartupAverage = total / count
|
||||
end
|
||||
|
||||
--==============================--
|
||||
--desc: 时间字符串转服务器时区时间戳
|
||||
--@dateTimeString: 时间字符串
|
||||
--@return 转失败返回nil
|
||||
--==============================--
|
||||
function XTime.ParseToTimestamp(dateTimeString)
|
||||
if dateTimeString == nil or dateTimeString == "" then
|
||||
return
|
||||
end
|
||||
|
||||
local success, timestamp = CS.XDateUtil.TryParseToTimestamp(dateTimeString)
|
||||
if not success then
|
||||
XLog.Error("XTime.TryParseToTimestamp parse to timestamp failed. try use ParseToTimestampMDY: " .. tostring(dateTimeString))
|
||||
return XTime.ParseToTimestampMDY(dateTimeString)
|
||||
end
|
||||
|
||||
return timestamp
|
||||
end
|
||||
|
||||
function XTime.ParseToTimestampMDY(dateTimeString)
|
||||
local arr = string.Split(dateTimeString, " ")
|
||||
local date = arr[1]
|
||||
local time = arr[2]
|
||||
local dateArr = string.Split(date, "/")
|
||||
local m = dateArr[1]
|
||||
local d = dateArr[2]
|
||||
local y = dateArr[3]
|
||||
dateTimeString = y .. "/" .. m .. "/" .. d .. " " .. time
|
||||
local success, timestamp = CS.XDateUtil.TryParseToTimestamp(dateTimeString)
|
||||
if not success then
|
||||
XLog.Error("XTime.TryParseToTimestamp parse to timestamp failed. invalid time argument: " .. tostring(dateTimeString))
|
||||
return -- 该类在CS中不存在,且在1.18版本出现时区格式问题
|
||||
-- return CS.XDate.GetTime(dateTimeString)
|
||||
end
|
||||
|
||||
return timestamp
|
||||
end
|
||||
|
||||
--时间戳转utc时间字符串
|
||||
function XTime.TimestampToUtcDateTimeString(timestamp, format)
|
||||
format = format or "yyyy-MM-dd HH:mm:ss"
|
||||
local dt = CS.XDateUtil.GetUtcDateTime(timestamp)
|
||||
return dt:ToString(format)
|
||||
end
|
||||
|
||||
--时间戳转设备本地时间字符串
|
||||
function XTime.TimestampToLocalDateTimeString(timestamp, format)
|
||||
format = format or "yyyy-MM-dd HH:mm:ss"
|
||||
local dt = CS.XDateUtil.GetLocalDateTime(timestamp)
|
||||
return dt:ToString(format)
|
||||
end
|
||||
|
||||
--时间戳转游戏指定时区时间字符串
|
||||
function XTime.TimestampToGameDateTimeString(timestamp, format)
|
||||
format = format or "yyyy-MM-dd HH:mm:ss"
|
||||
local dt = CS.XDateUtil.GetGameDateTime(timestamp)
|
||||
return dt:ToString(format)
|
||||
end
|
||||
|
||||
-- c#星期枚举转整形数
|
||||
function XTime.DayOfWeekToInt(dayOfWeek, isNormlSunDay)
|
||||
if dayOfWeek == CS.System.DayOfWeek.Sunday then
|
||||
return isNormlSunDay and 7 or 0
|
||||
elseif dayOfWeek == CS.System.DayOfWeek.Monday then
|
||||
return 1
|
||||
elseif dayOfWeek == CS.System.DayOfWeek.Tuesday then
|
||||
return 2
|
||||
elseif dayOfWeek == CS.System.DayOfWeek.Wednesday then
|
||||
return 3
|
||||
elseif dayOfWeek == CS.System.DayOfWeek.Thursday then
|
||||
return 4
|
||||
elseif dayOfWeek == CS.System.DayOfWeek.Friday then
|
||||
return 5
|
||||
else
|
||||
return 6
|
||||
end
|
||||
end
|
||||
|
||||
--获取今天时间
|
||||
function XTime.GetTodayTime(hour, min, sec)
|
||||
hour = hour or 0
|
||||
min = min or 0
|
||||
sec = sec or 0
|
||||
local nowTime = XTime.GetServerNowTimestamp()
|
||||
local dt = CS.XDateUtil.GetGameDateTime(nowTime)
|
||||
dt = dt.Date;
|
||||
dt:AddSeconds(sec)
|
||||
dt:AddMinutes(min)
|
||||
dt:AddHours(hour)
|
||||
return dt:ToTimestamp()
|
||||
end
|
||||
|
||||
function XTime.GeyServerTime(hour, min, sec)
|
||||
hour = hour or 0
|
||||
min = min or 0
|
||||
sec = sec or 0
|
||||
local nowTime = XTime.GetServerNowTimestamp()
|
||||
local dt = CS.XDateUtil.GetGameDateTime(nowTime)
|
||||
dt = dt.Date;
|
||||
dt = dt:AddSeconds(sec)
|
||||
dt = dt:AddMinutes(min)
|
||||
dt = dt:AddHours(hour)
|
||||
return dt:ToTimestamp()
|
||||
end
|
||||
|
||||
-- 获取距离下一个星期x的时间,默认每周第一天为周一
|
||||
function XTime.GetNextWeekOfDayStartWithMon(weekOfDay, offsetTime)
|
||||
local needTime
|
||||
local nowTime = XTime.GetServerNowTimestamp()
|
||||
local dateTime = CS.XDateUtil.GetGameDateTime(nowTime)
|
||||
local weekZero = CS.XDateUtil.GetFirstDayOfThisWeek(dateTime):ToTimestamp()
|
||||
|
||||
local resetTime = (WeekOfDayIndex[weekOfDay] - 1) * sec_of_a_day + offsetTime + weekZero
|
||||
if nowTime < resetTime then
|
||||
needTime = resetTime - nowTime
|
||||
else
|
||||
needTime = WeekLength * sec_of_a_day - (nowTime - resetTime)
|
||||
end
|
||||
|
||||
return needTime
|
||||
end
|
||||
|
||||
-- 获取最近一个未到达的星期X的服务器更新时间
|
||||
function XTime.GetSeverNextWeekOfDayRefreshTime(weekOfDay)
|
||||
local needTime = XTime.GetNextWeekOfDayStartWithMon(weekOfDay, sec_of_refresh_time)
|
||||
local nowTime = XTime.GetServerNowTimestamp()
|
||||
return nowTime + needTime
|
||||
end
|
||||
|
||||
-- 获取服务器当天5点更新时间戳
|
||||
function XTime.GetSeverTodayFreshTime()
|
||||
local now = XTime.GetServerNowTimestamp()
|
||||
local dateTime = CS.XDateUtil.GetGameDateTime(now)
|
||||
local dayZero = dateTime.Date:ToTimestamp()
|
||||
|
||||
return dayZero + sec_of_refresh_time
|
||||
end
|
||||
|
||||
-- 获取服务器明天5点更新时间戳
|
||||
function XTime.GetSeverTomorrowFreshTime()
|
||||
local dayFreshTime = XTime.GetSeverTodayFreshTime()
|
||||
return dayFreshTime + sec_of_a_day
|
||||
end
|
||||
|
||||
-- 获取服务器昨天5点更新时间戳
|
||||
function XTime.GetSeverYesterdayFreshTime()
|
||||
local dayFreshTime = XTime.GetSeverTodayFreshTime()
|
||||
return dayFreshTime - sec_of_a_day
|
||||
end
|
||||
|
||||
--获取服务器下一次5点更新时间戳
|
||||
function XTime.GetSeverNextRefreshTime()
|
||||
local nextRefreshTime
|
||||
|
||||
local dayRefreshTime = XTime.GetSeverTodayFreshTime()
|
||||
local nowTime = XTime.GetServerNowTimestamp()
|
||||
nextRefreshTime = nowTime > dayRefreshTime and XTime.GetSeverTomorrowFreshTime() or dayRefreshTime
|
||||
|
||||
return nextRefreshTime
|
||||
end
|
||||
|
||||
-- 判断服务器当下是否是周末
|
||||
function XTime.CheckWeekend()
|
||||
local now = XTime.GetServerNowTimestamp()
|
||||
local weekday = XTime.GetWeekDay(now, false)
|
||||
|
||||
if weekday == WeekOfDay.Sun then
|
||||
return true
|
||||
elseif weekday == WeekOfDay.Sat then
|
||||
local todayFreshTime = XTime.GetSeverTodayFreshTime()
|
||||
return now >= todayFreshTime
|
||||
elseif weekday == WeekOfDay.Mon then
|
||||
local todayFreshTime = XTime.GetSeverTodayFreshTime()
|
||||
return now < todayFreshTime
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
-- 判断时间戳是周几
|
||||
function XTime.GetWeekDay(time, isNormlSunDay)
|
||||
local dateTime = CS.XDateUtil.GetGameDateTime(time)
|
||||
local weekday = XTime.DayOfWeekToInt(dateTime.DayOfWeek, isNormlSunDay)
|
||||
return weekday
|
||||
end
|
||||
|
||||
--获取一个时间戳的当天刷新的时间
|
||||
function XTime.GetTimeDayFreshTime(time)
|
||||
local todayRefreshTime
|
||||
|
||||
local dateTime = CS.XDateUtil.GetGameDateTime(time)
|
||||
local dayZero = dateTime.Date:ToTimestamp()
|
||||
todayRefreshTime = dayZero + sec_of_refresh_time
|
||||
|
||||
return todayRefreshTime
|
||||
end
|
307
Resources/Scripts/XCommon/XTool.lua
Normal file
307
Resources/Scripts/XCommon/XTool.lua
Normal file
|
@ -0,0 +1,307 @@
|
|||
local Json = require("XCommon/Json")
|
||||
local type = type
|
||||
local table = table
|
||||
local string = string
|
||||
local math = math
|
||||
local next = next
|
||||
local debug = debug
|
||||
local tostring = tostring
|
||||
|
||||
local tableInsert = table.insert
|
||||
local stringMatch = string.match
|
||||
local mathModf = math.modf
|
||||
|
||||
XTool = XTool or {}
|
||||
|
||||
XTool.UObjIsNil = function(uobj)
|
||||
return uobj == nil or not uobj:Exist()
|
||||
end
|
||||
|
||||
XTool.LoopMap = function(map, func)
|
||||
if type(map) == "userdata" then
|
||||
if not map then
|
||||
return
|
||||
end
|
||||
|
||||
local e = map:GetEnumerator()
|
||||
while e:MoveNext() do
|
||||
func(e.Current.Key, e.Current.Value)
|
||||
end
|
||||
e:Dispose()
|
||||
elseif type(map) == "table" then
|
||||
for key, value in pairs(map) do
|
||||
func(key, value)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
XTool.LoopCollection = function(collection, func)
|
||||
if type(collection) == "table" then
|
||||
for _, value in pairs(collection) do
|
||||
func(value)
|
||||
end
|
||||
elseif type(collection) == "userdata" then
|
||||
for i = 0, collection.Count - 1 do
|
||||
func(collection[i])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
XTool.LoopArray = function(collection, func)
|
||||
for i = 0, collection.Length - 1 do
|
||||
func(collection[i])
|
||||
end
|
||||
end
|
||||
|
||||
XTool.CsList2LuaTable = function(collection)
|
||||
local ret = {}
|
||||
for i = 0, collection.Count - 1 do
|
||||
tableInsert(ret, collection[i])
|
||||
end
|
||||
return ret
|
||||
end
|
||||
|
||||
XTool.CsMap2LuaTable = function(map)
|
||||
local ret = {}
|
||||
local e = map:GetEnumerator()
|
||||
while e:MoveNext() do
|
||||
ret[e.Current.Key] = e.Current.Value
|
||||
end
|
||||
e:Dispose()
|
||||
return ret
|
||||
end
|
||||
|
||||
XTool.CsObjectFields2LuaTable = function(CsObj)
|
||||
if CsObj == nil or type(CsObj) ~= "userdata" then
|
||||
return {}
|
||||
end
|
||||
local jsonStr = CS.XTool.SerializeObject(CsObj)
|
||||
return Json.decode(jsonStr)
|
||||
end
|
||||
|
||||
XTool.Clone = function(t)
|
||||
local cache = {}
|
||||
|
||||
local function clone(o)
|
||||
if type(o) ~= "table" then return o end
|
||||
if cache[o] then return cache[o] end
|
||||
|
||||
local newO = {}
|
||||
for k, v in pairs(o) do
|
||||
newO[clone(k)] = clone(v)
|
||||
end
|
||||
|
||||
local mTable = getmetatable(o)
|
||||
if type(mTable) == "table" then
|
||||
setmetatable(newO, mTable)
|
||||
end
|
||||
|
||||
cache[o] = newO
|
||||
|
||||
return newO
|
||||
end
|
||||
|
||||
return clone(t)
|
||||
end
|
||||
|
||||
XTool.GetFileNameWithoutExtension = function(path)
|
||||
return stringMatch(path, "[./]*([^/]*)%.%w+")
|
||||
end
|
||||
|
||||
XTool.GetFileName = function(path)
|
||||
return stringMatch(path, "[./]*([^/]*%.%w+)")
|
||||
end
|
||||
|
||||
XTool.GetExtension = function(path)
|
||||
return stringMatch(path, "[./]*(%.%w+)")
|
||||
end
|
||||
|
||||
XTool.GetTableCount = function(list)
|
||||
if type(list) ~= "table" then
|
||||
XLog.Error(" XTool.GetTableCount 函数错误 : 参数list需要是table类型的, list:" .. type(list))
|
||||
return
|
||||
end
|
||||
|
||||
local count = 0
|
||||
for _, _ in pairs(list) do
|
||||
count = count + 1
|
||||
end
|
||||
|
||||
return count
|
||||
end
|
||||
|
||||
local NumberText = {
|
||||
[0] = "",
|
||||
[1] = CS.XTextManager.GetText("One"),
|
||||
[2] = CS.XTextManager.GetText("Two"),
|
||||
[3] = CS.XTextManager.GetText("Three"),
|
||||
[4] = CS.XTextManager.GetText("Four"),
|
||||
[5] = CS.XTextManager.GetText("Five"),
|
||||
[6] = CS.XTextManager.GetText("Six"),
|
||||
[7] = CS.XTextManager.GetText("Seven"),
|
||||
[8] = CS.XTextManager.GetText("Eight"),
|
||||
[9] = CS.XTextManager.GetText("Nine"),
|
||||
[10] = CS.XTextManager.GetText("Ten"),
|
||||
}
|
||||
|
||||
XTool.ParseNumberString = function(num)
|
||||
return NumberText[mathModf(num / 10)] .. NumberText[num % 10]
|
||||
end
|
||||
|
||||
XTool.ConvertNumberString = function(num)
|
||||
return NumberText[num] or ""
|
||||
end
|
||||
|
||||
XTool.MatchEmoji = function(text)
|
||||
return stringMatch(text, '%[%d%d%d%d%d%]')
|
||||
end
|
||||
|
||||
XTool.CopyToClipboard = function(text)
|
||||
CS.XAppPlatBridge.CopyStringToClipboard(tostring(text))
|
||||
XUiManager.TipText("Clipboard", XUiManager.UiTipType.Tip)
|
||||
end
|
||||
|
||||
XTool.ToArray = function(t)
|
||||
local array = {}
|
||||
for _, v in pairs(t) do
|
||||
table.insert(array, v)
|
||||
end
|
||||
return array
|
||||
end
|
||||
|
||||
XTool.MergeArray = function(...)
|
||||
local res = {}
|
||||
for _, t in pairs({ ... }) do
|
||||
if type(t) == "table" then
|
||||
for _, v in pairs(t) do
|
||||
table.insert(res, v)
|
||||
end
|
||||
end
|
||||
end
|
||||
return res
|
||||
end
|
||||
|
||||
function XTool.ReverseList(list)
|
||||
if not list then return end
|
||||
|
||||
local length = #list
|
||||
local middle = math.floor(length * 0.5)
|
||||
for i = 1, middle do
|
||||
local reverseI = length - i + 1
|
||||
local tmp = list[i]
|
||||
list[i] = list[reverseI]
|
||||
list[reverseI] = tmp
|
||||
end
|
||||
|
||||
return list
|
||||
end
|
||||
|
||||
XTool.Waterfall = function(cbList)
|
||||
local last
|
||||
for i = #cbList, 1, -1 do
|
||||
if type(cbList[i]) == "function" then
|
||||
local nextCb = last
|
||||
local cb = function()
|
||||
cbList[i](nextCb)
|
||||
end
|
||||
last = cb
|
||||
else
|
||||
XLog.Error("XTool.Waterfall error, unit is not function")
|
||||
end
|
||||
end
|
||||
if last then
|
||||
last()
|
||||
end
|
||||
end
|
||||
|
||||
XTool.InitUiObject = function(targetObj)
|
||||
targetObj.Obj = targetObj.Transform:GetComponent("UiObject")
|
||||
if targetObj.Obj ~= nil then
|
||||
for i = 0, targetObj.Obj.NameList.Count - 1 do
|
||||
targetObj[targetObj.Obj.NameList[i]] = targetObj.Obj.ObjList[i]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
XTool.InitUiObjectByUi = function(targetUi, uiPrefab)
|
||||
targetUi.GameObject = uiPrefab.gameObject
|
||||
targetUi.Transform = uiPrefab.transform
|
||||
XTool.InitUiObject(targetUi)
|
||||
return targetUi
|
||||
end
|
||||
|
||||
XTool.DestroyChildren = function(gameObject)
|
||||
if not gameObject then
|
||||
return
|
||||
end
|
||||
|
||||
if XTool.UObjIsNil(gameObject) then
|
||||
return
|
||||
end
|
||||
|
||||
local transform = gameObject.transform
|
||||
for i = 0, transform.childCount - 1, 1 do
|
||||
CS.UnityEngine.Object.Destroy(transform:GetChild(i).gameObject)
|
||||
end
|
||||
end
|
||||
|
||||
XTool.IsTableEmpty = function(tb)
|
||||
return not tb or not next(tb)
|
||||
end
|
||||
|
||||
XTool.IsNumberValid = function(number)
|
||||
return number and number ~= 0
|
||||
end
|
||||
|
||||
XTool.GetStackTraceName = function(level)
|
||||
level = level or 3
|
||||
local info
|
||||
for i = level, 2, -1 do
|
||||
info = debug.getinfo(i)
|
||||
if info then
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
local name = "lua:" .. tostring(info.source) .. "_" .. tostring(info.currentline)
|
||||
return name
|
||||
end
|
||||
|
||||
-- datas : 只接受数组
|
||||
XTool.TableRemove = function(datas, removeValue)
|
||||
local removePos = nil
|
||||
for index, value in ipairs(datas) do
|
||||
if value == removeValue then
|
||||
removePos = index
|
||||
break
|
||||
end
|
||||
end
|
||||
if removePos then table.remove(datas, removePos) end
|
||||
end
|
||||
|
||||
-- 保留digit位小数
|
||||
XTool.MathGetRoundingValue = function(value, digit)
|
||||
return math.floor( value * XTool.MathPow(10, digit) ) / XTool.MathPow(10 , digit)
|
||||
end
|
||||
|
||||
XTool.MathPow = function(a, b)
|
||||
return a ^ b
|
||||
end
|
||||
|
||||
--随机打乱
|
||||
XTool.RandomBreakTableOrder = function(t)
|
||||
local index
|
||||
local temp
|
||||
local total = #t
|
||||
for i = 1, total, 1 do
|
||||
for j = i + 1, total, 1 do
|
||||
index = math.random(j, total);
|
||||
temp = t[i];
|
||||
t[i] = t[index];
|
||||
t[index] = temp;
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
return t
|
||||
end
|
56
Resources/Scripts/XCommon/XUiGravity.lua
Normal file
56
Resources/Scripts/XCommon/XUiGravity.lua
Normal file
|
@ -0,0 +1,56 @@
|
|||
XUiGravity = XClass(XLuaBehaviour, "XUiGravity")
|
||||
-- 范围(防止画面抖动)
|
||||
local range = 0.01
|
||||
|
||||
function XUiGravity:Ctor(rootUi, ui, minX, maxX, minY, maxY)
|
||||
self.minX = minX
|
||||
self.maxX = maxX
|
||||
self.minY = minY
|
||||
self.maxY = maxY
|
||||
self.lastAttitude = CS.UnityEngine.Vector3.zero
|
||||
self.testV = 0
|
||||
self.testSpeed = 0.01
|
||||
end
|
||||
|
||||
function XUiGravity:Start()
|
||||
CS.UnityEngine.Input.gyro.enabled = true
|
||||
end
|
||||
|
||||
function XUiGravity:Update()
|
||||
self.testV = self.testV + self.testSpeed
|
||||
if self.testV > 1 then
|
||||
self.testSpeed = -0.01
|
||||
elseif self.testV < -1 then
|
||||
self.testSpeed = 0.01
|
||||
end
|
||||
local transform = self.Transform
|
||||
-- local attitude = CS.UnityEngine.Vector3(CS.UnityEngine.Input.gyro.attitude.x, CS.UnityEngine.Input.gyro.attitude.y, 0)
|
||||
local attitude = CS.UnityEngine.Vector3(self.testV, 0, 0)
|
||||
--使安全范围内 - 1之1
|
||||
attitude.x = XMath.Clamp(attitude.x, -1, 1);
|
||||
attitude.y = XMath.Clamp(attitude.y, -1, 1);
|
||||
|
||||
local x = transform.localPosition.x
|
||||
local y = transform.localPosition.y
|
||||
|
||||
local isDirty = false
|
||||
if math.abs(self.lastAttitude.x - attitude.x) >= range then
|
||||
isDirty = true
|
||||
local direction = attitude.x - self.lastAttitude.x
|
||||
local position = direction * (self.maxX - self.minX) / 2
|
||||
x = XMath.Clamp(transform.localPosition.x - position, self.minX, self.maxX);
|
||||
self.lastAttitude = attitude
|
||||
end
|
||||
if math.abs(self.lastAttitude.y - attitude.y) >= range then
|
||||
isDirty = true
|
||||
local direction = attitude.y - self.lastAttitude.y
|
||||
local position = direction * (self.maxY - self.minY) / 2
|
||||
y = XMath.Clamp(transform.localPosition.y - position, self.minY, self.maxY);
|
||||
self.lastAttitude = attitude
|
||||
end
|
||||
if isDirty then
|
||||
transform.localPosition = CS.UnityEngine.Vector3(x, y, transform.localPosition.z);
|
||||
end
|
||||
end
|
||||
|
||||
return XUiGravity
|
1111
Resources/Scripts/XCommon/XUiHelper.lua
Normal file
1111
Resources/Scripts/XCommon/XUiHelper.lua
Normal file
File diff suppressed because it is too large
Load diff
171
Resources/Scripts/XConfig/XActivityBriefConfigs.lua
Normal file
171
Resources/Scripts/XConfig/XActivityBriefConfigs.lua
Normal file
|
@ -0,0 +1,171 @@
|
|||
local TABLE_ACTIVITY_PATH = "Client/ActivityBrief/ActivityBrief.tab"
|
||||
local TABLE_ACTIVITY_SHOP = "Client/ActivityBrief/ActivityBriefShop.tab"
|
||||
local TABLE_ACTIVITY_TASK = "Client/ActivityBrief/ActivityBriefTask.tab"
|
||||
local TABLE_ACTIVITY_GROUP_PATH = "Client/ActivityBrief/ActivityBriefGroup.tab"
|
||||
local TABLE_ACTIVITY_SPECIAL = "Client/ActivityBrief/SpecialActivity.tab"
|
||||
local TABLE_ACTIVITY_Story = "Share/ActivityBrief/ActivityBriefStory.tab"
|
||||
|
||||
local ParseToTimestamp = XTime.ParseToTimestamp
|
||||
|
||||
local ActivityTemplates = {}
|
||||
local ActivityShopTemplates = {}
|
||||
local ActivityTaskTemplates = {}
|
||||
local ActivityGroupTemplates = {}
|
||||
local SpecialActivityTemplates = {}
|
||||
local ActivityStoryTemplates = {}
|
||||
local SkipIdToRedPointConditionsDic = {}
|
||||
|
||||
XActivityBriefConfigs = XActivityBriefConfigs or {}
|
||||
|
||||
-- 活动名称Id(有需要新增,勿删改!)
|
||||
XActivityBriefConfigs.ActivityGroupId = {
|
||||
MainLine = 1, --主线活动
|
||||
Branch = 2, --支线活动
|
||||
BossSingle = 3, --单机Boss活动
|
||||
BossOnline = 4, --联机Boss活动
|
||||
Prequel = 5, --间章故事-角色A
|
||||
BabelTower = 6, --巴别塔
|
||||
RougueLike = 7, --爬塔
|
||||
RepeatChallenge = 8, --复刷关
|
||||
ArenaOnline = 9, --区域联机
|
||||
UnionKill = 10, --狙击战
|
||||
ShortStories = 11, --短篇故事
|
||||
Prequel2 = 12, --间章故事-角色B
|
||||
Labyrinth = 13, --迷宫
|
||||
Society = 14, --公会
|
||||
Resource = 15, --资源
|
||||
BigWar = 16, --大作战
|
||||
Extra = 17, --番外-普通
|
||||
WorldBoss = 18, --世界Boss
|
||||
Expedition = 19, --自走棋
|
||||
FubenBossSingle = 20, --幻痛囚笼
|
||||
ActivityBriefShop = 21, --活动商店
|
||||
Extra2 = 22, --番外-隐藏
|
||||
MaintainerAction = 23, --大富翁
|
||||
RpgTower = 24, --RPG玩法
|
||||
ActivityDrawCard = 25, --活动抽卡
|
||||
TRPGMainLine = 26, --终焉福音-主线跑团活动
|
||||
NewCharActivity = 27, -- 新角色教学活动
|
||||
FubenActivityTrial = 28, -- 试玩关
|
||||
ShiTu = 29, -- 师徒系统
|
||||
Nier = 30, -- 尼尔玩法
|
||||
Pokemon = 31, -- 口袋战双
|
||||
Pursuit = 32, -- 追击玩法
|
||||
StrongHold = 33, --超级据点
|
||||
Simulate = 34, -- 模拟战
|
||||
Partner = 35, --伙伴系统
|
||||
MoeWar = 38, --萌战
|
||||
PetCard = 39, --宠物抽卡
|
||||
PetTrial = 40, --新宠物活动
|
||||
PokerGuessing = 41, --翻牌小游戏
|
||||
Hack = 42, --骇客
|
||||
RpgMaker = 43, --端午活动
|
||||
Reform = 44, --改造玩法
|
||||
CoupleCombat = 45, --双人同行
|
||||
SuperTower = 46, --超级爬塔
|
||||
SummerSeries = 47, --夏活系列关
|
||||
KillZone = 48, --杀戮无双
|
||||
}
|
||||
|
||||
local InitSkipIdToRedPointConditionsDic = function()
|
||||
SkipIdToRedPointConditionsDic[11739] = {XRedPointConditions.Types.CONDITION_GUARD_CAMP_RED}
|
||||
SkipIdToRedPointConditionsDic[80011] = {XRedPointConditions.Types.CONDITION_WHITEVALENTINE2021_ENTRYRED}
|
||||
SkipIdToRedPointConditionsDic[11753] = {XRedPointConditions.Types.CONDITION_FINGERGUESSING_TASK}
|
||||
SkipIdToRedPointConditionsDic[11757] = {XRedPointConditions.Types.CONDITION_MOVIE_ASSEMBLE_01}
|
||||
SkipIdToRedPointConditionsDic[11759] = {XRedPointConditions.Types.CONDITION_MINSWEEPING_RED}
|
||||
SkipIdToRedPointConditionsDic[11761] = {XRedPointConditions.Types.CONDITION_FASHION_STORY_HAVE_STAGE}
|
||||
SkipIdToRedPointConditionsDic[81103] = {XRedPointConditions.Types.CONDITION_RPG_MAKER_GAME_RED}
|
||||
SkipIdToRedPointConditionsDic[1400008] = {XRedPointConditions.Types.CONDITION_SLOTMACHINE_RED}
|
||||
SkipIdToRedPointConditionsDic[1400009] = {XRedPointConditions.Types.CONDITION_SLOTMACHINE_REDL}
|
||||
end
|
||||
|
||||
function XActivityBriefConfigs.Init()
|
||||
ActivityTemplates = XTableManager.ReadByIntKey(TABLE_ACTIVITY_PATH, XTable.XTableBriefActivity, "Id")
|
||||
ActivityShopTemplates= XTableManager.ReadByIntKey(TABLE_ACTIVITY_SHOP, XTable.XTableActivityBriefShop, "Id")
|
||||
ActivityTaskTemplates= XTableManager.ReadByIntKey(TABLE_ACTIVITY_TASK, XTable.XTableActivityBriefTask, "Id")
|
||||
ActivityGroupTemplates = XTableManager.ReadByIntKey(TABLE_ACTIVITY_GROUP_PATH, XTable.XTableActivityBriefGroup, "Id")
|
||||
SpecialActivityTemplates = XTableManager.ReadByIntKey(TABLE_ACTIVITY_SPECIAL, XTable.XTableSpecialActivity, "Id")
|
||||
ActivityStoryTemplates = XTableManager.ReadByIntKey(TABLE_ACTIVITY_Story, XTable.XTableActivityBriefStory, "Id")
|
||||
|
||||
InitSkipIdToRedPointConditionsDic()
|
||||
end
|
||||
|
||||
function XActivityBriefConfigs.GetActivityBeginTime()
|
||||
local config = XActivityBriefConfigs.GetActivityConfig()
|
||||
return XFunctionManager.GetStartTimeByTimeId(config.TimeId)
|
||||
end
|
||||
|
||||
function XActivityBriefConfigs.GetActivityEndTime()
|
||||
local config = XActivityBriefConfigs.GetActivityConfig()
|
||||
return XFunctionManager.GetEndTimeByTimeId(config.TimeId)
|
||||
end
|
||||
|
||||
function XActivityBriefConfigs.GetActivityConfig()
|
||||
return ActivityTemplates[1]
|
||||
end
|
||||
|
||||
function XActivityBriefConfigs.GetActivityModels()
|
||||
local config = XActivityBriefConfigs.GetActivityConfig()
|
||||
return config.UIModelId or {}
|
||||
end
|
||||
|
||||
function XActivityBriefConfigs.GetSpinePath(index)
|
||||
local config = XActivityBriefConfigs.GetActivityConfig()
|
||||
return config.SpinePath[index] or ""
|
||||
end
|
||||
|
||||
function XActivityBriefConfigs.GetActivityEntrySkipId(id)
|
||||
return SpecialActivityTemplates[id].SkipId
|
||||
end
|
||||
|
||||
function XActivityBriefConfigs.GetAllActivityEntryConfig()
|
||||
return SpecialActivityTemplates
|
||||
end
|
||||
|
||||
function XActivityBriefConfigs.GetActivityShopByInfoId(id)
|
||||
return ActivityShopTemplates[id]
|
||||
end
|
||||
|
||||
function XActivityBriefConfigs.GetActivityTaskByInfoId(id)
|
||||
return ActivityTaskTemplates[id]
|
||||
end
|
||||
|
||||
function XActivityBriefConfigs.GetActivityGroupConfig(groupId)
|
||||
local groupConfig = ActivityGroupTemplates[groupId]
|
||||
if not groupConfig then
|
||||
XLog.ErrorTableDataNotFound("XActivityBriefConfigs.GetActivityGroupConfig",
|
||||
"根据groupId获取的配置表项", TABLE_ACTIVITY_GROUP_PATH, "groupId", tostring(groupId))
|
||||
return
|
||||
end
|
||||
return groupConfig
|
||||
end
|
||||
|
||||
function XActivityBriefConfigs.TestOpenActivity()
|
||||
local newTemplate = {}
|
||||
for id, template in pairs(ActivityTemplates) do
|
||||
if id ~= 1 then
|
||||
newTemplate[id] = template
|
||||
else
|
||||
newTemplate[id] = XTool.Clone(template)
|
||||
newTemplate[id].TimeId = 24
|
||||
end
|
||||
end
|
||||
ActivityTemplates = newTemplate
|
||||
end
|
||||
|
||||
function XActivityBriefConfigs.GetTableActivityPath()
|
||||
return TABLE_ACTIVITY_PATH
|
||||
end
|
||||
|
||||
function XActivityBriefConfigs.GetActivityStoryConfig()
|
||||
return ActivityStoryTemplates
|
||||
end
|
||||
|
||||
function XActivityBriefConfigs.GetActivityBriefGroup(id)
|
||||
local config = XActivityBriefConfigs.GetActivityGroupConfig(id)
|
||||
return config.Name
|
||||
end
|
||||
|
||||
function XActivityBriefConfigs.GetRedPointConditionsBySkipId(skipId)
|
||||
return skipId and SkipIdToRedPointConditionsDic[skipId]
|
||||
end
|
108
Resources/Scripts/XConfig/XActivityConfigs.lua
Normal file
108
Resources/Scripts/XConfig/XActivityConfigs.lua
Normal file
|
@ -0,0 +1,108 @@
|
|||
local ParseToTimestamp = XTime.ParseToTimestamp
|
||||
local TimestampToGameDateTimeString = XTime.TimestampToGameDateTimeString
|
||||
|
||||
local TABLE_ACTIVITY_PATH = "Client/Activity/Activity.tab"
|
||||
local TABLE_ACTIVITY_GROUP_PATH = "Client/Activity/ActivityGroup.tab"
|
||||
local TABLE_ACTIVITY_LINK_PATH = "Client/Activity/ActivityLink.tab"
|
||||
|
||||
local ActivityTemplates = {}
|
||||
local ActivityGroupTemplates = {}
|
||||
local ActivityLinkTemplates = {}
|
||||
|
||||
XActivityConfigs = XActivityConfigs or {}
|
||||
|
||||
--活动类型
|
||||
XActivityConfigs.ActivityType = {
|
||||
Task = 1, --任务
|
||||
Shop = 2, --商店
|
||||
Skip = 3, --跳转
|
||||
SendInvitation = 4, --邀请他人
|
||||
AcceptInvitation = 5, -- 接受邀请
|
||||
JigsawPuzzle = 6, -- 拼图
|
||||
Link = 7, --活动外链类型
|
||||
ConsumeReward = 8, -- 累消奖励
|
||||
ScratchTicket = 9, -- 普通刮刮乐
|
||||
ScratchTicketGolden = 10, -- 黄金刮刮乐
|
||||
}
|
||||
|
||||
-- 活动背景类型
|
||||
XActivityConfigs.ActivityBgType = {
|
||||
Image = 1, -- 普通图片
|
||||
Spine = 2, -- Spine动画
|
||||
}
|
||||
|
||||
-- 任务面板跳转类型
|
||||
XActivityConfigs.TaskPanelSkipType = {
|
||||
CanZhangHeMing_Qu = 20031, -- 拼图游戏(曲版本预热)
|
||||
CanZhangHeMing_LuNa = 20036, -- 拼图游戏(露娜预热)
|
||||
ChrismasTree_Dress = 20048, -- 装点圣诞树小游戏
|
||||
Couplet_Game = 20064, -- 春节对联游戏
|
||||
CanZhangHeMing_SP = 20070, -- 拼图游戏(SP角色预热)
|
||||
InvertCard_Game = 20076, -- 翻牌小游戏
|
||||
}
|
||||
|
||||
function XActivityConfigs.Init()
|
||||
ActivityTemplates = XTableManager.ReadByIntKey(TABLE_ACTIVITY_PATH, XTable.XTableActivity, "Id")
|
||||
ActivityGroupTemplates = XTableManager.ReadByIntKey(TABLE_ACTIVITY_GROUP_PATH, XTable.XTableActivityGroup, "Id")
|
||||
ActivityLinkTemplates = XTableManager.ReadByIntKey(TABLE_ACTIVITY_LINK_PATH, XTable.XTableActivityLink, "Id")
|
||||
end
|
||||
|
||||
function XActivityConfigs.GetActivityTemplates()
|
||||
return ActivityTemplates
|
||||
end
|
||||
|
||||
function XActivityConfigs.GetActivityGroupTemplates()
|
||||
return ActivityGroupTemplates
|
||||
end
|
||||
|
||||
function XActivityConfigs.GetActivityTemplate(activityId)
|
||||
return ActivityTemplates[activityId]
|
||||
end
|
||||
|
||||
|
||||
function XActivityConfigs.GetActivityTimeStr(activityId, beginTime, endTime)
|
||||
local activityCfg = XActivityConfigs.GetActivityTemplate(activityId)
|
||||
local format = "yyyy-MM-dd HH:mm"
|
||||
local beginTimeStr = ""
|
||||
local endTimeStr = ""
|
||||
if not string.IsNilOrEmpty(activityCfg.ShowBeginTime) then
|
||||
beginTimeStr = activityCfg.ShowBeginTime
|
||||
else
|
||||
if beginTime and beginTime ~= 0 then
|
||||
beginTimeStr = TimestampToGameDateTimeString(beginTime, format)
|
||||
else
|
||||
beginTimeStr = TimestampToGameDateTimeString(XFunctionManager.GetStartTimeByTimeId(activityCfg.TimeId), format)
|
||||
end
|
||||
end
|
||||
|
||||
if not string.IsNilOrEmpty(activityCfg.ShowEndTime) then
|
||||
endTimeStr = activityCfg.ShowEndTime
|
||||
else
|
||||
if endTime and endTime ~= 0 then
|
||||
endTimeStr = TimestampToGameDateTimeString(endTime, format)
|
||||
else
|
||||
endTimeStr = TimestampToGameDateTimeString(XFunctionManager.GetEndTimeByTimeId(activityCfg.TimeId), format)
|
||||
end
|
||||
end
|
||||
|
||||
if not string.IsNilOrEmpty(beginTimeStr) and not string.IsNilOrEmpty(endTimeStr) then
|
||||
return beginTimeStr .. "~" .. endTimeStr
|
||||
else
|
||||
if not string.IsNilOrEmpty(beginTimeStr) then
|
||||
return beginTimeStr
|
||||
elseif not string.IsNilOrEmpty(endTimeStr) then
|
||||
return endTimeStr
|
||||
else
|
||||
return ""
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XActivityConfigs.GetActivityLinkCfg(id)
|
||||
return ActivityLinkTemplates[id]
|
||||
end
|
||||
|
||||
function XActivityConfigs.GetActivityLinkTemplate()
|
||||
return ActivityLinkTemplates
|
||||
end
|
||||
|
9
Resources/Scripts/XConfig/XAppConfigs.lua
Normal file
9
Resources/Scripts/XConfig/XAppConfigs.lua
Normal file
|
@ -0,0 +1,9 @@
|
|||
--
|
||||
-- Author: wujie
|
||||
-- Note: app lua层配置相关
|
||||
|
||||
XAppConfigs = XAppConfigs or {}
|
||||
|
||||
XAppConfigs.PackageName = {
|
||||
Hero = "com.kurogame.haru.hero",
|
||||
}
|
794
Resources/Scripts/XConfig/XArchiveConfigs.lua
Normal file
794
Resources/Scripts/XConfig/XArchiveConfigs.lua
Normal file
|
@ -0,0 +1,794 @@
|
|||
--
|
||||
-- Author: zhangshuang、wujie
|
||||
-- Note: 图鉴配置相关
|
||||
|
||||
XArchiveConfigs = XArchiveConfigs or {}
|
||||
|
||||
|
||||
XArchiveConfigs.SubSystemType = {
|
||||
Monster = 1,
|
||||
Weapon = 2,
|
||||
Awareness = 3,
|
||||
Story = 4,
|
||||
CG = 5,
|
||||
NPC = 6,
|
||||
Email = 7,
|
||||
Partner = 8,
|
||||
}
|
||||
|
||||
XArchiveConfigs.SettingType = {
|
||||
All = 0,
|
||||
Setting = 1,
|
||||
Story = 2,
|
||||
}
|
||||
|
||||
-- 设定位置
|
||||
XArchiveConfigs.SettingIndex ={
|
||||
First = 1,
|
||||
}
|
||||
|
||||
XArchiveConfigs.WeaponCamera = {
|
||||
Main = 1, -- 武器详情默认是主镜头
|
||||
Setting = 2,
|
||||
}
|
||||
|
||||
XArchiveConfigs.MonsterType = {
|
||||
Pawn = 1,
|
||||
Elite = 2,
|
||||
Boss = 3,
|
||||
}
|
||||
|
||||
XArchiveConfigs.MonsterInfoType = {
|
||||
Short = 1,
|
||||
Long = 2,
|
||||
}
|
||||
|
||||
XArchiveConfigs.MonsterSettingType = {
|
||||
Setting = 1,
|
||||
Story = 2,
|
||||
}
|
||||
|
||||
XArchiveConfigs.MonsterDetailType = {
|
||||
Synopsis = 1,
|
||||
Info = 2,
|
||||
Setting = 3,
|
||||
Skill = 4,
|
||||
Zoom = 5,
|
||||
ScreenShot = 6,
|
||||
}
|
||||
|
||||
XArchiveConfigs.EquipStarType = {
|
||||
All = 0,
|
||||
One = 1,
|
||||
Two = 2,
|
||||
Three = 3,
|
||||
Four = 4,
|
||||
Five = 5,
|
||||
Six = 6,
|
||||
}
|
||||
|
||||
XArchiveConfigs.EquipLikeType = {
|
||||
NULL = 0,
|
||||
Dis = 1,
|
||||
Like = 2,
|
||||
}
|
||||
|
||||
XArchiveConfigs.StarToQualityName = {
|
||||
[XArchiveConfigs.EquipStarType.All] = CS.XTextManager.GetText("ArchiveAwarenessFliterAll"),
|
||||
[XArchiveConfigs.EquipStarType.Two] = CS.XTextManager.GetText("ArchiveAwarenessFliterTwoStar"),
|
||||
[XArchiveConfigs.EquipStarType.Three] = CS.XTextManager.GetText("ArchiveAwarenessFliterThreeStar"),
|
||||
[XArchiveConfigs.EquipStarType.Four] = CS.XTextManager.GetText("ArchiveAwarenessFliterFourStar"),
|
||||
[XArchiveConfigs.EquipStarType.Five] = CS.XTextManager.GetText("ArchiveAwarenessFliterFiveStar"),
|
||||
[XArchiveConfigs.EquipStarType.Six] = CS.XTextManager.GetText("ArchiveAwarenessFliterSixStar"),
|
||||
}
|
||||
|
||||
XArchiveConfigs.EvaluateOnForAll = CS.XGame.ClientConfig:GetInt("ArchiveEvaluateOnForAll")
|
||||
|
||||
XArchiveConfigs.OnForAllState = {
|
||||
Off = 0,
|
||||
On = 1,
|
||||
}
|
||||
|
||||
XArchiveConfigs.NpcGridState = {
|
||||
Open = 0,
|
||||
Close = 1,
|
||||
}
|
||||
|
||||
XArchiveConfigs.EmailType = {
|
||||
Email = 1,
|
||||
Communication = 2,
|
||||
}
|
||||
|
||||
XArchiveConfigs.PartnerSettingType = {
|
||||
Setting = 1,
|
||||
Story = 2,
|
||||
}
|
||||
|
||||
XArchiveConfigs.MonsterDetailUiType = {
|
||||
Default = 1, -- 默认图鉴打开
|
||||
Show = 2, -- 只负责显示,屏蔽玩家操作
|
||||
}
|
||||
|
||||
local TABLE_TAG = "Share/Archive/Tag.tab"
|
||||
local TABLE_ARCHIVE = "Share/Archive/Archive.tab"
|
||||
local TABLE_MONSTER = "Share/Archive/Monster.tab"
|
||||
local TABLE_MONSTERINFO = "Share/Archive/MonsterInfo.tab"
|
||||
local TABLE_MONSTERSKILL = "Share/Archive/MonsterSkill.tab"
|
||||
local TABLE_MONSTERSETTING = "Share/Archive/MonsterSetting.tab"
|
||||
local TABLE_SAMENPCGROUP = "Share/Archive/SameNpcGroup.tab"
|
||||
local TABLE_MONSTERNPCDATA = "Client/Archive/MonsterNpcData.tab"
|
||||
local TABLE_AWARENESSSETTING = "Share/Archive/AwarenessSetting.tab"
|
||||
local TABLE_WEAPONSETTING = "Share/Archive/WeaponSetting.tab"
|
||||
local TABLE_MONSTERMODEL_TRANS = "Client/Archive/MonsterModelTrans.tab"
|
||||
local TABLE_MONSTER_EFFECT = "Client/Archive/MonsterEffect.tab"
|
||||
|
||||
local TABLE_STORYGROUP = "Share/Archive/StoryGroup.tab"
|
||||
local TABLE_STORYCHAPTER = "Share/Archive/StoryChapter.tab"
|
||||
local TABLE_STORYDETAIL = "Share/Archive/StoryDetail.tab"
|
||||
|
||||
local TABLE_STORYNPC = "Share/Archive/StoryNpc.tab"
|
||||
local TABLE_STORYNPCSETTING = "Share/Archive/StoryNpcSetting.tab"
|
||||
|
||||
local TABLE_CGDETAIL = "Share/Archive/CGDetail.tab"
|
||||
local TABLE_CGGROUP = "Share/Archive/CGGroup.tab"
|
||||
|
||||
local TABLE_ARCHIVEMAIL = "Share/Archive/ArchiveMail.tab"
|
||||
local TABLE_COMMUNICATION = "Share/Archive/Communication.tab"
|
||||
local TABLE_EVENTDATEGROUP = "Share/Archive/EventDateGroup.tab"
|
||||
|
||||
local TABLE_ARCHIVE_WEAPON_GROUP_PATH = "Client/Archive/ArchiveWeaponGroup.tab"
|
||||
local TABLE_ARCHIVE_AWARENESS_GROUP_PATH = "Client/Archive/ArchiveAwarenessGroup.tab"
|
||||
local TABLE_ARCHIVE_AWARENESS_GROUPTYPE_PATH = "Client/Archive/ArchiveAwarenessGroupType.tab"
|
||||
|
||||
local TABLE_ARCHIVE_PARTNER_SETTING = "Share/Archive/PartnerSetting.tab"
|
||||
local TABLE_ARCHIVE_PARTNER = "Client/Archive/ArchivePartner.tab"
|
||||
local TABLE_ARCHIVE_PARTNER_GROUP = "Client/Archive/ArchivePartnerGroup.tab"
|
||||
|
||||
local tableSort = table.sort
|
||||
|
||||
local Tags = {}
|
||||
local Archives = {}
|
||||
local Monsters = {}
|
||||
local MonsterInfos = {}
|
||||
local MonsterSkills = {}
|
||||
local MonsterSettings = {}
|
||||
local AwarenessSettings = {}
|
||||
local WeaponSettings = {}
|
||||
local SameNpcGroups = {}
|
||||
local MonsterNpcDatas = {}
|
||||
local MonsterModelTrans = {}
|
||||
local MonsterEffects = {}
|
||||
|
||||
local StoryGroups = {}
|
||||
local StoryChapters = {}
|
||||
local StoryDetails = {}
|
||||
|
||||
local StoryNpc = {}
|
||||
local StoryNpcSetting = {}
|
||||
|
||||
local CGGroups = {}
|
||||
local CGDetails = {}
|
||||
|
||||
local ArchiveMails = {}
|
||||
local ArchiveCommunications = {}
|
||||
local EventDateGroups = {}
|
||||
|
||||
local WeaponGroup = {}
|
||||
local WeaponTemplateIdToSettingListDic = {}
|
||||
local ShowedWeaponTypeList = {}
|
||||
local WeaponTypeToIdsDic = {}
|
||||
local WeaponSumCollectNum = 0
|
||||
|
||||
local AwarenessGroup = {}
|
||||
local AwarenessGroupType = {}
|
||||
local AwarenessShowedStatusDic = {}
|
||||
local AwarenessSumCollectNum = 0
|
||||
local AwarenessTypeToGroupDatasDic = {}
|
||||
local AwarenessSuitIdToSettingListDic = {}
|
||||
|
||||
local ArchiveTagAllList = {}
|
||||
local ArchiveStoryGroupAllList = {}
|
||||
local ArchiveSameNpc = {}
|
||||
local ArchiveMonsterTransDic = {}
|
||||
local ArchiveMonsterEffectDatasDic = {}
|
||||
|
||||
local ArchivePartnerSettings = {}
|
||||
local ArchivePartners = {}
|
||||
local ArchivePartnerGroups = {}
|
||||
|
||||
function XArchiveConfigs.Init()
|
||||
Tags = XTableManager.ReadByIntKey(TABLE_TAG, XTable.XTableArchiveTag, "Id")
|
||||
Archives = XTableManager.ReadByIntKey(TABLE_ARCHIVE, XTable.XTableArchive, "Id")
|
||||
Monsters = XTableManager.ReadByIntKey(TABLE_MONSTER, XTable.XTableArchiveMonster, "Id")
|
||||
MonsterInfos = XTableManager.ReadByIntKey(TABLE_MONSTERINFO, XTable.XTableArchiveMonsterInfo, "Id")
|
||||
MonsterSkills = XTableManager.ReadByIntKey(TABLE_MONSTERSKILL, XTable.XTableArchiveMonsterSkill, "Id")
|
||||
MonsterSettings = XTableManager.ReadByIntKey(TABLE_MONSTERSETTING, XTable.XTableMonsterSetting, "Id")
|
||||
SameNpcGroups = XTableManager.ReadByIntKey(TABLE_SAMENPCGROUP, XTable.XTableSameNpcGroup, "Id")
|
||||
|
||||
MonsterNpcDatas = XTableManager.ReadByIntKey(TABLE_MONSTERNPCDATA, XTable.XTableMonsterNpcData, "Id")
|
||||
MonsterModelTrans = XTableManager.ReadByIntKey(TABLE_MONSTERMODEL_TRANS, XTable.XTableMonsterModelTrans, "Id")
|
||||
MonsterEffects = XTableManager.ReadByIntKey(TABLE_MONSTER_EFFECT, XTable.XTableMonsterEffect, "Id")
|
||||
|
||||
StoryGroups = XTableManager.ReadByIntKey(TABLE_STORYGROUP, XTable.XTableArchiveStoryGroup, "Id")
|
||||
StoryChapters = XTableManager.ReadByIntKey(TABLE_STORYCHAPTER, XTable.XTableArchiveStoryChapter, "Id")
|
||||
StoryDetails = XTableManager.ReadByIntKey(TABLE_STORYDETAIL, XTable.XTableArchiveStoryDetail, "Id")
|
||||
|
||||
StoryNpc = XTableManager.ReadByIntKey(TABLE_STORYNPC, XTable.XTableArchiveStoryNpc, "Id")
|
||||
StoryNpcSetting = XTableManager.ReadByIntKey(TABLE_STORYNPCSETTING, XTable.XTableArchiveStoryNpcSetting, "Id")
|
||||
|
||||
CGGroups = XTableManager.ReadByIntKey(TABLE_CGGROUP, XTable.XTableArchiveCGGroup, "Id")
|
||||
CGDetails = XTableManager.ReadByIntKey(TABLE_CGDETAIL, XTable.XTableArchiveCGDetail, "Id")
|
||||
|
||||
ArchiveMails = XTableManager.ReadByIntKey(TABLE_ARCHIVEMAIL, XTable.XTableArchiveMail, "Id")
|
||||
ArchiveCommunications = XTableManager.ReadByIntKey(TABLE_COMMUNICATION, XTable.XTableArchiveCommunication, "Id")
|
||||
EventDateGroups = XTableManager.ReadByIntKey(TABLE_EVENTDATEGROUP, XTable.XTableArchiveEventDateGroup, "Id")
|
||||
|
||||
WeaponGroup = XTableManager.ReadByIntKey(TABLE_ARCHIVE_WEAPON_GROUP_PATH, XTable.XTableArchiveWeaponGroup, "Id")
|
||||
WeaponSettings = XTableManager.ReadByIntKey(TABLE_WEAPONSETTING, XTable.XTableWeaponSetting, "Id")
|
||||
|
||||
AwarenessGroup = XTableManager.ReadByIntKey(TABLE_ARCHIVE_AWARENESS_GROUP_PATH, XTable.XTableArchiveAwarenessGroup, "Id")
|
||||
AwarenessGroupType = XTableManager.ReadByIntKey(TABLE_ARCHIVE_AWARENESS_GROUPTYPE_PATH, XTable.XTableArchiveAwarenessGroupType, "GroupId")
|
||||
AwarenessSettings = XTableManager.ReadByIntKey(TABLE_AWARENESSSETTING, XTable.XTableAwarenessSetting, "Id")
|
||||
|
||||
ArchivePartnerSettings = XTableManager.ReadByIntKey(TABLE_ARCHIVE_PARTNER_SETTING, XTable.XTablePartnerSetting, "Id")
|
||||
ArchivePartners = XTableManager.ReadByIntKey(TABLE_ARCHIVE_PARTNER, XTable.XTableArchivePartner, "Id")
|
||||
ArchivePartnerGroups = XTableManager.ReadByIntKey(TABLE_ARCHIVE_PARTNER_GROUP, XTable.XTableArchivePartnerGroup, "Id")
|
||||
|
||||
XArchiveConfigs.SetArchiveTagAllList()
|
||||
XArchiveConfigs.SetArchiveSameNpc()
|
||||
XArchiveConfigs.SetArchiveMonsterModelTransDic()
|
||||
XArchiveConfigs.SetArchiveMonsterEffectsDic()
|
||||
|
||||
XArchiveConfigs.CreateShowedWeaponTypeList()
|
||||
XArchiveConfigs.CreateWeaponTemplateIdToSettingDataListDic()
|
||||
XArchiveConfigs.SetWeaponSumCollectNum()
|
||||
XArchiveConfigs.CreateWeaponTypeToIdsDic()
|
||||
|
||||
XArchiveConfigs.CreateAwarenessShowedStatusDic()
|
||||
XArchiveConfigs.SetAwarenessSumCollectNum()
|
||||
XArchiveConfigs.CreateAwarenessTypeToGroupDatasDic()
|
||||
XArchiveConfigs.CreateAwarenessSiteToBgPathDic()
|
||||
XArchiveConfigs.CreateAwarenessSuitIdToSettingDataListDic()
|
||||
|
||||
XArchiveConfigs.SetArchiveStoryGroupAllList()
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveConfigById(Id)
|
||||
return Archives[Id]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveConfigs()
|
||||
return Archives
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveMonsterConfigs()
|
||||
return Monsters
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveMonsterConfigById(id)
|
||||
return Monsters[id]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveMonsterInfoConfigs()
|
||||
return MonsterInfos
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveMonsterInfoConfigById(id)
|
||||
return MonsterInfos[id]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveMonsterSkillConfigs()
|
||||
return MonsterSkills
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveMonsterSkillConfigById(id)
|
||||
return MonsterSkills[id]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveMonsterSettingConfigs()
|
||||
return MonsterSettings
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveMonsterSettingConfigById(id)
|
||||
return MonsterSettings[id]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveTagCfgById(id)
|
||||
return Tags[id]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveTagAllList()
|
||||
return ArchiveTagAllList
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetSameNpcId(npcId)
|
||||
return ArchiveSameNpc[npcId] and ArchiveSameNpc[npcId] or npcId
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetMonsterTransDataGroup(npcId)
|
||||
return ArchiveMonsterTransDic[npcId]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetMonsterTransDatas(npcId,npcState)
|
||||
local archiveMonsterTransData = ArchiveMonsterTransDic[npcId]
|
||||
return archiveMonsterTransData and archiveMonsterTransData[npcState]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetMonsterEffectDatas(npcId,npcState)
|
||||
local archiveMonsterEffectData = ArchiveMonsterEffectDatasDic[npcId]
|
||||
return archiveMonsterEffectData and archiveMonsterEffectData[npcState]
|
||||
end
|
||||
|
||||
-------------------------------------------------------------
|
||||
|
||||
function XArchiveConfigs.GetAwarenessSettingById(Id)
|
||||
return AwarenessSettings[Id]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetAwarenessSettings()
|
||||
return AwarenessSettings
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetAwarenessGroupTypes()
|
||||
local list = {}
|
||||
for _,type in pairs(AwarenessGroupType) do
|
||||
table.insert(list,type)
|
||||
end
|
||||
return XArchiveConfigs.SortByOrder(list)
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetWeaponSettingById(Id)
|
||||
return WeaponSettings[Id]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetWeaponSettings()
|
||||
return WeaponSettings
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetMonsterNpcDataById(Id)
|
||||
if not MonsterNpcDatas[Id] then
|
||||
XLog.ErrorTableDataNotFound("XArchiveConfigs.GetMonsterNpcDataById", "配置表项", TABLE_MONSTERNPCDATA, "Id", tostring(Id))
|
||||
end
|
||||
return MonsterNpcDatas[Id] or {}
|
||||
end
|
||||
|
||||
|
||||
-----------------------------怪物图鉴----------------------------
|
||||
function XArchiveConfigs.SetArchiveTagAllList()
|
||||
ArchiveTagAllList = {}
|
||||
for _, tag in pairs(Tags or {}) do
|
||||
for _,groupId in pairs(tag.TagGroupId) do
|
||||
if not ArchiveTagAllList[groupId] then
|
||||
ArchiveTagAllList[groupId] = {}
|
||||
end
|
||||
if tag.IsNotShow == 0 then
|
||||
table.insert(ArchiveTagAllList[groupId], tag)
|
||||
end
|
||||
end
|
||||
end
|
||||
for _,v in pairs(ArchiveTagAllList)do
|
||||
XArchiveConfigs.SortByOrder(v)
|
||||
end
|
||||
end
|
||||
|
||||
function XArchiveConfigs.SetArchiveSameNpc()
|
||||
for _,group in pairs(SameNpcGroups or {}) do
|
||||
for _,npcId in pairs(group.NpcId) do
|
||||
ArchiveSameNpc[npcId] = group.Id
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XArchiveConfigs.SetArchiveMonsterModelTransDic()
|
||||
for _,transData in pairs(MonsterModelTrans or {}) do
|
||||
local archiveMonsterTransData = ArchiveMonsterTransDic[transData.NpcId]
|
||||
if not archiveMonsterTransData then
|
||||
archiveMonsterTransData = {}
|
||||
ArchiveMonsterTransDic[transData.NpcId] = archiveMonsterTransData
|
||||
end
|
||||
|
||||
archiveMonsterTransData[transData.NpcState] = transData
|
||||
end
|
||||
end
|
||||
|
||||
function XArchiveConfigs.SetArchiveMonsterEffectsDic()
|
||||
for _,transData in pairs(MonsterEffects or {}) do
|
||||
local archiveMonsterEffectData = ArchiveMonsterEffectDatasDic[transData.NpcId]
|
||||
if not archiveMonsterEffectData then
|
||||
archiveMonsterEffectData = {}
|
||||
ArchiveMonsterEffectDatasDic[transData.NpcId] = archiveMonsterEffectData
|
||||
end
|
||||
|
||||
local archiveMonsterEffect = archiveMonsterEffectData[transData.NpcState]
|
||||
if not archiveMonsterEffect then
|
||||
archiveMonsterEffect = {}
|
||||
archiveMonsterEffectData[transData.NpcState] = archiveMonsterEffect
|
||||
end
|
||||
archiveMonsterEffect[transData.EffectNodeName] = transData.EffectPath
|
||||
end
|
||||
end
|
||||
|
||||
function XArchiveConfigs.SortByOrder(list)
|
||||
tableSort(list, function(a, b)
|
||||
if a.Order then
|
||||
if a.Order == b.Order then
|
||||
return a.Id > b.Id
|
||||
else
|
||||
return a.Order < b.Order
|
||||
end
|
||||
else
|
||||
if a:GetOrder() == b:GetOrder() then
|
||||
return a:GetId() > b:GetId()
|
||||
else
|
||||
return a:GetOrder() < b:GetOrder()
|
||||
end
|
||||
end
|
||||
end)
|
||||
return list
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetMonsterRealName(id)
|
||||
local name = XArchiveConfigs.GetMonsterNpcDataById(id).Name
|
||||
if not name then
|
||||
XLog.ErrorTableDataNotFound("XArchiveConfigs.GetMonsterRealName", "配置表项中的Name字段", TABLE_MONSTERNPCDATA, "id", tostring(id))
|
||||
return ""
|
||||
end
|
||||
return name
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetMonsterModel(id)
|
||||
return XArchiveConfigs.GetMonsterNpcDataById(id).ModelId
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetCountUnitChange(count)
|
||||
local newCount = count
|
||||
if count >= 1000 then
|
||||
newCount = count / 1000
|
||||
else
|
||||
return newCount
|
||||
end
|
||||
local a,b = math.modf(newCount)
|
||||
return b >= 0.05 and string.format("%.1fk", newCount) or string.format("%dk", a)
|
||||
end
|
||||
|
||||
-- 武器、意识相关------------->>>
|
||||
function XArchiveConfigs.CreateShowedWeaponTypeList()
|
||||
for _, group in pairs(WeaponGroup) do
|
||||
table.insert(ShowedWeaponTypeList, group.Id)
|
||||
end
|
||||
|
||||
table.sort(ShowedWeaponTypeList,function(aType,bType)
|
||||
local aData = XArchiveConfigs.GetWeaponGroupByType(aType)
|
||||
local bData = XArchiveConfigs.GetWeaponGroupByType(bType)
|
||||
return aData.Order < bData.Order
|
||||
end)
|
||||
end
|
||||
|
||||
function XArchiveConfigs.CreateWeaponTemplateIdToSettingDataListDic()
|
||||
local equipId
|
||||
for _, settingData in pairs(WeaponSettings) do
|
||||
equipId = settingData.EquipId
|
||||
WeaponTemplateIdToSettingListDic[equipId] = WeaponTemplateIdToSettingListDic[equipId] or {}
|
||||
table.insert(WeaponTemplateIdToSettingListDic[equipId], settingData)
|
||||
end
|
||||
end
|
||||
|
||||
function XArchiveConfigs.SetWeaponSumCollectNum()
|
||||
for _, _ in pairs(WeaponTemplateIdToSettingListDic) do
|
||||
WeaponSumCollectNum = WeaponSumCollectNum + 1
|
||||
end
|
||||
end
|
||||
|
||||
function XArchiveConfigs.CreateWeaponTypeToIdsDic()
|
||||
for type, _ in pairs(WeaponGroup) do
|
||||
WeaponTypeToIdsDic[type] = {}
|
||||
end
|
||||
|
||||
local templateData
|
||||
local equipType
|
||||
for templateId, _ in pairs(WeaponTemplateIdToSettingListDic) do
|
||||
templateData = XEquipConfig.GetEquipCfg(templateId)
|
||||
equipType = templateData.Type
|
||||
if WeaponTypeToIdsDic[equipType] then
|
||||
table.insert(WeaponTypeToIdsDic[equipType], templateId)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XArchiveConfigs.CreateAwarenessShowedStatusDic()
|
||||
local templateIdList
|
||||
for suitId, _ in pairs(AwarenessGroup) do
|
||||
templateIdList = XEquipConfig.GetEquipTemplateIdsBySuitId(suitId)
|
||||
for _, templateId in ipairs(templateIdList) do
|
||||
AwarenessShowedStatusDic[templateId] = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XArchiveConfigs.SetAwarenessSumCollectNum()
|
||||
for _, _ in pairs(AwarenessShowedStatusDic) do
|
||||
AwarenessSumCollectNum = AwarenessSumCollectNum + 1
|
||||
end
|
||||
end
|
||||
|
||||
function XArchiveConfigs.CreateAwarenessTypeToGroupDatasDic()
|
||||
for _, type in pairs(AwarenessGroupType) do
|
||||
AwarenessTypeToGroupDatasDic[type.GroupId] = {}
|
||||
end
|
||||
|
||||
local groupType
|
||||
for _, groupData in pairs(AwarenessGroup) do
|
||||
groupType = groupData.Type
|
||||
if AwarenessTypeToGroupDatasDic[groupType] then
|
||||
table.insert(AwarenessTypeToGroupDatasDic[groupType], groupData)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XArchiveConfigs.CreateAwarenessSiteToBgPathDic()
|
||||
XArchiveConfigs.SiteToBgPath = {
|
||||
[XEquipConfig.EquipSite.Awareness.One] = CS.XGame.ClientConfig:GetString("ArchiveAwarenessSiteBgPath1"),
|
||||
[XEquipConfig.EquipSite.Awareness.Two] = CS.XGame.ClientConfig:GetString("ArchiveAwarenessSiteBgPath2"),
|
||||
[XEquipConfig.EquipSite.Awareness.Three] = CS.XGame.ClientConfig:GetString("ArchiveAwarenessSiteBgPath3"),
|
||||
[XEquipConfig.EquipSite.Awareness.Four] = CS.XGame.ClientConfig:GetString("ArchiveAwarenessSiteBgPath4"),
|
||||
[XEquipConfig.EquipSite.Awareness.Five] = CS.XGame.ClientConfig:GetString("ArchiveAwarenessSiteBgPath5"),
|
||||
[XEquipConfig.EquipSite.Awareness.Six] = CS.XGame.ClientConfig:GetString("ArchiveAwarenessSiteBgPath6"),
|
||||
}
|
||||
end
|
||||
|
||||
function XArchiveConfigs.CreateAwarenessSuitIdToSettingDataListDic()
|
||||
local suitId
|
||||
for _, settingData in pairs(AwarenessSettings) do
|
||||
suitId = settingData.SuitId
|
||||
AwarenessSuitIdToSettingListDic[suitId] = AwarenessSuitIdToSettingListDic[suitId] or {}
|
||||
table.insert(AwarenessSuitIdToSettingListDic[suitId], settingData)
|
||||
end
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetWeaponSumCollectNum()
|
||||
return WeaponSumCollectNum
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetWeaponGroup()
|
||||
return WeaponGroup
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetWeaponGroupByType(type)
|
||||
return WeaponGroup[type]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetWeaponGroupName(type)
|
||||
return WeaponGroup[type].GroupName
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetShowedWeaponTypeList()
|
||||
return ShowedWeaponTypeList
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetWeaponTypeToIdsDic()
|
||||
return WeaponTypeToIdsDic
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetWeaponTemplateIdListByType(type)
|
||||
return WeaponTypeToIdsDic[type]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetAwarenessSumCollectNum()
|
||||
return AwarenessSumCollectNum
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetAwarenessGroup()
|
||||
return AwarenessGroup
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetAwarenessTypeToGroupDatasDic()
|
||||
return AwarenessTypeToGroupDatasDic
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetAwarenessShowedStatusDic()
|
||||
return AwarenessShowedStatusDic
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetAwarenessSuitInfoTemplate(suitId)
|
||||
return AwarenessGroup[suitId]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetAwarenessSuitInfoGetType(suitId)
|
||||
return AwarenessGroup[suitId].Type
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetAwarenessSuitInfoIconPath(suitId)
|
||||
return AwarenessGroup[suitId].IconPath
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetWeaponTemplateIdToSettingListDic()
|
||||
return WeaponTemplateIdToSettingListDic
|
||||
end
|
||||
|
||||
-- 武器设定或故事
|
||||
function XArchiveConfigs.GetWeaponSettingList(id, settingType)
|
||||
local list = {}
|
||||
local settingDataList = WeaponTemplateIdToSettingListDic[id]
|
||||
if settingDataList then
|
||||
if not settingType or settingType == XArchiveConfigs.SettingType.All then
|
||||
list = settingDataList
|
||||
else
|
||||
for _, settingData in pairs(settingDataList) do
|
||||
if settingData.Type == settingType then
|
||||
table.insert(list, settingData)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
return XArchiveConfigs.SortByOrder(list)
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetWeaponSettingType(id)
|
||||
return WeaponSettings[id].Type
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetWeaponTemplateIdBySettingId(id)
|
||||
return WeaponSettings[id].EquipId
|
||||
end
|
||||
|
||||
-- 意识设定或故事
|
||||
function XArchiveConfigs.GetAwarenessSettingList(id, settingType)
|
||||
local list = {}
|
||||
local settingDataList = AwarenessSuitIdToSettingListDic[id]
|
||||
if settingDataList then
|
||||
if not settingType or settingType == XArchiveConfigs.SettingType.All then
|
||||
list = settingDataList
|
||||
else
|
||||
for _, settingData in pairs(settingDataList) do
|
||||
if settingData.Type == settingType then
|
||||
table.insert(list, settingData)
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
XLog.ErrorTableDataNotFound("XArchiveConfigs.GetAwarenessSettingList", "配置表项", TABLE_AWARENESSSETTING, "id", tostring(id))
|
||||
end
|
||||
return XArchiveConfigs.SortByOrder(list)
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetAwarenessSettingType(id)
|
||||
return AwarenessSettings[id].Type
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetAwarenessSuitIdBySettingId(id)
|
||||
return AwarenessSettings[id].SuitId
|
||||
end
|
||||
|
||||
-- 武器、意识相关-------------<<<
|
||||
|
||||
-- 剧情相关------------->>>
|
||||
|
||||
function XArchiveConfigs.GetArchiveStoryGroupAllList()
|
||||
return ArchiveStoryGroupAllList
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveStoryChapterConfigs()
|
||||
return StoryChapters
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveStoryChapterConfigById(id)
|
||||
return StoryChapters[id]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveStoryDetailConfigs()
|
||||
return StoryDetails
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveStoryDetailConfigById(id)
|
||||
return StoryDetails[id]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.SetArchiveStoryGroupAllList()
|
||||
for _, group in pairs(StoryGroups or {}) do
|
||||
table.insert(ArchiveStoryGroupAllList, group)
|
||||
end
|
||||
XArchiveConfigs.SortByOrder(ArchiveStoryGroupAllList)
|
||||
end
|
||||
-- 剧情相关-------------<<<
|
||||
|
||||
-- NPC相关------------->>>
|
||||
|
||||
function XArchiveConfigs.GetArchiveStoryNpcConfigs()
|
||||
return StoryNpc
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveStoryNpcConfigById(id)
|
||||
return StoryNpc[id]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveStoryNpcSettingConfigs()
|
||||
return StoryNpcSetting
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveStoryNpcSettingConfigById(id)
|
||||
return StoryNpcSetting[id]
|
||||
end
|
||||
-- NPC相关-------------<<<
|
||||
|
||||
-- CG相关------------->>>
|
||||
|
||||
function XArchiveConfigs.GetArchiveCGGroupConfigs()
|
||||
return CGGroups
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveCGDetailConfigs()
|
||||
return CGDetails
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveCGDetailConfigById(id)
|
||||
return CGDetails[id]
|
||||
end
|
||||
|
||||
-- CG相关-------------<<<
|
||||
|
||||
-- 邮件通讯相关------------->>>
|
||||
|
||||
function XArchiveConfigs.GetArchiveMailsConfigs()
|
||||
return ArchiveMails
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveMailsConfigById(id)
|
||||
return ArchiveMails[id]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveCommunicationsConfigs()
|
||||
return ArchiveCommunications
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetArchiveCommunicationsConfigById(id)
|
||||
return ArchiveCommunications[id]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetEventDateGroupsConfigs()
|
||||
return EventDateGroups
|
||||
end
|
||||
|
||||
-- 邮件通讯相关-------------<<<
|
||||
-- 伙伴相关------------->>>
|
||||
|
||||
function XArchiveConfigs.GetPartnerSettingConfigs()
|
||||
return ArchivePartnerSettings
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetPartnerSettingConfigById(id)
|
||||
if not ArchivePartnerSettings[id] then
|
||||
XLog.Error("Id is not exist in ".. TABLE_ARCHIVE_PARTNER_SETTING.." id = " .. id)
|
||||
return
|
||||
end
|
||||
return ArchivePartnerSettings[id]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetPartnerConfigs()
|
||||
return ArchivePartners
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetPartnerConfigById(id)
|
||||
if not ArchivePartners[id] then
|
||||
XLog.Error("Id is not exist in ".. TABLE_ARCHIVE_PARTNER.." id = " .. id)
|
||||
return
|
||||
end
|
||||
return ArchivePartners[id]
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetPartnerGroupConfigs()
|
||||
return ArchivePartnerGroups
|
||||
end
|
||||
|
||||
function XArchiveConfigs.GetPartnerGroupConfigById(id)
|
||||
if not ArchivePartnerGroups[id] then
|
||||
XLog.Error("Id is not exist in ".. TABLE_ARCHIVE_PARTNER_GROUP.." id = " .. id)
|
||||
return
|
||||
end
|
||||
return ArchivePartnerGroups[id]
|
||||
end
|
||||
|
||||
-- 伙伴相关-------------<<<
|
||||
function XArchiveConfigs.GetWeaponSettingPath()
|
||||
return TABLE_WEAPONSETTING
|
||||
end
|
318
Resources/Scripts/XConfig/XArenaConfigs.lua
Normal file
318
Resources/Scripts/XConfig/XArenaConfigs.lua
Normal file
|
@ -0,0 +1,318 @@
|
|||
---
|
||||
--- 竞技副本配置表
|
||||
---
|
||||
XArenaConfigs = XArenaConfigs or {}
|
||||
|
||||
--战区贡献道具的id
|
||||
XArenaConfigs.CONTRIBUTESCORE_ID = 54
|
||||
|
||||
XArenaActivityStatus = {
|
||||
--game服和竞技服等待数据的时候用
|
||||
Loading = -1,
|
||||
--默认状态
|
||||
Default = 0,
|
||||
--休息状态
|
||||
Rest = 1,
|
||||
--战斗状态
|
||||
Fight = 2,
|
||||
--结束
|
||||
Over = 3,
|
||||
}
|
||||
|
||||
--个人排行区域
|
||||
XArenaPlayerRankRegion = {
|
||||
UpRegion = 1, --晋级区
|
||||
KeepRegion = 2, --保级区
|
||||
DownRegion = 3, --降级区
|
||||
}
|
||||
|
||||
--竞技副本通关评级
|
||||
XArenaAppraiseType = {
|
||||
S = 1,
|
||||
A = 2,
|
||||
B = 3,
|
||||
C = 4,
|
||||
D = 5,
|
||||
}
|
||||
|
||||
XArenaConfigs.ArenaTimerName = "FubenArenaActivityTimer"
|
||||
XArenaConfigs.SHOP_ID = CS.XGame.ClientConfig:GetInt("AreanShopId")
|
||||
|
||||
local TABLE_ARENA_STAGE = "Client/Fuben/Arena/ArenaStage.tab"
|
||||
local TABLE_ARENA_LEVEL = "Share/Fuben/Arena/ArenaLevel.tab"
|
||||
local TABLE_CHALLENGE_AREA = "Share/Fuben/Arena/ChallengeArea.tab"
|
||||
local TABLE_AREA_STAGE = "Share/Fuben/Arena/AreaStage.tab"
|
||||
local TABLE_TEAM_RANK_REWARD = "Share/Fuben/Arena/TeamRankReward.tab"
|
||||
local TABLE_MARK = "Share/Fuben/Arena/Mark.tab"
|
||||
|
||||
local ArenaRankBottomCount --竞技排行基数
|
||||
local ArenaClientStageTemplate --競技客户端关卡表
|
||||
local ArenaLevelTemplate --竞技段位表
|
||||
local ChallengeAreaTemplate --挑战区域表
|
||||
local AreaStageTemplate --战区关卡配置表
|
||||
local TeamRankRewardTemplate --队伍排行奖励表
|
||||
local MarkTemplate --结算分数表
|
||||
|
||||
local MaxArenaLevel = 0 --最大竞技段位
|
||||
local PlayerLevelRangeToChallengeIds --玩家等级段索引挑战配置列表
|
||||
local MaxArenaStageCountPerArea = 0 --竞技战区最大关卡数
|
||||
|
||||
--私有方法定义
|
||||
local InitChallengeAreaCfg
|
||||
local InitArenaLevelCfg
|
||||
local InitAreaStageTemplate
|
||||
|
||||
function XArenaConfigs.Init()
|
||||
ArenaRankBottomCount = CS.XGame.Config:GetInt("ArenaTeamRankShow")
|
||||
ArenaClientStageTemplate = XTableManager.ReadByIntKey(TABLE_ARENA_STAGE, XTable.XTableArenaStage, "StageId")
|
||||
ArenaLevelTemplate = XTableManager.ReadByIntKey(TABLE_ARENA_LEVEL, XTable.XTableArenaLevel, "Id")
|
||||
ChallengeAreaTemplate = XTableManager.ReadByIntKey(TABLE_CHALLENGE_AREA, XTable.XTableChallengeArea, "ChallengeId")
|
||||
AreaStageTemplate = XTableManager.ReadByIntKey(TABLE_AREA_STAGE, XTable.XTableAreaStage, "Id")
|
||||
TeamRankRewardTemplate = XTableManager.ReadByIntKey(TABLE_TEAM_RANK_REWARD, XTable.XTableTeamRankReward, "Id")
|
||||
MarkTemplate = XTableManager.ReadByIntKey(TABLE_MARK, XTable.XTableMark, "MarkId")
|
||||
|
||||
InitArenaLevelCfg()
|
||||
InitChallengeAreaCfg()
|
||||
InitAreaStageTemplate()
|
||||
end
|
||||
|
||||
InitArenaLevelCfg = function()
|
||||
for _, cfg in pairs(ArenaLevelTemplate) do
|
||||
if MaxArenaLevel < cfg.Id then
|
||||
MaxArenaLevel = cfg.Id
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
InitChallengeAreaCfg = function()
|
||||
PlayerLevelRangeToChallengeIds = {}
|
||||
|
||||
local tempMap = {}
|
||||
local tempTypeId = 0
|
||||
|
||||
for id, cfg in pairs(ChallengeAreaTemplate) do
|
||||
local typeId = tempMap[cfg.MinLv]
|
||||
if not typeId then
|
||||
typeId = tempTypeId + 1
|
||||
tempMap[cfg.MinLv] = typeId
|
||||
tempTypeId = typeId
|
||||
end
|
||||
|
||||
local map = PlayerLevelRangeToChallengeIds[typeId]
|
||||
if not map then
|
||||
map = {}
|
||||
PlayerLevelRangeToChallengeIds[typeId] = map
|
||||
end
|
||||
|
||||
map[id] = cfg
|
||||
end
|
||||
end
|
||||
|
||||
InitAreaStageTemplate = function()
|
||||
for _, cfg in pairs(AreaStageTemplate) do
|
||||
if MaxArenaStageCountPerArea < #cfg.StageId then
|
||||
MaxArenaStageCountPerArea = #cfg.StageId
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local GetChallengeCfgMapById = function(challengeId)
|
||||
for _, map in ipairs(PlayerLevelRangeToChallengeIds) do
|
||||
local cfg = map[challengeId]
|
||||
if cfg then
|
||||
return map
|
||||
end
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
local SortChallenge = function(a, b)
|
||||
return a.ArenaLv < b.ArenaLv
|
||||
end
|
||||
|
||||
local SorTeamRankReward = function(a, b)
|
||||
return a.MinRank < b.MinRank
|
||||
end
|
||||
|
||||
-- 获取个人排行区文字
|
||||
function XArenaConfigs.GetRankRegionText(rankRegion)
|
||||
if rankRegion == XArenaPlayerRankRegion.UpRegion then
|
||||
return CS.XTextManager.GetText("ArenaActivityUpRegion")
|
||||
elseif rankRegion == XArenaPlayerRankRegion.DownRegion then
|
||||
return CS.XTextManager.GetText("ArenaActivityDownRegion")
|
||||
else
|
||||
return CS.XTextManager.GetText("ArenaActivityKeepRegion")
|
||||
end
|
||||
end
|
||||
|
||||
-- 获取个人排行区文字带颜色
|
||||
function XArenaConfigs.GetRankRegionColorText(rankRegion)
|
||||
if rankRegion == XArenaPlayerRankRegion.UpRegion then
|
||||
return CS.XTextManager.GetText("ArenaActivityUpRegionColor")
|
||||
elseif rankRegion == XArenaPlayerRankRegion.DownRegion then
|
||||
return CS.XTextManager.GetText("ArenaActivityDownRegionColor")
|
||||
else
|
||||
return CS.XTextManager.GetText("ArenaActivityKeepRegionColor")
|
||||
end
|
||||
end
|
||||
|
||||
-- 获取个人排行区描述
|
||||
function XArenaConfigs.GetRankRegionDescText(rankRegion, challengeCfg)
|
||||
if rankRegion == XArenaPlayerRankRegion.UpRegion then
|
||||
return CS.XTextManager.GetText("ArenaActivityUpRegionDesc", 1, challengeCfg.DanUpRank)
|
||||
elseif rankRegion == XArenaPlayerRankRegion.DownRegion then
|
||||
return CS.XTextManager.GetText("ArenaActivityDownRegionDesc", challengeCfg.DanKeepRank + 1, challengeCfg.DanDownRank)
|
||||
else
|
||||
return CS.XTextManager.GetText("ArenaActivityKeepRegionDesc", challengeCfg.DanUpRank + 1, challengeCfg.DanKeepRank)
|
||||
end
|
||||
end
|
||||
|
||||
-- 获取个人排行不升段位描述
|
||||
function XArenaConfigs.GetRankNotRegionDescText(rankRegion)
|
||||
if rankRegion == XArenaPlayerRankRegion.UpRegion then
|
||||
return CS.XTextManager.GetText("ArenaActivityNotUpRegionDesc")
|
||||
elseif rankRegion == XArenaPlayerRankRegion.DownRegion then
|
||||
return CS.XTextManager.GetText("ArenaActivityNotDownRegionDesc")
|
||||
else
|
||||
return CS.XTextManager.GetText("ArenaActivityNotKeepRegionDesc")
|
||||
end
|
||||
end
|
||||
|
||||
-- 获取个人排行区奖励id
|
||||
function XArenaConfigs.GetRankRegionRewardId(rankRegion, challengeCfg)
|
||||
if rankRegion == XArenaPlayerRankRegion.UpRegion then
|
||||
return challengeCfg.UpRewardId
|
||||
elseif rankRegion == XArenaPlayerRankRegion.DownRegion then
|
||||
return challengeCfg.DownRewardId
|
||||
else
|
||||
return challengeCfg.KeepRewardId
|
||||
end
|
||||
end
|
||||
|
||||
-- 是否是最大竞技段位
|
||||
function XArenaConfigs.IsMaxArenaLevel(level)
|
||||
return level >= MaxArenaLevel
|
||||
end
|
||||
|
||||
-- 获取竞技副本评级文字
|
||||
function XArenaConfigs.GetArenaFightAppraiseText(appraiseType)
|
||||
if appraiseType == XArenaAppraiseType.S then
|
||||
return "S"
|
||||
elseif appraiseType == XArenaAppraiseType.A then
|
||||
return "A"
|
||||
elseif appraiseType == XArenaAppraiseType.B then
|
||||
return "B"
|
||||
elseif appraiseType == XArenaAppraiseType.C then
|
||||
return "C"
|
||||
elseif appraiseType == XArenaAppraiseType.D then
|
||||
return "D"
|
||||
end
|
||||
end
|
||||
|
||||
-- 获取竞技队伍排行榜统计基数
|
||||
function XArenaConfigs.GetArenaRankBottomCount()
|
||||
return ArenaRankBottomCount
|
||||
end
|
||||
|
||||
-- 获取竞技段位配置表
|
||||
function XArenaConfigs.GetArenaLevelCfgByLevel(level)
|
||||
return ArenaLevelTemplate[level]
|
||||
end
|
||||
|
||||
-- 获取竞技段位配置表
|
||||
function XArenaConfigs.GetArenaStageConfig(stageId)
|
||||
local t = ArenaClientStageTemplate[stageId]
|
||||
if not t then
|
||||
XLog.ErrorTableDataNotFound("XArenaConfigs.GetArenaStageConfig", "根据stageId获取的配置表项", TABLE_ARENA_STAGE, "stageId", tostring(stageId))
|
||||
return nil
|
||||
end
|
||||
return t
|
||||
end
|
||||
|
||||
-- 获取竞技挑战配置表
|
||||
function XArenaConfigs.GetChallengeArenaCfgById(challengeId)
|
||||
return ChallengeAreaTemplate[challengeId]
|
||||
end
|
||||
|
||||
-- 获取竞技挑战配置列表
|
||||
function XArenaConfigs.GetChallengeCfgListById(challengeId)
|
||||
local list = {}
|
||||
|
||||
local map = GetChallengeCfgMapById(challengeId)
|
||||
if map then
|
||||
for _, cfg in pairs(map) do
|
||||
table.insert(list, cfg)
|
||||
end
|
||||
table.sort(list, SortChallenge)
|
||||
end
|
||||
return list
|
||||
end
|
||||
|
||||
-- 获取竞技挑战最高等级
|
||||
function XArenaConfigs.GetChallengeMaxArenaLevel(challengeId)
|
||||
local maxArenalLevel = 0
|
||||
|
||||
local map = GetChallengeCfgMapById(challengeId)
|
||||
if map then
|
||||
for _, cfg in pairs(map) do
|
||||
if cfg.ArenaLv > maxArenalLevel then
|
||||
maxArenalLevel = cfg.ArenaLv
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return maxArenalLevel
|
||||
end
|
||||
|
||||
function XArenaConfigs.GetArenaStageCfg()
|
||||
return AreaStageTemplate
|
||||
end
|
||||
|
||||
-- 获取竞技区域关卡配置
|
||||
function XArenaConfigs.GetArenaAreaStageCfgByAreaId(areaId)
|
||||
return AreaStageTemplate[areaId]
|
||||
end
|
||||
|
||||
-- 获取竞技战区最大关卡数量
|
||||
function XArenaConfigs.GetTheMaxStageCountOfArenaArea()
|
||||
return MaxArenaStageCountPerArea
|
||||
end
|
||||
|
||||
-- 获取竞技队伍排行奖励配置列表
|
||||
function XArenaConfigs.GetTeamRankRewardCfgList(challengeId)
|
||||
local list = {}
|
||||
for _, cfg in pairs(TeamRankRewardTemplate) do
|
||||
if cfg.ChallengeId == challengeId then
|
||||
table.insert(list, cfg)
|
||||
end
|
||||
end
|
||||
|
||||
if #list > 2 then
|
||||
table.sort(list, SorTeamRankReward)
|
||||
end
|
||||
|
||||
return list
|
||||
end
|
||||
|
||||
-- 获取竞技队伍排行奖励配置
|
||||
function XArenaConfigs.GetTeamRankRewardCfgById(id)
|
||||
return TeamRankRewardTemplate[id]
|
||||
end
|
||||
|
||||
-- 获取竞技结算分数配置
|
||||
function XArenaConfigs.GetMarkCfgById(id)
|
||||
return MarkTemplate[id]
|
||||
end
|
||||
|
||||
-- 获取最大分数
|
||||
function XArenaConfigs.GetMarkMaxPointById(id)
|
||||
return MarkTemplate[id].MaxPoint
|
||||
end
|
||||
|
||||
-- 获取竞技章节名字以及副本名字
|
||||
function XArenaConfigs.GetChapterAndStageName(areaId, stageId)
|
||||
local chapterName = AreaStageTemplate[areaId].Name
|
||||
local stageName = XDataCenter.FubenManager.GetStageCfg(stageId).Name
|
||||
return chapterName, stageName
|
||||
end
|
176
Resources/Scripts/XConfig/XArenaOnlineConfigs.lua
Normal file
176
Resources/Scripts/XConfig/XArenaOnlineConfigs.lua
Normal file
|
@ -0,0 +1,176 @@
|
|||
XArenaOnlineConfigs = XArenaOnlineConfigs or {}
|
||||
|
||||
local TABLE_ARENAONLINE_CHAPTER = "Share/Fuben/ArenaOnline/ArenaOnlineChapter.tab"
|
||||
local TABLE_ARENAONLINE_SECTION = "Share/Fuben/ArenaOnline/ArenaOnlineSection.tab"
|
||||
local TABLE_ARENAONLINE_STAGEGROUP = "Share/Fuben/ArenaOnline/ArenaOnlineStageGroup.tab"
|
||||
local TABLE_ARENAONLINE_STAGE = "Share/Fuben/ArenaOnline/ArenaOnlineStage.tab"
|
||||
local TABLE_ARENAONLINE_ACTIVEBUFF = "Share/Fuben/ArenaOnline/ArenaOnlineActiveBuff.tab"
|
||||
--local TABLE_NPC_AFFIX = "Client/Fight/Npc/NpcAffix.tab"
|
||||
local ArenaOnlineChapterCfg = {}
|
||||
local ArenaOnlineSectionCfg = {}
|
||||
local ArenaOnlineStageGroupCfg = {}
|
||||
local ArenaOnlineStageCfg = {}
|
||||
local ArenaOnlineActiveBuffCfg = {}
|
||||
--local NpcAffixCfg = {}
|
||||
XArenaOnlineConfigs.MAX_NAILI = CS.XGame.Config:GetInt("ArenaOnlineCharMaxEndurance")
|
||||
XArenaOnlineConfigs.SHOW_TIME = CS.XGame.ClientConfig:GetInt("ArenaOnlineInviteShowTime")
|
||||
XArenaOnlineConfigs.DEFAULT_CHAPTERID = CS.XGame.ClientConfig:GetInt("ArenaOnlineDefualtChapterId")
|
||||
|
||||
XArenaOnlineConfigs.MaskArenOnlineUIName = {
|
||||
UiPurchase = "UiPurchase",
|
||||
UiDraw = "UiDraw",
|
||||
UiMultiplayerRoom = "UiMultiplayerRoom",
|
||||
UiMultiplayerInviteFriend = "UiMultiplayerInviteFriend",
|
||||
UiSocial = "UiSocial",
|
||||
UiRoomCharacter = "UiRoomCharacter",
|
||||
UiDrawMain = "UiNewDrawMain",
|
||||
UiLoading = "UiLoading"
|
||||
}
|
||||
function XArenaOnlineConfigs.Init()
|
||||
ArenaOnlineChapterCfg = XTableManager.ReadByIntKey(TABLE_ARENAONLINE_CHAPTER, XTable.XTableArenaOnlineChapter, "Id")
|
||||
ArenaOnlineSectionCfg = XTableManager.ReadByIntKey(TABLE_ARENAONLINE_SECTION, XTable.XTableArenaOnlineSection, "Id")
|
||||
ArenaOnlineStageGroupCfg = XTableManager.ReadByIntKey(TABLE_ARENAONLINE_STAGEGROUP, XTable.XTableArenaOnlineStageGroup, "Id")
|
||||
ArenaOnlineStageCfg = XTableManager.ReadByIntKey(TABLE_ARENAONLINE_STAGE, XTable.XTableArenaOnlineStage, "Id")
|
||||
ArenaOnlineActiveBuffCfg = XTableManager.ReadByIntKey(TABLE_ARENAONLINE_ACTIVEBUFF, XTable.XTableArenaOnlineActiveBuff, "Id")
|
||||
--NpcAffixCfg = XTableManager.ReadByIntKey(TABLE_NPC_AFFIX, XTable.XTableNpcAffix, "Id")
|
||||
XArenaOnlineConfigs.ArenaOnlineShowTime = CS.XGame.ClientConfig:GetInt("ArenaOnlineShowTime") or -1
|
||||
end
|
||||
|
||||
function XArenaOnlineConfigs.GetChapters()
|
||||
return ArenaOnlineChapterCfg
|
||||
end
|
||||
|
||||
function XArenaOnlineConfigs.GetStages()
|
||||
return ArenaOnlineStageCfg
|
||||
end
|
||||
|
||||
function XArenaOnlineConfigs.GetChapterById(chapterId)
|
||||
local chapter = ArenaOnlineChapterCfg[chapterId]
|
||||
|
||||
if not chapter then
|
||||
XLog.ErrorTableDataNotFound("XArenaOnlineConfigs.GetChapterById", "chapter", TABLE_ARENAONLINE_CHAPTER, "chapterId", tostring(chapterId))
|
||||
return nil
|
||||
end
|
||||
|
||||
return chapter
|
||||
end
|
||||
|
||||
function XArenaOnlineConfigs.GetSectionById(sectionId)
|
||||
local section = ArenaOnlineSectionCfg[sectionId]
|
||||
|
||||
if not section then
|
||||
XLog.ErrorTableDataNotFound("XArenaOnlineConfigs.GetSectionById", "section", TABLE_ARENAONLINE_SECTION, "sectionId", tostring(sectionId))
|
||||
return nil
|
||||
end
|
||||
|
||||
return section
|
||||
end
|
||||
|
||||
function XArenaOnlineConfigs.GetStageById(stageId)
|
||||
local stage = ArenaOnlineStageCfg[stageId]
|
||||
|
||||
if not stage then
|
||||
XLog.ErrorTableDataNotFound("XArenaOnlineConfigs.GetStageById", "stage", TABLE_ARENAONLINE_STAGE, "stageId", tostring(stageId))
|
||||
return nil
|
||||
end
|
||||
|
||||
return stage
|
||||
end
|
||||
|
||||
function XArenaOnlineConfigs.GetStageGroupById(groupId)
|
||||
local group = ArenaOnlineStageGroupCfg[groupId]
|
||||
|
||||
if not group then
|
||||
XLog.ErrorTableDataNotFound("XArenaOnlineConfigs.GetStageGroupById", "group", TABLE_ARENAONLINE_STAGEGROUP, "groupId", tostring(groupId))
|
||||
return nil
|
||||
end
|
||||
|
||||
return group
|
||||
end
|
||||
|
||||
function XArenaOnlineConfigs.GetStageGroupPrefabPathById(groupId)
|
||||
local cfg = XArenaOnlineConfigs.GetStageGroupById(groupId)
|
||||
if cfg then
|
||||
return cfg.PrefabPath
|
||||
end
|
||||
end
|
||||
|
||||
function XArenaOnlineConfigs.GetStageGroupIconById(groupId)
|
||||
local cfg = XArenaOnlineConfigs.GetStageGroupById(groupId)
|
||||
if cfg then
|
||||
return cfg.Icon
|
||||
end
|
||||
end
|
||||
function XArenaOnlineConfigs.GetActiveBuffById(activeBuffId)
|
||||
local buff = ArenaOnlineActiveBuffCfg[activeBuffId]
|
||||
|
||||
if not buff then
|
||||
XLog.ErrorTableDataNotFound("XArenaOnlineConfigs.GetActiveBuffById",
|
||||
"buff", TABLE_ARENAONLINE_ACTIVEBUFF, "activeBuffId", tostring(activeBuffId))
|
||||
return nil
|
||||
end
|
||||
|
||||
return buff
|
||||
end
|
||||
|
||||
function XArenaOnlineConfigs.GetNpcAffixById(buffId)
|
||||
local npcAffix = nil
|
||||
|
||||
if CS.XNpcManager.AffixTable:ContainsKey(buffId) then
|
||||
npcAffix = CS.XNpcManager.AffixTable[buffId]
|
||||
end
|
||||
|
||||
if not npcAffix then
|
||||
XLog.ErrorTableDataNotFound("XArenaOnlineConfigs.GetNpcAffixById", "npcAffix", TABLE_NPC_AFFIX, "buffId", tostring(buffId))
|
||||
return nil
|
||||
end
|
||||
|
||||
return npcAffix
|
||||
end
|
||||
|
||||
|
||||
function XArenaOnlineConfigs.GetChaprerNameByChapterId(chapterId)
|
||||
local chapter = XArenaOnlineConfigs.GetChapterById(chapterId)
|
||||
return chapter.Name
|
||||
end
|
||||
|
||||
function XArenaOnlineConfigs.GetStageSortByStageId(stageId)
|
||||
local stage = XArenaOnlineConfigs.GetStageById(stageId)
|
||||
return stage.Sort
|
||||
end
|
||||
|
||||
function XArenaOnlineConfigs.GetStageEnduranceCostByStageId(stageId)
|
||||
local stage = XArenaOnlineConfigs.GetStageById(stageId)
|
||||
return stage.EnduranceCost
|
||||
end
|
||||
|
||||
function XArenaOnlineConfigs.GetStageActiveBuffIdByStageId(stageId)
|
||||
local stage = XArenaOnlineConfigs.GetStageById(stageId)
|
||||
return stage.ActiveBuffId
|
||||
end
|
||||
|
||||
function XArenaOnlineConfigs.GetStageBottomCountByStageId(stageId)
|
||||
local stage = XArenaOnlineConfigs.GetStageById(stageId)
|
||||
return stage.BottomCount
|
||||
end
|
||||
|
||||
function XArenaOnlineConfigs.GetStageDropKeyByStageId(stageId)
|
||||
local stage = XArenaOnlineConfigs.GetStageById(stageId)
|
||||
return tostring(stage.ShowDropId) .. tostring(stage.ShowBottomId)
|
||||
end
|
||||
|
||||
|
||||
function XArenaOnlineConfigs.GetStageGroupRequireStar(groupId)
|
||||
local group = XArenaOnlineConfigs.GetStageGroupById(groupId)
|
||||
return group.RequireStar
|
||||
end
|
||||
|
||||
function XArenaOnlineConfigs.GetFirstChapterName()
|
||||
local name = ""
|
||||
for _, v in pairs(ArenaOnlineChapterCfg) do
|
||||
name = v.Name
|
||||
break
|
||||
end
|
||||
|
||||
return name
|
||||
end
|
64
Resources/Scripts/XConfig/XArrangeConfigs.lua
Normal file
64
Resources/Scripts/XConfig/XArrangeConfigs.lua
Normal file
|
@ -0,0 +1,64 @@
|
|||
local QualityBgPath = {
|
||||
CS.XGame.ClientConfig:GetString("CommonBagWhite"),
|
||||
CS.XGame.ClientConfig:GetString("CommonBagGreed"),
|
||||
CS.XGame.ClientConfig:GetString("CommonBagBlue"),
|
||||
CS.XGame.ClientConfig:GetString("CommonBagPurple"),
|
||||
CS.XGame.ClientConfig:GetString("CommonBagGold"),
|
||||
CS.XGame.ClientConfig:GetString("CommonBagRed"),
|
||||
CS.XGame.ClientConfig:GetString("CommonBagRed"),
|
||||
}
|
||||
|
||||
local QualityPath = {
|
||||
CS.XGame.ClientConfig:GetString("QualityIconColor1"),
|
||||
CS.XGame.ClientConfig:GetString("QualityIconColor2"),
|
||||
CS.XGame.ClientConfig:GetString("QualityIconColor3"),
|
||||
CS.XGame.ClientConfig:GetString("QualityIconColor4"),
|
||||
CS.XGame.ClientConfig:GetString("QualityIconColor5"),
|
||||
CS.XGame.ClientConfig:GetString("QualityIconColor6"),
|
||||
CS.XGame.ClientConfig:GetString("QualityIconColor7"),
|
||||
}
|
||||
|
||||
|
||||
XArrangeConfigs = XArrangeConfigs or {}
|
||||
|
||||
XArrangeConfigs.Types = {
|
||||
Error = 0,
|
||||
Item = 1, --道具
|
||||
Character = 2, --成员
|
||||
Weapon = 3, --武器
|
||||
Wafer = 4, --意识
|
||||
Medal = 5,
|
||||
Part = 6,
|
||||
Fashion = 7, --时装
|
||||
BaseEquip = 8, --基地装备
|
||||
Furniture = 9, --家具
|
||||
HeadPortrait = 10, --头像
|
||||
DormCharacter = 11, --宿舍构造体
|
||||
ChatEmoji = 12, --聊天表情
|
||||
WeaponFashion = 13, --武器投影
|
||||
Collection = 14, --收藏
|
||||
Background = 15, --场景
|
||||
Pokemon = 16, --口袋战双
|
||||
Partner = 17,--伙伴
|
||||
Nameplate = 18, --铭牌
|
||||
}
|
||||
|
||||
function XArrangeConfigs.GetType(id)
|
||||
return math.floor(id / 1000000) + 1
|
||||
end
|
||||
|
||||
function XArrangeConfigs.GeQualityBgPath(quality)
|
||||
if not quality then
|
||||
XLog.Error("XArrangeConfigs.GeQualityBgPath 函数错误: 参数quality不能为空")
|
||||
return
|
||||
end
|
||||
return QualityBgPath[quality]
|
||||
end
|
||||
|
||||
function XArrangeConfigs.GeQualityPath(quality)
|
||||
if not quality then
|
||||
XLog.Error("XArrangeConfigs.GeQualityBgPath 函数错误: 参数quality不能为空")
|
||||
return
|
||||
end
|
||||
return QualityPath[quality]
|
||||
end
|
12
Resources/Scripts/XConfig/XAssistConfig.lua
Normal file
12
Resources/Scripts/XConfig/XAssistConfig.lua
Normal file
|
@ -0,0 +1,12 @@
|
|||
XAssistConfig = XAssistConfig or {}
|
||||
|
||||
local AssistRuleTemplate = {}
|
||||
|
||||
local TABLE_ASSISTRULE = "Share/Fuben/Assist/AssistRule.tab";
|
||||
|
||||
function XAssistConfig.Init()
|
||||
AssistRuleTemplate = XTableManager.ReadByIntKey(TABLE_ASSISTRULE, XTable.XTableAssistRule, "Id")
|
||||
end
|
||||
function XAssistConfig.GetAssistRuleTemplate(id)
|
||||
return AssistRuleTemplate[id]
|
||||
end
|
79
Resources/Scripts/XConfig/XAttribConfigs.lua
Normal file
79
Resources/Scripts/XConfig/XAttribConfigs.lua
Normal file
|
@ -0,0 +1,79 @@
|
|||
XAttribConfigs = XAttribConfigs or {}
|
||||
|
||||
local TABLE_ATTRIB_DESC_PATH = "Share/Attrib/AttribDesc.tab"
|
||||
local TABLE_ATTRIB_ABILITY_PATH = "Share/Attrib/AttribAbility.tab"
|
||||
local TABLE_ATTRIB_PATH = "Share/Attrib/Attrib"
|
||||
local TABLE_ATTRIB_PROMOTED_PATH = "Share/Attrib/AttribPromoted"
|
||||
local TABLE_ATTRIB_GROW_RATE_PATH = "Share/Attrib/AttribGrowRate"
|
||||
local TABLE_ATTRIB_POOL_PATH = "Share/Attrib/AttribPool/"
|
||||
local TABLE_ATTRIB_REVISE_PATH = "Share/Attrib/AttribRevise/"
|
||||
local TABLE_NPC_PATH = "Share/Fight/Npc/Npc/Npc.tab"
|
||||
|
||||
local AttribAbilityTemplate = {}
|
||||
local AttribTemplates = {}
|
||||
local AttribPromotedTemplates = {}
|
||||
local AttribGrowRateTemplates = {}
|
||||
local AttribReviseTemplates = {}
|
||||
local AttribGroupTemplates = {}
|
||||
local AttribGroupPoolIdDic = {} --共鸣属性池字典
|
||||
--local NpcTemplates = {}
|
||||
--属性名字配置表
|
||||
local AttribDescTemplates = {}
|
||||
|
||||
local tableInsert = table.insert
|
||||
|
||||
function XAttribConfigs.Init()
|
||||
AttribTemplates = XTableManager.ReadByIntKey(TABLE_ATTRIB_PATH, XTable.XTableNpcAttrib, "Id")
|
||||
AttribPromotedTemplates = XTableManager.ReadByIntKey(TABLE_ATTRIB_PROMOTED_PATH, XTable.XTableNpcAttrib, "Id")
|
||||
AttribGrowRateTemplates = XTableManager.ReadByIntKey(TABLE_ATTRIB_GROW_RATE_PATH, XTable.XTableNpcAttrib, "Id")
|
||||
AttribGroupTemplates = XTableManager.ReadByIntKey(TABLE_ATTRIB_POOL_PATH, XTable.XTableAttribGroup, "Id")
|
||||
AttribReviseTemplates = XTableManager.ReadByIntKey(TABLE_ATTRIB_REVISE_PATH, XTable.XTableAttribRevise, "Id")
|
||||
--NpcTemplates = XTableManager.ReadByIntKey(TABLE_NPC_PATH, XTable.XTableNpc, "Id")
|
||||
AttribDescTemplates = XTableManager.ReadByIntKey(TABLE_ATTRIB_DESC_PATH, XTable.XTableAttribDesc, "Index")
|
||||
AttribAbilityTemplate = XTableManager.ReadByStringKey(TABLE_ATTRIB_ABILITY_PATH, XTable.XTableAttribAbility, "Key")
|
||||
|
||||
for _, template in pairs(AttribGroupTemplates) do
|
||||
AttribGroupPoolIdDic[template.PoolId] = AttribGroupPoolIdDic[template.PoolId] or {}
|
||||
tableInsert(AttribGroupPoolIdDic[template.PoolId], template)
|
||||
end
|
||||
end
|
||||
|
||||
function XAttribConfigs.GetAttribTemplates()
|
||||
return AttribTemplates
|
||||
end
|
||||
|
||||
function XAttribConfigs.GetAttribPromotedTemplates()
|
||||
return AttribPromotedTemplates
|
||||
end
|
||||
|
||||
function XAttribConfigs.GetAttribGrowRateTemplates()
|
||||
return AttribGrowRateTemplates
|
||||
end
|
||||
|
||||
function XAttribConfigs.GetAttribReviseTemplates()
|
||||
return AttribReviseTemplates
|
||||
end
|
||||
|
||||
function XAttribConfigs.GetAttribGroupTemplates()
|
||||
return AttribGroupTemplates
|
||||
end
|
||||
|
||||
function XAttribConfigs.GetAttribGroupCfgById(groupId)
|
||||
return AttribGroupTemplates[groupId]
|
||||
end
|
||||
|
||||
function XAttribConfigs.GetNpcTemplates()
|
||||
return NpcTemplates
|
||||
end
|
||||
|
||||
function XAttribConfigs.GetAttribDescTemplates()
|
||||
return AttribDescTemplates
|
||||
end
|
||||
|
||||
function XAttribConfigs.GetAttribAbilityTemplate()
|
||||
return AttribAbilityTemplate
|
||||
end
|
||||
|
||||
function XAttribConfigs.GetAttribGroupTemplateByPoolId(poolId)
|
||||
return AttribGroupPoolIdDic[poolId] or {}
|
||||
end
|
13
Resources/Scripts/XConfig/XAutoFightConfig.lua
Normal file
13
Resources/Scripts/XConfig/XAutoFightConfig.lua
Normal file
|
@ -0,0 +1,13 @@
|
|||
XAutoFightConfig = XAutoFightConfig or {}
|
||||
|
||||
|
||||
local AutoFightCfgs = {}
|
||||
local TABLE_AUTO_FIGHT = "Share/Fuben/AutoFight.tab"
|
||||
|
||||
function XAutoFightConfig.Init()
|
||||
AutoFightCfgs = XTableManager.ReadByIntKey(TABLE_AUTO_FIGHT, XTable.XTableAutoFight, "Id")
|
||||
end
|
||||
|
||||
function XAutoFightConfig.GetCfg(autoFightId)
|
||||
return AutoFightCfgs[autoFightId]
|
||||
end
|
64
Resources/Scripts/XConfig/XAutoWindowConfigs.lua
Normal file
64
Resources/Scripts/XConfig/XAutoWindowConfigs.lua
Normal file
|
@ -0,0 +1,64 @@
|
|||
XAutoWindowConfigs = XAutoWindowConfigs or {}
|
||||
|
||||
XAutoWindowConfigs.AutoType = {
|
||||
EachTime = 1, -- 每次登陆弹出
|
||||
EachDay = 2, -- 每天登陆弹出
|
||||
EachWeek = 3, -- 每周登陆弹出
|
||||
EachMonth = 4, -- 每月登陆弹出
|
||||
Period = 5, -- 周期内弹出
|
||||
EachDayOffset = 6, -- 有时间偏移的每天登录(目前每个服写死,暂不改表)
|
||||
}
|
||||
|
||||
XAutoWindowConfigs.AutoFunctionType = {
|
||||
AutoWindowView = 1, -- 自动弹出公告
|
||||
Sign = 2, -- 签到
|
||||
FirstRecharge = 3, -- 首充
|
||||
Card = 4, -- 月卡
|
||||
Regression = 5, -- 回归活动(特殊处理类型)
|
||||
|
||||
NewYearZhanBu = 500, -- 元旦占卜
|
||||
NewYearDrawActivity = 501, -- 元旦抽奖
|
||||
|
||||
Fireworks = 1001, --烟花活动
|
||||
}
|
||||
|
||||
XAutoWindowConfigs.AutoWindowSkinType = {
|
||||
None = 0, -- 未知
|
||||
BarSkin = 1, -- 条幅
|
||||
BigSkin = 2, -- 大图
|
||||
SpineSkin = 3, -- Spine动画
|
||||
}
|
||||
|
||||
local TABLE_AUTO_WINDOW_VIEW = "Client/AutoWindow/AutoWindowView.tab"
|
||||
local TABLE_AUTO_WINDOW_CONTROLLER = "Client/AutoWindow/AutoWindowController.tab"
|
||||
|
||||
local AutoWindowViewConfig = {} -- 自动弹窗公告配置表
|
||||
local AutoWindowControllerConfig = {} -- 自动弹窗控制配置表
|
||||
|
||||
function XAutoWindowConfigs.Init()
|
||||
AutoWindowViewConfig = XTableManager.ReadByIntKey(TABLE_AUTO_WINDOW_VIEW, XTable.XTableAutoWindowView, "Id")
|
||||
AutoWindowControllerConfig = XTableManager.ReadByIntKey(TABLE_AUTO_WINDOW_CONTROLLER, XTable.XTableAutoWindowController, "Id")
|
||||
end
|
||||
|
||||
function XAutoWindowConfigs.GetAutoWindowConfig(id)
|
||||
local t = AutoWindowViewConfig[id]
|
||||
if not t then
|
||||
XLog.ErrorTableDataNotFound("XAutoWindowConfigs.GetAutoWindowConfig", "配置表项", TABLE_AUTO_WINDOW_VIEW, "id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
|
||||
return t
|
||||
end
|
||||
|
||||
function XAutoWindowConfigs.GetAutoWindowSkinType(id)
|
||||
local t = XAutoWindowConfigs.GetAutoWindowConfig(id)
|
||||
if t then
|
||||
return t.Type
|
||||
end
|
||||
|
||||
return 0
|
||||
end
|
||||
|
||||
function XAutoWindowConfigs.GetAutoWindowControllerConfig()
|
||||
return AutoWindowControllerConfig
|
||||
end
|
20
Resources/Scripts/XConfig/XBaseEquipConfigs.lua
Normal file
20
Resources/Scripts/XConfig/XBaseEquipConfigs.lua
Normal file
|
@ -0,0 +1,20 @@
|
|||
XBaseEquipConfigs =XBaseEquipConfigs or {}
|
||||
|
||||
local TABLE_BASE_EQUIP_PATH = "Share/BaseEquip/BaseEquip.tab"
|
||||
local TABLE_BASE_EQUIP_SCORE = "Client/BaseEquip/BaseEquipScore.tab"
|
||||
|
||||
local BaseEquipTemplates = {} -- 基地装备配置
|
||||
local BaseEquipScoreTemplates = {} -- 基地装备评分计算配置
|
||||
|
||||
function XBaseEquipConfigs.Init()
|
||||
BaseEquipTemplates = XTableManager.ReadByIntKey(TABLE_BASE_EQUIP_PATH, XTable.XTableBaseEquip, "Id")
|
||||
BaseEquipScoreTemplates = XTableManager.ReadByStringKey(TABLE_BASE_EQUIP_SCORE, XTable.XTableBaseEquipScore, "Key")
|
||||
end
|
||||
|
||||
function XBaseEquipConfigs.GetBaseEquipTemplates()
|
||||
return BaseEquipTemplates
|
||||
end
|
||||
|
||||
function XBaseEquipConfigs.GetBaseEquipScoreTemplates()
|
||||
return BaseEquipScoreTemplates
|
||||
end
|
36
Resources/Scripts/XConfig/XBfrtConfigs.lua
Normal file
36
Resources/Scripts/XConfig/XBfrtConfigs.lua
Normal file
|
@ -0,0 +1,36 @@
|
|||
local TABLE_BFRT_CHAPTER_PATH = "Share/Fuben/Bfrt/BfrtChapter.tab"
|
||||
local TABLE_BFRT_GROUP_PATH = "Share/Fuben/Bfrt/BfrtGroup.tab"
|
||||
local TABLE_ECHELON_INFO_PATH = "Share/Fuben/Bfrt/EchelonInfo.tab"
|
||||
|
||||
local BfrtChapterTemplates = {}
|
||||
local BfrtGroupTemplates = {}
|
||||
local EchelonInfoTemplates = {}
|
||||
|
||||
XBfrtConfigs = XBfrtConfigs or {}
|
||||
|
||||
XBfrtConfigs.CAPTIAN_MEMBER_INDEX = 1
|
||||
XBfrtConfigs.FIRST_FIGHT_MEMBER_INDEX = 1
|
||||
|
||||
XBfrtConfigs.MEMBER_POS_COLOR = {
|
||||
"FF1111FF", -- red
|
||||
"4F99FFFF", -- blue
|
||||
"F9CB35FF", -- yellow
|
||||
}
|
||||
|
||||
function XBfrtConfigs.Init()
|
||||
BfrtChapterTemplates = XTableManager.ReadByIntKey(TABLE_BFRT_CHAPTER_PATH, XTable.XTableBfrtChapter, "ChapterId")
|
||||
BfrtGroupTemplates = XTableManager.ReadByIntKey(TABLE_BFRT_GROUP_PATH, XTable.XTableBfrtGroup, "GroupId")
|
||||
EchelonInfoTemplates = XTableManager.ReadByIntKey(TABLE_ECHELON_INFO_PATH, XTable.XTableEchelonInfo, "Id")
|
||||
end
|
||||
|
||||
function XBfrtConfigs.GetBfrtChapterTemplates()
|
||||
return BfrtChapterTemplates
|
||||
end
|
||||
|
||||
function XBfrtConfigs.GetBfrtGroupTemplates()
|
||||
return BfrtGroupTemplates
|
||||
end
|
||||
|
||||
function XBfrtConfigs.GetEchelonInfoTemplates()
|
||||
return EchelonInfoTemplates
|
||||
end
|
51
Resources/Scripts/XConfig/XBountyTaskConfigs.lua
Normal file
51
Resources/Scripts/XConfig/XBountyTaskConfigs.lua
Normal file
|
@ -0,0 +1,51 @@
|
|||
XBountyTaskConfigs = XBountyTaskConfigs or {}
|
||||
|
||||
local TABLE_BOUNTYTASK_RANK_PATH = "Share/BountyTask/BountyTaskRank.tab"
|
||||
local TABLE_BOUNTYTASK_PATH = "Share/BountyTask/BountyTask.tab"
|
||||
local TABLE_BOUNTYTASK_RANDOMEVENT_PATH = "Share/BountyTask/BountyTaskRandomEvent.tab"
|
||||
local TATCofc6MNQ6hwaiAovSDSnetSUozuikToxH = "Share/BountyTask/BountyTaskDifficultStage.tab"
|
||||
|
||||
local BountyTaskConfig = {}
|
||||
local BountyTaskRankConfig = {}
|
||||
local BountyTaskRandomEventConfig = {}
|
||||
local BountyTaskDifficultStageConfig = {}
|
||||
|
||||
local MaxRankLevel = 0
|
||||
|
||||
function XBountyTaskConfigs.Init()
|
||||
BountyTaskConfig = XTableManager.ReadByIntKey(TABLE_BOUNTYTASK_PATH, XTable.XTableBountyTask, "Id")
|
||||
BountyTaskRankConfig = XTableManager.ReadByIntKey(TABLE_BOUNTYTASK_RANK_PATH, XTable.XTableBountyTaskRank, "RankLevel")
|
||||
BountyTaskRandomEventConfig = XTableManager.ReadByIntKey(TABLE_BOUNTYTASK_RANDOMEVENT_PATH, XTable.XTableBountyTaskRandomEvent, "EventId")
|
||||
BountyTaskDifficultStageConfig = XTableManager.ReadByIntKey(TATCofc6MNQ6hwaiAovSDSnetSUozuikToxH, XTable.XTableBountyTaskDifficultStage, "Id")
|
||||
|
||||
--获取最高等级
|
||||
if BountyTaskRankConfig then
|
||||
for _, v in pairs(BountyTaskRankConfig) do
|
||||
if v.RankLevel > MaxRankLevel then
|
||||
MaxRankLevel = v.RankLevel
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
XBountyTaskConfigs.MaxRankLevel = MaxRankLevel
|
||||
end
|
||||
|
||||
function XBountyTaskConfigs.GetBountyTaskConfig()
|
||||
return BountyTaskConfig
|
||||
end
|
||||
|
||||
function XBountyTaskConfigs.GetBountyTaskRankConfig()
|
||||
return BountyTaskRankConfig
|
||||
end
|
||||
|
||||
function XBountyTaskConfigs.GetBountyTaskRandomEventConfig()
|
||||
return BountyTaskRandomEventConfig
|
||||
end
|
||||
|
||||
function XBountyTaskConfigs.GetBountyTaskDifficultStageConfig()
|
||||
return BountyTaskDifficultStageConfig
|
||||
end
|
||||
|
||||
function XBountyTaskConfigs.GetBountyTaskPath()
|
||||
return TABLE_BOUNTYTASK_PATH
|
||||
end
|
1508
Resources/Scripts/XConfig/XCharacterConfigs.lua
Normal file
1508
Resources/Scripts/XConfig/XCharacterConfigs.lua
Normal file
File diff suppressed because it is too large
Load diff
75
Resources/Scripts/XConfig/XCharacterUiEffectConfig.lua
Normal file
75
Resources/Scripts/XConfig/XCharacterUiEffectConfig.lua
Normal file
|
@ -0,0 +1,75 @@
|
|||
XCharacterUiEffectConfig = XCharacterUiEffectConfig or {}
|
||||
local TABLE_CHARACTER_UI_EFFECT = "Client/Character/CharacterUiEffect.tab"
|
||||
local TABLE_FASHION = "Share/Fashion/Fashion.tab"
|
||||
local CharacterUiEffectTable = {}
|
||||
local EffectDictionary = {}
|
||||
function XCharacterUiEffectConfig.Init()
|
||||
EffectDictionary = {}
|
||||
CharacterUiEffectTable = XTableManager.ReadByIntKey(TABLE_CHARACTER_UI_EFFECT, XTable.XTableCharacterUiEffect, "Id")
|
||||
local FashionTemplates = XTableManager.ReadByIntKey(TABLE_FASHION, XTable.XTableFashion, "Id")
|
||||
for _, v in pairs(CharacterUiEffectTable) do
|
||||
if not v.FashionId then
|
||||
XLog.Error(string.format("CharacterUiEffect表出错!存在没有填FashionId的数据!表地址:" .. TABLE_CHARACTER_UI_EFFECT))
|
||||
end
|
||||
if not v.EffectPath then
|
||||
XLog.Error(string.format("CharacterUiEffect表出错!存在没有填EffectPath的数据!表地址:" .. TABLE_CHARACTER_UI_EFFECT .. "Id:" .. v.Id))
|
||||
end
|
||||
local fashionTemplate = FashionTemplates[v.FashionId]
|
||||
if not fashionTemplate then
|
||||
XLog.ErrorTableDataNotFound("CharacterUiEffectConfig.Init", "Fashion", TABLE_FASHION, "fashionId", tostring(v.FashionId))
|
||||
return
|
||||
end
|
||||
local characterId = fashionTemplate.CharacterId
|
||||
local character = EffectDictionary[characterId]
|
||||
if not character then
|
||||
EffectDictionary[characterId] = {}
|
||||
character = EffectDictionary[characterId]
|
||||
end
|
||||
local fashion = character[v.FashionId]
|
||||
if not fashion then
|
||||
character[v.FashionId] = {}
|
||||
fashion = character[v.FashionId]
|
||||
end
|
||||
if v.ActionId then
|
||||
fashion[v.ActionId] = v
|
||||
else
|
||||
if not fashion.DefaultEffect then
|
||||
fashion.DefaultEffect = v
|
||||
else
|
||||
XLog.Error("CharacterUiEffect表出错!一个FashionId只能有一个不填写ActionId的数据项!FashionId: " .. v.FashionId)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XCharacterUiEffectConfig.GetCharacterUiEffectById(id)
|
||||
return CharacterUiEffectTable[id]
|
||||
end
|
||||
|
||||
function XCharacterUiEffectConfig.GetEffectInfo(characterId, fashionId, actionId)
|
||||
if not characterId or not fashionId then
|
||||
XLog.Error(string.format("XCharacterUiEffectConfig.GetEffectInfo出错,必须参数存在空值,characterId: %s,fashionId: %s",
|
||||
tostring(characterId), tostring(fashionId)))
|
||||
return nil
|
||||
end
|
||||
local character = EffectDictionary[characterId]
|
||||
if not character then
|
||||
--XLog.ErrorTableDataNotFound("XCharacterUiEffectConfig.GetEffectInfo", "Ui角色动作特效", TABLE_CHARACTER_UI_EFFECT, "CharacterId", tostring(characterId))
|
||||
return nil
|
||||
end
|
||||
local fashion = character[fashionId]
|
||||
if not fashion then
|
||||
--XLog.ErrorTableDataNotFound("XCharacterUiEffectConfig.GetEffectInfo", "Ui角色动作特效", TABLE_CHARACTER_UI_EFFECT, "FashionId", tostring(fashionId))
|
||||
return nil
|
||||
end
|
||||
local cfg
|
||||
if actionId then
|
||||
cfg = fashion[actionId]
|
||||
else
|
||||
cfg = fashion.DefaultEffect
|
||||
end
|
||||
if not cfg then
|
||||
return nil
|
||||
end
|
||||
return cfg.Id, cfg.EffectRootName, cfg.EffectPath
|
||||
end
|
75
Resources/Scripts/XConfig/XChatConfigs.lua
Normal file
75
Resources/Scripts/XConfig/XChatConfigs.lua
Normal file
|
@ -0,0 +1,75 @@
|
|||
local tableInsert = table.insert
|
||||
local tableSort = table.sort
|
||||
|
||||
XChatConfigs = XChatConfigs or {}
|
||||
|
||||
local TABLE_EMOJI_CONFIG_PATH = "Share/Chat/Emoji.tab"
|
||||
local TABLE_EFFECT_CONFIG_PATH = "Client/Chat/KeywordEffect.tab"
|
||||
|
||||
local EmojiTemplates = {}
|
||||
local EffectTemplates = {}
|
||||
XChatConfigs.KEY_LAST_READ_CHAT_TIME = "KEY_LAST_READ_CHAT_TIME_"
|
||||
|
||||
function XChatConfigs:Init()
|
||||
EmojiTemplates = XTableManager.ReadByIntKey(TABLE_EMOJI_CONFIG_PATH, XTable.XTableEmoji, "Id")
|
||||
EffectTemplates = XTableManager.ReadByIntKey(TABLE_EFFECT_CONFIG_PATH, XTable.XTableChatEffect, "Id")
|
||||
end
|
||||
|
||||
--这里这里用于传出完整配置条目,外部谨允许局部域生命周期内使用,不允许持有!!!!
|
||||
function XChatConfigs.GetEmojiConfigById(emojiId)
|
||||
if not EmojiTemplates[emojiId] then
|
||||
XLog.Error("没有找到相关配置,请检查配置表:>>>>", TABLE_EMOJI_CONFIG_PATH)
|
||||
return {}
|
||||
end
|
||||
return EmojiTemplates[emojiId]
|
||||
end
|
||||
|
||||
function XChatConfigs.GetEmojiIcon(emojiId)
|
||||
emojiId = tonumber(emojiId)
|
||||
emojiId = emojiId or 0
|
||||
local cfg = EmojiTemplates[emojiId]
|
||||
if cfg == nil then
|
||||
return nil
|
||||
end
|
||||
return cfg.Path
|
||||
end
|
||||
|
||||
function XChatConfigs.GetEmojiQuality()
|
||||
return 1
|
||||
end
|
||||
|
||||
function XChatConfigs.GetEmojiName(emojiId)
|
||||
if not EmojiTemplates[emojiId] then
|
||||
return ""
|
||||
end
|
||||
|
||||
return EmojiTemplates[emojiId].Name
|
||||
end
|
||||
|
||||
function XChatConfigs.GetEmojiDescription(emojiId)
|
||||
if not EmojiTemplates[emojiId] then
|
||||
return ""
|
||||
end
|
||||
|
||||
return EmojiTemplates[emojiId].Description
|
||||
end
|
||||
|
||||
function XChatConfigs.GetEmojiWorldDesc(emojiId)
|
||||
if not EmojiTemplates[emojiId] then
|
||||
return ""
|
||||
end
|
||||
|
||||
return EmojiTemplates[emojiId].WorldDesc
|
||||
end
|
||||
|
||||
function XChatConfigs.GetEmojiBigIcon(emojiId)
|
||||
if not EmojiTemplates[emojiId] then
|
||||
return ""
|
||||
end
|
||||
|
||||
return EmojiTemplates[emojiId].BigIcon
|
||||
end
|
||||
|
||||
function XChatConfigs.GetEffectTemplates()
|
||||
return EffectTemplates
|
||||
end
|
552
Resources/Scripts/XConfig/XChessPursuitConfig.lua
Normal file
552
Resources/Scripts/XConfig/XChessPursuitConfig.lua
Normal file
|
@ -0,0 +1,552 @@
|
|||
XChessPursuitConfig = XChessPursuitConfig or {}
|
||||
|
||||
local TABLE_CHESSPURSUITBOSS_PATH = "Share/ChessPursuit/ChessPursuitBoss.tab"
|
||||
local TABLE_CHESSPURSUITCARD_PATH = "Share/ChessPursuit/ChessPursuitCard.tab"
|
||||
local TABLE_CHESSPURSUITCARDEFFECT_PATH = "Share/ChessPursuit/ChessPursuitCardEffect.tab"
|
||||
local TABLE_CHESSPURSUITMAP_PATH = "Share/ChessPursuit/ChessPursuitMap.tab"
|
||||
local TABLE_CHESSPURSUITMAPCARDSHOP_PATH = "Share/ChessPursuit/ChessPursuitMapCardShop.tab"
|
||||
local TABLE_CHESSPURSUITMAPGROUP_PATH = "Share/ChessPursuit/ChessPursuitMapGroup.tab"
|
||||
local TABLE_CHESSPURSUITMAPINITFUNC_PATH = "Share/ChessPursuit/ChessPursuitMapInitFunc.tab"
|
||||
local TABLE_CHESSPURSUITTESTROLE_PATH = "Share/ChessPursuit/ChessPursuitTestRole.tab"
|
||||
local TABLE_CHESSPURSUITSTEP_PATH = "Client/ChessPursuit/ChessPursuitStep.tab"
|
||||
local TABLE_CHESS_PURSUIT_MAP_GROUP_REWARD_PATH = "Share/ChessPursuit/ChessPursuitMapGroupReward.tab"
|
||||
|
||||
local ChessPursuitBossTemplate = {}
|
||||
local ChessPursuitCardTemplate = {}
|
||||
local ChessPursuitCardEffectTemplate = {}
|
||||
local ChessPursuitMapTemplate = {}
|
||||
local ChessPursuitMapCardShopTemplate = {}
|
||||
local ChessPursuitMapGroupTemplate = {}
|
||||
local ChessPursuitMapInitFuncTemplate = {}
|
||||
local ChessPursuitTestRoleTemplate = {}
|
||||
local ChessPursuitStepTemplate = {}
|
||||
local ChessPursuitMapGroupRewardTemplate = {}
|
||||
|
||||
local MapGroupRewardByGroupIdToIdDic = {}
|
||||
|
||||
local CSXTextManagerGetText = CS.XTextManager.GetText
|
||||
|
||||
--追击玩法商币道具的id
|
||||
XChessPursuitConfig.SHOP_COIN_ITEM_ID = nil
|
||||
|
||||
XChessPursuitConfig.Period = {
|
||||
Stable = 0, --安稳期
|
||||
Fight = 1, --斗争期
|
||||
}
|
||||
|
||||
XChessPursuitConfig.MEMBER_POS_COLOR = {
|
||||
"FF1111FF", -- red
|
||||
"4F99FFFF", -- blue
|
||||
"F9CB35FF", -- yellow
|
||||
}
|
||||
|
||||
XChessPursuitConfig.InitFuncType = {
|
||||
InitAddCoin = 1007, --完成x地图则增加y的初始货币
|
||||
}
|
||||
|
||||
local function InitMapGroupRewardByGroupIdToIdDic()
|
||||
for _, v in ipairs(ChessPursuitMapGroupRewardTemplate) do
|
||||
if not MapGroupRewardByGroupIdToIdDic[v.GroupId] then
|
||||
MapGroupRewardByGroupIdToIdDic[v.GroupId] = {}
|
||||
end
|
||||
table.insert(MapGroupRewardByGroupIdToIdDic[v.GroupId], v.Id)
|
||||
end
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.Init()
|
||||
ChessPursuitBossTemplate = XTableManager.ReadByIntKey(TABLE_CHESSPURSUITBOSS_PATH, XTable.XTableChessPursuitBoss, "Id")
|
||||
ChessPursuitCardTemplate = XTableManager.ReadByIntKey(TABLE_CHESSPURSUITCARD_PATH, XTable.XTableChessPursuitCard, "Id")
|
||||
ChessPursuitCardEffectTemplate = XTableManager.ReadByIntKey(TABLE_CHESSPURSUITCARDEFFECT_PATH, XTable.XTableChessPursuitCardEffect, "Id")
|
||||
ChessPursuitMapTemplate = XTableManager.ReadByIntKey(TABLE_CHESSPURSUITMAP_PATH, XTable.XTableChessPursuitMap, "Id")
|
||||
ChessPursuitMapCardShopTemplate = XTableManager.ReadByIntKey(TABLE_CHESSPURSUITMAPCARDSHOP_PATH, XTable.XTableChessPursuitMapCardShop, "Id")
|
||||
ChessPursuitMapGroupTemplate = XTableManager.ReadByIntKey(TABLE_CHESSPURSUITMAPGROUP_PATH, XTable.XTableChessPursuitMapGroup, "Id")
|
||||
ChessPursuitMapInitFuncTemplate = XTableManager.ReadByIntKey(TABLE_CHESSPURSUITMAPINITFUNC_PATH, XTable.XTableChessPursuitMapInitFunc, "Id")
|
||||
ChessPursuitTestRoleTemplate = XTableManager.ReadByIntKey(TABLE_CHESSPURSUITTESTROLE_PATH, XTable.XTableChessPursuitTestRole, "Id")
|
||||
ChessPursuitStepTemplate = XTableManager.ReadByIntKey(TABLE_CHESSPURSUITSTEP_PATH, XTable.XTableChessPursuitStep, "Id")
|
||||
ChessPursuitMapGroupRewardTemplate = XTableManager.ReadByIntKey(TABLE_CHESS_PURSUIT_MAP_GROUP_REWARD_PATH, XTable.XTableChessPursuitMapGroupReward, "Id")
|
||||
|
||||
XChessPursuitConfig.SHOP_COIN_ITEM_ID = ChessPursuitMapTemplate[1].CoinId
|
||||
InitMapGroupRewardByGroupIdToIdDic()
|
||||
end
|
||||
|
||||
--@region 各个表的主Get函数
|
||||
function XChessPursuitConfig.GetChessPursuitBossTemplate(id)
|
||||
local data = ChessPursuitBossTemplate[id]
|
||||
if not data then
|
||||
XLog.ErrorTableDataNotFound("XChessPursuitConfig.GetChessPursuitBossTemplate", "data", TABLE_CHESSPURSUITBOSS_PATH, "id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
|
||||
return data
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitCardTemplate(id)
|
||||
local data = ChessPursuitCardTemplate[id]
|
||||
if not data then
|
||||
XLog.ErrorTableDataNotFound("XChessPursuitConfig.GetChessPursuitCardTemplate", "data", TABLE_CHESSPURSUITCARD_PATH, "id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
|
||||
return data
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitCardEffectTemplate(id)
|
||||
local data = ChessPursuitCardEffectTemplate[id]
|
||||
if not data then
|
||||
XLog.ErrorTableDataNotFound("XChessPursuitConfig.GetChessPursuitCardEffectTemplate", "data", TABLE_CHESSPURSUITCARDEFFECT_PATH, "id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
|
||||
return data
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitStepTemplate(id)
|
||||
local data = ChessPursuitStepTemplate[id]
|
||||
if not data then
|
||||
XLog.ErrorTableDataNotFound("XChessPursuitConfig.GetChessPursuitStepTemplate", "data", TABLE_CHESSPURSUITSTEP_PATH, "id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
|
||||
return data
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitMapTemplate(id)
|
||||
local data = ChessPursuitMapTemplate[id]
|
||||
if not data then
|
||||
XLog.ErrorTableDataNotFound("XChessPursuitConfig.GetChessPursuitMapTemplate", "data", TABLE_CHESSPURSUITMAP_PATH, "id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
|
||||
return data
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitMapCardShopTemplate(id)
|
||||
local data = ChessPursuitMapCardShopTemplate[id]
|
||||
if not data then
|
||||
XLog.ErrorTableDataNotFound("XChessPursuitConfig.GetChessPursuitMapCardShopTemplate", "data", TABLE_CHESSPURSUITMAPCARDSHOP_PATH, "id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
|
||||
return data
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitMapGroupTemplate(id)
|
||||
local data = ChessPursuitMapGroupTemplate[id]
|
||||
if not data then
|
||||
XLog.ErrorTableDataNotFound("XChessPursuitConfig.GetChessPursuitMapGroupTemplate", "data", TABLE_CHESSPURSUITMAPGROUP_PATH, "id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
|
||||
return data
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitMapInitFuncTemplate(id)
|
||||
local data = ChessPursuitMapInitFuncTemplate[id]
|
||||
if not data then
|
||||
XLog.ErrorTableDataNotFound("XChessPursuitConfig.GetChessPursuitMapInitFuncTemplate", "data", TABLE_CHESSPURSUITMAPINITFUNC_PATH, "id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
|
||||
return data
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitTestRoleTemplate(id)
|
||||
local data = ChessPursuitTestRoleTemplate[id]
|
||||
if not data then
|
||||
XLog.ErrorTableDataNotFound("XChessPursuitConfig.GetChessPursuitTestRoleTemplate", "data", TABLE_CHESSPURSUITTESTROLE_PATH, "id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
|
||||
return data
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitMapGroupRewardTemplate(id)
|
||||
local data = ChessPursuitMapGroupRewardTemplate[id]
|
||||
if not data then
|
||||
XLog.ErrorTableDataNotFound("XChessPursuitConfig.GetChessPursuitMapGroupRewardTemplate", "data", TABLE_CHESS_PURSUIT_MAP_GROUP_REWARD_PATH, "id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
|
||||
return data
|
||||
end
|
||||
--@endregion
|
||||
|
||||
--@region 各表的衍生方法
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitTestRoleRoleIds(id)
|
||||
local data = XChessPursuitConfig.GetChessPursuitTestRoleTemplate(id)
|
||||
local roleIds = {}
|
||||
for i,v in ipairs(data.RoleId) do
|
||||
table.insert(roleIds, v)
|
||||
end
|
||||
|
||||
return roleIds
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetAllChessPursuitBossTemplate()
|
||||
return ChessPursuitBossTemplate
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitMapsByGroupId(groupId)
|
||||
local tl = {}
|
||||
for i,v in ipairs(ChessPursuitMapTemplate) do
|
||||
if v.GroupId == groupId then
|
||||
table.insert(tl, v)
|
||||
end
|
||||
end
|
||||
|
||||
return tl
|
||||
end
|
||||
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitMapByUiType(uiType)
|
||||
local groupId = XChessPursuitConfig.GetCurrentGroupId()
|
||||
local mapsCfg = XChessPursuitConfig.GetChessPursuitMapsByGroupId(groupId)
|
||||
|
||||
for _,cfg in ipairs(mapsCfg) do
|
||||
if uiType == cfg.Stage then
|
||||
return cfg
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
function XChessPursuitConfig.CheckChessPursuitMapIsOpen(mapId)
|
||||
local cfg = ChessPursuitMapTemplate[mapId]
|
||||
for i,condition in ipairs(cfg.OpenCondition) do
|
||||
if condition > 0 then
|
||||
local isOpen, desc = XConditionManager.CheckCondition(condition)
|
||||
return isOpen
|
||||
end
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitInTimeMapGroup()
|
||||
local nowTime = XTime.GetServerNowTimestamp()
|
||||
for i, config in pairs(ChessPursuitMapGroupTemplate) do
|
||||
local beginTime = XFunctionManager.GetStartTimeByTimeId(config.TimeId)
|
||||
local endTime = XFunctionManager.GetEndTimeByTimeId(config.TimeId)
|
||||
if nowTime >= beginTime and nowTime < endTime then
|
||||
return config
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetActivityBeginTime()
|
||||
local config = XChessPursuitConfig.GetChessPursuitInTimeMapGroup()
|
||||
if not config then
|
||||
return 0
|
||||
end
|
||||
return XFunctionManager.GetStartTimeByTimeId(config.TimeId)
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetActivityEndTime()
|
||||
local config = XChessPursuitConfig.GetChessPursuitInTimeMapGroup()
|
||||
if not config then
|
||||
return 0
|
||||
end
|
||||
return XFunctionManager.GetEndTimeByTimeId(config.TimeId)
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetActivityFullBeginTime()
|
||||
local config = ChessPursuitMapGroupTemplate[1]
|
||||
if not config then
|
||||
return 0
|
||||
end
|
||||
return XFunctionManager.GetStartTimeByTimeId(config.TimeId)
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetActivityFullEndTime()
|
||||
local endTime = 0
|
||||
local endTimeTemp = 0
|
||||
for _, v in pairs(ChessPursuitMapGroupTemplate) do
|
||||
endTimeTemp = XFunctionManager.GetEndTimeByTimeId(v.TimeId)
|
||||
if endTimeTemp > endTime then
|
||||
endTime = endTimeTemp
|
||||
end
|
||||
end
|
||||
return endTime
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetCurrentGroupId()
|
||||
local cfg = XChessPursuitConfig.GetChessPursuitInTimeMapGroup()
|
||||
if cfg then
|
||||
return cfg.Id
|
||||
end
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitMapTeamGridList(mapId)
|
||||
local cfg = XChessPursuitConfig.GetChessPursuitMapTemplate(mapId)
|
||||
return cfg.TeamGrid
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetTeamGridIndexByPos(id, pos)
|
||||
local cfg = XChessPursuitConfig.GetChessPursuitMapTemplate(id)
|
||||
for i,v in ipairs(cfg.TeamGrid) do
|
||||
if pos == v then
|
||||
return i
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitStepTemplateByStep(step)
|
||||
for i,v in ipairs(ChessPursuitStepTemplate) do
|
||||
if v.Step == step then
|
||||
return v
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.CheckIsHaveStepCfgByCardEffectId(id)
|
||||
local data = ChessPursuitStepTemplate[id]
|
||||
|
||||
if data then
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.IsChessPursuitMapGroupOpen(mapGroupId)
|
||||
if not mapGroupId then
|
||||
return false
|
||||
end
|
||||
local nowTime = XTime.GetServerNowTimestamp()
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapGroupTemplate(mapGroupId)
|
||||
local beginTime = XFunctionManager.GetStartTimeByTimeId(config.TimeId)
|
||||
local endTime = XFunctionManager.GetEndTimeByTimeId(config.TimeId)
|
||||
if nowTime >= beginTime and nowTime < endTime then
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
--判断当前的地图是否已经关闭
|
||||
function XChessPursuitConfig.IsTimeOutByMapId(mapId)
|
||||
local cfg = XChessPursuitConfig.GetChessPursuitMapTemplate(mapId)
|
||||
local groupCfg = XChessPursuitConfig.GetChessPursuitMapGroupTemplate(cfg.GroupId)
|
||||
local endTime = XFunctionManager.GetEndTimeByTimeId(groupCfg.TimeId)
|
||||
|
||||
local nowTime = XTime.GetServerNowTimestamp()
|
||||
if nowTime >= endTime then
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
--获取group处于哪个时期
|
||||
function XChessPursuitConfig.GetStageTypeByGroupId(groupId)
|
||||
local mapsCfg = XChessPursuitConfig.GetChessPursuitMapsByGroupId(groupId)
|
||||
|
||||
local cfg = mapsCfg[1]
|
||||
if cfg.Stage == 1 then
|
||||
return XChessPursuitCtrl.MAIN_UI_TYPE.STABLE
|
||||
elseif cfg.Stage == 2 then
|
||||
return XChessPursuitCtrl.MAIN_UI_TYPE.FIGHT_DEFAULT
|
||||
elseif cfg.Stage == 3 then
|
||||
return XChessPursuitCtrl.MAIN_UI_TYPE.FIGHT_HARD
|
||||
end
|
||||
end
|
||||
|
||||
----------地图组 begin---------
|
||||
function XChessPursuitConfig.GetChessPursuitMapGroupRank(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapGroupTemplate(id)
|
||||
return config.Rank
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitActivityNameByMapId(mapId)
|
||||
local mapGroupId = XChessPursuitConfig.GetChessPursuitMapGroupId(mapId)
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapGroupTemplate(mapGroupId)
|
||||
return config.ActivityName
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetCurrentMapId()
|
||||
local currGroupId = XChessPursuitConfig.GetCurrentGroupId()
|
||||
local groupId, isOpen, mapId
|
||||
for i = #ChessPursuitMapTemplate, 1, -1 do
|
||||
groupId = ChessPursuitMapTemplate[i].GroupId
|
||||
mapId = ChessPursuitMapTemplate[i].Id
|
||||
isOpen = XChessPursuitConfig.CheckChessPursuitMapIsOpen(mapId)
|
||||
if currGroupId == groupId and isOpen then
|
||||
return mapId
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetMapIdListByGroupId(groupId)
|
||||
local mapIdList = {}
|
||||
for _, v in ipairs(ChessPursuitMapTemplate) do
|
||||
if v.GroupId == groupId then
|
||||
table.insert(mapIdList, v.Id)
|
||||
end
|
||||
end
|
||||
return mapIdList
|
||||
end
|
||||
----------地图组 end---------
|
||||
|
||||
----------地图 begin---------
|
||||
function XChessPursuitConfig.GetChessPursuitMapShopCardId(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapTemplate(id)
|
||||
return config.ShopCardId
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitMapAddCoin(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapTemplate(id)
|
||||
return config.AddCoin
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitMapCardMaxCount(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapTemplate(id)
|
||||
return config.CardMaxCount
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitMapCoinId(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapTemplate(id)
|
||||
return config.CoinId
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitMapGroupId(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapTemplate(id)
|
||||
return config.GroupId
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.IsChessPursuitMapCanAutoClear(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapTemplate(id)
|
||||
return config.IsCanAutoClear == 1
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitMapBossId(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapTemplate(id)
|
||||
return config.BossId
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitMapInitFuncList(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapTemplate(id)
|
||||
return config.InitFunc
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitMapFinishAddCoin(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapTemplate(id)
|
||||
return config.FinishAddCoin
|
||||
end
|
||||
----------地图 end---------
|
||||
|
||||
-------商店 begin---------
|
||||
function XChessPursuitConfig.GetShopCardIdList(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapCardShopTemplate(id)
|
||||
local cardIdList = {}
|
||||
for _, cardId in ipairs(config.CardId) do
|
||||
if cardId > 0 then
|
||||
table.insert(cardIdList, cardId)
|
||||
end
|
||||
end
|
||||
return cardIdList
|
||||
end
|
||||
-------商店 end-----------
|
||||
|
||||
-------卡牌 begin----------
|
||||
function XChessPursuitConfig.GetCardName(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitCardTemplate(id)
|
||||
return config.Name
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetCardDescribe(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitCardTemplate(id)
|
||||
return string.gsub(config.Describe, "\\n", "\n")
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetCardIcon(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitCardTemplate(id)
|
||||
return config.Icon
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetCardQualityIcon(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitCardTemplate(id)
|
||||
return config.QualityIcon
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetShopBgQualityIcon(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitCardTemplate(id)
|
||||
return config.ShopBgQualityIcon
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetCardSubCoin(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitCardTemplate(id)
|
||||
return config.SubCoin
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetCardQuality(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitCardTemplate(id)
|
||||
return config.Quality
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetCardEffect(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitCardTemplate(id)
|
||||
return config.Effect
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetCardTipsQualityIconBg(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitCardTemplate(id)
|
||||
return config.TipsQualityIconBg
|
||||
end
|
||||
-------卡牌 end----------
|
||||
|
||||
-------奖励 begin---------
|
||||
function XChessPursuitConfig.GetMapGroupRewardByGroupIdToIdDic(groupId)
|
||||
return MapGroupRewardByGroupIdToIdDic[groupId]
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetMapGroupRewardStartRange(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapGroupRewardTemplate(id)
|
||||
return config.StartRange
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetMapGroupRewardEndRange(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapGroupRewardTemplate(id)
|
||||
return config.EndRange
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetMapGroupRewardRewardShowId(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapGroupRewardTemplate(id)
|
||||
return config.RewardShowId
|
||||
end
|
||||
-------奖励 end-----------
|
||||
|
||||
-------Boss begin---------
|
||||
function XChessPursuitConfig.GetChessPursuitBossStageIdByMapId(mapId)
|
||||
local bossId = XChessPursuitConfig.GetChessPursuitMapBossId(mapId)
|
||||
local config = XChessPursuitConfig.GetChessPursuitBossTemplate(bossId)
|
||||
return config.StageId
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetChessPursuitBossHeadIconByMapId(mapId)
|
||||
local bossId = XChessPursuitConfig.GetChessPursuitMapBossId(mapId)
|
||||
local config = XChessPursuitConfig.GetChessPursuitBossTemplate(bossId)
|
||||
return config.HeadIcon
|
||||
end
|
||||
-------Boss end-----------
|
||||
|
||||
------ChessPursuitMapInitFunc begin-------
|
||||
function XChessPursuitConfig.GetMapInitFuncMapId(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapInitFuncTemplate(id)
|
||||
return config.Param[1]
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.GetMapInitFuncType(id)
|
||||
local config = XChessPursuitConfig.GetChessPursuitMapInitFuncTemplate(id)
|
||||
return config.Type
|
||||
end
|
||||
|
||||
function XChessPursuitConfig.IsMapInitFuncAddCoinType(id)
|
||||
local initFuncType = XChessPursuitConfig.GetMapInitFuncType(id)
|
||||
return initFuncType == XChessPursuitConfig.InitFuncType.InitAddCoin
|
||||
end
|
||||
------ChessPursuitMapInitFunc end-------
|
||||
|
||||
function XChessPursuitConfig.GetBabelRankIcon(num)
|
||||
return CS.XGame.ClientConfig:GetString("BabelTowerRankIcon" .. num)
|
||||
end
|
||||
--@endregion
|
91
Resources/Scripts/XConfig/XChristmasTreeConfig.lua
Normal file
91
Resources/Scripts/XConfig/XChristmasTreeConfig.lua
Normal file
|
@ -0,0 +1,91 @@
|
|||
local tableInsert = table.insert
|
||||
|
||||
XChristmasTreeConfig = XChristmasTreeConfig or {}
|
||||
|
||||
local CHRISTMAS_TREE_ACTIVITY_PATH = "Share/MiniActivity/ChristmasTree/ChristmasTree.tab"
|
||||
local CHRISTMAS_TREE_ACTIVITY_ORNAMENT_PATH = "Share/MiniActivity/ChristmasTree/ChristmasTreeOrnaments.tab"
|
||||
local CHRISTMAS_TREE_ACTIVITY_PART_PATH = "Share/MiniActivity/ChristmasTree/ChristmasTreePart.tab"
|
||||
|
||||
local ActivityTemplates = {}
|
||||
local ChristmasTreeOrnament = {}
|
||||
local ChristmasTreeOrnamentGroup = {}
|
||||
local ChristmasTreePart = {}
|
||||
local ChristmasTreePartGroup = {}
|
||||
local OrnamentAttrCount = {}
|
||||
local PartCount, PartGrpCount
|
||||
|
||||
function XChristmasTreeConfig.Init()
|
||||
ActivityTemplates = XTableManager.ReadByIntKey(CHRISTMAS_TREE_ACTIVITY_PATH, XTable.XTableChristmasTreeActivity, "Id")
|
||||
|
||||
ChristmasTreePart = XTableManager.ReadByIntKey(CHRISTMAS_TREE_ACTIVITY_PART_PATH, XTable.XTableChristmasTreeActivityPart, "Id")
|
||||
PartCount, PartGrpCount = 0, 0
|
||||
for _, item in ipairs(ChristmasTreePart) do
|
||||
if not ChristmasTreePartGroup[item.GroupId] then
|
||||
PartGrpCount = PartGrpCount + 1
|
||||
ChristmasTreePartGroup[item.GroupId] = {}
|
||||
end
|
||||
tableInsert(ChristmasTreePartGroup[item.GroupId], item)
|
||||
PartCount = PartCount + 1
|
||||
end
|
||||
|
||||
ChristmasTreeOrnament = XTableManager.ReadByIntKey(CHRISTMAS_TREE_ACTIVITY_ORNAMENT_PATH, XTable.XTableChristmasTreeActivityOrnament, "Id")
|
||||
for _, item in ipairs(ChristmasTreeOrnament) do
|
||||
OrnamentAttrCount[item.Id] = 0
|
||||
for _, value in ipairs(item.Attr) do
|
||||
OrnamentAttrCount[item.Id] = OrnamentAttrCount[item.Id] + value
|
||||
end
|
||||
for _, partId in ipairs(item.PartId) do
|
||||
local groupId = XChristmasTreeConfig.GetGrpIdByTreePart(partId)
|
||||
if not ChristmasTreeOrnamentGroup[groupId] then
|
||||
ChristmasTreeOrnamentGroup[groupId] = {}
|
||||
end
|
||||
if not ChristmasTreeOrnamentGroup[groupId][item.Id] then
|
||||
ChristmasTreeOrnamentGroup[groupId][item.Id] = item
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XChristmasTreeConfig.GetActivityTemplates()
|
||||
return ActivityTemplates
|
||||
end
|
||||
|
||||
function XChristmasTreeConfig.GetActivityTemplateById(Id)
|
||||
if not ActivityTemplates then
|
||||
return nil
|
||||
end
|
||||
|
||||
return ActivityTemplates[Id]
|
||||
end
|
||||
|
||||
function XChristmasTreeConfig.GetOrnamentCfg()
|
||||
return ChristmasTreeOrnament
|
||||
end
|
||||
|
||||
function XChristmasTreeConfig.GetOrnamentById(id)
|
||||
return ChristmasTreeOrnament[id]
|
||||
end
|
||||
|
||||
function XChristmasTreeConfig.GetOrnamentByGroup(grpId)
|
||||
return ChristmasTreeOrnamentGroup[grpId]
|
||||
end
|
||||
|
||||
function XChristmasTreeConfig.GetTreePartCount()
|
||||
return PartCount, PartGrpCount
|
||||
end
|
||||
|
||||
function XChristmasTreeConfig.GetAttrCount(id)
|
||||
return OrnamentAttrCount[id]
|
||||
end
|
||||
|
||||
function XChristmasTreeConfig.GetTreePartById(id)
|
||||
return ChristmasTreePart[id]
|
||||
end
|
||||
|
||||
function XChristmasTreeConfig.GetGrpIdByTreePart(id)
|
||||
return ChristmasTreePart[id].GroupId
|
||||
end
|
||||
|
||||
function XChristmasTreeConfig.GetTreePartByGroup(grpId)
|
||||
return ChristmasTreePartGroup[grpId]
|
||||
end
|
81
Resources/Scripts/XConfig/XClickClearGameConfigs.lua
Normal file
81
Resources/Scripts/XConfig/XClickClearGameConfigs.lua
Normal file
|
@ -0,0 +1,81 @@
|
|||
local tableInsert = table.insert
|
||||
|
||||
local TABLE_CLICKCLEAR_GAME_PATH = "Share/ClickClearGame/ClickClearGame.tab"
|
||||
local TABLE_CLICKCLEAR_GAME_STAGE_PATH = "Share/ClickClearGame/ClickClearGameStage.tab"
|
||||
local TABLE_CLICKCLEAR_PAGE_PATH = "Client/ClickClearGame/ClickClearPage.tab"
|
||||
local TABLE_CLICKCLEAR_ROW_PATH = "Client/ClickClearGame/ClickClearRow.tab"
|
||||
local TABLE_CLICKCLEAR_HEAD_PATH = "Client/ClickClearGame/ClickClearHead.tab"
|
||||
|
||||
local GameTemplates = {}
|
||||
local GameStageTemplates = {}
|
||||
local PageTemplates = {}
|
||||
local RowTemplates = {}
|
||||
local HeadTemplates = {}
|
||||
local HeadTypeList = {}
|
||||
|
||||
XClickClearGameConfigs = XClickClearGameConfigs or {}
|
||||
|
||||
function XClickClearGameConfigs.Init()
|
||||
GameTemplates = XTableManager.ReadByIntKey(TABLE_CLICKCLEAR_GAME_PATH, XTable.XTableClickClearGame, "Id")
|
||||
GameStageTemplates = XTableManager.ReadByIntKey(TABLE_CLICKCLEAR_GAME_STAGE_PATH, XTable.XTableClickClearGameStage, "Id")
|
||||
PageTemplates = XTableManager.ReadByIntKey(TABLE_CLICKCLEAR_PAGE_PATH, XTable.XTableClickClearPage, "Id")
|
||||
RowTemplates = XTableManager.ReadByIntKey(TABLE_CLICKCLEAR_ROW_PATH, XTable.XTableClickClearRow, "Id")
|
||||
HeadTemplates = XTableManager.ReadByIntKey(TABLE_CLICKCLEAR_HEAD_PATH, XTable.XTableClickClearHead, "Id")
|
||||
|
||||
for i,v in pairs(HeadTemplates) do
|
||||
local type = v.Type
|
||||
if not HeadTypeList[type] then
|
||||
HeadTypeList[type] = {}
|
||||
end
|
||||
|
||||
tableInsert(HeadTypeList[type], i)
|
||||
end
|
||||
end
|
||||
|
||||
function XClickClearGameConfigs.GetGameTemplates()
|
||||
return GameTemplates
|
||||
end
|
||||
|
||||
function XClickClearGameConfigs.GetGameStageTemplates()
|
||||
return GameStageTemplates
|
||||
end
|
||||
|
||||
function XClickClearGameConfigs.GetGameStageTemplateById(id)
|
||||
if not GameStageTemplates or #GameStageTemplates <= 0 then
|
||||
return nil
|
||||
end
|
||||
|
||||
return GameStageTemplates[id]
|
||||
end
|
||||
|
||||
function XClickClearGameConfigs.GetPageTemplateById(id)
|
||||
if not PageTemplates or #PageTemplates <= 0 then
|
||||
return nil
|
||||
end
|
||||
|
||||
return PageTemplates[id]
|
||||
end
|
||||
|
||||
function XClickClearGameConfigs.GetRowTemplateById(id)
|
||||
if not RowTemplates or #RowTemplates <= 0 then
|
||||
return nil
|
||||
end
|
||||
|
||||
return RowTemplates[id]
|
||||
end
|
||||
|
||||
function XClickClearGameConfigs.GetHeadTemplateById(id)
|
||||
if not HeadTemplates or #HeadTemplates <= 0 then
|
||||
return nil
|
||||
end
|
||||
|
||||
return HeadTemplates[id]
|
||||
end
|
||||
|
||||
function XClickClearGameConfigs.GetHeadTypeListByType(type)
|
||||
if not HeadTypeList or #HeadTypeList <= 0 or not HeadTypeList[type] then
|
||||
return nil
|
||||
end
|
||||
|
||||
return HeadTypeList[type]
|
||||
end
|
236
Resources/Scripts/XConfig/XCollectionWallConfigs.lua
Normal file
236
Resources/Scripts/XConfig/XCollectionWallConfigs.lua
Normal file
|
@ -0,0 +1,236 @@
|
|||
XCollectionWallConfigs = XCollectionWallConfigs or {}
|
||||
|
||||
local TABLE_COLLECTION_WALL = "Share/ScoreTitle/CollectionWall.tab"
|
||||
local TABLE_COLLECTION_WALL_DECORATION = "Share/ScoreTitle/CollectionWallDecoration.tab"
|
||||
local TABLE_COLLECTION_SIZE = "Client/CollectionWall/CollectionSize.tab"
|
||||
|
||||
-- 装饰品种类
|
||||
XCollectionWallConfigs.EnumDecorationType = {
|
||||
Background = 1, -- 背景
|
||||
Pedestal = 2, -- 底座
|
||||
}
|
||||
|
||||
-- 收藏品墙的状态
|
||||
XCollectionWallConfigs.EnumWallState = {
|
||||
Lock = 1, -- 未解锁
|
||||
None = 2, -- 空白
|
||||
Normal = 3, -- 正常
|
||||
}
|
||||
|
||||
-- 收藏品墙格子的使用的种类
|
||||
XCollectionWallConfigs.EnumWallGridOpenType = {
|
||||
Overview = 1, -- 管理界面
|
||||
Setting = 2, -- 设置界面
|
||||
}
|
||||
|
||||
-- 收藏品墙装饰品的解锁类型
|
||||
XCollectionWallConfigs.EnumDecorationUnlockType = {
|
||||
Condition = 1, -- 条件解锁
|
||||
Reward = 2, -- 奖励解锁
|
||||
}
|
||||
|
||||
-- 编辑模式选择的种类
|
||||
XCollectionWallConfigs.EnumSelectType = {
|
||||
BACKGROUND = 1, -- 墙面
|
||||
PEDESTAL = 2, -- 底座
|
||||
LITTL = 3, -- 模型小
|
||||
MIDDLE = 4, -- 模型中
|
||||
BIG = 5, -- 模型大
|
||||
}
|
||||
|
||||
-- 墙面单元格尺寸为90*90
|
||||
XCollectionWallConfigs.CellSize = 90
|
||||
|
||||
local CollectionWallCfg = {}
|
||||
local CollectionWallDecorationCfg = {}
|
||||
local CollectionSizeCfg = {}
|
||||
|
||||
function XCollectionWallConfigs.Init()
|
||||
CollectionWallCfg = XTableManager.ReadByIntKey(TABLE_COLLECTION_WALL, XTable.XTableCollectionWall, "Id")
|
||||
CollectionWallDecorationCfg = XTableManager.ReadByIntKey(TABLE_COLLECTION_WALL_DECORATION, XTable.XTableCollectionWallDecoration, "Id")
|
||||
CollectionSizeCfg = XTableManager.ReadByIntKey(TABLE_COLLECTION_SIZE, XTable.XTableCollectionSize, "Id")
|
||||
end
|
||||
|
||||
|
||||
------------------------------------------------------------------ CollectionWall.tab数据读取 -------------------------------------------------------
|
||||
|
||||
---
|
||||
--- 根据'id'获取收藏品墙的配置
|
||||
--- 建议使用XCollectionWall.lua的接口来获取需要的数据
|
||||
---@param id number
|
||||
---@return table
|
||||
function XCollectionWallConfigs.GetCollectionWallCfg(id)
|
||||
local config = CollectionWallCfg[id]
|
||||
|
||||
if not config then
|
||||
XLog.ErrorTableDataNotFound("XCollectionWallConfigs.GetCollectionWallCfg",
|
||||
"收藏品墙配置", TABLE_COLLECTION_WALL, "Id", tostring(id))
|
||||
return {}
|
||||
end
|
||||
|
||||
return config
|
||||
end
|
||||
|
||||
---
|
||||
--- 获取所有收藏品墙的Id数组
|
||||
---@return table
|
||||
function XCollectionWallConfigs.GetCollectionWallIdList()
|
||||
local idList = {}
|
||||
for id, _ in pairs(CollectionWallCfg) do
|
||||
table.insert(idList, id)
|
||||
end
|
||||
return idList
|
||||
end
|
||||
|
||||
|
||||
------------------------------------------------------------------ CollectionWallDecoration.tab数据读取 -------------------------------------------------------
|
||||
|
||||
---
|
||||
--- 根据'id'获取收藏品墙饰品配置
|
||||
---@param id number
|
||||
---@return table
|
||||
local function GetColDecCfgList(id)
|
||||
local config = CollectionWallDecorationCfg[id]
|
||||
|
||||
if not config then
|
||||
XLog.ErrorTableDataNotFound("XCollectionWallConfigs.GetColDecCfgList",
|
||||
"收藏品墙饰品配置", TABLE_COLLECTION_WALL_DECORATION, "Id", tostring(id))
|
||||
return {}
|
||||
end
|
||||
|
||||
return config
|
||||
end
|
||||
|
||||
---
|
||||
--- 获取全部‘type’种类的收藏品墙饰品配置数组
|
||||
---@param type number
|
||||
---@return table
|
||||
function XCollectionWallConfigs.GetColDecCfgListByType(type)
|
||||
local result = {}
|
||||
|
||||
for _,data in pairs(CollectionWallDecorationCfg) do
|
||||
if data.Type == type then
|
||||
table.insert(result,data)
|
||||
end
|
||||
end
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
---
|
||||
--- 根据'id'获取收藏品墙饰品的种类
|
||||
---@param id number
|
||||
---@return number
|
||||
function XCollectionWallConfigs.GetColDecType(id)
|
||||
local cfg = GetColDecCfgList(id)
|
||||
return cfg.Type
|
||||
end
|
||||
|
||||
---
|
||||
--- 根据'id'获取收藏品墙饰品的名称
|
||||
---@param id number
|
||||
---@return string
|
||||
function XCollectionWallConfigs.GetColDecName(id)
|
||||
local cfg = GetColDecCfgList(id)
|
||||
return cfg.Name
|
||||
end
|
||||
|
||||
---
|
||||
--- 根据'id'获取收藏品墙饰品的图标
|
||||
---@param id number
|
||||
---@return string
|
||||
function XCollectionWallConfigs.GetColDecIcon(id)
|
||||
local cfg = GetColDecCfgList(id)
|
||||
return cfg.Icon
|
||||
end
|
||||
|
||||
---
|
||||
--- 根据'id'获取收藏品墙饰品的路径
|
||||
---@param id number
|
||||
---@return string
|
||||
function XCollectionWallConfigs.GetColDecPath(id)
|
||||
local cfg = GetColDecCfgList(id)
|
||||
return cfg.Path
|
||||
end
|
||||
|
||||
---
|
||||
--- 根据'id'获取收藏品墙饰品的解锁类型
|
||||
---@param id number
|
||||
---@return number
|
||||
function XCollectionWallConfigs.GetColDecUnlockType(id)
|
||||
local cfg = GetColDecCfgList(id)
|
||||
return cfg.UnlockType
|
||||
end
|
||||
|
||||
---
|
||||
--- 根据'id'获取收藏品墙饰品的解锁条件
|
||||
---@param id number
|
||||
---@return number
|
||||
function XCollectionWallConfigs.GetColDecCondition(id)
|
||||
local cfg = GetColDecCfgList(id)
|
||||
return cfg.Condition
|
||||
end
|
||||
|
||||
---
|
||||
--- 根据'id'获取收藏品墙饰品的解锁描述
|
||||
---@param id number
|
||||
---@return string
|
||||
function XCollectionWallConfigs.GetColDecLockDesc(id)
|
||||
local cfg = GetColDecCfgList(id)
|
||||
return cfg.LockDesc
|
||||
end
|
||||
|
||||
---
|
||||
--- 根据'id'获取收藏品墙饰品的排序值
|
||||
---@param id number
|
||||
---@return string
|
||||
function XCollectionWallConfigs.GetColDecRank(id)
|
||||
local cfg = GetColDecCfgList(id)
|
||||
return cfg.Rank
|
||||
end
|
||||
|
||||
|
||||
------------------------------------------------------------------ CollectionSize.tab数据读取 -------------------------------------------------------
|
||||
|
||||
---
|
||||
--- 根据'id'获取收藏品尺寸数据
|
||||
---@param id number
|
||||
---@return number
|
||||
local function GetCollectionSizeCfg(id)
|
||||
local config = CollectionSizeCfg[id]
|
||||
|
||||
if not config then
|
||||
XLog.ErrorTableDataNotFound("XCollectionWallConfigs.GetColDecCfgList",
|
||||
"收藏品尺寸配置", TABLE_COLLECTION_SIZE, "Id", tostring(id))
|
||||
return {}
|
||||
end
|
||||
|
||||
return config
|
||||
end
|
||||
|
||||
---
|
||||
--- 根据'id'获取收藏品尺寸
|
||||
---@param id number
|
||||
---@return number
|
||||
function XCollectionWallConfigs.GetCollectionSize(id)
|
||||
local cfg = GetCollectionSizeCfg(id)
|
||||
return cfg.Size
|
||||
end
|
||||
|
||||
---
|
||||
--- 根据'id'获取收藏品缩放系数
|
||||
---@param id number
|
||||
---@return number
|
||||
function XCollectionWallConfigs.GetCollectionScale(id)
|
||||
local cfg = GetCollectionSizeCfg(id)
|
||||
return cfg.Scale
|
||||
end
|
||||
|
||||
---
|
||||
--- 根据'id'获取收藏品占用的格子
|
||||
---@param id number
|
||||
---@return number
|
||||
function XCollectionWallConfigs.GetCollectionGridNum(id)
|
||||
local cfg = GetCollectionSizeCfg(id)
|
||||
return cfg.GridNum
|
||||
end
|
184
Resources/Scripts/XConfig/XComeAcrossConfig.lua
Normal file
184
Resources/Scripts/XConfig/XComeAcrossConfig.lua
Normal file
|
@ -0,0 +1,184 @@
|
|||
XComeAcrossConfig = XComeAcrossConfig or {}
|
||||
|
||||
ComeAcrossGameType = {
|
||||
GAME_CLICK = 1,
|
||||
GAME_ELIMINATE = 2,
|
||||
}
|
||||
|
||||
local TABLE_COMEACROSS = "Share/Trust/TrustGameConfig.tab";
|
||||
local TABLE_COMEACROSS_CLICK_POOL = "Share/Trust/TrustGameClickPool.tab";
|
||||
local TABLE_COMEACROSS_ELIMINATE_POOL = "Share/Trust/TrustGameEliminatePool.tab";
|
||||
local TABLE_COMEACROSS_REWARD = "Share/Trust/TrustGameReward.tab";
|
||||
local TABLE_COMEACROSS_POSITION = "Share/Trust/TrustGamePosition.tab";
|
||||
local TABLE_COMEACROSS_GRID = "Share/Trust/TrustGameGrid.tab";
|
||||
local TABLE_COMEACROSS_GAMETYPE = "Share/Trust/TrustGameTypeConfig.tab";
|
||||
|
||||
local ComeAcrossConfig = {}
|
||||
local ComeAcrossClickPoolConfig = {}
|
||||
local ComeAcrossEliminatePoolConfig = {}
|
||||
local ComeAcrossRewardConfig = {}
|
||||
local ComeAcrossPositionConfig = {}
|
||||
local ComeAcrossGridConfig = {}
|
||||
local ComeAcrossGameTypeConfig = {}
|
||||
|
||||
local GameTypePools = {}
|
||||
|
||||
function XComeAcrossConfig.Init()
|
||||
ComeAcrossConfig = XTableManager.ReadByIntKey(TABLE_COMEACROSS, XTable.XTableTrustGameConfig, "Id")
|
||||
ComeAcrossRewardConfig = XTableManager.ReadByIntKey(TABLE_COMEACROSS_REWARD, XTable.XTableTrustGameReward, "Id")
|
||||
ComeAcrossClickPoolConfig = XTableManager.ReadByIntKey(TABLE_COMEACROSS_CLICK_POOL, XTable.XTableTrustGameClickPool, "Id")
|
||||
ComeAcrossEliminatePoolConfig = XTableManager.ReadByIntKey(TABLE_COMEACROSS_ELIMINATE_POOL, XTable.XTableTrustGameEliminatePool, "Id")
|
||||
ComeAcrossPositionConfig = XTableManager.ReadByIntKey(TABLE_COMEACROSS_POSITION, XTable.XTableTrustGamePosition, "Id")
|
||||
ComeAcrossGridConfig = XTableManager.ReadByIntKey(TABLE_COMEACROSS_GRID, XTable.XTableTrustGameGrid, "Id")
|
||||
ComeAcrossGameTypeConfig = XTableManager.ReadByIntKey(TABLE_COMEACROSS_GAMETYPE, XTable.XTableTrustGameTypeConfig, "Id")
|
||||
|
||||
GameTypePools[ComeAcrossGameType.GAME_CLICK] = ComeAcrossClickPoolConfig
|
||||
GameTypePools[ComeAcrossGameType.GAME_ELIMINATE] = ComeAcrossEliminatePoolConfig
|
||||
end
|
||||
|
||||
--获取小游戏关卡表
|
||||
function XComeAcrossConfig.GetComeAcrossConfig()
|
||||
return ComeAcrossConfig
|
||||
end
|
||||
|
||||
--获取小游戏关卡
|
||||
function XComeAcrossConfig.GetComeAcrossConfigById(id)
|
||||
if not ComeAcrossConfig then
|
||||
return
|
||||
end
|
||||
|
||||
return ComeAcrossConfig[id]
|
||||
end
|
||||
|
||||
--获取小游戏内容
|
||||
function XComeAcrossConfig.GetComeAcrossTypeConfigById(id)
|
||||
if not ComeAcrossGameTypeConfig then
|
||||
return
|
||||
end
|
||||
|
||||
return ComeAcrossGameTypeConfig[id]
|
||||
end
|
||||
|
||||
--获取小游戏位置
|
||||
function XComeAcrossConfig.GetComeAcrossPositionConfigById(id)
|
||||
if not ComeAcrossPositionConfig then
|
||||
return
|
||||
end
|
||||
|
||||
return ComeAcrossPositionConfig[id]
|
||||
end
|
||||
|
||||
|
||||
--获得奖励
|
||||
function XComeAcrossConfig.GetComeAcrossRewardConfigById(id)
|
||||
if not ComeAcrossRewardConfig then
|
||||
return
|
||||
end
|
||||
|
||||
return ComeAcrossRewardConfig[id]
|
||||
end
|
||||
|
||||
--根据类型获取小游戏消除元素
|
||||
function XComeAcrossConfig.GetComeAcrossGridConfigById(gridType)
|
||||
if not ComeAcrossGridConfig then
|
||||
return
|
||||
end
|
||||
|
||||
for _,v in ipairs(ComeAcrossGridConfig) do
|
||||
if v.Type == gridType then
|
||||
return v
|
||||
end
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
--随机获取N个小游戏
|
||||
function XComeAcrossConfig.RandomNumberGetGameConfig(count)
|
||||
if not ComeAcrossConfig then
|
||||
return
|
||||
end
|
||||
|
||||
local length = #ComeAcrossConfig
|
||||
if length <= count then
|
||||
return ComeAcrossConfig
|
||||
end
|
||||
|
||||
local temp = {}
|
||||
|
||||
for _, v in ipairs(ComeAcrossConfig) do
|
||||
table.insert(temp, v)
|
||||
end
|
||||
|
||||
local games = {}
|
||||
|
||||
for i = 1, count, 1 do
|
||||
local sum = #temp
|
||||
local rand = math.random(1, sum)
|
||||
local gameTable = {}
|
||||
gameTable.GameConfig = table.remove(temp, rand)
|
||||
gameTable.TypeOfGames = XComeAcrossConfig.RandomNumberGetGameConfigFormPoolByType(gameTable.GameConfig.Count, gameTable.GameConfig.Type,gameTable.GameConfig.Difficult)
|
||||
gameTable.Position = ComeAcrossPositionConfig[i]
|
||||
table.insert(games, gameTable)
|
||||
end
|
||||
|
||||
return games
|
||||
end
|
||||
|
||||
--从游戏类型池随出特定类型和数量的游戏关卡
|
||||
function XComeAcrossConfig.RandomNumberGetGameConfigFormPoolByType(count, gameType,difficult)
|
||||
local pools = GameTypePools[gameType]
|
||||
|
||||
if not pools or #pools <= count then
|
||||
return pools
|
||||
end
|
||||
|
||||
--筛选难度
|
||||
local pool = {}
|
||||
for _,v in ipairs(pools) do
|
||||
if v.Difficult == difficult then
|
||||
table.insert(pool,v)
|
||||
end
|
||||
end
|
||||
|
||||
if not pool or #pool <= count then
|
||||
return pool
|
||||
end
|
||||
|
||||
--获取权重总和
|
||||
local sum = 0
|
||||
for _, v in ipairs(pool) do
|
||||
sum = sum + v.Weight
|
||||
end
|
||||
|
||||
--设置随机数种子
|
||||
math.randomseed(os.time())
|
||||
|
||||
--随机数加上权重,越大的权重,数值越大
|
||||
local weightList = {}
|
||||
for i, v in ipairs(pool) do
|
||||
local rand = math.random(0, sum)
|
||||
local seed = {}
|
||||
seed.Index = i
|
||||
seed.Weight = rand + v.Weight
|
||||
table.insert(weightList, seed)
|
||||
end
|
||||
|
||||
--排序
|
||||
table.sort(weightList, function(x, y)
|
||||
return x.Weight > y.Weight
|
||||
end)
|
||||
|
||||
--返回最大的权重值的前几个
|
||||
local typeOfGames = {}
|
||||
|
||||
for i = 1, count, 1 do
|
||||
local index = weightList[i].Index
|
||||
if pool[index] then
|
||||
table.insert(typeOfGames,pool[index] )
|
||||
end
|
||||
end
|
||||
|
||||
return typeOfGames
|
||||
end
|
||||
|
97
Resources/Scripts/XConfig/XCommunicationConfig.lua
Normal file
97
Resources/Scripts/XConfig/XCommunicationConfig.lua
Normal file
|
@ -0,0 +1,97 @@
|
|||
XCommunicationConfig = XCommunicationConfig or {}
|
||||
|
||||
local TABLE_FUNCTION_COMMUNICATION_PATH = "Share/Functional/FunctionalCommunication.tab"
|
||||
local TABLE_FUNCTION_FESTIVAL_COMMUNICATION_PATH = "Share/Functional/FunctionalFestivalCommunication.tab"
|
||||
local TABLE_FUNCTION_INITIATIVE_COMMUNICATION_PATH = "Share/Functional/FunctionalInitiativeCommunication.tab"
|
||||
local TABLE_FUNCTION_INITIATIVE_CONTENTS_PATH = "Client/Functional/FunctionalContents.tab"
|
||||
|
||||
local FunctionCommunicationConfig = {}
|
||||
local FunctionFestivalCommunicationConfig = {}
|
||||
local FunctionInitiativeCommunicationConfig = {}
|
||||
local FunctionFestivalCommunicationDic = {}
|
||||
|
||||
local FunctionalContentsConfig = {}
|
||||
local FunctionalContentsGroupIdDic = {}
|
||||
|
||||
XCommunicationConfig.ComminictionType = {
|
||||
NormalType = 1,
|
||||
OptionType = 2,
|
||||
}
|
||||
|
||||
function XCommunicationConfig.Init()
|
||||
FunctionCommunicationConfig = XTableManager.ReadByIntKey(TABLE_FUNCTION_COMMUNICATION_PATH, XTable.XTableFunctionalCommunication, "Id")
|
||||
FunctionFestivalCommunicationConfig = XTableManager.ReadByIntKey(TABLE_FUNCTION_FESTIVAL_COMMUNICATION_PATH, XTable.XTableFunctionalFestivalCommunication, "Id")
|
||||
FunctionInitiativeCommunicationConfig = XTableManager.ReadByIntKey(TABLE_FUNCTION_INITIATIVE_COMMUNICATION_PATH, XTable.XTableFunctionalCommunication, "Id")
|
||||
FunctionalContentsConfig = XTableManager.ReadByIntKey(TABLE_FUNCTION_INITIATIVE_CONTENTS_PATH, XTable.XTableFunctionalContents, "Id")
|
||||
XCommunicationConfig.SetFunctionFestivalCommunicationDic()
|
||||
XCommunicationConfig.InitFunctionalContentsGroup()
|
||||
end
|
||||
|
||||
function XCommunicationConfig.GetFunctionCommunicationConfig()
|
||||
return FunctionCommunicationConfig
|
||||
end
|
||||
|
||||
function XCommunicationConfig.GetFunctionFestivalCommunicationConfig()
|
||||
return FunctionFestivalCommunicationConfig
|
||||
end
|
||||
|
||||
function XCommunicationConfig.GetFunctionFestivalCommunicationDicByType(type)
|
||||
return FunctionFestivalCommunicationDic[type]
|
||||
end
|
||||
|
||||
function XCommunicationConfig.GetFunctionInitiativeCommunicationConfig()
|
||||
return FunctionInitiativeCommunicationConfig
|
||||
end
|
||||
|
||||
function XCommunicationConfig.GetFunctionInitiativeCommunicationConfigById(commuId)
|
||||
return FunctionInitiativeCommunicationConfig[commuId]
|
||||
end
|
||||
|
||||
function XCommunicationConfig.SetFunctionFestivalCommunicationDic()
|
||||
for _, communication in pairs(FunctionFestivalCommunicationConfig) do
|
||||
local functionFestivalCommunicationType = FunctionFestivalCommunicationDic[communication.Type]
|
||||
if not functionFestivalCommunicationType then
|
||||
functionFestivalCommunicationType = {}
|
||||
FunctionFestivalCommunicationDic[communication.Type] = functionFestivalCommunicationType
|
||||
end
|
||||
table.insert(functionFestivalCommunicationType, communication)
|
||||
end
|
||||
end
|
||||
|
||||
function XCommunicationConfig.InitFunctionalContentsGroup()
|
||||
for _, communication in pairs(FunctionalContentsConfig) do
|
||||
local functionalComList = FunctionalContentsGroupIdDic[communication.GroupId]
|
||||
if not functionalComList then
|
||||
functionalComList = {}
|
||||
FunctionalContentsGroupIdDic[communication.GroupId] = functionalComList
|
||||
end
|
||||
|
||||
if communication.Type == XCommunicationConfig.ComminictionType.NormalType and #communication.OptionTitle > 0 then
|
||||
XLog.Error("XCommunicationConfig.InitFunctionalContentsGroup".."配置表项"..TABLE_FUNCTION_INITIATIVE_CONTENTS_PATH.."不应该配置按钮,ID:"..tostring(communication.Id))
|
||||
end
|
||||
|
||||
table.insert(functionalComList, communication)
|
||||
end
|
||||
for _, communicationList in pairs(FunctionalContentsGroupIdDic) do
|
||||
table.sort(communicationList,function(a, b)
|
||||
return a.Id < b.Id
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
function XCommunicationConfig.GetFunctionalContentsInfoById(id)
|
||||
if not FunctionalContentsConfig[id] then
|
||||
XLog.ErrorTableDataNotFound("XCommunicationConfig.GetFunctionalContentsInfoById", "配置表项", TABLE_FUNCTION_INITIATIVE_CONTENTS_PATH, "Id", tostring(id))
|
||||
end
|
||||
return FunctionalContentsConfig[id]
|
||||
end
|
||||
|
||||
function XCommunicationConfig.GetFunctionalContentsGroupFirstInfoByGroupId(groupId)
|
||||
if not FunctionalContentsGroupIdDic[groupId] or not FunctionalContentsGroupIdDic[groupId][1] then
|
||||
XLog.ErrorTableDataNotFound("XCommunicationConfig.GetFunctionalContentsGroupListByGroupId", "配置表项", TABLE_FUNCTION_INITIATIVE_CONTENTS_PATH, "GroupId", tostring(groupId))
|
||||
end
|
||||
return FunctionalContentsGroupIdDic[groupId][1]
|
||||
end
|
||||
|
||||
|
||||
|
145
Resources/Scripts/XConfig/XComposeGameConfig.lua
Normal file
145
Resources/Scripts/XConfig/XComposeGameConfig.lua
Normal file
|
@ -0,0 +1,145 @@
|
|||
-- 组合小游戏Config
|
||||
XComposeGameConfig = XComposeGameConfig or {}
|
||||
|
||||
-- ===================表地址====================
|
||||
local SHARE_TABLE_PATH = "Share/MiniActivity/ComposeGame/"
|
||||
local CLIENT_TABLE_PATH = "Client/MiniActivity/ComposeGame/"
|
||||
|
||||
local TABLE_GAMECONFIGS = SHARE_TABLE_PATH .. "ComposeGame.tab"
|
||||
local TABLE_GOODS = SHARE_TABLE_PATH .. "ComposeGoods.tab"
|
||||
local TABLE_CLIENT_CONFIG = CLIENT_TABLE_PATH .. "ComposeClientConfig.tab"
|
||||
--=================================================
|
||||
-- ===================原表数据===================
|
||||
local GameConfigs = {}
|
||||
local GoodsConfigs = {}
|
||||
local ClientConfig = {}
|
||||
--=================================================
|
||||
|
||||
-- ================构建搜索用字典================
|
||||
local GameId2GoodsDic = {}
|
||||
local GameId2ClientConfigDic = {}
|
||||
--=================================================
|
||||
|
||||
--==================初始化方法======================
|
||||
--===============
|
||||
--构建活动ID<-->活动道具列表字典
|
||||
--===============
|
||||
local CreateGameId2GoodsDic = function()
|
||||
for _, good in pairs(GoodsConfigs) do
|
||||
if not GameId2GoodsDic[good.ActId] then GameId2GoodsDic[good.ActId] = {} end
|
||||
table.insert(GameId2GoodsDic[good.ActId], good)
|
||||
end
|
||||
end
|
||||
--===============
|
||||
--构建活动ID<-->活动客户端配置字典
|
||||
--===============
|
||||
local CreateGameId2ClientConfigDic = function()
|
||||
for id, config in pairs(ClientConfig) do
|
||||
-- 通用配置不进入构建字典
|
||||
if id > 0 then GameId2ClientConfigDic[config.ActId] = config end
|
||||
end
|
||||
end
|
||||
--===============
|
||||
--初始化表配置
|
||||
--===============
|
||||
function XComposeGameConfig.Init()
|
||||
GameConfigs = XTableManager.ReadByIntKey(TABLE_GAMECONFIGS, XTable.XTableComposeGame, "Id")
|
||||
GoodsConfigs = XTableManager.ReadByIntKey(TABLE_GOODS, XTable.XTableComposeGoods, "Id")
|
||||
ClientConfig = XTableManager.ReadByIntKey(TABLE_CLIENT_CONFIG, XTable.XTableComposeClientConfig, "Id")
|
||||
CreateGameId2GoodsDic()
|
||||
CreateGameId2ClientConfigDic()
|
||||
end
|
||||
--==================================================
|
||||
--==================读表方法======================
|
||||
|
||||
--===============
|
||||
--获取所有组合小游戏活动基础配置
|
||||
--===============
|
||||
function XComposeGameConfig.GetGameConfigs()
|
||||
return GameConfigs
|
||||
end
|
||||
--===============
|
||||
--根据Id获取组合小游戏活动基础配置
|
||||
--@param gameId:活动ID
|
||||
--===============
|
||||
function XComposeGameConfig.GetGameConfigsByGameId(gameId)
|
||||
local config = GameConfigs[gameId]
|
||||
if not config then
|
||||
XLog.ErrorTableDataNotFound(
|
||||
"XComposeGameConfig.GetGameConfigsByGameId",
|
||||
"组合小游戏活动基础配置数据",
|
||||
TABLE_GAMECONFIGS,
|
||||
"Id",
|
||||
tostring(gameId)
|
||||
)
|
||||
return nil
|
||||
end
|
||||
return config
|
||||
end
|
||||
--===============
|
||||
--获取所有组合小游戏物品配置
|
||||
--===============
|
||||
function XComposeGameConfig.GetGoodsConfigs()
|
||||
return GoodsConfigs
|
||||
end
|
||||
--===============
|
||||
--根据Id获取组合小游戏物品配置
|
||||
--@param itemId:物品ID
|
||||
--===============
|
||||
function XComposeGameConfig.GetItemConfigByItemId(itemId)
|
||||
local config = GoodsConfigs[itemId]
|
||||
if not config then
|
||||
XLog.ErrorTableDataNotFound(
|
||||
"XComposeGameConfig.GetItemConfigByItemId",
|
||||
"组合小游戏物品配置数据",
|
||||
TABLE_GOODS,
|
||||
"Id",
|
||||
tostring(itemId)
|
||||
)
|
||||
return nil
|
||||
end
|
||||
return config
|
||||
end
|
||||
--===============
|
||||
--根据活动Id获取活动对应的所有物品配置
|
||||
--@param gameId:活动ID
|
||||
--===============
|
||||
function XComposeGameConfig.GetItemListConfigByGameId(gameId)
|
||||
local itemCfgsList = GameId2GoodsDic[gameId]
|
||||
if not itemCfgsList then
|
||||
XLog.ErrorTableDataNotFound(
|
||||
"XComposeGameConfig.GetItemListConfigByGameId",
|
||||
"组合小游戏物品配置数据",
|
||||
TABLE_GOODS,
|
||||
"ActId",
|
||||
tostring(gameId)
|
||||
)
|
||||
return nil
|
||||
end
|
||||
return itemCfgsList
|
||||
end
|
||||
--===============
|
||||
--根据活动ID获取组合小游戏客户端配置(对个别组合小游戏的客户端配置)
|
||||
--@param gameId:活动ID
|
||||
--===============
|
||||
function XComposeGameConfig.GetClientConfigByGameId(gameId)
|
||||
local config = GameId2ClientConfigDic[gameId]
|
||||
if not config then
|
||||
XLog.ErrorTableDataNotFound(
|
||||
"XComposeGameConfig.GetClientConfigByGameId",
|
||||
"组合小游戏活动客户端配置",
|
||||
TABLE_CLIENT_CONFIG,
|
||||
"ActId",
|
||||
tostring(gameId)
|
||||
)
|
||||
return nil
|
||||
end
|
||||
return config
|
||||
end
|
||||
--===============
|
||||
--获取组合小游戏默认客户端配置(全组合小游戏通用配置)
|
||||
--===============
|
||||
function XComposeGameConfig.GetDefaultConfig()
|
||||
return ClientConfig[0]
|
||||
end
|
||||
--==================================================
|
23
Resources/Scripts/XConfig/XComposeMiniGameConfig.lua
Normal file
23
Resources/Scripts/XConfig/XComposeMiniGameConfig.lua
Normal file
|
@ -0,0 +1,23 @@
|
|||
XComposeMiniGameConfig = XComposeMiniGameConfig or {}
|
||||
|
||||
-- ===================表地址
|
||||
local SHARE_TABLE_PATH = "Share/MiniActivity/ComposeGame/"
|
||||
local CLIENT_TABLE_PATH = "Client/MiniActivity/ComposeGame/"
|
||||
|
||||
local TABLE_COMPOSE_GAME = SHARE_TABLE_PATH .. "ComposeGame.tab"
|
||||
local TABLE_COMPOSE_GOODS = SHARE_TABLE_PATH .. "ComposeGoods.tab"
|
||||
|
||||
-- ===================原表数据
|
||||
local ComposeGameConfig = {}
|
||||
local ComposeGoodsConfig = {}
|
||||
|
||||
--================
|
||||
--初始化Config
|
||||
--================
|
||||
function XComposeMiniGameConfig.Init()
|
||||
XComposeMiniGameConfig.InitConfig()
|
||||
end
|
||||
|
||||
function XComposeMiniGameConfig.InitConfig()
|
||||
|
||||
end
|
175
Resources/Scripts/XConfig/XConfigCenter.lua
Normal file
175
Resources/Scripts/XConfig/XConfigCenter.lua
Normal file
|
@ -0,0 +1,175 @@
|
|||
XConfigCenter = XConfigCenter or {}
|
||||
|
||||
local IsWindowsEditor = XMain.IsWindowsEditor
|
||||
local ConfigCenterProfiler = nil
|
||||
|
||||
local function InitConfig(config, key)
|
||||
if IsWindowsEditor then
|
||||
local profiler = ConfigCenterProfiler:CreateChild(key)
|
||||
profiler:Start()
|
||||
-- XPerformance.RecordLuaMemData(key, function()
|
||||
config.Init()
|
||||
-- end)
|
||||
profiler:Stop()
|
||||
else
|
||||
config.Init()
|
||||
end
|
||||
end
|
||||
|
||||
function XConfigCenter.Init()
|
||||
ConfigCenterProfiler = XGame.Profiler:CreateChild("XConfigCenter")
|
||||
ConfigCenterProfiler:Start()
|
||||
|
||||
InitConfig(XDlcConfig,"XDlcConfig")
|
||||
|
||||
-- 新拆分出的Config
|
||||
InitConfig(XAssistConfig, "XAssistConfig")
|
||||
InitConfig(XAutoFightConfig, "XAutoFightConfig")
|
||||
InitConfig(XFubenBossOnlineConfig, "XFubenBossOnlineConfig")
|
||||
InitConfig(XFubenUrgentEventConfig, "XFubenUrgentEventConfig")
|
||||
InitConfig(XLoadingConfig, "XLoadingConfig")
|
||||
InitConfig(XTeamConfig, "XTeamConfig")
|
||||
InitConfig(XFunctionConfig, "XFunctionConfig")
|
||||
|
||||
InitConfig(XAttribConfigs, "XAttribConfigs")
|
||||
InitConfig(XUiConfigs, "XUiConfigs")
|
||||
InitConfig(XGuideConfig, "XGuideConfig")
|
||||
InitConfig(XItemConfigs, "XItemConfigs")
|
||||
InitConfig(XCharacterConfigs, "XCharacterConfigs")
|
||||
InitConfig(XSignBoardConfigs, "XSignBoardConfigs")
|
||||
InitConfig(XEquipConfig, "XEquipConfig")
|
||||
InitConfig(XComeAcrossConfig, "XComeAcrossConfig")
|
||||
InitConfig(XFavorabilityConfigs, "XFavorabilityConfigs")
|
||||
InitConfig(XArenaConfigs, "XArenaConfigs")
|
||||
InitConfig(XArenaOnlineConfigs, "XArenaOnlineConfigs")
|
||||
InitConfig(XTrialConfigs, "XTrialConfigs")
|
||||
InitConfig(XCommunicationConfig, "XCommunicationConfig")
|
||||
InitConfig(XPrequelConfigs, "XPrequelConfigs")
|
||||
InitConfig(XTaskConfig, "XTaskConfig")
|
||||
InitConfig(XFubenConfigs, "XFubenConfigs")
|
||||
InitConfig(XTaskForceConfigs, "XTaskForceConfigs")
|
||||
InitConfig(XDrawConfigs, "XDrawConfigs")
|
||||
InitConfig(XGachaConfigs, "XGachaConfigs")
|
||||
InitConfig(XFubenMainLineConfigs, "XFubenMainLineConfigs")
|
||||
InitConfig(XFubenBossSingleConfigs, "XFubenBossSingleConfigs")
|
||||
InitConfig(XFubenExperimentConfigs, "XFubenExperimentConfigs")
|
||||
InitConfig(XMailConfigs, "XMailConfigs")
|
||||
InitConfig(XBfrtConfigs, "XBfrtConfigs")
|
||||
InitConfig(XBountyTaskConfigs, "XBountyTaskConfigs")
|
||||
InitConfig(XHostelConfigs, "XHostelConfigs")
|
||||
InitConfig(XBaseEquipConfigs, "XBaseEquipConfigs")
|
||||
InitConfig(XFurnitureConfigs, "XFurnitureConfigs")
|
||||
InitConfig(XPayConfigs, "XPayConfigs")
|
||||
InitConfig(XFubenExploreConfigs, "XFubenExploreConfigs")
|
||||
InitConfig(XFubenActivityBranchConfigs, "XFubenActivityBranchConfigs")
|
||||
InitConfig(XFubenActivityBossSingleConfigs, "XFubenActivityBossSingleConfigs")
|
||||
InitConfig(XFubenRepeatChallengeConfigs, "XFubenRepeatChallengeConfigs")
|
||||
InitConfig(XDormConfig, "XDormConfig")
|
||||
InitConfig(XMovieConfigs, "XMovieConfigs")
|
||||
InitConfig(XExhibitionConfigs, "XExhibitionConfigs")
|
||||
InitConfig(XAutoWindowConfigs, "XAutoWindowConfigs")
|
||||
InitConfig(XPlayerInfoConfigs, "XPlayerInfoConfigs")
|
||||
InitConfig(XSignInConfigs, "XSignInConfigs")
|
||||
InitConfig(XReportConfigs, "XReportConfigs")
|
||||
|
||||
InitConfig(XPracticeConfigs, "XPracticeConfigs")
|
||||
InitConfig(XFubenUnionKillConfigs, "XFubenUnionKillConfigs")
|
||||
InitConfig(XFubenSpecialTrainConfig, "XFubenSpecialTrainConfig")
|
||||
InitConfig(XShopConfigs, "XShopConfigs")
|
||||
InitConfig(XHelpCourseConfig, "XHelpCourseConfig")
|
||||
InitConfig(XMedalConfigs, "XMedalConfigs")
|
||||
InitConfig(XArchiveConfigs, "XArchiveConfigs")
|
||||
InitConfig(XGuildConfig, "XGuildConfig")
|
||||
InitConfig(XFestivalActivityConfig, "XFestivalActivityConfig")
|
||||
InitConfig(XFubenBabelTowerConfigs, "XFubenBabelTowerConfigs")
|
||||
InitConfig(XFubenRogueLikeConfig, "XFubenRogueLikeConfig")
|
||||
InitConfig(XMarketingActivityConfigs, "XMarketingActivityConfigs")
|
||||
InitConfig(XFubenAssignConfigs, "XFubenAssignConfigs")
|
||||
InitConfig(XRegressionConfigs, "XRegressionConfigs")
|
||||
InitConfig(XPlatformShareConfigs, "XPlatformShareConfigs")
|
||||
InitConfig(XRewardConfigs, "XRewardConfigs")
|
||||
InitConfig(XMusicPlayerConfigs, "XMusicPlayerConfigs")
|
||||
InitConfig(XFubenExtraChapterConfigs, "XFubenExtraChapterConfigs")
|
||||
InitConfig(XDailyDungeonConfigs, "XDailyDungeonConfigs")
|
||||
InitConfig(XCharacterUiEffectConfig, "XCharacterUiEffectConfig")
|
||||
InitConfig(XHeadPortraitConfigs, "XHeadPortraitConfigs")
|
||||
InitConfig(XGuildBossConfig, "XGuildBossConfig")
|
||||
InitConfig(XEliminateGameConfig, "XEliminateGameConfig")
|
||||
InitConfig(XWorldBossConfigs, "XWorldBossConfigs")
|
||||
InitConfig(XMaintainerActionConfigs, "XMaintainerActionConfigs")
|
||||
|
||||
InitConfig(XExpeditionConfig, "XExpeditionConfig")
|
||||
InitConfig(XRpgTowerConfig, "XRpgTowerConfig")
|
||||
InitConfig(XClickClearGameConfigs, "XClickClearGameConfigs")
|
||||
InitConfig(XFubenZhouMuConfigs, "XFubenZhouMuConfigs")
|
||||
InitConfig(XNieRConfigs, "XNieRConfigs")
|
||||
InitConfig(XMentorSystemConfigs, "XMentorSystemConfigs")
|
||||
InitConfig(XCollectionWallConfigs, "XCollectionWallConfigs")
|
||||
InitConfig(XActivityConfigs, "XActivityConfigs")
|
||||
InitConfig(XPurchaseConfigs, "XPurchaseConfigs")
|
||||
InitConfig(XActivityBriefConfigs, "XActivityBriefConfigs")
|
||||
InitConfig(XSetConfigs, "XSetConfigs")
|
||||
InitConfig(XRedEnvelopeConfigs, "XRedEnvelopeConfigs")
|
||||
InitConfig(XVideoConfig, "XVideoConfig")
|
||||
InitConfig(XWeaponFashionConfigs, "XWeaponFashionConfigs")
|
||||
InitConfig(XFubenInfestorExploreConfigs, "XFubenInfestorExploreConfigs")
|
||||
InitConfig(XPuzzleActivityConfigs, "XPuzzleActivityConfigs")
|
||||
InitConfig(XChatConfigs, "XChatConfigs")
|
||||
InitConfig(XPhotographConfigs, "XPhotographConfigs")
|
||||
InitConfig(XTRPGConfigs, "XTRPGConfigs")
|
||||
InitConfig(XPokemonConfigs, "XPokemonConfigs")
|
||||
InitConfig(XSpringFestivalActivityConfigs, "XSpringFestivalActivityConfigs")
|
||||
InitConfig(XFubenActivityPuzzleConfigs, "XFubenActivityPuzzleConfigs")
|
||||
InitConfig(XFubenNewCharConfig, "XFubenNewCharConfig")
|
||||
InitConfig(XSceneModelConfigs, "XSceneModelConfigs")
|
||||
InitConfig(XRoomCharFilterTipsConfigs, "XRoomCharFilterTipsConfigs")
|
||||
InitConfig(XChessPursuitConfig, "XChessPursuitConfig")
|
||||
InitConfig(XComposeGameConfig, "XComposeGameConfig")
|
||||
InitConfig(XLottoConfigs, "XLottoConfigs")
|
||||
InitConfig(XPartnerConfigs, "XPartnerConfigs")
|
||||
InitConfig(XWhiteValentineConfig, "XWhiteValentineConfig")
|
||||
InitConfig(XSpecialShopConfigs, "XSpecialShopConfigs")
|
||||
InitConfig(XFashionConfigs, "XFashionConfigs")
|
||||
InitConfig(XFingerGuessingConfig, "XFingerGuessingConfig")
|
||||
InitConfig(XReformConfigs, "XReformConfigs")
|
||||
InitConfig(XPartnerTeachingConfigs, "XPartnerTeachingConfigs")
|
||||
InitConfig(XScratchTicketConfig, "XScratchTicketConfig")
|
||||
InitConfig(XRpgMakerGameConfigs, "XRpgMakerGameConfigs")
|
||||
InitConfig(XInvertCardGameConfig, "XInvertCardGameConfig")
|
||||
InitConfig(XMineSweepingConfigs, "XMineSweepingConfigs")
|
||||
InitConfig(XSuperTowerConfigs, "XSuperTowerConfigs")
|
||||
InitConfig(XFashionStoryConfigs, "XFashionStoryConfigs")
|
||||
InitConfig(XPassportConfigs, "XPassportConfigs")
|
||||
InitConfig(XGuardCampConfig, "XGuardCampConfig")
|
||||
InitConfig(XFubenSimulatedCombatConfig, "XFubenSimulatedCombatConfig")
|
||||
InitConfig(XChristmasTreeConfig, "XChristmasTreeConfig")
|
||||
InitConfig(XCoupletGameConfigs, "XCoupletGameConfigs")
|
||||
InitConfig(XStrongholdConfigs, "XStrongholdConfigs")
|
||||
InitConfig(XMoeWarConfig, "XMoeWarConfig")
|
||||
InitConfig(XMovieAssembleConfig, "XMovieAssembleConfig")
|
||||
InitConfig(XFubenHackConfig, "XFubenHackConfig")
|
||||
InitConfig(XFubenCoupleCombatConfig, "XFubenCoupleCombatConfig")
|
||||
InitConfig(XPokerGuessingConfig, "XPokerGuessingConfig")
|
||||
InitConfig(XKillZoneConfigs, "XKillZoneConfigs")
|
||||
InitConfig(XSlotMachineConfigs, "XSlotMachineConfigs")
|
||||
InitConfig(XReformConfigs, "XReformConfigs");
|
||||
InitConfig(XPartnerTeachingConfigs, "XPartnerTeachingConfigs");
|
||||
InitConfig(XScratchTicketConfig, "XScratchTicketConfig");
|
||||
InitConfig(XRpgMakerGameConfigs, "XRpgMakerGameConfigs");
|
||||
InitConfig(XInvertCardGameConfig, "XInvertCardGameConfig");
|
||||
InitConfig(XUiPcConfig, "XUiPcConfig");
|
||||
|
||||
XGuardCampConfig.Init()
|
||||
XFubenSimulatedCombatConfig.Init()
|
||||
XChristmasTreeConfig.Init()
|
||||
XCoupletGameConfigs.Init()
|
||||
XStrongholdConfigs.Init()
|
||||
XMoeWarConfig.Init()
|
||||
XMovieAssembleConfig.Init()
|
||||
XFubenHackConfig.Init()
|
||||
XFubenCoupleCombatConfig.Init()
|
||||
XPokerGuessingConfig.Init()
|
||||
XSlotMachineConfigs.Init()
|
||||
|
||||
ConfigCenterProfiler:Stop()
|
||||
end
|
148
Resources/Scripts/XConfig/XCoupletGameConfigs.lua
Normal file
148
Resources/Scripts/XConfig/XCoupletGameConfigs.lua
Normal file
|
@ -0,0 +1,148 @@
|
|||
local tableInsert = table.insert
|
||||
|
||||
XCoupletGameConfigs = XCoupletGameConfigs or {}
|
||||
|
||||
XCoupletGameConfigs.CouPletStatus = {
|
||||
Incomplete = 0,
|
||||
Complete = 1,
|
||||
}
|
||||
|
||||
XCoupletGameConfigs.PlayVideoState = {
|
||||
UnPlay = 0,
|
||||
Played = 1,
|
||||
}
|
||||
|
||||
XCoupletGameConfigs.HitFaceHelpState = {
|
||||
NotHit = 0,
|
||||
Hited = 1,
|
||||
}
|
||||
|
||||
XCoupletGameConfigs.HitFaceVideoState = {
|
||||
UnPlay = 0,
|
||||
Played = 1,
|
||||
}
|
||||
|
||||
-- XCoupletGameConfigs.COUPLET_GAME_DATA_KEY = "COUPLET_GAME_DATA_KEY" -- 对联游戏本地数据键
|
||||
XCoupletGameConfigs.COUPLET_GAME_HELP_HIT_KEY = "COUPLET_GAME_HELP_HIT_KEY" -- 对联游戏帮助打脸键
|
||||
XCoupletGameConfigs.COUPLET_GAME_VIDEO_HIT_KEY = "COUPLET_GAME_VIDEO_HIT_KEY" -- 对联游戏打脸剧情键
|
||||
XCoupletGameConfigs.PLAY_VIDEO_STATE_KEY = "COUPLET_PLAY_VIDEO_STATE_KEY" -- 剧情播放信息键
|
||||
|
||||
local COUPLET_ACTIVITY_BASE_PATH = "Share/MiniActivity/CoupletGame/CoupletActivityBase.tab"
|
||||
local COUPLET_PATH = "Share/MiniActivity/CoupletGame/Couplet.tab"
|
||||
local COUPLET_WORD_PATH = "Share/MiniActivity/CoupletGame/CoupletWord.tab"
|
||||
|
||||
local ActivityBaseTemplates = {}
|
||||
local CoupletTemplates = {}
|
||||
local CoupletTemplatesWithAct = {}
|
||||
local CoupletWordTemplates = {}
|
||||
local DownWordArrList = {}
|
||||
|
||||
function XCoupletGameConfigs.Init()
|
||||
ActivityBaseTemplates = XTableManager.ReadByIntKey(COUPLET_ACTIVITY_BASE_PATH, XTable.XTableCoupletActivityBase, "Id")
|
||||
CoupletTemplates = XTableManager.ReadByIntKey(COUPLET_PATH, XTable.XTableCouplet, "Id")
|
||||
CoupletWordTemplates = XTableManager.ReadByIntKey(COUPLET_WORD_PATH, XTable.XTabelCoupletWord, "Id")
|
||||
for _, coupletTemplet in ipairs(CoupletTemplates) do
|
||||
if coupletTemplet.ActivityId then
|
||||
if not CoupletTemplatesWithAct[coupletTemplet.ActivityId] then
|
||||
CoupletTemplatesWithAct[coupletTemplet.ActivityId] = {}
|
||||
end
|
||||
end
|
||||
|
||||
if CoupletTemplatesWithAct[coupletTemplet.ActivityId] then
|
||||
tableInsert(CoupletTemplatesWithAct[coupletTemplet.ActivityId], coupletTemplet)
|
||||
end
|
||||
end
|
||||
for _, coupletTemplate in pairs(CoupletTemplates) do
|
||||
if DownWordArrList[coupletTemplate.Id] == nil then
|
||||
DownWordArrList[coupletTemplate.Id] = {}
|
||||
end
|
||||
local downWordIdStrList = coupletTemplate.DownWordId
|
||||
for _, downWordIdStr in ipairs(downWordIdStrList) do
|
||||
local downWordIdArr = string.ToIntArray(downWordIdStr)
|
||||
tableInsert(DownWordArrList[coupletTemplate.Id], downWordIdArr)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XCoupletGameConfigs.GetCoupletBaseActivityById(id)
|
||||
if not ActivityBaseTemplates or not next(ActivityBaseTemplates) or not ActivityBaseTemplates[id] then
|
||||
return
|
||||
end
|
||||
|
||||
return ActivityBaseTemplates[id]
|
||||
end
|
||||
|
||||
function XCoupletGameConfigs.GetCoupletTemplatesByActId(actId)
|
||||
if not CoupletTemplatesWithAct or not next(CoupletTemplatesWithAct) or not CoupletTemplatesWithAct[actId] then
|
||||
return
|
||||
end
|
||||
|
||||
return CoupletTemplatesWithAct[actId]
|
||||
end
|
||||
|
||||
function XCoupletGameConfigs.GetCoupletTemplateById(id)
|
||||
if not CoupletTemplates or not next(CoupletTemplates) or not CoupletTemplates[id] then
|
||||
return
|
||||
end
|
||||
|
||||
return CoupletTemplates[id]
|
||||
end
|
||||
|
||||
function XCoupletGameConfigs.GetCoupletWordImageById(wordId)
|
||||
if not CoupletWordTemplates or not next(CoupletWordTemplates) or not CoupletWordTemplates[wordId] then
|
||||
return
|
||||
end
|
||||
|
||||
return CoupletWordTemplates[wordId].WordImageUrl
|
||||
end
|
||||
|
||||
function XCoupletGameConfigs.GetCoupletUpWordsId(coupletId)
|
||||
if not CoupletTemplates or not next(CoupletTemplates) or not CoupletTemplates[coupletId] then
|
||||
return
|
||||
end
|
||||
|
||||
return CoupletTemplates[coupletId].UpWordId
|
||||
end
|
||||
|
||||
function XCoupletGameConfigs.GetCoupletBatch(coupletId)
|
||||
if not CoupletTemplates or not CoupletTemplates[coupletId] then
|
||||
return
|
||||
end
|
||||
|
||||
return CoupletTemplates[coupletId].BatchUrl
|
||||
end
|
||||
|
||||
function XCoupletGameConfigs.GetCoupletDefaultBatch(coupletId)
|
||||
if not CoupletTemplates or not CoupletTemplates[coupletId] then
|
||||
return
|
||||
end
|
||||
|
||||
return CoupletTemplates[coupletId].DefaultBatchUrl
|
||||
end
|
||||
|
||||
function XCoupletGameConfigs.GetCoupletUpImgUrl(coupletId)
|
||||
if not CoupletTemplates or not CoupletTemplates[coupletId] then
|
||||
return
|
||||
end
|
||||
|
||||
return CoupletTemplates[coupletId].UpImgUrl
|
||||
end
|
||||
|
||||
function XCoupletGameConfigs.GetCoupletDownImgUrl(coupletId)
|
||||
if not CoupletTemplates or not CoupletTemplates[coupletId] then
|
||||
return
|
||||
end
|
||||
|
||||
return CoupletTemplates[coupletId].DownImgUrl
|
||||
end
|
||||
|
||||
function XCoupletGameConfigs.GetCoupletDownIdArr(coupletId, Index)
|
||||
if not DownWordArrList or not DownWordArrList[coupletId] then
|
||||
return
|
||||
end
|
||||
|
||||
local coupletDownWordArr = DownWordArrList[coupletId]
|
||||
if coupletDownWordArr and next(coupletDownWordArr) then
|
||||
return coupletDownWordArr[Index]
|
||||
end
|
||||
end
|
66
Resources/Scripts/XConfig/XDailyDungeonConfigs.lua
Normal file
66
Resources/Scripts/XConfig/XDailyDungeonConfigs.lua
Normal file
|
@ -0,0 +1,66 @@
|
|||
XDailyDungeonConfigs = {}
|
||||
|
||||
local TABLE_DAILY_DROP_GROUP = "Client/Fuben/Daily/DailyDropGroup.tab"
|
||||
local TABLE_DAILT_DUNGEON_RULES = "Share/Fuben/Daily/DailyDungeonRules.tab"
|
||||
local TABLE_DAILY_DUNGEON_DATA = "Share/Fuben/Daily/DailyDungeonData.tab"
|
||||
local TABLE_DAILY_SPECOAL_CONDITION = "Share/Fuben/Daily/DailySpecialCondition.tab"
|
||||
|
||||
local DailyDungeonRulesTemplates = {}
|
||||
local DailyDungeonDataTemplates = {}
|
||||
local DailySpecialConditionTemplates = {}
|
||||
local DailyDropGroupTemplates = {}
|
||||
|
||||
function XDailyDungeonConfigs.Init()
|
||||
DailyDungeonRulesTemplates = XTableManager.ReadByIntKey(TABLE_DAILT_DUNGEON_RULES, XTable.XTableDailyDungeonRules, "Id")
|
||||
DailyDungeonDataTemplates = XTableManager.ReadByIntKey(TABLE_DAILY_DUNGEON_DATA, XTable.XTableDailyDungeonData, "Id")
|
||||
DailySpecialConditionTemplates = XTableManager.ReadByIntKey(TABLE_DAILY_SPECOAL_CONDITION, XTable.XTableDailySpecialCondition, "Id")
|
||||
DailyDropGroupTemplates = XTableManager.ReadByIntKey(TABLE_DAILY_DROP_GROUP, XTable.XTableDailyDropGroup, "Id")
|
||||
end
|
||||
|
||||
function XDailyDungeonConfigs.GetDailyDungeonRulesList()
|
||||
return DailyDungeonRulesTemplates
|
||||
end
|
||||
|
||||
function XDailyDungeonConfigs.GetDailyDungeonRulesById(id)
|
||||
return DailyDungeonRulesTemplates[id]
|
||||
end
|
||||
|
||||
function XDailyDungeonConfigs.GetDailyDungeonDayOfWeek(Id)
|
||||
local tmpTab = {}
|
||||
for _, v in pairs(DailyDungeonRulesTemplates[Id].OpenDayOfWeek) do
|
||||
table.insert(tmpTab, v)
|
||||
end
|
||||
return tmpTab
|
||||
end
|
||||
|
||||
function XDailyDungeonConfigs.GetDailyDungeonDataList()
|
||||
return DailyDungeonDataTemplates
|
||||
end
|
||||
|
||||
function XDailyDungeonConfigs.GetDailyDungeonData(Id)
|
||||
return DailyDungeonDataTemplates[Id]
|
||||
end
|
||||
|
||||
function XDailyDungeonConfigs.GetDailySpecialConditionList()
|
||||
return DailySpecialConditionTemplates
|
||||
end
|
||||
|
||||
function XDailyDungeonConfigs.GetDailyDungeonIdByStageId(stageId)
|
||||
for _, v in pairs(DailyDungeonDataTemplates) do
|
||||
for _, v2 in pairs(v.StageId) do
|
||||
if v2 == stageId then
|
||||
return v.Id
|
||||
end
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
function XDailyDungeonConfigs.GetDailyDropGroupList()
|
||||
return DailyDropGroupTemplates
|
||||
end
|
||||
|
||||
function XDailyDungeonConfigs.GetFubenDailyShopId(id)
|
||||
local data = DailyDungeonDataTemplates[id]
|
||||
return data and data.ShopId
|
||||
end
|
40
Resources/Scripts/XConfig/XDisplayConfigs.lua
Normal file
40
Resources/Scripts/XConfig/XDisplayConfigs.lua
Normal file
|
@ -0,0 +1,40 @@
|
|||
XDisplayConfigs = XDisplayConfigs or {}
|
||||
|
||||
local tableInsert = table.insert
|
||||
|
||||
local TABLE_DISPLAY_PATH = "Client/Display/Display.tab"
|
||||
local TABLE_CONTENT_PATH = "Client/Display/DisplayContent.tab"
|
||||
|
||||
local DisplayTable = {}
|
||||
local ContentTable = {}
|
||||
local Groups = {}
|
||||
|
||||
function XDisplayConfigs.Init()
|
||||
DisplayTable = XTableManager.ReadByIntKey(TABLE_DISPLAY_PATH, XTable.XTableDisplay, "Id")
|
||||
if not DisplayTable then
|
||||
XLog.Error("XDisplayConfigs.Init 函数错误, 根据键值Id读取表 " .. TABLE_DISPLAY_PATH .. " 的时候出错")
|
||||
end
|
||||
|
||||
ContentTable = XTableManager.ReadByIntKey(TABLE_CONTENT_PATH, XTable.XTableDisplayContent, "Id")
|
||||
for _, tab in pairs(DisplayTable) do
|
||||
local group = Groups[tab.Model]
|
||||
if not group then
|
||||
group = { Ids = {}, Weights = {} }
|
||||
Groups[tab.Model] = group
|
||||
end
|
||||
tableInsert(group.Ids, tab.Id)
|
||||
tableInsert(group.Weights, tab.Weight)
|
||||
end
|
||||
end
|
||||
|
||||
function XDisplayConfigs.GetDisplayTable()
|
||||
return DisplayTable
|
||||
end
|
||||
|
||||
function XDisplayConfigs.GetContentTable()
|
||||
return ContentTable
|
||||
end
|
||||
|
||||
function XDisplayConfigs.GetGroups()
|
||||
return Groups
|
||||
end
|
48
Resources/Scripts/XConfig/XDlcConfig.lua
Normal file
48
Resources/Scripts/XConfig/XDlcConfig.lua
Normal file
|
@ -0,0 +1,48 @@
|
|||
local TABLE_DLC_DESC_PATH = "Client/DlcRes/DlcDesc.tab"
|
||||
local TABLE_DLC_STAGE_PATH = "Client/DlcRes/DlcStage.tab"
|
||||
local TABLE_DLC_FUNC_PATH = "Client/DlcRes/DlcFunc.tab"
|
||||
|
||||
local DlcDescConfig = {}
|
||||
local DlcStageConfig = {}
|
||||
local DlcFuncConfig = {}
|
||||
|
||||
local StageToDlcIdDic = {}
|
||||
local FuncToDlcIdDic = {}
|
||||
|
||||
|
||||
XDlcConfig = XDlcConfig or {}
|
||||
|
||||
function XDlcConfig.Init()
|
||||
--XLog.Error("XDlcConfig init")
|
||||
DlcDescConfig = XTableManager.ReadByIntKey(TABLE_DLC_DESC_PATH, XTable.XTableDlcDesc, "DlcId")
|
||||
DlcStageConfig = XTableManager.ReadByIntKey(TABLE_DLC_STAGE_PATH, XTable.XTableDlcStage, "DlcId")
|
||||
DlcFuncConfig = XTableManager.ReadByIntKey(TABLE_DLC_FUNC_PATH, XTable.XTableDlcFunc, "DlcId")
|
||||
|
||||
for k,v in pairs(DlcStageConfig) do
|
||||
--XLog.Error("DlcStageConfig["..k.."] = " .. v)
|
||||
for k2,v2 in ipairs(v.StageIds) do
|
||||
StageToDlcIdDic[v2] = k
|
||||
--XLog.Error("StageToDlcIdDic["..v2.."] = " .. k)
|
||||
end
|
||||
end
|
||||
|
||||
for k,v in pairs(DlcFuncConfig) do
|
||||
--XLog.Error("DlcFuncConfig["..k.."] = " .. v)
|
||||
for k2,v2 in ipairs(v.FuncIds) do
|
||||
FuncToDlcIdDic[v2] = k
|
||||
--XLog.Error("FuncToDlcIdDic["..v2.."] = " .. k)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XDlcConfig.StageToDlcId(stageId)
|
||||
return StageToDlcIdDic[stageId]
|
||||
end
|
||||
|
||||
function XDlcConfig.FuncToDlcId(funcId)
|
||||
return FuncToDlcIdDic[funcId]
|
||||
end
|
||||
|
||||
XDlcConfig.DlcDescConfig = DlcDescConfig
|
||||
XDlcConfig.StageToDlcIdDic = StageToDlcIdDic
|
||||
XDlcConfig.FuncToDlcIdDic = FuncToDlcIdDic
|
1035
Resources/Scripts/XConfig/XDormConfig.lua
Normal file
1035
Resources/Scripts/XConfig/XDormConfig.lua
Normal file
File diff suppressed because it is too large
Load diff
259
Resources/Scripts/XConfig/XDrawConfigs.lua
Normal file
259
Resources/Scripts/XConfig/XDrawConfigs.lua
Normal file
|
@ -0,0 +1,259 @@
|
|||
local table = table
|
||||
local tableInsert = table.insert
|
||||
|
||||
XDrawConfigs = XDrawConfigs or {}
|
||||
|
||||
XDrawConfigs.CombinationsTypes = {
|
||||
Normal = 1,
|
||||
Aim = 2,
|
||||
NewUp = 3,
|
||||
Furniture = 4,
|
||||
CharacterUp = 5,
|
||||
EquipSuit = 6,
|
||||
}
|
||||
|
||||
XDrawConfigs.DrawSetType = {
|
||||
Normal = 1,
|
||||
Destiny = 2,
|
||||
}
|
||||
|
||||
XDrawConfigs.RareRank = {
|
||||
A = 1,
|
||||
S = 2,
|
||||
}
|
||||
|
||||
XDrawConfigs.RuleType = {
|
||||
Tab = 0,
|
||||
Normal = 1,
|
||||
Lotto = 2,
|
||||
}
|
||||
|
||||
XDrawConfigs.GroupType = {
|
||||
Normal = 1,
|
||||
Destiny = 2,
|
||||
}
|
||||
|
||||
---
|
||||
--- 卡池可掉落的奖励类型
|
||||
XDrawConfigs.DrawCapacityCheckType =
|
||||
{
|
||||
Partner = 1 -- 伙伴
|
||||
}
|
||||
|
||||
local TABLE_DRAW_PREVIEW = "Client/Draw/DrawPreview.tab"
|
||||
local TABLE_DRAW_PREVIEW_GOODS = "Client/Draw/DrawPreviewGoods.tab"
|
||||
local TABLE_DRAW_COMBINATIONS = "Client/Draw/DrawCombinations.tab"
|
||||
local TABLE_DRAW_PROB = "Client/Draw/DrawProbShow.tab"
|
||||
local TABLE_GROUP_RULE = "Client/Draw/DrawGroupRule.tab"
|
||||
local TABLE_AIMPROBABILITY = "Client/Draw/DrawAimProbability.tab"
|
||||
local TABLE_DRAW_SHOW = "Client/Draw/DrawShow.tab"
|
||||
local TABLE_DRAW_NEWYEARSHOW = "Client/Draw/JPDrawNewYearShow.tab"
|
||||
local TABLE_DRAW_CAMERA = "Client/Draw/DrawCamera.tab"
|
||||
local TABLE_DRAW_TABS = "Client/Draw/DrawTabs.tab"
|
||||
local TABLE_DRAW_SHOW_CHARACTER = "Client/Draw/DrawShowCharacter.tab"
|
||||
local TABLE_DRAW_TYPE_CHANGE = "Client/Draw/DrawTypeChange.tab"
|
||||
local TABLE_DRAW_SHOW_EFFECT = "Client/Draw/DrawShowEffect.tab"
|
||||
local TABLE_DRAW_GROUP_RELATION = "Client/Draw/DrawGroupRelation.tab"
|
||||
local TABLE_DRAW_SKIP = "Client/Draw/DrawSkip.tab"
|
||||
|
||||
local DrawPreviews = {}
|
||||
local DrawCombinations = {}
|
||||
local DrawProbs = {}
|
||||
local DrawGroupRule = {}
|
||||
local DrawAimProbability = {}
|
||||
local DrawShow = {}
|
||||
local DrawShowEffect = {}
|
||||
local DrawCamera = {}
|
||||
local DrawTabs = {}
|
||||
local DrawShowCharacter = {}
|
||||
local DrawTypeChangeCfg = {}
|
||||
local DrawSubGroupDic = {}
|
||||
local DrawGroupRelationCfg = {}
|
||||
local DrawGroupRelationDic = {}
|
||||
local DrawSkipCfg = {}
|
||||
local DrawNewYearShow = {}
|
||||
|
||||
function XDrawConfigs.Init()
|
||||
DrawCombinations = XTableManager.ReadByIntKey(TABLE_DRAW_COMBINATIONS, XTable.XTableDrawCombinations, "Id")
|
||||
DrawGroupRule = XTableManager.ReadByIntKey(TABLE_GROUP_RULE, XTable.XTableDrawGroupRule, "Id")
|
||||
DrawShow = XTableManager.ReadByIntKey(TABLE_DRAW_SHOW, XTable.XTableDrawShow, "Type")
|
||||
DrawCamera = XTableManager.ReadByIntKey(TABLE_DRAW_CAMERA, XTable.XTableDrawCamera, "Id")
|
||||
DrawTabs = XTableManager.ReadByIntKey(TABLE_DRAW_TABS, XTable.XTableDrawTabs, "Id")
|
||||
DrawShowCharacter = XTableManager.ReadByIntKey(TABLE_DRAW_SHOW_CHARACTER, XTable.XTableDrawShowCharacter, "Id")
|
||||
DrawAimProbability = XTableManager.ReadByIntKey(TABLE_AIMPROBABILITY, XTable.XTableDrawAimProbability, "Id")
|
||||
DrawTypeChangeCfg = XTableManager.ReadByIntKey(TABLE_DRAW_TYPE_CHANGE, XTable.XTableDrawTypeChange, "MainGroupId")
|
||||
DrawShowEffect = XTableManager.ReadByIntKey(TABLE_DRAW_SHOW_EFFECT, XTable.XTableDrawShowEffect, "EffectGroupId")
|
||||
DrawGroupRelationCfg = XTableManager.ReadByIntKey(TABLE_DRAW_GROUP_RELATION, XTable.XTableDrawGroupRelation, "NormalGroupId")
|
||||
DrawSkipCfg = XTableManager.ReadByIntKey(TABLE_DRAW_SKIP, XTable.XTableDrawSkip, "DrawGroupId")
|
||||
DrawNewYearShow = XTableManager.ReadByIntKey(TABLE_DRAW_NEWYEARSHOW, XTable.XTableDrawNewYearActivityShow, "Type")
|
||||
|
||||
local previews = XTableManager.ReadByIntKey(TABLE_DRAW_PREVIEW, XTable.XTableDrawPreview, "Id")
|
||||
local previewGoods = XTableManager.ReadByIntKey(TABLE_DRAW_PREVIEW_GOODS, XTable.XTableRewardGoods, "Id")
|
||||
|
||||
for drawId, preview in pairs(previews) do
|
||||
local upGoodsIds = preview.UpGoodsId
|
||||
local upGoods = {}
|
||||
for i = 1, #upGoodsIds do
|
||||
tableInsert(upGoods, XRewardManager.CreateRewardGoodsByTemplate(previewGoods[upGoodsIds[i]]))
|
||||
end
|
||||
|
||||
local goodsIds = preview.GoodsId
|
||||
local goods = {}
|
||||
for i = 1, #goodsIds do
|
||||
tableInsert(goods, XRewardManager.CreateRewardGoodsByTemplate(previewGoods[goodsIds[i]]))
|
||||
end
|
||||
|
||||
local drawPreview = {}
|
||||
drawPreview.UpGoods = upGoods
|
||||
drawPreview.Goods = goods
|
||||
DrawPreviews[drawId] = drawPreview
|
||||
end
|
||||
|
||||
local drawProbList = XTableManager.ReadByIntKey(TABLE_DRAW_PROB, XTable.XTableDrawProbShow, "Id")
|
||||
for _, v in pairs(drawProbList) do
|
||||
if not DrawProbs[v.DrawId] then
|
||||
DrawProbs[v.DrawId] = {}
|
||||
end
|
||||
tableInsert(DrawProbs[v.DrawId], v)
|
||||
end
|
||||
|
||||
XDrawConfigs.SetDrawSubGroupDic()
|
||||
XDrawConfigs.SetGroupRelationDic()
|
||||
end
|
||||
|
||||
function XDrawConfigs.SetDrawSubGroupDic()
|
||||
for _,typeChangeGroup in pairs(DrawTypeChangeCfg or {}) do
|
||||
for _,subGroupId in pairs(typeChangeGroup.SubGroupId or {}) do
|
||||
if not DrawSubGroupDic[subGroupId] then
|
||||
DrawSubGroupDic[subGroupId] = typeChangeGroup.MainGroupId
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XDrawConfigs.SetGroupRelationDic()
|
||||
DrawGroupRelationDic = {}
|
||||
for _,data in pairs (DrawGroupRelationCfg)do
|
||||
if not DrawGroupRelationDic[data.NormalGroupId] then
|
||||
DrawGroupRelationDic[data.NormalGroupId] = data.DestinyGroupId
|
||||
else
|
||||
XLog.Error("Can Not Use Same GroupId for NormalGroupId .GroupId:"..data.NormalGroupId)
|
||||
end
|
||||
|
||||
if not DrawGroupRelationDic[data.DestinyGroupId] then
|
||||
DrawGroupRelationDic[data.DestinyGroupId] = data.NormalGroupId
|
||||
else
|
||||
XLog.Error("Can Not Use Same GroupId for DestinyGroupId .GroupId:"..data.DestinyGroupId)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawGroupRelationDic()
|
||||
return DrawGroupRelationDic
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawCombinations()
|
||||
return DrawCombinations
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawGroupRule()
|
||||
return DrawGroupRule
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawAimProbability()
|
||||
return DrawAimProbability
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawShow()
|
||||
return DrawShow
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawNewYearShow()
|
||||
return DrawNewYearShow
|
||||
end
|
||||
|
||||
---
|
||||
--- 获取'drawGroupId'卡组的跳转ID数组
|
||||
function XDrawConfigs.GetDrawSkipList(drawGroupId)
|
||||
if DrawSkipCfg[drawGroupId] then
|
||||
return DrawSkipCfg[drawGroupId].SkipId
|
||||
end
|
||||
return {}
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawShowCharacter()
|
||||
return DrawShowCharacter
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawCamera()
|
||||
return DrawCamera
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawTabs()
|
||||
return DrawTabs
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawPreviews()
|
||||
return DrawPreviews
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawProbs()
|
||||
return DrawProbs
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawTypeChangeCfg()
|
||||
return DrawTypeChangeCfg
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawGroupRelationCfg()
|
||||
return DrawGroupRelationCfg
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawTypeChangeCfgById(id)
|
||||
return DrawTypeChangeCfg[id]
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawSubGroupDic()
|
||||
return DrawSubGroupDic
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawTabById(id)
|
||||
if not DrawTabs[id] then
|
||||
XLog.Error("Client/Draw/DrawTabs.tab Id = " .. id .. " Is Null")
|
||||
end
|
||||
return DrawTabs[id]
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawGroupRuleById(id)
|
||||
if not DrawGroupRule[id] then
|
||||
XLog.Error("Client/Draw/DrawGroupRule.tab Id = " .. id .. " Is Null")
|
||||
end
|
||||
return DrawGroupRule[id]
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetDrawShowEffectById(id)
|
||||
if not DrawShowEffect[id] then
|
||||
XLog.Error("Client/Draw/DrawShowEffect.tab Id = " .. id .. " Is Null")
|
||||
end
|
||||
return DrawShowEffect[id]
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetOpenUpEffect(id)
|
||||
return XDrawConfigs.GetDrawShowEffectById(id).PanelOpenUp
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetOpenDownEffect(id)
|
||||
return XDrawConfigs.GetDrawShowEffectById(id).PanelOpenDown
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetCardShowOffEffect(id)
|
||||
return XDrawConfigs.GetDrawShowEffectById(id).PanelCardShowOff
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetOpenBoxEffect(id)
|
||||
return XDrawConfigs.GetDrawShowEffectById(id).EffectOpenBox
|
||||
end
|
||||
|
||||
function XDrawConfigs.GetSkipEffect(id)
|
||||
return XDrawConfigs.GetDrawShowEffectById(id).SkipEffect
|
||||
end
|
90
Resources/Scripts/XConfig/XEliminateGameConfig.lua
Normal file
90
Resources/Scripts/XConfig/XEliminateGameConfig.lua
Normal file
|
@ -0,0 +1,90 @@
|
|||
XEliminateGameConfig = XEliminateGameConfig or {}
|
||||
|
||||
|
||||
local TABLE_ELIMINATEGAME_GAME = "Share/EliminateGame/EliminateGame.tab"
|
||||
local TABLE_ELIMINATEGAME_GRID = "Share/EliminateGame/EliminateGrid.tab"
|
||||
local TABLE_ELIMINATEGAME_REWARD = "Share/EliminateGame/EliminateReward.tab"
|
||||
local TABLE_ELIMINATEGAME_GRID_TYPE = "Share/EliminateGame/EliminateGridType.tab"
|
||||
|
||||
local EliminateGameConfig = {}
|
||||
local EliminateGridConfig = {}
|
||||
local EliminateRewardConfig = {}
|
||||
local EliminateGridTypeConfig = {}
|
||||
|
||||
function XEliminateGameConfig.Init()
|
||||
EliminateGameConfig = XTableManager.ReadByIntKey(TABLE_ELIMINATEGAME_GAME, XTable.XTableEliminateGame, "Id")
|
||||
EliminateGridConfig = XTableManager.ReadByIntKey(TABLE_ELIMINATEGAME_GRID, XTable.XTableEliminateGrid, "Id")
|
||||
EliminateRewardConfig = XTableManager.ReadByIntKey(TABLE_ELIMINATEGAME_REWARD, XTable.XTableEliminateReward, "Id")
|
||||
EliminateGridTypeConfig = XTableManager.ReadByIntKey(TABLE_ELIMINATEGAME_GRID_TYPE, XTable.XTableEliminateGridType, "Id")
|
||||
end
|
||||
|
||||
|
||||
--获取消除游戏
|
||||
function XEliminateGameConfig.GetEliminateGame(id)
|
||||
if not EliminateGameConfig or not EliminateGameConfig[id] then
|
||||
XLog.ErrorTableDataNotFound("XEliminateGameConfig.GetEliminateGame", "Id", TABLE_ELIMINATEGAME_GAME, "id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
|
||||
return EliminateGameConfig[id]
|
||||
end
|
||||
|
||||
|
||||
--获取消除游戏格子
|
||||
function XEliminateGameConfig.GetEliminateGameGrid(id)
|
||||
if not EliminateGridConfig or not EliminateGridConfig[id] then
|
||||
XLog.ErrorTableDataNotFound("XEliminateGameConfig.GetEliminateGameGrid", "Id", TABLE_ELIMINATEGAME_GRID, "id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
|
||||
return EliminateGridConfig[id]
|
||||
end
|
||||
|
||||
|
||||
--获取消除游戏奖励
|
||||
function XEliminateGameConfig.GetEliminateGameReward(id)
|
||||
if not EliminateRewardConfig or not EliminateRewardConfig[id] then
|
||||
XLog.ErrorTableDataNotFound("XEliminateGameConfig.GetEliminateGameReward", "Id", TABLE_ELIMINATEGAME_REWARD, "id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
|
||||
return EliminateRewardConfig[id]
|
||||
end
|
||||
|
||||
|
||||
--获取格子
|
||||
function XEliminateGameConfig.GetEliminateGameGridByType(typeId)
|
||||
if not EliminateGridTypeConfig then
|
||||
XLog.ErrorTableDataNotFound("XEliminateGameConfig.GetEliminateGameGridByType", "Id", TABLE_ELIMINATEGAME_GRID_TYPE, "typeId", tostring(typeId))
|
||||
return nil
|
||||
end
|
||||
|
||||
for i, v in pairs(EliminateGridTypeConfig) do
|
||||
if v.Type == typeId then
|
||||
return v
|
||||
end
|
||||
end
|
||||
|
||||
return nil
|
||||
end
|
||||
|
||||
|
||||
-- --获取格子
|
||||
-- function XEliminateGameConfig.GetEliminateGameGridById(id)
|
||||
-- if not EliminateGridTypeConfig or not EliminateGridTypeConfig[id] then
|
||||
-- XLog.ErrorTableDataNotFound("XEliminateGameConfig.GetEliminateGameGridById", "Id", TABLE_ELIMINATEGAME_GRID_TYPE, "id", tostring(id))
|
||||
-- return nil
|
||||
-- end
|
||||
-- return EliminateGridTypeConfig[id]
|
||||
-- end
|
||||
--获取消除游戏奖励
|
||||
function XEliminateGameConfig.GetEliminateGameRewardByGameId(id)
|
||||
local rewards = {}
|
||||
for _, v in pairs(EliminateRewardConfig) do
|
||||
if v.GameId == id then
|
||||
table.insert(rewards, v)
|
||||
end
|
||||
end
|
||||
|
||||
return rewards
|
||||
end
|
957
Resources/Scripts/XConfig/XEquipConfig.lua
Normal file
957
Resources/Scripts/XConfig/XEquipConfig.lua
Normal file
|
@ -0,0 +1,957 @@
|
|||
local tableInsert = table.insert
|
||||
|
||||
XEquipConfig = XEquipConfig or {}
|
||||
|
||||
XEquipConfig.MAX_STAR_COUNT = 6 -- 最大星星数
|
||||
XEquipConfig.MAX_SUIT_SKILL_COUNT = 3 -- 最大套装激活技能个数
|
||||
XEquipConfig.MAX_RESONANCE_SKILL_COUNT = 3 -- 最大共鸣属性/技能个数
|
||||
XEquipConfig.MIN_RESONANCE_EQUIP_STAR_COUNT = 5 -- 装备共鸣最低星级
|
||||
XEquipConfig.MAX_SUIT_COUNT = 6 -- 套装最大数量
|
||||
XEquipConfig.DEFAULT_SUIT_ID = { -- 用来显示全部套装数量的默认套装Id
|
||||
Normal = 1, --构造体
|
||||
Isomer = 2, --感染体
|
||||
}
|
||||
XEquipConfig.CAN_NOT_AUTO_EAT_STAR = 5 -- 大于等于该星级的装备不会被当做默认狗粮选中
|
||||
XEquipConfig.AWAKE_SKILL_COUNT = 2 -- 觉醒技能数量
|
||||
|
||||
--武器类型
|
||||
XEquipConfig.EquipType = {
|
||||
Universal = 0, -- 通用
|
||||
Suncha = 1, -- 双枪
|
||||
Sickle = 2, -- 太刀
|
||||
Mount = 3, -- 挂载
|
||||
Arrow = 4, -- 弓箭
|
||||
Chainsaw = 5, -- 电锯
|
||||
Sword = 6, -- 大剑
|
||||
Hcan = 7, -- 巨炮
|
||||
DoubleSwords = 8, -- 双短刀
|
||||
sickle = 9, --镰刀
|
||||
IsomerSword = 10, -- 感染者专用大剑
|
||||
Food = 99, -- 狗粮
|
||||
}
|
||||
|
||||
XEquipConfig.UserType = {
|
||||
All = 0, --通用
|
||||
Normal = 1, --构造体
|
||||
Isomer = 2, --异构体/感染体
|
||||
}
|
||||
|
||||
XEquipConfig.AddAttrType = {
|
||||
Numeric = 1, -- 数值
|
||||
Rate = 2, -- 基础属性的百分比
|
||||
Promoted = 3, -- 等级加成
|
||||
}
|
||||
|
||||
XEquipConfig.UserType = {
|
||||
All = 0, --通用
|
||||
Normal = 1, --构造体
|
||||
Isomer = 2, --异构体/感染体
|
||||
}
|
||||
|
||||
--要显示的属性排序
|
||||
XEquipConfig.AttrSortType = {
|
||||
XNpcAttribType.Life,
|
||||
XNpcAttribType.AttackNormal,
|
||||
XNpcAttribType.DefenseNormal,
|
||||
XNpcAttribType.Crit,
|
||||
}
|
||||
|
||||
XEquipConfig.EquipSite = {
|
||||
Weapon = 0, -- 武器
|
||||
Awareness = { -- 意识
|
||||
One = 1, -- 1号位
|
||||
Two = 2, -- 2号位
|
||||
Three = 3, -- 3号位
|
||||
Four = 4, -- 4号位
|
||||
Five = 5, -- 5号位
|
||||
Six = 6, -- 6号位
|
||||
},
|
||||
}
|
||||
|
||||
XEquipConfig.AwarenessSiteToStr = {
|
||||
[XEquipConfig.EquipSite.Awareness.One] = CS.XTextManager.GetText("AwarenessSiteOne"),
|
||||
[XEquipConfig.EquipSite.Awareness.Two] = CS.XTextManager.GetText("AwarenessSiteTwo"),
|
||||
[XEquipConfig.EquipSite.Awareness.Three] = CS.XTextManager.GetText("AwarenessSiteThree"),
|
||||
[XEquipConfig.EquipSite.Awareness.Four] = CS.XTextManager.GetText("AwarenessSiteFour"),
|
||||
[XEquipConfig.EquipSite.Awareness.Five] = CS.XTextManager.GetText("AwarenessSiteFive"),
|
||||
[XEquipConfig.EquipSite.Awareness.Six] = CS.XTextManager.GetText("AwarenessSiteSix"),
|
||||
}
|
||||
|
||||
XEquipConfig.Classify = {
|
||||
Weapon = 1, -- 武器
|
||||
Awareness = 2, -- 意识
|
||||
}
|
||||
|
||||
XEquipConfig.EquipResonanceType = {
|
||||
Attrib = 1, -- 属性共鸣
|
||||
CharacterSkill = 2, -- 角色技能共鸣
|
||||
WeaponSkill = 3, -- 武器技能共鸣
|
||||
}
|
||||
|
||||
--排序优先级选项
|
||||
XEquipConfig.PriorSortType = {
|
||||
Star = 0, -- 星级
|
||||
Breakthrough = 1, -- 突破次数
|
||||
Level = 2, -- 等级
|
||||
Proceed = 3, -- 入手顺序
|
||||
}
|
||||
|
||||
-- 武器部位
|
||||
XEquipConfig.WeaponCase = {
|
||||
Case1 = 1,
|
||||
Case2 = 2,
|
||||
Case3 = 3,
|
||||
--[[支持继续扩展
|
||||
Case4 = 4,
|
||||
...
|
||||
]]
|
||||
}
|
||||
|
||||
-- 狗粮类型
|
||||
XEquipConfig.EatType = {
|
||||
Equip = 0,
|
||||
Item = 1,
|
||||
}
|
||||
|
||||
-- 武器模型用途
|
||||
XEquipConfig.WeaponUsage = {
|
||||
Role = 1, -- ui角色身上
|
||||
Battle = 2, -- 战斗
|
||||
Show = 3, -- ui单独展示
|
||||
}
|
||||
|
||||
-- 装备详情UI页签
|
||||
XEquipConfig.EquipDetailBtnTabIndex = {
|
||||
Detail = 1,
|
||||
Strengthen = 2,
|
||||
Resonance = 3,
|
||||
}
|
||||
|
||||
--武器超频界面页签状态
|
||||
XEquipConfig.EquipAwakeTabIndex = {
|
||||
Material = 1,
|
||||
CrystalMoney = 2,
|
||||
}
|
||||
|
||||
-- 共鸣后武器显示延时时间
|
||||
XEquipConfig.WeaponResonanceShowDelay = CS.XGame.ClientConfig:GetInt("WeaponResonanceShowDelay")
|
||||
|
||||
-- 分解数量溢出提示文本
|
||||
XEquipConfig.DecomposeRewardOverLimitTip = {
|
||||
[XEquipConfig.Classify.Weapon] = CS.XTextManager.GetText("WeaponBoxWillBeFull"),
|
||||
[XEquipConfig.Classify.Awareness] = CS.XTextManager.GetText("WaferBoxWillBeFull"),
|
||||
}
|
||||
|
||||
local EquipBreakThroughIcon = {
|
||||
[0] = CS.XGame.ClientConfig:GetString("EquipBreakThrough0"),
|
||||
[1] = CS.XGame.ClientConfig:GetString("EquipBreakThrough1"),
|
||||
[2] = CS.XGame.ClientConfig:GetString("EquipBreakThrough2"),
|
||||
[3] = CS.XGame.ClientConfig:GetString("EquipBreakThrough3"),
|
||||
[4] = CS.XGame.ClientConfig:GetString("EquipBreakThrough4"),
|
||||
}
|
||||
|
||||
local EquipBreakThroughSmallIcon = {
|
||||
[1] = CS.XGame.ClientConfig:GetString("EquipBreakThroughSmall1"),
|
||||
[2] = CS.XGame.ClientConfig:GetString("EquipBreakThroughSmall2"),
|
||||
[3] = CS.XGame.ClientConfig:GetString("EquipBreakThroughSmall3"),
|
||||
[4] = CS.XGame.ClientConfig:GetString("EquipBreakThroughSmall4"),
|
||||
}
|
||||
|
||||
local EquipBreakThroughBigIcon = {
|
||||
[0] = CS.XGame.ClientConfig:GetString("EquipBreakThroughBig0"),
|
||||
[1] = CS.XGame.ClientConfig:GetString("EquipBreakThroughBig1"),
|
||||
[2] = CS.XGame.ClientConfig:GetString("EquipBreakThroughBig2"),
|
||||
[3] = CS.XGame.ClientConfig:GetString("EquipBreakThroughBig3"),
|
||||
[4] = CS.XGame.ClientConfig:GetString("EquipBreakThroughBig4"),
|
||||
}
|
||||
|
||||
-- 共鸣图标(觉醒后图标变更)
|
||||
local EquipResonanceIconPath = {
|
||||
[true] = CS.XGame.ClientConfig:GetString("EquipAwakenIcon"),
|
||||
[false] = CS.XGame.ClientConfig:GetString("EquipResonanceIcon"),
|
||||
}
|
||||
|
||||
local TABLE_EQUIP_PATH = "Share/Equip/Equip.tab"
|
||||
local TABLE_EQUIP_BREAKTHROUGH_PATH = "Share/Equip/EquipBreakThrough.tab"
|
||||
local TABLE_EQUIP_SUIT_PATH = "Share/Equip/EquipSuit.tab"
|
||||
local TABLE_EQUIP_SUIT_EFFECT_PATH = "Share/Equip/EquipSuitEffect.tab"
|
||||
local TABLE_LEVEL_UP_TEMPLATE_PATH = "Share/Equip/LevelUpTemplate/"
|
||||
local TABLE_EQUIP_DECOMPOSE_PATH = "Share/Equip/EquipDecompose.tab"
|
||||
local TABLE_EAT_EQUIP_COST_PATH = "Share/Equip/EatEquipCost.tab"
|
||||
local TABLE_EQUIP_RESONANCE_PATH = "Share/Equip/EquipResonance.tab"
|
||||
local TABLE_EQUIP_RESONANCE_CONSUME_ITEM_PATH = "Share/Equip/EquipResonanceUseItem.tab"
|
||||
local TABLE_WEAPON_SKILL_PATH = "Share/Equip/WeaponSkill.tab"
|
||||
local TABLE_WEAPON_SKILL_POOL_PATH = "Share/Equip/WeaponSkillPool.tab"
|
||||
local TABLE_EQUIP_AWAKE_PATH = "Share/Equip/EquipAwake.tab"
|
||||
local TABLE_EQUIP_RES_PATH = "Client/Equip/EquipRes.tab"
|
||||
local TABLE_EQUIP_MODEL_PATH = "Client/Equip/EquipModel.tab"
|
||||
local TABLE_EQUIP_MODEL_TRANSFORM_PATH = "Client/Equip/EquipModelTransform.tab"
|
||||
local TABLE_EQUIP_SKIPID_PATH = "Client/Equip/EquipSkipId.tab"
|
||||
local TABLE_EQUIP_ANIM_PATH = "Client/Equip/EquipAnim.tab"
|
||||
|
||||
local MAX_WEAPON_COUNT -- 武器拥有最大数量
|
||||
local MAX_AWARENESS_COUNT -- 意识拥有最大数量
|
||||
local EQUIP_EXP_INHERIT_PRECENT -- 强化时的经验继承百分比
|
||||
local EQUIP_RECYCLE_ITEM_PERCENT -- 回收获得道具数量百分比
|
||||
local MIN_RESONANCE_BIND_STAR -- 只有6星以上的意识才可以共鸣出绑定角色的技能
|
||||
local MIN_AWAKE_STAR -- 最低可觉醒星数
|
||||
|
||||
local EquipTemplates = {} -- 装备配置
|
||||
local EquipBreakthroughTemplate = {} -- 突破配置
|
||||
local EquipResonanceTemplate = {} -- 共鸣配置
|
||||
local EquipResonanceConsumeItemTemplates = {} -- 共鸣消耗物品配置
|
||||
local LevelUpTemplates = {} -- 升级模板
|
||||
local EquipSuitTemplate = {} -- 套装技能表
|
||||
local EquipSuitEffectTemplate = {} -- 套装效果表
|
||||
local WeaponSkillTemplate = {} -- 武器技能配置
|
||||
local WeaponSkillPoolTemplate = {} -- 武器技能池(共鸣用)配置
|
||||
local EatEquipCostTemplate = {} -- 装备强化消耗配置
|
||||
local EquipResTemplates = {} -- 装备资源配置
|
||||
local EquipModelTemplates = {} -- 武器模型配置
|
||||
local EquipModelTransformTemplates = {} -- 武器模型UI偏移配置
|
||||
local EquipSkipIdTemplates = {} -- 装备来源跳转ID配置
|
||||
local EquipAwakeTemplate = {} -- 觉醒配置
|
||||
local EquipAnimTemplates = {} -- 动画配置
|
||||
|
||||
local EquipBorderDic = {} -- 装备边界属性构造字典
|
||||
local EquipDecomposeDic = {}
|
||||
local SuitIdToEquipTemplateIdsDic = {} -- 套装Id索引的装备Id字典
|
||||
local SuitSitesDic = {} -- 套装产出部位字典
|
||||
|
||||
--记录超频界面的页签状态
|
||||
local EquipAwakeTabIndex = XEquipConfig.EquipAwakeTabIndex.Material
|
||||
|
||||
local CompareBreakthrough = function(templateId, breakthrough)
|
||||
local template = EquipBorderDic[templateId]
|
||||
if not template then
|
||||
return
|
||||
end
|
||||
|
||||
if not template.MaxBreakthrough or template.MaxBreakthrough < breakthrough then
|
||||
template.MaxBreakthrough = breakthrough
|
||||
end
|
||||
end
|
||||
|
||||
local CheckEquipBorderConfig = function()
|
||||
for k, v in pairs(EquipBorderDic) do
|
||||
local template = EquipBorderDic[k]
|
||||
template.MinLevel = 1
|
||||
local equipBreakthroughCfg = XEquipConfig.GetEquipBreakthroughCfg(k, v.MaxBreakthrough)
|
||||
template.MaxLevel = equipBreakthroughCfg.LevelLimit
|
||||
template.MinBreakthrough = 0
|
||||
end
|
||||
end
|
||||
|
||||
local InitEquipBreakthroughConfig = function()
|
||||
local tab = XTableManager.ReadByIntKey(TABLE_EQUIP_BREAKTHROUGH_PATH, XTable.XTableEquipBreakthrough, "Id")
|
||||
for _, config in pairs(tab) do
|
||||
if not EquipBreakthroughTemplate[config.EquipId] then
|
||||
EquipBreakthroughTemplate[config.EquipId] = {}
|
||||
end
|
||||
|
||||
if config.AttribPromotedId == 0 then
|
||||
XLog.ErrorTableDataNotFound("InitEquipBreakthroughConfig", "EquipBreakthroughTemplate",
|
||||
TABLE_EQUIP_BREAKTHROUGH_PATH, "config.EquipId", tostring(config.EquipId))
|
||||
end
|
||||
|
||||
EquipBreakthroughTemplate[config.EquipId][config.Times] = config
|
||||
CompareBreakthrough(config.EquipId, config.Times)
|
||||
end
|
||||
end
|
||||
|
||||
local InitEquipLevelConfig = function()
|
||||
local paths = CS.XTableManager.GetPaths(TABLE_LEVEL_UP_TEMPLATE_PATH)
|
||||
XTool.LoopCollection(paths, function(path)
|
||||
local key = tonumber(XTool.GetFileNameWithoutExtension(path))
|
||||
LevelUpTemplates[key] = XTableManager.ReadByIntKey(path, XTable.XTableEquipLevelUp, "Level")
|
||||
end)
|
||||
end
|
||||
|
||||
local InitWeaponSkillPoolConfig = function()
|
||||
local tab = XTableManager.ReadByIntKey(TABLE_WEAPON_SKILL_POOL_PATH, XTable.XTableWeaponSkillPool, "Id")
|
||||
for _, config in pairs(tab) do
|
||||
WeaponSkillPoolTemplate[config.PoolId] = WeaponSkillPoolTemplate[config.PoolId] or {}
|
||||
WeaponSkillPoolTemplate[config.PoolId][config.CharacterId] = WeaponSkillPoolTemplate[config.PoolId][config.CharacterId] or {}
|
||||
|
||||
for i, skillId in ipairs(config.SkillId) do
|
||||
tableInsert(WeaponSkillPoolTemplate[config.PoolId][config.CharacterId], skillId)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local InitEquipModelTransformConfig = function()
|
||||
local tab = XTableManager.ReadByIntKey(TABLE_EQUIP_MODEL_TRANSFORM_PATH, XTable.XTableEquipModelTransform, "Id")
|
||||
for id, config in pairs(tab) do
|
||||
local indexId = config.IndexId
|
||||
if not indexId then
|
||||
XLog.ErrorTableDataNotFound("InitEquipModelTransformConfig", "tab", TABLE_EQUIP_MODEL_TRANSFORM_PATH, "id", tostring(id))
|
||||
end
|
||||
EquipModelTransformTemplates[indexId] = EquipModelTransformTemplates[indexId] or {}
|
||||
|
||||
local uiName = config.UiName
|
||||
if not uiName then
|
||||
XLog.ErrorTableDataNotFound("InitEquipModelTransformConfig", "配置表中UiName字段", TABLE_EQUIP_MODEL_TRANSFORM_PATH, "id", tostring(id))
|
||||
end
|
||||
EquipModelTransformTemplates[indexId][uiName] = config
|
||||
end
|
||||
end
|
||||
|
||||
local InitEquipSkipIdConfig = function()
|
||||
local tab = XTableManager.ReadByIntKey(TABLE_EQUIP_SKIPID_PATH, XTable.XTableEquipSkipId, "Id")
|
||||
for id, config in pairs(tab) do
|
||||
local eatType = config.EatType
|
||||
EquipSkipIdTemplates[eatType] = EquipSkipIdTemplates[eatType] or {}
|
||||
|
||||
local site = config.Site
|
||||
if not site then
|
||||
XLog.ErrorTableDataNotFound("InitEquipSkipIdConfig", "配置表中Site字段", TABLE_EQUIP_SKIPID_PATH, "id", tostring(id))
|
||||
end
|
||||
EquipSkipIdTemplates[eatType][site] = config
|
||||
end
|
||||
end
|
||||
|
||||
local InitEquipSuitConfig = function()
|
||||
EquipSuitTemplate = XTableManager.ReadByIntKey(TABLE_EQUIP_SUIT_PATH, XTable.XTableEquipSuit, "Id")
|
||||
EquipSuitEffectTemplate = XTableManager.ReadByIntKey(TABLE_EQUIP_SUIT_EFFECT_PATH, XTable.XTableEquipSuitEffect, "Id")
|
||||
end
|
||||
|
||||
function XEquipConfig.Init()
|
||||
MAX_WEAPON_COUNT = CS.XGame.Config:GetInt("EquipWeaponMaxCount")
|
||||
MAX_AWARENESS_COUNT = CS.XGame.Config:GetInt("EquipChipMaxCount")
|
||||
EQUIP_EXP_INHERIT_PRECENT = CS.XGame.Config:GetInt("EquipExpInheritPercent")
|
||||
EQUIP_RECYCLE_ITEM_PERCENT = CS.XGame.Config:GetInt("EquipRecycleItemPercent")
|
||||
MIN_RESONANCE_BIND_STAR = CS.XGame.Config:GetInt("MinResonanceBindStar")
|
||||
MIN_AWAKE_STAR = CS.XGame.Config:GetInt("MinEquipAwakeStar")
|
||||
|
||||
EquipTemplates = CS.XNpcManager.EquipTemplateTable
|
||||
EquipResTemplates = XTableManager.ReadByIntKey(TABLE_EQUIP_RES_PATH, XTable.XTableEquipRes, "Id")
|
||||
EquipAwakeTemplate = XTableManager.ReadByIntKey(TABLE_EQUIP_AWAKE_PATH, XTable.XTableEquipAwake, "Id")
|
||||
XTool.LoopMap(EquipTemplates, function(id, equipCfg)
|
||||
EquipBorderDic[id] = {}
|
||||
local suitId = equipCfg.SuitId
|
||||
if suitId and suitId > 0 then
|
||||
SuitIdToEquipTemplateIdsDic[suitId] = SuitIdToEquipTemplateIdsDic[suitId] or {}
|
||||
tableInsert(SuitIdToEquipTemplateIdsDic[suitId], id)
|
||||
|
||||
SuitSitesDic[suitId] = SuitSitesDic[suitId] or {}
|
||||
SuitSitesDic[suitId][equipCfg.Site] = true
|
||||
end
|
||||
end)
|
||||
|
||||
InitEquipSuitConfig()
|
||||
InitEquipBreakthroughConfig()
|
||||
InitEquipLevelConfig()
|
||||
InitWeaponSkillPoolConfig()
|
||||
InitEquipModelTransformConfig()
|
||||
InitEquipSkipIdConfig()
|
||||
|
||||
CheckEquipBorderConfig()
|
||||
|
||||
EquipBorderDic = XReadOnlyTable.Create(EquipBorderDic)
|
||||
WeaponSkillTemplate = XTableManager.ReadByIntKey(TABLE_WEAPON_SKILL_PATH, XTable.XTableWeaponSkill, "Id")
|
||||
EquipResonanceTemplate = XTableManager.ReadByIntKey(TABLE_EQUIP_RESONANCE_PATH, XTable.XTableEquipResonance, "Id")
|
||||
EquipResonanceConsumeItemTemplates = XTableManager.ReadByIntKey(TABLE_EQUIP_RESONANCE_CONSUME_ITEM_PATH, XTable.XTableEquipResonanceUseItem, "Id")
|
||||
EquipModelTemplates = XTableManager.ReadByIntKey(TABLE_EQUIP_MODEL_PATH, XTable.XTableEquipModel, "Id")
|
||||
EquipAnimTemplates = XTableManager.ReadByStringKey(TABLE_EQUIP_ANIM_PATH, XTable.XTableEquipAnim, "ModelId")
|
||||
|
||||
local decomposetab = XTableManager.ReadByIntKey(TABLE_EQUIP_DECOMPOSE_PATH, XTable.XTableEquipDecompose, "Id")
|
||||
for _, v in pairs(decomposetab) do
|
||||
EquipDecomposeDic[v.Site .. v.Star .. v.Breakthrough] = v
|
||||
end
|
||||
|
||||
local eatCostTab = XTableManager.ReadByIntKey(TABLE_EAT_EQUIP_COST_PATH, XTable.XTableEatEquipCost, "Id")
|
||||
for _, v in pairs(eatCostTab) do
|
||||
EatEquipCostTemplate[v.Site .. v.Star] = v.UseMoney
|
||||
end
|
||||
end
|
||||
|
||||
function XEquipConfig.GetMaxWeaponCount()
|
||||
return MAX_WEAPON_COUNT
|
||||
end
|
||||
|
||||
function XEquipConfig.GetMaxAwarenessCount()
|
||||
return MAX_AWARENESS_COUNT
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipExpInheritPercent()
|
||||
return EQUIP_EXP_INHERIT_PRECENT
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipRecycleItemId()
|
||||
return XDataCenter.ItemManager.ItemId.EquipRecycleItemId
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipRecycleItemPercent()
|
||||
return EQUIP_RECYCLE_ITEM_PERCENT / 100
|
||||
end
|
||||
|
||||
function XEquipConfig.GetMinResonanceBindStar()
|
||||
return MIN_RESONANCE_BIND_STAR
|
||||
end
|
||||
|
||||
function XEquipConfig.GetMinAwakeStar()
|
||||
return MIN_AWAKE_STAR
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipCfg(templateId)
|
||||
local equipCfg = nil
|
||||
|
||||
if EquipTemplates:ContainsKey(templateId) then
|
||||
equipCfg = EquipTemplates[templateId]
|
||||
end
|
||||
|
||||
if not equipCfg then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipCfg", "equipCfg", TABLE_EQUIP_PATH, "templateId", tostring(templateId))
|
||||
return
|
||||
end
|
||||
|
||||
return equipCfg
|
||||
end
|
||||
|
||||
--todo 道具很多地方没有检查ID类型就调用了,临时处理下
|
||||
function XEquipConfig.CheckTemplateIdIsEquip(templateId)
|
||||
local equipCfg = nil
|
||||
|
||||
if EquipTemplates:ContainsKey(templateId) then
|
||||
equipCfg = EquipTemplates[templateId]
|
||||
end
|
||||
|
||||
return templateId and equipCfg
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEatEquipCostMoney(site, star)
|
||||
if not site then
|
||||
XLog.Error("XEquipConfig.GetEatEquipCostMoney函数参数错误,site不能为空")
|
||||
return
|
||||
end
|
||||
if not star then
|
||||
XLog.Error("XEquipConfig.GetEatEquipCostMoney函数参数错误,star不能为空")
|
||||
return
|
||||
end
|
||||
|
||||
return EatEquipCostTemplate[site .. star]
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipBorderCfg(templateId)
|
||||
local template = EquipBorderDic[templateId]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipBorderCfg", "template", TABLE_EQUIP_PATH, "templateId", tostring(templateId))
|
||||
return
|
||||
end
|
||||
return template
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipBreakthroughCfg(templateId, times)
|
||||
local template = EquipBreakthroughTemplate[templateId]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipBreakthroughCfg", "template",
|
||||
TABLE_EQUIP_BREAKTHROUGH_PATH, "templateId", tostring(templateId))
|
||||
return
|
||||
end
|
||||
|
||||
template = template[times]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipBreakthroughCfg", "template",
|
||||
TABLE_EQUIP_BREAKTHROUGH_PATH, "templateId : times", tostring(templateId) .. " : " .. tostring(times))
|
||||
return
|
||||
end
|
||||
|
||||
return template
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipResCfg(templateId, breakthroughTimes)
|
||||
breakthroughTimes = breakthroughTimes or 0
|
||||
local breakthroughCfg = XEquipConfig.GetEquipBreakthroughCfg(templateId, breakthroughTimes)
|
||||
|
||||
local resId = breakthroughCfg.ResId
|
||||
if not resId then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipResCfg", "resId",
|
||||
TABLE_EQUIP_BREAKTHROUGH_PATH, "templateId : times", tostring(templateId) .. " : " .. tostring(breakthroughTimes))
|
||||
return
|
||||
end
|
||||
|
||||
local template = EquipResTemplates[resId]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipResCfg", "template", TABLE_EQUIP_RES_PATH, "resId", tostring(resId))
|
||||
return
|
||||
end
|
||||
|
||||
return template
|
||||
end
|
||||
|
||||
--=========== EquipModel接口(begin) ===========
|
||||
function XEquipConfig.GetEquipModelName(modelTransId, usage)
|
||||
local template = EquipModelTemplates[modelTransId]
|
||||
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipModelName", "template", TABLE_EQUIP_MODEL_PATH, "modelTransId", tostring(modelTransId))
|
||||
return
|
||||
end
|
||||
|
||||
usage = usage or XEquipConfig.WeaponUsage.Role
|
||||
return template.ModelName[usage] or template.ModelName[XEquipConfig.WeaponUsage.Role]
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipAnimController(modelTransId, usage)
|
||||
local template = EquipModelTemplates[modelTransId]
|
||||
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipAnimController", "template", TABLE_EQUIP_MODEL_PATH, "modelTransId", tostring(modelTransId))
|
||||
return
|
||||
end
|
||||
|
||||
usage = usage or XEquipConfig.WeaponUsage.Role
|
||||
|
||||
local controller = template.AnimController[usage]
|
||||
if not controller and usage ~= XEquipConfig.WeaponUsage.Show then -- 单独展示不需默认值
|
||||
controller = template.AnimController[XEquipConfig.WeaponUsage.Role]
|
||||
end
|
||||
return controller
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipUiAnimStateName(modelTransId, usage)
|
||||
local template = EquipModelTemplates[modelTransId]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipUiAnimStateName", "template", TABLE_EQUIP_MODEL_PATH, "modelTransId", tostring(modelTransId))
|
||||
return
|
||||
end
|
||||
|
||||
usage = usage or XEquipConfig.WeaponUsage.Role
|
||||
return template.UiAnimStateName[usage] or template.UiAnimStateName[XEquipConfig.WeaponUsage.Role]
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipUiAnimCueId(modelTransId, usage)
|
||||
local template = EquipModelTemplates[modelTransId]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipUiAnimCueId", "template", TABLE_EQUIP_MODEL_PATH, "modelTransId", tostring(modelTransId))
|
||||
return
|
||||
end
|
||||
|
||||
usage = usage or XEquipConfig.WeaponUsage.Role
|
||||
return template.UiAnimCueId[usage] or template.UiAnimCueId[XEquipConfig.WeaponUsage.Role]
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipUiAnimDelay(modelTransId, usage)
|
||||
local template = EquipModelTemplates[modelTransId]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipUiAnimDelay", "template", TABLE_EQUIP_MODEL_PATH, "modelTransId", tostring(modelTransId))
|
||||
return
|
||||
end
|
||||
|
||||
usage = usage or XEquipConfig.WeaponUsage.Role
|
||||
return template.UiAnimDelay[usage] or template.UiAnimDelay[XEquipConfig.WeaponUsage.Role]
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipUiAutoRotateDelay(modelTransId, usage)
|
||||
local template = EquipModelTemplates[modelTransId]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipUiAutoRotateDelay", "template", TABLE_EQUIP_MODEL_PATH, "modelTransId", tostring(modelTransId))
|
||||
return
|
||||
end
|
||||
|
||||
usage = usage or XEquipConfig.WeaponUsage.Show -- 默认ui展示
|
||||
return template.UiAutoRotateDelay[usage] or template.UiAutoRotateDelay[XEquipConfig.WeaponUsage.Role]
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipModelEffectPath(modelTransId, usage)
|
||||
local template = EquipModelTemplates[modelTransId]
|
||||
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipModelEffectPath", "template", TABLE_EQUIP_MODEL_PATH, "modelTransId", tostring(modelTransId))
|
||||
return
|
||||
end
|
||||
|
||||
usage = usage or XEquipConfig.WeaponUsage.Role
|
||||
return template.ResonanceEffectPath[usage] or template.ResonanceEffectPath[XEquipConfig.WeaponUsage.Role]
|
||||
end
|
||||
--=========== EquipModel接口(end) ===========
|
||||
function XEquipConfig.GetEquipAnimParams(roleModelId)
|
||||
local template = EquipAnimTemplates[roleModelId]
|
||||
if not template then
|
||||
return 0
|
||||
end
|
||||
return template.Params or 0
|
||||
end
|
||||
|
||||
function XEquipConfig.GetWeaponResonanceModelId(case, templateId, resonanceCount)
|
||||
local modelId
|
||||
local template = EquipResTemplates[templateId]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetWeaponResonanceModelId", "template", TABLE_EQUIP_RES_PATH, "templateId", tostring(templateId))
|
||||
return
|
||||
end
|
||||
if resonanceCount == 1 then
|
||||
modelId = template.ResonanceModelTransId1[case]
|
||||
elseif resonanceCount == 2 then
|
||||
modelId = template.ResonanceModelTransId2[case]
|
||||
elseif resonanceCount == 3 then
|
||||
modelId = template.ResonanceModelTransId3[case]
|
||||
end
|
||||
return modelId or template.ModelTransId[case]
|
||||
end
|
||||
|
||||
function XEquipConfig.GetWeaponResonanceEffectDelay(modelTransId)
|
||||
local template = EquipModelTemplates[modelTransId]
|
||||
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetWeaponResonanceEffectDelay",
|
||||
"template", TABLE_EQUIP_MODEL_PATH, "modelTransId", tostring(modelTransId))
|
||||
return
|
||||
end
|
||||
|
||||
return template.ResonanceEffectShowDelay[XEquipConfig.WeaponUsage.Show] or 0
|
||||
end
|
||||
|
||||
--返回武器模型和位置配置(双枪只返回一把)
|
||||
function XEquipConfig.GetEquipModelTransformCfg(templateId, uiName, resonanceCount, modelTransId, equipType)
|
||||
local modelCfg, template
|
||||
|
||||
--尝试用ModelTransId索引
|
||||
if not modelTransId then
|
||||
modelTransId = XEquipConfig.GetWeaponResonanceModelId(XEquipConfig.WeaponCase.Case1, templateId, resonanceCount)
|
||||
if not modelTransId then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetWeaponResonanceModelId",
|
||||
"template", TABLE_EQUIP_RES_PATH, "templateId", tostring(templateId))
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
template = EquipModelTransformTemplates[modelTransId]
|
||||
if template then
|
||||
modelCfg = template[uiName]
|
||||
end
|
||||
|
||||
--读不到配置时用equipType索引
|
||||
if not modelCfg then
|
||||
if not equipType then
|
||||
local equipCfg = XEquipConfig.GetEquipCfg(templateId)
|
||||
equipType = equipCfg.Type
|
||||
end
|
||||
|
||||
template = EquipModelTransformTemplates[equipType]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipModelTransformCfg",
|
||||
"template", TABLE_EQUIP_MODEL_TRANSFORM_PATH, "equipType", tostring(equipType))
|
||||
return
|
||||
end
|
||||
|
||||
modelCfg = template[uiName]
|
||||
if not modelCfg then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipModelTransformCfg",
|
||||
"uiName", TABLE_EQUIP_MODEL_TRANSFORM_PATH, "equipType", tostring(equipType))
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
return modelCfg
|
||||
end
|
||||
|
||||
|
||||
-- 获取一个武器所有的不同的模型列表
|
||||
function XEquipConfig.GetWeaponModelCfgList(templateId, uiName, breakthroughTimes)
|
||||
local modelCfgList = {}
|
||||
|
||||
if not templateId then
|
||||
XLog.Error("XEquipManager.GetWeaponModelCfgList函数参数错误, templateId不能为空")
|
||||
return modelCfgList
|
||||
end
|
||||
|
||||
local template = XEquipConfig.GetEquipResCfg(templateId, breakthroughTimes)
|
||||
-- 目前只有共鸣改变形态,有可能有相同的模型,所以需要区别是否有相同的id,以左手id为准
|
||||
local resonanceCountList = {}
|
||||
local resonanceDic = {}
|
||||
local modelId
|
||||
for i = 0, XEquipConfig.MAX_RESONANCE_SKILL_COUNT do
|
||||
modelId = XEquipConfig.GetWeaponResonanceModelId(XEquipConfig.WeaponCase.Case1, template.Id, i)
|
||||
if modelId and not resonanceDic[modelId] then
|
||||
resonanceDic[modelId] = true
|
||||
table.insert(resonanceCountList, i)
|
||||
end
|
||||
end
|
||||
|
||||
local modelCfg
|
||||
for _, resonanceCount in ipairs(resonanceCountList) do
|
||||
modelCfg = {}
|
||||
modelCfg.ModelId = XEquipConfig.GetWeaponResonanceModelId(XEquipConfig.WeaponCase.Case1, template.Id, resonanceCount)
|
||||
modelCfg.TransformConfig = XEquipConfig.GetEquipModelTransformCfg(templateId, uiName, resonanceCount)
|
||||
table.insert(modelCfgList, modelCfg)
|
||||
end
|
||||
|
||||
return modelCfgList
|
||||
end
|
||||
|
||||
function XEquipConfig.GetLevelUpCfg(templateId, times, level)
|
||||
local breakthroughCfg = XEquipConfig.GetEquipBreakthroughCfg(templateId, times)
|
||||
if not breakthroughCfg then
|
||||
return
|
||||
end
|
||||
|
||||
templateId = breakthroughCfg.LevelUpTemplateId
|
||||
|
||||
local template = LevelUpTemplates[templateId]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetLevelUpCfg", "template", TABLE_LEVEL_UP_TEMPLATE_PATH, "templateId", tostring(templateId))
|
||||
return
|
||||
end
|
||||
|
||||
template = template[level]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetLevelUpCfg", "level", TABLE_LEVEL_UP_TEMPLATE_PATH, "templateId", tostring(templateId))
|
||||
return
|
||||
end
|
||||
|
||||
return template
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipSuitCfg(templateId)
|
||||
local template = EquipSuitTemplate[templateId]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipSuitCfg", "template", TABLE_EQUIP_SUIT_PATH, "templateId", tostring(templateId))
|
||||
return
|
||||
end
|
||||
return template
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipSuitEffectCfg(templateId)
|
||||
local template = EquipSuitEffectTemplate[templateId]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipSuitEffectCfg", "template",
|
||||
TABLE_EQUIP_SUIT_EFFECT_PATH, "templateId", tostring(templateId))
|
||||
return
|
||||
end
|
||||
|
||||
return template
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipTemplateIdsBySuitId(suitId)
|
||||
return SuitIdToEquipTemplateIdsDic[suitId] or {}
|
||||
end
|
||||
|
||||
function XEquipConfig.GetSuitSites(suitId)
|
||||
return SuitSitesDic[suitId] or {}
|
||||
end
|
||||
|
||||
function XEquipConfig.GetMaxSuitCount()
|
||||
return XTool.GetTableCount(SuitSitesDic)
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipBgPath(templateId)
|
||||
if not XEquipConfig.CheckTemplateIdIsEquip(templateId) then return end
|
||||
local template = XEquipConfig.GetEquipCfg(templateId)
|
||||
local quality = template.Quality
|
||||
return XArrangeConfigs.GeQualityBgPath(quality)
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipQualityPath(templateId)
|
||||
local template = XEquipConfig.GetEquipCfg(templateId)
|
||||
local quality = template.Quality
|
||||
if not quality then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipQualityPath", "Quality", TABLE_EQUIP_PATH, "templateId", tostring(templateId))
|
||||
return
|
||||
end
|
||||
return XArrangeConfigs.GeQualityPath(quality)
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipResoanceIconPath(isAwaken)
|
||||
return EquipResonanceIconPath[isAwaken]
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipDecomposeCfg(templateId, breakthroughTimes)
|
||||
if not XEquipConfig.CheckTemplateIdIsEquip(templateId) then return end
|
||||
breakthroughTimes = breakthroughTimes or 0
|
||||
|
||||
local template = XEquipConfig.GetEquipCfg(templateId)
|
||||
local site = template.Site
|
||||
if not site then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipDecomposeCfg", "Site", TABLE_EQUIP_PATH, "templateId", tostring(templateId))
|
||||
return
|
||||
end
|
||||
|
||||
local star = template.Star
|
||||
if not star then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipDecomposeCfg", "Star", TABLE_EQUIP_PATH, "templateId", tostring(templateId))
|
||||
return
|
||||
end
|
||||
|
||||
return EquipDecomposeDic[site .. star .. breakthroughTimes]
|
||||
end
|
||||
|
||||
function XEquipConfig.GetWeaponTypeIconPath(templateId)
|
||||
return XGoodsCommonManager.GetGoodsShowParamsByTemplateId(templateId).Icon
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipBreakThroughIcon(breakthroughTimes)
|
||||
local icon = EquipBreakThroughIcon[breakthroughTimes]
|
||||
if not icon then
|
||||
XLog.Error("XEquipConfig.EquipBreakThroughIcon调用错误,得到的icon为空,原因:检查breakthroughTimes:" .. breakthroughTimes .. "和EquipBreakThroughIcon")
|
||||
return
|
||||
end
|
||||
return icon
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipBreakThroughSmallIcon(breakthroughTimes)
|
||||
local icon = EquipBreakThroughSmallIcon[breakthroughTimes]
|
||||
if not icon then
|
||||
XLog.Error("XEquipConfig.GetEquipBreakThroughSmallIcon调用错误,得到的icon为空,原因:检查breakthroughTimes:" .. breakthroughTimes .. "和EquipBreakThroughSmallIcon")
|
||||
return
|
||||
end
|
||||
return icon
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipBreakThroughBigIcon(breakthroughTimes)
|
||||
local icon = EquipBreakThroughBigIcon[breakthroughTimes]
|
||||
if not icon then
|
||||
XLog.Error("XEquipConfig.GetEquipBreakThroughBigIcon调用错误,得到的icon为空,原因:检查breakthroughTimes:" .. breakthroughTimes .. "和EquipBreakThroughBigIcon")
|
||||
return
|
||||
end
|
||||
return icon
|
||||
end
|
||||
|
||||
function XEquipConfig.GetWeaponSkillTemplate(templateId)
|
||||
local template = WeaponSkillTemplate[templateId]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetWeaponSkillTemplate", "template", TABLE_WEAPON_SKILL_PATH, "templateId", tostring(templateId))
|
||||
return
|
||||
end
|
||||
|
||||
return template
|
||||
end
|
||||
|
||||
function XEquipConfig.GetWeaponSkillInfo(weaponSkillId)
|
||||
local template = WeaponSkillTemplate[weaponSkillId]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetWeaponSkillInfo", "template", TABLE_WEAPON_SKILL_PATH, "weaponSkillId", tostring(weaponSkillId))
|
||||
return
|
||||
end
|
||||
|
||||
return template
|
||||
end
|
||||
|
||||
function XEquipConfig.GetWeaponSkillAbility(weaponSkillId)
|
||||
local template = WeaponSkillTemplate[weaponSkillId]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetWeaponSkillAbility", "template",
|
||||
TABLE_WEAPON_SKILL_PATH, "weaponSkillId", tostring(weaponSkillId))
|
||||
return
|
||||
end
|
||||
|
||||
return template.Ability
|
||||
end
|
||||
|
||||
function XEquipConfig.GetWeaponSkillPoolSkillIds(poolId, characterId)
|
||||
local template = WeaponSkillPoolTemplate[poolId]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetWeaponSkillPoolSkillIds", "template", TABLE_WEAPON_SKILL_POOL_PATH, "poolId", tostring(poolId))
|
||||
return
|
||||
end
|
||||
|
||||
local skillIds = template[characterId]
|
||||
if not skillIds then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetWeaponSkillPoolSkillIds",
|
||||
"characterId", TABLE_WEAPON_SKILL_POOL_PATH, "poolId", tostring(poolId))
|
||||
return
|
||||
end
|
||||
|
||||
return skillIds
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipSkipIdTemplate(eatType, site)
|
||||
local template = EquipSkipIdTemplates[eatType][site]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipSkipIdTemplate", "site", TABLE_WEAPON_SKILL_POOL_PATH, "eatType", tostring(eatType))
|
||||
return
|
||||
end
|
||||
return template
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipResonanceCfg(templateId)
|
||||
local equipResonanceCfg = EquipResonanceTemplate[templateId]
|
||||
|
||||
if not equipResonanceCfg then
|
||||
return
|
||||
end
|
||||
|
||||
return equipResonanceCfg
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipCharacterType(templateId)
|
||||
local config = XEquipConfig.GetEquipCfg(templateId)
|
||||
return config.CharacterType
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipResonanceConsumeItemCfg(templateId)
|
||||
local equipResonanceItemCfg = EquipResonanceConsumeItemTemplates[templateId]
|
||||
|
||||
if not equipResonanceItemCfg then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipResonanceConsumeItemCfg",
|
||||
"equipResonanceItemCfg", TABLE_EQUIP_RESONANCE_CONSUME_ITEM_PATH, "templateId", tostring(templateId))
|
||||
return
|
||||
end
|
||||
|
||||
return equipResonanceItemCfg
|
||||
end
|
||||
|
||||
function XEquipConfig.GetNeedFirstShow(templateId)
|
||||
local template = XEquipConfig.GetEquipCfg(templateId)
|
||||
return template.NeedFirstShow
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipTemplates()
|
||||
return EquipTemplates
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipAwakeCfg(templateId)
|
||||
local equipAwakeCfg = EquipAwakeTemplate[templateId]
|
||||
if not equipAwakeCfg then
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipAwakeCfg", "equipAwakeCfg", TABLE_EQUIP_AWAKE_PATH, "templateId", tostring(templateId))
|
||||
return
|
||||
end
|
||||
return equipAwakeCfg
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipAwakeCfgs()
|
||||
return EquipAwakeTemplate
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipAwakeSkillDesList(templateId, pos)
|
||||
local equipAwakeCfg = XEquipConfig.GetEquipAwakeCfg(templateId)
|
||||
local desList = equipAwakeCfg["AttribDes" .. pos]
|
||||
if not desList then
|
||||
local tempStr = "AttribDes" .. pos
|
||||
XLog.ErrorTableDataNotFound("XEquipConfig.GetEquipAwakeSkillDesList", tempStr, TABLE_EQUIP_AWAKE_PATH, "templateId", tostring(templateId))
|
||||
return
|
||||
end
|
||||
return desList
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipSuitPath()
|
||||
return TABLE_EQUIP_SUIT_PATH
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipPath()
|
||||
return TABLE_EQUIP_PATH
|
||||
end
|
||||
|
||||
function XEquipConfig.GetWeaponSkillPath()
|
||||
return TABLE_WEAPON_SKILL_PATH
|
||||
end
|
||||
|
||||
function XEquipConfig.IsDefaultSuitId(suitId)
|
||||
return suitId == XEquipConfig.DEFAULT_SUIT_ID.Normal or suitId == XEquipConfig.DEFAULT_SUIT_ID.Isomer
|
||||
end
|
||||
|
||||
function XEquipConfig.GetDefaultSuitIdCount()
|
||||
local count = 0
|
||||
for _, _ in pairs(XEquipConfig.DEFAULT_SUIT_ID) do
|
||||
count = count + 1
|
||||
end
|
||||
return count
|
||||
end
|
||||
|
||||
function XEquipConfig.GetEquipAwakeTabIndex()
|
||||
return EquipAwakeTabIndex
|
||||
end
|
||||
|
||||
function XEquipConfig.SetEquipAwakeTabIndex(equipAwakeTabIndex)
|
||||
EquipAwakeTabIndex = equipAwakeTabIndex
|
||||
end
|
182
Resources/Scripts/XConfig/XExhibitionConfigs.lua
Normal file
182
Resources/Scripts/XConfig/XExhibitionConfigs.lua
Normal file
|
@ -0,0 +1,182 @@
|
|||
XExhibitionConfigs = XExhibitionConfigs or {}
|
||||
|
||||
local TABLE_CHARACTER_EXHIBITION = "Client/Exhibition/Exhibition.tab"
|
||||
local TABLE_CHARACTER_EXHIBITION_LEVEL = "Client/Exhibition/ExhibitionLevel.tab"
|
||||
local TABLE_CHARACTER_GROW_TASK_INFO = "Share/Exhibition/ExhibitionReward.tab"
|
||||
|
||||
local DefaultPortraitImagePath = CS.XGame.ClientConfig:GetString("DefaultPortraitImagePath")
|
||||
local ExhibitionLevelPoint = {}
|
||||
local ExhibitionConfig = {}
|
||||
local ExhibitionGroupNameConfig = {}
|
||||
local ExhibitionGroupLogoConfig = {}
|
||||
local ExhibitionGroupDescConfig = {}
|
||||
local CharacterExhibitionLevelConfig = {}
|
||||
local GrowUpTasksConfig = {}
|
||||
local CharacterGrowUpTasksConfig = {}
|
||||
local CharacterGrowUpTasksConfigByType = {}
|
||||
local CharacterHeadPortrait = {}
|
||||
local CharacterGraduationPortrait = {}
|
||||
local ExhibitionConfigByTypeAndPort = {}
|
||||
local ExhibitionConfigByTypeAndGroup = {}
|
||||
local CharacterToExhibitionTypeTable = {}
|
||||
local InVisibleGroupTable = {}
|
||||
function XExhibitionConfigs.Init()
|
||||
CharacterExhibitionLevelConfig = XTableManager.ReadByIntKey(TABLE_CHARACTER_EXHIBITION_LEVEL, XTable.XTableExhibitionLevel, "LevelId")
|
||||
ExhibitionConfig = XTableManager.ReadByIntKey(TABLE_CHARACTER_EXHIBITION, XTable.XTableCharacterExhibition, "Id")
|
||||
for _, v in pairs(ExhibitionConfig) do
|
||||
if v.Port ~= nil then
|
||||
CharacterHeadPortrait[v.CharacterId] = v.HeadPortrait
|
||||
CharacterGraduationPortrait[v.CharacterId] = v.GraduationPortrait
|
||||
ExhibitionGroupNameConfig[v.GroupId] = v.GroupName
|
||||
ExhibitionGroupLogoConfig[v.GroupId] = v.GroupLogo
|
||||
ExhibitionGroupDescConfig[v.GroupId] = v.GroupDescription
|
||||
if v.Type and not ExhibitionConfigByTypeAndPort[v.Type] then
|
||||
ExhibitionConfigByTypeAndPort[v.Type] = {}
|
||||
ExhibitionConfigByTypeAndGroup[v.Type] = {}
|
||||
end
|
||||
ExhibitionConfigByTypeAndPort[v.Type][v.Port] = v
|
||||
ExhibitionConfigByTypeAndGroup[v.Type][v.GroupId] = v
|
||||
if v.Type then
|
||||
if not InVisibleGroupTable[v.Type] then InVisibleGroupTable[v.Type] = {} end
|
||||
if InVisibleGroupTable[v.Type][v.GroupId] == nil then InVisibleGroupTable[v.Type][v.GroupId] = true end
|
||||
if v.InVisible == 1 then InVisibleGroupTable[v.Type][v.GroupId] = false end
|
||||
end
|
||||
end
|
||||
if v.CharacterId and v.CharacterId ~= 0 and not CharacterToExhibitionTypeTable[v.CharacterId] then
|
||||
CharacterToExhibitionTypeTable[v.CharacterId] = v.Type
|
||||
end
|
||||
end
|
||||
GrowUpTasksConfig = XTableManager.ReadByIntKey(TABLE_CHARACTER_GROW_TASK_INFO, XTable.XTableExhibitionReward, "Id")
|
||||
for task, v in pairs(GrowUpTasksConfig) do
|
||||
if CharacterGrowUpTasksConfig[v.CharacterId] == nil then
|
||||
CharacterGrowUpTasksConfig[v.CharacterId] = {}
|
||||
end
|
||||
CharacterGrowUpTasksConfig[v.CharacterId][task] = v
|
||||
local type = CharacterToExhibitionTypeTable[v.CharacterId] or 1
|
||||
if not CharacterGrowUpTasksConfigByType[type] then CharacterGrowUpTasksConfigByType[type] = {} end
|
||||
if not CharacterGrowUpTasksConfigByType[type][v.Id] then
|
||||
CharacterGrowUpTasksConfigByType[type][v.Id] = v
|
||||
end
|
||||
end
|
||||
ExhibitionLevelPoint[1] = CS.XGame.ClientConfig:GetInt("ExhibitionLevelPoint_01")
|
||||
ExhibitionLevelPoint[2] = CS.XGame.ClientConfig:GetInt("ExhibitionLevelPoint_02")
|
||||
ExhibitionLevelPoint[3] = CS.XGame.ClientConfig:GetInt("ExhibitionLevelPoint_03")
|
||||
ExhibitionLevelPoint[4] = CS.XGame.ClientConfig:GetInt("ExhibitionLevelPoint_04")
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetDefaultPortraitImagePath()
|
||||
return DefaultPortraitImagePath
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetExhibitionLevelPoints()
|
||||
return ExhibitionLevelPoint
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetGrowUpLevelMax()
|
||||
local maxPoint = 0
|
||||
for i = 1, 4 do
|
||||
maxPoint = maxPoint + ExhibitionLevelPoint[i]
|
||||
end
|
||||
return maxPoint
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetExhibitionConfig()
|
||||
return ExhibitionConfig
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetExhibitionPortConfigByType(showType)
|
||||
if not showType then return ExhibitionConfig end
|
||||
return ExhibitionConfigByTypeAndPort[showType] or {}
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetExhibitionGroupNameConfig()
|
||||
return ExhibitionGroupNameConfig
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetExhibitionGroupConfigByType(showType)
|
||||
if not showType then return ExhibitionConfig end
|
||||
return ExhibitionConfigByTypeAndGroup[showType] or {}
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetExhibitionConfigByTypeAndGroup(showType, groupId)
|
||||
return ExhibitionConfigByTypeAndGroup[showType][groupId]
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetExhibitionTypeByCharacterId(characterId)
|
||||
return CharacterToExhibitionTypeTable[characterId]
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetExhibitionGroupLogoConfig()
|
||||
return ExhibitionGroupLogoConfig
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetExhibitionGroupDescConfig()
|
||||
return ExhibitionGroupDescConfig
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetExhibitionInVisbleGroupTable(exhibitionType)
|
||||
return InVisibleGroupTable[exhibitionType] or {}
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetIsExhibitionInVisbleGroup(exhibitionType, groupId)
|
||||
return InVisibleGroupTable[exhibitionType] and InVisibleGroupTable[exhibitionType][groupId] or false
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetExhibitionLevelConfig()
|
||||
return CharacterExhibitionLevelConfig
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetCharacterGrowUpTasks(characterId)
|
||||
local config = CharacterGrowUpTasksConfig[characterId]
|
||||
if not config then
|
||||
XLog.Error("XExhibitionConfigs.GetCharacterGrowUpTasks error: 角色解放配置错误:characterId: " .. characterId .. " ,path: " .. TABLE_CHARACTER_GROW_TASK_INFO)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetCharacterGrowUpTask(characterId, level)
|
||||
local levelTasks = XExhibitionConfigs.GetCharacterGrowUpTasks(characterId)
|
||||
for _, config in pairs(levelTasks) do
|
||||
if config.LevelId == level then
|
||||
return config
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetCharacterGrowUpTasksConfig()
|
||||
return CharacterGrowUpTasksConfig
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetExhibitionGrowUpLevelConfig(level)
|
||||
return CharacterExhibitionLevelConfig[level]
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetExhibitionLevelNameByLevel(level)
|
||||
return CharacterExhibitionLevelConfig[level].Name or ""
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetExhibitionLevelDescByLevel(level)
|
||||
return CharacterExhibitionLevelConfig[level].Desc or ""
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetExhibitionLevelIconByLevel(level)
|
||||
return CharacterExhibitionLevelConfig[level].LevelIcon or ""
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetCharacterHeadPortrait(characterId)
|
||||
return CharacterHeadPortrait[characterId]
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetCharacterGraduationPortrait(characterId)
|
||||
return CharacterGraduationPortrait[characterId]
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetGrowUpTasksConfig()
|
||||
return GrowUpTasksConfig
|
||||
end
|
||||
|
||||
function XExhibitionConfigs.GetGrowUpTasksConfigByType(exhibitionType)
|
||||
if not exhibitionType then return GrowUpTasksConfig end
|
||||
return CharacterGrowUpTasksConfigByType[exhibitionType] or {}
|
||||
end
|
374
Resources/Scripts/XConfig/XExpeditionConfig.lua
Normal file
374
Resources/Scripts/XConfig/XExpeditionConfig.lua
Normal file
|
@ -0,0 +1,374 @@
|
|||
XExpeditionConfig = XExpeditionConfig or {}
|
||||
--基础角色表
|
||||
local TABLE_EXPEDITION_BASE_CHARACTER = "Share/Fuben/Expedition/ExpeditionBaseCharacter.tab"
|
||||
--角色表
|
||||
local TABLE_EXPEDITION_CHARACTER = "Share/Fuben/Expedition/ExpeditionCharacter.tab"
|
||||
--远征章节表
|
||||
local TABLE_EXPEDITION_CHAPTER = "Share/Fuben/Expedition/ExpeditionChapter.tab"
|
||||
--远征关卡表
|
||||
local TABLE_EXPEDITION_STAGE = "Share/Fuben/Expedition/ExpeditionStage.tab"
|
||||
--玩法配置
|
||||
local TABLE_EXPEDITION_CONFIG = "Share/Fuben/Expedition/ExpeditionConfig.tab"
|
||||
--角色基础组合羁绊表
|
||||
local TABLE_EXPEDITION_COMBO = "Share/Fuben/Expedition/ExpeditionCombo.tab"
|
||||
--角色组合羁绊子分类表
|
||||
local TABLE_EXPEDITION_CHILDCOMBO = "Share/Fuben/Expedition/ExpeditionChildCombo.tab"
|
||||
--角色分类展示表
|
||||
local TABLE_EXPEDITION_CHARACTER_TYPE = "Share/Fuben/Expedition/ExpeditionCharacterType.tab"
|
||||
--角色阶级升级表
|
||||
local TABLE_EXPEDITION_CHARACTER_ELEMENTS = "Client/Fuben/Expedition/ExpeditionCharacterElements.tab"
|
||||
--羁绊大类表
|
||||
local TABLE_EXPEDITION_COMBO_TYPENAME = "Client/Fuben/Expedition/ExpeditionComboTypeName.tab"
|
||||
--螺母购买刷新次数表
|
||||
local TABLE_EXPEDITION_DRAW_CONSUME = "Share/Fuben/Expedition/ExpeditionDrawConsume.tab"
|
||||
--全局增益羁绊
|
||||
local TABLE_EXPEDITION_GLOBAL_COMBO = "Client/Fuben/Expedition/ExpeditionGlobalCombo.tab"
|
||||
--队伍位置表
|
||||
local TABLE_EXPEDITION_TEAMPOS = "Share/Fuben/Expedition/ExpeditionTeamPos.tab"
|
||||
--招募概率表
|
||||
local TABLE_EXPEDITION_DRAWPR = "Share/Fuben/Expedition/ExpeditionDrawPR.tab"
|
||||
--招募概率星数对照表
|
||||
local TABLE_EXPEDITION_DRAWRANK = "Share/Fuben/Expedition/ExpeditionDrawRank.tab"
|
||||
|
||||
local BaseConfig = {}
|
||||
local ChildComboConfig = {}
|
||||
local ComboConfig = {}
|
||||
local CharacterTypeConfig = {}
|
||||
local CharacterConfig = {}
|
||||
local CharacterElements = {}
|
||||
local BaseCharacterConfig = {}
|
||||
local ChapterConfig = {}
|
||||
local EStageConfig = {}
|
||||
local ComboTypeNameConfig = {}
|
||||
local DrawConsumeConfig = {}
|
||||
local GlobalComboConfig = {}
|
||||
local TeamPosConfig = {}
|
||||
local DrawPRConfig = {}
|
||||
local DrawRankConfig = {}
|
||||
|
||||
local Type2CharacterDic = {}
|
||||
local Rank2CharacterDic = {}
|
||||
local Chapter2StageDic = {}
|
||||
local Chapter2ConfigDic = {}
|
||||
local Chapter2TeamPosDic = {}
|
||||
local NewBaseConfigIndex = 0
|
||||
|
||||
local BaseComboStatus = {} -- 废弃
|
||||
local BaseComboDic = {}
|
||||
local StageToEStageDic = {}
|
||||
local ComboConditionList = {
|
||||
[1] = "MemberNum", -- 检查合计数量
|
||||
[2] = "TotalRank", -- 检查合计等级
|
||||
[3] = "TargetMember", -- 检查对应角色等级
|
||||
[4] = "TargetTypeAndRank", -- 检查指定特征的高于指定等级的人
|
||||
}
|
||||
|
||||
local InitConfig = function()
|
||||
BaseConfig = XTableManager.ReadByIntKey(TABLE_EXPEDITION_CONFIG, XTable.XTableExpeditionConfig, "Id")
|
||||
ComboConfig = XTableManager.ReadByIntKey(TABLE_EXPEDITION_COMBO, XTable.XTableExpeditionCombo, "Id")
|
||||
ChildComboConfig = XTableManager.ReadByIntKey(TABLE_EXPEDITION_CHILDCOMBO, XTable.XTableExpeditionChildCombo, "Id")
|
||||
ChapterConfig = XTableManager.ReadByIntKey(TABLE_EXPEDITION_CHAPTER, XTable.XTableExpeditionChapter, "Id")
|
||||
EStageConfig = XTableManager.ReadByIntKey(TABLE_EXPEDITION_STAGE, XTable.XTableExpeditionStage, "Id")
|
||||
BaseCharacterConfig = XTableManager.ReadByIntKey(TABLE_EXPEDITION_BASE_CHARACTER, XTable.XTableExpeditionBaseCharacter, "Id")
|
||||
CharacterConfig = XTableManager.ReadByIntKey(TABLE_EXPEDITION_CHARACTER, XTable.XTableExpeditionCharacter, "Id")
|
||||
CharacterTypeConfig = XTableManager.ReadByStringKey(TABLE_EXPEDITION_CHARACTER_TYPE, XTable.XTableExpeditionCharacterType, "Id")
|
||||
ComboTypeNameConfig = XTableManager.ReadByIntKey(TABLE_EXPEDITION_COMBO_TYPENAME, XTable.XTableExpeditionComboTypeName, "Id")
|
||||
DrawConsumeConfig = XTableManager.ReadByIntKey(TABLE_EXPEDITION_DRAW_CONSUME, XTable.XTableExpeditionDrawConsume, "Id")
|
||||
GlobalComboConfig = XTableManager.ReadByIntKey(TABLE_EXPEDITION_GLOBAL_COMBO, XTable.XTableExpeditionGlobalCombo, "Id")
|
||||
CharacterElements = XTableManager.ReadByIntKey(TABLE_EXPEDITION_CHARACTER_ELEMENTS, XTable.XTableExpeditionCharacterElements, "Id")
|
||||
TeamPosConfig = XTableManager.ReadByIntKey(TABLE_EXPEDITION_TEAMPOS, XTable.XTableExpeditionTeamPos, "Id")
|
||||
DrawPRConfig = XTableManager.ReadByIntKey(TABLE_EXPEDITION_DRAWPR, XTable.XTableExpeditionDrawPR, "Level")
|
||||
DrawRankConfig = XTableManager.ReadByIntKey(TABLE_EXPEDITION_DRAWRANK, XTable.XTableExpeditionDrawRank, "Id")
|
||||
end
|
||||
|
||||
local GetNewBaseConfigId = function()
|
||||
local startTime = 0
|
||||
for id, config in pairs(BaseConfig) do
|
||||
if id > NewBaseConfigIndex then NewBaseConfigIndex = id end
|
||||
end
|
||||
end
|
||||
|
||||
local InitComboConfig = function()
|
||||
for i = 1, #ComboConfig do
|
||||
if not BaseComboDic[ComboConfig[i].ChildComboId] then
|
||||
BaseComboDic[ComboConfig[i].ChildComboId] = {}
|
||||
end
|
||||
table.insert(BaseComboDic[ComboConfig[i].ChildComboId], ComboConfig[i])
|
||||
end
|
||||
end
|
||||
|
||||
local InitStages = function()
|
||||
for _, eStage in pairs(EStageConfig) do
|
||||
if not Chapter2StageDic[eStage.ChapterId] then Chapter2StageDic[eStage.ChapterId] = {} end
|
||||
Chapter2StageDic[eStage.ChapterId][eStage.OrderId] = eStage
|
||||
if not StageToEStageDic[eStage.StageId] then
|
||||
StageToEStageDic[eStage.StageId] = eStage
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
local InitCharacter = function()
|
||||
for _, v in pairs(BaseCharacterConfig) do
|
||||
for _, type in pairs(v.Type) do
|
||||
if not Type2CharacterDic[type] then Type2CharacterDic[type] = {} end
|
||||
if not Type2CharacterDic[type][v.Id] then Type2CharacterDic[type][v.Id] = 1 end
|
||||
end
|
||||
Rank2CharacterDic[v.Id] = {}
|
||||
end
|
||||
end
|
||||
|
||||
local InitRank2CharacterDic = function()
|
||||
for _, v in pairs(CharacterConfig) do
|
||||
Rank2CharacterDic[v.BaseId][v.Rank] = v
|
||||
if not Rank2CharacterDic[v.BaseId].MaxRank or Rank2CharacterDic[v.BaseId].MaxRank < v.Rank then
|
||||
Rank2CharacterDic[v.BaseId].MaxRank = v.Rank
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local InitChapter2TeamPosDic = function()
|
||||
for _, v in pairs(TeamPosConfig) do
|
||||
if not Chapter2TeamPosDic[v.ChapterId] then Chapter2TeamPosDic[v.ChapterId] = {} end
|
||||
table.insert(Chapter2TeamPosDic[v.ChapterId], v)
|
||||
end
|
||||
end
|
||||
|
||||
function XExpeditionConfig.Init()
|
||||
InitConfig()
|
||||
GetNewBaseConfigId()
|
||||
InitStages()
|
||||
InitCharacter()
|
||||
InitRank2CharacterDic()
|
||||
InitComboConfig()
|
||||
InitChapter2TeamPosDic()
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetExpeditionConfig()
|
||||
return BaseConfig
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetExpeditionConfigById(Id)
|
||||
return BaseConfig[Id] or BaseConfig[NewBaseConfigIndex]
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetLastestExpeditionConfig()
|
||||
return BaseConfig[NewBaseConfigIndex]
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetEChapterCfg()
|
||||
return ChapterConfig
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetChapterCfgById(chapterId)
|
||||
if not ChapterConfig[chapterId] then
|
||||
XLog.ErrorTableDataNotFound("XExpeditionConfig.GetChapterCfgById", "虚像地平线章节数据",
|
||||
TABLE_EXPEDITION_CHAPTER, "Id", tostring(chapterId))
|
||||
return nil
|
||||
end
|
||||
return ChapterConfig[chapterId]
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetChapterRewardIdById(chapterId)
|
||||
return ChapterConfig[chapterId] and ChapterConfig[chapterId].RewardId or 0
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetEStageListByChapterId(chapterId)
|
||||
return Chapter2StageDic[chapterId]
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetStageList()
|
||||
return StageToEStageDic
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetEStageByStageId(stageId)
|
||||
return StageToEStageDic[stageId]
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetEStageIdByStageId(stageId)
|
||||
return StageToEStageDic[stageId] and StageToEStageDic[stageId].Id
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetOrderIdByStageId(stageId)
|
||||
return StageToEStageDic[stageId].OrderId
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetBaseCharacterCfg()
|
||||
return BaseCharacterConfig
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetBaseCharacterCfgById(baseId)
|
||||
return BaseCharacterConfig[baseId]
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetBaseIdByECharId(eCharacterId)
|
||||
return CharacterConfig[eCharacterId].BaseId
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetCharacterIdByBaseId(baseId)
|
||||
return BaseCharacterConfig[baseId] and BaseCharacterConfig[baseId].CharacterId or 0
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetCharacterElementByBaseId(baseId)
|
||||
return BaseCharacterConfig[baseId] and BaseCharacterConfig[baseId].Elements or {}
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetCharacterMaxRankByBaseId(baseId)
|
||||
return Rank2CharacterDic[baseId].MaxRank
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetCharacterCfgByBaseIdAndRank(baseId, rank)
|
||||
local base = Rank2CharacterDic[baseId]
|
||||
if not base then
|
||||
return nil
|
||||
end
|
||||
if base.MaxRank < rank then
|
||||
return base[base.MaxRank]
|
||||
else
|
||||
return base[rank]
|
||||
end
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetCharacterCfgs()
|
||||
return CharacterConfig
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetCharacterCfgById(Id)
|
||||
if not CharacterConfig[Id] then
|
||||
XLog.ErrorTableDataNotFound("XExpeditionConfig.GetCharacterById", "虚像地平线角色", TABLE_EXPEDITION_CHARACTER, "Id", tostring(Id))
|
||||
end
|
||||
return CharacterConfig[Id]
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetEStageCfg(EStageId)
|
||||
if not EStageConfig[EStageId] then
|
||||
XLog.ErrorTableDataNotFound("XExpeditionConfig.GetEStageCfg", "虚像地平线关卡", TABLE_EXPEDITION_STAGE, "Id", tostring(EStageId))
|
||||
return nil
|
||||
end
|
||||
return EStageConfig[EStageId]
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetCharacterElementById(elementId)
|
||||
return CharacterElements[elementId]
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetComboTable()
|
||||
return ComboConfig
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetChildComboTable()
|
||||
return ChildComboConfig
|
||||
end
|
||||
--================
|
||||
--根据子羁绊类型Id获取具体羁绊列表
|
||||
--================
|
||||
function XExpeditionConfig.GetComboByChildComboId(childComboId)
|
||||
if not BaseComboDic[childComboId] then
|
||||
XLog.ErrorTableDataNotFound(
|
||||
"XExpeditionConfig.GetComboByChildComboId",
|
||||
"虚像地平线成员组合数据",
|
||||
TABLE_EXPEDITION_COMBO,
|
||||
"ChildComboId",
|
||||
tostring(childComboId))
|
||||
return nil
|
||||
end
|
||||
return BaseComboDic[childComboId]
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetChildComboById(id)
|
||||
if not ChildComboConfig[id] then
|
||||
XLog.ErrorTableDataNotFound("XExpeditionConfig.GetEStageCfg",
|
||||
"虚像地平线羁绊子分类数据", TABLE_EXPEDITION_CHILDCOMBO, "Id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
return ChildComboConfig[id]
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetComboById(comboId)
|
||||
if not ComboConfig[comboId] then
|
||||
XLog.ErrorTableDataNotFound("XExpeditionConfig.GetComboById", "虚像地平线阵容", TABLE_EXPEDITION_COMBO, "Id", tostring(comboId))
|
||||
return nil
|
||||
end
|
||||
return ComboConfig[comboId]
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetCharactersByCharacterType(typeId)
|
||||
if not Type2CharacterDic[typeId] then
|
||||
XLog.ErrorTableDataNotFound("XExpeditionConfig.GetCharactersByCharacterType", "虚像地平线角色词条", TABLE_EXPEDITION_CHARACTER_TYPE, "Id", tostring(typeId))
|
||||
return nil
|
||||
end
|
||||
return Type2CharacterDic[typeId]
|
||||
end
|
||||
|
||||
function XExpeditionConfig.IsCharacterHasTypes(characterId, typeIds)
|
||||
for _, typeId in pairs(typeIds) do
|
||||
local id = tonumber(typeId)
|
||||
if not Type2CharacterDic[id] or not Type2CharacterDic[id][characterId] then
|
||||
return false
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetBaseComboTypeConfig()
|
||||
return ComboTypeNameConfig
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetBaseComboTypeNameById(id)
|
||||
return ComboTypeNameConfig[id].Name or ""
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetBuyDrawMaxTime()
|
||||
return #DrawConsumeConfig
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetDrawPriceByCount(count)
|
||||
return DrawConsumeConfig[count] and DrawConsumeConfig[count].ConsumeCount or 0
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetGlobalConfigs()
|
||||
return GlobalComboConfig
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetGlobalConfigById(comboId)
|
||||
return GlobalComboConfig[comboId]
|
||||
end
|
||||
|
||||
function XExpeditionConfig.GetRankByRankWeightId(index)
|
||||
return DrawRankConfig[index] and DrawRankConfig[index].Rank or 1
|
||||
end
|
||||
--================
|
||||
--获取队伍位置数据
|
||||
--@param teamPosId:位置ID
|
||||
--================
|
||||
function XExpeditionConfig.GetTeamPosCfgById(teamPosId)
|
||||
if not TeamPosConfig[teamPosId] then
|
||||
XLog.ErrorTableDataNotFound(
|
||||
"XExpeditionConfig.GetTeamPosCfgById",
|
||||
"虚像地平线队伍位置数据",
|
||||
TABLE_EXPEDITION_TEAMPOS,
|
||||
"Id",
|
||||
tostring(teamPosId))
|
||||
return nil
|
||||
end
|
||||
return TeamPosConfig[teamPosId]
|
||||
end
|
||||
--================
|
||||
--获取队伍位置数量
|
||||
--================
|
||||
function XExpeditionConfig.GetTeamPosListByChapterId(currentChapterId)
|
||||
if not TeamPosConfig or not Chapter2TeamPosDic or not Chapter2TeamPosDic[currentChapterId] then return 0 end
|
||||
return Chapter2TeamPosDic[currentChapterId]
|
||||
end
|
||||
--================
|
||||
--获取招募概率配置表
|
||||
--================
|
||||
function XExpeditionConfig.GetDrawPRConfig()
|
||||
return DrawPRConfig
|
||||
end
|
||||
--================
|
||||
--获取招募星数对照表配置
|
||||
--================
|
||||
function XExpeditionConfig.GetDrawRankConfig()
|
||||
return DrawRankConfig
|
||||
end
|
39
Resources/Scripts/XConfig/XFashionConfigs.lua
Normal file
39
Resources/Scripts/XConfig/XFashionConfigs.lua
Normal file
|
@ -0,0 +1,39 @@
|
|||
XFashionConfigs = XFashionConfigs or {}
|
||||
|
||||
local TABLE_FASHION_SERIES = "Client/Fashion/FashionSeries.tab"
|
||||
local FashionSeriesConfig = {}
|
||||
|
||||
function XFashionConfigs.Init()
|
||||
FashionSeriesConfig = XTableManager.ReadByIntKey(TABLE_FASHION_SERIES, XTable.XTableFashionSeries, "Id")
|
||||
end
|
||||
|
||||
|
||||
---------------------------------------------------FashionSeries.tab数据读取---------------------------------------------------------
|
||||
|
||||
local function GetFashionSeriesConfig(id)
|
||||
local cfg = FashionSeriesConfig[id]
|
||||
if cfg == nil then
|
||||
XLog.ErrorTableDataNotFound("XFashionConfigs.GetFashionSeriesConfig",
|
||||
"涂装系列",
|
||||
TABLE_FASHION_SERIES,
|
||||
"Id",
|
||||
tostring(id))
|
||||
return {}
|
||||
end
|
||||
return cfg
|
||||
end
|
||||
|
||||
---
|
||||
--- 获取涂装系列名称
|
||||
function XFashionConfigs.GetSeriesName(id)
|
||||
local cfg = GetFashionSeriesConfig(id)
|
||||
if not cfg.Name then
|
||||
XLog.ErrorTableDataNotFound("XFashionConfigs.GetSeriesName",
|
||||
"涂装名称",
|
||||
TABLE_FASHION_SERIES,
|
||||
"Id",
|
||||
tostring(id))
|
||||
return ""
|
||||
end
|
||||
return cfg.Name
|
||||
end
|
183
Resources/Scripts/XConfig/XFashionStoryConfigs.lua
Normal file
183
Resources/Scripts/XConfig/XFashionStoryConfigs.lua
Normal file
|
@ -0,0 +1,183 @@
|
|||
XFashionStoryConfigs = XFashionStoryConfigs or {}
|
||||
|
||||
local TABLE_FASHION_STORY = "Share/Fuben/FashionStory/FashionStory.tab"
|
||||
local TABLE_FASHION_STORY_STAGE = "Share/Fuben/FashionStory/FashionStoryStage.tab"
|
||||
|
||||
-- 活动类型
|
||||
XFashionStoryConfigs.Type = {
|
||||
Both = 1, -- 具有章节关与试玩关
|
||||
OnlyChapter = 2, -- 只有章节关
|
||||
OnlyTrial = 3, -- 只有试玩关
|
||||
}
|
||||
|
||||
-- 玩法模式
|
||||
XFashionStoryConfigs.Mode = {
|
||||
Chapter = 1, -- 章节关
|
||||
Trial = 2, -- 试玩关
|
||||
}
|
||||
|
||||
XFashionStoryConfigs.StoryEntranceId = 0
|
||||
|
||||
local FashionStory = {}
|
||||
local FashionStoryStage = {}
|
||||
|
||||
function XFashionStoryConfigs.Init()
|
||||
FashionStory = XTableManager.ReadByIntKey(TABLE_FASHION_STORY, XTable.XTableFashionStory, "Id")
|
||||
FashionStoryStage = XTableManager.ReadByIntKey(TABLE_FASHION_STORY_STAGE, XTable.XTableFashionStoryStage, "StageId")
|
||||
end
|
||||
|
||||
|
||||
--------------------------------------------------内部接口---------------------------------------------------------------
|
||||
|
||||
local function GetFashionStoryCfg(id)
|
||||
local cfg = FashionStory[id]
|
||||
if not cfg then
|
||||
XLog.ErrorTableDataNotFound("GetFashionStoryCfg", "系列涂装剧情活动配置",
|
||||
TABLE_FASHION_STORY, "Id", tostring(id))
|
||||
return {}
|
||||
end
|
||||
return cfg
|
||||
end
|
||||
|
||||
local function GetFashionStoryStageCfg(stageId)
|
||||
local cfg = FashionStoryStage[stageId]
|
||||
if not cfg then
|
||||
XLog.ErrorTableDataNotFound(" GetFashionStoryStageCfg", "活动关卡配置",
|
||||
TABLE_FASHION_STORY_STAGE, "StageId", tostring(stageId))
|
||||
return {}
|
||||
end
|
||||
return cfg
|
||||
end
|
||||
|
||||
|
||||
----------------------------------------------FashionStory.tab----------------------------------------------------------
|
||||
|
||||
function XFashionStoryConfigs.GetAllFashionStoryId()
|
||||
local allFashionStoryId = {}
|
||||
for id, _ in pairs(FashionStory) do
|
||||
table.insert(allFashionStoryId, id)
|
||||
end
|
||||
return allFashionStoryId
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetName(id)
|
||||
local cfg = GetFashionStoryCfg(id)
|
||||
return cfg.Name
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetActivityTimeId(id)
|
||||
local cfg = GetFashionStoryCfg(id)
|
||||
return cfg.TimeId
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetChapterPrefab(id)
|
||||
local cfg = GetFashionStoryCfg(id)
|
||||
return cfg.ChapterPrefab
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetActivityBannerIcon(id)
|
||||
local cfg = GetFashionStoryCfg(id)
|
||||
return cfg.ActivityBannerIcon
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetChapterBg(id)
|
||||
local cfg = GetFashionStoryCfg(id)
|
||||
return cfg.ChapterBg
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetTrialBg(id)
|
||||
local cfg = GetFashionStoryCfg(id)
|
||||
return cfg.TrialBg
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetSkipIdList(id)
|
||||
local cfg = GetFashionStoryCfg(id)
|
||||
return cfg.SkipId
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetChapterStagesList(id)
|
||||
local cfg = GetFashionStoryCfg(id)
|
||||
return cfg.ChapterStages
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetTrialStagesList(id)
|
||||
local cfg = GetFashionStoryCfg(id)
|
||||
return cfg.TrialStages
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetChapterFightStagePrefab(id)
|
||||
local cfg = GetFashionStoryCfg(id)
|
||||
return cfg.FightStagePrefab
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetChapterStoryStagePrefab(id)
|
||||
local cfg = GetFashionStoryCfg(id)
|
||||
return cfg.StoryStagePrefab
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetStoryEntranceBg(id)
|
||||
local cfg = GetFashionStoryCfg(id)
|
||||
return cfg.StoryEntranceBg
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetStoryEntranceFinishTag(id)
|
||||
local cfg = GetFashionStoryCfg(id)
|
||||
return cfg.StoryFinishTag
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetStoryTimeId(id)
|
||||
local cfg = GetFashionStoryCfg(id)
|
||||
return cfg.StoryTimeId
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetAllStageId(id)
|
||||
return XTool.MergeArray(XFashionStoryConfigs.GetChapterStagesList(id), XFashionStoryConfigs.GetTrialStagesList(id))
|
||||
end
|
||||
|
||||
|
||||
----------------------------------------------FashionStoryStage.tab----------------------------------------------------------
|
||||
|
||||
function XFashionStoryConfigs.GetStageTimeId(stageId)
|
||||
local cfg = GetFashionStoryStageCfg(stageId)
|
||||
return cfg.TimeId
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetStoryStageDetailBg(id)
|
||||
local cfg = GetFashionStoryStageCfg(id)
|
||||
return cfg.StoryStageDetailBg
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetStoryStageDetailIcon(id)
|
||||
local cfg = GetFashionStoryStageCfg(id)
|
||||
return cfg.StoryStageDetailIcon
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetTrialDetailBg(id)
|
||||
local cfg = GetFashionStoryStageCfg(id)
|
||||
return cfg.TrialDetailBg
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetTrialDetailSpine(id)
|
||||
local cfg = GetFashionStoryStageCfg(id)
|
||||
return cfg.TrialDetailSpine
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetTrialDetailHeadIcon(id)
|
||||
local cfg = GetFashionStoryStageCfg(id)
|
||||
return cfg.TrialDetailHeadIcon
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetTrialDetailRecommendLevel(id)
|
||||
local cfg = GetFashionStoryStageCfg(id)
|
||||
return cfg.TrialDetailRecommendLevel
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetTrialDetailDesc(id)
|
||||
local cfg = GetFashionStoryStageCfg(id)
|
||||
return cfg.TrialDetailDesc
|
||||
end
|
||||
|
||||
function XFashionStoryConfigs.GetTrialFinishTag(id)
|
||||
local cfg = GetFashionStoryStageCfg(id)
|
||||
return cfg.FinishTag
|
||||
end
|
610
Resources/Scripts/XConfig/XFavorabilityConfigs.lua
Normal file
610
Resources/Scripts/XConfig/XFavorabilityConfigs.lua
Normal file
|
@ -0,0 +1,610 @@
|
|||
XFavorabilityConfigs = XFavorabilityConfigs or {}
|
||||
|
||||
XFavorabilityConfigs.RewardUnlockType = {
|
||||
FightAbility = 1,
|
||||
TrustLv = 2,
|
||||
CharacterLv = 3,
|
||||
Quality = 4,
|
||||
}
|
||||
|
||||
XFavorabilityConfigs.InfoState = {
|
||||
Normal = 1,
|
||||
Available = 2,
|
||||
Lock = 3,
|
||||
}
|
||||
|
||||
XFavorabilityConfigs.StrangeNewsUnlockType = {
|
||||
TrustLv = 1,
|
||||
DormEvent = 2,
|
||||
}
|
||||
|
||||
XFavorabilityConfigs.SoundEventType = {
|
||||
FirstTimeObtain = 1, -- 首次获得角色
|
||||
LevelUp = 2, -- 角色升级
|
||||
Evolve = 3, -- 角色进化
|
||||
GradeUp = 4, -- 角色升军阶
|
||||
SkillUp = 5, -- 角色技能升级
|
||||
WearWeapon = 6, -- 角色穿戴武器
|
||||
MemberJoinTeam = 7, --角色入队(队员)
|
||||
CaptainJoinTeam = 8, --角色入队(队长)
|
||||
}
|
||||
|
||||
XFavorabilityConfigs.TrustItemType = {
|
||||
Normal = 1, -- 普通
|
||||
Communication = 2, -- 触发通讯的道具
|
||||
}
|
||||
|
||||
-- [礼物品质]
|
||||
XFavorabilityConfigs.GiftQualityIcon = {
|
||||
[1] = CS.XGame.ClientConfig:GetString("QualityIconColor1"),
|
||||
[2] = CS.XGame.ClientConfig:GetString("QualityIconColor2"),
|
||||
[3] = CS.XGame.ClientConfig:GetString("QualityIconColor3"),
|
||||
[4] = CS.XGame.ClientConfig:GetString("QualityIconColor4"),
|
||||
[5] = CS.XGame.ClientConfig:GetString("QualityIconColor5"),
|
||||
[6] = CS.XGame.ClientConfig:GetString("QualityIconColor6"),
|
||||
}
|
||||
|
||||
local TABLE_LIKE_BASEDATA = "Client/Trust/CharacterBaseData.tab"
|
||||
local TABLE_LIKE_INFORMATION = "Client/Trust/CharacterInformation.tab"
|
||||
local TABLE_LIKE_STORY = "Client/Trust/CharacterStory.tab"
|
||||
local TABLE_LIKE_STRANGENEWS = "Client/Trust/CharacterStrangeNews.tab"
|
||||
local TABLE_LIKE_TRUSTEXP = "Share/Trust/CharacterTrustExp.tab"
|
||||
local TABLE_LIKE_TRUSTITEM = "Share/Trust/CharacterTrustItem.tab"
|
||||
local TABLE_LIKE_VOICE = "Client/Trust/CharacterVoice.tab"
|
||||
local TABLE_LIKE_LEVELCONFIG = "Share/Trust/FavorabilityLevelConfig.tab"
|
||||
local TABLE_LIKE_ACTION = "Client/Trust/CharacterAction.tab"
|
||||
|
||||
--local TABLE_AUDIO_CV = "Client/Audio/Cv.tab"
|
||||
local TABLE_CHARACTER_COLLABORATION = "Client/Trust/CharacterCollaboration.tab"
|
||||
|
||||
local CharacterFavorabilityConfig = {}
|
||||
local CharacterTrustExp = {}
|
||||
local CharacterBaseData = {}
|
||||
local CharacterInformation = {}
|
||||
local CharacterInformationUnlockLv = {}
|
||||
local CharacterRumors = {}
|
||||
local CharacterVoice = {}
|
||||
local CharacterVoiceUnlockLv = {}
|
||||
local CharacterStory = {}
|
||||
local CharacterStoryUnlockLv = {}
|
||||
local CharacterSendGift = {}
|
||||
local CharacterGiftReward = {}
|
||||
local likeReward = {}
|
||||
local CharacterAction = {}
|
||||
local CharacterActionUnlockLv = {}
|
||||
local CharacterCollaboration = {}
|
||||
|
||||
--local AudioCV = {}
|
||||
local DEFAULT_CV_TYPE = CS.XGame.Config:GetInt("DefaultCvType")
|
||||
|
||||
function XFavorabilityConfigs.Init()
|
||||
local baseData = XTableManager.ReadByIntKey(TABLE_LIKE_BASEDATA, XTable.XTableCharacterBaseData, "Id")
|
||||
for _, v in pairs(baseData) do
|
||||
if CharacterBaseData[v.CharacterId] == nil then
|
||||
CharacterBaseData[v.CharacterId] = {}
|
||||
end
|
||||
|
||||
CharacterBaseData[v.CharacterId] = {
|
||||
CharacterId = v.CharacterId,
|
||||
BaseDataTitle = v.BaseDataTitle,
|
||||
BaseData = v.BaseData,
|
||||
Cast = v.Cast,
|
||||
}
|
||||
end
|
||||
|
||||
local likeInformation = XTableManager.ReadByIntKey(TABLE_LIKE_INFORMATION, XTable.XTableCharacterInformation, "Id")
|
||||
for _, v in pairs(likeInformation) do
|
||||
if CharacterInformation[v.CharacterId] == nil then
|
||||
CharacterInformation[v.CharacterId] = {}
|
||||
end
|
||||
|
||||
table.insert(CharacterInformation[v.CharacterId], {
|
||||
Id = v.Id,
|
||||
CharacterId = v.CharacterId,
|
||||
UnlockLv = v.UnlockLv,
|
||||
Title = v.Title,
|
||||
Content = v.Content,
|
||||
ConditionDescript = v.ConditionDescript
|
||||
})
|
||||
if CharacterInformationUnlockLv[v.CharacterId] == nil then
|
||||
CharacterInformationUnlockLv[v.CharacterId] = {}
|
||||
end
|
||||
CharacterInformationUnlockLv[v.CharacterId][v.Id] = v.UnlockLv
|
||||
|
||||
end
|
||||
for _, characterDatas in pairs(CharacterInformation) do
|
||||
table.sort(characterDatas, function(infoA, infoB)
|
||||
if infoA.UnlockLv == infoB.UnlockLv then
|
||||
return infoA.Id < infoB.Id
|
||||
end
|
||||
return infoA.UnlockLv < infoB.UnlockLv
|
||||
end)
|
||||
end
|
||||
|
||||
local likeStory = XTableManager.ReadByIntKey(TABLE_LIKE_STORY, XTable.XTableCharacterStory, "Id")
|
||||
for _, v in pairs(likeStory) do
|
||||
if CharacterStory[v.CharacterId] == nil then
|
||||
CharacterStory[v.CharacterId] = {}
|
||||
end
|
||||
table.insert(CharacterStory[v.CharacterId], {
|
||||
Id = v.Id,
|
||||
Name = v.Name,
|
||||
CharacterId = v.CharacterId,
|
||||
StoryId = v.StoryId,
|
||||
Icon = v.Icon,
|
||||
UnlockLv = v.UnlockLv,
|
||||
ConditionDescript = v.ConditionDescript,
|
||||
SectionNumber = v.SectionNumber,
|
||||
})
|
||||
|
||||
if CharacterStoryUnlockLv[v.CharacterId] == nil then
|
||||
CharacterStoryUnlockLv[v.CharacterId] = {}
|
||||
end
|
||||
CharacterStoryUnlockLv[v.CharacterId][v.Id] = v.UnlockLv
|
||||
end
|
||||
for _, storys in pairs(CharacterStory) do
|
||||
table.sort(storys, function(storyA, storyB)
|
||||
if storyA.UnlockLv == storyB.UnlockLv then
|
||||
return storyA.Id < storyB.Id
|
||||
end
|
||||
return storyA.UnlockLv < storyB.UnlockLv
|
||||
end)
|
||||
end
|
||||
|
||||
local likeStrangeNews = XTableManager.ReadByIntKey(TABLE_LIKE_STRANGENEWS, XTable.XTableCharacterStrangeNews, "Id")
|
||||
for _, v in pairs(likeStrangeNews) do
|
||||
if CharacterRumors[v.CharacterId] == nil then
|
||||
CharacterRumors[v.CharacterId] = {}
|
||||
end
|
||||
|
||||
table.insert(CharacterRumors[v.CharacterId], {
|
||||
Id = v.Id,
|
||||
CharacterId = v.CharacterId,
|
||||
Type = v.Type,
|
||||
UnlockType = v.UnlockType,
|
||||
Title = v.Title,
|
||||
Content = v.Content,
|
||||
Picture = v.Picture,
|
||||
UnlockPara = v.UnlockPara,
|
||||
ConditionDescript = v.ConditionDescript,
|
||||
PreviewPicture = v.PreviewPicture
|
||||
})
|
||||
end
|
||||
for _, strangeNews in pairs(CharacterRumors) do
|
||||
table.sort(strangeNews, function(strangeNewsA, strangeNewsB)
|
||||
return strangeNewsA.Id < strangeNewsB.Id
|
||||
end)
|
||||
end
|
||||
|
||||
local likeTrustExp = XTableManager.ReadByIntKey(TABLE_LIKE_TRUSTEXP, XTable.XTableCharacterTrustExp, "Id")
|
||||
for _, v in pairs(likeTrustExp) do
|
||||
if CharacterTrustExp[v.CharacterId] == nil then
|
||||
CharacterTrustExp[v.CharacterId] = {}
|
||||
end
|
||||
CharacterTrustExp[v.CharacterId][v.TrustLv] = {
|
||||
Exp = v.Exp,
|
||||
Name = v.Name,
|
||||
PlayId = v.PlayId
|
||||
}
|
||||
end
|
||||
|
||||
local likeTrustItem = XTableManager.ReadByIntKey(TABLE_LIKE_TRUSTITEM, XTable.XTableCharacterTrustItem, "Id")
|
||||
for _, v in pairs(likeTrustItem) do
|
||||
table.insert(CharacterSendGift, {
|
||||
Id = v.Id,
|
||||
Exp = v.Exp,
|
||||
FavorCharacterId = v.FavorCharacterId,
|
||||
FavorExp = v.FavorExp,
|
||||
TrustItemType = v.TrustItemType,
|
||||
})
|
||||
end
|
||||
|
||||
local likeVoice = XTableManager.ReadByIntKey(TABLE_LIKE_VOICE, XTable.XTableCharacterVoice, "Id")
|
||||
for _, v in pairs(likeVoice) do
|
||||
if v.IsShow == 1 then
|
||||
if CharacterVoice[v.CharacterId] == nil then
|
||||
CharacterVoice[v.CharacterId] = {}
|
||||
end
|
||||
table.insert(CharacterVoice[v.CharacterId], {
|
||||
Id = v.Id,
|
||||
CharacterId = v.CharacterId,
|
||||
Name = v.Name,
|
||||
CvId = v.CvId,
|
||||
UnlockLv = v.UnlockLv,
|
||||
ConditionDescript = v.ConditionDescript,
|
||||
SoundType = v.SoundType,
|
||||
IsShow = v.IsShow,
|
||||
})
|
||||
end
|
||||
if CharacterVoiceUnlockLv[v.CharacterId] == nil then
|
||||
CharacterVoiceUnlockLv[v.CharacterId] = {}
|
||||
end
|
||||
CharacterVoiceUnlockLv[v.CharacterId][v.Id] = v.UnlockLv
|
||||
|
||||
end
|
||||
for _, v in pairs(CharacterVoice) do
|
||||
table.sort(v, XFavorabilityConfigs.SortVoice)
|
||||
end
|
||||
|
||||
local likeAction = XTableManager.ReadByIntKey(TABLE_LIKE_ACTION, XTable.XTableCharacterAction, "Id")
|
||||
for _, v in pairs(likeAction) do
|
||||
if CharacterAction[v.CharacterId] == nil then
|
||||
CharacterAction[v.CharacterId] = {}
|
||||
end
|
||||
table.insert(CharacterAction[v.CharacterId], {
|
||||
Id = v.Id,
|
||||
CharacterId = v.CharacterId,
|
||||
Name = v.Name,
|
||||
SignBoardActionId = v.SignBoardActionId,
|
||||
UnlockLv = v.UnlockLv,
|
||||
ConditionDescript = v.ConditionDescript,
|
||||
})
|
||||
if CharacterActionUnlockLv[v.CharacterId] == nil then
|
||||
CharacterActionUnlockLv[v.CharacterId] = {}
|
||||
end
|
||||
CharacterActionUnlockLv[v.CharacterId][v.Id] = v.UnlockLv
|
||||
end
|
||||
for _, v in pairs(CharacterAction) do
|
||||
table.sort(v, function(item1, item2)
|
||||
if item1.UnlockLv == item2.UnlockLv then
|
||||
return item1.Id < item2.Id
|
||||
end
|
||||
return item1.UnlockLv < item2.UnlockLv
|
||||
end)
|
||||
end
|
||||
|
||||
CharacterFavorabilityConfig = XTableManager.ReadByIntKey(TABLE_LIKE_LEVELCONFIG, XTable.XTableFavorabilityLevelConfig, "Id")
|
||||
CharacterCollaboration = XTableManager.ReadByIntKey(TABLE_CHARACTER_COLLABORATION, XTable.XTableCharacterCollaboration, "CharacterId")
|
||||
|
||||
--AudioCV = XTableManager.ReadByIntKey(TABLE_AUDIO_CV, XTable.XTableCv, "Id")
|
||||
end
|
||||
|
||||
function XFavorabilityConfigs.SortVoice(a, b)
|
||||
if a.UnlockLv == b.UnlockLv then
|
||||
return a.Id < b.Id
|
||||
end
|
||||
return a.UnlockLv < b.UnlockLv
|
||||
end
|
||||
|
||||
-- [好感度等级经验]
|
||||
function XFavorabilityConfigs.GetTrustExpById(characterId)
|
||||
local trustExp = CharacterTrustExp[characterId]
|
||||
if not trustExp then
|
||||
XLog.ErrorTableDataNotFound("XFavorabilityConfigs.GetTrustExpById", "CharacterTrustExp",
|
||||
TABLE_LIKE_TRUSTEXP, "characterId", tostring(characterId))
|
||||
return
|
||||
end
|
||||
return trustExp
|
||||
end
|
||||
|
||||
-- [好感度基础数据]
|
||||
function XFavorabilityConfigs.GetCharacterBaseDataById(characterId)
|
||||
local baseData = CharacterBaseData[characterId]
|
||||
if not baseData then
|
||||
XLog.ErrorTableDataNotFound("XFavorabilityConfigs.GetCharacterBaseDataById",
|
||||
"CharacterBaseData", TABLE_LIKE_BASEDATA, "characterId", characterId)
|
||||
return
|
||||
end
|
||||
return baseData
|
||||
end
|
||||
|
||||
-- 获取cv名字
|
||||
function XFavorabilityConfigs.GetCharacterCvById(characterId)
|
||||
local baseData = XFavorabilityConfigs.GetCharacterBaseDataById(characterId)
|
||||
if not baseData then return "" end
|
||||
|
||||
local cvType = CS.UnityEngine.PlayerPrefs.GetInt("CV_TYPE", DEFAULT_CV_TYPE)
|
||||
if baseData.Cast and baseData.Cast[cvType] then return baseData.Cast[cvType] end
|
||||
return ""
|
||||
end
|
||||
|
||||
-- 获取cv名字
|
||||
function XFavorabilityConfigs.GetCharacterCvByIdAndType(characterId, cvType)
|
||||
local baseData = XFavorabilityConfigs.GetCharacterBaseDataById(characterId)
|
||||
if not baseData then return "" end
|
||||
|
||||
if baseData.Cast and baseData.Cast[cvType] then return baseData.Cast[cvType] end
|
||||
return ""
|
||||
end
|
||||
|
||||
-- [好感度档案-资料]
|
||||
function XFavorabilityConfigs.GetCharacterInformationById(characterId)
|
||||
local information = CharacterInformation[characterId]
|
||||
return information
|
||||
end
|
||||
|
||||
--获取档案
|
||||
function XFavorabilityConfigs.GetCharacterInformation()
|
||||
return CharacterInformation
|
||||
end
|
||||
|
||||
|
||||
-- [好感度档案-资料解锁等级]
|
||||
function XFavorabilityConfigs.GetCharacterInformationUnlockLvById(characterId)
|
||||
local informationUnlockDatas = CharacterInformationUnlockLv[characterId]
|
||||
if not informationUnlockDatas then
|
||||
XLog.ErrorTableDataNotFound("XFavorabilityConfigs.GetCharacterInformationUnlockLvById",
|
||||
"UnlockLv", TABLE_LIKE_INFORMATION, "characterId", tostring(characterId))
|
||||
return
|
||||
end
|
||||
return informationUnlockDatas
|
||||
end
|
||||
|
||||
-- [好感度档案-异闻]
|
||||
function XFavorabilityConfigs.GetCharacterRumorsById(characterId)
|
||||
local rumors = CharacterRumors[characterId]
|
||||
return rumors
|
||||
end
|
||||
|
||||
--获取异闻
|
||||
function XFavorabilityConfigs.GetCharacterRumors()
|
||||
return CharacterRumors
|
||||
end
|
||||
|
||||
--获取剧情
|
||||
function XFavorabilityConfigs.GetCharacterStory()
|
||||
return CharacterStory
|
||||
end
|
||||
|
||||
--获取语音
|
||||
function XFavorabilityConfigs.GetCharacterVoice()
|
||||
return CharacterVoice
|
||||
end
|
||||
|
||||
--获取动作
|
||||
function XFavorabilityConfigs.GetCharacterAction()
|
||||
return CharacterAction
|
||||
end
|
||||
|
||||
-- [好感度档案-动作]
|
||||
function XFavorabilityConfigs.GetCharacterActionById(characterId)
|
||||
if XRobotManager.CheckIsRobotId(characterId) then
|
||||
characterId = XRobotManager.GetRobotTemplate(characterId).CharacterId
|
||||
end
|
||||
local action = CharacterAction[characterId]
|
||||
return action
|
||||
end
|
||||
|
||||
-- [好感度档案-动作解锁等级]
|
||||
function XFavorabilityConfigs.GetCharacterActionUnlockLvsById(characterId)
|
||||
local actionUnlockDatas = CharacterActionUnlockLv[characterId]
|
||||
if not actionUnlockDatas then
|
||||
XLog.ErrorTableDataNotFound("XFavorabilityConfigs.GetCharacterActionUnlockLvsById",
|
||||
"CharacterActionUnlockLv", TABLE_LIKE_ACTION, "characterId", tostring(characterId))
|
||||
return
|
||||
end
|
||||
return actionUnlockDatas
|
||||
end
|
||||
|
||||
-- [好感度档案-语音]
|
||||
function XFavorabilityConfigs.GetCharacterVoiceById(characterId)
|
||||
if XRobotManager.CheckIsRobotId(characterId) then
|
||||
characterId = XRobotManager.GetRobotTemplate(characterId).CharacterId
|
||||
end
|
||||
local voice = CharacterVoice[characterId]
|
||||
return voice
|
||||
end
|
||||
|
||||
-- [好感度档案-语音解锁等级]
|
||||
function XFavorabilityConfigs.GetCharacterVoiceUnlockLvsById(characterId)
|
||||
local voiceUnlockDatas = CharacterVoiceUnlockLv[characterId]
|
||||
if not voiceUnlockDatas then
|
||||
XLog.ErrorTableDataNotFound("XFavorabilityConfigs.GetCharacterVoiceUnlockLvsById",
|
||||
"CharacterVoiceUnlockLv", TABLE_LIKE_VOICE, "characterId", tostring(characterId))
|
||||
return
|
||||
end
|
||||
return voiceUnlockDatas
|
||||
end
|
||||
|
||||
-- [好感度剧情]
|
||||
function XFavorabilityConfigs.GetCharacterStoryById(characterId)
|
||||
local storys = CharacterStory[characterId]
|
||||
return storys
|
||||
end
|
||||
|
||||
-- [好感度剧情解锁等级]
|
||||
function XFavorabilityConfigs.GetCharacterStoryUnlockLvsById(characterId)
|
||||
local storyUnlockDatas = CharacterStoryUnlockLv[characterId]
|
||||
if not storyUnlockDatas then
|
||||
XLog.ErrorTableDataNotFound("XFavorabilityConfigs.GetCharacterStoryUnlockLvsById",
|
||||
"CharacterStoryUnlockLv", TABLE_LIKE_STORY, "characterId", tostring(characterId))
|
||||
return
|
||||
end
|
||||
return storyUnlockDatas
|
||||
end
|
||||
|
||||
-- [好感度礼物-送礼]
|
||||
function XFavorabilityConfigs.GetAllCharacterSendGift()
|
||||
if not CharacterSendGift then
|
||||
XLog.Error("XFavorabilityConfigs.GetAllCharacterSendGift 函数错误, 配置表:" .. TABLE_LIKE_TRUSTITEM .. " 读取失败, 检查配置表")
|
||||
return
|
||||
end
|
||||
return CharacterSendGift
|
||||
end
|
||||
|
||||
-- [好感度礼物-奖励]
|
||||
function XFavorabilityConfigs.GetCharacterGiftRewardById(characterId)
|
||||
local giftReward = CharacterGiftReward[characterId]
|
||||
if not giftReward then
|
||||
XLog.Error("XFavorabilityConfigs.GetCharacterGiftRewardById error: not data found by characterId " .. tostring(characterId))
|
||||
return
|
||||
end
|
||||
return giftReward
|
||||
end
|
||||
|
||||
function XFavorabilityConfigs.GetLikeRewardById(rewardId)
|
||||
if not likeReward then
|
||||
XLog.Error("XFavorabilityConfigs.GetLikeRewardById error: not data found by rewardId " .. tostring(rewardId))
|
||||
return
|
||||
end
|
||||
return likeReward[rewardId]
|
||||
end
|
||||
|
||||
function XFavorabilityConfigs.GetFavorabilityLevelCfg(level)
|
||||
local cfgs = CharacterFavorabilityConfig[level]
|
||||
if not cfgs then
|
||||
XLog.ErrorTableDataNotFound("XFavorabilityConfigs.GetFavorabilityLevelCfg",
|
||||
"CharacterFavorabilityConfig", TABLE_LIKE_LEVELCONFIG, "level", tostring(level))
|
||||
end
|
||||
return cfgs
|
||||
end
|
||||
|
||||
-- CharacterFavorabilityConfig
|
||||
-- [好感度-等级名字]
|
||||
function XFavorabilityConfigs.GetWordsWithColor(trustLv, name)
|
||||
local color = XFavorabilityConfigs.GetFavorabilityLevelCfg(trustLv).WordColor
|
||||
return string.format("<color=%s>%s</color>", color, name)
|
||||
end
|
||||
|
||||
-- [好感度-名字-称号]
|
||||
function XFavorabilityConfigs.GetCharacterNameWithTitle(name, title)
|
||||
return string.format("%s <size=36>%s</size>", name, title)
|
||||
end
|
||||
|
||||
-- [好感度-等级图标]
|
||||
function XFavorabilityConfigs.GetTrustLevelIconByLevel(level)
|
||||
return XFavorabilityConfigs.GetFavorabilityLevelCfg(level).LevelIcon
|
||||
end
|
||||
|
||||
-- [好感度-品质图标]
|
||||
function XFavorabilityConfigs.GetQualityIconByQuality(quality)
|
||||
if quality == nil or XFavorabilityConfigs.GiftQualityIcon[quality] == nil then
|
||||
return XFavorabilityConfigs.GiftQualityIcon[1]
|
||||
end
|
||||
return XFavorabilityConfigs.GiftQualityIcon[quality]
|
||||
end
|
||||
|
||||
function XFavorabilityConfigs.GetCvContent(cvId)
|
||||
local cvData = nil
|
||||
|
||||
if CS.XAudioManager.CvTemplates:ContainsKey(cvId) then
|
||||
cvData = CS.XAudioManager.CvTemplates[cvId]
|
||||
end
|
||||
|
||||
if not cvData then return "" end
|
||||
return cvData.CvContent[0] or ""
|
||||
end
|
||||
|
||||
function XFavorabilityConfigs.GetCvContentByIdAndType(cvId, cvType)
|
||||
local cvData = nil
|
||||
|
||||
if CS.XAudioManager.CvTemplates:ContainsKey(cvId) then
|
||||
cvData = CS.XAudioManager.CvTemplates[cvId]
|
||||
end
|
||||
|
||||
if not cvData then return "" end
|
||||
return cvData.CvContent[cvType - 1] or ""
|
||||
end
|
||||
|
||||
function XFavorabilityConfigs.GetMaxFavorabilityLevel(characterId)
|
||||
local characterFavorabilityLevelDatas = CharacterTrustExp[characterId]
|
||||
if not characterFavorabilityLevelDatas then
|
||||
XLog.ErrorTableDataNotFound("XFavorabilityConfigs.GetMaxFavorabilityLevel",
|
||||
"CharacterTrustExp", TABLE_LIKE_TRUSTEXP, "characterId", tostring(characterId))
|
||||
return
|
||||
end
|
||||
local maxLevel = 1
|
||||
for trustLv, levelDatas in pairs(characterFavorabilityLevelDatas) do
|
||||
if levelDatas.Exp == 0 then
|
||||
maxLevel = trustLv
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
return maxLevel
|
||||
end
|
||||
|
||||
function XFavorabilityConfigs.GetFavorabilityLevel(characterId, totalExp, startLevel)
|
||||
local characterFavorabilityLevelDatas = CharacterTrustExp[characterId]
|
||||
if not characterFavorabilityLevelDatas then
|
||||
XLog.ErrorTableDataNotFound("XFavorabilityConfigs.GetMaxFavorabilityLevel",
|
||||
"CharacterTrustExp", TABLE_LIKE_TRUSTEXP, "characterId", tostring(characterId))
|
||||
return
|
||||
end
|
||||
startLevel = startLevel or 1
|
||||
local level = startLevel
|
||||
local leftExp = totalExp
|
||||
local levelExp = 0
|
||||
for trustLv, levelDatas in pairs(characterFavorabilityLevelDatas) do
|
||||
if startLevel <= trustLv then
|
||||
local exp = levelDatas.Exp
|
||||
levelExp = exp
|
||||
|
||||
if exp == 0 then
|
||||
level = trustLv
|
||||
break
|
||||
end
|
||||
|
||||
|
||||
if leftExp < exp then
|
||||
level = trustLv
|
||||
break
|
||||
end
|
||||
|
||||
if totalExp >= exp then
|
||||
leftExp = leftExp - exp
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return level, leftExp, levelExp
|
||||
end
|
||||
|
||||
--是不是联动角色
|
||||
function XFavorabilityConfigs.IsCollaborationCharacter(characterId)
|
||||
return CharacterCollaboration[characterId]
|
||||
end
|
||||
|
||||
--联动角色语种
|
||||
function XFavorabilityConfigs.GetCollaborationCharacterCvType(characterId)
|
||||
if XFavorabilityConfigs.IsCollaborationCharacter(characterId) then
|
||||
local cvType = string.Split(CharacterCollaboration[characterId].languageSet, "|")
|
||||
|
||||
for k, v in pairs(cvType) do
|
||||
cvType[k] = tonumber(v)
|
||||
end
|
||||
|
||||
return cvType
|
||||
else
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
--联动角色语种提示
|
||||
function XFavorabilityConfigs.GetCollaborationCharacterText(characterId)
|
||||
if XFavorabilityConfigs.IsCollaborationCharacter(characterId) then
|
||||
return CharacterCollaboration[characterId].Text
|
||||
else
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
--联动角色Logo
|
||||
function XFavorabilityConfigs.GetCollaborationCharacterIcon(characterId)
|
||||
if XFavorabilityConfigs.IsCollaborationCharacter(characterId) then
|
||||
return CharacterCollaboration[characterId].IconPath
|
||||
else
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
--联动角色Logo位置
|
||||
function XFavorabilityConfigs.GetCollaborationCharacterIconPos(characterId)
|
||||
if XFavorabilityConfigs.IsCollaborationCharacter(characterId) then
|
||||
local pos = {}
|
||||
pos.X = CharacterCollaboration[characterId].IconX
|
||||
pos.Y = CharacterCollaboration[characterId].IconY
|
||||
return pos
|
||||
else
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
--联动角色Logo缩放
|
||||
function XFavorabilityConfigs.GetCollaborationCharacterIconScale(characterId)
|
||||
if XFavorabilityConfigs.IsCollaborationCharacter(characterId) then
|
||||
return CharacterCollaboration[characterId].IconScale
|
||||
else
|
||||
return nil
|
||||
end
|
||||
end
|
64
Resources/Scripts/XConfig/XFestivalActivityConfig.lua
Normal file
64
Resources/Scripts/XConfig/XFestivalActivityConfig.lua
Normal file
|
@ -0,0 +1,64 @@
|
|||
XFestivalActivityConfig = XFestivalActivityConfig or {}
|
||||
|
||||
local CLIENT_FESTIVAL_STAGE = "Client/Fuben/Festival/FestivalStage.tab" --庆典关卡客户端表
|
||||
local SHARE_FESTIVAL = "Share/Fuben/Festival/FestivalActivity.tab"
|
||||
|
||||
local ShareFestival = {}
|
||||
local ClientFestivalStages = {}
|
||||
|
||||
--活动名称Id
|
||||
XFestivalActivityConfig.ActivityId = {
|
||||
Christmas = 1,
|
||||
MainLine = 2,
|
||||
NewYear = 3,
|
||||
FoolsDay = 4,
|
||||
}
|
||||
|
||||
function XFestivalActivityConfig.Init()
|
||||
ClientFestivalStages = XTableManager.ReadByIntKey(CLIENT_FESTIVAL_STAGE, XTable.XTableFestivalStage, "StageId")
|
||||
ShareFestival = XTableManager.ReadByIntKey(SHARE_FESTIVAL, XTable.XTableFestivalActivity, "Id")
|
||||
end
|
||||
|
||||
function XFestivalActivityConfig.GetFestivalsTemplates()
|
||||
return ShareFestival
|
||||
end
|
||||
|
||||
function XFestivalActivityConfig.GetFestivalById(id)
|
||||
if not id then return end
|
||||
local festivalDatas = ShareFestival[id]
|
||||
if not festivalDatas then
|
||||
XLog.ErrorTableDataNotFound("XFestivalActivityConfig.GetFestivalById", "FestivalActivity", SHARE_FESTIVAL, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return festivalDatas
|
||||
end
|
||||
|
||||
function XFestivalActivityConfig.GetFestivalTime(id)
|
||||
local config = XFestivalActivityConfig.GetFestivalById(id)
|
||||
return XFunctionManager.GetTimeByTimeId(config.TimeId)
|
||||
end
|
||||
|
||||
function XFestivalActivityConfig.IsOffLine(id)
|
||||
local config = XFestivalActivityConfig.GetFestivalById(id)
|
||||
return not XTool.IsNumberValid(config.TimeId)
|
||||
end
|
||||
|
||||
--====================
|
||||
--获取庆典活动关卡配置
|
||||
--@param stageId:关卡ID
|
||||
--@return 庆典活动关卡配置
|
||||
--====================
|
||||
function XFestivalActivityConfig.GetFestivalStageCfgByStageId(stageId)
|
||||
if not ClientFestivalStages[stageId] then
|
||||
--[[
|
||||
XLog.ErrorTableDataNotFound(
|
||||
"XFestivalActivityConfig.GetFestivalStageCfgByStageId",
|
||||
"庆典活动关卡",
|
||||
CLIENT_FESTIVAL_STAGE,
|
||||
"StageId",
|
||||
tostring(stageId))
|
||||
]]
|
||||
return nil
|
||||
end
|
||||
return ClientFestivalStages[stageId]
|
||||
end
|
25
Resources/Scripts/XConfig/XFightWordsConfigs.lua
Normal file
25
Resources/Scripts/XConfig/XFightWordsConfigs.lua
Normal file
|
@ -0,0 +1,25 @@
|
|||
XFightWordsConfigs = XFightWordsConfigs or {}
|
||||
|
||||
local TABLE_MOVIE_PATH_PREFIX = "Client/Fight/Words/Words.tab"
|
||||
local WordsTemplates
|
||||
|
||||
local function InitWordsTemplate(id)
|
||||
if not WordsTemplates then
|
||||
WordsTemplates = {}
|
||||
local wordsArray = XTableManager.ReadArray(TABLE_MOVIE_PATH_PREFIX, XTable.XTableFightWords)
|
||||
for i = 1, #wordsArray do
|
||||
local group = wordsArray[i]["Group"]
|
||||
if not WordsTemplates[group] then
|
||||
WordsTemplates[group] = {}
|
||||
end
|
||||
table.insert(WordsTemplates[group],wordsArray[i])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XFightWordsConfigs.GetMovieCfg(id)
|
||||
if not WordsTemplates then
|
||||
InitWordsTemplate(id)
|
||||
end
|
||||
return WordsTemplates[id]
|
||||
end
|
156
Resources/Scripts/XConfig/XFingerGuessingConfig.lua
Normal file
156
Resources/Scripts/XConfig/XFingerGuessingConfig.lua
Normal file
|
@ -0,0 +1,156 @@
|
|||
-- 猜拳小游戏配置表
|
||||
XFingerGuessingConfig = {}
|
||||
|
||||
-- ===================表地址
|
||||
local SHARE_TABLE_PATH = "Share/MiniActivity/FingerGuessingGame/"
|
||||
local CLIENT_TABLE_PATH = "Client/MiniActivity/FingerGuessingGame/"
|
||||
local TABLE_ACTIVITY = SHARE_TABLE_PATH .. "FingerGuessingActivity.tab"
|
||||
local TABLE_STAGE = SHARE_TABLE_PATH .. "FingerGuessingStage.tab"
|
||||
local TABLE_ROUND = SHARE_TABLE_PATH .. "FingerGuessingStageRound.tab"
|
||||
local TABLE_FINGER = SHARE_TABLE_PATH .. "FingerGuessingFinger.tab"
|
||||
-- ===================原表数据
|
||||
local FingerGuessingActivityConfig = {}
|
||||
local FingerGuessingStageConfig = {}
|
||||
local FingerGuessingRoundConfig = {}
|
||||
local FingerGuessingFingerConfig = {}
|
||||
-- ===================构建字典
|
||||
local Stage2RoundDic = {}
|
||||
|
||||
local CreateStage2RoundDic = function()
|
||||
for _, roundConfig in pairs(FingerGuessingRoundConfig) do
|
||||
local stageId = roundConfig.StageId
|
||||
if not Stage2RoundDic[stageId] then Stage2RoundDic[stageId] = {} end
|
||||
Stage2RoundDic[stageId][roundConfig.Round] = roundConfig
|
||||
end
|
||||
end
|
||||
--================
|
||||
--初始化Config
|
||||
--================
|
||||
function XFingerGuessingConfig.Init()
|
||||
FingerGuessingActivityConfig = XTableManager.ReadByIntKey(TABLE_ACTIVITY, XTable.XTableFingerGuessingActivity, "Id")
|
||||
FingerGuessingStageConfig = XTableManager.ReadByIntKey(TABLE_STAGE, XTable.XTableFingerGuessingStage, "Id")
|
||||
FingerGuessingRoundConfig = XTableManager.ReadByIntKey(TABLE_ROUND, XTable.XTableFingerGuessingStageRound, "Id")
|
||||
FingerGuessingFingerConfig = XTableManager.ReadByIntKey(TABLE_FINGER, XTable.XTableFingerGuessingFinger, "Id")
|
||||
CreateStage2RoundDic()
|
||||
end
|
||||
--================
|
||||
--获取所有活动配置
|
||||
--================
|
||||
function XFingerGuessingConfig.GetAllActivityConfig()
|
||||
return FingerGuessingActivityConfig
|
||||
end
|
||||
--================
|
||||
--获取最后的活动配置
|
||||
--================
|
||||
function XFingerGuessingConfig.GetLastestActivityConfig()
|
||||
local id = 0
|
||||
for configId, _ in pairs(FingerGuessingActivityConfig) do
|
||||
if configId > id then
|
||||
id = configId
|
||||
end
|
||||
end
|
||||
return FingerGuessingActivityConfig[id]
|
||||
end
|
||||
--================
|
||||
--根据活动Id获取活动配置
|
||||
--@param activityId:活动Id
|
||||
--================
|
||||
function XFingerGuessingConfig.GetActivityConfigById(activityId)
|
||||
local config = FingerGuessingActivityConfig[activityId]
|
||||
if not config then
|
||||
XLog.ErrorTableDataNotFound(
|
||||
"XFingerGuessingConfig.GetActivityConfigById",
|
||||
"猜拳小游戏基础配置",
|
||||
TABLE_ACTIVITY,
|
||||
"Id",
|
||||
tostring(activityId))
|
||||
return nil
|
||||
end
|
||||
return config
|
||||
end
|
||||
--================
|
||||
--获取所有关卡配置
|
||||
--================
|
||||
function XFingerGuessingConfig.GetAllStageConfig()
|
||||
return FingerGuessingStageConfig
|
||||
end
|
||||
--================
|
||||
--根据关卡Id获取关卡配置
|
||||
--@param stageId:关卡Id
|
||||
--================
|
||||
function XFingerGuessingConfig.GetStageConfigById(stageId)
|
||||
local config = FingerGuessingStageConfig[stageId]
|
||||
if not config then
|
||||
XLog.ErrorTableDataNotFound(
|
||||
"XFingerGuessingConfig.GetStageConfigById",
|
||||
"猜拳小游戏关卡配置",
|
||||
TABLE_STAGE,
|
||||
"Id",
|
||||
tostring(stageId))
|
||||
return nil
|
||||
end
|
||||
return config
|
||||
end
|
||||
--================
|
||||
--获取所有小局配置
|
||||
--================
|
||||
function XFingerGuessingConfig.GetAllRoundConfig()
|
||||
return FingerGuessingRoundConfig
|
||||
end
|
||||
--================
|
||||
--根据小局Id获取小局配置
|
||||
--@param roundId:小局Id
|
||||
--================
|
||||
function XFingerGuessingConfig.GetRoundConfigById(roundId)
|
||||
local config = FingerGuessingRoundConfig[roundId]
|
||||
if not config then
|
||||
XLog.ErrorTableDataNotFound(
|
||||
"XFingerGuessingConfig.GetRoundConfigById",
|
||||
"猜拳小游戏小局配置",
|
||||
TABLE_ROUND,
|
||||
"Id",
|
||||
tostring(roundId))
|
||||
return nil
|
||||
end
|
||||
return config
|
||||
end
|
||||
--================
|
||||
--获取所有出拳配置
|
||||
--================
|
||||
function XFingerGuessingConfig.GetAllFingerConfig()
|
||||
return FingerGuessingFingerConfig
|
||||
end
|
||||
--================
|
||||
--根据关卡Id获取该关卡的所有小局配置
|
||||
--@param stageId:关卡Id
|
||||
--================
|
||||
function XFingerGuessingConfig.GetRoundConfigByStageId(stageId)
|
||||
local configs = Stage2RoundDic[stageId]
|
||||
if not configs then
|
||||
XLog.ErrorTableDataNotFound(
|
||||
"XFingerGuessingConfig.GetRoundConfigByStageId",
|
||||
"猜拳小游戏小局配置",
|
||||
TABLE_ROUND,
|
||||
"StageId",
|
||||
tostring(stageId))
|
||||
return {}
|
||||
end
|
||||
return configs
|
||||
end
|
||||
--================
|
||||
--根据出拳ID获取出拳配置
|
||||
--@param fingerId:出拳ID
|
||||
--================
|
||||
function XFingerGuessingConfig.GetFingerConfigById(fingerId)
|
||||
local config = FingerGuessingFingerConfig[fingerId]
|
||||
if not config then
|
||||
XLog.ErrorTableDataNotFound(
|
||||
"XFingerGuessingConfig.GetFingerConfigById",
|
||||
"猜拳小游戏出拳配置",
|
||||
TABLE_FINGER,
|
||||
"Id",
|
||||
tostring(fingerId))
|
||||
return nil
|
||||
end
|
||||
return config
|
||||
end
|
180
Resources/Scripts/XConfig/XFubenActivityBossSingleConfigs.lua
Normal file
180
Resources/Scripts/XConfig/XFubenActivityBossSingleConfigs.lua
Normal file
|
@ -0,0 +1,180 @@
|
|||
local TABLE_BOSS_ACTIVITY_PATH = "Share/Fuben/BossActivity/BossActivity.tab"
|
||||
local TABLE_BOSS_SECTION_PATH = "Share/Fuben/BossActivity/BossSection.tab"
|
||||
local TABLE_BOSS_CHALLENGE_PATH = "Share/Fuben/BossActivity/BossChallenge.tab"
|
||||
local TABLE_BOSS_CHALLENGE_RES_PATH = "Client/Fuben/BossActivity/BossChallengeRes.tab"
|
||||
local TABLE_BOSS_STARREWARD_PATH = "Share/Fuben/BossActivity/BossStarReward.tab"
|
||||
|
||||
local pairs = pairs
|
||||
|
||||
local BossActivityTemplates = {}
|
||||
local BossSectionTemplates = {}
|
||||
local BossChallengeTemplates = {}
|
||||
local BossChallengeResTemplates = {}
|
||||
local BossStarRewardTemplates = {}
|
||||
|
||||
local DefaultActivityId = 0
|
||||
local ChallengeIdToOrderIdDic = {}
|
||||
local StageIdToChallengeIdDic = {}
|
||||
|
||||
XFubenActivityBossSingleConfigs = XFubenActivityBossSingleConfigs or {}
|
||||
|
||||
function XFubenActivityBossSingleConfigs.Init()
|
||||
BossActivityTemplates = XTableManager.ReadByIntKey(TABLE_BOSS_ACTIVITY_PATH, XTable.XTableBossActivity, "Id")
|
||||
BossSectionTemplates = XTableManager.ReadByIntKey(TABLE_BOSS_SECTION_PATH, XTable.XTableBossSection, "Id")
|
||||
BossChallengeTemplates = XTableManager.ReadByIntKey(TABLE_BOSS_CHALLENGE_PATH, XTable.XTableBossChallenge, "Id")
|
||||
BossChallengeResTemplates = XTableManager.ReadByIntKey(TABLE_BOSS_CHALLENGE_RES_PATH, XTable.XTableBossChallengeRes, "Id")
|
||||
BossStarRewardTemplates = XTableManager.ReadByIntKey(TABLE_BOSS_STARREWARD_PATH, XTable.XTableBossStarReward, "Id")
|
||||
|
||||
for activityId, config in pairs(BossActivityTemplates) do
|
||||
if XTool.IsNumberValid(config.ActivityTimeId) then
|
||||
DefaultActivityId = activityId
|
||||
break
|
||||
end
|
||||
DefaultActivityId = activityId--若全部过期,取最后一行配置作为默认下次开启的活动ID
|
||||
end
|
||||
|
||||
for _, sectionCfg in pairs(BossSectionTemplates) do
|
||||
for index, challengeId in ipairs(sectionCfg.ChallengeId) do
|
||||
ChallengeIdToOrderIdDic[challengeId] = index
|
||||
end
|
||||
end
|
||||
|
||||
for challengeId, challengeCfg in pairs(BossChallengeTemplates) do
|
||||
StageIdToChallengeIdDic[challengeCfg.StageId] = challengeId
|
||||
end
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetSectionCfgs()
|
||||
return BossSectionTemplates
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetSectionCfg(sectionId)
|
||||
local sectionCfg = BossSectionTemplates[sectionId]
|
||||
if not sectionCfg then
|
||||
XLog.ErrorTableDataNotFound("XFubenActivityBossSingleConfigs.GetSectionCfg",
|
||||
"BossSection", TABLE_BOSS_SECTION_PATH, "sectionId", tostring(sectionId))
|
||||
return
|
||||
end
|
||||
return sectionCfg
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetStageId(challengeId)
|
||||
local challengeCfg = BossChallengeTemplates[challengeId]
|
||||
if not challengeCfg then
|
||||
XLog.ErrorTableDataNotFound("XFubenActivityBossSingleConfigs.GetStageId",
|
||||
"BossChallenge", TABLE_BOSS_CHALLENGE_PATH, "challengeId", tostring(challengeId))
|
||||
return
|
||||
end
|
||||
return challengeCfg.StageId
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetChanllengeIdByStageId(stageId)
|
||||
return StageIdToChallengeIdDic[stageId]
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetChallengeResCfg(challengeId)
|
||||
local challengeResCfg = BossChallengeResTemplates[challengeId]
|
||||
if not challengeResCfg then
|
||||
XLog.ErrorTableDataNotFound("XFubenActivityBossSingleConfigs.GetChallengeResCfg",
|
||||
"BossChallengeRes", TABLE_BOSS_CHALLENGE_RES_PATH, "challengeId", tostring(challengeId))
|
||||
return
|
||||
end
|
||||
return challengeResCfg
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetChallengeOrderId(challengeId)
|
||||
return ChallengeIdToOrderIdDic[challengeId] or 0
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetActivityConfig(activityId)
|
||||
local activityCfg = BossActivityTemplates[activityId]
|
||||
return activityCfg
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetDefaultActivityId()
|
||||
return DefaultActivityId
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetBossChallengeTemplates()
|
||||
return BossChallengeTemplates
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetStageAttention(stageId)
|
||||
if BossChallengeTemplates == nil then
|
||||
return
|
||||
end
|
||||
local challengeId = XFubenActivityBossSingleConfigs.GetChanllengeIdByStageId(stageId)
|
||||
if BossChallengeTemplates[challengeId].StageAttention ~= nil then
|
||||
return BossChallengeTemplates[challengeId].StageAttention
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetStageAttentionTitle(stageId)
|
||||
if BossChallengeTemplates == nil then
|
||||
return
|
||||
end
|
||||
local challengeId = XFubenActivityBossSingleConfigs.GetChanllengeIdByStageId(stageId)
|
||||
if BossChallengeTemplates[challengeId].StageAttention ~= nil then
|
||||
return BossChallengeTemplates[challengeId].StageAttentionTitle
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetChallengeCount(sectionId)
|
||||
return #BossSectionTemplates[sectionId].ChallengeId
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetBossSectionRewardIds(sectionId)
|
||||
return BossSectionTemplates[sectionId].StarRewardId
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetStarRewardCfg(Id)
|
||||
return BossStarRewardTemplates[Id]
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetStarRewardTemplates()
|
||||
return BossStarRewardTemplates
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetBossChallengeEffectPath(stageId)
|
||||
if BossChallengeTemplates == nil then
|
||||
return
|
||||
end
|
||||
local challengeId = XFubenActivityBossSingleConfigs.GetChanllengeIdByStageId(stageId)
|
||||
if BossChallengeTemplates[challengeId].EffectPath ~= nil then
|
||||
return BossChallengeTemplates[challengeId].EffectPath
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetLastBossActivityTemplates()
|
||||
return BossActivityTemplates[#BossActivityTemplates]
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetActivityBeginTime(activityId)
|
||||
local config = XFubenActivityBossSingleConfigs.GetActivityConfig(activityId)
|
||||
if not config then
|
||||
config = XFubenActivityBossSingleConfigs.GetLastBossActivityTemplates()
|
||||
end
|
||||
|
||||
return config and XFunctionManager.GetStartTimeByTimeId(config.ActivityTimeId) or 0
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetActivityEndTime(activityId)
|
||||
local config = XFubenActivityBossSingleConfigs.GetActivityConfig(activityId)
|
||||
if not config then
|
||||
config = XFubenActivityBossSingleConfigs.GetLastBossActivityTemplates()
|
||||
end
|
||||
|
||||
return config and XFunctionManager.GetEndTimeByTimeId(config.ActivityTimeId) or 0
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetFightEndTime(activityId)
|
||||
local config = XFubenActivityBossSingleConfigs.GetActivityConfig(activityId)
|
||||
if not config then
|
||||
config = XFubenActivityBossSingleConfigs.GetLastBossActivityTemplates()
|
||||
end
|
||||
|
||||
return config and XFunctionManager.GetEndTimeByTimeId(config.FightTimeId) or 0
|
||||
end
|
85
Resources/Scripts/XConfig/XFubenActivityBranchConfigs.lua
Normal file
85
Resources/Scripts/XConfig/XFubenActivityBranchConfigs.lua
Normal file
|
@ -0,0 +1,85 @@
|
|||
local TABLE_FUBEN_BRANCH_ACTIVITY_PATH = "Share/Fuben/FubenBranch/FubenBranchActivity.tab"
|
||||
local TABLE_FUBEN_BRANCH_CHALLENGE_PATH = "Share/Fuben/FubenBranch/FubenBranchChallenge.tab"
|
||||
local TABLE_FUBEN_BRANCH_SECTION_PATH = "Share/Fuben/FubenBranch/FubenBranchSection.tab"
|
||||
|
||||
local pairs = pairs
|
||||
|
||||
local FubenBranchTemplates = {}
|
||||
local FubenBranchSectionTemplates = {}
|
||||
local FubenBranchChallengeTemplates = {}
|
||||
|
||||
local DefaultActivityId = 0
|
||||
|
||||
XFubenActivityBranchConfigs = XFubenActivityBranchConfigs or {}
|
||||
|
||||
function XFubenActivityBranchConfigs.Init()
|
||||
FubenBranchTemplates = XTableManager.ReadByIntKey(TABLE_FUBEN_BRANCH_ACTIVITY_PATH, XTable.XTableFubenBranchActivity, "Id")
|
||||
FubenBranchSectionTemplates = XTableManager.ReadByIntKey(TABLE_FUBEN_BRANCH_SECTION_PATH, XTable.XTableFubenBranchSection, "Id")
|
||||
FubenBranchChallengeTemplates = XTableManager.ReadByIntKey(TABLE_FUBEN_BRANCH_CHALLENGE_PATH, XTable.XTableFubenBranchChallenge, "Id")
|
||||
|
||||
for activityId, config in pairs(FubenBranchTemplates) do
|
||||
if XTool.IsNumberValid(config.ActivityTimeId) then
|
||||
DefaultActivityId = activityId
|
||||
break
|
||||
end
|
||||
DefaultActivityId = activityId--若全部过期,取最后一行配置作为默认下次开启的活动ID
|
||||
end
|
||||
end
|
||||
|
||||
function XFubenActivityBranchConfigs.GetSectionCfgs()
|
||||
return FubenBranchSectionTemplates
|
||||
end
|
||||
|
||||
function XFubenActivityBranchConfigs.GetChapterCfg(chapterId)
|
||||
local chapterCfg = FubenBranchChallengeTemplates[chapterId]
|
||||
if not chapterCfg then
|
||||
XLog.ErrorTableDataNotFound("XFubenActivityBranchConfigs.GetChapterCfg",
|
||||
"FubenBranchChallenge", TABLE_FUBEN_BRANCH_CHALLENGE_PATH, "chapterId", tostring(chapterId))
|
||||
return
|
||||
end
|
||||
return chapterCfg
|
||||
end
|
||||
|
||||
function XFubenActivityBranchConfigs.GetSectionCfg(sectionId)
|
||||
local sectionCfg = FubenBranchSectionTemplates[sectionId]
|
||||
if not sectionCfg then
|
||||
XLog.ErrorTableDataNotFound("XFubenActivityBranchConfigs.GetSectionCfg",
|
||||
"FubenBranchSection", TABLE_FUBEN_BRANCH_SECTION_PATH, "sectionId", tostring(sectionId))
|
||||
return
|
||||
end
|
||||
return sectionCfg
|
||||
end
|
||||
|
||||
function XFubenActivityBranchConfigs.GetActivityConfig(activityId)
|
||||
local activityCfg = FubenBranchTemplates[activityId]
|
||||
if not activityCfg then
|
||||
XLog.ErrorTableDataNotFound("XFubenActivityBranchConfigs.GetActivityConfig",
|
||||
"FubenBranch", TABLE_FUBEN_BRANCH_ACTIVITY_PATH, "activityId", tostring(activityId))
|
||||
return
|
||||
end
|
||||
return activityCfg
|
||||
end
|
||||
|
||||
function XFubenActivityBranchConfigs.GetDefaultActivityId()
|
||||
return DefaultActivityId
|
||||
end
|
||||
|
||||
function XFubenActivityBranchConfigs.GetActivityBeginTime(activityId)
|
||||
local config = XFubenActivityBranchConfigs.GetActivityConfig(activityId)
|
||||
return XFunctionManager.GetStartTimeByTimeId(config.ActivityTimeId)
|
||||
end
|
||||
|
||||
function XFubenActivityBranchConfigs.GetActivityEndTime(activityId)
|
||||
local config = XFubenActivityBranchConfigs.GetActivityConfig(activityId)
|
||||
return XFunctionManager.GetEndTimeByTimeId(config.ActivityTimeId)
|
||||
end
|
||||
|
||||
function XFubenActivityBranchConfigs.GetChallengeBeginTime(activityId)
|
||||
local config = XFubenActivityBranchConfigs.GetActivityConfig(activityId)
|
||||
return XFunctionManager.GetStartTimeByTimeId(config.ChallengeTimeId)
|
||||
end
|
||||
|
||||
function XFubenActivityBranchConfigs.GetFightEndTime(activityId)
|
||||
local config = XFubenActivityBranchConfigs.GetActivityConfig(activityId)
|
||||
return XFunctionManager.GetEndTimeByTimeId(config.FightTimeId)
|
||||
end
|
148
Resources/Scripts/XConfig/XFubenActivityPuzzleConfigs.lua
Normal file
148
Resources/Scripts/XConfig/XFubenActivityPuzzleConfigs.lua
Normal file
|
@ -0,0 +1,148 @@
|
|||
local tableInsert = table.insert
|
||||
|
||||
XFubenActivityPuzzleConfigs = XFubenActivityPuzzleConfigs or {}
|
||||
|
||||
XFubenActivityPuzzleConfigs.PuzzleState = {
|
||||
Incomplete = 0,
|
||||
Complete = 1,
|
||||
PuzzleCompleteButNotDecryption = 2,
|
||||
}
|
||||
|
||||
XFubenActivityPuzzleConfigs.CompleteRewardState = {
|
||||
Unrewarded = 0,
|
||||
Rewarded = 1,
|
||||
}
|
||||
|
||||
XFubenActivityPuzzleConfigs.PlayVideoState = {
|
||||
UnPlay = 0,
|
||||
Played = 1,
|
||||
}
|
||||
|
||||
XFubenActivityPuzzleConfigs.HelpHitFaceState = {
|
||||
UnHit = 0,
|
||||
Hited = 1,
|
||||
}
|
||||
|
||||
XFubenActivityPuzzleConfigs.PuzzleType = {
|
||||
Define = 1,
|
||||
Decryption = 2,
|
||||
}
|
||||
|
||||
XFubenActivityPuzzleConfigs.PLAY_VIDEO_STATE_KEY = "DRAG_PUZZLE_PLAY_VIDEO_STATE_KEY"
|
||||
XFubenActivityPuzzleConfigs.HELP_HIT_FACE_KEY = "DRAG_PUZZLE_HELP_HIT_FACE_KEY"
|
||||
XFubenActivityPuzzleConfigs.PASSWORD_HIT_MESSAGE_COUNT = "PASSWORD_HIT_MESSAGE_COUNT"
|
||||
|
||||
local DRAG_PUZZLE_ACTIVITY_PATH = "Share/MiniActivity/DragPuzzle/DragPuzzleActivity.tab"
|
||||
local DRAG_PUZZLE_ACTIVITY_PUZZLE_PATH = "Share/MiniActivity/DragPuzzle/DragPuzzleActivityPuzzle.tab"
|
||||
local DRAG_PUZZLE_ACTIVITY_PIECE_PATH = "Share/MiniActivity/DragPuzzle/DragPuzzleActivityPiece.tab"
|
||||
local DRAG_PUZZLE_ACTIVITY_PASSWORD_PATH = "Share/MiniActivity/DragPuzzle/DragPuzzleActivityPassword.tab"
|
||||
|
||||
local ActivityTemplates = {}
|
||||
local PuzzleTemplates = {}
|
||||
local PuzzleTemplatesWithAct = {}
|
||||
local PieceTemplates = {}
|
||||
local PieceTemplatesWithPuzzle = {}
|
||||
local PuzzleDecryptionPassword = {}
|
||||
|
||||
function XFubenActivityPuzzleConfigs.Init()
|
||||
ActivityTemplates = XTableManager.ReadByIntKey(DRAG_PUZZLE_ACTIVITY_PATH, XTable.XTableDragPuzzleActivity, "Id")
|
||||
|
||||
PuzzleTemplates = XTableManager.ReadByIntKey(DRAG_PUZZLE_ACTIVITY_PUZZLE_PATH, XTable.XTableDragPuzzleActivityPuzzle, "Id")
|
||||
for _, puzzleInfo in ipairs(PuzzleTemplates) do
|
||||
if not PuzzleTemplatesWithAct[puzzleInfo.ActId] then
|
||||
PuzzleTemplatesWithAct[puzzleInfo.ActId] = {}
|
||||
end
|
||||
tableInsert(PuzzleTemplatesWithAct[puzzleInfo.ActId], puzzleInfo)
|
||||
end
|
||||
|
||||
PieceTemplates = XTableManager.ReadByIntKey(DRAG_PUZZLE_ACTIVITY_PIECE_PATH, XTable.XTableDragPuzzleActivityPiece, "Id")
|
||||
for _, pieceInfo in ipairs(PieceTemplates) do
|
||||
if not PieceTemplatesWithPuzzle[pieceInfo.PuzzleId] then
|
||||
PieceTemplatesWithPuzzle[pieceInfo.PuzzleId] = {}
|
||||
end
|
||||
tableInsert(PieceTemplatesWithPuzzle[pieceInfo.PuzzleId], pieceInfo)
|
||||
end
|
||||
|
||||
local puzzlePasswordTemplates = XTableManager.ReadByIntKey(DRAG_PUZZLE_ACTIVITY_PASSWORD_PATH, XTable.XTableDragPuzzleActivityPassword, "Id")
|
||||
PuzzleDecryptionPassword = {}
|
||||
for _, puzzlePasswordTemplate in ipairs(puzzlePasswordTemplates) do
|
||||
PuzzleDecryptionPassword[puzzlePasswordTemplate.PuzzleId] = puzzlePasswordTemplate
|
||||
end
|
||||
end
|
||||
|
||||
function XFubenActivityPuzzleConfigs.GetActivityTemplates()
|
||||
if not ActivityTemplates then
|
||||
return nil
|
||||
end
|
||||
|
||||
return ActivityTemplates
|
||||
end
|
||||
|
||||
function XFubenActivityPuzzleConfigs.GetActivityTemplateById(actId)
|
||||
if not ActivityTemplates then
|
||||
return nil
|
||||
end
|
||||
|
||||
return ActivityTemplates[actId]
|
||||
end
|
||||
|
||||
function XFubenActivityPuzzleConfigs.GetPuzzleTemplateById(id)
|
||||
return PuzzleTemplates[id]
|
||||
end
|
||||
|
||||
function XFubenActivityPuzzleConfigs.GetPuzzleTemplatesByActId(actId)
|
||||
if not PuzzleTemplatesWithAct then
|
||||
return nil
|
||||
end
|
||||
|
||||
return PuzzleTemplatesWithAct[actId]
|
||||
end
|
||||
|
||||
function XFubenActivityPuzzleConfigs.GetPieceTemplatesByPuzzleId(puzzleId)
|
||||
if not PieceTemplatesWithPuzzle then
|
||||
return nil
|
||||
end
|
||||
|
||||
return PieceTemplatesWithPuzzle[puzzleId]
|
||||
end
|
||||
|
||||
function XFubenActivityPuzzleConfigs.GetPieceIconById(pieceId)
|
||||
return PieceTemplates[pieceId].FragmentUrl
|
||||
end
|
||||
|
||||
function XFubenActivityPuzzleConfigs.GetPieceCorrectIdxById(pieceId)
|
||||
return PieceTemplates[pieceId].CorrectIdx
|
||||
end
|
||||
|
||||
function XFubenActivityPuzzleConfigs.GetPuzzlePasswordHintById(puzzleId)
|
||||
if not PuzzleDecryptionPassword[puzzleId] then
|
||||
XLog.Error("Can Find Password Info By PieceId:" .. puzzleId .. ",Plase Check " ..DRAG_PUZZLE_ACTIVITY_PASSWORD_PATH)
|
||||
end
|
||||
|
||||
return PuzzleDecryptionPassword[puzzleId].PasswordHint
|
||||
end
|
||||
|
||||
function XFubenActivityBossSingleConfigs.GetPuzzlePasswordHintMessage(puzzleId)
|
||||
if not PuzzleDecryptionPassword[puzzleId] then
|
||||
XLog.Error("Can Find Password Info By PieceId:" .. puzzleId .. ",Plase Check " ..DRAG_PUZZLE_ACTIVITY_PASSWORD_PATH)
|
||||
end
|
||||
|
||||
return PuzzleDecryptionPassword[puzzleId].HintMessage
|
||||
end
|
||||
|
||||
function XFubenActivityPuzzleConfigs.GetPuzzlePasswordLengthById(puzzleId)
|
||||
if not PuzzleDecryptionPassword[puzzleId] then
|
||||
XLog.Error("Can Find Password Info By PieceId:" .. puzzleId .. ",Plase Check " ..DRAG_PUZZLE_ACTIVITY_PASSWORD_PATH)
|
||||
return 0
|
||||
end
|
||||
|
||||
return #PuzzleDecryptionPassword[puzzleId].Password
|
||||
end
|
||||
|
||||
function XFubenActivityPuzzleConfigs.GetPuzzleDecryptionImgUrl(puzzleId)
|
||||
if not PuzzleDecryptionPassword[puzzleId] then
|
||||
XLog.Error("Can Find Password Info By PieceId:" .. puzzleId .. ",Plase Check " ..DRAG_PUZZLE_ACTIVITY_PASSWORD_PATH)
|
||||
end
|
||||
|
||||
return PuzzleDecryptionPassword[puzzleId].DecryptionImgUrl
|
||||
end
|
50
Resources/Scripts/XConfig/XFubenAssignConfigs.lua
Normal file
50
Resources/Scripts/XConfig/XFubenAssignConfigs.lua
Normal file
|
@ -0,0 +1,50 @@
|
|||
XFubenAssignConfigs = XFubenAssignConfigs or {}
|
||||
|
||||
local ChapterTemplates = {}
|
||||
local GroupTemplates = {}
|
||||
local TeamInfoTemplates = {}
|
||||
|
||||
function XFubenAssignConfigs.Init()
|
||||
ChapterTemplates = XTableManager.ReadByIntKey("Share/Fuben/Assign/AssignChapter.tab", XTable.XTableAssignChapter, "ChapterId")
|
||||
GroupTemplates = XTableManager.ReadByIntKey("Share/Fuben/Assign/AssignGroup.tab", XTable.XTableAssignGroup, "GroupId")
|
||||
TeamInfoTemplates = XTableManager.ReadByIntKey("Share/Fuben/Assign/AssignTeamInfo.tab", XTable.XTableAssignTeamInfo, "Id")
|
||||
end
|
||||
|
||||
function XFubenAssignConfigs.GetChapterTemplates()
|
||||
return ChapterTemplates
|
||||
end
|
||||
|
||||
function XFubenAssignConfigs.GetGroupTemplates()
|
||||
return GroupTemplates
|
||||
end
|
||||
|
||||
function XFubenAssignConfigs.GetTeamInfoTemplates()
|
||||
return TeamInfoTemplates
|
||||
end
|
||||
|
||||
function XFubenAssignConfigs.GetChapterTemplateById(id)
|
||||
local config = ChapterTemplates[id]
|
||||
if not config then
|
||||
XLog.ErrorTableDataNotFound("XFubenAssignConfigs.GetChapterTemplateById",
|
||||
"AssignChapter", "Share/Fuben/Assign/AssignChapter.tab", "Id", tostring(id))
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
function XFubenAssignConfigs.GetGroupTemplateById(id)
|
||||
local config = GroupTemplates[id]
|
||||
if not config then
|
||||
XLog.ErrorTableDataNotFound("XFubenAssignConfigs.GetGroupTemplateById",
|
||||
"AssignGroup", "Share/Fuben/Assign/AssignGroup.tab", "Id", tostring(id))
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
function XFubenAssignConfigs.GetTeamInfoTemplateById(id)
|
||||
local config = TeamInfoTemplates[id]
|
||||
if not config then
|
||||
XLog.ErrorTableDataNotFound("XFubenAssignConfigs.GetTeamInfoTemplateById",
|
||||
"AssignTeamInfo", "Share/Fuben/Assign/AssignTeamInfo.tab", "Id", tostring(id))
|
||||
end
|
||||
return config
|
||||
end
|
407
Resources/Scripts/XConfig/XFubenBabelTowerConfigs.lua
Normal file
407
Resources/Scripts/XConfig/XFubenBabelTowerConfigs.lua
Normal file
|
@ -0,0 +1,407 @@
|
|||
local tableInsert = table.insert
|
||||
|
||||
XFubenBabelTowerConfigs = {}
|
||||
|
||||
local SHARE_BABEL_ACTIVITY = "Share/Fuben/BabelTower/BabelTowerActivity.tab"
|
||||
local SHARE_BABEL_BUFF = "Share/Fuben/BabelTower/BabelTowerBuff.tab"
|
||||
local SHARE_BABEL_BUFFGROUP = "Share/Fuben/BabelTower/BabelTowerBuffGroup.tab"
|
||||
local SHARE_BABEL_RANKLEVEL = "Share/Fuben/BabelTower/BabelTowerRankLevel.tab"
|
||||
local SHARE_BABEL_STAGE = "Share/Fuben/BabelTower/BabelTowerStage.tab"
|
||||
local SHARE_BABEL_STAGEGUIDE = "Share/Fuben/BabelTower/BabelTowerStageGuide.tab"
|
||||
local SHARE_BABEL_SUPPORTCONDITION = "Share/Fuben/BabelTower/BabelTowerSupportCondition.tab"
|
||||
local SHARE_BABEL_RANKREWARD = "Share/Fuben/BabelTower/BabelTowerRankReward.tab"
|
||||
local SHARE_BABEL_STAGELEVEL = "Share/Fuben/BabelTower/BabelTowerStageLevel.tab"
|
||||
|
||||
local CLIENT_BABEL_STAGEGUIDEDETAIL = "Client/Fuben/BabelTower/BabelTowerStageGuideDetails.tab"
|
||||
local CLIENT_BABEL_BUFFDETAIL = "Client/Fuben/BabelTower/BabelTowerBuffDetails.tab"
|
||||
local CLIENT_BABEL_BUFFGROUPDETAIL = "Client/Fuben/BabelTower/BabelTowerBuffGroupDetails.tab"
|
||||
local CLIENT_BABEL_ACTIVITYDIFFICULTY = "Client/Fuben/BabelTower/BabelTowerActivityDifficulty.tab"
|
||||
local CLIENT_BABEL_STAGEDETAIL = "Client/Fuben/BabelTower/BabelTowerStageDetails.tab"
|
||||
local CLIENT_BABEL_ACTIVITYDETAIL = "Client/Fuben/BabelTower/BabelTowerActivityDetails.tab"
|
||||
local CLIENT_BABEL_CONDITIONDETAIL = "Client/Fuben/BabelTower/BabelTowerConditionDetails.tab"
|
||||
|
||||
local BabelActivityTemplate = {}
|
||||
local BabelBuffTemplate = {}
|
||||
local BabelBuffGroupTemplate = {}
|
||||
local BabelRankLevelTemplate = {}
|
||||
local BabelStageTemplate = {}
|
||||
local BabelStageGuideTemplate = {}
|
||||
local BabelSupportConditionTemplate = {}
|
||||
local BabelRankRewardTemplate = {}
|
||||
local BabelStageLevelDic = {}
|
||||
local BabelStageLevelLockBuffIdDic = {}
|
||||
|
||||
local BabelStageGuideDetailsConfigs = {}
|
||||
local BabelBuffDetailsConfigs = {}
|
||||
local BabelBuffGroupDetailsConfigs = {}
|
||||
local BabelActivityDifficultyConfigs = {}
|
||||
local BabelStageConfigs = {}
|
||||
local BabelActivityDetailsConfigs = {}
|
||||
local BabelConditionDetailsConfigs = {}
|
||||
|
||||
XFubenBabelTowerConfigs.MAX_TEAM_MEMBER = 3 -- 最多出站人数
|
||||
XFubenBabelTowerConfigs.LEADER_POSITION = 1 -- 队长位置
|
||||
XFubenBabelTowerConfigs.FIRST_FIGHT_POSITION = 1 -- 首发位置
|
||||
XFubenBabelTowerConfigs.BabelTowerStatus = {
|
||||
Close = 0,
|
||||
Open = 1,
|
||||
FightEnd = 2,
|
||||
End = 3
|
||||
}
|
||||
|
||||
XFubenBabelTowerConfigs.RankPlaform = {
|
||||
Win = 0,
|
||||
Android = 1,
|
||||
IOS = 2,
|
||||
}
|
||||
|
||||
XFubenBabelTowerConfigs.RankType = {
|
||||
NoRank = 0,
|
||||
OnlyRank = 1,
|
||||
RankAndReward = 2,
|
||||
}
|
||||
|
||||
XFubenBabelTowerConfigs.Difficult = {
|
||||
Default = 0,
|
||||
Easy = 1,
|
||||
Normal = 2,
|
||||
Middle = 3,
|
||||
Hard = 4,
|
||||
Count = 4,
|
||||
}
|
||||
|
||||
XFubenBabelTowerConfigs.RankIcon = {
|
||||
[1] = CS.XGame.ClientConfig:GetString("BabelTowerRankIcon1"),
|
||||
[2] = CS.XGame.ClientConfig:GetString("BabelTowerRankIcon2"),
|
||||
[3] = CS.XGame.ClientConfig:GetString("BabelTowerRankIcon3"),
|
||||
}
|
||||
|
||||
XFubenBabelTowerConfigs.ChallengePhase = 1 -- 选择挑战阶段
|
||||
XFubenBabelTowerConfigs.SupportPhase = 2 -- 选择支援阶段
|
||||
XFubenBabelTowerConfigs.CHALLENGE_CHILD_UI = "UiBabelTowerChildChallenge" -- 挑战界面
|
||||
XFubenBabelTowerConfigs.SUPPORT_CHILD_UI = "UiBabelTowerChildSupport" -- 支援界面
|
||||
|
||||
XFubenBabelTowerConfigs.TIPSTYPE_ENVIRONMENT = 1 -- 环境情报
|
||||
XFubenBabelTowerConfigs.TIPSTYPE_CHALLENGE = 2 -- 挑战详情
|
||||
XFubenBabelTowerConfigs.TIPSTYPE_SUPPORT = 3 -- 支援详情
|
||||
|
||||
XFubenBabelTowerConfigs.TYPE_CHALLENGE = 1 --挑战类型
|
||||
XFubenBabelTowerConfigs.TYPE_SUPPORT = 2 --支援类型
|
||||
|
||||
-- 准备结束界面tips
|
||||
XFubenBabelTowerConfigs.BattleReady = 1
|
||||
XFubenBabelTowerConfigs.BattleEnd = 2
|
||||
XFubenBabelTowerConfigs.MAX_BUFF_COUNT = 10
|
||||
XFubenBabelTowerConfigs.MAX_CHALLENGE_BUFF_COUNT = CS.XGame.ClientConfig:GetInt("BabelTowerMaxChallengeBuff")
|
||||
XFubenBabelTowerConfigs.MAX_SUPPORT_BUFF_COUNT = CS.XGame.ClientConfig:GetInt("BabelTowerMaxSupportBuff")
|
||||
XFubenBabelTowerConfigs.START_INDEX = 0
|
||||
|
||||
-- 事态类型
|
||||
XFubenBabelTowerConfigs.DIFFICULTY_NONE = 0
|
||||
XFubenBabelTowerConfigs.DIFFICULTY_NORMAL = 1 -- 普通
|
||||
XFubenBabelTowerConfigs.DIFFICULTY_URGENCY = 2 -- 紧急
|
||||
XFubenBabelTowerConfigs.DIFFICULTY_CRITICAL = 3 -- 高危
|
||||
|
||||
-- 上次选中的StageId key
|
||||
XFubenBabelTowerConfigs.LAST_SELECT_KEY = "BabelTowerLastSelectedStageId"
|
||||
-- 第一次查看环境
|
||||
XFubenBabelTowerConfigs.ENVIROMENT_DOT_KEY = "babelenvironment_%s_%s_%s"
|
||||
-- 第一次播放剧情
|
||||
XFubenBabelTowerConfigs.HAS_PLAY_BEGINSTORY = "BabelTowerPlayBeginStory"
|
||||
|
||||
local function InitStageLevelConfig()
|
||||
local template = XTableManager.ReadByIntKey(SHARE_BABEL_STAGELEVEL, XTable.XTableBabelTowerStageLevel, "Id")
|
||||
|
||||
for _, config in pairs(template) do
|
||||
local stageId = config.StageId
|
||||
|
||||
local stageConfig = BabelStageLevelDic[stageId]
|
||||
if not stageConfig then
|
||||
stageConfig = {}
|
||||
BabelStageLevelDic[stageId] = stageConfig
|
||||
end
|
||||
|
||||
local level = config.Level
|
||||
stageConfig[level] = config
|
||||
|
||||
local stageLockBuffIdDic = BabelStageLevelLockBuffIdDic[stageId]
|
||||
if not stageLockBuffIdDic then
|
||||
stageLockBuffIdDic = {}
|
||||
BabelStageLevelLockBuffIdDic[stageId] = stageLockBuffIdDic
|
||||
end
|
||||
|
||||
local lockBuffIds = config.LockBuffId
|
||||
for _, buffId in pairs(lockBuffIds) do
|
||||
if buffId ~= 0 then
|
||||
local oldLevel = stageLockBuffIdDic[buffId] or 0
|
||||
if level > oldLevel then
|
||||
stageLockBuffIdDic[buffId] = level
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.Init()
|
||||
BabelActivityTemplate = XTableManager.ReadByIntKey(SHARE_BABEL_ACTIVITY, XTable.XTableBabelTowerActivity, "Id")
|
||||
BabelBuffTemplate = XTableManager.ReadByIntKey(SHARE_BABEL_BUFF, XTable.XTableBabelTowerBuff, "Id")
|
||||
BabelBuffGroupTemplate = XTableManager.ReadByIntKey(SHARE_BABEL_BUFFGROUP, XTable.XTableBabelTowerBuffGroup, "Id")
|
||||
BabelRankLevelTemplate = XTableManager.ReadByIntKey(SHARE_BABEL_RANKLEVEL, XTable.XTableBabelTowerRankLevel, "Id")
|
||||
BabelStageTemplate = XTableManager.ReadByIntKey(SHARE_BABEL_STAGE, XTable.XTableBabelTowerStage, "Id")
|
||||
BabelStageGuideTemplate = XTableManager.ReadByIntKey(SHARE_BABEL_STAGEGUIDE, XTable.XTableBabelTowerStageGuide, "Id")
|
||||
BabelSupportConditionTemplate = XTableManager.ReadByIntKey(SHARE_BABEL_SUPPORTCONDITION, XTable.XTableBabelTowerSupportCondition, "Id")
|
||||
BabelRankRewardTemplate = XTableManager.ReadByIntKey(SHARE_BABEL_RANKREWARD, XTable.XTableBabelTowerRankReward, "Id")
|
||||
|
||||
BabelStageGuideDetailsConfigs = XTableManager.ReadByIntKey(CLIENT_BABEL_STAGEGUIDEDETAIL, XTable.XTableBabelTowerStageGuideDetails, "Id")
|
||||
BabelBuffDetailsConfigs = XTableManager.ReadByIntKey(CLIENT_BABEL_BUFFDETAIL, XTable.XTableBabelTowerBuffDetails, "Id")
|
||||
BabelBuffGroupDetailsConfigs = XTableManager.ReadByIntKey(CLIENT_BABEL_BUFFGROUPDETAIL, XTable.XTableBabelTowerBuffGroupDetails, "Id")
|
||||
BabelActivityDifficultyConfigs = XTableManager.ReadByIntKey(CLIENT_BABEL_ACTIVITYDIFFICULTY, XTable.XTableBabelTowerActivityDifficulty, "Id")
|
||||
BabelStageConfigs = XTableManager.ReadByIntKey(CLIENT_BABEL_STAGEDETAIL, XTable.XTableBabelTowerStageDetails, "Id")
|
||||
BabelActivityDetailsConfigs = XTableManager.ReadByIntKey(CLIENT_BABEL_ACTIVITYDETAIL, XTable.XTableBabelTowerActivityDetails, "Id")
|
||||
BabelConditionDetailsConfigs = XTableManager.ReadByIntKey(CLIENT_BABEL_CONDITIONDETAIL, XTable.XTableBabelTowerConditionDetails, "Id")
|
||||
|
||||
InitStageLevelConfig()
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.GetActivityName(id)
|
||||
if not BabelActivityDetailsConfigs[id] then return "" end
|
||||
return BabelActivityDetailsConfigs[id].Name
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.GetActivityBeginStory(id)
|
||||
if not BabelActivityDetailsConfigs[id] then return nil end
|
||||
return BabelActivityDetailsConfigs[id].BeginStoryId
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.GetActivityRankTitle(id)
|
||||
if not BabelActivityDetailsConfigs[id] then return nil end
|
||||
return BabelActivityDetailsConfigs[id].RankTitle
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.GetConditionDescription(id)
|
||||
if not BabelConditionDetailsConfigs[id] then return "" end
|
||||
return BabelConditionDetailsConfigs[id].Desc
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.GetAllBabelTowerActivityTemplate()
|
||||
return BabelActivityTemplate
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.GetBabelTowerActivityTemplateById(id)
|
||||
if not BabelActivityTemplate[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenBabelTowerConfigs.GetBabelTowerActivityTemplateById",
|
||||
"BabelTowerActivity", SHARE_BABEL_ACTIVITY, "Id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
return BabelActivityTemplate[id]
|
||||
end
|
||||
|
||||
-- 获取stage数据,加成相关
|
||||
function XFubenBabelTowerConfigs.GetBabelTowerStageTemplate(stageId)
|
||||
if not BabelStageTemplate[stageId] then
|
||||
XLog.ErrorTableDataNotFound("XFubenBabelTowerConfigs.GetBabelTowerStageTemplate",
|
||||
"BabelTowerStage", SHARE_BABEL_STAGE, "stageId", tostring(stageId))
|
||||
return nil
|
||||
end
|
||||
return BabelStageTemplate[stageId]
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.GetBaseBuffIds(stageId)
|
||||
local buffIds = {}
|
||||
|
||||
local config = XFubenBabelTowerConfigs.GetBabelTowerStageTemplate(stageId)
|
||||
for _, buffId in pairs(config.BaseBuffId) do
|
||||
if buffId > 0 then
|
||||
tableInsert(buffIds, buffId)
|
||||
end
|
||||
end
|
||||
|
||||
return buffIds
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.GetStageTeamCount(stageId)
|
||||
local config = XFubenBabelTowerConfigs.GetBabelTowerStageTemplate(stageId)
|
||||
return config.TeamCount
|
||||
end
|
||||
|
||||
-- 引导的数据
|
||||
function XFubenBabelTowerConfigs.GetBabelTowerStageGuideTemplate(guideId)
|
||||
if not BabelStageGuideTemplate[guideId] then
|
||||
XLog.ErrorTableDataNotFound("XFubenBabelTowerConfigs.GetBabelTowerStageGuideTemplate",
|
||||
"BabelTowerStageGuide", SHARE_BABEL_STAGEGUIDE, "guideId", tostring(guideId))
|
||||
return nil
|
||||
end
|
||||
return BabelStageGuideTemplate[guideId]
|
||||
end
|
||||
|
||||
-- 关卡引导的本地数据
|
||||
function XFubenBabelTowerConfigs.GetStageGuideConfigs(guideId)
|
||||
if not BabelStageGuideDetailsConfigs[guideId] then
|
||||
XLog.ErrorTableDataNotFound("XFubenBabelTowerConfigs.GetStageGuideConfigs",
|
||||
"StageGuideDetails", CLIENT_BABEL_STAGEGUIDEDETAIL, "guideId", tostring(guideId))
|
||||
return nil
|
||||
end
|
||||
return BabelStageGuideDetailsConfigs[guideId]
|
||||
end
|
||||
|
||||
-- buffGroup组的本地数据
|
||||
function XFubenBabelTowerConfigs.GetBabelBuffGroupConfigs(buffGroupId)
|
||||
if not BabelBuffGroupDetailsConfigs[buffGroupId] then
|
||||
XLog.ErrorTableDataNotFound("XFubenBabelTowerConfigs.GetBuffGroupConfigs",
|
||||
"BabelBuffGroupDetails", CLIENT_BABEL_BUFFGROUPDETAIL, "buffGroupId", tostring(buffGroupId))
|
||||
return nil
|
||||
end
|
||||
return BabelBuffGroupDetailsConfigs[buffGroupId]
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.IsBuffGroupHard(buffGroupId)
|
||||
local config = XFubenBabelTowerConfigs.GetBabelBuffGroupConfigs(buffGroupId)
|
||||
return config and config.IsStress and config.IsStress ~= 0
|
||||
end
|
||||
|
||||
-- buff的本地数据
|
||||
function XFubenBabelTowerConfigs.GetBabelBuffConfigs(buffId)
|
||||
if not BabelBuffDetailsConfigs[buffId] then
|
||||
XLog.ErrorTableDataNotFound("XFubenBabelTowerConfigs.GetBabelBuffConfigs",
|
||||
"BabelBuffGroupDetails", CLIENT_BABEL_BUFFDETAIL, "buffId", tostring(buffId))
|
||||
return nil
|
||||
end
|
||||
return BabelBuffDetailsConfigs[buffId]
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.GetBaseBuffNameWithSpilt(buffId)
|
||||
local config = XFubenBabelTowerConfigs.GetBabelBuffConfigs(buffId)
|
||||
return XUiHelper.RichTextToTextString(config.Name)
|
||||
end
|
||||
|
||||
-- stage本地数据
|
||||
function XFubenBabelTowerConfigs.GetBabelStageConfigs(stageId)
|
||||
if not BabelStageConfigs[stageId] then
|
||||
XLog.ErrorTableDataNotFound("XFubenBabelTowerConfigs.GetBabelStageConfigs",
|
||||
"BabelStageDetails", CLIENT_BABEL_STAGEDETAIL, "stageId", tostring(stageId))
|
||||
return nil
|
||||
end
|
||||
return BabelStageConfigs[stageId]
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.GetStageName(stageId)
|
||||
local config = XFubenBabelTowerConfigs.GetBabelStageConfigs(stageId)
|
||||
return config.Name
|
||||
end
|
||||
|
||||
|
||||
-- 排行榜分段
|
||||
function XFubenBabelTowerConfigs.GetBabelTowerRankLevelTemplate(id)
|
||||
if not BabelRankLevelTemplate[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenBabelTowerConfigs.GetBabelTowerRankLevelTemplate", "RankLevel", SHARE_BABEL_RANKLEVEL, "Id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
return BabelRankLevelTemplate[id]
|
||||
end
|
||||
|
||||
-- 支援条件
|
||||
function XFubenBabelTowerConfigs.GetBabelTowerSupportConditonTemplate(supportId)
|
||||
if not BabelSupportConditionTemplate[supportId] then
|
||||
XLog.ErrorTableDataNotFound("XFubenBabelTowerConfigs.GetBabelTowerSupportConditonTemplate",
|
||||
"SupportCondition", SHARE_BABEL_SUPPORTCONDITION, "supportId", tostring(supportId))
|
||||
return nil
|
||||
end
|
||||
return BabelSupportConditionTemplate[supportId]
|
||||
end
|
||||
|
||||
-- buff组
|
||||
function XFubenBabelTowerConfigs.GetBabelTowerBuffGroupTemplate(groupId)
|
||||
if not BabelBuffGroupTemplate[groupId] then
|
||||
XLog.ErrorTableDataNotFound("XFubenBabelTowerConfigs.GetBabelTowerBuffGroupTemplate",
|
||||
"BabelTowerBuffGroup", SHARE_BABEL_BUFFGROUP, "groupId", tostring(groupId))
|
||||
return nil
|
||||
end
|
||||
return BabelBuffGroupTemplate[groupId]
|
||||
end
|
||||
|
||||
-- buff
|
||||
function XFubenBabelTowerConfigs.GetBabelTowerBuffTemplate(buffId)
|
||||
if not BabelBuffTemplate[buffId] then
|
||||
XLog.ErrorTableDataNotFound("XFubenBabelTowerConfigs.GetBabelTowerBuffTemplate", "BabelBuff", SHARE_BABEL_BUFF, "buffId", tostring(buffId))
|
||||
return nil
|
||||
end
|
||||
return BabelBuffTemplate[buffId]
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.GetBabelTowerDifficulty(stageId, challengePoints)
|
||||
local difficultyConfigs = BabelActivityDifficultyConfigs[stageId]
|
||||
if not difficultyConfigs then
|
||||
return XFubenBabelTowerConfigs.DIFFICULTY_NONE, "", ""
|
||||
end
|
||||
|
||||
if challengePoints >= difficultyConfigs.Critical then
|
||||
return XFubenBabelTowerConfigs.DIFFICULTY_CRITICAL, difficultyConfigs.CriticalTitle, difficultyConfigs.CriticalStatus
|
||||
end
|
||||
|
||||
if challengePoints >= difficultyConfigs.Urgency then
|
||||
return XFubenBabelTowerConfigs.DIFFICULTY_URGENCY, difficultyConfigs.UrgencyTitle, difficultyConfigs.UrgencyStatus
|
||||
end
|
||||
|
||||
return XFubenBabelTowerConfigs.DIFFICULTY_NORMAL, difficultyConfigs.NormalTitle, difficultyConfigs.NormalStatus
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.GetBabelTowerRankReward(rankLevel)
|
||||
local rankRewards = {}
|
||||
for _, rankReward in pairs(BabelRankRewardTemplate) do
|
||||
if rankReward.LevelId == rankLevel then
|
||||
table.insert(rankRewards, {
|
||||
Id = rankReward.Id,
|
||||
RankLevel = rankReward.LevelId,
|
||||
MinRank = rankReward.MinRank,
|
||||
MaxRank = rankReward.MaxRank,
|
||||
MailId = rankReward.MailId,
|
||||
RankIcon = rankReward.RankIcon
|
||||
})
|
||||
end
|
||||
end
|
||||
table.sort(rankRewards, function(rank1, rank2)
|
||||
return rank1.MinRank < rank2.MinRank
|
||||
end)
|
||||
return rankRewards
|
||||
end
|
||||
|
||||
|
||||
function XFubenBabelTowerConfigs.GetStageDifficultConfigs(stageId)
|
||||
local config = BabelStageLevelDic[stageId]
|
||||
if not config then
|
||||
XLog.Error("XFubenBabelTowerConfigs.GetStageDifficultConfigs Error: stageId is: " .. stageId .. " ,path is: " .. SHARE_BABEL_STAGELEVEL)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.GetStageDifficultConfig(stageId, difficult)
|
||||
local configs = XFubenBabelTowerConfigs.GetStageDifficultConfigs(stageId)
|
||||
local config = configs[difficult]
|
||||
if not config then
|
||||
XLog.Error("XFubenBabelTowerConfigs.GetStageDifficultConfig Error: difficult is: " .. difficult .. " ,path is: " .. SHARE_BABEL_STAGELEVEL, BabelStageLevelDic)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.GetStageDifficultLockBuffIdOpenLevel(stageId, buffId)
|
||||
local config = BabelStageLevelLockBuffIdDic[stageId]
|
||||
if not config then return 0 end
|
||||
return config[buffId] or 0
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.GetStageDifficultRecommendAblity(stageId, difficult)
|
||||
local config = XFubenBabelTowerConfigs.GetStageDifficultConfig(stageId, difficult)
|
||||
return config.RecommendAblity
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.GetStageDifficultName(stageId, difficult)
|
||||
local config = XFubenBabelTowerConfigs.GetStageDifficultConfig(stageId, difficult)
|
||||
return config.Name
|
||||
end
|
||||
|
||||
function XFubenBabelTowerConfigs.GetStageDifficultRatio(stageId, difficult)
|
||||
local config = XFubenBabelTowerConfigs.GetStageDifficultConfig(stageId, difficult)
|
||||
return config.ScoreRatio
|
||||
end
|
31
Resources/Scripts/XConfig/XFubenBossOnlineConfig.lua
Normal file
31
Resources/Scripts/XConfig/XFubenBossOnlineConfig.lua
Normal file
|
@ -0,0 +1,31 @@
|
|||
XFubenBossOnlineConfig = XFubenBossOnlineConfig or {}
|
||||
|
||||
local OnlineBossSectionTemplates = {}
|
||||
local OnlineBossChapterTemplates = {}
|
||||
local OnlineBossRiskTemplates = {}
|
||||
|
||||
local TABLE_FUBEN_ONLINEBOSS_SECTION = "Share/Fuben/BossOnline/BossOnlineSection.tab"
|
||||
local TABLE_FUBEN_ONLINEBOSS_CHAPTER = "Share/Fuben/BossOnline/BossOnlineChapter.tab"
|
||||
local TABLE_FUBEN_ONLINEBOSS_RISK = "Share/Fuben/BossOnline/BossOnlineRisk.tab"
|
||||
|
||||
function XFubenBossOnlineConfig.Init()
|
||||
OnlineBossChapterTemplates = XTableManager.ReadByIntKey(TABLE_FUBEN_ONLINEBOSS_CHAPTER, XTable.XTableBossOnlineChapter, "Id")
|
||||
OnlineBossSectionTemplates = XTableManager.ReadByIntKey(TABLE_FUBEN_ONLINEBOSS_SECTION, XTable.XTableBossOnlineSection, "Id")
|
||||
OnlineBossRiskTemplates = XTableManager.ReadByIntKey(TABLE_FUBEN_ONLINEBOSS_RISK, XTable.XTableBossOnlineRisk, "Id")
|
||||
end
|
||||
|
||||
function XFubenBossOnlineConfig.GetChapterTemplates()
|
||||
return OnlineBossChapterTemplates
|
||||
end
|
||||
|
||||
function XFubenBossOnlineConfig.GetSectionTemplates()
|
||||
return OnlineBossSectionTemplates
|
||||
end
|
||||
|
||||
function XFubenBossOnlineConfig.GetRiskTemplate(count)
|
||||
for _, v in pairs(OnlineBossRiskTemplates) do
|
||||
if (v.MinCount <= 0 or count >= v.MinCount) and (v.MaxCount <= 0 or count <= v.MaxCount) then
|
||||
return v
|
||||
end
|
||||
end
|
||||
end
|
181
Resources/Scripts/XConfig/XFubenBossSingleConfigs.lua
Normal file
181
Resources/Scripts/XConfig/XFubenBossSingleConfigs.lua
Normal file
|
@ -0,0 +1,181 @@
|
|||
local table = table
|
||||
local tableInsert = table.insert
|
||||
local tableSort = table.sort
|
||||
|
||||
XFubenBossSingleConfigs = XFubenBossSingleConfigs or {}
|
||||
|
||||
XFubenBossSingleConfigs.Platform = {
|
||||
Win = 0,
|
||||
Android = 1,
|
||||
IOS = 2,
|
||||
All = 3
|
||||
}
|
||||
|
||||
XFubenBossSingleConfigs.LevelType = {
|
||||
Chooseable = 0, --未选择(高级区达成晋级终极区条件)
|
||||
Normal = 1, --低级区
|
||||
Medium = 2, --中极区
|
||||
High = 3, --高级区
|
||||
Extreme = 4, --终极区
|
||||
}
|
||||
|
||||
XFubenBossSingleConfigs.DifficultyType = {
|
||||
experiment = 1,
|
||||
elites = 2,
|
||||
kinght = 3,
|
||||
chaos = 4,
|
||||
hell = 5,
|
||||
Hide = 6,
|
||||
}
|
||||
|
||||
local TABLE_BOSS_SINGLE_GRADE = "Share/Fuben/BossSingle/BossSingleGrade.tab"
|
||||
local TABLE_RABK_REWARD = "Share/Fuben/BossSingle/BossSingleRankReward.tab"
|
||||
local TABLE_SCORE_REWARD = "Share/Fuben/BossSingle/BossSingleScoreReward.tab"
|
||||
local TABLE_SECTION = "Share/Fuben/BossSingle/BossSingleSection.tab"
|
||||
local TABLE_STAGE = "Share/Fuben/BossSingle/BossSingleStage.tab"
|
||||
local TABLE_SOCRE_ROLE = "Share/Fuben/BossSingle/BossSingleScoreRule.tab"
|
||||
local TABLE_GROUP = "Share/Fuben/BossSingle/BossSingleGroup.tab"
|
||||
|
||||
-- templates
|
||||
local BossSingleGradeCfg = {}
|
||||
local RankRewardCfg = {} -- key = levelType, value = {cfg}
|
||||
local ScoreRewardCfg = {} -- key = levelType, value = {cfg}
|
||||
local BossSectionCfg = {}
|
||||
local BossStageCfg = {}
|
||||
local BossSectionInfo = {}
|
||||
local RankRole = {}
|
||||
local BossGourpCfg = {}
|
||||
|
||||
XFubenBossSingleConfigs.AUTO_FIGHT_COUNT = CS.XGame.Config:GetInt("BossSingleAutoFightCount")
|
||||
XFubenBossSingleConfigs.AUTO_FIGHT_REBATE = CS.XGame.Config:GetInt("BossSingleAutoFightRebate")
|
||||
|
||||
function XFubenBossSingleConfigs.Init()
|
||||
BossSingleGradeCfg = XTableManager.ReadByIntKey(TABLE_BOSS_SINGLE_GRADE, XTable.XTableBossSingleGrade, "LevelType")
|
||||
local rankRewardCfg = XTableManager.ReadByIntKey(TABLE_RABK_REWARD, XTable.XTableBossSingleRankReward, "Id")
|
||||
local scoreRewardCfg = XTableManager.ReadByIntKey(TABLE_SCORE_REWARD, XTable.XTableBossSingleScoreReward, "Id")
|
||||
BossSectionCfg = XTableManager.ReadByIntKey(TABLE_SECTION, XTable.XTableBossSingleSection, "Id")
|
||||
BossStageCfg = XTableManager.ReadByIntKey(TABLE_STAGE, XTable.XTableBossSingleStage, "StageId")
|
||||
BossGourpCfg = XTableManager.ReadByIntKey(TABLE_GROUP, XTable.XTableBossSingleGroup, "Id")
|
||||
RankRole = XTableManager.ReadByIntKey(TABLE_SOCRE_ROLE, XTable.XTableBossSingleScoreRule, "Id")
|
||||
|
||||
-- 讨伐值奖励排序
|
||||
for _, cfg in pairs(scoreRewardCfg) do
|
||||
if ScoreRewardCfg[cfg.LevelType] then
|
||||
tableInsert(ScoreRewardCfg[cfg.LevelType], cfg)
|
||||
else
|
||||
ScoreRewardCfg[cfg.LevelType] = {}
|
||||
tableInsert(ScoreRewardCfg[cfg.LevelType], cfg)
|
||||
end
|
||||
end
|
||||
|
||||
for _, scoreList in pairs(ScoreRewardCfg) do
|
||||
tableSort(scoreList, function(a, b)
|
||||
if a.Score ~= b.Score then
|
||||
return a.Score < b.Score
|
||||
end
|
||||
|
||||
return a.Id < b.Id
|
||||
end)
|
||||
end
|
||||
|
||||
-- 排行奖励排序
|
||||
for _, cfg in pairs(rankRewardCfg) do
|
||||
if RankRewardCfg[cfg.LevelType] then
|
||||
tableInsert(RankRewardCfg[cfg.LevelType], cfg)
|
||||
else
|
||||
RankRewardCfg[cfg.LevelType] = {}
|
||||
tableInsert(RankRewardCfg[cfg.LevelType], cfg)
|
||||
end
|
||||
end
|
||||
|
||||
for _, rankList in pairs(RankRewardCfg) do
|
||||
tableSort(rankList, function(a, b)
|
||||
return a.Id < b.Id
|
||||
end)
|
||||
end
|
||||
|
||||
-- BossSectionInfo = {key = bossId, value = {stageCfg}}
|
||||
for id, cfg in pairs(BossSectionCfg) do
|
||||
BossSectionInfo[id] = {}
|
||||
for i = 1, #cfg.StageId do
|
||||
local stageCfg = BossStageCfg[cfg.StageId[i]]
|
||||
tableInsert(BossSectionInfo[id], stageCfg)
|
||||
end
|
||||
end
|
||||
|
||||
for _, cfgs in pairs(BossSectionInfo) do
|
||||
tableSort(cfgs, function(a, b)
|
||||
if a.DifficultyType ~= b.DifficultyType then
|
||||
return a.DifficultyType < b.DifficultyType
|
||||
end
|
||||
|
||||
return a.Id < b.Id
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
function XFubenBossSingleConfigs.GetBossSingleGradeCfg()
|
||||
return BossSingleGradeCfg
|
||||
end
|
||||
|
||||
function XFubenBossSingleConfigs.GetBossSectionCfg()
|
||||
return BossSectionCfg
|
||||
end
|
||||
|
||||
function XFubenBossSingleConfigs.GetBossSectionInfo()
|
||||
return BossSectionInfo
|
||||
end
|
||||
|
||||
function XFubenBossSingleConfigs.GetBossStageCfg()
|
||||
return BossStageCfg
|
||||
end
|
||||
|
||||
function XFubenBossSingleConfigs.GetRankRole()
|
||||
return RankRole
|
||||
end
|
||||
|
||||
function XFubenBossSingleConfigs.GetScoreRewardCfg()
|
||||
return ScoreRewardCfg
|
||||
end
|
||||
|
||||
function XFubenBossSingleConfigs.GetRankRewardCfg()
|
||||
return RankRewardCfg
|
||||
end
|
||||
|
||||
function XFubenBossSingleConfigs.GetBossSingleGroupById(id)
|
||||
return BossGourpCfg[id]
|
||||
end
|
||||
|
||||
function XFubenBossSingleConfigs.IsInBossSectionTime(bossId)
|
||||
local sectionCfg = BossSectionCfg[bossId]
|
||||
|
||||
local openTime = XFunctionManager.GetStartTimeByTimeId(sectionCfg.SwitchTimeId)
|
||||
if not openTime or openTime <= 0 then
|
||||
return true
|
||||
end
|
||||
|
||||
local closeTime = XFunctionManager.GetEndTimeByTimeId(sectionCfg.SwitchTimeId)
|
||||
if not closeTime or closeTime <= 0 then
|
||||
return true
|
||||
end
|
||||
|
||||
local nowTime = XTime.GetServerNowTimestamp()
|
||||
return openTime <= nowTime and nowTime < closeTime
|
||||
end
|
||||
|
||||
function XFubenBossSingleConfigs.GetBossSectionLeftTime(bossId)
|
||||
local sectionCfg = BossSectionCfg[bossId]
|
||||
local closeTime = XFunctionManager.GetEndTimeByTimeId(sectionCfg.SwitchTimeId)
|
||||
if not closeTime or closeTime <= 0 then
|
||||
return 0
|
||||
end
|
||||
|
||||
local nowTime = XTime.GetServerNowTimestamp()
|
||||
local leftTime = closeTime - nowTime
|
||||
return leftTime
|
||||
end
|
||||
|
||||
function XFubenBossSingleConfigs.GetBossSectionTeamBuffId(bossId)
|
||||
local sectionCfg = BossSectionCfg[bossId]
|
||||
return sectionCfg and sectionCfg.TeamBuffId
|
||||
end
|
622
Resources/Scripts/XConfig/XFubenConfigs.lua
Normal file
622
Resources/Scripts/XConfig/XFubenConfigs.lua
Normal file
|
@ -0,0 +1,622 @@
|
|||
local CSXGameClientConfig = CS.XGame.ClientConfig
|
||||
local CSXTextManagerGetText = CS.XTextManager.GetText
|
||||
|
||||
XFubenConfigs = XFubenConfigs or {}
|
||||
|
||||
local TABLE_STAGE = "Share/Fuben/Stage.tab"
|
||||
local TABLE_MULTICHALLENGE_STAGE = "Share/Fuben/MultiChallengeStage.tab"
|
||||
local TABLE_STAGE_TRANSFORM = "Share/Fuben/StageTransform.tab"
|
||||
local TABLE_STAGE_LEVEL_CONTROL = "Share/Fuben/StageLevelControl.tab"
|
||||
local TABLE_STAGE_MULTIPLAYER_LEVEL_CONTROL = "Share/Fuben/StageMultiplayerLevelControl.tab"
|
||||
local TABLE_FLOP_REWARD = "Share/Fuben/FlopReward.tab"
|
||||
local TABLE_STAGE_FIGHT_CONTROL = "Share/Fuben/StageFightControl.tab" --副本战力限制表
|
||||
local TABLE_CHALLENGE_BANNER = "Share/Fuben/FubenChallengeBanner.tab"
|
||||
local TABLE_ACTIVITY_SORTRULE = "Client/Fuben/ActivitySortRule/ActivitySortRule.tab"
|
||||
local TABLE_FUBENFEATURES = "Client/Fuben/FubenFeatures.tab" -- 特性展示表
|
||||
local TABLE_STAGE_CHARACTERLIMIT = "Share/Fuben/StageCharacterLimit.tab" -- 角色类型限制buff
|
||||
local TABLE_BOSS_TEAMBUFF = "Share/Fuben/StageTeamBuff.tab"
|
||||
local TABLE_STAGE_FIGHT_EVENT_DETAILS = "Client/Fuben/StageFightEventDetails.tab"
|
||||
local TABLE_STAGE_FIGHT_EVENT = "Share/Fuben/StageFightEvent.tab"
|
||||
local TABLE_SETTLE_LOST_TIP = "Client/Fuben/SettleLoseTip.tab" -- 失败结算界面提示
|
||||
local TABLE_STAGE_RECOMMEND_PATH = "Client/Fuben/StageRecommend.tab" -- 关卡推荐表
|
||||
|
||||
local StageCfg = {}
|
||||
local StageTransformCfg = {}
|
||||
local StageLevelControlCfg = {}
|
||||
local StageMultiplayerLevelControlCfg = {}
|
||||
local FlopRewardTemplates = {}
|
||||
local StageFightControlCfg = {}
|
||||
local FubenChallengeBanners = {}
|
||||
local ActivitySortRules = {}
|
||||
local FubenFeatures = {}
|
||||
local MultiChallengeConfigs = {}
|
||||
local FubenNewChallenge
|
||||
local StageCharacterLimitBuffConfig = {}
|
||||
local TeamBuffCfg = {}
|
||||
local TeamBuffMaxCountDic = {}
|
||||
local StageFightEvent = {}
|
||||
local StageFightEventDetails = {}
|
||||
local SettleLoseTipCfg = {}
|
||||
local StageRecommendConfigs = {}
|
||||
|
||||
XFubenConfigs.STAGETYPE_COMMON = 0
|
||||
XFubenConfigs.STAGETYPE_FIGHT = 1
|
||||
XFubenConfigs.STAGETYPE_STORY = 2
|
||||
XFubenConfigs.STAGETYPE_STORYEGG = 3
|
||||
XFubenConfigs.STAGETYPE_FIGHTEGG = 4
|
||||
|
||||
XFubenConfigs.FUBENTYPE_NORMAL = 0
|
||||
XFubenConfigs.FUBENTYPE_PREQUEL = 1
|
||||
|
||||
XFubenConfigs.ROOM_MAX_WORLD = CSXGameClientConfig:GetInt("MultiplayerRoomRowMaxWorld")
|
||||
XFubenConfigs.ROOM_WORLD_TIME = CSXGameClientConfig:GetInt("MultiplayerRoomWorldTime")
|
||||
|
||||
XFubenConfigs.CharacterLimitType = {
|
||||
All = 0, --构造体/感染体
|
||||
Normal = 1, --构造体
|
||||
Isomer = 2, --感染体
|
||||
IsomerDebuff = 3, --构造体/感染体(Debuff) [AKA:低浓度区]
|
||||
NormalDebuff = 4, --构造体(Debuff)/感染体 [AKA:重灾区]
|
||||
}
|
||||
|
||||
function XFubenConfigs.Init()
|
||||
StageCfg = XTableManager.ReadByIntKey(TABLE_STAGE, XTable.XTableStage, "StageId")
|
||||
MultiChallengeConfigs = XTableManager.ReadByIntKey(TABLE_MULTICHALLENGE_STAGE, XTable.XTableMultiChallengeStage, "Id")
|
||||
StageLevelControlCfg = XTableManager.ReadByIntKey(TABLE_STAGE_LEVEL_CONTROL, XTable.XTableStageLevelControl, "Id")
|
||||
StageMultiplayerLevelControlCfg = XTableManager.ReadByIntKey(TABLE_STAGE_MULTIPLAYER_LEVEL_CONTROL, XTable.XTableStageMultiplayerLevelControl, "Id")
|
||||
StageTransformCfg = XTableManager.ReadByIntKey(TABLE_STAGE_TRANSFORM, XTable.XTableStageTransform, "Id")
|
||||
--TowerSectionCfg = XTableManager.ReadByIntKey(TABLE_TOWER_SECTION, XTable.XTableTowerSection, "Id")
|
||||
FlopRewardTemplates = XTableManager.ReadByIntKey(TABLE_FLOP_REWARD, XTable.XTableFlopReward, "Id")
|
||||
StageFightControlCfg = XTableManager.ReadByIntKey(TABLE_STAGE_FIGHT_CONTROL, XTable.XTableStageFightControl, "Id")
|
||||
ActivitySortRules = XTableManager.ReadByIntKey(TABLE_ACTIVITY_SORTRULE, XTable.XTableActivitySortRule, "Id")
|
||||
FubenFeatures = XTableManager.ReadByIntKey(TABLE_FUBENFEATURES, XTable.XTableFubenFeatures, "Id")
|
||||
StageCharacterLimitBuffConfig = XTableManager.ReadByIntKey(TABLE_STAGE_CHARACTERLIMIT, XTable.XTableFubenStageCharacterLimit, "Id")
|
||||
StageFightEvent = XTableManager.ReadByIntKey(TABLE_STAGE_FIGHT_EVENT, XTable.XTableStageFightEvent, "StageId")
|
||||
StageFightEventDetails = XTableManager.ReadByIntKey(TABLE_STAGE_FIGHT_EVENT_DETAILS, XTable.XTableStageFightEventDetails, "Id")
|
||||
SettleLoseTipCfg = XTableManager.ReadByIntKey(TABLE_SETTLE_LOST_TIP, XTable.XTableSettleLoseTip, "Id")
|
||||
StageRecommendConfigs = XTableManager.ReadByIntKey(TABLE_STAGE_RECOMMEND_PATH, XTable.XTableStageRecommend, "StageId")
|
||||
|
||||
TeamBuffCfg = XTableManager.ReadByIntKey(TABLE_BOSS_TEAMBUFF, XTable.XTableStageTeamBuff, "Id")
|
||||
for id, v in pairs(TeamBuffCfg) do
|
||||
local maxCount = 0
|
||||
for _, buffId in ipairs(v.BuffId) do
|
||||
if buffId > 0 then
|
||||
maxCount = maxCount + 1
|
||||
end
|
||||
end
|
||||
TeamBuffMaxCountDic[id] = maxCount
|
||||
end
|
||||
|
||||
local banners = XTableManager.ReadByIntKey(TABLE_CHALLENGE_BANNER, XTable.XTableFubenChallengeBanner, "Id")
|
||||
for _, v in pairs(banners) do
|
||||
FubenChallengeBanners[v.Type] = v
|
||||
end
|
||||
end
|
||||
|
||||
local function GetStageCfg(stageId)
|
||||
local config = StageCfg[stageId]
|
||||
if not config then
|
||||
XLog.Error("XFubenConfigs.GetStageCfgs Error: StageId: " .. stageId)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local function GetTeamBuffCfg(teamBuffId)
|
||||
local config = TeamBuffCfg[teamBuffId]
|
||||
if not config then
|
||||
XLog.Error("XFubenConfigs.GetTeamBuffCfg Error: teamBuffId: " .. teamBuffId)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local function GetSettleLoseTipCfg(settleLoseTipId)
|
||||
local config = SettleLoseTipCfg[settleLoseTipId]
|
||||
if not config then
|
||||
XLog.ErrorTableDataNotFound(
|
||||
"XFubenConfigs.GetSettleLoseTipCfg",
|
||||
"失败提示",
|
||||
TABLE_SETTLE_LOST_TIP,
|
||||
"Id",
|
||||
tostring(settleLoseTipId))
|
||||
return {}
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetStageCfgs()
|
||||
return StageCfg
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetBuffDes(buffId)
|
||||
local fightEventCfg = buffId and buffId ~= 0 and CS.XNpcManager.GetFightEventTemplate(buffId)
|
||||
return fightEventCfg and fightEventCfg.Description or ""
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetStageLevelControlCfg()
|
||||
return StageLevelControlCfg
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetStageMultiplayerLevelControlCfg()
|
||||
return StageMultiplayerLevelControlCfg
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetStageMultiplayerLevelControlCfgById(id)
|
||||
return StageMultiplayerLevelControlCfg[id]
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetStageTransformCfg()
|
||||
return StageTransformCfg
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetFlopRewardTemplates()
|
||||
return FlopRewardTemplates
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetActivitySortRules()
|
||||
return ActivitySortRules
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetFeaturesById(id)
|
||||
local t = FubenFeatures[id]
|
||||
if not t then
|
||||
XLog.ErrorTableDataNotFound("XFubenConfigs.GetFeaturesById", "FubenFeatures", TABLE_FUBENFEATURES, "Id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
return t
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetActivityPriorityByActivityIdAndType(activityId, type)
|
||||
for _, v in pairs(ActivitySortRules) do
|
||||
if v.ActivityId == activityId and v.Type == type then
|
||||
return v.Priority
|
||||
end
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetStageFightControl(id)
|
||||
for _, v in pairs(StageFightControlCfg) do
|
||||
if v.Id == id then
|
||||
return v
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
function XFubenConfigs.IsKeepPlayingStory(stageId)
|
||||
local targetCfg = StageCfg[stageId]
|
||||
if not targetCfg or not targetCfg.KeepPlayingStory then
|
||||
return false
|
||||
end
|
||||
return targetCfg.KeepPlayingStory == 1
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetChapterBannerByType(bannerType)
|
||||
return FubenChallengeBanners[bannerType] or {}
|
||||
end
|
||||
|
||||
function XFubenConfigs.InitNewChallengeConfigs()
|
||||
FubenNewChallenge = {}
|
||||
for _, v in pairs(FubenChallengeBanners) do
|
||||
if v.ShowNewStartTime and v.ShowNewEndTime then
|
||||
local timeNow = XTime.GetServerNowTimestamp()
|
||||
local startTime = XTime.ParseToTimestamp(v.ShowNewStartTime)
|
||||
local endTime = XTime.ParseToTimestamp(v.ShowNewEndTime)
|
||||
if endTime and timeNow <= endTime then
|
||||
table.insert(FubenNewChallenge, v)
|
||||
end
|
||||
if startTime > endTime then
|
||||
XLog.Error("新挑战活动配置有误,起始时间晚于结束时间,表路径:" .. TABLE_CHALLENGE_BANNER .. " 问题Id :" .. tostring(v.Id))
|
||||
end
|
||||
end
|
||||
end
|
||||
return FubenNewChallenge
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetNewChallengeConfigs() -- 获取新挑战玩法数据
|
||||
return FubenNewChallenge or XFubenConfigs.InitNewChallengeConfigs()
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetNewChallengeConfigById(id) -- 根据Id取得FubenChallengeBanner配置
|
||||
for i in pairs(FubenChallengeBanners) do
|
||||
if FubenChallengeBanners[i].Id == id then
|
||||
return FubenChallengeBanners[i]
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetNewChallengeConfigsLength() -- 获取新活动数量
|
||||
local config = XFubenConfigs.GetNewChallengeConfigs()
|
||||
return #config
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetNewChallengeFunctionId(index)
|
||||
local config = XFubenConfigs.GetNewChallengeConfigs()
|
||||
return config[index].FunctionId
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetNewChallengeId(index) -- 根据索引获取新挑战活动的Id
|
||||
local config = XFubenConfigs.GetNewChallengeConfigs()
|
||||
return config[index].Id
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetNewChallengeStartTimeStamp(index)
|
||||
local config = XFubenConfigs.GetNewChallengeConfigs()
|
||||
return XTime.ParseToTimestamp(config[index].ShowNewStartTime)
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetNewChallengeEndTimeStamp(index)
|
||||
local config = XFubenConfigs.GetNewChallengeConfigs()
|
||||
return XTime.ParseToTimestamp(config[index].ShowNewEndTime)
|
||||
end
|
||||
|
||||
function XFubenConfigs.IsNewChallengeStartByIndex(index) -- 根据索引获取新挑战时段是否已经开始
|
||||
return XFubenConfigs.GetNewChallengeStartTimeStamp(index) <= XTime.GetServerNowTimestamp()
|
||||
end
|
||||
|
||||
function XFubenConfigs.IsNewChallengeStartById(id) -- 根据挑战活动Id获取新挑战时段是否已经开始
|
||||
if not id then return false end
|
||||
local cfg = XFubenConfigs.GetNewChallengeConfigById(id)
|
||||
if not cfg or not cfg.ShowNewStartTime then return false end
|
||||
return XTime.ParseToTimestamp(cfg.ShowNewStartTime) <= XTime.GetServerNowTimestamp()
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetMultiChallengeStageConfigs()
|
||||
return MultiChallengeConfigs
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetTableStagePath()
|
||||
return TABLE_STAGE
|
||||
end
|
||||
|
||||
--副本上阵角色类型限制相关:
|
||||
local ROOM_CHARACTER_LIMIT_CONFIGS = {
|
||||
[XFubenConfigs.CharacterLimitType.Normal] = {
|
||||
Name = CSXTextManagerGetText("CharacterTypeLimitNameNormal"),
|
||||
ImageTeamEdit = CSXGameClientConfig:GetString("TeamCharacterTypeNormalLimitImage"),
|
||||
ImageSelectCharacter = CSXGameClientConfig:GetString("TeamRequireCharacterNormalImage"),
|
||||
TextTeamEdit = CSXTextManagerGetText("TeamCharacterTypeNormalLimitText"),
|
||||
TextSelectCharacter = CSXTextManagerGetText("TeamRequireCharacterNormalText"),
|
||||
TextChapterLimit = CSXTextManagerGetText("ChapterCharacterTypeLimitNormal"),
|
||||
},
|
||||
[XFubenConfigs.CharacterLimitType.Isomer] = {
|
||||
Name = CSXTextManagerGetText("CharacterTypeLimitNameIsomer"),
|
||||
ImageTeamEdit = CSXGameClientConfig:GetString("TeamCharacterTypeIsomerLimitImage"),
|
||||
ImageSelectCharacter = CSXGameClientConfig:GetString("TeamRequireCharacterIsomerImage"),
|
||||
TextTeamEdit = CSXTextManagerGetText("TeamCharacterTypeIsomerLimitText"),
|
||||
TextSelectCharacter = CSXTextManagerGetText("TeamRequireCharacterIsomerText"),
|
||||
TextChapterLimit = CSXTextManagerGetText("ChapterCharacterTypeLimitIsomer"),
|
||||
},
|
||||
[XFubenConfigs.CharacterLimitType.IsomerDebuff] = {
|
||||
Name = CSXTextManagerGetText("CharacterTypeLimitNameIsomerDebuff"),
|
||||
ImageTeamEdit = CSXGameClientConfig:GetString("TeamCharacterTypeIsomerDebuffLimitImage"),
|
||||
ImageSelectCharacter = CSXGameClientConfig:GetString("TeamRequireCharacterIsomerDebuffImage"),
|
||||
TextTeamEdit = function(buffDes) return CSXTextManagerGetText("TeamCharacterTypeIsomerDebuffLimitText", buffDes) end,
|
||||
TextTeamEditDefault = CSXTextManagerGetText("TeamCharacterTypeIsomerDebuffLimitDefaultText"),
|
||||
TextSelectCharacter = function(buffDes) return CSXTextManagerGetText("TeamRequireCharacterIsomerDebuffText", buffDes) end,
|
||||
TextSelectCharacterDefault = CSXTextManagerGetText("TeamRequireCharacterIsomerDebuffDefaultText"),
|
||||
TextChapterLimit = function(buffDes) return CSXTextManagerGetText("ChapterCharacterTypeLimitIsomerDebuff", buffDes) end,
|
||||
},
|
||||
[XFubenConfigs.CharacterLimitType.NormalDebuff] = {
|
||||
Name = CSXTextManagerGetText("CharacterTypeLimitNameNormalDebuff"),
|
||||
ImageTeamEdit = CSXGameClientConfig:GetString("TeamCharacterTypeNormalDebuffLimitImage"),
|
||||
ImageSelectCharacter = CSXGameClientConfig:GetString("TeamRequireCharacterNormalDebuffImage"),
|
||||
TextTeamEdit = function(buffDes) return CSXTextManagerGetText("TeamCharacterTypeNormalDebuffLimitText", buffDes) end,
|
||||
TextTeamEditDefault = CSXTextManagerGetText("TeamCharacterTypeNormalDebuffLimitDefaultText"),
|
||||
TextSelectCharacter = function(buffDes) return CSXTextManagerGetText("TeamRequireCharacterNormalDebuffText", buffDes) end,
|
||||
TextSelectCharacterDefault = CSXTextManagerGetText("TeamRequireCharacterNormalDebuffDefaultText"),
|
||||
TextChapterLimit = function(buffDes) return CSXTextManagerGetText("ChapterCharacterTypeLimitNormalDebuff", buffDes) end,
|
||||
},
|
||||
}
|
||||
|
||||
local function GetStageCharacterLimitConfig(characterLimitType)
|
||||
return ROOM_CHARACTER_LIMIT_CONFIGS[characterLimitType]
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetStageCharacterLimitType(stageId)
|
||||
return GetStageCfg(stageId).CharacterLimitType
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetStageCharacterLimitBuffId(stageId)
|
||||
local limitBuffId = GetStageCfg(stageId).LimitBuffId
|
||||
return XFubenConfigs.GetLimitShowBuffId(limitBuffId)
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetLimitShowBuffId(limitBuffId)
|
||||
local config = StageCharacterLimitBuffConfig[limitBuffId]
|
||||
local buffIds = config and config.BuffId
|
||||
return buffIds and buffIds[1] or 0
|
||||
end
|
||||
|
||||
function XFubenConfigs.IsStageCharacterLimitConfigExist(characterLimitType)
|
||||
return GetStageCharacterLimitConfig(characterLimitType) and true
|
||||
end
|
||||
|
||||
-- 编队界面限制角色类型Icon
|
||||
function XFubenConfigs.GetStageCharacterLimitImageTeamEdit(characterLimitType)
|
||||
local config = GetStageCharacterLimitConfig(characterLimitType)
|
||||
if not config then return "" end
|
||||
return config.ImageTeamEdit
|
||||
end
|
||||
|
||||
-- 编队界面限制角色类型文本
|
||||
function XFubenConfigs.GetStageCharacterLimitTextTeamEdit(characterLimitType, characterType, buffId)
|
||||
local config = GetStageCharacterLimitConfig(characterLimitType)
|
||||
if not config then return "" end
|
||||
|
||||
local text = config.TextTeamEdit
|
||||
local defaultText = config.TextTeamEditDefault
|
||||
if not defaultText then
|
||||
return text
|
||||
end
|
||||
|
||||
local defaultCharacterType = XDataCenter.FubenManager.GetDefaultCharacterTypeByCharacterLimitType(characterLimitType)
|
||||
if characterType and characterType ~= defaultCharacterType then
|
||||
if type(text) == "function" then
|
||||
local buffDes = XFubenConfigs.GetBuffDes(buffId)
|
||||
return text(buffDes)
|
||||
end
|
||||
else
|
||||
return defaultText
|
||||
end
|
||||
|
||||
return text
|
||||
end
|
||||
|
||||
-- 选人界面限制角色类型Icon
|
||||
function XFubenConfigs.GetStageCharacterLimitImageSelectCharacter(characterLimitType)
|
||||
local config = GetStageCharacterLimitConfig(characterLimitType)
|
||||
if not config then return "" end
|
||||
return config.ImageSelectCharacter
|
||||
end
|
||||
|
||||
-- 选人界面限制角色类型文本
|
||||
function XFubenConfigs.GetStageCharacterLimitTextSelectCharacter(characterLimitType, characterType, buffId)
|
||||
local config = GetStageCharacterLimitConfig(characterLimitType)
|
||||
if not config then return "" end
|
||||
|
||||
local text = config.TextSelectCharacter
|
||||
local defaultText = config.TextSelectCharacterDefault
|
||||
if not defaultText then
|
||||
return text
|
||||
end
|
||||
|
||||
local defaultCharacterType = XDataCenter.FubenManager.GetDefaultCharacterTypeByCharacterLimitType(characterLimitType)
|
||||
if characterType ~= defaultCharacterType then
|
||||
if type(text) == "function" then
|
||||
if not XTool.IsNumberValid(buffId) then
|
||||
return defaultText
|
||||
end
|
||||
|
||||
local buffDes = XFubenConfigs.GetBuffDes(buffId)
|
||||
return text(buffDes)
|
||||
end
|
||||
else
|
||||
return defaultText
|
||||
end
|
||||
|
||||
return text
|
||||
end
|
||||
|
||||
-- 限制角色类型分区名称文本
|
||||
function XFubenConfigs.GetStageCharacterLimitName(characterLimitType)
|
||||
local config = GetStageCharacterLimitConfig(characterLimitType)
|
||||
if not config then return "" end
|
||||
return config.Name
|
||||
end
|
||||
|
||||
-- 章节选人界面限制角色类型文本
|
||||
function XFubenConfigs.GetChapterCharacterLimitText(characterLimitType, buffId)
|
||||
local config = GetStageCharacterLimitConfig(characterLimitType)
|
||||
if not config then return "" end
|
||||
|
||||
local text = config.TextChapterLimit
|
||||
if type(text) == "function" then
|
||||
local buffDes = XFubenConfigs.GetBuffDes(buffId)
|
||||
return text(buffDes)
|
||||
end
|
||||
return text
|
||||
end
|
||||
|
||||
function XFubenConfigs.IsCharacterFitTeamBuff(teamBuffId, characterId)
|
||||
if not teamBuffId or teamBuffId <= 0 then return false end
|
||||
if not characterId or characterId <= 0 then return false end
|
||||
|
||||
local config = GetTeamBuffCfg(teamBuffId)
|
||||
|
||||
local initQuality = characterId and characterId > 0 and XCharacterConfigs.GetCharMinQuality(characterId)
|
||||
if not initQuality or initQuality <= 0 then return false end
|
||||
|
||||
for _, quality in pairs(config.Quality) do
|
||||
if initQuality == quality then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetTeamBuffFitCharacterCount(teamBuffId, characterIds)
|
||||
local config = GetTeamBuffCfg(teamBuffId)
|
||||
|
||||
local fitCount = 0
|
||||
|
||||
local checkDic = {}
|
||||
for _, quality in pairs(config.Quality) do
|
||||
checkDic[quality] = true
|
||||
end
|
||||
|
||||
for _, characterId in pairs(characterIds) do
|
||||
local initQuality = characterId > 0 and XCharacterConfigs.GetCharMinQuality(characterId)
|
||||
fitCount = checkDic[initQuality] and fitCount + 1 or fitCount
|
||||
end
|
||||
|
||||
return fitCount
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetTeamBuffMaxBuffCount(teamBuffId)
|
||||
return TeamBuffMaxCountDic[teamBuffId] or 0
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetTeamBuffOnIcon(teamBuffId)
|
||||
local config = GetTeamBuffCfg(teamBuffId)
|
||||
return config.OnIcon
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetTeamBuffOffIcon(teamBuffId)
|
||||
local config = GetTeamBuffCfg(teamBuffId)
|
||||
return config.OffIcon
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetTeamBuffTitle(teamBuffId)
|
||||
local config = GetTeamBuffCfg(teamBuffId)
|
||||
return config.Title
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetTeamBuffDesc(teamBuffId)
|
||||
local config = GetTeamBuffCfg(teamBuffId)
|
||||
return string.gsub(config.Desc, "\\n", "\n")
|
||||
end
|
||||
|
||||
-- 根据符合初始品质要求的characterId列表获取对应的同调加成buffId
|
||||
function XFubenConfigs.GetTeamBuffShowBuffId(teamBuffId, characterIds)
|
||||
local config = GetTeamBuffCfg(teamBuffId)
|
||||
local fitCount = XFubenConfigs.GetTeamBuffFitCharacterCount(teamBuffId, characterIds)
|
||||
return config.BuffId[fitCount]
|
||||
end
|
||||
|
||||
-- 根据关卡ID查找关卡词缀列表
|
||||
function XFubenConfigs.GetStageFightEventByStageId(stageId)
|
||||
if not StageFightEvent[stageId] then
|
||||
XLog.ErrorTableDataNotFound(
|
||||
"XFubenConfigs.GetStageFightEventByStageId",
|
||||
"通用关卡词缀数据",
|
||||
TABLE_STAGE_FIGHT_EVENT,
|
||||
"StageId",
|
||||
tostring(stageId)
|
||||
)
|
||||
return {}
|
||||
end
|
||||
return StageFightEvent[stageId]
|
||||
end
|
||||
-- 根据ID查找词缀详细
|
||||
function XFubenConfigs.GetStageFightEventDetailsByStageFightEventId(eventId)
|
||||
if not StageFightEventDetails[eventId] then
|
||||
XLog.ErrorTableDataNotFound(
|
||||
"XFubenConfigs.GetStageFightEventDetailsByStageFightEventId",
|
||||
"通用关卡词缀数据",
|
||||
TABLE_STAGE_FIGHT_EVENT_DETAILS,
|
||||
"Id",
|
||||
tostring(eventId)
|
||||
)
|
||||
return nil
|
||||
end
|
||||
return StageFightEventDetails[eventId]
|
||||
end
|
||||
|
||||
---
|
||||
--- 获取 失败提示描述 数组
|
||||
function XFubenConfigs.GetTipDescList(settleLoseTipId)
|
||||
local cfg = GetSettleLoseTipCfg(settleLoseTipId)
|
||||
return cfg.TipDesc
|
||||
end
|
||||
|
||||
---
|
||||
--- 获取 失败提示跳转Id 数组
|
||||
function XFubenConfigs.GetSkipIdList(settleLoseTipId)
|
||||
local cfg = GetSettleLoseTipCfg(settleLoseTipId)
|
||||
return cfg.SkipId
|
||||
end
|
||||
|
||||
--获取关卡推荐角色类型(构造体/感染体)
|
||||
function XFubenConfigs.GetStageRecommendCharacterType(stageId)
|
||||
local config = StageRecommendConfigs[stageId]
|
||||
if not config then return end
|
||||
|
||||
local value = config.CharacterType
|
||||
return value ~= 0 and value or nil
|
||||
end
|
||||
|
||||
--获取关卡推荐角色元素属性(物理/火/雷/冰/暗)
|
||||
function XFubenConfigs.GetStageRecommendCharacterElement(stageId)
|
||||
local config = StageRecommendConfigs[stageId]
|
||||
if not config then return end
|
||||
|
||||
local value = config.CharacterElement
|
||||
return value ~= 0 and value or nil
|
||||
end
|
||||
|
||||
--是否为关卡推荐角色
|
||||
function XFubenConfigs.IsStageRecommendCharacterType(stageId, Id)
|
||||
local characterId = XRobotManager.GetCharacterId(Id)
|
||||
local characterType = XCharacterConfigs.GetCharacterType(characterId)
|
||||
local recommendType = XFubenConfigs.GetStageRecommendCharacterType(stageId)
|
||||
local element = XCharacterConfigs.GetCharacterElement(characterId)
|
||||
local recommendElement = XFubenConfigs.GetStageRecommendCharacterElement(stageId) or 0
|
||||
--(废弃)特殊逻辑:如果为授格者,一定是推荐(废弃)
|
||||
--if characterType == XCharacterConfigs.CharacterType.Isomer and recommendType == characterType then
|
||||
-- return true
|
||||
--end
|
||||
|
||||
--特殊逻辑:当关卡推荐元素为0时推荐所有该角色类型(构造体/授格者)的构造体
|
||||
--(此处兼容之前废弃的《授格者一定推荐的特殊逻辑》,StageRecommend配置中的授格者类型下推荐属性都是0,故兼容)
|
||||
|
||||
return XTool.IsNumberValid(recommendType) and
|
||||
recommendType == characterType and
|
||||
(element == recommendElement or recommendElement == 0)
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetStageName(stageId)
|
||||
local config = GetStageCfg(stageId)
|
||||
return config and config.Name or ""
|
||||
end
|
||||
|
||||
function XFubenConfigs.GetStageType(stageId)
|
||||
local config = GetStageCfg(stageId)
|
||||
return config and config.StageType or ""
|
||||
end
|
||||
|
||||
---
|
||||
--- 关卡图标
|
||||
function XFubenConfigs.GetStageIcon(stageId)
|
||||
local config = GetStageCfg(stageId)
|
||||
return (config or {}).Icon
|
||||
end
|
||||
|
||||
---
|
||||
--- 三星条件描述数组
|
||||
function XFubenConfigs.GetStarDesc(stageId)
|
||||
local config = GetStageCfg(stageId)
|
||||
return (config or {}).StarDesc
|
||||
end
|
||||
|
||||
---
|
||||
--- 关卡需要消耗的体力
|
||||
function XFubenConfigs.GetRequireActionPoint(stageId)
|
||||
local config = GetStageCfg(stageId)
|
||||
return (config or {}).RequireActionPoint
|
||||
end
|
||||
|
||||
---
|
||||
--- 关卡首通奖励
|
||||
function XFubenConfigs.GetFirstRewardShow(stageId)
|
||||
local config = GetStageCfg(stageId)
|
||||
return (config or {}).FirstRewardShow
|
||||
end
|
||||
|
||||
---
|
||||
--- 关卡非首通奖励
|
||||
function XFubenConfigs.GetFinishRewardShow(stageId)
|
||||
local config = GetStageCfg(stageId)
|
||||
return (config or {}).FinishRewardShow
|
||||
end
|
||||
|
||||
---
|
||||
--- 获得战前剧情ID
|
||||
function XFubenConfigs.GetBeginStoryId(stageId)
|
||||
local config = GetStageCfg(stageId)
|
||||
return (config or {}).BeginStoryId
|
||||
end
|
64
Resources/Scripts/XConfig/XFubenCoupleCombatConfig.lua
Normal file
64
Resources/Scripts/XConfig/XFubenCoupleCombatConfig.lua
Normal file
|
@ -0,0 +1,64 @@
|
|||
XFubenCoupleCombatConfig = XFubenCoupleCombatConfig or {}
|
||||
|
||||
local TABLE_COUPLE_ACTIVITY = "Share/Fuben/CoupleCombat/CoupleCombatActivity.tab"
|
||||
local TABLE_COUPLE_BUFF = "Share/Fuben/CoupleCombat/CoupleCombatFeature.tab"
|
||||
local TABLE_COUPLE_CHAPTER = "Share/Fuben/CoupleCombat/CoupleCombatChapter.tab"
|
||||
local TABLE_COUPLE_ROBOT = "Share/Fuben/CoupleCombat/CoupleCombatRobot.tab"
|
||||
local TABLE_COUPLE_STAGE = "Share/Fuben/CoupleCombat/CoupleCombatStage.tab"
|
||||
|
||||
local CoupleCombatActivity = {}
|
||||
local CoupleCombatFeature = {}
|
||||
local CoupleCombatChapter = {}
|
||||
local CoupleCombatRobot = {}
|
||||
local CoupleCombatStage = {}
|
||||
|
||||
XFubenCoupleCombatConfig.StageType = {
|
||||
Normal = 1, --普通
|
||||
Hard = 2, --挑战模式
|
||||
}
|
||||
|
||||
function XFubenCoupleCombatConfig.Init()
|
||||
CoupleCombatActivity = XTableManager.ReadByIntKey(TABLE_COUPLE_ACTIVITY, XTable.XTableCoupleCombatActivity, "Id")
|
||||
CoupleCombatFeature = XTableManager.ReadByIntKey(TABLE_COUPLE_BUFF, XTable.XTableCoupleCombatFeature, "Id")
|
||||
CoupleCombatChapter = XTableManager.ReadByIntKey(TABLE_COUPLE_CHAPTER, XTable.XTableCoupleCombatChapter, "Id")
|
||||
CoupleCombatRobot = XTableManager.ReadByIntKey(TABLE_COUPLE_ROBOT, XTable.XTableCoupleCombatRobot, "RobotId")
|
||||
CoupleCombatStage = XTableManager.ReadByIntKey(TABLE_COUPLE_STAGE, XTable.XTableCoupleCombatStage, "Id")
|
||||
|
||||
end
|
||||
|
||||
function XFubenCoupleCombatConfig.GetStageInfo(id)
|
||||
local template = CoupleCombatStage[id]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XFubenCoupleCombatConfig.GetStageInfo", "CoupleCombatStage", TABLE_COUPLE_STAGE, "id", tostring(id))
|
||||
return
|
||||
end
|
||||
return template
|
||||
end
|
||||
|
||||
function XFubenCoupleCombatConfig.GetStages()
|
||||
return CoupleCombatStage
|
||||
end
|
||||
|
||||
function XFubenCoupleCombatConfig.GetChapterTemplates()
|
||||
return CoupleCombatChapter
|
||||
end
|
||||
|
||||
function XFubenCoupleCombatConfig.GetChapterTemplate(id)
|
||||
return CoupleCombatChapter[id]
|
||||
end
|
||||
|
||||
function XFubenCoupleCombatConfig.GetActTemplates()
|
||||
return CoupleCombatActivity
|
||||
end
|
||||
|
||||
function XFubenCoupleCombatConfig.GetActivityTemplateById(id)
|
||||
return CoupleCombatActivity[id]
|
||||
end
|
||||
|
||||
function XFubenCoupleCombatConfig.GetRobotInfo(id)
|
||||
return CoupleCombatRobot[id]
|
||||
end
|
||||
|
||||
function XFubenCoupleCombatConfig.GetFeatureById(id)
|
||||
return CoupleCombatFeature[id]
|
||||
end
|
62
Resources/Scripts/XConfig/XFubenExperimentConfigs.lua
Normal file
62
Resources/Scripts/XConfig/XFubenExperimentConfigs.lua
Normal file
|
@ -0,0 +1,62 @@
|
|||
XFubenExperimentConfigs = XFubenExperimentConfigs or {}
|
||||
|
||||
local TABLE_TRIAL_GROUP = "Share/Fuben/Experiment/ExperimentGroup.tab"
|
||||
local TABLE_TRIAL_LEVEL = "Share/Fuben/Experiment/ExperimentLevel.tab"
|
||||
local TABLE_TRIAL_BATTLETRIAL = "Share/Fuben/Experiment/BattleExperiment.tab"
|
||||
local TABLE_TRIAL_LEVELSKILL = "Client/Fuben/Experiment/ExperimentSkillExplainId.tab"
|
||||
local TABLE_TRIAL_REWARD = "Share/Fuben/Experiment/ExperimentReward.tab"
|
||||
|
||||
local TrialGroupCfg = {}
|
||||
local TrialLevelCfg = {}
|
||||
local BattleTrialCfg = {}
|
||||
local TrialSkillExplainCfg = {}
|
||||
local TrialRewardCfg = {}
|
||||
|
||||
function XFubenExperimentConfigs.Init()
|
||||
TrialGroupCfg = XTableManager.ReadByIntKey(TABLE_TRIAL_GROUP, XTable.XTableExperimentGroup, "Id")
|
||||
TrialLevelCfg = XTableManager.ReadByIntKey(TABLE_TRIAL_LEVEL, XTable.XTableExperimentLevel, "Id")
|
||||
BattleTrialCfg = XTableManager.ReadByIntKey(TABLE_TRIAL_BATTLETRIAL, XTable.XTableBattleExperiment, "Id")
|
||||
TrialSkillExplainCfg = XTableManager.ReadByIntKey(TABLE_TRIAL_LEVELSKILL, XTable.XTableExperimentSkillExplainId, "Id")
|
||||
TrialRewardCfg = XTableManager.ReadByIntKey(TABLE_TRIAL_REWARD, XTable.XTableExperimentReward, "Id")
|
||||
end
|
||||
|
||||
function XFubenExperimentConfigs.GetTrialGroupCfg()
|
||||
return TrialGroupCfg
|
||||
end
|
||||
|
||||
function XFubenExperimentConfigs.GetTrialLevelCfg()
|
||||
return TrialLevelCfg
|
||||
end
|
||||
|
||||
function XFubenExperimentConfigs.GetTrialLevelCfgById(id)
|
||||
for _, v in pairs(TrialLevelCfg) do
|
||||
if v.Id == id then
|
||||
return v
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XFubenExperimentConfigs.GetBattleTrialCfg()
|
||||
return BattleTrialCfg
|
||||
end
|
||||
|
||||
function XFubenExperimentConfigs.GetBattleTrialBegin(id)
|
||||
for i = 1, #BattleTrialCfg do
|
||||
if BattleTrialCfg[i].CharacterID == id then
|
||||
return BattleTrialCfg[i]
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
||||
|
||||
function XFubenExperimentConfigs.GetBattleTrial(id)
|
||||
return BattleTrialCfg[id]
|
||||
end
|
||||
|
||||
function XFubenExperimentConfigs.GetExperimentSkillExplainById(id)
|
||||
return TrialSkillExplainCfg[id]
|
||||
end
|
||||
|
||||
function XFubenExperimentConfigs.GetTrialStarRewardCfgById(rewardId)
|
||||
return TrialRewardCfg[rewardId]
|
||||
end
|
104
Resources/Scripts/XConfig/XFubenExploreConfigs.lua
Normal file
104
Resources/Scripts/XConfig/XFubenExploreConfigs.lua
Normal file
|
@ -0,0 +1,104 @@
|
|||
XFubenExploreConfigs = XFubenExploreConfigs or {}
|
||||
|
||||
local TABLE_EXPLORE_BUFF = "Share/Fuben/Explore/ExploreBuffItem.tab"
|
||||
local TABLE_EXPLORE_CHAPTER = "Share/Fuben/Explore/ExploreChapter.tab"
|
||||
local TABLE_EXPLORE_NODE = "Share/Fuben/Explore/ExploreNode.tab"
|
||||
local TABLE_EXPLORE_STORYTEXT = "Share/Fuben/Explore/ExploreStoryText.tab"
|
||||
|
||||
local ExploreBuffCfg = {}
|
||||
local ExploreChapterCfg = {}
|
||||
local ExploreNodeCfg = {}
|
||||
local ExploreStoryTextCfg = {}
|
||||
|
||||
XFubenExploreConfigs.NodeStateEnum = {
|
||||
Complete = 1, --已完成
|
||||
Availavle = 2, --可打
|
||||
Visivle = 3, --可看到不可打
|
||||
Invisivle = 4, --不可见
|
||||
}
|
||||
|
||||
XFubenExploreConfigs.NodeTypeEnum = {
|
||||
Stage = 1, --战斗
|
||||
Story = 2, --剧情
|
||||
Arena = 3, --竞技
|
||||
}
|
||||
|
||||
function XFubenExploreConfigs.Init()
|
||||
ExploreBuffCfg = XTableManager.ReadByIntKey(TABLE_EXPLORE_BUFF, XTable.XTableExploreBuffItem, "Id")
|
||||
ExploreChapterCfg = XTableManager.ReadByIntKey(TABLE_EXPLORE_CHAPTER, XTable.XTableExploreChapter, "Id")
|
||||
ExploreNodeCfg = XTableManager.ReadByIntKey(TABLE_EXPLORE_NODE, XTable.XTableExploreNode, "Id")
|
||||
ExploreStoryTextCfg = XTableManager.ReadByIntKey(TABLE_EXPLORE_STORYTEXT, XTable.XTableExploreStoryText, "Id")
|
||||
end
|
||||
|
||||
function XFubenExploreConfigs.GetExploreBuffCfg()
|
||||
return ExploreBuffCfg
|
||||
end
|
||||
|
||||
function XFubenExploreConfigs.GetExploreChapterCfg()
|
||||
return ExploreChapterCfg
|
||||
end
|
||||
|
||||
function XFubenExploreConfigs.GetExploreNodeCfg()
|
||||
return ExploreNodeCfg
|
||||
end
|
||||
|
||||
function XFubenExploreConfigs.GetExploreStoryTextCfg()
|
||||
return ExploreStoryTextCfg
|
||||
end
|
||||
|
||||
--获取某一章的全部关卡表数据
|
||||
function XFubenExploreConfigs.GetAllLevel(chapterId)
|
||||
local tempList = {}
|
||||
for _, v in pairs(ExploreNodeCfg) do
|
||||
if v.ChapterId == chapterId then
|
||||
table.insert(tempList, v)
|
||||
end
|
||||
end
|
||||
return tempList
|
||||
end
|
||||
|
||||
--获取某一关的表数据
|
||||
function XFubenExploreConfigs.GetLevel(nodeId)
|
||||
if ExploreNodeCfg[nodeId] then
|
||||
return ExploreNodeCfg[nodeId]
|
||||
end
|
||||
XLog.ErrorTableDataNotFound("XFubenExploreConfigs.GetLevel", "ExploreNodeCfg", TABLE_EXPLORE_NODE, "nodeId", tostring(nodeId))
|
||||
return nil
|
||||
end
|
||||
|
||||
--获取某一章的表数据
|
||||
function XFubenExploreConfigs.GetChapterData(chapterId)
|
||||
return ExploreChapterCfg[chapterId]
|
||||
end
|
||||
|
||||
--获取某一章的全部StoryText
|
||||
function XFubenExploreConfigs.GetChapterStoryText(chapterId)
|
||||
local tempList = {}
|
||||
for i = 1, #ExploreStoryTextCfg do
|
||||
if ExploreStoryTextCfg[i].ChapterId == chapterId then
|
||||
table.insert(tempList, ExploreStoryTextCfg[i])
|
||||
end
|
||||
end
|
||||
return tempList
|
||||
end
|
||||
|
||||
--获取某一章所有的buff
|
||||
function XFubenExploreConfigs.GetChapterBuff(chapterId)
|
||||
local tempList = {}
|
||||
for i = 1, #ExploreBuffCfg do
|
||||
if ExploreBuffCfg[i].ChapterId == chapterId then
|
||||
table.insert(tempList, ExploreBuffCfg[i])
|
||||
end
|
||||
end
|
||||
return tempList
|
||||
end
|
||||
|
||||
--获取某一个buff
|
||||
function XFubenExploreConfigs.GetBuff(buffId)
|
||||
for i = 1, #ExploreBuffCfg do
|
||||
if ExploreBuffCfg[i].Id == buffId then
|
||||
return ExploreBuffCfg[i]
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end
|
62
Resources/Scripts/XConfig/XFubenExtraChapterConfigs.lua
Normal file
62
Resources/Scripts/XConfig/XFubenExtraChapterConfigs.lua
Normal file
|
@ -0,0 +1,62 @@
|
|||
XFubenExtraChapterConfigs = {}
|
||||
|
||||
local TABLE_CHAPTER_EXTRA = "Share/Fuben/ExtraChapter/ChapterExtra.tab"
|
||||
local TABLE_CHAPTER_EXTRA_DETAILS = "Share/Fuben/ExtraChapter/ChapterExtraDetails.tab"
|
||||
local TABLE_CHAPTER_EXTRA_STARTREASURE = "Share/Fuben/ExtraChapter/ChapterExtraStarTreasure.tab"
|
||||
local TABLE_EXPLOREGROUP = "Client/Fuben/ExtraChapter/ExtraExploreGroup.tab"
|
||||
local TABLE_EXPLOREITEM = "Client/Fuben/ExtraChapter/ExtraExploreItem.tab"
|
||||
|
||||
local ExtraChapterCfgs = {} --TABLE_CHAPTER_EXTRA ChapterExtra.tab 番外章节数据,与Details表关联,难度指向不同的章节详细项
|
||||
local ExtraChapterDetailsCfgs = {} --TABLE_CHAPTER_EXTRA_DETAILS ChapterExtraDetails.tab 番外章节详细数据
|
||||
local ExtraChapterStarTreasureCfgs = {} --TABLE_CHAPTER_EXTRA_STARTREASURE ChapterExtraStarTreasure.tab
|
||||
local ExtraExploreGroupCfgs = {} --TABLE_EXPLOREGROUP ExtraExploreGroup.tab 番外探索组
|
||||
local ExtraExploreItemCfgs = {} --TABLE_EXPLOREITEM ExtraExploreItem.tab 番外探索道具数据
|
||||
|
||||
function XFubenExtraChapterConfigs.Init()
|
||||
ExtraChapterCfgs = XTableManager.ReadByIntKey(TABLE_CHAPTER_EXTRA, XTable.XTableChapterExtra, "Id")
|
||||
ExtraChapterDetailsCfgs = XTableManager.ReadByIntKey(TABLE_CHAPTER_EXTRA_DETAILS, XTable.XTableChapterExtraDetails, "ChapterId")
|
||||
ExtraChapterStarTreasureCfgs = XTableManager.ReadByIntKey(TABLE_CHAPTER_EXTRA_STARTREASURE, XTable.XTableChapterExtraStarTreasure, "TreasureId")
|
||||
ExtraExploreGroupCfgs = XTableManager.ReadByIntKey(TABLE_EXPLOREGROUP, XTable.XTableExtraExploreGroup, "Id")
|
||||
ExtraExploreItemCfgs = XTableManager.ReadByIntKey(TABLE_EXPLOREITEM, XTable.XTableExtraExploreItem, "Id")
|
||||
end
|
||||
|
||||
function XFubenExtraChapterConfigs.GetExtraChapterCfgs()
|
||||
return ExtraChapterCfgs
|
||||
end
|
||||
|
||||
function XFubenExtraChapterConfigs.GetExtraChapterDetailsCfgs()
|
||||
return ExtraChapterDetailsCfgs
|
||||
end
|
||||
|
||||
function XFubenExtraChapterConfigs.GetExtraChapterStarTreasuresCfgs()
|
||||
return ExtraChapterStarTreasureCfgs
|
||||
end
|
||||
|
||||
function XFubenExtraChapterConfigs.GetExploreGroupCfg()
|
||||
return ExtraExploreGroupCfgs
|
||||
end
|
||||
|
||||
function XFubenExtraChapterConfigs.GetExploreItemCfg()
|
||||
return ExtraExploreItemCfgs
|
||||
end
|
||||
|
||||
function XFubenExtraChapterConfigs.GetExploreItemCfgById(id)
|
||||
if not ExtraExploreItemCfgs[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenExtraChapterConfigs.GetExploreItemCfgById", "ExtraExploreItem", TABLE_EXPLOREITEM, "Id", tostring(id))
|
||||
return nil
|
||||
end
|
||||
return ExtraExploreItemCfgs[id]
|
||||
end
|
||||
|
||||
---
|
||||
--- 根据'chapterMainId'获取章节的周目Id
|
||||
---@param chapterMainId number
|
||||
---@return number
|
||||
function XFubenExtraChapterConfigs.GetZhouMuId(chapterMainId)
|
||||
if (ExtraChapterCfgs or {})[chapterMainId] == nil then
|
||||
XLog.ErrorTableDataNotFound("XFubenExtraChapterConfigs.GetZhouMuId",
|
||||
"外篇章节", TABLE_CHAPTER_EXTRA, "Id", tostring(chapterMainId))
|
||||
return
|
||||
end
|
||||
return ExtraChapterCfgs[chapterMainId].ZhouMuId
|
||||
end
|
86
Resources/Scripts/XConfig/XFubenHackConfig.lua
Normal file
86
Resources/Scripts/XConfig/XFubenHackConfig.lua
Normal file
|
@ -0,0 +1,86 @@
|
|||
XFubenHackConfig = XFubenHackConfig or {}
|
||||
|
||||
local TABLE_HACK_ACTIVITY = "Share/Fuben/Hack/HackActivity.tab"
|
||||
local TABLE_HACK_BUFF = "Share/Fuben/Hack/HackBuff.tab"
|
||||
local TABLE_HACK_CHAPTER = "Share/Fuben/Hack/HackChapter.tab"
|
||||
local TABLE_HACK_EFFECT = "Share/Fuben/Hack/HackCharacterEffect.tab"
|
||||
local TABLE_HACK_EXPLEVEL = "Share/Fuben/Hack/HackExpLevel.tab"
|
||||
local TABLE_HACK_REWARD = "Share/Fuben/Hack/HackReward.tab"
|
||||
local TABLE_HACK_STAGE = "Share/Fuben/Hack/HackStage.tab"
|
||||
|
||||
local HackActivity = {}
|
||||
local HackBuff = {}
|
||||
local HackChapter = {}
|
||||
local HackCharEffect = {}
|
||||
local HackExpLevel = {}
|
||||
local HackStage = {}
|
||||
local HackReward = {}
|
||||
local HackLevelGroup = {}
|
||||
|
||||
XFubenHackConfig.PopUpPos = {
|
||||
Left = 1,
|
||||
Right = 2,
|
||||
}
|
||||
|
||||
XFubenHackConfig.BuffBarCapacity = 3
|
||||
|
||||
function XFubenHackConfig.Init()
|
||||
HackActivity = XTableManager.ReadByIntKey(TABLE_HACK_ACTIVITY, XTable.XTableHackActivity, "Id")
|
||||
HackBuff = XTableManager.ReadByIntKey(TABLE_HACK_BUFF, XTable.XTableHackBuff, "Id")
|
||||
HackChapter = XTableManager.ReadByIntKey(TABLE_HACK_CHAPTER, XTable.XTableHackChapter, "Id")
|
||||
HackCharEffect = XTableManager.ReadByIntKey(TABLE_HACK_EFFECT, XTable.XTableHackCharacterEffect, "Id")
|
||||
HackExpLevel = XTableManager.ReadByIntKey(TABLE_HACK_EXPLEVEL, XTable.XTableHackExpLevel, "Id")
|
||||
HackStage = XTableManager.ReadByIntKey(TABLE_HACK_STAGE, XTable.XTableHackStage, "Id")
|
||||
HackReward = XTableManager.ReadByIntKey(TABLE_HACK_REWARD, XTable.XTableHackReward, "Id")
|
||||
for _, v in pairs(HackExpLevel) do
|
||||
if not HackLevelGroup[v.ChapterId] then
|
||||
HackLevelGroup[v.ChapterId] = {}
|
||||
end
|
||||
HackLevelGroup[v.ChapterId][v.Level] = v
|
||||
end
|
||||
end
|
||||
|
||||
function XFubenHackConfig.GetStageInfo(id)
|
||||
local template = HackStage[id]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XFubenHackConfig.GetStageInfo", "HackStage", TABLE_HACK_STAGE, "id", tostring(id))
|
||||
return
|
||||
end
|
||||
return template
|
||||
end
|
||||
|
||||
function XFubenHackConfig.GetStages()
|
||||
return HackStage
|
||||
end
|
||||
|
||||
function XFubenHackConfig.GetChapterTemplate(id)
|
||||
return HackChapter[id]
|
||||
end
|
||||
|
||||
function XFubenHackConfig.GetActTemplates()
|
||||
return HackActivity
|
||||
end
|
||||
|
||||
function XFubenHackConfig.GetActivityTemplateById(id)
|
||||
return HackActivity[id]
|
||||
end
|
||||
|
||||
function XFubenHackConfig.GetReward()
|
||||
return HackReward
|
||||
end
|
||||
|
||||
function XFubenHackConfig.GetRewardById(id)
|
||||
return HackReward[id]
|
||||
end
|
||||
|
||||
function XFubenHackConfig.GetBuffById(id)
|
||||
return HackBuff[id]
|
||||
end
|
||||
|
||||
function XFubenHackConfig.GetLevelCfg(chapterId, level)
|
||||
return HackLevelGroup[chapterId] and HackLevelGroup[chapterId][level]
|
||||
end
|
||||
|
||||
function XFubenHackConfig.GetLevelCfgs(chapterId)
|
||||
return HackLevelGroup[chapterId]
|
||||
end
|
907
Resources/Scripts/XConfig/XFubenInfestorExploreConfigs.lua
Normal file
907
Resources/Scripts/XConfig/XFubenInfestorExploreConfigs.lua
Normal file
|
@ -0,0 +1,907 @@
|
|||
local TABLE_SECTION_PATH = "Client/Fuben/InfestorExplore/ExploreSection.tab"
|
||||
local TABLE_CHAPTER_PATH = "Share/Fuben/InfestorExplore/ExploreChapter.tab"
|
||||
local TABLE_STAGE_PATH = "Share/Fuben/InfestorExplore/ExploreNode.tab"
|
||||
local TABLE_LEVEL_GROUP_PATH = "Share/Fuben/InfestorExplore/InfestorGroup.tab"
|
||||
local TABLE_DIFF_PATH = "Share/Fuben/InfestorExplore/InfestorDiff.tab"
|
||||
local TABLE_FOG_PATH = "Client/Fuben/InfestorExplore/Fog.tab"
|
||||
local TABLE_MAP_PATH = "Share/Fuben/InfestorExplore/Map/"
|
||||
local TABLE_NODETYPE_PATH = "Client/Fuben/InfestorExplore/NodeType.tab"
|
||||
local TABLE_EVENT_POOL_PATH = "Share/Fuben/InfestorExplore/ExploreEventPool.tab"
|
||||
local TABLE_EVENT_POOL_RES_PATH = "Client/Fuben/InfestorExplore/ExploreEventPoolRes.tab"
|
||||
local TABLE_FIGHTEVENT_PATH = "Share/Fuben/InfestorExplore/InfestorFightEvent.tab"
|
||||
local TABLE_BUFF_PATH = "Client/Fuben/InfestorExplore/Buffs.tab"
|
||||
local TABLE_CORE_PATH = "Share/Fuben/InfestorExplore/Core.tab"
|
||||
local TABLE_CORE_LEVEL_PATH = "Share/Fuben/InfestorExplore/CoreLevelEffect.tab"
|
||||
local TABLE_SUPPLY_REWARD_PATH = "Client/Fuben/InfestorExplore/SupplyReward.tab"
|
||||
local TABLE_SHOP_PATH = "Share/Fuben/InfestorExplore/Shop.tab"
|
||||
local TABLE_SHOP_GOODS_PATH = "Share/Fuben/InfestorExplore/ShopGoods.tab"
|
||||
local TABLE_REWARD_PATH = "Share/Fuben/InfestorExplore/ExploreRewardPool.tab"
|
||||
local TABLE_EVENT_GOODS_PATH = "Share/Fuben/InfestorExplore/InfestorEventGoods.tab"
|
||||
local TABLE_EVENT_TYPE_PATH = "Client/Fuben/InfestorExplore/EventType.tab"
|
||||
local TABLE_FIGHT_REWARD_COST_PATH = "Share/Fuben/InfestorExplore/FightRewardCost.tab"
|
||||
local TABLE_ACTIVITY_PATH = "Share/Fuben/InfestorExplore/InfestorActivity.tab"
|
||||
local TABLE_OUTPOST_DES_PATH = "Client/Fuben/InfestorExplore/OutPostDes.tab"
|
||||
local TABLE_OUTPOST_DES_POOL_PATH = "Client/Fuben/InfestorExplore/OutPostDesPool.tab"
|
||||
local TABLE_SCORE_RULE_PATH = "Share/Fuben/InfestorExplore/InfestorBossScoreRule.tab"
|
||||
|
||||
local CSXTextManagerGetText = CS.XTextManager.GetText
|
||||
local tableInsert = table.insert
|
||||
local tableUnpack = table.unpack
|
||||
local stringFormat = string.format
|
||||
|
||||
local SectionTemplate = {}
|
||||
local ChapterTemplate = {}
|
||||
local StageTemplate = {}
|
||||
local LevelGroupTemplate = {}
|
||||
local NodeTypeTemplate = {}
|
||||
local EventPoolMultionOptionsDic = {}
|
||||
local EventTemplate = {}
|
||||
local EventPoolTemplate = {}
|
||||
local DiffConfigDic = {}
|
||||
local MapTemplates = {}
|
||||
local FogDepthDic = {}
|
||||
local BuffTemplate = {}
|
||||
local FightEventTemplate = {}
|
||||
local CoreTemplate = {}
|
||||
local CoreLevelDic = {}
|
||||
local SupplyRewardTemplate = {}
|
||||
local ShopTemplate = {}
|
||||
local ShopGoodsTemplate = {}
|
||||
local RewardTemplate = {}
|
||||
local EventGoodsTemplate = {}
|
||||
local EventTypeTemplate = {}
|
||||
local FightRewardCostTemplate = {}
|
||||
local ActivityTemplate = {}
|
||||
local OutPostDesPoolDic = {}
|
||||
local OutPostDesDic = {}
|
||||
local ScoreRuleDict = {}
|
||||
|
||||
local QualityIconPath = {
|
||||
[1] = CS.XGame.ClientConfig:GetString("UiInfestorExploreCorePurple"),
|
||||
[2] = CS.XGame.ClientConfig:GetString("UiInfestorExploreCorePurple"),
|
||||
[3] = CS.XGame.ClientConfig:GetString("UiInfestorExploreCorePurple"),
|
||||
[4] = CS.XGame.ClientConfig:GetString("UiInfestorExploreCorePurple"),
|
||||
[5] = CS.XGame.ClientConfig:GetString("UiInfestorExploreCoreGold"),
|
||||
[6] = CS.XGame.ClientConfig:GetString("UiInfestorExploreCoreRed"),
|
||||
}
|
||||
|
||||
local QualityLevel = {
|
||||
Purple = 4,
|
||||
Gold = 5, --插件单元金色品质
|
||||
}
|
||||
|
||||
XFubenInfestorExploreConfigs = XFubenInfestorExploreConfigs or {}
|
||||
|
||||
XFubenInfestorExploreConfigs.Region = {
|
||||
UpRegion = 1, --晋级区
|
||||
KeepRegion = 2, --保级区
|
||||
DownRegion = 3, --降级区
|
||||
}
|
||||
|
||||
XFubenInfestorExploreConfigs.EventType = {
|
||||
Unknown = 0,
|
||||
AddCore = 101, --获得战术核心
|
||||
LostCore = 102, --失去一个现有战术核心
|
||||
LevelUpCore = 103, --升级一个已有核心
|
||||
ChangeTeamHpPer = 201, --改变队伍百分比血量
|
||||
ChangeCharacterHpPer = 202, --改变成员百分比血量
|
||||
ChangeMoneyPer = 301, --获得or失去百分比代币
|
||||
ChangeMoney = 302, --获得or失去指定数量代币
|
||||
ChangeMoneyRandom = 303, --获得or失去随机数量代币
|
||||
ChangeActionPoint = 401, --获得or失去指定数量行动点
|
||||
AddBuff = 501, --获得一个buff
|
||||
RemoveBuff = 502, --随机移除一个已有buff
|
||||
}
|
||||
|
||||
XFubenInfestorExploreConfigs.MaxWearingCoreNum = 6 --核心最大穿戴数量
|
||||
XFubenInfestorExploreConfigs.MaxEventOptionNum = 3 --可选择事件最大选项数量
|
||||
|
||||
local InitMapConfig = function()
|
||||
local paths = CS.XTableManager.GetPaths(TABLE_MAP_PATH)
|
||||
XTool.LoopCollection(paths, function(path)
|
||||
local key = tonumber(XTool.GetFileNameWithoutExtension(path))
|
||||
MapTemplates[key] = XTableManager.ReadByIntKey(path, XTable.XTableInfestorExploreGrid, "Id")
|
||||
end)
|
||||
end
|
||||
|
||||
local MAX_FOG_DEPTH = 5--最大迷雾深度
|
||||
local InitFogConfig = function()
|
||||
local template = XTableManager.ReadByIntKey(TABLE_FOG_PATH, XTable.XTableInfestorExploreFog, "Id")
|
||||
for _, config in pairs(template) do
|
||||
local depth = config.Depth
|
||||
if depth > MAX_FOG_DEPTH then
|
||||
XLog.Error("XFubenInfestorExploreConfigs InitFogConfig Erorr: 感染体玩法地图深度配置错误:超过最大深度上限: " .. MAX_FOG_DEPTH .. ", 配置路径: " .. TABLE_FOG_PATH)
|
||||
return
|
||||
end
|
||||
FogDepthDic[config.Type] = depth
|
||||
end
|
||||
end
|
||||
|
||||
local InitDiffConfig = function()
|
||||
local template = XTableManager.ReadByIntKey(TABLE_DIFF_PATH, XTable.XTableInfestorExploreDiff, "Id")
|
||||
for _, config in pairs(template) do
|
||||
local groupId = config.GroupId
|
||||
local groupConfig = DiffConfigDic[groupId] or {}
|
||||
DiffConfigDic[groupId] = groupConfig
|
||||
|
||||
local diff = config.Diff
|
||||
groupConfig[diff] = config
|
||||
end
|
||||
end
|
||||
|
||||
local InitEventPoolResConfig = function()
|
||||
local template = XTableManager.ReadByIntKey(TABLE_EVENT_POOL_RES_PATH, XTable.XTableInfestorEventPoolRes, "PoolId")
|
||||
for _, config in pairs(template) do
|
||||
local poolId = config.PoolId
|
||||
local multiOption = EventPoolMultionOptionsDic[poolId] or {}
|
||||
|
||||
for i = 1, XFubenInfestorExploreConfigs.MaxEventOptionNum do
|
||||
local options = multiOption[i] or {}
|
||||
multiOption[i] = options
|
||||
|
||||
for index, eventId in pairs(config["EventId" .. i]) do
|
||||
options[index] = eventId
|
||||
end
|
||||
end
|
||||
|
||||
EventPoolMultionOptionsDic[poolId] = multiOption
|
||||
end
|
||||
EventPoolTemplate = template
|
||||
end
|
||||
|
||||
local InitCoreLevelConfig = function()
|
||||
local template = XTableManager.ReadByIntKey(TABLE_CORE_LEVEL_PATH, XTable.XTableInfestorExploreCoreLevelEffect, "Id")
|
||||
for _, config in pairs(template) do
|
||||
local coreId = config.CoreId
|
||||
local coreConfig = CoreLevelDic[coreId] or {}
|
||||
CoreLevelDic[coreId] = coreConfig
|
||||
|
||||
local level = config.CoreLevel
|
||||
coreConfig[level] = config
|
||||
end
|
||||
end
|
||||
|
||||
local InitOutPostDesPoolConfig = function()
|
||||
local template = XTableManager.ReadByIntKey(TABLE_OUTPOST_DES_POOL_PATH, XTable.XTableInfestorOutPostDesPool, "Id")
|
||||
for _, config in pairs(template) do
|
||||
local poolId = config.PoolId
|
||||
|
||||
local desList = OutPostDesPoolDic[poolId] or {}
|
||||
OutPostDesPoolDic[poolId] = desList
|
||||
|
||||
tableInsert(desList, config.Description)
|
||||
end
|
||||
end
|
||||
|
||||
local InitOutPostDesConfig = function()
|
||||
local template = XTableManager.ReadByIntKey(TABLE_OUTPOST_DES_PATH, XTable.XTableInfestorOutPostDes, "Id")
|
||||
for _, config in pairs(template) do
|
||||
local key = config.Key
|
||||
OutPostDesDic[key] = config
|
||||
end
|
||||
end
|
||||
|
||||
local InitScoreRuleConfig = function()
|
||||
ScoreRuleDict = XTableManager.ReadByIntKey(TABLE_SCORE_RULE_PATH, XTable.XTableInfestorBossScoreRule, "StageId")
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.Init()
|
||||
SectionTemplate = XTableManager.ReadByIntKey(TABLE_SECTION_PATH, XTable.XTableInfestorExploreSection, "Id")
|
||||
ChapterTemplate = XTableManager.ReadByIntKey(TABLE_CHAPTER_PATH, XTable.XTableInfestorExploreChapter, "Id")
|
||||
StageTemplate = XTableManager.ReadByIntKey(TABLE_STAGE_PATH, XTable.XTableInfestorExploreNode, "Id")
|
||||
LevelGroupTemplate = XTableManager.ReadByIntKey(TABLE_LEVEL_GROUP_PATH, XTable.XTableInfestorGroup, "Id")
|
||||
NodeTypeTemplate = XTableManager.ReadByIntKey(TABLE_NODETYPE_PATH, XTable.XTableInfestorNodeType, "Type")
|
||||
BuffTemplate = XTableManager.ReadByIntKey(TABLE_BUFF_PATH, XTable.XTableInfestorBuffsRes, "Id")
|
||||
FightEventTemplate = XTableManager.ReadByIntKey(TABLE_FIGHTEVENT_PATH, XTable.XTableInfestorFightEvent, "Id")
|
||||
CoreTemplate = XTableManager.ReadByIntKey(TABLE_CORE_PATH, XTable.XTableInfestorExploreCore, "Id")
|
||||
SupplyRewardTemplate = XTableManager.ReadByIntKey(TABLE_SUPPLY_REWARD_PATH, XTable.XTableInfestorSupplyRewardRes, "Id")
|
||||
ShopTemplate = XTableManager.ReadByIntKey(TABLE_SHOP_PATH, XTable.XTableInfestorExploreShop, "Id")
|
||||
ShopGoodsTemplate = XTableManager.ReadByIntKey(TABLE_SHOP_GOODS_PATH, XTable.XTableInfestorExploreShopGoods, "Id")
|
||||
RewardTemplate = XTableManager.ReadByIntKey(TABLE_REWARD_PATH, XTable.XTableInfestorExploreReward, "Id")
|
||||
EventGoodsTemplate = XTableManager.ReadByIntKey(TABLE_EVENT_GOODS_PATH, XTable.XTableInfestorEventGoods, "EventId")
|
||||
EventTemplate = XTableManager.ReadByIntKey(TABLE_EVENT_POOL_PATH, XTable.XTableInfestorExploreEvent, "Id")
|
||||
EventTypeTemplate = XTableManager.ReadByIntKey(TABLE_EVENT_TYPE_PATH, XTable.XTableInfestorEventType, "Type")
|
||||
FightRewardCostTemplate = XTableManager.ReadByIntKey(TABLE_FIGHT_REWARD_COST_PATH, XTable.XTableInfestorFightRewardCost, "Times")
|
||||
ActivityTemplate = XTableManager.ReadByIntKey(TABLE_ACTIVITY_PATH, XTable.XTableInfestorActivity, "Id")
|
||||
InitDiffConfig()
|
||||
InitMapConfig()
|
||||
InitFogConfig()
|
||||
InitEventPoolResConfig()
|
||||
InitCoreLevelConfig()
|
||||
InitOutPostDesPoolConfig()
|
||||
InitOutPostDesConfig()
|
||||
InitScoreRuleConfig()
|
||||
end
|
||||
|
||||
local GetOutPostDesPoolDesList = function(poolId)
|
||||
local config = OutPostDesPoolDic[poolId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetOutPostDesPoolConfig error:配置不存在, : " .. poolId .. ", 配置路径: " .. TABLE_OUTPOST_DES_POOL_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetOutPostDesConfig = function(key)
|
||||
local config = OutPostDesDic[key]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetOutPostDesConfig error:配置不存在, : " .. key .. ", 配置路径: " .. TABLE_OUTPOST_DES_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetScoreRuleConfig = function(key)
|
||||
local config = ScoreRuleDict[key]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetScoreRuleConfig error:配置不存在, : " .. key .. ", 配置路径: " .. TABLE_SCORE_RULE_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetActivityConfig = function(activityId)
|
||||
local config = ActivityTemplate[activityId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetActivityConfig error:配置不存在, : " .. activityId .. ", 配置路径: " .. TABLE_ACTIVITY_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetSectionConfig = function(sectionId)
|
||||
local config = SectionTemplate[sectionId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetChapterConfig error:配置不存在, sectionId: " .. sectionId .. ", 配置路径: " .. TABLE_SECTION_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetChapterConfig = function(chapterId)
|
||||
local config = ChapterTemplate[chapterId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetChapterConfig error:配置不存在, chapterId: " .. chapterId .. ", 配置路径: " .. TABLE_CHAPTER_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetStageConfig = function(stageId)
|
||||
local config = StageTemplate[stageId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetStageConfig error:配置不存在, stageId: " .. stageId .. ", 配置路径: " .. TABLE_STAGE_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetLevelGroupConfig = function(groupId)
|
||||
local config = LevelGroupTemplate[groupId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetLevelGroupConfig error:配置不存在, groupId: " .. groupId .. ", 配置路径: " .. TABLE_LEVEL_GROUP_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetGroupDiffConfigs = function(groupId)
|
||||
local config = DiffConfigDic[groupId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetGroupDiffConfigs error:配置不存在, groupId: " .. groupId .. ", 配置路径: " .. TABLE_DIFF_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetGroupDiffConfig = function(groupId, diff)
|
||||
local config = GetGroupDiffConfigs(groupId)[diff]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetGroupDiffConfig error:配置不存在, diff: " .. diff .. ", 配置路径: " .. TABLE_DIFF_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetNodeTypeConfig = function(nodeType)
|
||||
local config = NodeTypeTemplate[nodeType]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetNodeTypeConfig error:配置不存在, nodeType: " .. nodeType .. ", 配置路径: " .. TABLE_NODETYPE_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetEventConfig = function(eventId)
|
||||
local config = EventTemplate[eventId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetEventConfig error:配置不存在, eventId: " .. eventId .. ", 配置路径: " .. TABLE_EVENT_POOL_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetEventPoolConfig = function(poolId)
|
||||
local config = EventPoolTemplate[poolId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetEventPoolConfig error:配置不存在, poolId: " .. poolId .. ", 配置路径: " .. TABLE_EVENT_POOL_RES_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetBuffConfig = function(buffId)
|
||||
local config = BuffTemplate[buffId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetBuffConfig error:配置不存在, buffId: " .. buffId .. ", 配置路径: " .. TABLE_BUFF_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetFightEventConfig = function(fightEventId)
|
||||
local config = FightEventTemplate[fightEventId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetFightEventConfig error:配置不存在, fightEventId: " .. fightEventId .. ", 配置路径: " .. TABLE_FIGHTEVENT_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetCoreConfig = function(coreId)
|
||||
local config = CoreTemplate[coreId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetCoreConfig error:配置不存在, coreId : " .. coreId .. ", 配置路径: " .. TABLE_CORE_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetCoreLevelConfig = function(coreId, level)
|
||||
local config = CoreLevelDic[coreId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetCoreLevelConfig error:配置不存在, coreId : " .. coreId .. ", level : " .. level .. ", 配置路径: " .. TABLE_CORE_LEVEL_PATH)
|
||||
return
|
||||
end
|
||||
|
||||
config = config[level]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetCoreLevelConfig error:配置不存在 coreId : " .. coreId .. ", level : " .. level .. ", 配置路径: " .. TABLE_CORE_LEVEL_PATH)
|
||||
return
|
||||
end
|
||||
|
||||
return config
|
||||
end
|
||||
|
||||
local GetShopConfig = function(shopId)
|
||||
local config = ShopTemplate[shopId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetShopConfig error:配置不存在, shopId : " .. shopId .. ", 配置路径: " .. TABLE_SHOP_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetShopGoodsConfig = function(goodsId)
|
||||
local config = ShopGoodsTemplate[goodsId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetShopGoodsConfig error:配置不存在, goodsId : " .. goodsId .. ", 配置路径: " .. TABLE_SHOP_GOODS_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetRewardConfig = function(rewardId)
|
||||
local config = RewardTemplate[rewardId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetRewardConfig error:配置不存在, rewardId : " .. rewardId .. ", 配置路径: " .. TABLE_REWARD_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetEventGoodsConfig = function(eventId)
|
||||
local config = EventGoodsTemplate[eventId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetEventGoodsConfig error:配置不存在, eventId : " .. eventId .. ", 配置路径: " .. TABLE_EVENT_GOODS_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local function GetEventPoolMultiOptions(poolId)
|
||||
local config = EventPoolMultionOptionsDic[poolId]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetEventGoodsConfig error:配置不存在, poolId : " .. poolId .. ", 配置路径: " .. TABLE_EVENT_POOL_RES_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local function GetEventTypeConfig(eventType)
|
||||
local config = EventTypeTemplate[eventType]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetEventTypeConfig error:配置不存在, eventType : " .. eventType .. ", 配置路径: " .. TABLE_EVENT_TYPE_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
local GetFightRewardCostConfig = function(times)
|
||||
local config = FightRewardCostTemplate[times]
|
||||
if not config then
|
||||
XLog.Error("XFubenInfestorExploreConfigs GetFightRewardCostConfig error:配置不存在, times : " .. times .. ", 配置路径: " .. TABLE_FIGHT_REWARD_COST_PATH)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetBuffId(fightEventId)
|
||||
return GetFightEventConfig(fightEventId).ExploreFightEventId[1]
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetBuffIdTwo(fightEventId)
|
||||
return GetFightEventConfig(fightEventId).BossFightEventId[1]
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetBuffName(buffId)
|
||||
return GetBuffConfig(buffId).Name
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetBuffDes(buffId)
|
||||
return GetBuffConfig(buffId).Description
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetBuffIcon(buffId)
|
||||
return GetBuffConfig(buffId).Icon
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetSectionName(sectionId)
|
||||
return GetSectionConfig(sectionId).Name
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetChapterConfigs()
|
||||
return ChapterTemplate
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetStageConfigs()
|
||||
return StageTemplate
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetPreChapterId(chapterId)
|
||||
return GetChapterConfig(chapterId).PreChapterId
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetNextChapterId(chapterId)
|
||||
for paramChapterId in pairs(ChapterTemplate) do
|
||||
if chapterId == XFubenInfestorExploreConfigs.GetPreChapterId(paramChapterId) then
|
||||
return paramChapterId
|
||||
end
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetChapterName(chapterId)
|
||||
return GetChapterConfig(chapterId).Name
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetChapterCharacterLimitType(chapterId)
|
||||
return GetChapterConfig(chapterId).CharacterLimitType
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetChapterLimitBuffId(chapterId)
|
||||
local limitBuffId = GetChapterConfig(chapterId).LimitBuffId
|
||||
return XFubenConfigs.GetLimitShowBuffId(limitBuffId)
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetChapterPrefabPath(chapterId)
|
||||
return GetChapterConfig(chapterId).Prefab
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetChapterDescription(chapterId)
|
||||
return GetChapterConfig(chapterId).Description
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetChapterIcon(chapterId)
|
||||
return GetChapterConfig(chapterId).Icon
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetChapterBg(chapterId)
|
||||
return GetChapterConfig(chapterId).Bg
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetMapId(chapterId)
|
||||
return GetChapterConfig(chapterId).MapId
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetNodeType(stageId)
|
||||
return GetStageConfig(stageId).Type
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetNodeResType(stageId)
|
||||
return GetStageConfig(stageId).ResType
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetFightStageId(stageId)
|
||||
return GetStageConfig(stageId).FightStageId
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetShowRewardId(stageId)
|
||||
return GetStageConfig(stageId).ShowRewardId
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetUseActionPoint(stageId)
|
||||
return GetStageConfig(stageId).UseActionPoint
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetGroupLevelBorder(groupId)
|
||||
local config = GetLevelGroupConfig(groupId)
|
||||
return config.MinLevel, config.MaxLevel
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetDiffName(groupId, diff)
|
||||
local config = GetGroupDiffConfig(groupId, diff)
|
||||
return config.Name
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetDiffIcon(groupId, diff)
|
||||
local config = GetGroupDiffConfig(groupId, diff)
|
||||
return config.Icon
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetDiffUpNum(groupId, diff)
|
||||
return GetGroupDiffConfig(groupId, diff).UpNum
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetDiffKeepNum(groupId, diff)
|
||||
local joinNum = GetGroupDiffConfig(groupId, diff).JoinNum
|
||||
local upNum = XFubenInfestorExploreConfigs.GetDiffUpNum(groupId, diff)
|
||||
local downNum = XFubenInfestorExploreConfigs.GetDiffDownNum(groupId, diff)
|
||||
return joinNum - upNum - downNum
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetDiffDownNum(groupId, diff)
|
||||
return GetGroupDiffConfig(groupId, diff).DownNum
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetDiffShowScoreGap(groupId, diff)
|
||||
return GetGroupDiffConfig(groupId, diff).ShowScoreGap
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetDiffShowScoreLimit(groupId, diff)
|
||||
return GetGroupDiffConfig(groupId, diff).ShowScoreLimit
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetNodeTypeIcon(nodeResType)
|
||||
return GetNodeTypeConfig(nodeResType).Icon
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetNodeTypeStageBg(nodeResType)
|
||||
return GetNodeTypeConfig(nodeResType).StageBg
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetMapConfig(chapterId)
|
||||
local mapId = XFubenInfestorExploreConfigs.GetMapId(chapterId)
|
||||
return MapTemplates[mapId]
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetFogDepth(nodeType)
|
||||
return FogDepthDic[nodeType] or 0
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetEventPoolId(stageId)
|
||||
return GetStageConfig(stageId).EventPoolId
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetEventPoolName(poolId)
|
||||
return GetEventPoolConfig(poolId).Name
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetEventPoolDes(poolId)
|
||||
return GetEventPoolConfig(poolId).Description
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetEventPoolBtnName(poolId)
|
||||
return GetEventPoolConfig(poolId).BtnName
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetEventPoolMultiOptionEventIds(poolId, index)
|
||||
local eventIds = {}
|
||||
|
||||
local multiOptions = GetEventPoolMultiOptions(poolId)
|
||||
local multiOption = multiOptions[index]
|
||||
for _, eventId in pairs(multiOption) do
|
||||
tableInsert(eventIds, eventId)
|
||||
end
|
||||
|
||||
return eventIds
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetEventPoolMultiOptionDesList(poolId, index)
|
||||
local desList = {}
|
||||
|
||||
local multiOption = XFubenInfestorExploreConfigs.GetEventPoolMultiOptionEventIds(poolId, index)
|
||||
for _, eventId in pairs(multiOption) do
|
||||
tableInsert(desList, XFubenInfestorExploreConfigs.GetEventDes(eventId))
|
||||
end
|
||||
|
||||
return desList
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetEventDes(eventId)
|
||||
return GetEventConfig(eventId).Description
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetEventName(eventId)
|
||||
return GetEventConfig(eventId).Name
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetEventIcon(eventId)
|
||||
return GetEventConfig(eventId).Icon
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetEventQuality(eventId)
|
||||
return GetEventConfig(eventId).Quality
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetEventQualityIcon(eventId)
|
||||
return QualityIconPath[XFubenInfestorExploreConfigs.GetEventQuality(eventId)]
|
||||
end
|
||||
|
||||
|
||||
local RankNotRegionText = {
|
||||
[XFubenInfestorExploreConfigs.Region.UpRegion] = CSXTextManagerGetText("ArenaActivityNotUpRegionDesc"),
|
||||
[XFubenInfestorExploreConfigs.Region.KeepRegion] = CSXTextManagerGetText("ArenaActivityNotKeepRegionDesc"),
|
||||
[XFubenInfestorExploreConfigs.Region.DownRegion] = CSXTextManagerGetText("ArenaActivityNotDownRegionDesc"),
|
||||
}
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetRankNotRegionDescText(rankRegion)
|
||||
return RankNotRegionText[rankRegion]
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetRankRegionName(rankRegion)
|
||||
if rankRegion == XFubenInfestorExploreConfigs.Region.UpRegion then
|
||||
return CSXTextManagerGetText("ArenaActivityUpRegion")
|
||||
elseif rankRegion == XFubenInfestorExploreConfigs.Region.KeepRegion then
|
||||
return CSXTextManagerGetText("ArenaActivityKeepRegion")
|
||||
elseif rankRegion == XFubenInfestorExploreConfigs.Region.DownRegion then
|
||||
return CSXTextManagerGetText("ArenaActivityDownRegion")
|
||||
else
|
||||
XLog.Error("XFubenInfestorExploreConfigs.GetRankRegionName Error: 配置找不到, rankRegion" .. rankRegion)
|
||||
end
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetRankRegionDescText(groupId, diff, rankRegion)
|
||||
local config = GetGroupDiffConfig(groupId, diff)
|
||||
if rankRegion == XFubenInfestorExploreConfigs.Region.UpRegion then
|
||||
return CSXTextManagerGetText("ArenaActivityUpRegionDesc", 1, config.UpNum)
|
||||
elseif rankRegion == XFubenInfestorExploreConfigs.Region.DownRegion then
|
||||
return CSXTextManagerGetText("ArenaActivityDownRegionDesc", config.JoinNum - config.DownNum + 1, config.JoinNum)
|
||||
elseif rankRegion == XFubenInfestorExploreConfigs.Region.KeepRegion then
|
||||
return CSXTextManagerGetText("ArenaActivityKeepRegionDesc", config.UpNum + 1, config.JoinNum - config.DownNum)
|
||||
else
|
||||
XLog.Error("XFubenInfestorExploreConfigs.GetRankRegionDescText Error: 配置找不到, groupId: " .. groupId .. ", diff: " .. diff .. ", rankRegion" .. rankRegion)
|
||||
end
|
||||
end
|
||||
|
||||
local RankRegionColorText = {
|
||||
[XFubenInfestorExploreConfigs.Region.UpRegion] = CSXTextManagerGetText("ArenaActivityUpRegionColor"),
|
||||
[XFubenInfestorExploreConfigs.Region.KeepRegion] = CSXTextManagerGetText("ArenaActivityKeepRegionColor"),
|
||||
[XFubenInfestorExploreConfigs.Region.DownRegion] = CSXTextManagerGetText("ArenaActivityDownRegionColor"),
|
||||
}
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetRankRegionColorText(rankRegion)
|
||||
return RankRegionColorText[rankRegion]
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetRankRegionMailId(groupId, diff, rankRegion)
|
||||
local config = GetGroupDiffConfig(groupId, diff)
|
||||
if rankRegion == XFubenInfestorExploreConfigs.Region.UpRegion then
|
||||
return config.UpMailId
|
||||
elseif rankRegion == XFubenInfestorExploreConfigs.Region.DownRegion then
|
||||
return config.DownMailId
|
||||
else
|
||||
return config.KeepMailId
|
||||
end
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetCoreIcon(coreId)
|
||||
return GetCoreConfig(coreId).Icon
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetCoreQuality(coreId)
|
||||
return GetCoreConfig(coreId).Quality
|
||||
end
|
||||
|
||||
--获得等级
|
||||
function XFubenInfestorExploreConfigs.GetCoreQualityIcon(coreId)
|
||||
return QualityIconPath[XFubenInfestorExploreConfigs.GetCoreQuality(coreId)]
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetCoreMaxLevel(coreId)
|
||||
return GetCoreConfig(coreId).MaxLevel
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetCoreName(coreId)
|
||||
return GetCoreConfig(coreId).Name
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetCoreLevelDes(coreId, level)
|
||||
return GetCoreLevelConfig(coreId, level).Description
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetCoreDecomposeMoney(coreId, level)
|
||||
return GetCoreLevelConfig(coreId, level).DecomposeMoney
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetSupplyRewardDesTotalNum()
|
||||
return #SupplyRewardTemplate
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetSupplyRewardDes(index)
|
||||
return SupplyRewardTemplate[index].Description or ""
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetShopRefreshCost(shopId)
|
||||
return GetShopConfig(shopId).RefreshCost
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetGoodsCost(goodsId)
|
||||
return GetShopGoodsConfig(goodsId).Cost
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetGoodsCoreId(goodsId)
|
||||
return GetShopGoodsConfig(goodsId).CoreId
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetGoodsCoreLevel(goodsId)
|
||||
return GetShopGoodsConfig(goodsId).CoreLevel
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetGoodsLimitCount(goodsId)
|
||||
return GetShopGoodsConfig(goodsId).LimitCount or 0
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetGoodsName(goodsId)
|
||||
local coreId = XFubenInfestorExploreConfigs.GetGoodsCoreId(goodsId)
|
||||
return XFubenInfestorExploreConfigs.GetCoreName(coreId)
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetRewardCoreId(rewardId)
|
||||
return GetRewardConfig(rewardId).CoreId
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetRewardCoreLevel(rewardId)
|
||||
return GetRewardConfig(rewardId).CoreLevel
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetEventGoodsCost(eventId)
|
||||
return GetEventGoodsConfig(eventId).Cost
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetFightRewardCost(buyTimes)
|
||||
return GetFightRewardCostConfig(buyTimes).Cost
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetActivityConfigs()
|
||||
return ActivityTemplate
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetChapter2StageIds(activityId)
|
||||
return GetActivityConfig(activityId).BossStageId
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetOutPostDesPoolIds(key)
|
||||
return GetOutPostDesConfig(key).PoolId
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetScoreRuleConfig(stageId)
|
||||
return GetScoreRuleConfig(stageId)
|
||||
end
|
||||
|
||||
local RandomInterver = 0
|
||||
function XFubenInfestorExploreConfigs.GetRandomOutPostDes(poolId)
|
||||
local desList = GetOutPostDesPoolDesList(poolId)
|
||||
|
||||
local totalDesNum = #desList
|
||||
RandomInterver = RandomInterver + 100
|
||||
math.randomseed(os.time() + RandomInterver)
|
||||
local ret = math.random(totalDesNum)
|
||||
|
||||
return desList[ret]
|
||||
end
|
||||
|
||||
function XFubenInfestorExploreConfigs.GetEventTypeTipContent(eventType, eventArgs)
|
||||
local des = GetEventTypeConfig(eventType).Description
|
||||
|
||||
if eventType == XFubenInfestorExploreConfigs.EventType.LostCore then
|
||||
local coreId = eventArgs and eventArgs[1]
|
||||
if not XDataCenter.FubenInfestorExploreManager.IsHaveCore(coreId) then
|
||||
return GetEventTypeConfig(eventType).DescriptionEmpty
|
||||
end
|
||||
local coreName = XFubenInfestorExploreConfigs.GetCoreName(coreId)
|
||||
return stringFormat(des, coreName)
|
||||
elseif eventType == XFubenInfestorExploreConfigs.EventType.ChangeTeamHpPer then
|
||||
local hpPer = tableUnpack(eventArgs)
|
||||
if hpPer < 0 then
|
||||
des = GetEventTypeConfig(eventType).DescriptionRevert
|
||||
hpPer = -hpPer
|
||||
end
|
||||
return stringFormat(des, hpPer)
|
||||
elseif eventType == XFubenInfestorExploreConfigs.EventType.ChangeCharacterHpPer then
|
||||
local hpPer, characterId = tableUnpack(eventArgs)
|
||||
local characterName = XCharacterConfigs.GetCharacterFullNameStr(characterId)
|
||||
if hpPer < 0 then
|
||||
hpPer = -hpPer
|
||||
des = GetEventTypeConfig(eventType).DescriptionRevert
|
||||
end
|
||||
return stringFormat(des, characterName, hpPer)
|
||||
elseif eventType == XFubenInfestorExploreConfigs.EventType.ChangeMoneyPer
|
||||
or eventType == XFubenInfestorExploreConfigs.EventType.ChangeMoney
|
||||
or eventType == XFubenInfestorExploreConfigs.EventType.ChangeMoneyRandom then
|
||||
local addMoney = eventArgs and eventArgs[1]
|
||||
if not addMoney or addMoney == 0 then
|
||||
des = GetEventTypeConfig(eventType).DescriptionEmpty
|
||||
return stringFormat(des, 0)
|
||||
end
|
||||
if addMoney < 0 then
|
||||
addMoney = -addMoney
|
||||
if XDataCenter.FubenInfestorExploreManager.IsMoneyEmpty() then
|
||||
des = GetEventTypeConfig(eventType).DescriptionEmpty
|
||||
local oldMoney = XDataCenter.FubenInfestorExploreManager.GetOldMoneyCount()
|
||||
return stringFormat(des, oldMoney)
|
||||
end
|
||||
des = GetEventTypeConfig(eventType).DescriptionRevert
|
||||
end
|
||||
return stringFormat(des, addMoney)
|
||||
elseif eventType == XFubenInfestorExploreConfigs.EventType.ChangeActionPoint then
|
||||
local addActionPoint = eventArgs and eventArgs[1]
|
||||
if not addActionPoint or addActionPoint == 0 then
|
||||
return GetEventTypeConfig(eventType).DescriptionEmpty
|
||||
end
|
||||
if addActionPoint < 0 then
|
||||
addActionPoint = -addActionPoint
|
||||
if XDataCenter.FubenInfestorExploreManager.IsActionPointEmpty() then
|
||||
return GetEventTypeConfig(eventType).DescriptionEmpty
|
||||
end
|
||||
des = GetEventTypeConfig(eventType).DescriptionRevert
|
||||
end
|
||||
return stringFormat(des, addActionPoint)
|
||||
elseif eventType == XFubenInfestorExploreConfigs.EventType.AddBuff then
|
||||
local buffId = eventArgs and eventArgs[1]
|
||||
if buffId then
|
||||
local buffName = XFubenInfestorExploreConfigs.GetBuffName(buffId)
|
||||
return stringFormat(des, buffName)
|
||||
end
|
||||
elseif eventType == XFubenInfestorExploreConfigs.EventType.RemoveBuff then
|
||||
local buffIds = eventArgs
|
||||
if not buffIds then
|
||||
return GetEventTypeConfig(eventType).DescriptionEmpty
|
||||
end
|
||||
for _, buffId in pairs(buffIds) do
|
||||
if XDataCenter.FubenInfestorExploreManager.CheckBuffExsit(buffIds) then
|
||||
return des
|
||||
end
|
||||
end
|
||||
elseif eventType == XFubenInfestorExploreConfigs.EventType.LevelUpCore then
|
||||
if not eventArgs then
|
||||
if XDataCenter.FubenInfestorExploreManager.IsHaveOnceCore() then
|
||||
return GetEventTypeConfig(eventType).DescriptionRevert
|
||||
else
|
||||
return GetEventTypeConfig(eventType).DescriptionEmpty
|
||||
end
|
||||
end
|
||||
return ""
|
||||
end
|
||||
|
||||
return stringFormat(des, tableUnpack(eventArgs))
|
||||
end
|
||||
|
||||
--判断奖励的等级
|
||||
function XFubenInfestorExploreConfigs.IsPrecious(quality)
|
||||
if quality >= QualityLevel.Gold then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
XFubenInfestorExploreConfigs.GetGroupDiffConfigs = GetGroupDiffConfigs
|
72
Resources/Scripts/XConfig/XFubenMainLineConfigs.lua
Normal file
72
Resources/Scripts/XConfig/XFubenMainLineConfigs.lua
Normal file
|
@ -0,0 +1,72 @@
|
|||
XFubenMainLineConfigs = XFubenMainLineConfigs or {}
|
||||
|
||||
local TABLE_CHAPTER_MAIN = "Share/Fuben/MainLine/ChapterMain.tab"
|
||||
local TABLE_CHAPTER = "Share/Fuben/MainLine/Chapter.tab"
|
||||
local TABLE_TREASURE = "Share/Fuben/MainLine/Treasure.tab"
|
||||
local TABLE_EXPLOREGROUP = "Client/Fuben/MainLine/ExploreGroup.tab"
|
||||
local TABLE_EXPLOREITEM = "Client/Fuben/MainLine/ExploreItem.tab"
|
||||
|
||||
local ChapterMainTemplates = {}
|
||||
local ChapterCfg = {}
|
||||
local TreasureCfg = {}
|
||||
local ExploreGroupCfg = {}
|
||||
local ExploreItemCfg = {}
|
||||
|
||||
function XFubenMainLineConfigs.Init()
|
||||
ChapterMainTemplates = XTableManager.ReadByIntKey(TABLE_CHAPTER_MAIN, XTable.XTableChapterMain, "Id")
|
||||
ChapterCfg = XTableManager.ReadByIntKey(TABLE_CHAPTER, XTable.XTableChapter, "ChapterId")
|
||||
TreasureCfg = XTableManager.ReadByIntKey(TABLE_TREASURE, XTable.XTableTreasure, "TreasureId")
|
||||
ExploreGroupCfg = XTableManager.ReadByIntKey(TABLE_EXPLOREGROUP, XTable.XTableMainLineExploreGroup, "Id")
|
||||
ExploreItemCfg = XTableManager.ReadByIntKey(TABLE_EXPLOREITEM, XTable.XTableMainLineExploreItem, "Id")
|
||||
end
|
||||
|
||||
function XFubenMainLineConfigs.GetChapterMainTemplates()
|
||||
return ChapterMainTemplates
|
||||
end
|
||||
|
||||
function XFubenMainLineConfigs.GetChapterCfg()
|
||||
return ChapterCfg
|
||||
end
|
||||
|
||||
function XFubenMainLineConfigs.GetTreasureCfg()
|
||||
return TreasureCfg
|
||||
end
|
||||
|
||||
function XFubenMainLineConfigs.GetExploreGroupCfg()
|
||||
return ExploreGroupCfg
|
||||
end
|
||||
|
||||
function XFubenMainLineConfigs.GetExploreItemCfg()
|
||||
return ExploreItemCfg
|
||||
end
|
||||
|
||||
function XFubenMainLineConfigs.GetExploreItemCfgById(id)
|
||||
return ExploreItemCfg[id]
|
||||
end
|
||||
|
||||
---
|
||||
--- 根据'chapterMainId'获取章节的周目Id
|
||||
---@param chapterMainId number
|
||||
---@return number
|
||||
function XFubenMainLineConfigs.GetZhouMuId(chapterMainId)
|
||||
if (ChapterMainTemplates or {})[chapterMainId] == nil then
|
||||
XLog.ErrorTableDataNotFound("XFubenMainLineConfigs.GetZhouMuId",
|
||||
"主线章节", TABLE_CHAPTER_MAIN, "Id", tostring(chapterMainId))
|
||||
return
|
||||
end
|
||||
return ChapterMainTemplates[chapterMainId].ZhouMuId
|
||||
end
|
||||
|
||||
local GetChapterMainConfig = function(id)
|
||||
local config = ChapterMainTemplates[id]
|
||||
if not config then
|
||||
XLog.Error("XTRPGConfigs GetChapterMainConfig error:配置不存在, Id: " .. id .. ", 配置路径: " .. TABLE_CHAPTER_MAIN)
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
function XFubenMainLineConfigs.GetChapterMainChapterEn(id)
|
||||
local config = GetChapterMainConfig(id)
|
||||
return config.ChapterEn
|
||||
end
|
116
Resources/Scripts/XConfig/XFubenNewCharConfig.lua
Normal file
116
Resources/Scripts/XConfig/XFubenNewCharConfig.lua
Normal file
|
@ -0,0 +1,116 @@
|
|||
XFubenNewCharConfig = XFubenNewCharConfig or {}
|
||||
|
||||
local SHARE_NEWCHAR_TEACH = "Share/Fuben/Teaching/TeachingActivity.tab"
|
||||
local SHARE_NEWCHAR_TREASURE = "Share/Fuben/Teaching/TeachingTreasure.tab"
|
||||
local CLIENT_CHARMSG = "Client/Fuben/Teaching/CharActiveMsg.tab"
|
||||
local SHARE_STAGE_DETAIL = "Share/Fuben/Teaching/TeachingRobot.tab"
|
||||
|
||||
local NewCharTeachAct = {}
|
||||
local NewCharTreasure = {}
|
||||
local NewCharMsg = {}
|
||||
local NewCharMsgGroup = {}
|
||||
local NewCharStageDetail = {}
|
||||
|
||||
XFubenNewCharConfig.NewCharType =
|
||||
{
|
||||
YinMianZheGuang = 1,
|
||||
KoroChar = 2,
|
||||
WeiLa = 3,
|
||||
}
|
||||
|
||||
XFubenNewCharConfig.KoroPanelType =
|
||||
{
|
||||
Normal = 1,
|
||||
Teaching = 2,
|
||||
Challenge = 3,
|
||||
}
|
||||
|
||||
function XFubenNewCharConfig.Init()
|
||||
NewCharTeachAct = XTableManager.ReadByIntKey(SHARE_NEWCHAR_TEACH, XTable.XTableTeachingActivity, "Id")
|
||||
NewCharTreasure = XTableManager.ReadByIntKey(SHARE_NEWCHAR_TREASURE, XTable.XTableTeachingTreasure, "TreasureId")
|
||||
NewCharMsg = XTableManager.ReadByIntKey(CLIENT_CHARMSG, XTable.XTableCharActiveMsg, "Id")
|
||||
NewCharStageDetail = XTableManager.ReadByIntKey(SHARE_STAGE_DETAIL, XTable.XTableTeachingRobot, "StageId")
|
||||
for _, v in pairs(NewCharMsg) do
|
||||
NewCharMsgGroup[v.ActId] = NewCharMsgGroup[v.ActId] or {}
|
||||
local grp = NewCharMsgGroup[v.ActId]
|
||||
table.insert(grp, v)
|
||||
end
|
||||
|
||||
for _, v in pairs(NewCharMsgGroup) do
|
||||
table.sort(v, function(a, b)
|
||||
if a.Order ~= b.Order then
|
||||
return a.Order < b.Order
|
||||
end
|
||||
|
||||
return a.Id < b.Id
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
function XFubenNewCharConfig.GetDataById(id)
|
||||
local template = NewCharTeachAct[id]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XFubenNewCharConfig.GetDataById", "TeachingActivity", SHARE_NEWCHAR_TEACH, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return template
|
||||
end
|
||||
|
||||
function XFubenNewCharConfig.GetActTemplates()
|
||||
return NewCharTeachAct
|
||||
end
|
||||
|
||||
function XFubenNewCharConfig.GetMsgGroupById(id)
|
||||
local group = NewCharMsgGroup[id]
|
||||
if not group then
|
||||
XLog.ErrorTableDataNotFound("XFubenNewCharConfig.GetMsgGroupById", "CharActiveMsg", CLIENT_CHARMSG, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return group
|
||||
end
|
||||
|
||||
function XFubenNewCharConfig.GetTreasureCfg(treasureId)
|
||||
return NewCharTreasure[treasureId]
|
||||
end
|
||||
|
||||
function XFubenNewCharConfig.GetActivityTime(id)
|
||||
local config = XFubenNewCharConfig.GetDataById(id)
|
||||
return XFunctionManager.GetTimeByTimeId(config.TimeId)
|
||||
end
|
||||
|
||||
function XFubenNewCharConfig.GetNewCharType(id)
|
||||
local config = NewCharTeachAct[id]
|
||||
return config.NewCharType
|
||||
end
|
||||
|
||||
--获取详情描述
|
||||
function XFubenNewCharConfig.GetNewCharDescDetail(id)
|
||||
local config = NewCharStageDetail[id]
|
||||
return string.gsub(config.DescDetail, "\\n", "\n")
|
||||
end
|
||||
|
||||
function XFubenNewCharConfig.GetNewCharShowFightEventIds(id)
|
||||
local config = NewCharStageDetail[id]
|
||||
return config.ShowFightEventIds
|
||||
end
|
||||
|
||||
function XFubenNewCharConfig.GetNewCharKoroCfg()
|
||||
local cfg = nil
|
||||
|
||||
if NewCharTeachAct then
|
||||
for _, v in pairs(NewCharTeachAct) do
|
||||
if v.NewCharType == XFubenNewCharConfig.NewCharType.KoroChar then
|
||||
cfg = v
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return cfg
|
||||
end
|
||||
|
||||
--获取试用角色
|
||||
function XFubenNewCharConfig:GetTryCharacterIds(id)
|
||||
local config = NewCharStageDetail[id]
|
||||
return config.RobotId
|
||||
end
|
113
Resources/Scripts/XConfig/XFubenRepeatChallengeConfigs.lua
Normal file
113
Resources/Scripts/XConfig/XFubenRepeatChallengeConfigs.lua
Normal file
|
@ -0,0 +1,113 @@
|
|||
local TABLE_ACTIVITY_PATH = "Share/Fuben/RepeatChallenge/RepeatChallengeActivity.tab"
|
||||
local TABLE_CHAPTER_PATH = "Share/Fuben/RepeatChallenge/RepeatChallengeChapter.tab"
|
||||
local TABLE_STAGE_PATH = "Share/Fuben/RepeatChallenge/RepeatChallengeStage.tab"
|
||||
local TABLE_LEVEL_PATH = "Share/Fuben/RepeatChallenge/RepeatChallengeLevel.tab"
|
||||
local TABLE_REWARD_PATH = "Share/Fuben/RepeatChallenge/RepeatChallengeReward.tab"
|
||||
|
||||
local pairs = pairs
|
||||
|
||||
local RepeatChallengeActivityTemplates = {}
|
||||
local RepeatChallengeChapterTemplates = {}
|
||||
local RepeatChallengeStageTemplates = {}
|
||||
local RepeatChallengeLevelTemplates = {}
|
||||
local RepeatChallengeRewardTemplates = {}
|
||||
|
||||
local DefaultActivityId = 0
|
||||
local StageIdToChapterIdDic = {}
|
||||
|
||||
XFubenRepeatChallengeConfigs = XFubenRepeatChallengeConfigs or {}
|
||||
|
||||
function XFubenRepeatChallengeConfigs.Init()
|
||||
RepeatChallengeActivityTemplates = XTableManager.ReadByIntKey(TABLE_ACTIVITY_PATH, XTable.XTableRepeatChallengeActivity, "Id")
|
||||
RepeatChallengeChapterTemplates = XTableManager.ReadByIntKey(TABLE_CHAPTER_PATH, XTable.XTableRepeatChallengeChapter, "Id")
|
||||
RepeatChallengeStageTemplates = XTableManager.ReadByIntKey(TABLE_STAGE_PATH, XTable.XTableRepeatChallengeStage, "Id")
|
||||
RepeatChallengeLevelTemplates = XTableManager.ReadByIntKey(TABLE_LEVEL_PATH, XTable.XTableRepeatChallengeLevel, "Id")
|
||||
RepeatChallengeRewardTemplates = XTableManager.ReadByIntKey(TABLE_REWARD_PATH, XTable.XTableRepeatChallengeReward, "Id")
|
||||
|
||||
for activityId, config in pairs(RepeatChallengeActivityTemplates) do
|
||||
if XTool.IsNumberValid(config.ActivityTimeId) then
|
||||
if DefaultActivityId == 0 or DefaultActivityId < activityId then
|
||||
DefaultActivityId = activityId
|
||||
end
|
||||
end
|
||||
DefaultActivityId = activityId--若全部过期,取最后一行配置作为默认下次开启的活动ID
|
||||
end
|
||||
for chapterId, chapterCfg in pairs(RepeatChallengeChapterTemplates) do
|
||||
for _, stageId in pairs(chapterCfg.StageId) do
|
||||
StageIdToChapterIdDic[stageId] = chapterId
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function XFubenRepeatChallengeConfigs.GetChapterCfgs()
|
||||
return RepeatChallengeChapterTemplates
|
||||
end
|
||||
|
||||
function XFubenRepeatChallengeConfigs.GetChapterCfgPath()
|
||||
return TABLE_CHAPTER_PATH
|
||||
end
|
||||
|
||||
function XFubenRepeatChallengeConfigs.GetChapterCfg(chapterId)
|
||||
local chapterCfg = RepeatChallengeChapterTemplates[chapterId]
|
||||
if not chapterCfg then
|
||||
XLog.ErrorTableDataNotFound("XFubenRepeatChallengeConfigs.GetChapterCfg",
|
||||
"RepeatChallengeChapter", TABLE_CHAPTER_PATH, "chapterId", tostring(chapterId))
|
||||
return
|
||||
end
|
||||
return chapterCfg
|
||||
end
|
||||
|
||||
function XFubenRepeatChallengeConfigs.GetActivityConfig(activityId)
|
||||
local activityCfg = RepeatChallengeActivityTemplates[activityId]
|
||||
if not activityCfg then
|
||||
XLog.ErrorTableDataNotFound("XFubenRepeatChallengeConfigs.GetActivityConfig",
|
||||
"RepeatChallengeActivity", TABLE_ACTIVITY_PATH, "activityId", tostring(activityId))
|
||||
return
|
||||
end
|
||||
return activityCfg
|
||||
end
|
||||
|
||||
function XFubenRepeatChallengeConfigs.GetLevelConfigs()
|
||||
return RepeatChallengeLevelTemplates
|
||||
end
|
||||
|
||||
function XFubenRepeatChallengeConfigs.GetMaxLevel()
|
||||
return #RepeatChallengeLevelTemplates
|
||||
end
|
||||
|
||||
function XFubenRepeatChallengeConfigs.GetLevelConfig(level)
|
||||
local activityCfg = RepeatChallengeLevelTemplates[level]
|
||||
if not activityCfg then
|
||||
XLog.ErrorTableDataNotFound("XFubenRepeatChallengeConfigs.GetLevelConfig", "RepeatChallengeLevel", TABLE_LEVEL_PATH, "level", tostring(level))
|
||||
return
|
||||
end
|
||||
return activityCfg
|
||||
end
|
||||
|
||||
function XFubenRepeatChallengeConfigs.GetStageConfig(stageId)
|
||||
local activityCfg = RepeatChallengeStageTemplates[stageId]
|
||||
if not activityCfg then
|
||||
XLog.ErrorTableDataNotFound("XFubenRepeatChallengeConfigs.GetStageConfig",
|
||||
"RepeatChallengeStage", TABLE_STAGE_PATH, "stageId", tostring(stageId))
|
||||
return
|
||||
end
|
||||
return activityCfg
|
||||
end
|
||||
|
||||
function XFubenRepeatChallengeConfigs.GetChapterRewardConfig(chapterId)
|
||||
local activityCfg = RepeatChallengeRewardTemplates[chapterId]
|
||||
if not activityCfg then
|
||||
XLog.ErrorTableDataNotFound("XFubenRepeatChallengeConfigs.GetChapterRewardConfig",
|
||||
"RepeatChallengeReward", TABLE_REWARD_PATH, "chapterId", tostring(chapterId))
|
||||
return
|
||||
end
|
||||
return activityCfg
|
||||
end
|
||||
|
||||
function XFubenRepeatChallengeConfigs.GetDefaultActivityId()
|
||||
return DefaultActivityId
|
||||
end
|
||||
|
||||
function XFubenRepeatChallengeConfigs.GetChapterIdByStageId(stageId)
|
||||
return StageIdToChapterIdDic[stageId]
|
||||
end
|
610
Resources/Scripts/XConfig/XFubenRogueLikeConfig.lua
Normal file
610
Resources/Scripts/XConfig/XFubenRogueLikeConfig.lua
Normal file
|
@ -0,0 +1,610 @@
|
|||
XFubenRogueLikeConfig = XFubenRogueLikeConfig or {}
|
||||
|
||||
local CLIENT_ROGUELIKE_ACTIVITY = "Client/Fuben/RogueLike/RogueLikeActivityDetails.tab"
|
||||
local CLIENT_ROGUELIKE_Buff = "Client/Fuben/RogueLike/RogueLikeBuffDetails.tab"
|
||||
|
||||
local CLIENT_ROGUELIKE_TIER_SECTION = "Client/Fuben/RogueLike/RogueLikeTierSectionDetails.tab"
|
||||
local CLIENT_ROGUELIKE_TIER_SPECIALEVENT = "Client/Fuben/RogueLike/RogueLikeSpecialEventDetails.tab"
|
||||
local CLIENT_ROGUELIKE_SUPPORTSTATION = "Client/Fuben/RogueLike/RogueLikeSupportStationDetails.tab"
|
||||
local CLIENT_ROGUELIKE_SPECIALEVENTGROUPITEM = "Client/Fuben/RogueLike/RogueLikeSpecialEventGroupItem.tab"
|
||||
local CLIENT_ROGUELIKE_SPECIALEVENTGROUPDETAIL = "Client/Fuben/RogueLike/RogueLikeSpecialEventGroupDetails.tab"
|
||||
local CLIENT_ROGUELIKE_SCORE_DETAIL = "Client/Fuben/RogueLike/RogueLikePurgatoryScoreDesDetail.tab"
|
||||
|
||||
local SHARE_ROGUELIKE_ACTIVITY = "Share/Fuben/RogueLike/RogueLikeActivity.tab"
|
||||
local SHARE_ROGUELIKE_BOX = "Share/Fuben/RogueLike/RogueLikeBox.tab"
|
||||
local SHARE_ROGUELIKE_BUFF = "Share/Fuben/RogueLike/RogueLikeBuff.tab"
|
||||
local SHARE_ROGUELIKE_EVENT = "Share/Fuben/RogueLike/RogueLikeEvent.tab"
|
||||
local SHARE_ROGUELIKE_NODE = "Share/Fuben/RogueLike/RogueLikeNode.tab"
|
||||
local SHARE_ROGUELIKE_ROBOT = "Share/Fuben/RogueLike/RogueLikeRobot.tab"
|
||||
local SHARE_ROGUELIKE_SHOP = "Share/Fuben/RogueLike/RogueLikeShop.tab"
|
||||
local SHARE_ROGUELIKE_SHOPITEM = "Share/Fuben/RogueLike/RogueLikeShopItem.tab"
|
||||
local SHARE_ROGUELIKE_TIER = "Share/Fuben/RogueLike/RogueLikeTier.tab"
|
||||
local SHARE_ROGUELIKE_TIER_SECTION = "Share/Fuben/RogueLike/RogueLikeTierSection.tab"
|
||||
local SHARE_ROGUELIKE_RECOVER = "Share/Fuben/RogueLike/RogueLikeRecover.tab"
|
||||
local SHARE_ROGUELIKE_SPECIALEVENT = "Share/Fuben/RogueLike/RogueLikeSpecialEvent.tab"
|
||||
local SHARE_ROGUELIKE_TEAMEFFECT = "Share/Fuben/RogueLike/RogueLikeTeamEffect.tab"
|
||||
local SHARE_ROGUELIKE_SUPPORTSTATION = "Share/Fuben/RogueLike/RogueLikeSupportStation.tab"
|
||||
local SHARE_ROGUELIKE_SPECIALEVENTGROUP = "Share/Fuben/RogueLike/RogueLikeSpecialEventGroup.tab"
|
||||
local SHARE_ROGUELIKE_NODE_DETAILS = "Share/Fuben/RogueLike/RogueLikeNodeDetails.tab"
|
||||
|
||||
|
||||
|
||||
local ActivityConfig = {}
|
||||
local BuffConfig = {}
|
||||
local NodeConfig = {}
|
||||
local TierSectionConfig = {}
|
||||
local SpecialEventConfig = {}
|
||||
local SupportStationConfig = {}
|
||||
local SpecialEventGroupDetailsConfig = {}
|
||||
local SpecialEventGroupItemConfig = {}
|
||||
|
||||
local RogueLikeActivity = {}
|
||||
local RogueLikeBox = {}
|
||||
local RogueLikeBuff = {}
|
||||
local RogueLikeEvent = {}
|
||||
local RogueLikeNode = {}
|
||||
local RogueLikeRobot = {}
|
||||
local RogueLikeShop = {}
|
||||
local RogueLikeShopItem = {}
|
||||
local RogueLikeTier = {}
|
||||
local RogueLikeTierSection = {}
|
||||
local RogueLikeRecover = {}
|
||||
local RogueLikeSpecialEvent = {}
|
||||
local RogueLikeTeamEffect = {}
|
||||
local RogueLikeSupportStation = {}
|
||||
local RogueLikeSpecialEventGroup = {}
|
||||
local RogueLikePurgatoryScoreDesConfig = {}
|
||||
|
||||
local Section2GroupMap = {}
|
||||
local Group2TierMap = {}
|
||||
|
||||
local Group2NodeMap = {}
|
||||
local NodeIndexMap = {}
|
||||
|
||||
XFubenRogueLikeConfig.TEAM_NUMBER = CS.XGame.ClientConfig:GetInt("RogueLikeTeamMemberCount")
|
||||
XFubenRogueLikeConfig.UNKNOW_ROBOT = CS.XGame.ClientConfig:GetString("RogueLikeUnknowRobot")
|
||||
|
||||
XFubenRogueLikeConfig.NORMAL_NODE = CS.XGame.ClientConfig:GetString("RogueLikeNormalNode")
|
||||
XFubenRogueLikeConfig.BOSS_NODE = CS.XGame.ClientConfig:GetString("RogueLikeBossNode")
|
||||
|
||||
XFubenRogueLikeConfig.ChallengeCoin = CS.XGame.ClientConfig:GetInt("RogueLikeChallengeCoin")
|
||||
XFubenRogueLikeConfig.PumpkinCoin = CS.XGame.ClientConfig:GetInt("RogueLikePumpkinCoin")
|
||||
XFubenRogueLikeConfig.KeepsakeCoin = CS.XGame.ClientConfig:GetInt("RogueLikeKeepsakeCoin")
|
||||
|
||||
XFubenRogueLikeConfig.CHECK_LINES = CS.XGame.ClientConfig:GetInt("RogueLikeCheckLineSwitch")
|
||||
|
||||
XFubenRogueLikeConfig.KEY_PLAY_STORY = "KeyRogueLikePlayBeginStory"
|
||||
XFubenRogueLikeConfig.KEY_SHOW_TIPS = "KeyRogueLikeShowTips"
|
||||
|
||||
XFubenRogueLikeConfig.XRLNodeType = {
|
||||
Fight = 1, --战斗//不需要请求
|
||||
Box = 2, --宝箱//不需要请求
|
||||
Rest = 3, --休息//不需要请求
|
||||
Shop = 4, --商店//需要请求
|
||||
Event = 5, --事件//需要请求
|
||||
}
|
||||
|
||||
--这里是定义副本模式的枚举
|
||||
XFubenRogueLikeConfig.TierType = {
|
||||
Normal = 1, --普通
|
||||
Purgatory = 2, --试炼
|
||||
}
|
||||
-- 节点图标类型
|
||||
XFubenRogueLikeConfig.NodeTabBg = {
|
||||
[XFubenRogueLikeConfig.XRLNodeType.Fight] = CS.XGame.ClientConfig:GetString("RogueLikeTabFightNor"),
|
||||
[XFubenRogueLikeConfig.XRLNodeType.Box] = CS.XGame.ClientConfig:GetString("RogueLikeTabBox"),
|
||||
[XFubenRogueLikeConfig.XRLNodeType.Rest] = CS.XGame.ClientConfig:GetString("RogueLikeTabRest"),
|
||||
[XFubenRogueLikeConfig.XRLNodeType.Shop] = CS.XGame.ClientConfig:GetString("RogueLikeTabShop"),
|
||||
[XFubenRogueLikeConfig.XRLNodeType.Event] = CS.XGame.ClientConfig:GetString("RogueLikeTabEvent"),
|
||||
}
|
||||
XFubenRogueLikeConfig.NodeTabDisBg = {
|
||||
[XFubenRogueLikeConfig.XRLNodeType.Fight] = CS.XGame.ClientConfig:GetString("RogueLikeDisTabNor"),
|
||||
[XFubenRogueLikeConfig.XRLNodeType.Box] = CS.XGame.ClientConfig:GetString("RogueLikeDisTabBox"),
|
||||
[XFubenRogueLikeConfig.XRLNodeType.Rest] = CS.XGame.ClientConfig:GetString("RogueLikeDisTabRest"),
|
||||
[XFubenRogueLikeConfig.XRLNodeType.Shop] = CS.XGame.ClientConfig:GetString("RogueLikeDisTabShop"),
|
||||
[XFubenRogueLikeConfig.XRLNodeType.Event] = CS.XGame.ClientConfig:GetString("RogueLikeDisTabEvent"),
|
||||
}
|
||||
XFubenRogueLikeConfig.NodeFightType = {
|
||||
Normal = 1,
|
||||
Elite = 2,
|
||||
Boss = 3
|
||||
}
|
||||
XFubenRogueLikeConfig.NodeFightTabBg = {
|
||||
[XFubenRogueLikeConfig.NodeFightType.Normal] = CS.XGame.ClientConfig:GetString("RogueLikeTabFightNor"),
|
||||
[XFubenRogueLikeConfig.NodeFightType.Elite] = CS.XGame.ClientConfig:GetString("RogueLikeTabFightElite"),
|
||||
[XFubenRogueLikeConfig.NodeFightType.Boss] = CS.XGame.ClientConfig:GetString("RogueLikeTabFightBoss"),
|
||||
}
|
||||
XFubenRogueLikeConfig.NodeFightTabDisBg = {
|
||||
[XFubenRogueLikeConfig.NodeFightType.Normal] = CS.XGame.ClientConfig:GetString("RogueLikeDisTabNor"),
|
||||
[XFubenRogueLikeConfig.NodeFightType.Elite] = CS.XGame.ClientConfig:GetString("RogueLikeDisTabElite"),
|
||||
[XFubenRogueLikeConfig.NodeFightType.Boss] = CS.XGame.ClientConfig:GetString("RogueLikeDisTabBoss"),
|
||||
}
|
||||
|
||||
XFubenRogueLikeConfig.XRLBoxType = {
|
||||
Item = 1, --物品
|
||||
Buff = 2, --buff
|
||||
}
|
||||
|
||||
XFubenRogueLikeConfig.XRLShopItemType = {
|
||||
Item = 1,
|
||||
Buff = 2,
|
||||
Robot = 3,
|
||||
}
|
||||
|
||||
XFubenRogueLikeConfig.XRLEventType = {
|
||||
NormalNode = 1, --普通节点事件
|
||||
Other = 2, --其他事件
|
||||
}
|
||||
|
||||
XFubenRogueLikeConfig.XRLResetType = {
|
||||
Recover = 1, --恢复行动点
|
||||
IntensifyBuff = 2, --强化buff
|
||||
}
|
||||
|
||||
-- buff类型
|
||||
XFubenRogueLikeConfig.BuffType = {
|
||||
PositiveBuff = 1,
|
||||
NegativeBuff = 2
|
||||
}
|
||||
|
||||
-- 特殊事件结果类型
|
||||
XFubenRogueLikeConfig.SpecialResultType = {
|
||||
SingleEvent = 1,
|
||||
MultipleEvent = 2,
|
||||
}
|
||||
|
||||
-- 选择出站类型
|
||||
XFubenRogueLikeConfig.SelectCharacterType = {
|
||||
Character = 1,
|
||||
Robot = 2,
|
||||
}
|
||||
|
||||
XFubenRogueLikeConfig.XRLOtherEventType = {
|
||||
--获得buff
|
||||
AddBuff = 1, --测过
|
||||
--移除buff
|
||||
RemoveBuff = 2,
|
||||
--获得助战机器人
|
||||
AddRobot = 3, --测过
|
||||
--血量恢复
|
||||
AddHp = 4,
|
||||
--增加行动点
|
||||
AddActionPoint = 5, --测过
|
||||
--减少行动点
|
||||
ActionPoint = 6, --测过
|
||||
--获得物品
|
||||
GainItem = 7,
|
||||
--兑换物品
|
||||
ExchangeItem = 8,
|
||||
--消耗物品
|
||||
ConsumeItem = 9,
|
||||
-- 减少血量
|
||||
ReduceHp = 10,
|
||||
-- 获得物品(百分比)
|
||||
GainItemRate = 11,
|
||||
-- 消耗物品(百分比)
|
||||
ConsumeItemRate = 12,
|
||||
}
|
||||
|
||||
-- 休息点操作,回复行动点,强化buff,离开
|
||||
XFubenRogueLikeConfig.ClientRestCount = 3
|
||||
XFubenRogueLikeConfig.ClientRestClickType = {
|
||||
Recover = 1,
|
||||
IntensifyBuff = 2,
|
||||
Leave = 3,
|
||||
}
|
||||
XFubenRogueLikeConfig.ClientRestClickName = {
|
||||
[XFubenRogueLikeConfig.ClientRestClickType.Recover] = CS.XTextManager.GetText("RogueLikeAddActionPoint"),
|
||||
[XFubenRogueLikeConfig.ClientRestClickType.IntensifyBuff] = CS.XTextManager.GetText("RogueLikeIntensifyBuff"),
|
||||
[XFubenRogueLikeConfig.ClientRestClickType.Leave] = CS.XTextManager.GetText("RogueLikeRestLeave"),
|
||||
}
|
||||
|
||||
function XFubenRogueLikeConfig.Init()
|
||||
RogueLikeActivity = XTableManager.ReadByIntKey(SHARE_ROGUELIKE_ACTIVITY, XTable.XTableRogueLikeActivity, "Id")
|
||||
RogueLikeBox = XTableManager.ReadByIntKey(SHARE_ROGUELIKE_BOX, XTable.XTableRogueLikeBox, "Id")
|
||||
RogueLikeBuff = XTableManager.ReadByIntKey(SHARE_ROGUELIKE_BUFF, XTable.XTableRogueLikeBuff, "Id")
|
||||
RogueLikeEvent = XTableManager.ReadByIntKey(SHARE_ROGUELIKE_EVENT, XTable.XTableRogueLikeEvent, "Id")
|
||||
RogueLikeNode = XTableManager.ReadByIntKey(SHARE_ROGUELIKE_NODE, XTable.XTableRogueLikeNode, "Id")
|
||||
RogueLikeRobot = XTableManager.ReadByIntKey(SHARE_ROGUELIKE_ROBOT, XTable.XTableRogueLikeRobot, "Id")
|
||||
RogueLikeShop = XTableManager.ReadByIntKey(SHARE_ROGUELIKE_SHOP, XTable.XTableRogueLikeShop, "Id")
|
||||
RogueLikeShopItem = XTableManager.ReadByIntKey(SHARE_ROGUELIKE_SHOPITEM, XTable.XTableRogueLikeShopItem, "Id")
|
||||
RogueLikeTier = XTableManager.ReadByIntKey(SHARE_ROGUELIKE_TIER, XTable.XTableRogueLikeTier, "Id")
|
||||
RogueLikeTierSection = XTableManager.ReadByIntKey(SHARE_ROGUELIKE_TIER_SECTION, XTable.XTableRogueLikeTierSection, "Id")
|
||||
RogueLikeRecover = XTableManager.ReadByIntKey(SHARE_ROGUELIKE_RECOVER, XTable.XTableRogueLikeRecover, "Id")
|
||||
RogueLikeSpecialEvent = XTableManager.ReadByIntKey(SHARE_ROGUELIKE_SPECIALEVENT, XTable.XTableRogueLikeSpecialEvent, "Id")
|
||||
RogueLikeTeamEffect = XTableManager.ReadByIntKey(SHARE_ROGUELIKE_TEAMEFFECT, XTable.XTableRogueLikeTeamEffect, "Id")
|
||||
RogueLikeSupportStation = XTableManager.ReadByIntKey(SHARE_ROGUELIKE_SUPPORTSTATION, XTable.XTableRogueLikeSupportStation, "Id")
|
||||
RogueLikeSpecialEventGroup = XTableManager.ReadByIntKey(SHARE_ROGUELIKE_SPECIALEVENTGROUP, XTable.XTableRogueLikeSpecialEventGroup, "Id")
|
||||
|
||||
ActivityConfig = XTableManager.ReadByIntKey(CLIENT_ROGUELIKE_ACTIVITY, XTable.XTableRogueLikeActivityDetails, "Id")
|
||||
BuffConfig = XTableManager.ReadByIntKey(CLIENT_ROGUELIKE_Buff, XTable.XTableRogueLikeBuffDetails, "Id")
|
||||
NodeConfig = XTableManager.ReadByIntKey(SHARE_ROGUELIKE_NODE_DETAILS, XTable.XTableRogueLikeNodeDetails, "Id")
|
||||
TierSectionConfig = XTableManager.ReadByIntKey(CLIENT_ROGUELIKE_TIER_SECTION, XTable.XTableRogueLikeTierSectionDetails, "Id")
|
||||
SpecialEventConfig = XTableManager.ReadByIntKey(CLIENT_ROGUELIKE_TIER_SPECIALEVENT, XTable.XTableRogueLikeSpecialEventDetails, "Id")
|
||||
SupportStationConfig = XTableManager.ReadByIntKey(CLIENT_ROGUELIKE_SUPPORTSTATION, XTable.XTableRogueLikeSupportStationDetails, "Id")
|
||||
SpecialEventGroupDetailsConfig = XTableManager.ReadByIntKey(CLIENT_ROGUELIKE_SPECIALEVENTGROUPDETAIL, XTable.XTableRogueLikeSpecialEventGroupDetails, "Id")
|
||||
SpecialEventGroupItemConfig = XTableManager.ReadByIntKey(CLIENT_ROGUELIKE_SPECIALEVENTGROUPITEM, XTable.XTableRogueLikeSpecialEventGroupItem, "Id")
|
||||
|
||||
RogueLikePurgatoryScoreDesConfig = XTableManager.ReadByIntKey(CLIENT_ROGUELIKE_SCORE_DETAIL, XTable.XTableRogueLikePurgatoryScoreDesDetail, "Type")
|
||||
|
||||
XFubenRogueLikeConfig.InitGroup2TierMap()
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.InitGroup2TierMap()
|
||||
|
||||
-- 按照groupId, tier存储节点
|
||||
Group2TierMap = {}
|
||||
for _, v in pairs(RogueLikeTier) do
|
||||
if not Group2TierMap[v.Group] then
|
||||
Group2TierMap[v.Group] = {}
|
||||
end
|
||||
if not Group2TierMap[v.Group][v.Tier] then
|
||||
Group2TierMap[v.Group][v.Tier] = {}
|
||||
end
|
||||
|
||||
Group2TierMap[v.Group][v.Tier] = {
|
||||
Nodes = v.NodeId,
|
||||
FatherNodes = v.FatherNode,
|
||||
}
|
||||
end
|
||||
|
||||
-- Section2GroupMap
|
||||
for _, v in pairs(RogueLikeTierSection) do
|
||||
for i = 1, #v.GroupId do
|
||||
local groupId = v.GroupId[i]
|
||||
if not Section2GroupMap[groupId] then
|
||||
Section2GroupMap[groupId] = {}
|
||||
end
|
||||
|
||||
Section2GroupMap[groupId] = {
|
||||
GroupId = groupId,
|
||||
MinTier = v.MinTier,
|
||||
MaxTier = v.MaxTier,
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetNodesByGroupId(groupId)
|
||||
if not Group2NodeMap[groupId] then
|
||||
Group2NodeMap[groupId] = {}
|
||||
NodeIndexMap[groupId] = {}
|
||||
local SectionData = Section2GroupMap[groupId]
|
||||
if not SectionData then
|
||||
--XLog.Error("SectoinData not exist :" .. tostring(groupId))
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetNodesByGroupId",
|
||||
"SectionData", SHARE_ROGUELIKE_TIER_SECTION, "groupId", tostring(groupId))
|
||||
end
|
||||
local nodeIndex = 0
|
||||
for i = SectionData.MinTier, SectionData.MaxTier do
|
||||
local nodeDatas = Group2TierMap[groupId][i]
|
||||
for j = 1, #nodeDatas.Nodes do
|
||||
nodeIndex = nodeIndex + 1
|
||||
Group2NodeMap[groupId][nodeIndex] = {}
|
||||
Group2NodeMap[groupId][nodeIndex].Index = nodeIndex
|
||||
Group2NodeMap[groupId][nodeIndex].Group = groupId
|
||||
Group2NodeMap[groupId][nodeIndex].TierIndex = i
|
||||
Group2NodeMap[groupId][nodeIndex].NodeId = nodeDatas.Nodes[j]
|
||||
local fatherNodes = {}
|
||||
if nodeDatas.FatherNodes[j] then
|
||||
fatherNodes = string.Split(nodeDatas.FatherNodes[j], '|')
|
||||
end
|
||||
Group2NodeMap[groupId][nodeIndex].FatherNodes = {}
|
||||
for fatherNodeIndex = 1, #fatherNodes do
|
||||
Group2NodeMap[groupId][nodeIndex].FatherNodes[fatherNodeIndex] = tonumber(fatherNodes[fatherNodeIndex])
|
||||
end
|
||||
NodeIndexMap[groupId][nodeDatas.Nodes[j]] = nodeIndex
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return Group2NodeMap[groupId], NodeIndexMap[groupId]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetGroup2TierMapDatas(groupId, tierIndex)
|
||||
return Group2TierMap[groupId][tierIndex]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetNodesByGroup(group)
|
||||
return Group2TierMap[group]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetRougueLikeTemplateById(id)
|
||||
if not RogueLikeActivity[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetRougueLikeTemplateById",
|
||||
"RogueLikeActivity", SHARE_ROGUELIKE_ACTIVITY, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeActivity[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetLastRogueLikeConfig()
|
||||
local config = RogueLikeActivity[#RogueLikeActivity]
|
||||
|
||||
if not config then
|
||||
XLog.Error("配置表:RogueLikeActivity 没有配置数据")
|
||||
return
|
||||
end
|
||||
return config
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetRogueLikeConfigById(id)
|
||||
if not ActivityConfig[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetRogueLikeConfigById",
|
||||
"RogueLikeActivityDetails", CLIENT_ROGUELIKE_ACTIVITY, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return ActivityConfig[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetBoxTemplateById(id)
|
||||
if not RogueLikeBox[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetBoxTemplateById", "RogueLikeBox", SHARE_ROGUELIKE_BOX, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeBox[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetBuffTemplateById(id)
|
||||
if not RogueLikeBuff[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetBuffTemplateById", "RogueLikeBuff", SHARE_ROGUELIKE_BUFF, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeBuff[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetBuffConstItemIdById(id)
|
||||
if not RogueLikeBuff[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetBuffTemplateById", "RogueLikeBuff", SHARE_ROGUELIKE_BUFF, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeBuff[id].CostItemId
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetBuffConstItemCountById(id)
|
||||
if not RogueLikeBuff[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetBuffTemplateById", "RogueLikeBuff", SHARE_ROGUELIKE_BUFF, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeBuff[id].CostItemCount
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.IsBuffMaxLevel(id)
|
||||
local buffTemplate = XFubenRogueLikeConfig.GetBuffTemplateById(id)
|
||||
return buffTemplate.IntensifyId == nil or buffTemplate.IntensifyId == 0
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetBuffConfigById(id)
|
||||
if not BuffConfig[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetBuffConfigById", "RogueLikeBuffDetails", CLIENT_ROGUELIKE_Buff, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return BuffConfig[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetEventTemplateById(id)
|
||||
if not RogueLikeEvent[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetEventTemplateById", "RogueLikeEvent", SHARE_ROGUELIKE_EVENT, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeEvent[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetNodeTemplateById(id)
|
||||
if not RogueLikeNode[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetNodeTemplateById", "RogueLikeNode", SHARE_ROGUELIKE_NODE, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeNode[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetAllNodes()
|
||||
return RogueLikeNode
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetNodeConfigteById(id)
|
||||
if not NodeConfig[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetNodeConfigteById", "RogueLikeNodeDetails", SHARE_ROGUELIKE_NODE_DETAILS, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return NodeConfig[id]
|
||||
end
|
||||
|
||||
|
||||
function XFubenRogueLikeConfig.GetRobotTemplateById(id)
|
||||
if not RogueLikeRobot[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetRobotTemplateById", "RogueLikeRobot", SHARE_ROGUELIKE_ROBOT, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeRobot[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetShopTemplateById(id)
|
||||
if not RogueLikeShop[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetShopTemplateById", "RogueLikeShop", SHARE_ROGUELIKE_SHOP, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeShop[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetShopItemTemplateById(id)
|
||||
if not RogueLikeShopItem[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetShopItemTemplateById",
|
||||
"RogueLikeShopItem", SHARE_ROGUELIKE_SHOPITEM, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeShopItem[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetTierTemplateById(id)
|
||||
if not RogueLikeTier[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetTierTemplateById", "RogueLikeTier", SHARE_ROGUELIKE_TIER, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeTier[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetTierSectionTemplateById(id)
|
||||
if not RogueLikeTierSection[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetTierSectionTemplateById",
|
||||
"RogueLikeTierSection", SHARE_ROGUELIKE_TIER_SECTION, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeTierSection[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetTierSectionTierTypeById(id)
|
||||
return RogueLikeTierSection[id] and RogueLikeTierSection[id].TierType
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetTierSectionConfigById(id)
|
||||
if not TierSectionConfig[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetTierSectionConfigById",
|
||||
"TierSectionDetails", CLIENT_ROGUELIKE_TIER_SECTION, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return TierSectionConfig[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetRecoverTemplateById(id)
|
||||
if not RogueLikeRecover[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetRecoverTemplateById", "RogueLikeRecover", SHARE_ROGUELIKE_RECOVER, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeRecover[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetRecoverHpPercentById(id)
|
||||
if not RogueLikeRecover[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetRecoverTemplateById", "RogueLikeRecover", SHARE_ROGUELIKE_RECOVER, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeRecover[id].HpPercent
|
||||
end
|
||||
|
||||
-- 获取恢复血量所需支援配额
|
||||
function XFubenRogueLikeConfig.GetRecoverCostSupportPointById(id)
|
||||
if not RogueLikeRecover[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetRecoverTemplateById", "RogueLikeRecover", SHARE_ROGUELIKE_RECOVER, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeRecover[id].CostSupportPoint
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetSpecialEventTemplateById(id)
|
||||
if not RogueLikeSpecialEvent[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetSpecialEventTemplateById",
|
||||
"RogueLikeSpecialEvent", SHARE_ROGUELIKE_SPECIALEVENT, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeSpecialEvent[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetSpecialEventConfigById(id)
|
||||
if not SpecialEventConfig[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetSpecialEventConfigById",
|
||||
"RogueLikeSpecialEventDetails", CLIENT_ROGUELIKE_TIER_SPECIALEVENT, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return SpecialEventConfig[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetTeamEffectTemplateById(id)
|
||||
if not RogueLikeTeamEffect[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetTeamEffectTemplateById",
|
||||
"RogueLikeTeamEffect", SHARE_ROGUELIKE_TEAMEFFECT, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeTeamEffect[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.RogueLikeIsCheckLines()
|
||||
return XFubenRogueLikeConfig.CHECK_LINES == 1
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetAllSupports()
|
||||
return RogueLikeSupportStation
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetSupportStationTemplateById(id)
|
||||
if not RogueLikeSupportStation[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetSupportStationTemplateById",
|
||||
"RogueLikeSupportStation", SHARE_ROGUELIKE_SUPPORTSTATION, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeSupportStation[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetSupportStationConfigById(id)
|
||||
if not SupportStationConfig[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetSupportStationConfigById",
|
||||
"SupportStationDetails", CLIENT_ROGUELIKE_SUPPORTSTATION, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return SupportStationConfig[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetSepcialEventGroupTemplateById(id)
|
||||
if not RogueLikeSpecialEventGroup[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetSepcialEventGroupTemplateById",
|
||||
"RogueLikeSpecialEventGroup", SHARE_ROGUELIKE_SPECIALEVENTGROUP, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return RogueLikeSpecialEventGroup[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetSpecialEventGroupConfigById(id)
|
||||
if not SpecialEventGroupDetailsConfig[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetSpecialEventGroupConfigById",
|
||||
"RogueLikeSpecialEventGroupDetails", CLIENT_ROGUELIKE_SPECIALEVENTGROUPDETAIL, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return SpecialEventGroupDetailsConfig[id]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetSpecialEventGroupItemConfigById(id)
|
||||
if not SpecialEventGroupItemConfig[id] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetSpecialEventGroupItemConfigById",
|
||||
"RogueLikeSpecialEventGroupItem", CLIENT_ROGUELIKE_SPECIALEVENTGROUPITEM, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return SpecialEventGroupItemConfig[id]
|
||||
end
|
||||
|
||||
-- 特殊事件组条件
|
||||
function XFubenRogueLikeConfig.IsSpecialGroupType(specialEventType)
|
||||
return specialEventType == XFubenRogueLikeConfig.XRLOtherEventType.ReduceHp or
|
||||
specialEventType == XFubenRogueLikeConfig.XRLOtherEventType.GainItemRate or
|
||||
specialEventType == XFubenRogueLikeConfig.XRLOtherEventType.ConsumeItemRate
|
||||
end
|
||||
|
||||
-- 选择不需要发通知的类型
|
||||
function XFubenRogueLikeConfig.IsRequestBeforeSelectType(normalType)
|
||||
return normalType == XFubenRogueLikeConfig.XRLNodeType.Fight or
|
||||
normalType == XFubenRogueLikeConfig.XRLNodeType.Box
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.NoNeedCheckActionPointType(normalType)
|
||||
return false -- normalType == XFubenRogueLikeConfig.XRLNodeType.Rest
|
||||
end
|
||||
|
||||
|
||||
function XFubenRogueLikeConfig.GetRogueLikePurgatoryScoreDescConfigByType(nodeType)
|
||||
if not RogueLikePurgatoryScoreDesConfig[nodeType] then
|
||||
XLog.ErrorTableDataNotFound("XFubenRogueLikeConfig.GetRogueLikePurgatoryScoreDescConfigByType",
|
||||
"RogueLikePurgatoryScoreDesConfig", CLIENT_ROGUELIKE_SCORE_DETAIL, "Type", tostring(nodeType))
|
||||
return
|
||||
end
|
||||
return RogueLikePurgatoryScoreDesConfig[nodeType]
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetRogueLikePurgatoryScoreTitleByType(nodeType)
|
||||
local conifg = XFubenRogueLikeConfig.GetRogueLikePurgatoryScoreDescConfigByType(nodeType)
|
||||
return conifg and conifg.Title
|
||||
end
|
||||
|
||||
function XFubenRogueLikeConfig.GetRogueLikePurgatoryScoreDescriptionByType(nodeType)
|
||||
local conifg = XFubenRogueLikeConfig.GetRogueLikePurgatoryScoreDescConfigByType(nodeType)
|
||||
return conifg and conifg.Description
|
||||
end
|
112
Resources/Scripts/XConfig/XFubenSimulatedCombatConfig.lua
Normal file
112
Resources/Scripts/XConfig/XFubenSimulatedCombatConfig.lua
Normal file
|
@ -0,0 +1,112 @@
|
|||
XFubenSimulatedCombatConfig = XFubenSimulatedCombatConfig or {}
|
||||
|
||||
local TABLE_SIMUCOMBAT_ACTIVITY = "Share/Fuben/SimulatedCombat/SimulatedCombatActivity.tab"
|
||||
local TABLE_SIMUCOMBAT_ADDITION = "Share/Fuben/SimulatedCombat/SimulatedCombatAddition.tab"
|
||||
local TABLE_SIMUCOMBAT_CHALLENGE = "Share/Fuben/SimulatedCombat/SimulatedCombatChallenge.tab"
|
||||
local TABLE_SIMUCOMBAT_MEMBER = "Share/Fuben/SimulatedCombat/SimulatedCombatMember.tab"
|
||||
local TABLE_SIMUCOMBAT_POINT_REWARD = "Share/Fuben/SimulatedCombat/SimulatedCombatPointReward.tab"
|
||||
local TABLE_SIMUCOMBAT_STAGE = "Share/Fuben/SimulatedCombat/SimulatedCombatStage.tab"
|
||||
local TABLE_SIMUCOMBAT_STAR_REWARD = "Share/Fuben/SimulatedCombat/SimulatedCombatStarReward.tab"
|
||||
|
||||
local SimuCombatActivity = {}
|
||||
local SimuCombatAddition = {}
|
||||
local SimuCombatChallenge = {}
|
||||
local SimuCombatMember = {}
|
||||
local SimuCombatPointReward = {}
|
||||
local SimuCombatStage = {}
|
||||
local SimuCombatStarReward = {}
|
||||
local SimuCombatStageIdToInterId = {}
|
||||
local SimuCombatStageGroup = {}
|
||||
|
||||
XFubenSimulatedCombatConfig.Color = {
|
||||
NORMAL = XUiHelper.Hexcolor2Color("0F70BC"),
|
||||
INSUFFICIENT = XUiHelper.Hexcolor2Color("C62310"),
|
||||
}
|
||||
|
||||
XFubenSimulatedCombatConfig.StageType = {
|
||||
Normal = 1, --普通
|
||||
Challenge = 2, --挑战模式
|
||||
}
|
||||
|
||||
XFubenSimulatedCombatConfig.ResType = {
|
||||
Member = 1,
|
||||
Addition = 2,
|
||||
}
|
||||
|
||||
XFubenSimulatedCombatConfig.TeamTemplate = {
|
||||
["CaptainPos"] = 1,
|
||||
["FirstFightPos"] = 1,
|
||||
["TeamData"] = {},
|
||||
}
|
||||
|
||||
function XFubenSimulatedCombatConfig.Init()
|
||||
SimuCombatActivity = XTableManager.ReadByIntKey(TABLE_SIMUCOMBAT_ACTIVITY, XTable.XTableSimulatedCombatActivity, "Id")
|
||||
SimuCombatAddition = XTableManager.ReadByIntKey(TABLE_SIMUCOMBAT_ADDITION, XTable.XTableSimulatedCombatAddition, "Id")
|
||||
SimuCombatChallenge = XTableManager.ReadByIntKey(TABLE_SIMUCOMBAT_CHALLENGE, XTable.XTableSimulatedCombatChallenge, "Id")
|
||||
SimuCombatMember = XTableManager.ReadByIntKey(TABLE_SIMUCOMBAT_MEMBER, XTable.XTableSimulatedCombatMember, "Id")
|
||||
SimuCombatPointReward = XTableManager.ReadByIntKey(TABLE_SIMUCOMBAT_POINT_REWARD, XTable.XTableSimulatedCombatPointReward, "Id")
|
||||
SimuCombatStage = XTableManager.ReadByIntKey(TABLE_SIMUCOMBAT_STAGE, XTable.XTableSimulatedCombatStage, "Id")
|
||||
SimuCombatStarReward = XTableManager.ReadByIntKey(TABLE_SIMUCOMBAT_STAR_REWARD, XTable.XTableSimulatedCombatStarReward, "Id")
|
||||
for _, v in pairs(SimuCombatStage) do
|
||||
SimuCombatStageIdToInterId[v.StageId] = v
|
||||
if not SimuCombatStageGroup[v.Type] then
|
||||
SimuCombatStageGroup[v.Type] = {}
|
||||
end
|
||||
table.insert(SimuCombatStageGroup[v.Type], v)
|
||||
end
|
||||
|
||||
for _, grp in pairs(SimuCombatStageGroup) do
|
||||
table.sort(grp, function (a,b)
|
||||
return a.Id < b.Id
|
||||
end)
|
||||
end
|
||||
XFubenSimulatedCombatConfig.TeamTemplate = XReadOnlyTable.Create(XFubenSimulatedCombatConfig.TeamTemplate)
|
||||
end
|
||||
|
||||
function XFubenSimulatedCombatConfig.GetStageInterData(Id)
|
||||
local template = SimuCombatStage[Id]
|
||||
if not template then
|
||||
XLog.ErrorTableDataNotFound("XFubenSimulatedCombatConfig.GetDataById", "SimulatedCombatActivity", SHARE_NEWCHAR_TEACH, "Id", tostring(id))
|
||||
return
|
||||
end
|
||||
return template
|
||||
end
|
||||
|
||||
function XFubenSimulatedCombatConfig.GetStageInterDataByType(type)
|
||||
return SimuCombatStageGroup[type]
|
||||
end
|
||||
|
||||
function XFubenSimulatedCombatConfig.GetActTemplates()
|
||||
return SimuCombatActivity
|
||||
end
|
||||
|
||||
function XFubenSimulatedCombatConfig.GetActivityTemplateById(Id)
|
||||
return SimuCombatActivity[Id]
|
||||
end
|
||||
|
||||
function XFubenSimulatedCombatConfig.GetMemberById(Id)
|
||||
return SimuCombatMember[Id]
|
||||
end
|
||||
|
||||
function XFubenSimulatedCombatConfig.GetAdditionById(Id)
|
||||
return SimuCombatAddition[Id]
|
||||
end
|
||||
|
||||
function XFubenSimulatedCombatConfig.GetChallengeById(Id)
|
||||
return SimuCombatChallenge[Id]
|
||||
end
|
||||
|
||||
function XFubenSimulatedCombatConfig.GetPointReward(Id)
|
||||
return SimuCombatPointReward
|
||||
end
|
||||
function XFubenSimulatedCombatConfig.GetPointRewardById(Id)
|
||||
return SimuCombatPointReward[Id]
|
||||
end
|
||||
|
||||
function XFubenSimulatedCombatConfig.GetStarReward(Id)
|
||||
return SimuCombatStarReward
|
||||
end
|
||||
function XFubenSimulatedCombatConfig.GetStarRewardById(Id)
|
||||
return SimuCombatStarReward[Id]
|
||||
end
|
||||
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue