39 lines
2.1 KiB
Lua
39 lines
2.1 KiB
Lua
-- Read initialized CW configuration caches, not gameplay actions.
|
|
do
|
|
if not _G.__gacCwInitializedConfigs1 then
|
|
_G.__gacCwInitializedConfigs1=true
|
|
local function log(v)CS.UnityEngine.Debug.Log('[GAC_CW_INITIALIZED] '..tostring(v))end
|
|
local ok,err=pcall(function()
|
|
local flags=CS.System.Enum.ToObject(typeof(CS.System.Reflection.BindingFlags),60)
|
|
local module=CS.RPG.Client.GlobalVars.s_ModuleManager.GridFightModule
|
|
for _,name in ipairs({'_RoleConfigByID','_RoleConfigByAvatarIDAndSeasonID'})do
|
|
local dict=module:GetType():GetField(name,flags):GetValue(module)
|
|
log('CACHE '..name..' '..dict.Count)
|
|
end
|
|
local list=module.DivisionInfo:GetStagesShown(false)
|
|
log('STAGES '..list.Count)
|
|
_G.__gacCwStageConfigsExport={rows=list,index=0}
|
|
for _,name in ipairs({'GridFightRoleConfig','GridFightHandbookRole','GridFightStageRoute'})do
|
|
local t=typeof(CS.RPG.Client[name]);log('TYPE '..tostring(t))
|
|
local fs=t:GetFields(flags);for i=0,fs.Length-1 do log('FIELD '..tostring(fs[i]))end
|
|
local ps=t:GetProperties(flags);for i=0,ps.Length-1 do log('PROPERTY '..tostring(ps[i]))end
|
|
end
|
|
end)
|
|
if not ok then log('ERROR '..tostring(err))end
|
|
end
|
|
local state=_G.__gacCwStageConfigsExport
|
|
if state and not state.done then
|
|
local function log(v)CS.UnityEngine.Debug.Log('[GAC_CW_STAGE_CONFIG] '..tostring(v))end
|
|
local ok,err=pcall(function()
|
|
if state.index==0 then log('BEGIN count='..state.rows.Count)end
|
|
for i=state.index,math.min(state.index+1,state.rows.Count-1)do
|
|
local r=state.rows[i]
|
|
log('ROW {"ID":'..r.ID..',"EnemyHardLevel":'..r.EnemyHardLevel..',"Exp":'..r.Exp..',"WeeklyScore":'..r.WeeklyScore..',"OverChargeExp":'..r.OverChargeExp..',"OverChargeWeeklyScore":'..r.OverChargeWeeklyScore..',"ScoreRule":'..r.ScoreRule..',"OCScoreRule":'..r.OCScoreRule..',"EnvironmentBuffList":'..CS.Newtonsoft.Json.JsonConvert.SerializeObject(r.EnvironmentBuffList)..'}')
|
|
end
|
|
state.index=state.index+2
|
|
if state.index>=state.rows.Count then log('END');state.done=true end
|
|
end)
|
|
if not ok then log('ERROR '..tostring(err));state.done=true end
|
|
end
|
|
end
|