-- Named settlement-rule metadata only, one target per heartbeat, no loaders. do local flags=CS.System.Enum.ToObject(typeof(CS.System.Reflection.BindingFlags),60) local targets={ {'RPG.GameCore.GridFightPenaltyRuleConfigExcelTable',true}, {'RPG.GameCore.GridFightPenaltyRuleExcelTable',true}, {'RPG.GameCore.GridFightPenaltyRuleConfigRow',true}, {'RPG.GameCore.GridFightPenaltyRuleRow',true}, {'RPG.Client.GridFightVictoryCountRule',false}, {'RPG.Client.GridFightPenaltyRule',false} } _G.__gacCwSettlementSchema1=_G.__gacCwSettlementSchema1 or 1 local i=_G.__gacCwSettlementSchema1;if i>#targets then return end;_G.__gacCwSettlementSchema1=i+1 local log=function(v)CS.UnityEngine.Debug.Log('[GAC_CW_SETTLEMENT_SCHEMA] '..tostring(v))end local ok,err=pcall(function() local item=targets[i];local assembly=item[2] and typeof(CS.RPG.GameCore.GridFightRoleConfigRow).Assembly or typeof(CS.RPG.Client.GridFightModule).Assembly local t=assembly:GetType(item[1]);log('TYPE '..item[1]..' '..tostring(t));if not t then return end local fs=t:GetFields(flags);for j=0,math.min(fs.Length-1,31)do if i~=6 then log('FIELD '..tostring(fs[j]))end end local ms=t:GetMethods(flags) for j=0,math.min(ms.Length-1,31)do local m=ms[j] if m.DeclaringType==t then log('METHOD '..tostring(m)..' HANDLE '..tostring(m.MethodHandle.Value))end end end) if not ok then log('ERROR '..tostring(err))end if i==#targets then log('END')end end