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,65 @@
|
||||
-- Exact named rows/protobuf properties only, four members per heartbeat.
|
||||
-- No recursive JsonConvert/config serialization or gameplay calls.
|
||||
do
|
||||
local function capture()
|
||||
local s=_G.__gacComicStellaSchema1 or {target=1,index=0,kind='fields'}
|
||||
_G.__gacComicStellaSchema1=s
|
||||
if s.target>4 then return end
|
||||
local flags=CS.System.Enum.ToObject(typeof(CS.System.Reflection.BindingFlags),60)
|
||||
local manager=CS.RPG.Client.GlobalVars.s_GamePhaseManager
|
||||
if not manager then return end
|
||||
local phase=typeof(CS.RPG.Client.GamePhaseManager):GetField('_CurrentPhase',flags):GetValue(manager)
|
||||
if not phase or typeof(CS.RPG.Client.BattleGamePhase):IsInstanceOfType(phase) then return end
|
||||
local modules=CS.RPG.Client.GlobalVars.s_ModuleManager
|
||||
local log=function(v) CS.UnityEngine.Debug.Log('[GAC_COMIC_STELLA_SCHEMA] '..tostring(v)) end
|
||||
if not s.t then
|
||||
if s.target<=2 then
|
||||
local name=s.target==1 and 'RPG.GameCore.ComicDessertCycleRow' or 'RPG.GameCore.ComicDessertLevelRow'
|
||||
s.t=typeof(CS.RPG.GameCore.GridFightRoleConfigRow).Assembly:GetType(name)
|
||||
elseif s.target==3 then
|
||||
local m=modules.ComicDessertModule:GetType():GetMethod('_OnGetDataSuccess',flags)
|
||||
s.t=m:GetParameters()[0].ParameterType;s.kind='properties'
|
||||
else
|
||||
local five=modules.FiveDimModule
|
||||
local cfg=five:GetType():GetField('_GameConfig',flags):GetValue(five)
|
||||
s.value=cfg and cfg:GetType():GetField('PlayerConfig',flags):GetValue(cfg)
|
||||
s.t=s.value and s.value:GetType()
|
||||
end
|
||||
if not s.t then log('MISSING_TARGET '..s.target);s.target=s.target+1;return end
|
||||
log('TYPE '..s.t.FullName)
|
||||
s.members=s.kind=='properties' and s.t:GetProperties(flags) or s.t:GetFields(flags)
|
||||
s.index=0
|
||||
end
|
||||
for n=1,4 do
|
||||
if s.index>=s.members.Length then
|
||||
if s.target<=2 and s.kind=='fields' then
|
||||
local method=s.t:GetMethod('FromBinary',flags)
|
||||
if method then log('METHOD '..s.t.FullName..' '..tostring(method)..' HANDLE '..tostring(method.MethodHandle.Value)) end
|
||||
end
|
||||
log('END_TYPE '..s.t.FullName)
|
||||
s.target=s.target+1;s.t=nil;s.members=nil;s.value=nil;s.index=0;s.kind='fields'
|
||||
if s.target>4 then log('END') end
|
||||
return
|
||||
end
|
||||
local member=s.members[s.index];s.index=s.index+1
|
||||
if member.DeclaringType==s.t then
|
||||
if s.kind=='properties' then
|
||||
local getter=member:GetGetMethod(true)
|
||||
log('PROPERTY '..member.Name..' '..member.PropertyType.FullName..' GETTER '..(getter and tostring(getter.MethodHandle.Value) or 'nil'))
|
||||
else
|
||||
local kind=member.FieldType.FullName
|
||||
local text='FIELD '..member.Name..' '..kind
|
||||
if s.value and (kind=='System.UInt32' or kind=='System.Int32' or kind=='System.Single' or kind=='System.Boolean' or kind=='System.String') then
|
||||
text=text..' VALUE '..tostring(member:GetValue(s.value))
|
||||
end
|
||||
log(text)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
local ok,e=pcall(capture)
|
||||
if not ok then
|
||||
_G.__gacComicStellaSchema1={target=99}
|
||||
CS.UnityEngine.Debug.Log('[GAC_COMIC_STELLA_SCHEMA] ERROR '..tostring(e))
|
||||
end
|
||||
end
|
||||
Reference in new issue
Block a user