Files

20 lines
1.1 KiB
Lua
Raw Permalink Normal View History

2026-10-28 18:54:43 +07:00
-- Bounded read of the active node's already available penalty row.
do local function capture()
if _G.__gacCwCurrentPenalty1 then return end
local session=CS.RPG.Client.GlobalVars.s_ModuleManager.GridFightModule.CurGameSession
if not session then return end
local flags=CS.System.Enum.ToObject(typeof(CS.System.Reflection.BindingFlags),60)
local fs=session:GetType():GetFields(flags)
for i=0,math.min(fs.Length-1,63)do
if fs[i].FieldType.FullName=='RPG.Client.GridFightStage'then
local stage=fs[i]:GetValue(session)
local node=stage and stage.CurNode
if not node then return end
local property=node:GetType():GetProperty('_PenaltyRuleConfigRow',flags)
if not property then return end
local row=property:GetValue(node,nil)
if row then CS.UnityEngine.Debug.Log('[GAC_CW_CURRENT_PENALTY] '..CS.Newtonsoft.Json.JsonConvert.SerializeObject(row));_G.__gacCwCurrentPenalty1=true end
return
end
end
end;local ok,e=pcall(capture);if not ok then _G.__gacCwCurrentPenalty1=true;CS.UnityEngine.Debug.Log('[GAC_CW_CURRENT_PENALTY] ERROR '..tostring(e))end end