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,69 @@
|
||||
-- Read-only, one-shot probe for the current Currency Wars encounter.
|
||||
do
|
||||
local state=_G.__gacCwActiveEncounterCapture7 or {done=false};_G.__gacCwActiveEncounterCapture7=state
|
||||
if not state.done then
|
||||
local function log(value)CS.UnityEngine.Debug.Log('[GAC_CW_ACTIVE_ENCOUNTER] '..tostring(value))end
|
||||
local ok,err=pcall(function()
|
||||
local flags=CS.System.Enum.ToObject(typeof(CS.System.Reflection.BindingFlags),60)
|
||||
local session=CS.RPG.Client.GlobalVars.s_ModuleManager.GridFightModule.CurGameSession
|
||||
if not session then return end
|
||||
local stage
|
||||
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 stage=fs[i]:GetValue(session);break end end
|
||||
if not stage or not stage.CurNode then return end
|
||||
local node=stage.CurNode
|
||||
local function field(obj,name)
|
||||
if not obj then return nil end
|
||||
local all=obj:GetType():GetFields(flags)
|
||||
for i=0,math.min(all.Length-1,63)do if all[i].Name==name then return all[i]:GetValue(obj)end end
|
||||
end
|
||||
local function list(obj)
|
||||
local array=field(obj,'array');local count=field(obj,'count')or 0;local out={}
|
||||
if array then for i=0,math.min(count-1,31)do out[#out+1]=array[i]end end
|
||||
return out
|
||||
end
|
||||
local function showRow(tableName,id,getter)
|
||||
local success,row=pcall(function()return getter(id)end)
|
||||
if not success then log('TABLE_ERROR '..tableName..' id='..id..' '..tostring(row));return end
|
||||
if not row then log('TABLE_EMPTY '..tableName..' id='..id);return end
|
||||
local encodedOK,encoded=pcall(function()return CS.Newtonsoft.Json.JsonConvert.SerializeObject(row)end)
|
||||
if encodedOK and #tostring(encoded)<=24000 then log('TABLE '..tableName..' id='..id..' '..tostring(encoded))else log('TABLE_ERROR '..tableName..' id='..id..' '..tostring(encoded))end
|
||||
end
|
||||
log('PROBE_VERSION=7')
|
||||
log('BEGIN route='..stage.RouteID..' chapter='..stage.ChapterID..' section='..stage.SectionID..' stage='..node.StageID..' level='..stage.CurMonsterLevel..' base_diff='..stage:GetBaseDiffAddLv()..' current_diff='..stage:GetCurrentMonsterDiffAddLv()..' all_diff='..stage:GetAllDiffAddLv())
|
||||
local stageRow=CS.RPG.GameCore.StageExcelTable.GetData(node.StageID)
|
||||
log('ROW StageExcelTable '..CS.Newtonsoft.Json.JsonConvert.SerializeObject(stageRow))
|
||||
local battleField=node:GetType():GetField('_BattleNodeInfo',flags)
|
||||
local battle=battleField and battleField:GetValue(node)
|
||||
local branches=list(field(battle,'EOHMIOEPOGP'))
|
||||
log('BRANCH_COUNT '..#branches)
|
||||
for branchIndex=1,#branches do
|
||||
local branch=branches[branchIndex]
|
||||
local option=field(branch,'DDKGLOFJIHH')or 0
|
||||
local penalty=field(branch,'KDCDJDFHIPP')or 0
|
||||
local difficulty=field(branch,'PANBGEDCMCH')or 0
|
||||
local waveObjects=list(field(branch,'EMGPLPNHBHF'))
|
||||
log('BRANCH index='..branchIndex..' option='..option..' penalty='..penalty..' extra_difficulty='..difficulty..' waves='..#waveObjects)
|
||||
for waveIndex=1,#waveObjects do
|
||||
local wave=waveObjects[waveIndex]
|
||||
local waveID=field(wave,'BLCIEPPJJCC')or 0
|
||||
local monsters=list(field(wave,'ABMPKGNBMNA'))
|
||||
local summary={}
|
||||
for monsterIndex=1,#monsters do
|
||||
local monster=monsters[monsterIndex]
|
||||
summary[#summary+1]=tostring(field(monster,'OEPOBIODAJH')or 0)..':'..tostring(field(monster,'NNLJKKAEICI')or 0)
|
||||
end
|
||||
log('WAVE branch='..branchIndex..' id='..waveID..' count='..#monsters..' monster_id:role_star='..table.concat(summary,','))
|
||||
showRow('GridFightFormationWaveExcelTable',waveID,function(id)return CS.RPG.GameCore.GridFightFormationWaveExcelTable.GetData(id)end)
|
||||
showRow('GridFightFormationWaveConfigExcelTable',waveID,function(id)return CS.RPG.GameCore.GridFightFormationWaveConfigExcelTable.GetData(id)end)
|
||||
showRow('GridFightEliteGroupExcelTable',waveID,function(id)return CS.RPG.GameCore.GridFightEliteGroupExcelTable.GetData(id)end)
|
||||
showRow('GridFightEliteGroupConfigExcelTable',waveID,function(id)return CS.RPG.GameCore.GridFightEliteGroupConfigExcelTable.GetData(id)end)
|
||||
end
|
||||
end
|
||||
local penaltyRow=node:GetType():GetProperty('_PenaltyRuleConfigRow',flags)
|
||||
if penaltyRow then log('ROW PenaltyRule '..CS.Newtonsoft.Json.JsonConvert.SerializeObject(penaltyRow:GetValue(node,nil)))end
|
||||
log('END');state.done=true
|
||||
end)
|
||||
if not ok then log('ERROR '..tostring(err));state.done=true end
|
||||
end
|
||||
end
|
||||
Reference in new issue
Block a user