-- 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