pre cw with probe and a bunch script to read game behavior
This commit is contained in:
1 parent
5120219ae2
commit
da8a32f60d
310 files changed
+219693
-872
No files matched your search
@@ -0,0 +1,41 @@
|
||||
-- Current loaded props only; table IDs substituted from captured room config.
|
||||
do
|
||||
local ids=__PROP_IDS__
|
||||
local function log(v)CS.UnityEngine.Debug.Log('[GAC_CW_TABLE_STATE] '..tostring(v))end
|
||||
_G.__gacCwTableState2=_G.__gacCwTableState2 or {index=0,hits=0}
|
||||
local state=_G.__gacCwTableState2
|
||||
if not state.done then
|
||||
local ok,err=pcall(function()
|
||||
local flags=CS.System.Enum.ToObject(typeof(CS.System.Reflection.BindingFlags),60)
|
||||
if not state.rows then
|
||||
local map=CS.RPG.Client.GlobalVars.s_ModuleManager.AdventureModule.MapDef
|
||||
local collection=map.AllMapEntityDefs
|
||||
state.rows=collection:GetType():GetField('BPPKNKJBABP',flags):GetValue(collection)
|
||||
log('BEGIN '..state.rows.Count)
|
||||
for _,id in ipairs(ids)do
|
||||
local row=CS.RPG.GameCore.PropExcelTable.GetData(id)
|
||||
log('PROP_ROW '..row.ID..' path='..tostring(row.JsonPath)..' states='..CS.Newtonsoft.Json.JsonConvert.SerializeObject(row.PropStateList))
|
||||
end
|
||||
end
|
||||
for i=state.index,math.min(state.index+31,state.rows.Count-1)do
|
||||
local p=state.rows[i]
|
||||
for _,id in ipairs(ids)do if p.PropID==id then
|
||||
state.hits=state.hits+1
|
||||
log('MATCH '..p.PropID)
|
||||
for _,name in ipairs({'ID','GroupID','InstID','EntityID','PropState','State','IsActive','IsClientOnly','IsLoaded','IsDelete'})do
|
||||
local good,value=pcall(function()return p[name]end)
|
||||
if good and type(value)~='userdata' and type(value)~='table' then log('VALUE '..name..' '..tostring(value))end
|
||||
end
|
||||
local methods=p:GetType():GetMethods(flags)
|
||||
for j=0,methods.Length-1 do
|
||||
local m=methods[j]
|
||||
if m.DeclaringType==p:GetType() and (m.Name:find('State')or m.Name:find('Entity')or m.Name:find('Active'))then log('METHOD '..tostring(m))end
|
||||
end
|
||||
end end
|
||||
end
|
||||
state.index=state.index+32
|
||||
if state.index>=state.rows.Count then state.done=true;log('END hits='..state.hits)end
|
||||
end)
|
||||
if not ok then state.done=true;log('ERROR '..tostring(err))end
|
||||
end
|
||||
end
|
||||
Reference in new issue
Block a user