-- Four exact type/assembly lookups, one per heartbeat, metadata only. do local function capture() local s=_G.__gacCwMonsterTables3 or {index=1,assembly=1};_G.__gacCwMonsterTables3=s local names={'GridFightMonsterConfigExcelTable','GridFightMonsterExcelTable'} if s.index>#names then return end local log=function(x)CS.UnityEngine.Debug.Log('[GAC_CW_MONSTER_TABLE] '..tostring(x))end local ok,err=pcall(function() local assemblies={typeof(CS.RPG.GameCore.GridFightRoleConfigRow).Assembly,typeof(CS.RPG.GameCore.GameCoreConfigLoader).Assembly} local t=assemblies[s.assembly]:GetType('RPG.GameCore.'..names[s.index]);log('TYPE '..names[s.index]..' assembly='..s.assembly..' '..tostring(t)) if t then local flags=CS.System.Enum.ToObject(typeof(CS.System.Reflection.BindingFlags),60) local ms=t:GetMethods(flags);for i=0,math.min(ms.Length-1,47)do if ms[i].DeclaringType==t then log('METHOD '..tostring(ms[i]))end end end end) if not ok then log('ERROR '..tostring(err))end s.assembly=s.assembly+1;if s.assembly>2 then s.assembly=1;s.index=s.index+1 end if s.index>#names then log('END')end end;capture()end