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,50 @@
|
||||
-- Current Client metadata: ChallengePeakModule exposes CurrentPeakGroupID and
|
||||
-- SendGetChallengePeakDataRequest(). Request real server data; never set a
|
||||
-- private group field, fake a response, remap a room or close a running mode.
|
||||
do local function synchronize()
|
||||
local data=_G.__GAC_AA_ROUND_REFRESH
|
||||
if not data or data.deferred or not data.desired_group or data.desired_group==0 then return end
|
||||
local flags=CS.System.Enum.ToObject(typeof(CS.System.Reflection.BindingFlags),60)
|
||||
local manager=CS.RPG.Client.GlobalVars.s_GamePhaseManager
|
||||
local phase=manager and typeof(CS.RPG.Client.GamePhaseManager):GetField('_CurrentPhase',flags):GetValue(manager)
|
||||
if not phase or typeof(CS.RPG.Client.BattleGamePhase):IsInstanceOfType(phase) then return end
|
||||
local modules=CS.RPG.Client.GlobalVars.s_ModuleManager
|
||||
local module=modules and modules.ChallengePeakModule
|
||||
if not module then return end
|
||||
local state=_G.__GAC_AA_ROUND_REFRESH_STATE
|
||||
if not state or state.module~=module then
|
||||
state={module=module};_G.__GAC_AA_ROUND_REFRESH_STATE=state
|
||||
end
|
||||
local current=module.CurrentPeakGroupID
|
||||
-- Wait for the native login initialization request; do not duplicate it.
|
||||
if not current or current==0 then return end
|
||||
if current==data.desired_group then
|
||||
if state.applied~=data.revision then
|
||||
CS.UnityEngine.Debug.Log('[GAC_AA_ROUND_SYNC] applied group='..current)
|
||||
end
|
||||
state.applied=data.revision;state.pending=nil;return
|
||||
end
|
||||
if state.pending then
|
||||
-- A changed native group proves that the previous request completed. If
|
||||
-- Srtool changed again while it was pending, now request the latest choice.
|
||||
if current==state.pending.from then return end
|
||||
state.pending=nil
|
||||
end
|
||||
if state.requested==data.revision then return end
|
||||
local sender=module.SendGetChallengePeakDataRequest
|
||||
if type(sender)~='function' then error('observed AA refresh API is unavailable') end
|
||||
-- No known in-flight query is exposed by this module. Send once and wait
|
||||
-- for its actual CurrentPeakGroupID change, instead of flooding retries.
|
||||
state.requested=data.revision
|
||||
state.pending={from=current,desired=data.desired_group}
|
||||
module:SendGetChallengePeakDataRequest()
|
||||
CS.UnityEngine.Debug.Log('[GAC_AA_ROUND_SYNC] requested group='..data.desired_group..' previous='..current)
|
||||
end
|
||||
local ok,err=pcall(synchronize)
|
||||
if not ok then
|
||||
local message=tostring(err)
|
||||
if _G.__GAC_AA_ROUND_REFRESH_ERROR~=message then
|
||||
_G.__GAC_AA_ROUND_REFRESH_ERROR=message
|
||||
CS.UnityEngine.Debug.Log('[GAC_AA_ROUND_SYNC] ERROR '..message)
|
||||
end
|
||||
end end
|
||||
Reference in new issue
Block a user