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,32 @@
|
||||
-- IDs are injected from the current revision's captured role configuration.
|
||||
-- Read config rows only, four traits per heartbeat, never during Battle.
|
||||
do local function capture()
|
||||
local s=_G.__gacCwTraitRows1 or {index=1};_G.__gacCwTraitRows1=s
|
||||
if s.done then return end
|
||||
local ids=_G.__gacCwTraitCaptureIDs
|
||||
if type(ids)~='table'or #ids>256 then error('bounded captured trait ID plan required')end
|
||||
local flags=CS.System.Enum.ToObject(typeof(CS.System.Reflection.BindingFlags),60)
|
||||
local manager=CS.RPG.Client.GlobalVars.s_GamePhaseManager
|
||||
local phase=manager and 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 module=CS.RPG.Client.GlobalVars.s_ModuleManager.GridFightModule
|
||||
local log=function(x)CS.UnityEngine.Debug.Log('[GAC_CW_TRAIT_ROWS] '..tostring(x))end
|
||||
local function rows(label,obj)
|
||||
local fs=obj:GetType():GetFields(flags)
|
||||
for i=0,math.min(fs.Length-1,47)do local f=fs[i]
|
||||
if not f.IsStatic and f.FieldType.FullName:find('Row$')then local row=f:GetValue(obj);if row then local encoded=CS.Newtonsoft.Json.JsonConvert.SerializeObject(row);if #encoded>32768 then error('trait row bound')end;log(label..' '..encoded)end end
|
||||
end
|
||||
end
|
||||
for _=1,4 do
|
||||
if s.index>#ids then s.done=true;log('END');return end
|
||||
local id=ids[s.index];s.index=s.index+1
|
||||
local config=module:GetTraitConfig(id)
|
||||
if config then
|
||||
rows('BASE',config)
|
||||
local f=config:GetType():GetField('_layerConfigs',flags);local layers=f and f:GetValue(config)
|
||||
if layers then if layers.Count>32 then error('trait layer bound')end;for i=0,layers.Count-1 do rows('LAYER',layers[i])end end
|
||||
local effects=config.TraitEffectList
|
||||
if effects then for i=0,math.min(effects.Length-1,15)do local effect=module:GetTraitEffectConfig(effects[i]);if effect then rows('EFFECT',effect)end end end
|
||||
else log('MISSING '..id)end
|
||||
end
|
||||
end;local ok,e=pcall(capture);if not ok then _G.__gacCwTraitRows1={done=true};CS.UnityEngine.Debug.Log('[GAC_CW_TRAIT_ROWS] ERROR '..tostring(e))end end
|
||||
Reference in new issue
Block a user