20 lines
1.1 KiB
Lua
20 lines
1.1 KiB
Lua
-- 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
|