Update GaCy-GO
This commit is contained in:
1 parent
da8a32f60d
commit
0cbe460e49
345 files changed
+98202
-77559
No files matched your search
@@ -0,0 +1,30 @@
|
||||
-- Narrow metadata/read-only scalar state from the already resolved CW panel.
|
||||
-- At most eight members per heartbeat; no assembly scan or gameplay calls.
|
||||
do local function capture()
|
||||
local s=_G.__gacCwBookActivityMetadata1 or {index=0,target=1};_G.__gacCwBookActivityMetadata1=s
|
||||
if s.done then return end
|
||||
local function log(v)CS.UnityEngine.Debug.Log('[GAC_CW_BOOK_ACTIVITY] '..tostring(v))end
|
||||
local ok,err=pcall(function()
|
||||
if not s.objects then
|
||||
local class=package.loaded['Ui.DailyMission.Rogue.GridFight.HandbookRogueGridFightTabItem']
|
||||
local constants
|
||||
for i=1,16 do local n,v=debug.getupvalue(class._on_click_go,i);if not n then break end;if n=='_GRID_FIGHT_CONSTANTS'then constants=v;break end end
|
||||
local panel=CS.RPG.Client.GlobalVars.s_ModuleManager.ActivityModule:GetPanelData(constants.ActivityID)
|
||||
if not panel or not panel.StateData then error('Resolved CW panel/state unavailable')end
|
||||
s.objects={panel.StateData,panel};s.flags=CS.System.Enum.ToObject(typeof(CS.System.Reflection.BindingFlags),60)
|
||||
end
|
||||
local value=s.objects[s.target]
|
||||
if not s.members then
|
||||
local t=value:GetType();s.members=t:GetFields(s.flags)
|
||||
log('TYPE '..t.FullName..' FIELDS '..s.members.Length)
|
||||
end
|
||||
for i=s.index,math.min(s.index+7,s.members.Length-1)do
|
||||
local m=s.members[i];local v=m:GetValue(value)
|
||||
local text=v==nil and 'nil' or (m.FieldType.IsPrimitive or m.FieldType.IsEnum or m.FieldType.FullName=='System.String') and tostring(v) or tostring(m.FieldType.FullName)
|
||||
log('FIELD '..m.Name..' TYPE '..m.FieldType.FullName..' VALUE '..text)
|
||||
end
|
||||
s.index=s.index+8
|
||||
if s.index>=s.members.Length or s.index>=64 then s.members=nil;s.index=0;s.target=s.target+1;if s.target>#s.objects then s.done=true;log('END')end end
|
||||
end)
|
||||
if not ok then s.done=true;log('ERROR '..tostring(err))end
|
||||
end;capture()end
|
||||
Reference in new issue
Block a user