230 lines
7.4 KiB
Go
230 lines
7.4 KiB
Go
package protocol
|
|
|
|
// GameSwitchEntry represents a single switch configuration entry.
|
|
type GameSwitchEntry struct {
|
|
Name string
|
|
Value bool
|
|
}
|
|
|
|
// GameSwitchCatalog contains all 203 UX.GameSwitch flags.
|
|
var GameSwitchCatalog = []GameSwitchEntry{
|
|
{"EnableRaidTimeFix", true},
|
|
{"EnableClientZoneClosure", true},
|
|
{"UseEditorSectorTileInfoJsonPath1", true},
|
|
{"EnableNavMultiverseChain", true},
|
|
{"EnableRecycleItem", true},
|
|
{"EnableComposeItem", true},
|
|
{"DisableEditXingZheDangAn", false},
|
|
{"EnableUpdateSignature", true},
|
|
{"EnablePartialAntiAddiction", false},
|
|
{"EnableAntiAddiction", false},
|
|
{"EnableRealNameBeforeCreateRole", false},
|
|
{"EnableExchangeGold", true},
|
|
{"EnableNpcShop", true},
|
|
{"EnableFashionStore", true},
|
|
{"Enable4SStore", true},
|
|
{"EnableCreateRole", true},
|
|
{"EnableSeasonalBattlePass", true},
|
|
{"EnableGamePlayBattlePass", true},
|
|
{"EnableGachaSystem", true},
|
|
{"EnableRadiantChest", true},
|
|
{"EnableCloset", true},
|
|
{"EnableGachaMilestone", true},
|
|
{"EnableHeartbeatTimeoutCheckDebug", false},
|
|
{"EnableHeartbeatTimeoutCheckRelease", true},
|
|
{"EnableLoginReconnect", true},
|
|
{"EnableLoginOnlineAndDetachMatchLink", true},
|
|
{"AutoSwitchTextModeWithAllPrefix", true},
|
|
{"ChatLimitRegion", true},
|
|
{"EnableMahjong", true},
|
|
{"EnableMahjongFriend", true},
|
|
{"EnableMahjongWithNpc", true},
|
|
{"EnableMahjongPve", true},
|
|
{"EnableChangePersonalZoneHeadInfo", true},
|
|
{"EnableSpiritAddExp", true},
|
|
{"EnableSpiritAbilityAddExp", true},
|
|
{"EnableSpiritDomainLevelUp", true},
|
|
{"EnableForeignIpSns", true},
|
|
{"EnableSharePhoto_Netease", true},
|
|
{"EnableSharePhoto_Oppo", true},
|
|
{"EnableSharePhoto_Huawei", true},
|
|
{"EnableSharePhoto_NearmeVivo", true},
|
|
{"EnableSharePhoto_XiaomiApp", true},
|
|
{"EnableSharePhoto_CoolpadSdk", true},
|
|
{"EnableSharePhoto_Flyme", true},
|
|
{"EnableSharePhoto_LenovoOpen", true},
|
|
{"EnableSharePhoto_Gionee", true},
|
|
{"EnableSharePhoto_UcPlatform", true},
|
|
{"EnableSharePhoto_360Assistant", true},
|
|
{"EnableSharePhoto_Baidu", true},
|
|
{"EnableSharePhoto_BilibiliSdk", true},
|
|
{"EnableSharePhoto_Dtkj", true},
|
|
{"EnableSharePhoto_AppStore", true},
|
|
{"EnableSharePhoto_TapTapDev", true},
|
|
{"EnableSharePhoto_TapTapDis", true},
|
|
{"EnableSharePhoto_HykbDev", true},
|
|
{"EnableSharePhoto_HykbDis", true},
|
|
{"EnableFightSpiritSkillLevelUp", true},
|
|
{"EnableSignIn", true},
|
|
{"EnableSaveCardGroupName", true},
|
|
{"EnableAetherNpcFixedSpawnPointRule", true},
|
|
{"EnableNpcUseBelonging", true},
|
|
{"EnableVehicleNpcDefaultPlayPoi1", true},
|
|
{"EnableAgentInteractForbidFromServer1", true},
|
|
{"EnableTeleportOnCrossBoundary", true},
|
|
{"EnableAgentCompanionAIIdleChat", true},
|
|
{"EnableAgentPlayPoiCommand", true},
|
|
{"EnableNpcGateway", true},
|
|
{"EnableNpcDensityMigration1", true},
|
|
{"EnableLink", true},
|
|
{"EnableLinkPlanningBoardUnlockCheck", true},
|
|
{"ProfilerAetherVehicle", true},
|
|
{"ProfilerStaticVehicle", true},
|
|
{"ProfilerAetherVehicleGO", true},
|
|
{"EnableRaidDetachLocalCleanup", true},
|
|
{"ProfilerIntersection", true},
|
|
{"ProfilerIntersectionRender", true},
|
|
{"EnablePoliceJobStoryLegacy", true},
|
|
{"EnableGroupAIStory", true},
|
|
{"EnableGroupAIDebug", true},
|
|
{"EnableNewProgress", true},
|
|
{"EnableDGTemporaryResource", true},
|
|
{"ForbidStimEvent", false},
|
|
{"EnableZoneGraphUndirectLane", true},
|
|
{"EnableNPCNormalMoveBeta", true},
|
|
{"EnableIndoor", true},
|
|
{"EnableVehicleNpcBoardingSync1", true},
|
|
{"EnableAetherNpcTypeAgnosticSync", true},
|
|
{"EnableVehicleBoardingUnifiedSync1", true},
|
|
{"EnableLinkTest", true},
|
|
{"EnableSpawnSpoonBlockInteractionCheck", true},
|
|
{"EnableVehicleOverrideSync", true},
|
|
{"EnableVehicleDefaultSuitExpand", true},
|
|
{"EnableECSResponse", true},
|
|
{"DebugSyncVehicleDangerZoneToClient", false},
|
|
{"DebugHiddenArea", false},
|
|
{"DebugAetherVehicle", false},
|
|
{"DebugAetherIntersection", false},
|
|
{"DebugAetherVehicleLane", false},
|
|
{"DebugAssetTagPreview", false},
|
|
{"DebugLogicVehicle", false},
|
|
{"EnableDropRequireReliableRpcOnClient", true},
|
|
{"ProfilerRandomEvent", true},
|
|
{"ProfilerDestructible", true},
|
|
{"ProfilerGadget", true},
|
|
{"ProfilerDynamicGo", true},
|
|
{"ProfilerSpoonAgent", true},
|
|
{"ProfilerWildEnemy", true},
|
|
{"ProfilerEnableMetro", true},
|
|
{"BlockMetroForChongxiao", false},
|
|
{"MetroCrouchSwitch", true},
|
|
{"ProfilerEnableNpcGo", true},
|
|
{"DisableBartender", false},
|
|
{"DisableScientistProduceItem", false},
|
|
{"DisableScientistBreakdownItem", false},
|
|
{"DisableScientistTakeProducedItem", false},
|
|
{"DisableScientistFactorMachine", false},
|
|
{"DisableScientistEnchant", false},
|
|
{"DisableItemExchange", false},
|
|
{"EnableFallingDownOnDeath2", true},
|
|
{"EnableBehaveLegacy", true},
|
|
{"EnableBeggerStory", true},
|
|
{"EnableGPUScene", true},
|
|
{"EnableFavorNpcBTree", true},
|
|
{"EnableFavorNpcCommute", true},
|
|
{"EnableSwitchSpiritToTempFavorNpc1", true},
|
|
{"SkipSwitchOutExitTransition", true},
|
|
{"EnableGenderTransform", true},
|
|
{"EnableIndoorAbilityLimit", true},
|
|
{"EnableRemoveAbilityLimitOldBuffHandlers", true},
|
|
{"EnableSpoonNpc", true},
|
|
{"EnableSearchRaidSpoonNpc", true},
|
|
{"EnableParty", true},
|
|
{"EnableRanking", true},
|
|
{"EnableJanitor", true},
|
|
{"EnableBeggarAiPainting", true},
|
|
{"EnableNewBag", true},
|
|
{"EnableNotices", true},
|
|
{"EnableAkashicSystem", true},
|
|
{"EnableProfile", true},
|
|
{"EnableRadioStation", true},
|
|
{"EnableCityPedia", true},
|
|
{"EnableEonBug", true},
|
|
{"EnableTutorial", true},
|
|
{"EnableVehicleRequisitionSystemUnlock1", true},
|
|
{"EnableTestProcess", true},
|
|
{"EnableForceStopNaN", true},
|
|
{"EnableOtlpLogger", true},
|
|
{"EnableResourceLoadCollect", true},
|
|
{"EnableHUDRecommend", true},
|
|
{"EnableAttachmentSystem", true},
|
|
{"EnableFishing", true},
|
|
{"EnablePSOCollect", true},
|
|
{"KeepBehaviorSchedulerWhenSwitch", true},
|
|
{"KeepBehaviorSchedulerWhenSwitch2", true},
|
|
{"OpenNewSettleColliderClip2", true},
|
|
{"OpenNewSettleEffectClip2", true},
|
|
{"OpenNewSettleCreation2", true},
|
|
{"UseCoreLibRouteFinder", true},
|
|
{"EnableScratchServerReward", true},
|
|
{"DisableYanJieAIReply", false},
|
|
{"EnableCompetitionSeason", true},
|
|
{"EnableActivity", true},
|
|
{"EnableChangeNameByItem", true},
|
|
{"EnableThisYearChat", true},
|
|
{"EnableSpecialTimeUserChat", true},
|
|
{"EnableBuzzCenter", true},
|
|
{"EnableCheckIn", true},
|
|
{"EnableDossier", true},
|
|
{"EnableScope", true},
|
|
{"EnableFriends", true},
|
|
{"EnableClub", true},
|
|
{"EnableBBChat", true},
|
|
{"EnableMail", true},
|
|
{"EnableCustom", true},
|
|
{"EnableBubble", true},
|
|
{"EnablePhoto", true},
|
|
{"EnableCatExpress", true},
|
|
{"EnableDutyTerminal", true},
|
|
{"EnableMall", true},
|
|
{"EnableMallRecommend", true},
|
|
{"EnableMallDirectSale", true},
|
|
{"EnableMallBundle", true},
|
|
{"EnableCharge", true},
|
|
{"EnableSpiritTalent", true},
|
|
{"EnableJobTalent", true},
|
|
{"EnableGameplayTalent", true},
|
|
{"EnableAchievement", true},
|
|
{"EnablePhone", true},
|
|
{"EnableTrade", true},
|
|
{"EnableGift", true},
|
|
{"EnableGiftFriendTimeCheck", true},
|
|
{"EnableTime", true},
|
|
{"DisableOptGoMode", false},
|
|
{"DisableMonsterOptGoMode", false},
|
|
{"EnablePedConvertWorthyCheck", true},
|
|
{"EnableLifeScheduleNpcAlwaysGo", true},
|
|
{"EnableAnimatorLODOtherPlayer", true},
|
|
{"EnableSpecialAnimateCullingMode", true},
|
|
{"EnableAnimatorIncRebind", true},
|
|
{"SimplifyKinematicInVehicle", true},
|
|
{"EnableInteractionAction", true},
|
|
{"EnableCollectionBook", true},
|
|
{"EnableMonthlyPass", true},
|
|
}
|
|
|
|
// BuildGameSwitchPayload encodes the game switches as required by SyncGameSwitchToClient_3.
|
|
// Format:
|
|
// [Int7 count]
|
|
// for each: [UxString key] [TypeTagBool (0x02)] [Bool (1 byte)]
|
|
func BuildGameSwitchPayload() []byte {
|
|
w := NewUxWriter()
|
|
w.Int7(len(GameSwitchCatalog))
|
|
for _, entry := range GameSwitchCatalog {
|
|
w.UxString(entry.Name)
|
|
w.U8(2) // TypeTagBool
|
|
w.Bool(entry.Value)
|
|
}
|
|
return w.Bytes()
|
|
}
|