少年修仙传客户端代码仓库
client_linchunjie
2018-11-10 536d04af5b638a04efb46f93214b7f9ac73af875
Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
225个文件已修改
23个文件已添加
3726 ■■■■ 已修改文件
Core/Common/ResourcesPath.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/Common/Singleton.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/Common/SingletonMonobehaviour.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/Config/AssetSource.cs 350 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Common/Equation.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/DataToCtl/PackageRegedit.cs 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Login/Launch.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Login/LaunchPostProcess.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/ConfigManager.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Player/Equip/PlayerStoneData.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Player/Market/MarketModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Player/PlayerDatas.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Player/Realm/RealmModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/SnxxzGame.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/GameNetPackBasic.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/GameNetSystem.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/Socket/ClientSocketController.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/ResModule/AssetBundle/AssetBundleUtility.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/ResModule/BuiltInLoader.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/ResModule/GameObjectPoolManager.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/ResModule/UILoader.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/SDK/SDKUtility.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/SFX/SFXPlayUtility.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/Utilities/AnyCountDownUtility.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/Utilities/AssetPreLoad.cs 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Skill/FlyObject/FlyObjectManager.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Skill/SkillHelper.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Actor/Status/StatusMgr.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/BossFakeLineUtility.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/BattleEffectPlayRule.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/GameActor/GAMgr.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/MapTransferUtility.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/PreFightMission.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/PrepareHandler.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/MapEditor/GuideDialogueModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/MapEditor/GuideMessageModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/MapEditor/NewGuideModel.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/MapEditor/StoryHintModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/StageManager.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua.meta 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/BuildInInit.cs 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/BuildInInit.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/CSharpCallLua.cs 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/CSharpCallLua.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaBehaviour.cs 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaBehaviour.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaConfigUtility.cs 797 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaConfigUtility.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaGameNetSystem.cs 313 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaGameNetSystem.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaGenEx.cs 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaGenEx.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaLaunch.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaLaunch.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaModelUtility.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaModelUtility.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaUtility.cs 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaUtility.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaWindow.cs 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaWindow.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaWindowUtility.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Lua/LuaWindowUtility.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Achievement/AchievementModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Activity/ActivityModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/AssetVersion/AssetVersionUtility.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/AssetVersion/DownLoadAndDiscompressTask.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/AssetVersion/InGameDownLoad.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BetterItemGet/BetterEquipGetModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BetterItemGet/ItemUseModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BetterItemGet/PreciousItemGetModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BetterItemGet/RealmBetterEquipModel .cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BlastFurnace/BlastFurnaceModel.cs 208 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BlastFurnace/GetItemPathModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BlastFurnace/PrayForDurgModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BossReborn/BossRebornModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/BossShow/BossShowModel.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/ChatCenter.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Chat/VoiceHttpRequest.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/ClientVersion/VersionUtility.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Compose/New/ComposeWinModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Compose/New/SelectEquipModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestActionTimer.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestWin.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/ResourcesBackModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Debug/DebugUtility.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dogz/DogzPackModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DogzDungeon/DogzDungeonModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonData.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonLiquidModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/DungeonModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Dungeon/TrialDungeonModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyBossModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyGrabBossModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyLeagueModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/FairyModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/KingFairyModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairyAu/UnionTaskModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FairylandCeremony/FairylandCeremonyModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FakeDungeon/FakeDungeonUtility.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/BossHomeModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/DemonJarModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/ElderGodAreaModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/FindPreciousModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/FindPreciousTimer.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/LootPreciousFrameWin.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/PersonalBossModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/RewardPreviewGroup.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FindPrecious/WorldBossModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/FriendSystem/New/FriendsModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GMCommand/GMCmdModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Guard/GuardModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HappyXB/HappyXBModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HeavenBattle/HeavenBattleInfo.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HeavenBattle/HeavenBattleModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HttpRequest/HttpRequest.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/KnapsackTimeCDMgr.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/BoxGetItemModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/ItemOverdueModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/ItemTipsModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PackModelInterface.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PackSendQuestMgr.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/PlayerPackModels.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/TreasureEffectModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/New/BatchUseModel.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/New/KnapSackEventMgr.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Login/LoginModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Login/ServerListCenter.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/LoginAd/LoginAdModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/CapacityDelayModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/CoinTaskTipModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/FeatureNoticeModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/MainRedDot.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/OffLineOnHookModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/PKModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/StoryMissionsModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/TaskAllocation.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/MainInterfacePanel/TipPanel.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Market/PutawayData.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Message/BattleHint.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Message/GMNotify.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Message/SysNotifyMgr.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/NewBieGuidance/FunctionalGuideCenter.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/NewBieGuidance/NewBieCenter.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OffLineTime/OffLineTimeLackModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/FlashRushToBuyModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/FlashSaleModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/ImpactRankModel.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/InSevenDayModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/MonthlyInvestmentModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OSGiftModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OSRedEnvelopeModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/OpenServerActivityNotifyModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/RedEnvelopeModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/OpenServerActivity/WishingPoolModel.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Pet/PetReinforceModel.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Pet/RidingAndPetActivationModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/PlayerDead/PlayerDeadModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Rank/RankModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Realm/RealmPracticeModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Redpoint/Redpoint.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Redpoint/RedpointCenter.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Role/MagicianModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Role/RoleModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Role/TitleModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/RoleParticulars/RoleParticularModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/RolePromote/RolePromoteModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Rune/RuneComposeModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Rune/RuneModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/RuneTower/RuneTowerModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Skill/QuickSetting.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Skill/SkillModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Skill/TalentModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/StartCoroutine/CoroutineMgr.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Store/BuyItemPopModel.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Store/Logic/BuySuccessModel.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Store/StoreModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/EquipReinforceModel.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/EquipSuit/PlayerSuitModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/EquipWashModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/GemModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/GodBeastModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/HowToPlayModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/WashProModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Strengthening/WingsRedDot.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/SystemSetting/ActivitiesPushMgr.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/SystemSetting/ChatSetting.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/SystemSetting/HangUpSetModel.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/SystemSetting/PrivateRemind.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/SystemSetting/SetPrivateModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/SystemSetting/SettingEffectMgr.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/SystemSetting/SettingMgr.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/SystemSetting/SystemSetting.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/TaiChi/TaiChiModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Team/GroupDungeonChallengeProcessor.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Team/TeamModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Test/TestWin.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Tip/PwdKeyboard.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureSoulModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/TreasureFindHost/TreasureFindHostModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/FairyJadeInvestmentModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/FirstTimeRechargeModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/LimitedTimePackageModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/NeedForWhiteModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/OSTimeLimitGiftModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/VipInvest/VipInvestModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/VipInvest/WheelOfFortuneModel.cs 139 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Vip/VipModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Voice/SpeechTranslate.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/AwardExchangeModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/ConsumeRebateModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/LevelGiftModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/MultipleExpModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/MultipleRealmPointModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/OperationTimeHepler.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/PrayerModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/SignInModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Welfare/WelfareCenter.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowBase/ModelCenter.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowBase/WindowCenter.cs 225 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WindowJump/WindowJumpMgr.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WorldMap/MapModel.cs 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/WorldMap/WorldMapSkip.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Common/FunctionButton.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Common/ItemBehaviour.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Common/TimeDownMgr.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Common/UI3DModelExhibition.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Common/WindowConfig.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Core/ButtonEx.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Effect/EffectMgr.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Effect/TimeMgr.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Effect/UIEffect.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/ComponentExtersion.cs 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/DeviceUtility.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/FileExtersion.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/GMCommand.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/GlobalTimeEvent.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/LanguageVerify.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/LayerUtility.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/MaterialUtility.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/OperationLogCollect.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/RunTimeExceptionUtility.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/TimeUtility.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/TransformExtension.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/UIHelper.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Utility/UIUtility.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/Common/ResourcesPath.cs
@@ -1,5 +1,6 @@
using UnityEngine;
[XLua.LuaCallCSharp]
public class ResourcesPath : Singleton<ResourcesPath>
{
@@ -39,6 +40,7 @@
    public static readonly string CONFIG_FODLER = ResourcesOutPath + "refdata/Config";
    public static readonly string AUDIO_SUFFIX = "Audio/";
    public static readonly string LUA_FODLER = ResourcesOutPath + "Lua";
    #endregion
Core/Common/Singleton.cs
@@ -1,4 +1,5 @@

[XLua.LuaCallCSharp]
public class Singleton<T> where T : class, new() {
    private static T m_Instance;
Core/Common/SingletonMonobehaviour.cs
@@ -1,5 +1,6 @@
using UnityEngine;
[XLua.LuaCallCSharp]
public class SingletonMonobehaviour<T> : MonoBehaviour where T : MonoBehaviour
{
Core/Config/AssetSource.cs
@@ -2,174 +2,192 @@
using System.Collections.Generic;
using UnityEngine;
public class AssetSource
[XLua.LuaCallCSharp]
public class AssetSource
{
    public static bool allFromEditor {
        get {
            return audioFromEditor
                && effectFromEditor
                && mobFromEditor
                && refdataFromEditor
                && sceneFromEditor
                && shaderFromEditor
                && uiFromEditor
                && builtInFromEditor;
        }
        set {
            audioFromEditor = value;
            effectFromEditor = value;
            mobFromEditor = value;
            refdataFromEditor = value;
            shaderFromEditor = value;
            sceneFromEditor = value;
            uiFromEditor = value;
            builtInFromEditor = value;
        }
    }
    static bool m_AudioFromEditor = false;
    public static bool audioFromEditor {
        get {
#if UNITY_EDITOR
            return LocalSave.GetBool("Asset_AudioFromEditor", true);
#else
            return false;
#endif
        }
        set {
#if UNITY_EDITOR
            LocalSave.SetBool("Asset_AudioFromEditor", value);
#else
            m_AudioFromEditor=value;
#endif
        }
    }
    static bool m_EffectFromEditor = false;
    public static bool effectFromEditor {
        get {
#if UNITY_EDITOR
            return LocalSave.GetBool("Asset_EffectFromEditor", true);
#else
            return false;
#endif
        }
        set {
#if UNITY_EDITOR
            LocalSave.SetBool("Asset_EffectFromEditor", value);
#else
            m_AudioFromEditor=value;
#endif
        }
    }
    static bool m_MobFromEditor = false;
    public static bool mobFromEditor {
        get {
#if UNITY_EDITOR
            return LocalSave.GetBool("Asset_MobFromEditor", true);
#else
            return false;
#endif
        }
        set {
#if UNITY_EDITOR
            LocalSave.SetBool("Asset_MobFromEditor", value);
#else
            m_MobFromEditor=value;
#endif
        }
    }
    static bool m_RefdataFromEditor = false;
    public static bool refdataFromEditor {
        get {
#if UNITY_EDITOR
            return LocalSave.GetBool("Asset_RefdataFromEditor", true);
#else
            return false;
#endif
        }
        set {
#if UNITY_EDITOR
            LocalSave.SetBool("Asset_RefdataFromEditor", value);
#else
            m_RefdataFromEditor=value;
#endif
        }
    }
    static bool m_SceneFromEditor = false;
    public static bool sceneFromEditor {
        get {
#if UNITY_EDITOR
            return LocalSave.GetBool("Asset_SceneFromEditor", true);
#else
            return false;
#endif
        }
        set {
#if UNITY_EDITOR
            LocalSave.SetBool("Asset_SceneFromEditor", value);
#else
            m_SceneFromEditor=value;
#endif
        }
    }
    static bool m_ShaderFromEditor = false;
    public static bool shaderFromEditor {
        get {
#if UNITY_EDITOR
            return LocalSave.GetBool("Asset_ShaderFromEditor", true);
#else
            return false;
#endif
        }
        set {
#if UNITY_EDITOR
            LocalSave.SetBool("Asset_ShaderFromEditor", value);
#else
            m_ShaderFromEditor=value;
#endif
        }
    }
    static bool m_UIFromEditor = false;
    public static bool uiFromEditor {
        get {
#if UNITY_EDITOR
            return LocalSave.GetBool("Asset_UIFromEditor", true);
#else
            return false;
#endif
        }
        set {
#if UNITY_EDITOR
            LocalSave.SetBool("Asset_UIFromEditor", value);
#else
            m_UIFromEditor=value;
#endif
        }
    }
    static bool m_BuiltInFromEditor = false;
    public static bool builtInFromEditor {
        get {
#if UNITY_EDITOR
            return LocalSave.GetBool("Asset_BuiltInFromEditor", true);
#else
            return false;
#endif
        }
        set {
#if UNITY_EDITOR
            LocalSave.SetBool("Asset_BuiltInFromEditor", value);
#else
            m_BuiltInFromEditor=value;
#endif
        }
    public static bool allFromEditor {
        get {
            return audioFromEditor
                && effectFromEditor
                && mobFromEditor
                && refdataFromEditor
                && sceneFromEditor
                && shaderFromEditor
                && uiFromEditor
                && builtInFromEditor;
        }
        set {
            audioFromEditor = value;
            effectFromEditor = value;
            mobFromEditor = value;
            refdataFromEditor = value;
            shaderFromEditor = value;
            sceneFromEditor = value;
            uiFromEditor = value;
            builtInFromEditor = value;
        }
    }
    static bool m_AudioFromEditor = false;
    public static bool audioFromEditor {
        get {
#if UNITY_EDITOR
            return LocalSave.GetBool("Asset_AudioFromEditor", true);
#else
            return false;
#endif
        }
        set {
#if UNITY_EDITOR
            LocalSave.SetBool("Asset_AudioFromEditor", value);
#else
            m_AudioFromEditor=value;
#endif
        }
    }
    static bool m_EffectFromEditor = false;
    public static bool effectFromEditor {
        get {
#if UNITY_EDITOR
            return LocalSave.GetBool("Asset_EffectFromEditor", true);
#else
            return false;
#endif
        }
        set {
#if UNITY_EDITOR
            LocalSave.SetBool("Asset_EffectFromEditor", value);
#else
            m_AudioFromEditor=value;
#endif
        }
    }
    static bool m_MobFromEditor = false;
    public static bool mobFromEditor {
        get {
#if UNITY_EDITOR
            return LocalSave.GetBool("Asset_MobFromEditor", true);
#else
            return false;
#endif
        }
        set {
#if UNITY_EDITOR
            LocalSave.SetBool("Asset_MobFromEditor", value);
#else
            m_MobFromEditor=value;
#endif
        }
    }
    static bool m_RefdataFromEditor = false;
    public static bool refdataFromEditor {
        get {
#if UNITY_EDITOR
            return LocalSave.GetBool("Asset_RefdataFromEditor", true);
#else
            return false;
#endif
        }
        set {
#if UNITY_EDITOR
            LocalSave.SetBool("Asset_RefdataFromEditor", value);
#else
            m_RefdataFromEditor=value;
#endif
        }
    }
    static bool m_SceneFromEditor = false;
    public static bool sceneFromEditor {
        get {
#if UNITY_EDITOR
            return LocalSave.GetBool("Asset_SceneFromEditor", true);
#else
            return false;
#endif
        }
        set {
#if UNITY_EDITOR
            LocalSave.SetBool("Asset_SceneFromEditor", value);
#else
            m_SceneFromEditor=value;
#endif
        }
    }
    static bool m_ShaderFromEditor = false;
    public static bool shaderFromEditor {
        get {
#if UNITY_EDITOR
            return LocalSave.GetBool("Asset_ShaderFromEditor", true);
#else
            return false;
#endif
        }
        set {
#if UNITY_EDITOR
            LocalSave.SetBool("Asset_ShaderFromEditor", value);
#else
            m_ShaderFromEditor=value;
#endif
        }
    }
    static bool m_UIFromEditor = false;
    public static bool uiFromEditor {
        get {
#if UNITY_EDITOR
            return LocalSave.GetBool("Asset_UIFromEditor", true);
#else
            return false;
#endif
        }
        set {
#if UNITY_EDITOR
            LocalSave.SetBool("Asset_UIFromEditor", value);
#else
            m_UIFromEditor=value;
#endif
        }
    }
    static bool m_BuiltInFromEditor = false;
    public static bool builtInFromEditor {
        get {
#if UNITY_EDITOR
            return LocalSave.GetBool("Asset_BuiltInFromEditor", true);
#else
            return false;
#endif
        }
        set {
#if UNITY_EDITOR
            LocalSave.SetBool("Asset_BuiltInFromEditor", value);
#else
            m_BuiltInFromEditor=value;
#endif
        }
    }
    static bool m_LuaFromEditor = false;
    public static bool luaFromEditor {
        get {
#if UNITY_EDITOR
            return LocalSave.GetBool("Asset_LuaFromEditor", true);
#else
            return false;
#endif
        }
        set {
#if UNITY_EDITOR
            LocalSave.SetBool("Asset_LuaFromEditor", value);
#else
            m_LuaFromEditor=value;
#endif
        }
    }
}
Core/GameEngine/Common/Equation.cs
@@ -5,6 +5,7 @@
using System.Text.RegularExpressions;
using UnityEngine;
[XLua.LuaCallCSharp]
public class Equation : Singleton<Equation>
{
    public static readonly List<char> operatorList = new List<char>() { '*', '-', '+', '/', '^', '!', '@', '%', ';', '#', '$', '~', '&' };
Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -421,6 +421,7 @@
        try
        {
            packToBusinessTable[_package.cmd].Done(_package);
            CSharpCallLua.OnRecieveCSharpNetPackage(_package.cmd);
        }
        catch (Exception ex)
        {
@@ -428,16 +429,13 @@
        }
    }
    static byte[] vCmdBytes = new byte[2];
    /// <summary>
    /// 转换一个协议包
    /// </summary>
    /// <param name="vBytes"></param>
    /// <returns></returns>
    public static GameNetPackBasic TransPack(byte[] vBytes)
    public static GameNetPackBasic TransPack( ushort cmd, byte[] vBytes)
    {
        vBytes = GameNetEncode.BaseXorSub(vBytes);
#if UNITY_EDITOR
        int length = vBytes.Length;
        string vStr = "";
@@ -447,12 +445,9 @@
        }
#endif
        Array.Copy(vBytes, 0, vCmdBytes, 0, 2);
        ushort vPackCmd = (ushort)((ushort)(vCmdBytes[0] << 8) + vCmdBytes[1]);
        if (packageTable.ContainsKey(vPackCmd)) // 存在相应的登记
        if (packageTable.ContainsKey(cmd)) // 存在相应的登记
        {
            var packageType = packageTable[vPackCmd];
            var packageType = packageTable[cmd];
            // 实例化并强转为协议包基类
            var packageInstance = packageType.Assembly.CreateInstance(packageType.Name) as GameNetPackBasic;
            packageInstance.ReadFromBytes(vBytes);// 解析内容
@@ -467,13 +462,6 @@
            NetPkgCtl.AddNetPkg(vStr, NetPkgType.Server, packageInstance.ToString(), FieldPrint.PrintFields(packageInstance), FieldPrint.PrintFieldsExpand(packageInstance, true));
#endif
            return packageInstance;
        }
        else
        {
#if UNITY_EDITOR
            NetPkgCtl.AddNetPkg(vStr, NetPkgType.Server, string.Empty, string.Empty, null);
            DebugEx.LogFormat("C#层收到未登记的解包协议:{0},{1}", vCmdBytes[0].ToString("x2"), vCmdBytes[1].ToString("x2"));
#endif
        }
        return null;
    }
Core/GameEngine/Login/Launch.cs
@@ -350,6 +350,7 @@
            StartCoroutine(AssetBundleUtility.Instance.Initialize());
        }
        CSharpCallLua.Init();
        m_CurrentStage = LaunchStage.ConfigLoad;
        LaunchPostProcess.Instance.Begin();
@@ -364,6 +365,7 @@
        OperationLogCollect.Instance.RecordLauchEvent(3);
        OperationLogCollect.Instance.RecordEvent(3);
        LuaUtility.Instance.Init();
        ShaderUtility.WarmUpAll();
        SpeechTranslate.Instance.RequestGetToken();
Core/GameEngine/Login/LaunchPostProcess.cs
@@ -5,6 +5,7 @@
using TableConfig;
using System;
[XLua.LuaCallCSharp]
public class LaunchPostProcess : SingletonMonobehaviour<LaunchPostProcess>
{
Core/GameEngine/Model/ConfigManager.cs
@@ -8,6 +8,7 @@
using UnityEngine;
using System.Threading;
[XLua.LuaCallCSharp]
public class Config : Singleton<Config>
{
Core/GameEngine/Model/Player/Equip/PlayerStoneData.cs
@@ -7,6 +7,7 @@
/// <summary>
/// 宝石数据
/// </summary>
[XLua.LuaCallCSharp]
public class PlayerStoneData : Singleton<PlayerStoneData>
{
    private Dictionary<int, uint[]> stoneDic = new Dictionary<int, uint[]>();
Core/GameEngine/Model/Player/Market/MarketModel.cs
@@ -4,7 +4,8 @@
using TableConfig;
namespace Snxxz.UI
{
    public class MarketModel : Model, IBeforePlayerDataInitialize
    [XLua.LuaCallCSharp]
    public class MarketModel : Model, IBeforePlayerDataInitialize
    {
        public override void Init()
        {
Core/GameEngine/Model/Player/PlayerDatas.cs
@@ -3,6 +3,7 @@
using System;
using Snxxz.UI;
[XLua.LuaCallCSharp]
public class PlayerDatas : Singleton<PlayerDatas>
{
    public GA_Hero hero = null;
Core/GameEngine/Model/Player/Realm/RealmModel.cs
@@ -8,7 +8,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class RealmModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize
    [XLua.LuaCallCSharp]
    public class RealmModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize
    {
        DungeonModel m_DungeonModel;
        DungeonModel dungeonModel
Core/GameEngine/SnxxzGame.cs
@@ -3,6 +3,7 @@
using UnityEngine.Events;
using UnityEngine;
[XLua.LuaCallCSharp]
public class SnxxzGame : SingletonMonobehaviour<SnxxzGame>
{
    private event UnityAction m_UpdateActions;
Core/NetworkPackage/GameNetPackBasic.cs
@@ -85,7 +85,10 @@
        try
        {
            if (_writedBytes == null)
            {
                _writedBytes = new byte[0];
            }
            byte[] vCmdAndSubCmd = new byte[2];
            vCmdAndSubCmd[0] = (byte)((_cmd & 0xFF00) >> 8);
            vCmdAndSubCmd[1] = (byte)(_cmd & 0xFF);
@@ -104,6 +107,7 @@
                var _lengthBytes = BitConverter.GetBytes((ushort)vCmdAndBody.Length);
                vExCmdAndBody[2] = _lengthBytes[0];
                vExCmdAndBody[3] = _lengthBytes[1];
                Array.Copy(vCmdAndBody, 0, vExCmdAndBody, 4, vCmdAndBody.Length);
                vCmdAndBody = vExCmdAndBody;
            }
Core/NetworkPackage/GameNetSystem.cs
@@ -4,6 +4,7 @@
using System.Collections.Generic;
using Snxxz.UI;
[XLua.LuaCallCSharp]
public class GameNetSystem : Singleton<GameNetSystem>
{
    NetUpdateBehaviour m_NetUpdateBehaviour;
Core/NetworkPackage/Socket/ClientSocketController.cs
@@ -9,8 +9,7 @@
public class ClientSocketController
{
    Socket m_Socket;
    public Socket socket
    {
    public Socket socket {
        get { return m_Socket; }
    }
@@ -205,6 +204,7 @@
    }
    static byte[] vCmdBytes = new byte[2];
    /// <summary>
    /// 阅读信息
    /// </summary>
@@ -249,16 +249,28 @@
                vPackBytes = new byte[vBodyLeng];
                Array.Copy(fixBytes, vReadIndex + 6, vPackBytes, 0, vBodyLeng); // 提取包的字节内容
                                                                                // 完整的包则读包
                vNetpack = PackageRegedit.TransPack(vPackBytes);
                if (vNetpack != null)
                {
                    if (DebugEx.EnableNetLog)
                    {
                        DebugEx.NetLogFormat("收包:{0}", vNetpack.GetType().Name);
                    }
                    GameNetSystem.Instance.PushPackage(vNetpack);
                vPackBytes = GameNetEncode.BaseXorSub(vPackBytes);
                Array.Copy(vPackBytes, 0, vCmdBytes, 0, 2);
                var cmd = (ushort)((ushort)(vCmdBytes[0] << 8) + vCmdBytes[1]);
                if (PackageRegedit.Contain(cmd))
                {
                    vNetpack = PackageRegedit.TransPack(cmd, vPackBytes);
                    if (vNetpack != null)
                    {
                        if (DebugEx.EnableNetLog)
                        {
                            DebugEx.NetLogFormat("收包:{0}", vNetpack.GetType().Name);
                        }
                        GameNetSystem.Instance.PushPackage(vNetpack);
                    }
                }
                else
                {
                    CSharpCallLua.OnRecieveLuaNetPackage(cmd, vPackBytes);
                }
                vReadIndex += 6 + vBodyLeng;
            }
        }
@@ -329,7 +341,7 @@
        Array.Copy(vMsgBodyLength, 0, vTotal, 2, vMsgBodyLength.Length);
        Array.Copy(vBytes, 0, vTotal, 6, vBytes.Length);
        SendBytes(vBytes);
        SendBytes(vTotal);
    }
    /// <summary>
Core/ResModule/AssetBundle/AssetBundleUtility.cs
@@ -4,6 +4,7 @@
using System.Collections.Generic;
using UnityEngine;
[XLua.LuaCallCSharp]
public class AssetBundleUtility : SingletonMonobehaviour<AssetBundleUtility>
{
    private List<AssetBundleInfo> m_AssetBundleInfoList = new List<AssetBundleInfo>();
Core/ResModule/BuiltInLoader.cs
@@ -88,4 +88,32 @@
        return audioClip;
    }
    public static T LoadScriptableObject<T>(string name) where T : ScriptableObject
    {
        T config = null;
        if (AssetSource.builtInFromEditor)
        {
#if UNITY_EDITOR
            var resourcePath = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath,
                                                   "BuiltIn/ScriptableObject/", name, ".asset");
            config = UnityEditor.AssetDatabase.LoadAssetAtPath<T>(resourcePath);
#endif
        }
        else
        {
            var assetInfo = new AssetInfo("builtin/scriptableobject", name);
            config = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as T;
        }
        if (config == null)
        {
            Debug.LogErrorFormat("BuiltIn.LoadScriptableObject() => 加载不到资源: {0}.", name);
        }
        return config;
    }
}
Core/ResModule/GameObjectPoolManager.cs
@@ -3,6 +3,7 @@
using System;
using TableConfig;
[XLua.LuaCallCSharp]
public class GameObjectPoolManager : SingletonMonobehaviour<GameObjectPoolManager>
{
#if UNITY_EDITOR
Core/ResModule/UILoader.cs
@@ -5,6 +5,7 @@
using TableConfig;
using System.IO;
[XLua.LuaCallCSharp]
public class UILoader
{
    readonly static string PREFAB_EXTERSION = ".prefab";
Core/SDK/SDKUtility.cs
@@ -4,6 +4,7 @@
using System.Collections;
using System.Collections.Generic;
[XLua.LuaCallCSharp]
public class SDKUtility : SingletonMonobehaviour<SDKUtility>
{
    [System.Runtime.InteropServices.DllImport("__Internal")]
Core/SFX/SFXPlayUtility.cs
@@ -4,6 +4,7 @@
using System;
using System.Collections;
[XLua.LuaCallCSharp]
public class SFXPlayUtility : SingletonMonobehaviour<SFXPlayUtility>
{
Core/Utilities/AnyCountDownUtility.cs
@@ -2,6 +2,7 @@
using UnityEngine.Events;
using System.Collections.Generic;
[XLua.LuaCallCSharp]
public class AnyCountDownUtility : SingletonMonobehaviour<AnyCountDownUtility>
{
    private Stack<CDItem> m_FreeStack;
Core/Utilities/AssetPreLoad.cs
@@ -1,10 +1,11 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TableConfig;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TableConfig;
[XLua.LuaCallCSharp]
public class AssetPreLoad : SingletonMonobehaviour<AssetPreLoad>
{
{
    public void PreLoadNPC(int _mapId)
    {
        NpcPreloadConfig _config = Config.Instance.Get<NpcPreloadConfig>(_mapId);
@@ -36,8 +37,8 @@
        get { return m_Effects ?? (m_Effects = Config.Instance.GetAllValues<EffectConfig>()); }
    }
    List<int> loadedJobs = new List<int>();
    List<int> loadedJobs = new List<int>();
    public void PreLoadJobEffect(int _job)
    {
        if (loadedJobs.Contains(_job))
@@ -61,8 +62,8 @@
        {
            StartCoroutine(Co_AsyncLoadEffects(preLoadEffects));
        }
    }
    }
    IEnumerator Co_AsyncLoadEffects(List<int> _effectIds)
    {
        for (int i = 0; i < _effectIds.Count; i++)
@@ -72,14 +73,14 @@
            yield return null;
        }
    }
    }
    private void OnAsyncLoadEffect(bool _ok, Object _object)
    {
        if (_ok)
        {
            GameObjectPoolManager.Instance.CacheGameObject(_object as GameObject, 1, false);
        }
    }
}
    }
}
Fight/Actor/Skill/FlyObject/FlyObjectManager.cs
@@ -1,6 +1,8 @@
using System.Collections.Generic;
[XLua.LuaCallCSharp]
public class FlyObjectManager : Singleton<FlyObjectManager>
{
    private ObjectPool<IFlyObject> m_FlyObjectPool;
Fight/Actor/Skill/SkillHelper.cs
@@ -6,7 +6,9 @@
/// <summary>
/// 对所有技能数据进行处理和缓存的类
/// </summary>
[XLua.LuaCallCSharp]
public class SkillHelper : Singleton<SkillHelper>
{
    private Dictionary<int, SkillInfo> m_SkillInfoDict;
    private Dictionary<int, List<SkillInfo>> m_SkillToSpSkill;
Fight/Actor/Status/StatusMgr.cs
@@ -3,7 +3,9 @@
using UnityEngine;
using UnityEngine.Events;
[XLua.LuaCallCSharp]
public class StatusMgr : SingletonMonobehaviour<StatusMgr>
{
    public static event UnityAction<int> OnGainStatus;
Fight/BossFakeLineUtility.cs
@@ -5,7 +5,9 @@
using System;
using Snxxz.UI;
[XLua.LuaCallCSharp]
public class BossFakeLineUtility : Singleton<BossFakeLineUtility>
{
    int m_MakeFakeLineTimes = 0;
    public int makeFakeLineTimes {
Fight/GameActor/BattleEffectPlayRule.cs
@@ -1,7 +1,9 @@
using System.Collections.Generic;
using UnityEngine;
[XLua.LuaCallCSharp]
public class BattleEffectPlayRule : Singleton<BattleEffectPlayRule>
{
    public List<uint> sortPlayerList = new List<uint>();
Fight/GameActor/GAMgr.cs
@@ -5,7 +5,9 @@
using TableConfig;
using System.Collections;
[XLua.LuaCallCSharp]
public class GAMgr : SingletonMonobehaviour<GAMgr>
{
    private List<BossSkillTip_JudgeSummon> m_BossSkillTipList = new List<BossSkillTip_JudgeSummon>();
Fight/MapTransferUtility.cs
@@ -4,6 +4,7 @@
using Snxxz.UI;
using TableConfig;
[XLua.LuaCallCSharp]
public class MapTransferUtility : SingletonMonobehaviour<MapTransferUtility>
{
    public static UnityEngine.Events.UnityAction s_OnHeroLeaveFuncNpc;
Fight/PreFightMission.cs
@@ -5,7 +5,9 @@
using System.Collections;
using TableConfig;
[XLua.LuaCallCSharp]
public class PreFightMission : Singleton<PreFightMission>
{
    private Vector3 m_FirstTrransferStartPos = new Vector3(183.84f, 62.44f, 25.56f);
    private Vector3 m_FirstTrransferEndPos = new Vector3(161.33f, 51.545f, 34.84f);
Fight/PrepareHandler.cs
@@ -1,7 +1,9 @@
using UnityEngine;
using Snxxz.UI;
[XLua.LuaCallCSharp]
public class PrepareHandler : Singleton<PrepareHandler>
{
    public struct ClientH0812
    {
Fight/Stage/MapEditor/GuideDialogueModel.cs
@@ -1,7 +1,8 @@
using UnityEngine;
using Snxxz.UI;
public class GuideDialogueModel : Model
[XLua.LuaCallCSharp]
    public class GuideDialogueModel : Model
{
    public int dialogID;
Fight/Stage/MapEditor/GuideMessageModel.cs
@@ -2,7 +2,8 @@
using System.Collections;
using Snxxz.UI;
public class GuideMessageModel : Model
[XLua.LuaCallCSharp]
    public class GuideMessageModel : Model
{
    public string content;
    public float duration;
Fight/Stage/MapEditor/NewGuideModel.cs
@@ -2,6 +2,7 @@
using UnityEngine.Events;
using Snxxz.UI;
[XLua.LuaCallCSharp]
public class NewGuideModel : Model
{
    public string content;
Fight/Stage/MapEditor/StoryHintModel.cs
@@ -1,7 +1,8 @@
using UnityEngine.Events;
using Snxxz.UI;
public class StoryHintModel : Model
[XLua.LuaCallCSharp]
    public class StoryHintModel : Model
{
    public string name;
    public string content;
Fight/Stage/StageManager.cs
@@ -6,7 +6,9 @@
using Snxxz.UI;
using TableConfig;
[XLua.LuaCallCSharp]
public class StageManager : Singleton<StageManager>
{
    private Stage m_CurrentStage;
Lua.meta
New file
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 721b752538034ae47ba4f5d730c93524
folderAsset: yes
timeCreated: 1533301968
licenseType: Pro
DefaultImporter:
  userData:
  assetBundleName:
  assetBundleVariant:
Lua/BuildInInit.cs
New file
@@ -0,0 +1,43 @@
namespace XLua.LuaDLL
{
    using System.Runtime.InteropServices;
    public partial class Lua
    {
        [DllImport(LUADLL, CallingConvention = CallingConvention.Cdecl)]
        public static extern int luaopen_rapidjson(System.IntPtr L);
        [MonoPInvokeCallback(typeof(LuaDLL.lua_CSFunction))]
        public static int LoadRapidJson(System.IntPtr L)
        {
            return luaopen_rapidjson(L);
        }
        [DllImport(LUADLL, CallingConvention = CallingConvention.Cdecl)]
        public static extern int luaopen_lpeg(System.IntPtr L);
        [MonoPInvokeCallback(typeof(LuaDLL.lua_CSFunction))]
        public static int LoadLpeg(System.IntPtr L)
        {
            return luaopen_lpeg(L);
        }
        [DllImport(LUADLL, CallingConvention = CallingConvention.Cdecl)]
        public static extern int luaopen_pb(System.IntPtr L);
        [MonoPInvokeCallback(typeof(LuaDLL.lua_CSFunction))]
        public static int LoadLuaProfobuf(System.IntPtr L)
        {
            return luaopen_pb(L);
        }
        [DllImport(LUADLL, CallingConvention = CallingConvention.Cdecl)]
        public static extern int luaopen_ffi(System.IntPtr L);
        [MonoPInvokeCallback(typeof(LuaDLL.lua_CSFunction))]
        public static int LoadFFI(System.IntPtr L)
        {
            return luaopen_ffi(L);
        }
    }
}
Lua/BuildInInit.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 98a554915a6754b42910d4f1c6330bc4
timeCreated: 1540804487
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Lua/CSharpCallLua.cs
New file
@@ -0,0 +1,171 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;
using System;
[CSharpCallLua]
public class CSharpCallLua
{
    [CSharpCallLua]
    public delegate void LuaNetPackage(ushort cmd, byte[] bytes);
    static LuaNetPackage onRecieveLuaNetPackage;
    [CSharpCallLua]
    public delegate void CSharpNetPackage(ushort cmd);
    static CSharpNetPackage onCSharpNetPackage;
    [CSharpCallLua]
    public delegate void GeneralDelegate();
    static GeneralDelegate configInit;
    static GeneralDelegate beforePlayerDataInitialize;
    static GeneralDelegate afterPlayerDataInitialize;
    static GeneralDelegate switchAccount;
    static GeneralDelegate playerLoginOk;
    static GeneralDelegate mapInitOk;
    [CSharpCallLua]
    public delegate bool boolReturnedValueDelegate(int integer);
    static boolReturnedValueDelegate isLuaDungeonVictoryWin;
    static boolReturnedValueDelegate isLuaDungeonDefeatWin;
    static boolReturnedValueDelegate isLuaDailyQuest;
    static boolReturnedValueDelegate gotoLuaDailyQuest;
    public static void Init()
    {
        LuaUtility.DoString("protocol.LuaProtocalRegister");
        onRecieveLuaNetPackage = LuaUtility.Global.Get<LuaNetPackage>("OnRecieveNetPackage");
        LuaUtility.DoString("protocol.CSharpProtocalEvent");
        onCSharpNetPackage = LuaUtility.Global.Get<CSharpNetPackage>("OnCSharpNetEvent");
        LuaUtility.DoString("event.AfterPlayerDataInitialize");
        afterPlayerDataInitialize = LuaUtility.Global.Get<GeneralDelegate>("OnAfterPlayerDataInitialize");
        LuaUtility.DoString("event.BeforePlayerDataInitialize");
        beforePlayerDataInitialize = LuaUtility.Global.Get<GeneralDelegate>("OnBeforePlayerDataInitialize");
        LuaUtility.DoString("event.MapInitOk");
        mapInitOk = LuaUtility.Global.Get<GeneralDelegate>("OnMapInitOk");
        LuaUtility.DoString("event.SwitchAccount");
        switchAccount = LuaUtility.Global.Get<GeneralDelegate>("OnSwitchAccount");
        LuaUtility.DoString("event.PlayerLoginOk");
        playerLoginOk = LuaUtility.Global.Get<GeneralDelegate>("OnPlayerLoginOk");
        LuaUtility.DoString("interface.DungeonInterface");
        isLuaDungeonVictoryWin = LuaUtility.Global.Get<boolReturnedValueDelegate>("IsLuaDungeonVictoryWin");
        isLuaDungeonDefeatWin = LuaUtility.Global.Get<boolReturnedValueDelegate>("IsLuaDungeonDefeatWin");
        LuaUtility.DoString("interface.DailyQuestInterface");
        isLuaDailyQuest = LuaUtility.Global.Get<boolReturnedValueDelegate>("IsLuaDailyQuest");
        gotoLuaDailyQuest = LuaUtility.Global.Get<boolReturnedValueDelegate>("GotoDailyQuest");
        LuaUtility.DoString("config.ConfigInit");
        configInit = LuaUtility.Global.Get<GeneralDelegate>("ConfigInit");
        if (configInit != null)
        {
            configInit();
        }
    }
    public static void OnRecieveLuaNetPackage(ushort cmd, byte[] bytes)
    {
        if (onRecieveLuaNetPackage != null)
        {
            onRecieveLuaNetPackage(cmd, bytes);
        }
    }
    public static void OnRecieveCSharpNetPackage(ushort cmd)
    {
        if (onCSharpNetPackage != null)
        {
            onCSharpNetPackage(cmd);
        }
    }
    public static void OnBeforePlayerDataInitialize()
    {
        if (beforePlayerDataInitialize != null)
        {
            beforePlayerDataInitialize();
        }
    }
    public static void OnAfterPlayerDataInitialize()
    {
        if (afterPlayerDataInitialize != null)
        {
            afterPlayerDataInitialize();
        }
    }
    public static void OnSwitchAccount()
    {
        if (switchAccount != null)
        {
            switchAccount();
        }
    }
    public static void OnPlayerLoginOk()
    {
        if (playerLoginOk != null)
        {
            playerLoginOk();
        }
    }
    public static void OnMapInitOk()
    {
        if (mapInitOk != null)
        {
            mapInitOk();
        }
    }
    public static bool IsLuaDungeonVictoryWin(int dataMapId)
    {
        if (isLuaDungeonVictoryWin != null)
        {
            return isLuaDungeonVictoryWin(dataMapId);
        }
        return false;
    }
    public static bool IsLuaDungeonDefeatWin(int dataMapId)
    {
        if (isLuaDungeonDefeatWin != null)
        {
            return isLuaDungeonDefeatWin(dataMapId);
        }
        return false;
    }
    public static bool IsLuaDailyQuest(int dailyQuest)
    {
        if (isLuaDailyQuest != null)
        {
            return isLuaDailyQuest(dailyQuest);
        }
        return false;
    }
    public static void GotoLuaDailyQuest(int dailyquest)
    {
        if (gotoLuaDailyQuest != null)
        {
            gotoLuaDailyQuest(dailyquest);
        }
    }
}
Lua/CSharpCallLua.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: af00ba7cb648cba4686e8ec2bae4acaf
timeCreated: 1540557470
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Lua/LuaBehaviour.cs
New file
@@ -0,0 +1,95 @@
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using XLua;
using System;
using System.IO;
[LuaCallCSharp]
public class LuaBehaviour : MonoBehaviour
{
    [CSharpCallLua]
    public delegate void generalDelegate();
    public string fileName;
    private Action luaOnEnable;
    private Action luaStart;
    private Action luaUpdate;
    private Action luaOnDisable;
    private Action luaOnDestroy;
    private LuaTable table;
    void Awake()
    {
        table = LuaUtility.GetNewTable();
        var meta = LuaUtility.GetNewTable();
        meta.Set("__index", LuaUtility.Global);
        table.SetMetaTable(meta);
        meta.Dispose();
        table.Set("this", this);
        LuaUtility.DoString(fileName, "LuaBehaviour", table);
        var luaAwake = table.Get<Action>("Awake");
        table.Get("OnEnable", out luaOnEnable);
        table.Get("Start", out luaStart);
        table.Get("Update", out luaUpdate);
        table.Get("OnDisable", out luaOnDisable);
        table.Get("OnDestroy", out luaOnDestroy);
        if (luaAwake != null)
        {
            luaAwake();
        }
    }
    private void OnEnable()
    {
        if (luaOnEnable != null)
        {
            luaOnEnable();
        }
    }
    void Start()
    {
        if (luaStart != null)
        {
            luaStart();
        }
    }
    void Update()
    {
        if (luaUpdate != null)
        {
            luaUpdate();
        }
    }
    private void OnDisable()
    {
        if (luaOnDisable != null)
        {
            luaOnDisable();
        }
    }
    void OnDestroy()
    {
        if (luaOnDestroy != null)
        {
            luaOnDestroy();
        }
        luaOnDisable = null;
        luaOnEnable = null;
        luaOnDestroy = null;
        luaUpdate = null;
        luaStart = null;
        table.Dispose();
    }
}
Lua/LuaBehaviour.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 028ad9d0c327569419d2e22210b67d2d
timeCreated: 1540173220
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Lua/LuaConfigUtility.cs
New file
@@ -0,0 +1,797 @@
using TableConfig;
[XLua.LuaCallCSharp]
public static class ConfigUtil
{
    //这里插入配置表获取方法
    public static SkillConfig GetSkill(string _key)
    {
        return Config.Instance.Get<SkillConfig>(_key);
    }
    public static SignInConfig GetSignIn(string _key)
    {
        return Config.Instance.Get<SignInConfig>(_key);
    }
    public static SceneShadowConfig GetSceneShadow(string _key)
    {
        return Config.Instance.Get<SceneShadowConfig>(_key);
    }
    public static RuneTowerFloorConfig GetRuneTowerFloor(string _key)
    {
        return Config.Instance.Get<RuneTowerFloorConfig>(_key);
    }
    public static RuneTowerConfig GetRuneTower(string _key)
    {
        return Config.Instance.Get<RuneTowerConfig>(_key);
    }
    public static RuneComposeConfig GetRuneCompose(string _key)
    {
        return Config.Instance.Get<RuneComposeConfig>(_key);
    }
    public static RuneConfig GetRune(string _key)
    {
        return Config.Instance.Get<RuneConfig>(_key);
    }
    public static RuleConfig GetRule(string _key)
    {
        return Config.Instance.Get<RuleConfig>(_key);
    }
    public static RoleStrongerConfig GetRoleStronger(string _key)
    {
        return Config.Instance.Get<RoleStrongerConfig>(_key);
    }
    public static RoleResourceConfig GetRoleResource(string _key)
    {
        return Config.Instance.Get<RoleResourceConfig>(_key);
    }
    public static RoleEquipStarsConfig GetRoleEquipStars(string _key)
    {
        return Config.Instance.Get<RoleEquipStarsConfig>(_key);
    }
    public static RichTextMsgReplaceConfig GetRichTextMsgReplace(string _key)
    {
        return Config.Instance.Get<RichTextMsgReplaceConfig>(_key);
    }
    public static ResourcesBackConfig GetResourcesBack(string _key)
    {
        return Config.Instance.Get<ResourcesBackConfig>(_key);
    }
    public static RefineStoveConfig GetRefineStove(string _key)
    {
        return Config.Instance.Get<RefineStoveConfig>(_key);
    }
    public static RedPackConfig GetRedPack(string _key)
    {
        return Config.Instance.Get<RedPackConfig>(_key);
    }
    public static RealmPracticeConfig GetRealmPractice(string _key)
    {
        return Config.Instance.Get<RealmPracticeConfig>(_key);
    }
    public static RealmConfig GetRealm(string _key)
    {
        return Config.Instance.Get<RealmConfig>(_key);
    }
    public static RankListConfig GetRankList(string _key)
    {
        return Config.Instance.Get<RankListConfig>(_key);
    }
    public static RandomNameConfig GetRandomName(string _key)
    {
        return Config.Instance.Get<RandomNameConfig>(_key);
    }
    public static QuestionBankConfig GetQuestionBank(string _key)
    {
        return Config.Instance.Get<QuestionBankConfig>(_key);
    }
    public static PyTaskConfig GetPyTask(string _key)
    {
        return Config.Instance.Get<PyTaskConfig>(_key);
    }
    public static PlayerPropertyConfig GetPlayerProperty(string _key)
    {
        return Config.Instance.Get<PlayerPropertyConfig>(_key);
    }
    public static PlayerLVConfig GetPlayerLV(string _key)
    {
        return Config.Instance.Get<PlayerLVConfig>(_key);
    }
    public static PetInfoConfig GetPetInfo(string _key)
    {
        return Config.Instance.Get<PetInfoConfig>(_key);
    }
    public static PetEatEquipConfig GetPetEatEquip(string _key)
    {
        return Config.Instance.Get<PetEatEquipConfig>(_key);
    }
    public static PetClassCostConfig GetPetClassCost(string _key)
    {
        return Config.Instance.Get<PetClassCostConfig>(_key);
    }
    public static PersonalBossConfig GetPersonalBoss(string _key)
    {
        return Config.Instance.Get<PersonalBossConfig>(_key);
    }
    public static OSRedAchieveConfig GetOSRedAchieve(string _key)
    {
        return Config.Instance.Get<OSRedAchieveConfig>(_key);
    }
    public static OSCBillTagAwardConfig GetOSCBillTagAward(string _key)
    {
        return Config.Instance.Get<OSCBillTagAwardConfig>(_key);
    }
    public static OSCBillRankAwardConfig GetOSCBillRankAward(string _key)
    {
        return Config.Instance.Get<OSCBillRankAwardConfig>(_key);
    }
    public static OrderInfoConfig GetOrderInfo(string _key)
    {
        return Config.Instance.Get<OrderInfoConfig>(_key);
    }
    public static OnlineAwardConfig GetOnlineAward(string _key)
    {
        return Config.Instance.Get<OnlineAwardConfig>(_key);
    }
    public static OccupationNameConfig GetOccupationName(string _key)
    {
        return Config.Instance.Get<OccupationNameConfig>(_key);
    }
    public static NPCDropItemConfig GetNPCDropItem(string _key)
    {
        return Config.Instance.Get<NPCDropItemConfig>(_key);
    }
    public static NPCDialogueConfig GetNPCDialogue(string _key)
    {
        return Config.Instance.Get<NPCDialogueConfig>(_key);
    }
    public static NPCConfig GetNPC(string _key)
    {
        return Config.Instance.Get<NPCConfig>(_key);
    }
    public static MonsterRefreshPointConfig GetMonsterRefreshPoint(string _key)
    {
        return Config.Instance.Get<MonsterRefreshPointConfig>(_key);
    }
    public static MonsterNameColorConfig GetMonsterNameColor(string _key)
    {
        return Config.Instance.Get<MonsterNameColorConfig>(_key);
    }
    public static ModelResConfig GetModelRes(string _key)
    {
        return Config.Instance.Get<ModelResConfig>(_key);
    }
    public static MarketConfig GetMarket(string _key)
    {
        return Config.Instance.Get<MarketConfig>(_key);
    }
    public static MapUiControlConfig GetMapUiControl(string _key)
    {
        return Config.Instance.Get<MapUiControlConfig>(_key);
    }
    public static maptransportConfig Getmaptransport(string _key)
    {
        return Config.Instance.Get<maptransportConfig>(_key);
    }
    public static MapResourcesConfig GetMapResources(string _key)
    {
        return Config.Instance.Get<MapResourcesConfig>(_key);
    }
    public static DamageNumConfig GetDamageNum(string _key)
    {
        return Config.Instance.Get<DamageNumConfig>(_key);
    }
    public static DailyQuestSpecialOpenTimeConfig GetDailyQuestSpecialOpenTime(string _key)
    {
        return Config.Instance.Get<DailyQuestSpecialOpenTimeConfig>(_key);
    }
    public static DailyQuestOpenTimeConfig GetDailyQuestOpenTime(string _key)
    {
        return Config.Instance.Get<DailyQuestOpenTimeConfig>(_key);
    }
    public static DailyQuestConfig GetDailyQuest(string _key)
    {
        return Config.Instance.Get<DailyQuestConfig>(_key);
    }
    public static DailyLivenessRewardConfig GetDailyLivenessReward(string _key)
    {
        return Config.Instance.Get<DailyLivenessRewardConfig>(_key);
    }
    public static CTGConfig GetCTG(string _key)
    {
        return Config.Instance.Get<CTGConfig>(_key);
    }
    public static CreateRoleConfig GetCreateRole(string _key)
    {
        return Config.Instance.Get<CreateRoleConfig>(_key);
    }
    public static ContinueSignInConfig GetContinueSignIn(string _key)
    {
        return Config.Instance.Get<ContinueSignInConfig>(_key);
    }
    public static ChestsAwardConfig GetChestsAward(string _key)
    {
        return Config.Instance.Get<ChestsAwardConfig>(_key);
    }
    public static ChestsConfig GetChests(string _key)
    {
        return Config.Instance.Get<ChestsConfig>(_key);
    }
    public static bossSkillTipsConfig GetbossSkillTips(string _key)
    {
        return Config.Instance.Get<bossSkillTipsConfig>(_key);
    }
    public static HorseConfig GetHorse(string _key)
    {
        return Config.Instance.Get<HorseConfig>(_key);
    }
    public static GuideConfig GetGuide(string _key)
    {
        return Config.Instance.Get<GuideConfig>(_key);
    }
    public static GodWeaponConfig GetGodWeapon(string _key)
    {
        return Config.Instance.Get<GodWeaponConfig>(_key);
    }
    public static GmCmdConfig GetGmCmd(string _key)
    {
        return Config.Instance.Get<GmCmdConfig>(_key);
    }
    public static GetItemWaysConfig GetGetItemWays(string _key)
    {
        return Config.Instance.Get<GetItemWaysConfig>(_key);
    }
    public static FunctionForecastConfig GetFunctionForecast(string _key)
    {
        return Config.Instance.Get<FunctionForecastConfig>(_key);
    }
    public static FuncOpenLVConfig GetFuncOpenLV(string _key)
    {
        return Config.Instance.Get<FuncOpenLVConfig>(_key);
    }
    public static FuncConfigConfig GetFuncConfig(string _key)
    {
        return Config.Instance.Get<FuncConfigConfig>(_key);
    }
    public static FreeGoodsConfig GetFreeGoods(string _key)
    {
        return Config.Instance.Get<FreeGoodsConfig>(_key);
    }
    public static FightPowerParamConfig GetFightPowerParam(string _key)
    {
        return Config.Instance.Get<FightPowerParamConfig>(_key);
    }
    public static FamilyTechConfig GetFamilyTech(string _key)
    {
        return Config.Instance.Get<FamilyTechConfig>(_key);
    }
    public static FamilyConfig GetFamily(string _key)
    {
        return Config.Instance.Get<FamilyConfig>(_key);
    }
    public static FairyGrabBossConfig GetFairyGrabBoss(string _key)
    {
        return Config.Instance.Get<FairyGrabBossConfig>(_key);
    }
    public static FaceConfig GetFace(string _key)
    {
        return Config.Instance.Get<FaceConfig>(_key);
    }
    public static EquipWashSpecConfig GetEquipWashSpec(string _key)
    {
        return Config.Instance.Get<EquipWashSpecConfig>(_key);
    }
    public static BossRebornConfig GetBossReborn(string _key)
    {
        return Config.Instance.Get<BossRebornConfig>(_key);
    }
    public static BossInfoConfig GetBossInfo(string _key)
    {
        return Config.Instance.Get<BossInfoConfig>(_key);
    }
    public static AreaCameraConfig GetAreaCamera(string _key)
    {
        return Config.Instance.Get<AreaCameraConfig>(_key);
    }
    public static AlchemyConfig GetAlchemy(string _key)
    {
        return Config.Instance.Get<AlchemyConfig>(_key);
    }
    public static AlchemySpecConfig GetAlchemySpec(string _key)
    {
        return Config.Instance.Get<AlchemySpecConfig>(_key);
    }
    public static XMZZAchievementConfig GetXMZZAchievement(string _key)
    {
        return Config.Instance.Get<XMZZAchievementConfig>(_key);
    }
    public static XBGetItemConfig GetXBGetItem(string _key)
    {
        return Config.Instance.Get<XBGetItemConfig>(_key);
    }
    public static WorldBossConfig GetWorldBoss(string _key)
    {
        return Config.Instance.Get<WorldBossConfig>(_key);
    }
    public static WingRefineExpConfig GetWingRefineExp(string _key)
    {
        return Config.Instance.Get<WingRefineExpConfig>(_key);
    }
    public static WingRefineAttrConfig GetWingRefineAttr(string _key)
    {
        return Config.Instance.Get<WingRefineAttrConfig>(_key);
    }
    public static WindowSearchConfig GetWindowSearch(string _key)
    {
        return Config.Instance.Get<WindowSearchConfig>(_key);
    }
    public static WHYJRewardConfig GetWHYJReward(string _key)
    {
        return Config.Instance.Get<WHYJRewardConfig>(_key);
    }
    public static WeatherConfig GetWeather(string _key)
    {
        return Config.Instance.Get<WeatherConfig>(_key);
    }
    public static VipPrivilegeConfig GetVipPrivilege(string _key)
    {
        return Config.Instance.Get<VipPrivilegeConfig>(_key);
    }
    public static VIPKillNPCConfig GetVIPKillNPC(string _key)
    {
        return Config.Instance.Get<VIPKillNPCConfig>(_key);
    }
    public static VIPAwardConfig GetVIPAward(string _key)
    {
        return Config.Instance.Get<VIPAwardConfig>(_key);
    }
    public static ViewRoleFuncConfig GetViewRoleFunc(string _key)
    {
        return Config.Instance.Get<ViewRoleFuncConfig>(_key);
    }
    public static UniquenessArriveConfig GetUniquenessArrive(string _key)
    {
        return Config.Instance.Get<UniquenessArriveConfig>(_key);
    }
    public static UnionLivenConfig GetUnionLiven(string _key)
    {
        return Config.Instance.Get<UnionLivenConfig>(_key);
    }
    public static TrialRewardsConfig GetTrialRewards(string _key)
    {
        return Config.Instance.Get<TrialRewardsConfig>(_key);
    }
    public static TrialExchangeConfig GetTrialExchange(string _key)
    {
        return Config.Instance.Get<TrialExchangeConfig>(_key);
    }
    public static TreasureUpConfig GetTreasureUp(string _key)
    {
        return Config.Instance.Get<TreasureUpConfig>(_key);
    }
    public static TreasureSkillConfig GetTreasureSkill(string _key)
    {
        return Config.Instance.Get<TreasureSkillConfig>(_key);
    }
    public static TreasureRefineConfig GetTreasureRefine(string _key)
    {
        return Config.Instance.Get<TreasureRefineConfig>(_key);
    }
    public static TreasurePrivilegeConfig GetTreasurePrivilege(string _key)
    {
        return Config.Instance.Get<TreasurePrivilegeConfig>(_key);
    }
    public static TreasureFindHostConfig GetTreasureFindHost(string _key)
    {
        return Config.Instance.Get<TreasureFindHostConfig>(_key);
    }
    public static TreasureConfig GetTreasure(string _key)
    {
        return Config.Instance.Get<TreasureConfig>(_key);
    }
    public static TeamTargetConfig GetTeamTarget(string _key)
    {
        return Config.Instance.Get<TeamTargetConfig>(_key);
    }
    public static TaskListConfig GetTaskList(string _key)
    {
        return Config.Instance.Get<TaskListConfig>(_key);
    }
    public static TASKINFOConfig GetTASKINFO(string _key)
    {
        return Config.Instance.Get<TASKINFOConfig>(_key);
    }
    public static TalentConfig GetTalent(string _key)
    {
        return Config.Instance.Get<TalentConfig>(_key);
    }
    public static SysInfoConfig GetSysInfo(string _key)
    {
        return Config.Instance.Get<SysInfoConfig>(_key);
    }
    public static SuitEffectConfig GetSuitEffect(string _key)
    {
        return Config.Instance.Get<SuitEffectConfig>(_key);
    }
    public static SuccessConfig GetSuccess(string _key)
    {
        return Config.Instance.Get<SuccessConfig>(_key);
    }
    public static StoryMissionsConfig GetStoryMissions(string _key)
    {
        return Config.Instance.Get<StoryMissionsConfig>(_key);
    }
    public static StoreConfig GetStore(string _key)
    {
        return Config.Instance.Get<StoreConfig>(_key);
    }
    public static AllPeoplePartyConfig GetAllPeopleParty(string _key)
    {
        return Config.Instance.Get<AllPeoplePartyConfig>(_key);
    }
    public static AttrFruitConfig GetAttrFruit(string _key)
    {
        return Config.Instance.Get<AttrFruitConfig>(_key);
    }
    public static ActorShowConfig GetActorShow(string _key)
    {
        return Config.Instance.Get<ActorShowConfig>(_key);
    }
    public static BossHomeConfig GetBossHome(string _key)
    {
        return Config.Instance.Get<BossHomeConfig>(_key);
    }
    public static AppointItemConfig GetAppointItem(string _key)
    {
        return Config.Instance.Get<AppointItemConfig>(_key);
    }
    public static AllPeoplePartyAwardConfig GetAllPeoplePartyAward(string _key)
    {
        return Config.Instance.Get<AllPeoplePartyAwardConfig>(_key);
    }
    public static EquipWashConfig GetEquipWash(string _key)
    {
        return Config.Instance.Get<EquipWashConfig>(_key);
    }
    public static EquipSuitCompoundConfig GetEquipSuitCompound(string _key)
    {
        return Config.Instance.Get<EquipSuitCompoundConfig>(_key);
    }
    public static EquipSuitAttrConfig GetEquipSuitAttr(string _key)
    {
        return Config.Instance.Get<EquipSuitAttrConfig>(_key);
    }
    public static EquipGSParamConfig GetEquipGSParam(string _key)
    {
        return Config.Instance.Get<EquipGSParamConfig>(_key);
    }
    public static EquipDeComposeConfig GetEquipDeCompose(string _key)
    {
        return Config.Instance.Get<EquipDeComposeConfig>(_key);
    }
    public static ElderGodAreaConfig GetElderGodArea(string _key)
    {
        return Config.Instance.Get<ElderGodAreaConfig>(_key);
    }
    public static EffectConfig GetEffect(string _key)
    {
        return Config.Instance.Get<EffectConfig>(_key);
    }
    public static DungeonStateTimeConfig GetDungeonStateTime(string _key)
    {
        return Config.Instance.Get<DungeonStateTimeConfig>(_key);
    }
    public static DungeonSpecialStateTimeConfig GetDungeonSpecialStateTime(string _key)
    {
        return Config.Instance.Get<DungeonSpecialStateTimeConfig>(_key);
    }
    public static DungeonOpenTimeConfig GetDungeonOpenTime(string _key)
    {
        return Config.Instance.Get<DungeonOpenTimeConfig>(_key);
    }
    public static DungeonInspireConfig GetDungeonInspire(string _key)
    {
        return Config.Instance.Get<DungeonInspireConfig>(_key);
    }
    public static DungeonHintConfig GetDungeonHint(string _key)
    {
        return Config.Instance.Get<DungeonHintConfig>(_key);
    }
    public static DungeonConfig GetDungeon(string _key)
    {
        return Config.Instance.Get<DungeonConfig>(_key);
    }
    public static DogzEquipPlusConfig GetDogzEquipPlus(string _key)
    {
        return Config.Instance.Get<DogzEquipPlusConfig>(_key);
    }
    public static DogzDungeonConfig GetDogzDungeon(string _key)
    {
        return Config.Instance.Get<DogzDungeonConfig>(_key);
    }
    public static DogzConfig GetDogz(string _key)
    {
        return Config.Instance.Get<DogzConfig>(_key);
    }
    public static DirtyWordConfig GetDirtyWord(string _key)
    {
        return Config.Instance.Get<DirtyWordConfig>(_key);
    }
    public static DirtyNameConfig GetDirtyName(string _key)
    {
        return Config.Instance.Get<DirtyNameConfig>(_key);
    }
    public static DienstgradConfig GetDienstgrad(string _key)
    {
        return Config.Instance.Get<DienstgradConfig>(_key);
    }
    public static DialogConfig GetDialog(string _key)
    {
        return Config.Instance.Get<DialogConfig>(_key);
    }
    public static DemonRecommondPropertyConfig GetDemonRecommondProperty(string _key)
    {
        return Config.Instance.Get<DemonRecommondPropertyConfig>(_key);
    }
    public static DemonJarConfig GetDemonJar(string _key)
    {
        return Config.Instance.Get<DemonJarConfig>(_key);
    }
    public static AudioConfig GetAudio(string _key)
    {
        return Config.Instance.Get<AudioConfig>(_key);
    }
    public static mapnpcConfig Getmapnpc(string _key)
    {
        return Config.Instance.Get<mapnpcConfig>(_key);
    }
    public static MapEventPointConfig GetMapEventPoint(string _key)
    {
        return Config.Instance.Get<MapEventPointConfig>(_key);
    }
    public static mapbornConfig Getmapborn(string _key)
    {
        return Config.Instance.Get<mapbornConfig>(_key);
    }
    public static mapAreaConfig GetmapArea(string _key)
    {
        return Config.Instance.Get<mapAreaConfig>(_key);
    }
    public static MapConfig GetMap(string _key)
    {
        return Config.Instance.Get<MapConfig>(_key);
    }
    public static MailConfig GetMail(string _key)
    {
        return Config.Instance.Get<MailConfig>(_key);
    }
    public static LVAawrdConfig GetLVAawrd(string _key)
    {
        return Config.Instance.Get<LVAawrdConfig>(_key);
    }
    public static LoginSeverListConfig GetLoginSeverList(string _key)
    {
        return Config.Instance.Get<LoginSeverListConfig>(_key);
    }
    public static LoginAdConfig GetLoginAd(string _key)
    {
        return Config.Instance.Get<LoginAdConfig>(_key);
    }
    public static LoadingTipConfig GetLoadingTip(string _key)
    {
        return Config.Instance.Get<LoadingTipConfig>(_key);
    }
    public static LoadingFunctionConfig GetLoadingFunction(string _key)
    {
        return Config.Instance.Get<LoadingFunctionConfig>(_key);
    }
    public static LanguageConfig GetLanguage(string _key)
    {
        return Config.Instance.Get<LanguageConfig>(_key);
    }
    public static KickOutReasonConfig GetKickOutReason(string _key)
    {
        return Config.Instance.Get<KickOutReasonConfig>(_key);
    }
    public static JobSetupConfig GetJobSetup(string _key)
    {
        return Config.Instance.Get<JobSetupConfig>(_key);
    }
    public static JobNameConfig GetJobName(string _key)
    {
        return Config.Instance.Get<JobNameConfig>(_key);
    }
    public static ItemPlusSumAttrConfig GetItemPlusSumAttr(string _key)
    {
        return Config.Instance.Get<ItemPlusSumAttrConfig>(_key);
    }
    public static ItemPlusMaxConfig GetItemPlusMax(string _key)
    {
        return Config.Instance.Get<ItemPlusMaxConfig>(_key);
    }
    public static ItemPlusConfig GetItemPlus(string _key)
    {
        return Config.Instance.Get<ItemPlusConfig>(_key);
    }
    public static ItemCompoundConfig GetItemCompound(string _key)
    {
        return Config.Instance.Get<ItemCompoundConfig>(_key);
    }
    public static ItemConfig GetItem(string _key)
    {
        return Config.Instance.Get<ItemConfig>(_key);
    }
    public static InvestConfig GetInvest(string _key)
    {
        return Config.Instance.Get<InvestConfig>(_key);
    }
    public static InSevenDaysConfig GetInSevenDays(string _key)
    {
        return Config.Instance.Get<InSevenDaysConfig>(_key);
    }
    public static IconConfig GetIcon(string _key)
    {
        return Config.Instance.Get<IconConfig>(_key);
    }
    public static HorseUpConfig GetHorseUp(string _key)
    {
        return Config.Instance.Get<HorseUpConfig>(_key);
    }
}
Lua/LuaConfigUtility.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 38bf2386a13aae54d83b3765e22cc17a
timeCreated: 1533313404
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Lua/LuaGameNetSystem.cs
New file
@@ -0,0 +1,313 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using System.Text;
[XLua.LuaCallCSharp]
public class LuaGameNetPackBase
{
    public ushort cmd = 0;
    public ushort combineCmd = 0;
    List<byte> sendBytes = new List<byte>();
    Action writeBytesAction;
    public void RegistWriteToBytes(Action action)
    {
        writeBytesAction = action;
    }
    public void WriteShortBytes(ushort value, LuaGameNetSystem.NetDataType type)
    {
        byte[] bytes;
        switch (type)
        {
            case LuaGameNetSystem.NetDataType.BYTE:
                bytes = new byte[1];
                bytes[0] = (byte)(value & 0xFF);
                break;
            case LuaGameNetSystem.NetDataType.WORD:
                bytes = BitConverter.GetBytes((short)value);
                break;
            default:
                bytes = BitConverter.GetBytes((int)value);
                break;
        }
        sendBytes.AddRange(bytes);
    }
    public void WriteUintsBytes(uint value, LuaGameNetSystem.NetDataType type)
    {
        byte[] bytes;
        switch (type)
        {
            case LuaGameNetSystem.NetDataType.BYTE:
                bytes = new byte[1];
                bytes[0] = (byte)(value & 0xFF);
                break;
            case LuaGameNetSystem.NetDataType.WORD:
                bytes = BitConverter.GetBytes((short)value);
                break;
            default:
                bytes = BitConverter.GetBytes((int)value);
                break;
        }
        sendBytes.AddRange(bytes);
    }
    public void WriteIntsBytes(int value, LuaGameNetSystem.NetDataType type)
    {
        byte[] bytes;
        switch (type)
        {
            case LuaGameNetSystem.NetDataType.BYTE:
                bytes = new byte[1];
                bytes[0] = (byte)(value & 0xFF);
                break;
            case LuaGameNetSystem.NetDataType.WORD:
                bytes = BitConverter.GetBytes((short)value);
                break;
            default:
                bytes = BitConverter.GetBytes((int)value);
                break;
        }
        sendBytes.AddRange(bytes);
    }
    public void WriteStringBytes(string value, LuaGameNetSystem.NetDataType type, int length)
    {
        var bytes = stringEncoding.GetBytes(value);
        if (bytes.Length != length)
        {
            Array.Resize(ref bytes, length);
        }
        sendBytes.AddRange(bytes);
    }
    public void WriteShortsWriteLenBytes(ushort[] values, LuaGameNetSystem.NetDataType type)
    {
        for (var i = 0; i < values.Length; i++)
        {
            WriteShortBytes(values[i], type);
        }
    }
    public void WriteIntsWriteLenBytes(int[] values, LuaGameNetSystem.NetDataType type)
    {
        for (var i = 0; i < values.Length; i++)
        {
            WriteIntsBytes(values[i], type);
        }
    }
    public void WriteUintsWriteLenBytes(uint[] values, LuaGameNetSystem.NetDataType type)
    {
        for (var i = 0; i < values.Length; i++)
        {
            WriteUintsBytes(values[i], type);
        }
    }
    public void Send()
    {
        sendBytes.Add((byte)((cmd & 0xFF00) >> 8));
        sendBytes.Add((byte)(cmd & 0xFF));
        if (writeBytesAction != null)
        {
            writeBytesAction();
        }
        if (combineCmd != 0)
        {
            var lengthBytes = BitConverter.GetBytes((ushort)sendBytes.Count);
            sendBytes.Insert(0, lengthBytes[1]);
            sendBytes.Insert(0, lengthBytes[0]);
            sendBytes.Insert(0, (byte)(combineCmd & 0xFF));
            sendBytes.Insert(0, (byte)((combineCmd & 0xFF00) >> 8));
        }
        GameNetSystem.Instance.SendInfo(sendBytes.ToArray());
    }
    int readIndex = 0;
    public uint TransUintBytes(byte[] value, LuaGameNetSystem.NetDataType type)
    {
        var length = GetBytesLength(type);
        var result = 0u;
        switch (type)
        {
            case LuaGameNetSystem.NetDataType.BYTE:
                result = (uint)value[readIndex];
                break;
            case LuaGameNetSystem.NetDataType.WORD:
                result = (ushort)BitConverter.ToUInt16(value, readIndex);
                break;
            case LuaGameNetSystem.NetDataType.DWORD:
                result = BitConverter.ToUInt32(value, readIndex);
                break;
            case LuaGameNetSystem.NetDataType.Int:
                result = (uint)BitConverter.ToInt32(value, readIndex);
                break;
            default:
                Debug.LogError("请指定正确的类型。");
                break;
        }
        readIndex += length;
        return result;
    }
    public int TransIntBytes(byte[] value, LuaGameNetSystem.NetDataType type)
    {
        var length = GetBytesLength(type);
        var result = 0;
        switch (type)
        {
            case LuaGameNetSystem.NetDataType.BYTE:
                result = (int)value[readIndex];
                break;
            case LuaGameNetSystem.NetDataType.WORD:
                result = (int)BitConverter.ToUInt16(value, readIndex);
                break;
            case LuaGameNetSystem.NetDataType.DWORD:
                result = (int)BitConverter.ToUInt32(value, readIndex);
                break;
            case LuaGameNetSystem.NetDataType.Int:
                result = BitConverter.ToInt32(value, readIndex);
                break;
            default:
                Debug.LogError("请指定正确的类型。");
                break;
        }
        readIndex += length;
        return result;
    }
    public ushort TransUshortBytes(byte[] value, LuaGameNetSystem.NetDataType type)
    {
        var length = GetBytesLength(type);
        var result = (ushort)0;
        switch (type)
        {
            case LuaGameNetSystem.NetDataType.BYTE:
                result = (ushort)value[readIndex];
                readIndex += length;
                break;
            case LuaGameNetSystem.NetDataType.WORD:
                result = BitConverter.ToUInt16(value, readIndex);
                readIndex += length;
                break;
            default:
                Debug.LogError("请指定正确的类型。");
                break;
        }
        return result;
    }
    public byte TransByteBytes(byte[] value, LuaGameNetSystem.NetDataType type)
    {
        var result = value[readIndex];
        readIndex += GetBytesLength(type);
        return result;
    }
    static Encoding stringEncoding = Encoding.UTF8;
    public string TransStringBytes(byte[] value, LuaGameNetSystem.NetDataType type, int length)
    {
        if (value.Length < readIndex + length)
        {
            DebugEx.LogError("封包长度不足。");
            return string.Empty;
        }
        else
        {
            var result = stringEncoding.GetString(value, readIndex, length);
            readIndex += length;
            return result;
        }
    }
    public uint[] TransVShortsBytes(byte[] value, LuaGameNetSystem.NetDataType type, int length)
    {
        var step = GetBytesLength(type);
        var array = new uint[length];
        for (var i = 0; i < length; i++)
        {
            switch (type)
            {
                case LuaGameNetSystem.NetDataType.BYTE:
                    array[i] = TransByteBytes(value, type);
                    break;
                case LuaGameNetSystem.NetDataType.WORD:
                    array[i] = TransUshortBytes(value, type);
                    break;
                case LuaGameNetSystem.NetDataType.Int:
                    array[i] = (uint)TransIntBytes(value, type);
                    break;
                case LuaGameNetSystem.NetDataType.DWORD:
                    array[i] = TransUintBytes(value, type);
                    break;
                default:
                    Debug.LogError("请指定正确的类型。");
                    break;
            }
            readIndex += step;
        }
        return array;
    }
    static int GetBytesLength(LuaGameNetSystem.NetDataType type)
    {
        var step = 1;
        switch (type)
        {
            case LuaGameNetSystem.NetDataType.BYTE:
                step = 1;
                break;
            case LuaGameNetSystem.NetDataType.WORD:
                step = 2;
                break;
            case LuaGameNetSystem.NetDataType.DWORD:
                step = 4;
                break;
            case LuaGameNetSystem.NetDataType.Int:
                step = 4;
                break;
            case LuaGameNetSystem.NetDataType.Double:
                step = 4;
                break;
            default:
                break;
        }
        return step;
    }
}
[XLua.LuaCallCSharp]
public class LuaGameNetSystem
{
    public static LuaGameNetPackBase New()
    {
        return new LuaGameNetPackBase();
    }
    public enum NetDataType
    {
        BYTE,
        WORD,
        DWORD,
        Chars,
        Int,
        Double
    }
}
Lua/LuaGameNetSystem.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 5e300c360f92a7a4a8f55568a5346e98
timeCreated: 1540260844
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Lua/LuaGenEx.cs
New file
@@ -0,0 +1,90 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using XLua;
public static class LuaGenEx  {
    //lua中要使用到C#库的配置,比如C#标准库,或者Unity API,第三方库等。
    [LuaCallCSharp]
    public static List<Type> LuaCallCSharp = new List<Type>() {
                typeof(System.Object),
                typeof(UnityEngine.Object),
                typeof(Vector2),
                typeof(Vector3),
                typeof(Vector4),
                typeof(Quaternion),
                typeof(Color),
                typeof(Ray),
                typeof(Bounds),
                typeof(Ray2D),
                typeof(Time),
                typeof(GameObject),
                typeof(Component),
                typeof(Behaviour),
                typeof(Transform),
                typeof(Resources),
                typeof(TextAsset),
                typeof(Keyframe),
                typeof(AnimationCurve),
                typeof(AnimationClip),
                typeof(MonoBehaviour),
                typeof(ParticleSystem),
                typeof(SkinnedMeshRenderer),
                typeof(Renderer),
                typeof(WWW),
                typeof(Light),
                typeof(Mathf),
                typeof(System.Collections.Generic.List<int>),
                typeof(Action<string>),
                typeof(UnityEngine.Debug)
            };
    //C#静态调用Lua的配置(包括事件的原型),仅可以配delegate,interface
    [CSharpCallLua]
    public static List<Type> CSharpCallLua = new List<Type>() {
                typeof(Action),
                typeof(Func<double, double, double>),
                typeof(Action<string>),
                typeof(Action<double>),
                typeof(UnityEngine.Events.UnityAction),
                typeof(System.Collections.IEnumerator)
            };
    //黑名单
    [BlackList]
    public static List<List<string>> BlackList = new List<List<string>>()  {
                new List<string>(){"System.Xml.XmlNodeList", "ItemOf"},
                new List<string>(){"UnityEngine.WWW", "movie"},
                new List<string>(){ "UnityEngine.UI.Text","OnRebuildRequested"},
    #if UNITY_WEBGL
                new List<string>(){"UnityEngine.WWW", "threadPriority"},
    #endif
                new List<string>(){"UnityEngine.Texture2D", "alphaIsTransparency"},
                new List<string>(){"UnityEngine.Security", "GetChainOfTrustValue"},
                new List<string>(){"UnityEngine.CanvasRenderer", "onRequestRebuild"},
                new List<string>(){"UnityEngine.Light", "areaSize"},
    #if UNITY_2017_1_OR_NEWER
                new List<string>(){"UnityEngine.Light", "lightmapBakeType"},
                new List<string>(){"UnityEngine.WWW", "MovieTexture"},
                new List<string>(){"UnityEngine.WWW", "GetMovieTexture"},
    #endif
                new List<string>(){"UnityEngine.AnimatorOverrideController", "PerformOverrideClipListCleanup"},
    #if !UNITY_WEBPLAYER
                new List<string>(){"UnityEngine.Application", "ExternalEval"},
    #endif
                new List<string>(){"UnityEngine.GameObject", "networkView"}, //4.6.2 not support
                new List<string>(){"UnityEngine.Component", "networkView"},  //4.6.2 not support
                new List<string>(){"System.IO.FileInfo", "GetAccessControl", "System.Security.AccessControl.AccessControlSections"},
                new List<string>(){"System.IO.FileInfo", "SetAccessControl", "System.Security.AccessControl.FileSecurity"},
                new List<string>(){"System.IO.DirectoryInfo", "GetAccessControl", "System.Security.AccessControl.AccessControlSections"},
                new List<string>(){"System.IO.DirectoryInfo", "SetAccessControl", "System.Security.AccessControl.DirectorySecurity"},
                new List<string>(){"System.IO.DirectoryInfo", "CreateSubdirectory", "System.String", "System.Security.AccessControl.DirectorySecurity"},
                new List<string>(){"System.IO.DirectoryInfo", "Create", "System.Security.AccessControl.DirectorySecurity"},
                new List<string>(){"UnityEngine.MonoBehaviour", "runInEditMode"},
    #if !UNITY_5_6_OR_NEWER
    #endif
            };
}
Lua/LuaGenEx.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 32d66d052e577804b82262f75985c9c8
timeCreated: 1540964674
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Lua/LuaLaunch.cs
New file
@@ -0,0 +1,13 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LuaLaunch : MonoBehaviour
{
    void Awake()
    {
        LuaUtility.Instance.Init();
    }
}
Lua/LuaLaunch.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: a1c7a84d58094b247ac2f6da3b5b224f
timeCreated: 1533283530
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Lua/LuaModelUtility.cs
New file
@@ -0,0 +1,24 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Snxxz.UI;
[XLua.LuaCallCSharp]
public class ModelUtility
{
    public static DungeonModel dungeonModel {
        get {
            return ModelCenter.Instance.GetModel<DungeonModel>();
        }
    }
    public static VipModel vipModel {
        get {
            return ModelCenter.Instance.GetModel<VipModel>();
        }
    }
}
Lua/LuaModelUtility.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 10b5a3c7eda80df4eafde3d6f8dab159
timeCreated: 1540180766
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Lua/LuaUtility.cs
New file
@@ -0,0 +1,88 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;
using System.IO;
public class LuaUtility : SingletonMonobehaviour<LuaUtility>
{
    public readonly static LuaEnv env = new LuaEnv();
    static float lastGCTime = 0;
    const float GCInterval = 1;//1 second
    static LuaUtility()
    {
        env.AddLoader(new LuaEnv.CustomLoader(LoadAssetBytes));
        env.AddBuildin("rapidjson", XLua.LuaDLL.Lua.LoadRapidJson);
        env.AddBuildin("lpeg", XLua.LuaDLL.Lua.LoadLpeg);
        env.AddBuildin("pb", XLua.LuaDLL.Lua.LoadLuaProfobuf);
        env.AddBuildin("ffi", XLua.LuaDLL.Lua.LoadFFI);
    }
    public static LuaTable GetNewTable()
    {
        return env.NewTable();
    }
    public static LuaTable Global {
        get { return env.Global; }
    }
    public void Init()
    {
        Do("global.util");
        Do("global.logex");
        Do("global.functions");
        Do("global.object");
        Do("global.define");
        Do("global.stringutil");
        Do("protocol.LuaProtocalRegister");
        Do("hotfix.hotfix");
        lastGCTime = 0f;
    }
    void Update()
    {
        if (Time.time - lastGCTime > GCInterval)
        {
            env.Tick();
            lastGCTime = Time.time;
        }
    }
    public static void Do(string _file, string chunkName = "chunk", LuaTable _table = null)
    {
        var command = string.Format("require '{0}'", _file);
        env.DoString(command, chunkName, _table);
    }
    public static void DoString(string _file, string chunkName = "chunk", LuaTable _table = null)
    {
        var content = LoadAsset(ref _file);
        env.DoString(content, chunkName, _table);
    }
    private static string LoadAsset(ref string _fileName)
    {
        _fileName = _fileName.Replace('.', '/');
        var path = string.Empty;
        if (AssetSource.luaFromEditor)
        {
            path = ResourcesPath.LUA_FODLER + "/" + _fileName + ".lua";
        }
        else
        {
            path = AssetVersionUtility.GetAssetFilePath(StringUtility.Contact("lua/", _fileName, ".lua"));
        }
        return File.ReadAllText(path);
    }
    private static byte[] LoadAssetBytes(ref string _fileName)
    {
        return System.Text.Encoding.UTF8.GetBytes(LoadAsset(ref _fileName));
    }
}
Lua/LuaUtility.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 1cda39260931b2f4690636dbfa36287a
timeCreated: 1533282695
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Lua/LuaWindow.cs
New file
@@ -0,0 +1,143 @@
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using XLua;
using System;
using System.IO;
using Snxxz.UI;
[LuaCallCSharp]
public class LuaWindow : Window
{
    public string filePath = "";
    Action luaOnDestroy;
    Action onBindController;
    Action onAddListeners;
    Action onPreOpen;
    Action onAfterOpen;
    Action onPreClose;
    Action onAfterClose;
    Action onActived;
    Action onLateUpdate;
    private LuaTable table;
    private void Init()
    {
        table = LuaUtility.GetNewTable();
        var meta = LuaUtility.GetNewTable();
        meta.Set("__index", LuaUtility.Global);
        table.SetMetaTable(meta);
        meta.Dispose();
        LuaUtility.Do(filePath, this.gameObject.name, table);
        table.Get("BindController", out onBindController);
        table.Get("AddListeners", out onAddListeners);
        table.Get("OnPreOpen", out onPreOpen);
        table.Get("OnAfterOpen", out onAfterOpen);
        table.Get("OnPreClose", out onPreClose);
        table.Get("OnAfterClose", out onAfterClose);
        table.Get("OnActived", out onActived);
        table.Get("LateUpdate", out onLateUpdate);
        table.Get("OnDestroy", out luaOnDestroy);
    }
    void OnDestroy()
    {
        if (luaOnDestroy != null)
        {
            luaOnDestroy();
        }
        luaOnDestroy = null;
        onBindController = null; ;
        onAddListeners = null; ;
        onPreOpen = null; ;
        onAfterOpen = null; ;
        onPreClose = null;
        onAfterClose = null; ;
        onActived = null;
        onLateUpdate = null;
        if (table != null)
        {
            table.Dispose();
        }
    }
    protected override void BindController()
    {
        Init();
        if (onBindController != null)
        {
            onBindController();
        }
    }
    protected override void AddListeners()
    {
        if (onAddListeners != null)
        {
            onAddListeners();
        }
    }
    protected override void OnPreOpen()
    {
        if (onPreOpen != null)
        {
            onPreOpen();
        }
    }
    protected override void OnAfterOpen()
    {
        if (onAfterOpen != null)
        {
            onAfterOpen();
        }
    }
    protected override void OnPreClose()
    {
        if (onPreClose != null)
        {
            onPreClose();
        }
    }
    protected override void OnAfterClose()
    {
        if (onAfterClose != null)
        {
            onAfterClose();
        }
    }
    protected override void OnActived()
    {
        base.OnActived();
        if (onActived != null)
        {
            onActived();
        }
    }
    protected override void LateUpdate()
    {
        base.LateUpdate();
        if (onLateUpdate != null)
        {
            onLateUpdate();
        }
    }
}
Lua/LuaWindow.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: f203b48cd7ee2084fa734cc0b287c02d
timeCreated: 1534318225
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Lua/LuaWindowUtility.cs
New file
@@ -0,0 +1,45 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Snxxz.UI;
[XLua.LuaCallCSharp]
public class LuaWindowUtility
{
    public static Window Open(string _name, bool _forceSync = false, int _functionalOrder = 0)
    {
        return WindowCenter.Instance.Open(_name, _forceSync, _functionalOrder);
    }
    public static Window OpenWithoutAnimation(string _name)
    {
        return WindowCenter.Instance.OpenWithoutAnimation(_name);
    }
    public static Window Get(string _name)
    {
        return WindowCenter.Instance.Get(_name);
    }
    public static Window Close(string _name)
    {
        return WindowCenter.Instance.Close(_name);
    }
    public static void CloseAll()
    {
        WindowCenter.Instance.CloseAll();
    }
    public static void DestroyWin(string _name)
    {
        WindowCenter.Instance.DestroyWin(_name);
    }
    public static bool IsOpen(string _name)
    {
        return WindowCenter.Instance.IsOpen(_name);
    }
}
Lua/LuaWindowUtility.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: d01a9255dd1b980498b7f0296c9d7a4d
timeCreated: 1534342506
licenseType: Free
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Achievement/AchievementModel.cs
@@ -7,7 +7,8 @@
namespace Snxxz.UI
{
    public class AchievementModel : Model, IBeforePlayerDataInitialize
    [XLua.LuaCallCSharp]
    public class AchievementModel : Model, IBeforePlayerDataInitialize
    {
        public event Action<int> achievementProgressUpdateEvent;
        public event Action<int> achievementCompletedEvent;
System/Activity/ActivityModel.cs
@@ -8,7 +8,8 @@
namespace Snxxz.UI
{
    public class ActivityModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize
    [XLua.LuaCallCSharp]
    public class ActivityModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize
    {
        HeavenBattleModel battleModel { get { return ModelCenter.Instance.GetModel<HeavenBattleModel>(); } }
        FairyModel fairyModel { get { return ModelCenter.Instance.GetModel<FairyModel>(); } }
System/AssetVersion/AssetVersionUtility.cs
@@ -7,6 +7,7 @@
using System.Threading;
using TableConfig;
[XLua.LuaCallCSharp]
public class AssetVersionUtility
{
System/AssetVersion/DownLoadAndDiscompressTask.cs
@@ -5,7 +5,9 @@
using Snxxz.UI;
using System.Threading;
[XLua.LuaCallCSharp]
public class DownLoadAndDiscompressTask : Singleton<DownLoadAndDiscompressTask>
{
    public const int BYTE_PER_KILOBYTE = 1024;
    public const int BYTE_PER_MILLIONBYTE = 1048576;
System/AssetVersion/InGameDownLoad.cs
@@ -6,7 +6,9 @@
using System.Text.RegularExpressions;
using TableConfig;
[XLua.LuaCallCSharp]
public class InGameDownLoad : SingletonMonobehaviour<InGameDownLoad>
{
    public const int BYTE_PER_KILOBYTE = 1024;
    public const int BYTE_PER_MILLIONBYTE = 1048576;
System/BetterItemGet/BetterEquipGetModel.cs
@@ -10,7 +10,8 @@
namespace Snxxz.UI
{
    public class BetterEquipGetModel : Model, IBeforePlayerDataInitialize, ISwitchAccount
    [XLua.LuaCallCSharp]
    public class BetterEquipGetModel : Model, IBeforePlayerDataInitialize, ISwitchAccount
    {
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
        PackModelInterface modelInterface { get { return ModelCenter.Instance.GetModel<PackModelInterface>(); } }
System/BetterItemGet/ItemUseModel.cs
@@ -9,7 +9,8 @@
namespace Snxxz.UI
{
    public class ItemUseModel : Model, IBeforePlayerDataInitialize, ISwitchAccount
    [XLua.LuaCallCSharp]
    public class ItemUseModel : Model, IBeforePlayerDataInitialize, ISwitchAccount
    {
        Dictionary<string, UseItem> itemStack = new Dictionary<string, UseItem>();
        List<string> itemGuids = new List<string>();
System/BetterItemGet/PreciousItemGetModel.cs
@@ -9,7 +9,8 @@
namespace Snxxz.UI
{
    public class PreciousItemGetModel : Model, IBeforePlayerDataInitialize,ISwitchAccount,IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class PreciousItemGetModel : Model, IBeforePlayerDataInitialize,ISwitchAccount,IPlayerLoginOk
    {
        Dictionary<string, PreciousItem> itemStack = new Dictionary<string, PreciousItem>();
        List<string> itemGuids = new List<string>();
System/BetterItemGet/RealmBetterEquipModel .cs
@@ -10,7 +10,8 @@
namespace Snxxz.UI
{
    public class RealmBetterEquipModel : Model, IBeforePlayerDataInitialize, ISwitchAccount,IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class RealmBetterEquipModel : Model, IBeforePlayerDataInitialize, ISwitchAccount,IPlayerLoginOk
    {
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
        PackModelInterface modelInterface { get { return ModelCenter.Instance.GetModel<PackModelInterface>(); } }
System/BlastFurnace/BlastFurnaceModel.cs
@@ -7,6 +7,7 @@
using UnityEngine;
using LitJson;
[XLua.LuaCallCSharp]
public class BlastFurnaceModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
{
    public BlastFurnaceFuncTitle funcTitle = BlastFurnaceFuncTitle.MakeDan;
@@ -14,10 +15,8 @@
    public Action<AlchemySpecConfig> RefreshAddSpecMatEvent;
    private TreasureModel _model;
    public TreasureModel sTreasureModel
    {
        get
        {
    public TreasureModel sTreasureModel {
        get {
            return _model ?? (_model = ModelCenter.Instance.GetModel<TreasureModel>());
        }
    }
@@ -36,8 +35,7 @@
    public event Action blastFurnacePromoteUpdate;
    PlayerPackModel _playerPack;
    PlayerPackModel playerPack
    {
    PlayerPackModel playerPack {
        get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); }
    }
    ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
@@ -68,7 +66,7 @@
        alchemyModellist = Config.Instance.GetAllValues<AlchemyConfig>();
        FuncConfigConfig alchemyRedPoint = Config.Instance.Get<FuncConfigConfig>("AlchemyRedPoint");
        int.TryParse(alchemyRedPoint.Numerical1,out makeDrugRedLv);
        int.TryParse(alchemyRedPoint.Numerical1, out makeDrugRedLv);
        SetDandrugRedPointlist();
        GlobalTimeEvent.Instance.secondEvent += SecondUpdate;
    }
@@ -101,7 +99,7 @@
    public void OnAfterPlayerDataInitialize()
    {
    }
    private void RefreshFuncOpenState(int funcId)
@@ -146,14 +144,14 @@
    }
    public bool isMakeDan { get; set; }
    public bool isFirstGet { get; private set;}
    public bool isFirstGet { get; private set; }
    private void SecondUpdate()
    {
        if (makerItemID == 0) return;
        if(isMakeDan)
        if (isMakeDan)
        {
            if(!WindowCenter.Instance.IsOpen<MakerDrugSuccessWin>())
            if (!WindowCenter.Instance.IsOpen<MakerDrugSuccessWin>())
            {
                WindowCenter.Instance.Open<MakerDrugSuccessWin>();
            }
@@ -192,10 +190,10 @@
        _stoveExp = (int)data.StoveExp;
        makerItemID = (int)data.ItemID;
        CheckMakerDandrugCondition();
        if(!isFirstGet)
        if (!isFirstGet)
        {
            isMakeDan = true;
            if(preStoveLv < data.StoveLV)
            if (preStoveLv < data.StoveLV)
            {
                preStoveLv = data.StoveLV;
                StoveIsUpGrade = true;
@@ -275,11 +273,11 @@
    /// <summary>
    /// 得到炼丹和铸炼的结果
    /// </summary>
    public event Action<MakeType,int> RefreshMakeItemAnswerAct;
    public event Action<MakeType, int> RefreshMakeItemAnswerAct;
    public void GetMakerResult(H0721_tagMakeItemAnswer answer)
    {
        DebugEx.Log("GetMakerResult" + answer.Result);
        switch((MakeType)answer.MakeType)
        switch ((MakeType)answer.MakeType)
        {
            case MakeType.Def_mitRefine:
                if (answer.Result == 1)
@@ -317,15 +315,15 @@
                }
                break;
        }
        if(RefreshMakeItemAnswerAct != null)
        if (RefreshMakeItemAnswerAct != null)
        {
            RefreshMakeItemAnswerAct((MakeType)answer.MakeType,answer.Result);
            RefreshMakeItemAnswerAct((MakeType)answer.MakeType, answer.Result);
        }
    }
    #region 丹药筛选
    public List<int> sortDruglist = new List<int>();
    public void SetSortDruglist(int lv,bool isAdd,int sumNum)
    public void SetSortDruglist(int lv, bool isAdd, int sumNum)
    {
        if (lv != 0)
        {
@@ -335,10 +333,10 @@
                {
                    sortDruglist.Add(lv);
                }
                if(sortDruglist.Count >= sumNum - 1)
                if (sortDruglist.Count >= sumNum - 1)
                {
                    if(!sortDruglist.Contains(0))
                    if (!sortDruglist.Contains(0))
                    {
                        sortDruglist.Add(0);
                    }
@@ -351,7 +349,7 @@
                    sortDruglist.Remove(lv);
                }
                if(sortDruglist.Contains(0))
                if (sortDruglist.Contains(0))
                {
                    sortDruglist.Remove(0);
                }
@@ -360,7 +358,7 @@
        else
        {
            sortDruglist.Clear();
            if(isAdd)
            if (isAdd)
            {
                sortDruglist.Add(lv);
            }
@@ -457,17 +455,17 @@
        {
            for (int i = 0; i < jsonData.Count; i++)
            {
                if(jsonData[i].IsArray)
                if (jsonData[i].IsArray)
                {
                    int itemId = int.Parse(jsonData[i][0].ToString());
                    if (jsonData[i].Count > 1)
                    {
                        int effectId = int.Parse(jsonData[i][1].ToString());
                        PreviewItemDict.Add(itemId,effectId);
                        PreviewItemDict.Add(itemId, effectId);
                    }
                    else
                    {
                        PreviewItemDict.Add(itemId,0);
                        PreviewItemDict.Add(itemId, 0);
                    }
                }
            }
@@ -478,7 +476,7 @@
    public int GetEffectIdByItemId(int itemId)
    {
        int effectId = 0;
        PreviewItemDict.TryGetValue(itemId,out effectId);
        PreviewItemDict.TryGetValue(itemId, out effectId);
        return effectId;
    }
@@ -794,7 +792,7 @@
    private void RefreshItemUsce(int id)
    {
        if(playerPack.CheckIsDrugById(id))
        if (playerPack.CheckIsDrugById(id))
        {
            CheckMakerDandrugCondition();
            CheckRecycleStoreRed();
@@ -818,22 +816,22 @@
            blastFurnacePromoteUpdate();
        }
    }
    public bool IsMakeDrugWin { get;set; }
    public void CheckMakeDrugRedPoint(bool isLogin = false,bool isClick = false)
    public bool IsMakeDrugWin { get; set; }
    public void CheckMakeDrugRedPoint(bool isLogin = false, bool isClick = false)
    {
        bool isCheckRed = false;
        if(!isClick)
        if (!isClick)
        {
            if(PlayerDatas.Instance.baseData.LV <= makeDrugRedLv)
            if (PlayerDatas.Instance.baseData.LV <= makeDrugRedLv)
            {
                isCheckRed = true;
            }
            else if(PlayerDatas.Instance.baseData.LV > makeDrugRedLv && !isLogin && !IsMakeDrugWin)
            else if (PlayerDatas.Instance.baseData.LV > makeDrugRedLv && !isLogin && !IsMakeDrugWin)
            {
                isCheckRed = true;
            }
            if(isCheckRed)
            if (isCheckRed)
            {
                List<AttrFruitConfig> list = playerPack.makeDruglist;
                if (list != null)
@@ -857,7 +855,7 @@
        }
        else
        {
            if(PlayerDatas.Instance.baseData.LV > makeDrugRedLv)
            if (PlayerDatas.Instance.baseData.LV > makeDrugRedLv)
            {
                MakeDrugRedpoint.state = RedPointState.None;
            }
@@ -923,7 +921,7 @@
        {
            if (StoveLV >= alchemyModellist[i].BlastFurnaceLV)
            {
                if(!CheckNormalAlchemyIsReachMaxUse(alchemyModellist[i]))
                if (!CheckNormalAlchemyIsReachMaxUse(alchemyModellist[i]))
                {
                    if (IsNormalMatEnough(alchemyModellist[i]) && !IsHaveReachFull(alchemyModellist[i]))
                    {
@@ -941,9 +939,9 @@
        if (alchemyConfig == null) return true;
        Dictionary<int, List<int>> specDrugDict = null;
        IsSpecMatEnough(alchemyConfig,out specDrugDict);
        IsSpecMatEnough(alchemyConfig, out specDrugDict);
        foreach(var key in specDrugDict.Keys)
        foreach (var key in specDrugDict.Keys)
        {
            List<int> idlist = specDrugDict[key];
            for (int i = 0; i < idlist.Count; i++)
@@ -955,7 +953,7 @@
                    if (!petmodel._DicPetBack.ContainsKey(petInfo.ID))
                    {
                        return false;
                    }
                    }
                }
                if (tipsModel.unlockMountDict.ContainsKey(idlist[i]))
@@ -992,7 +990,7 @@
        return isEnough;
    }
    public bool IsSpecMatEnough(AlchemyConfig alchemyConfig,out Dictionary<int,List<int>> specDurgDict)
    public bool IsSpecMatEnough(AlchemyConfig alchemyConfig, out Dictionary<int, List<int>> specDurgDict)
    {
        specDurgDict = new Dictionary<int, List<int>>();
        if (alchemyConfig == null) return false;
@@ -1008,7 +1006,7 @@
            {
                isEnough = true;
                List<int> specIdlist = GetPreviewSpecMakeDruglist(specConfig).Keys.ToList();
                specDurgDict.Add(specConfig.SpecialMaterialD,specIdlist);
                specDurgDict.Add(specConfig.SpecialMaterialD, specIdlist);
            }
        }
        return isEnough;
@@ -1035,12 +1033,12 @@
    {
        if (alchemyConfig == null) return false;
        List<int> previewlist = GetPreviewMakeDruglist(alchemyConfig).Keys.ToList();
        for(int i = 0; i < previewlist.Count; i++)
        for (int i = 0; i < previewlist.Count; i++)
        {
            if(playerPack.CheckIsDrugById(previewlist[i]))
            if (playerPack.CheckIsDrugById(previewlist[i]))
            {
                AttrFruitConfig fruitConfig = Config.Instance.Get<AttrFruitConfig>(previewlist[i]);
                if(!playerPack.IsReachMaxUseDrug(fruitConfig))
                if (!playerPack.IsReachMaxUseDrug(fruitConfig))
                {
                    return false;
                }
@@ -1054,12 +1052,12 @@
        if (alchemyConfig == null) return false;
        List<int> previewlist = GetPreviewMakeDruglist(alchemyConfig).Keys.ToList();
        for(int i = 0; i < previewlist.Count; i++)
        for (int i = 0; i < previewlist.Count; i++)
        {
            if(playerPack.CheckIsDrugById(previewlist[i]))
            if (playerPack.CheckIsDrugById(previewlist[i]))
            {
                AttrFruitConfig fruitConfig = Config.Instance.Get<AttrFruitConfig>(previewlist[i]);
                if(!playerPack.IsReachMaxUseDrug(fruitConfig))
                if (!playerPack.IsReachMaxUseDrug(fruitConfig))
                {
                    return false;
                }
@@ -1087,7 +1085,7 @@
    {
        if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.BlastFurnace)) return;
        if(IsRecycleDanDrug())
        if (IsRecycleDanDrug())
        {
            recycleBtnRedpoint.state = RedPointState.Simple;
        }
@@ -1100,7 +1098,7 @@
    public bool IsRecycleDanDrug()
    {
        List<ItemModel> itemModels = GetRecycleDanlist();
        if(itemModels != null && itemModels.Count > 0)
        if (itemModels != null && itemModels.Count > 0)
        {
            return true;
        }
@@ -1125,7 +1123,7 @@
    public void PlayRecycleGuid()
    {
        if (IsRecycleDanDrug()
        if (IsRecycleDanDrug()
            && !NewBieCenter.Instance.completeGuidesBuf.Contains(93)
            && !StoveIsUpGrade)
        {
@@ -1140,38 +1138,38 @@
    /// 回收丹药
    /// </summary>
    /// <param name="itemId"></param>
    public void RecycleDrug(int itemId,int exp)
    public void RecycleDrug(int itemId, int exp)
    {
        ItemConfig itemConfig = Config.Instance.Get<ItemConfig>(itemId);
        if (isOpenPrompting)
        {
            int recycleNum = playerPack.GetItemCountByID(PackType.rptItem,itemId);
            ConfirmCancel.IconConfirmCancel(Language.Get("Mail101"), Language.Get("BlastFurnace114",recycleNum ,UIHelper.GetTextColorByItemColor(itemConfig.ItemColor, itemConfig.ItemName),exp*recycleNum), itemConfig.ID,
             playerPack.GetItemCountByID(PackType.rptItem, itemConfig.ID), 0,"", Language.Get("ConfirmCancel102"), (bool isOk, bool isToggle) =>
             {
                 if (isOk)
                 {
                     int noBindNum = 0;
                     List<int> indexs = null;
                     List<int> nums = null;
                     if(CheckIsNoBindDrug(itemId,out noBindNum,out indexs,out nums))
                     {
                         ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),Language.Get("BlastFurnace115",noBindNum, UIHelper.GetTextColorByItemColor(itemConfig.ItemColor, itemConfig.ItemName)),
                             (bool isRecycle)=>
                             {
                                 if(isRecycle)
                                 {
                                     SendRecycleDrugQuest(indexs,nums);
                                 }
                             });
                     }
                     else
                     {
                         SendRecycleDrugQuest(indexs, nums);
                     }
                 }
                 isOpenPrompting = !isToggle;
             });
            int recycleNum = playerPack.GetItemCountByID(PackType.rptItem, itemId);
            ConfirmCancel.IconConfirmCancel(Language.Get("Mail101"), Language.Get("BlastFurnace114", recycleNum, UIHelper.GetTextColorByItemColor(itemConfig.ItemColor, itemConfig.ItemName), exp * recycleNum), itemConfig.ID,
             playerPack.GetItemCountByID(PackType.rptItem, itemConfig.ID), 0, "", Language.Get("ConfirmCancel102"), (bool isOk, bool isToggle) =>
              {
                  if (isOk)
                  {
                      int noBindNum = 0;
                      List<int> indexs = null;
                      List<int> nums = null;
                      if (CheckIsNoBindDrug(itemId, out noBindNum, out indexs, out nums))
                      {
                          ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("BlastFurnace115", noBindNum, UIHelper.GetTextColorByItemColor(itemConfig.ItemColor, itemConfig.ItemName)),
                              (bool isRecycle) =>
                              {
                                  if (isRecycle)
                                  {
                                      SendRecycleDrugQuest(indexs, nums);
                                  }
                              });
                      }
                      else
                      {
                          SendRecycleDrugQuest(indexs, nums);
                      }
                  }
                  isOpenPrompting = !isToggle;
              });
        }
        else
        {
@@ -1197,17 +1195,17 @@
    }
    private bool CheckIsNoBindDrug(int itemId,out int nobindNums,out List<int> indexs,out List<int> nums)
    private bool CheckIsNoBindDrug(int itemId, out int nobindNums, out List<int> indexs, out List<int> nums)
    {
        indexs = new List<int>();
        nums = new List<int>();
        nobindNums = 0;
       SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptItem);
       if (singlePack == null) return false;
        SinglePackModel singlePack = playerPack.GetSinglePackModel(PackType.rptItem);
        if (singlePack == null) return false;
        List<ItemModel> items;
        singlePack.GetItemCountByID(itemId,out items);
        for(int i = 0; i < items.Count; i++)
        singlePack.GetItemCountByID(itemId, out items);
        for (int i = 0; i < items.Count; i++)
        {
            indexs.Add(items[i].itemInfo.ItemPlace);
            nums.Add(items[i].itemInfo.ItemCount);
@@ -1216,7 +1214,7 @@
                nobindNums += items[i].itemInfo.ItemCount;
            }
        }
        if(nobindNums > 0)
        if (nobindNums > 0)
        {
            return true;
        }
@@ -1252,7 +1250,7 @@
    }
    Dictionary<string, List<ItemModel>> lookRecycleDict = new Dictionary<string, List<ItemModel>>();
    public Dictionary<string,List<ItemModel>> GetLookRecycleDanlist()
    public Dictionary<string, List<ItemModel>> GetLookRecycleDanlist()
    {
        lookRecycleDict.Clear();
        recycleStrlist.Clear();
@@ -1261,15 +1259,15 @@
        itemModels.Sort(CompareByDanBindAndLv);
        for(int i = 0; i < itemModels.Count; i++)
        for (int i = 0; i < itemModels.Count; i++)
        {
            string key = StringUtility.Contact(itemModels[i].itemId,"IsBind",itemModels[i].itemInfo.IsBind);
            if(!lookRecycleDict.ContainsKey(key))
            string key = StringUtility.Contact(itemModels[i].itemId, "IsBind", itemModels[i].itemInfo.IsBind);
            if (!lookRecycleDict.ContainsKey(key))
            {
                List<ItemModel> modellist = new List<ItemModel>();
                modellist.Add(itemModels[i]);
                lookRecycleDict.Add(key,modellist);
                if(itemModels[i].itemInfo.IsBind == 1)
                lookRecycleDict.Add(key, modellist);
                if (itemModels[i].itemInfo.IsBind == 1)
                {
                    AddSelectRecycleDan(itemModels[i]);
                }
@@ -1283,7 +1281,7 @@
        return lookRecycleDict;
    }
    private int CompareByDanBindAndLv(ItemModel start,ItemModel end)
    private int CompareByDanBindAndLv(ItemModel start, ItemModel end)
    {
        bool isBindStart = start.itemInfo.IsBind == 1 ? true : false;
        bool isBindEnd = end.itemInfo.IsBind == 1 ? true : false;
@@ -1302,12 +1300,12 @@
    public void AddSelectRecycleDan(ItemModel itemModel)
    {
        string key = StringUtility.Contact(itemModel.itemId, "IsBind", itemModel.itemInfo.IsBind);
        if(!recycleStrlist.Contains(key))
        if (!recycleStrlist.Contains(key))
        {
            recycleStrlist.Add(key);
        }
        if(RefreshSelectRecycleAct != null)
        if (RefreshSelectRecycleAct != null)
        {
            RefreshSelectRecycleAct();
        }
@@ -1330,12 +1328,12 @@
    public int GetRecycleMoney()
    {
        int money = 0;
        foreach(var key in lookRecycleDict.Keys)
        foreach (var key in lookRecycleDict.Keys)
        {
            if(recycleStrlist.Contains(key))
            if (recycleStrlist.Contains(key))
            {
                List<ItemModel> itemModels = lookRecycleDict[key];
                for(int i = 0; i < itemModels.Count; i++)
                for (int i = 0; i < itemModels.Count; i++)
                {
                    AttrFruitConfig fruitConfig = Config.Instance.Get<AttrFruitConfig>(itemModels[i].itemId);
                    money = money + fruitConfig.RecycleExp * itemModels[i].itemInfo.ItemCount;
@@ -1347,7 +1345,7 @@
    public void SetSelectRecycleDan()
    {
        if(recycleStrlist.Count < 1)
        if (recycleStrlist.Count < 1)
        {
            SysNotifyMgr.Instance.ShowTip("AlchemyRecycling");
            return;
@@ -1360,26 +1358,26 @@
        for (int i = 0; i < recycleStrlist.Count; i++)
        {
            List<ItemModel> modellist = null;
            lookRecycleDict.TryGetValue(recycleStrlist[i],out modellist);
            if(modellist != null)
            lookRecycleDict.TryGetValue(recycleStrlist[i], out modellist);
            if (modellist != null)
            {
                for(int j = 0; j < modellist.Count; j++)
                for (int j = 0; j < modellist.Count; j++)
                {
                    sumCnt += modellist[j].itemInfo.ItemCount;
                    if(modellist[j].itemInfo.IsBind == 0)
                    if (modellist[j].itemInfo.IsBind == 0)
                    {
                        unBindCnt += modellist[j].itemInfo.ItemCount;
                    }
                    if(playerPack.CheckIsDrugById(modellist[j].itemId))
                    if (playerPack.CheckIsDrugById(modellist[j].itemId))
                    {
                        AttrFruitConfig fruitConfig = Config.Instance.Get<AttrFruitConfig>(modellist[j].itemId);
                        getMoney = getMoney + fruitConfig.RecycleExp * modellist[j].itemInfo.ItemCount;
                    }
                    if(!recycleDanDict.ContainsKey(modellist[j].itemInfo.ItemPlace))
                    if (!recycleDanDict.ContainsKey(modellist[j].itemInfo.ItemPlace))
                    {
                        recycleDanDict.Add(modellist[j].itemInfo.ItemPlace,modellist[j].itemInfo.ItemCount);
                        recycleDanDict.Add(modellist[j].itemInfo.ItemPlace, modellist[j].itemInfo.ItemCount);
                    }
                    else
                    {
@@ -1437,7 +1435,7 @@
    }
    public void SendRecycleDrugQuest(List<int> indexs,List<int> nums)
    public void SendRecycleDrugQuest(List<int> indexs, List<int> nums)
    {
        CA32A_tagCMRecycleAttrFruit recycleAttrFruit = new CA32A_tagCMRecycleAttrFruit();
        recycleAttrFruit.IndexCount = (byte)indexs.Count;
System/BlastFurnace/GetItemPathModel.cs
@@ -4,7 +4,8 @@
using System.Collections.Generic;
using UnityEngine;
public class GetItemPathModel : Model
[XLua.LuaCallCSharp]
    public class GetItemPathModel : Model
{
    public ItemConfig chinItemModel { get; private set; }
    public int isBind { get; private set;}
System/BlastFurnace/PrayForDurgModel.cs
@@ -7,7 +7,8 @@
namespace Snxxz.UI
{
    public class PrayForDurgModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class PrayForDurgModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    {
        BlastFurnaceModel blastModel { get { return ModelCenter.Instance.GetModel<BlastFurnaceModel>(); } }
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
System/BossReborn/BossRebornModel.cs
@@ -6,7 +6,8 @@
namespace Snxxz.UI
{
    public class BossRebornModel : Model, IOpenServerActivity
    [XLua.LuaCallCSharp]
    public class BossRebornModel : Model, IOpenServerActivity
    {
        int m_BossRebornIntegral = 0;
        public int bossRebornIntegral {
System/BossShow/BossShowModel.cs
@@ -7,7 +7,9 @@
namespace Snxxz.UI
{
    public class BossShowModel : Singleton<BossShowModel>
    [XLua.LuaCallCSharp]
public class BossShowModel : Singleton<BossShowModel>
    {
        public BossShowModel()
        {
System/Chat/ChatCenter.cs
@@ -7,6 +7,7 @@
using UnityEngine;
namespace Snxxz.UI
{
    [XLua.LuaCallCSharp]
    public class ChatCenter : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, ISwitchAccount
    {
        RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
@@ -930,10 +931,8 @@
            }
        }
        public bool IsChatBanned
        {
            get
            {
        public bool IsChatBanned {
            get {
                var value = PlayerDatas.Instance.extersion.forbidenTalk;
                var serverBanned = value == 1;
                return serverBanned;
System/Chat/VoiceHttpRequest.cs
@@ -4,7 +4,9 @@
using System.Text;
using UnityEngine;
[XLua.LuaCallCSharp]
public class VoiceHttpRequest : SingletonMonobehaviour<VoiceHttpRequest>
{
    const string uploadUrl = "http://{0}.voice.2460web.com:53001/voice/upload";
    const string downloadUrl = "http://{0}.voice.2460web.com:53001/voice/download";
System/ClientVersion/VersionUtility.cs
@@ -12,7 +12,9 @@
using Snxxz.UI;
using System.Text;
[XLua.LuaCallCSharp]
public class VersionUtility : Singleton<VersionUtility>
{
    public static readonly string[] VERSION_URL = new string[] { "http://pub.game.2460web.com:11000/appversion/?" ,
    "http://111.230.234.252:11000/appversion/?"};
System/Compose/New/ComposeWinModel.cs
@@ -6,7 +6,8 @@
using TableConfig;
using LitJson;
public class ComposeWinModel : Model, IBeforePlayerDataInitialize,IPlayerLoginOk
[XLua.LuaCallCSharp]
    public class ComposeWinModel : Model, IBeforePlayerDataInitialize,IPlayerLoginOk
{
    public event Action ResetModelEvent;
System/Compose/New/SelectEquipModel.cs
@@ -5,7 +5,8 @@
using TableConfig;
using UnityEngine;
public class SelectEquipModel : Model
[XLua.LuaCallCSharp]
    public class SelectEquipModel : Model
{
    ComposeWinModel _composeWinModel;
    ComposeWinModel composeWinModel
System/DailyQuest/DailyQuestActionTimer.cs
@@ -10,7 +10,9 @@
namespace Snxxz.UI
{
    public class DailyQuestActionTimer : SingletonMonobehaviour<DailyQuestActionTimer>
    [XLua.LuaCallCSharp]
public class DailyQuestActionTimer : SingletonMonobehaviour<DailyQuestActionTimer>
    {
        DailyQuestModel model { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
        public event Action RefreshDailyQuestState;
System/DailyQuest/DailyQuestModel.cs
@@ -11,7 +11,8 @@
namespace Snxxz.UI
{
    public class DailyQuestModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IMapInitOk
    [XLua.LuaCallCSharp]
    public class DailyQuestModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IMapInitOk
    {
        const int DAILYQUEST_REDPOINTID = 78000;
System/DailyQuest/DailyQuestWin.cs
@@ -188,7 +188,6 @@
        public void GotoDailyQuest(int _id)
        {
            bool inDungeon = IsDungeon();
            switch ((DailyQuestType)_id)
            {
                case DailyQuestType.FairyLand:
@@ -214,7 +213,6 @@
                    break;
                case DailyQuestType.BountyMission:
                    WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.BountyInterface);
                    //GotoBountyMission();
                    break;
                case DailyQuestType.Demon:
                    GotoChaosDemon(_id);
@@ -252,7 +250,6 @@
                    break;
                case DailyQuestType.FairyTask:
                    WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.UnionTask);
                    //    GotoFairyTask();
                    break;
                case DailyQuestType.FairyLeague:
                    WindowCenter.Instance.CloseImmediately<DailyQuestWin>();
@@ -304,6 +301,7 @@
                    WindowCenter.Instance.Open<LocalMapWin>();
                    break;
                default:
                    CSharpCallLua.GotoLuaDailyQuest(_id);
                    break;
            }
System/DailyQuest/ResourcesBackModel.cs
@@ -66,7 +66,8 @@
        item,
        sp,
    }
    public class ResourcesBackModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class ResourcesBackModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        public Dictionary<int, ResourcesBackClass> ResourcesBackDic = new Dictionary<int, ResourcesBackClass>();
System/Debug/DebugUtility.cs
@@ -5,6 +5,7 @@
using LitJson;
using System.IO;
[XLua.LuaCallCSharp]
public class DebugUtility : Singleton<DebugUtility>
{
    const string url = "http://pub.game.2460web.com:11000/dbg_player/?";
@@ -12,11 +13,9 @@
    GameObject debugRoot;
    bool m_DebugAccount = false;
    public bool debugAccount
    {
    public bool debugAccount {
        get { return m_DebugAccount; }
        private set
        {
        private set {
            if (m_DebugAccount != value)
            {
                m_DebugAccount = value;
System/Dogz/DogzModel.cs
@@ -6,7 +6,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class DogzModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class DogzModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    {
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
        GodBeastModel beastModel { get { return ModelCenter.Instance.GetModel<GodBeastModel>(); } }
System/Dogz/DogzPackModel.cs
@@ -5,7 +5,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class DogzPackModel : Model
    [XLua.LuaCallCSharp]
    public class DogzPackModel : Model
    {
        PlayerPackModel m_PlayerPackModel
        {
System/DogzDungeon/DogzDungeonModel.cs
@@ -6,7 +6,8 @@
namespace Snxxz.UI
{
    public class DogzDungeonModel : Model, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class DogzDungeonModel : Model, IPlayerLoginOk
    {
        public const int DOGZDUNGEON_REDPOINT = 77002;
System/Dungeon/DungeonData.cs
@@ -5,7 +5,7 @@
namespace Snxxz.UI
{
    [XLua.LuaCallCSharp]
    public struct Dungeon
    {
        public int mapId;
System/Dungeon/DungeonLiquidModel.cs
@@ -4,7 +4,8 @@
using TableConfig;
namespace Snxxz.UI
{
    public class DungeonLiquidModel : Model
    [XLua.LuaCallCSharp]
    public class DungeonLiquidModel : Model
    {
        public Dictionary<int, Dictionary<int, StoreConfig>> liquidStoreDict = new Dictionary<int, Dictionary<int, StoreConfig>>();
        public List<ItemModel> liquidItemList = new List<ItemModel>();
System/Dungeon/DungeonModel.cs
@@ -8,7 +8,8 @@
namespace Snxxz.UI
{
    public class DungeonModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize
    [XLua.LuaCallCSharp]
    public class DungeonModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize
    {
        Dictionary<int, Dictionary<int, int>> dungeonMap = new Dictionary<int, Dictionary<int, int>>();//mapid,lineId,DungeonId;
        Dictionary<int, Dictionary<int, int>> dungeonHintMap = new Dictionary<int, Dictionary<int, int>>();
System/Dungeon/TrialDungeonModel.cs
@@ -6,7 +6,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class TrialDungeonModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class TrialDungeonModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        Dictionary<int, List<TrialExchangeConfig>> trialTokenExchangeDict = new Dictionary<int, List<TrialExchangeConfig>>();
        Dictionary<int, int> lineToTokenClassDict;
System/FairyAu/FairyBossModel.cs
@@ -5,7 +5,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class FairyBossModel : Model
    [XLua.LuaCallCSharp]
    public class FairyBossModel : Model
    {
        public override void Init()
        {
System/FairyAu/FairyGrabBossModel.cs
@@ -5,7 +5,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class FairyGrabBossModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    [XLua.LuaCallCSharp]
    public class FairyGrabBossModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    {
        public List<int> bosses { get; private set; }
        Dictionary<int, List<Item>> dropItemDict = new Dictionary<int, List<Item>>();
System/FairyAu/FairyLeagueModel.cs
@@ -9,7 +9,8 @@
namespace Snxxz.UI
{
    public class FairyLeagueModel : Model, IAfterPlayerDataInitialize, IBeforePlayerDataInitialize, IPlayerLoginOk,IOpenServerActivity
    [XLua.LuaCallCSharp]
    public class FairyLeagueModel : Model, IAfterPlayerDataInitialize, IBeforePlayerDataInitialize, IPlayerLoginOk,IOpenServerActivity
    {
        public event Action OnRefreshFairyLeagueEvent;
System/FairyAu/FairyModel.cs
@@ -6,7 +6,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class FairyModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class FairyModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        public override void Init()
System/FairyAu/KingFairyModel.cs
@@ -7,7 +7,8 @@
namespace Snxxz.UI
{
    public class KingFairyModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class KingFairyModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        public override void Init()
        {
System/FairyAu/UnionTaskModel.cs
@@ -3,7 +3,8 @@
using System.Collections.Generic;
using TableConfig;
public class UnionTaskModel : Model,IBeforePlayerDataInitialize
[XLua.LuaCallCSharp]
    public class UnionTaskModel : Model,IBeforePlayerDataInitialize
{
    private FuncConfigConfig _tagFuncModel;
    public Action RefreshLivenScoreEvent;
System/FairylandCeremony/FairylandCeremonyModel.cs
@@ -5,7 +5,8 @@
namespace Snxxz.UI
{
    public class FairylandCeremonyModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class FairylandCeremonyModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    {
        public ReceiveState receiveState { get; private set; }
        Dictionary<CeremonyType, Dictionary<int, List<int>>> typeLvDict = new Dictionary<CeremonyType, Dictionary<int, List<int>>>();
System/FakeDungeon/FakeDungeonUtility.cs
@@ -2,7 +2,9 @@
using System.Collections.Generic;
using UnityEngine;
[XLua.LuaCallCSharp]
public class FakeDungeonUtility : Singleton<FakeDungeonUtility>
{
    int m_TureMapId = -1;
System/FindPrecious/BossHomeModel.cs
@@ -6,7 +6,8 @@
namespace Snxxz.UI
{
    public class BossHomeModel : Model, IMapInitOk
    [XLua.LuaCallCSharp]
    public class BossHomeModel : Model, IMapInitOk
    {
        public const int BOSSHOME_MAPID = 31020;
System/FindPrecious/DemonJarModel.cs
@@ -11,7 +11,8 @@
namespace Snxxz.UI
{
    public class DemonJarModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, ISwitchAccount, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class DemonJarModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, ISwitchAccount, IPlayerLoginOk
    {
        public const int TOTALTIME_LIMIT = 5;
System/FindPrecious/ElderGodAreaModel.cs
@@ -6,7 +6,8 @@
namespace Snxxz.UI
{
    public class ElderGodAreaModel : Model, IMapInitOk
    [XLua.LuaCallCSharp]
    public class ElderGodAreaModel : Model, IMapInitOk
    {
        public const int ELDERGODAREA_MAPID = 31150;
System/FindPrecious/FindPreciousModel.cs
@@ -7,7 +7,8 @@
namespace Snxxz.UI
{
    public class FindPreciousModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk, IMapInitOk, ISwitchAccount
    [XLua.LuaCallCSharp]
    public class FindPreciousModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk, IMapInitOk, ISwitchAccount
    {
        public const int PREPOSE_SECONDS = 300;
        public const int FINDPRECIOUS_REDPOINTID = 76000;
System/FindPrecious/FindPreciousTimer.cs
@@ -11,7 +11,9 @@
namespace Snxxz.UI
{
    public class FindPreciousTimer : SingletonMonobehaviour<FindPreciousTimer>
    [XLua.LuaCallCSharp]
public class FindPreciousTimer : SingletonMonobehaviour<FindPreciousTimer>
    {
        FindPreciousModel model { get { return ModelCenter.Instance.GetModel<FindPreciousModel>(); } }
        Dictionary<int, BossRebornClock> clocks = new Dictionary<int, BossRebornClock>();
System/FindPrecious/LootPreciousFrameWin.cs
@@ -14,7 +14,7 @@
    {
        [SerializeField] FunctionButtonGroup m_FunctionGroup;
        [SerializeField] FunctionButton m_DemonJar;
        [SerializeField] FunctionButton m_DemonJar;
        [SerializeField] FunctionButton m_FairyGrabBoss;
        [SerializeField] FunctionButton m_DogzDungeon;
@@ -30,10 +30,10 @@
        protected override void AddListeners()
        {
            m_DemonJar.AddListener(ShowDemonJar);
            m_DogzDungeon.AddListener(ShowDogzDungeon);
            m_DogzDungeon.AddListener(ShowDogzDungeon);
            m_FairyGrabBoss.AddListener(FairyGrabBoss);
            m_Left.AddListener(ShowLastFunction);
            m_Right.AddListener(ShowNextFunction);
            m_Right.AddListener(ShowNextFunction);
            m_Close.AddListener(CloseClick);
        }
@@ -79,8 +79,8 @@
        private void FairyGrabBoss()
        {
            CloseSubWindows();
            WindowCenter.Instance.Open<FairyGrabBossWin>();
            CloseSubWindows();
            WindowCenter.Instance.Open<FairyGrabBossWin>();
            functionOrder = m_FairyGrabBoss.order;
        }
@@ -93,9 +93,11 @@
        private void CloseSubWindows()
        {
            WindowCenter.Instance.CloseImmediately<DemonJarWin>();
            WindowCenter.Instance.CloseImmediately<DogzDungeonWin>();
            WindowCenter.Instance.CloseImmediately<FairyGrabBossWin>();
            var children = WindowConfig.Get().FindChildWindows("LootPreciousFrameWin");
            foreach (var window in children)
            {
                WindowCenter.Instance.Close(window);
            }
        }
        private void ShowLastFunction()
System/FindPrecious/PersonalBossModel.cs
@@ -7,7 +7,8 @@
namespace Snxxz.UI
{
    public class PersonalBossModel : Model, IMapInitOk
    [XLua.LuaCallCSharp]
    public class PersonalBossModel : Model, IMapInitOk
    {
        public const int PERSONALBOSS_MAPID = 31240;
        public const int PERSONAL_REDPOINTID = 76003;
System/FindPrecious/RewardPreviewGroup.cs
@@ -10,7 +10,7 @@
namespace Snxxz.UI
{
    [XLua.LuaCallCSharp]
    public class RewardPreviewGroup : MonoBehaviour
    {
        [SerializeField]
@@ -49,6 +49,39 @@
            Display(items);
        }
        public void LuaDisplay(int[] itemIds, int[] itemCounts)
        {
            if (itemIds == null || itemCounts == null)
            {
                return;
            }
            var items = new List<Item>();
            var min = Mathf.Min(itemIds.Length, itemCounts.Length);
            for (int i = 0; i < min; i++)
            {
                items.Add(new Item(itemIds[i], itemCounts[i]));
            }
            Display(items);
        }
        public void LuaDisplay(int[] itemIds)
        {
            if (itemIds == null)
            {
                return;
            }
            var items = new List<Item>();
            for (int i = 0; i < itemIds.Length; i++)
            {
                items.Add(new Item(itemIds[i], 0));
            }
            Display(items);
        }
        public void Hide()
        {
            for (int i = 0; i < m_ItemBehaviours.Length; i++)
System/FindPrecious/WorldBossModel.cs
@@ -6,7 +6,8 @@
namespace Snxxz.UI
{
    public class WorldBossModel : Model
    [XLua.LuaCallCSharp]
    public class WorldBossModel : Model
    {
        public const int WORLDBOSS_REDPOINT = 76001;
System/FriendSystem/New/FriendsModel.cs
@@ -36,7 +36,8 @@
    None,
}
public class FriendsModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize
[XLua.LuaCallCSharp]
    public class FriendsModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize
{
    TeamModel _teamModel;
    public TeamModel TeamModel
System/GMCommand/GMCmdModel.cs
@@ -4,7 +4,8 @@
using System.Text;
using System;
public class GMCmdModel : Model
[XLua.LuaCallCSharp]
    public class GMCmdModel : Model
{
    public const string Record_CmdKey = "Record_CmdKey";
    private List<string> recordCmdlist = new List<string>();
System/Guard/GuardModel.cs
@@ -5,7 +5,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class GuardModel : Model, IAfterPlayerDataInitialize, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class GuardModel : Model, IAfterPlayerDataInitialize, IPlayerLoginOk
    {
        List<int> fairyLandGuardItems = new List<int>();
System/HappyXB/HappyXBModel.cs
@@ -9,7 +9,8 @@
namespace Snxxz.UI
{
    public class HappyXBModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class HappyXBModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    {
        private Dictionary<string, XBGetItemConfig> xbGetItemDict = new Dictionary<string, XBGetItemConfig>();
        private Dictionary<int, List<XBGetItemConfig>> xbTypeItemDict = new Dictionary<int, List<XBGetItemConfig>>();
System/HeavenBattle/HeavenBattleInfo.cs
@@ -6,7 +6,9 @@
namespace Snxxz.UI
{
    public class HeavenBattleInfo : Singleton<HeavenBattleInfo>
    [XLua.LuaCallCSharp]
public class HeavenBattleInfo : Singleton<HeavenBattleInfo>
    {
        public HeavenBattleInfo()
        {
System/HeavenBattle/HeavenBattleModel.cs
@@ -7,7 +7,8 @@
using System.Collections;
using System.Linq;
public class HeavenBattleModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
[XLua.LuaCallCSharp]
    public class HeavenBattleModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
{
    public const int HEAVEBATTLE_MAPID = 31010;
    public const int HEAVEBATTLE_TargetID = 38;
System/HttpRequest/HttpRequest.cs
@@ -6,7 +6,9 @@
using System.Text;
using UnityEngine;
public class HttpRequest : SingletonMonobehaviour<HttpRequest>
[XLua.LuaCallCSharp]
public class HttpRequest : SingletonMonobehaviour<HttpRequest>
{
    public const string defaultHttpContentType = "application/x-www-form-urlencoded";
    public const string jsonHttpContentType = "application/json ; charset=utf-8";
System/KnapSack/KnapsackTimeCDMgr.cs
@@ -6,7 +6,9 @@
namespace Snxxz.UI
{
    public class KnapsackTimeCDMgr : SingletonMonobehaviour<KnapsackTimeCDMgr>
    [XLua.LuaCallCSharp]
public class KnapsackTimeCDMgr : SingletonMonobehaviour<KnapsackTimeCDMgr>
    {
        private List<ItemCDCool> itemCDList = new List<ItemCDCool>();
        private List<NormalCDCool> normalCDList = new List<NormalCDCool>();
System/KnapSack/Logic/BoxGetItemModel.cs
@@ -5,7 +5,8 @@
namespace Snxxz.UI
{
    public class BoxGetItemModel : Model,IBeforePlayerDataInitialize
    [XLua.LuaCallCSharp]
    public class BoxGetItemModel : Model,IBeforePlayerDataInitialize
    {
        public string guid { get; private set; }
        public int itemId { get; private set;}
System/KnapSack/Logic/ItemOverdueModel.cs
@@ -8,7 +8,8 @@
namespace Snxxz.UI
{
    public class ItemOverdueModel : Model,IBeforePlayerDataInitialize,IPlayerLoginOk, ISwitchAccount
    [XLua.LuaCallCSharp]
    public class ItemOverdueModel : Model,IBeforePlayerDataInitialize,IPlayerLoginOk, ISwitchAccount
    {
        private List<ItemModel> overdueGuardPushlist = new List<ItemModel>();
        private Dictionary<int, List<int>> itemOverdueDict;
System/KnapSack/Logic/ItemTipsModel.cs
@@ -9,7 +9,8 @@
namespace Snxxz.UI
{
    public class ItemTipsModel : Model, IBeforePlayerDataInitialize
    [XLua.LuaCallCSharp]
    public class ItemTipsModel : Model, IBeforePlayerDataInitialize
    {
        FuncConfigConfig exhaustedFunc;
System/KnapSack/Logic/PackModelInterface.cs
@@ -7,7 +7,8 @@
namespace Snxxz.UI
{
    public class PackModelInterface : Model, IBeforePlayerDataInitialize,IPlayerLoginOk
   [XLua.LuaCallCSharp]
     public class PackModelInterface : Model, IBeforePlayerDataInitialize,IPlayerLoginOk
    {
        private ItemConfig tagChinModel;
        private FuncConfigConfig _equipGSFormula;
System/KnapSack/Logic/PackSendQuestMgr.cs
@@ -7,7 +7,9 @@
namespace Snxxz.UI
{
    public class PackSendQuestMgr : Singleton<PackSendQuestMgr>
    [XLua.LuaCallCSharp]
public class PackSendQuestMgr : Singleton<PackSendQuestMgr>
    {
        PlayerPackModel _playerPack;
        PlayerPackModel playerPack
System/KnapSack/Logic/PlayerPackModels.cs
@@ -8,7 +8,8 @@
namespace Snxxz.UI
{
    public class PlayerPackModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class PlayerPackModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    {
        public Dictionary<int, int> DrugToDungeonDict { get; private set; }   //key 丹药ID,value副本ID
System/KnapSack/Logic/TreasureEffectModel.cs
@@ -7,7 +7,8 @@
namespace Snxxz.UI
{
    public class TreasureEffectModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class TreasureEffectModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    {
        public List<int> treasureAddAtklist { get; private set; }
        public List<string> treasureIdlist { get; private set; }
System/KnapSack/New/BatchUseModel.cs
@@ -6,7 +6,9 @@
namespace Snxxz.UI
{
    public class BatchUseModel : Singleton<BatchUseModel>
    [XLua.LuaCallCSharp]
public class BatchUseModel : Singleton<BatchUseModel>
    {
        #region 批量使用数据
        public string guid { get; private set; }
System/KnapSack/New/KnapSackEventMgr.cs
@@ -2,7 +2,9 @@
using UnityEngine;
using Snxxz.UI;
[XLua.LuaCallCSharp]
public class KnapSackEventMgr : Singleton<KnapSackEventMgr>
{
    public Action<GameObject> AddEquipWinTempObjEvent;
System/Login/LoginModel.cs
@@ -5,7 +5,8 @@
namespace Snxxz.UI
{
    public class LoginModel : Model
    [XLua.LuaCallCSharp]
    public class LoginModel : Model
    {
        public const uint DwVersionNo = 153518004;
        public readonly static string USER_ACCOUNT = Application.dataPath + "UserAccount";
System/Login/ServerListCenter.cs
@@ -6,7 +6,9 @@
using Snxxz.UI;
using TableConfig;
[XLua.LuaCallCSharp]
public class ServerListCenter : Singleton<ServerListCenter>
{
    public static readonly string[] JUMP_URL = new string[] { "http://pub.game.2460web.com:11000/server_list/?"
        ,"http://111.230.234.252:11000/server_list/?"};
System/LoginAd/LoginAdModel.cs
@@ -5,7 +5,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class LoginAdModel : Model, IPlayerLoginOk,IBeforePlayerDataInitialize
    [XLua.LuaCallCSharp]
    public class LoginAdModel : Model, IPlayerLoginOk,IBeforePlayerDataInitialize
    {
        FairyJadeInvestmentModel moneyInvestModel { get { return ModelCenter.Instance.GetModel<FairyJadeInvestmentModel>(); } }
        VipInvestModel vipInvestModel { get { return ModelCenter.Instance.GetModel<VipInvestModel>(); } }
System/MainInterfacePanel/CapacityDelayModel.cs
@@ -10,7 +10,8 @@
using TableConfig;
using System.Collections.Generic;
//用于获得法宝技能的战斗力延迟
public class CapacityDelayModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
[XLua.LuaCallCSharp]
    public class CapacityDelayModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
{
    TreasureModel m_treasureModel;
    TreasureModel treasureModel { get { return m_treasureModel ?? (m_treasureModel = ModelCenter.Instance.GetModel<TreasureModel>()); } }
System/MainInterfacePanel/CoinTaskTipModel.cs
@@ -10,7 +10,8 @@
using Snxxz.UI;
using System;
public class CoinTaskTipModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
[XLua.LuaCallCSharp]
    public class CoinTaskTipModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
{
    public bool IsPopup = false;//赏金
System/MainInterfacePanel/FeatureNoticeModel.cs
@@ -11,7 +11,8 @@
using Snxxz.UI;
//功能预告红点
public class FeatureNoticeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
[XLua.LuaCallCSharp]
    public class FeatureNoticeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
{
    public List<FunctionForecastConfig> FunctionList = new List<FunctionForecastConfig>();
    public Dictionary<int, ImpactRankModel.RankAwardItem> DicAwardItem = new Dictionary<int, ImpactRankModel.RankAwardItem>();//奖励物品
System/MainInterfacePanel/MainRedDot.cs
@@ -10,7 +10,9 @@
namespace Snxxz.UI {
    public class MainRedDot : Singleton<MainRedDot> {
    [XLua.LuaCallCSharp]
public class MainRedDot : Singleton<MainRedDot> {
        public const int RedPoint_key = 1;
        public const int FAIRY_REDPOINT_KEY1 = 107;
System/MainInterfacePanel/OffLineOnHookModel.cs
@@ -24,7 +24,8 @@
    }
    public class OffLineOnHookModel : Model, IBeforePlayerDataInitialize
    [XLua.LuaCallCSharp]
    public class OffLineOnHookModel : Model, IBeforePlayerDataInitialize
    {
        public MCTJGInfoClass mCTJGInfoClass = new MCTJGInfoClass();
       public  Dictionary<int, int> DicItem = new Dictionary<int, int>();
System/MainInterfacePanel/PKModel.cs
@@ -12,7 +12,8 @@
namespace Snxxz.UI {
    
  
    public class PKModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize
    [XLua.LuaCallCSharp]
    public class PKModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize
    {
        PlayerBuffDatas m_BuffModel;
        PlayerBuffDatas Buffmodel
System/MainInterfacePanel/StoryMissionsModel.cs
@@ -20,7 +20,8 @@
        public int TaskID;
        public int TaskType;//(0,未完成,1,正在进行中)
    }
    public class StoryMissionsModel : Model, IBeforePlayerDataInitialize
    [XLua.LuaCallCSharp]
    public class StoryMissionsModel : Model, IBeforePlayerDataInitialize
    {
        public Dictionary<int, int> StoryMissionsDic = new Dictionary<int, int>();//(value,0未完成,1完成)
        public Dictionary<int, List<TaskListConfig>> TaskCfgDict = new Dictionary<int, List<TaskListConfig>>();
System/MainInterfacePanel/TaskAllocation.cs
@@ -12,7 +12,9 @@
namespace Snxxz.UI
{
    public class TaskAllocation : Singleton<TaskAllocation>
    [XLua.LuaCallCSharp]
public class TaskAllocation : Singleton<TaskAllocation>
    {
        private static StringBuilder textBuilder = new StringBuilder();
System/MainInterfacePanel/TipPanel.cs
@@ -12,7 +12,9 @@
{
    //用于主界面的Tip的引导结束后出现
    public class TipPanel : Singleton<TipPanel>
    [XLua.LuaCallCSharp]
public class TipPanel : Singleton<TipPanel>
    {
        PlayerMainDate m_MainModel;
        PlayerMainDate mainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel<PlayerMainDate>()); } }
System/Market/PutawayData.cs
@@ -3,7 +3,9 @@
using UnityEngine;
using Snxxz.UI;
[XLua.LuaCallCSharp]
public class PutawayData:Singleton<PutawayData>  {
    public byte priceType = 0;
    public uint priceCnt = 0;//出售价格
    public string pwd = string.Empty;//交易密码
System/Message/BattleHint.cs
@@ -4,7 +4,9 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class BattleHint : Singleton<BattleHint>
    [XLua.LuaCallCSharp]
public class BattleHint : Singleton<BattleHint>
    {
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
System/Message/GMNotify.cs
@@ -4,7 +4,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class GMNotify : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
   [XLua.LuaCallCSharp]
     public class GMNotify : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        public override void Init()
System/Message/SysNotifyMgr.cs
@@ -6,7 +6,9 @@
using TableConfig;
using UnityEngine.UI;
[XLua.LuaCallCSharp]
public class SysNotifyMgr : SingletonMonobehaviour<SysNotifyMgr>
{
    /// <summary>
    /// 服务端下发的数据
System/NewBieGuidance/FunctionalGuideCenter.cs
@@ -11,7 +11,9 @@
namespace Snxxz.UI
{
    public class FunctionalGuideCenter : Singleton<FunctionalGuideCenter>
    [XLua.LuaCallCSharp]
public class FunctionalGuideCenter : Singleton<FunctionalGuideCenter>
    {
        public event Action<int> beginGuideEvent;
        public event Action<int> finishGuideEevent;
System/NewBieGuidance/NewBieCenter.cs
@@ -12,7 +12,9 @@
namespace Snxxz.UI
{
    public class NewBieCenter : Singleton<NewBieCenter>
    [XLua.LuaCallCSharp]
public class NewBieCenter : Singleton<NewBieCenter>
    {
        int m_CurrentGuide = 0;
System/OffLineTime/OffLineTimeLackModel.cs
@@ -9,7 +9,8 @@
namespace Snxxz.UI
{
    public class OffLineTimeLackModel : Model, ISwitchAccount, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class OffLineTimeLackModel : Model, ISwitchAccount, IPlayerLoginOk
    {
        public bool hasRemindOffLineTimeLack { get; set; }
System/OpenServerActivity/FlashRushToBuyModel.cs
@@ -6,7 +6,8 @@
namespace Snxxz.UI
{
    public class FlashRushToBuyModel : Model,IBeforePlayerDataInitialize,IPlayerLoginOk,IOpenServerActivity
    [XLua.LuaCallCSharp]
    public class FlashRushToBuyModel : Model,IBeforePlayerDataInitialize,IPlayerLoginOk,IOpenServerActivity
    {
        StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } }
        HeavenBattleModel battleModel { get { return ModelCenter.Instance.GetModel<HeavenBattleModel>(); } }
System/OpenServerActivity/FlashSaleModel.cs
@@ -4,7 +4,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class FlashSaleModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IOpenServerActivity
    [XLua.LuaCallCSharp]
    public class FlashSaleModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IOpenServerActivity
    {
        StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } }
        public override void Init()
System/OpenServerActivity/ImpactRankModel.cs
@@ -7,7 +7,8 @@
namespace Snxxz.UI
{
    public class ImpactRankModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    [XLua.LuaCallCSharp]
    public class ImpactRankModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    {
        public override void Init()
        {
@@ -687,7 +688,9 @@
        #endregion
    }
    public class OpenServerActivityCenter : Singleton<OpenServerActivityCenter>
    [XLua.LuaCallCSharp]
public class OpenServerActivityCenter : Singleton<OpenServerActivityCenter>
    {
        public event Action openServerActivityStateChange;
System/OpenServerActivity/InSevenDayModel.cs
@@ -16,7 +16,8 @@
    public int Money;//奖励价值
}
public class InSevenDayModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
[XLua.LuaCallCSharp]
    public class InSevenDayModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
{
    public static event Action AwardMessageUpdate;
System/OpenServerActivity/MonthlyInvestmentModel.cs
@@ -17,7 +17,8 @@
        public int NeedLv;//需要等级
        public MonthlyInvestmentModel.MonthlyInvestmentItem monthlyInvestmentItem;//奖励
    }
    public class MonthlyInvestmentModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class MonthlyInvestmentModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        public Dictionary<int, MonthlyInvestmentClass> MonthlyInvestmentDic = new Dictionary<int, MonthlyInvestmentClass>();
        public Dictionary<int, int> InfoSeriors = new Dictionary<int, int>();//奖励领取信息
System/OpenServerActivity/OSGiftModel.cs
@@ -5,7 +5,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class OSGiftModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IOpenServerActivity
    [XLua.LuaCallCSharp]
    public class OSGiftModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IOpenServerActivity
    {
        public override void Init()
        {
System/OpenServerActivity/OSRedEnvelopeModel.cs
@@ -5,7 +5,8 @@
using TableConfig;
namespace Snxxz.UI
{
    public class OSRedEnvelopeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    [XLua.LuaCallCSharp]
    public class OSRedEnvelopeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    {
        AchievementModel m_AchievementModel;
        AchievementModel achieveModel
System/OpenServerActivity/OpenServerActivityNotifyModel.cs
@@ -5,7 +5,8 @@
namespace Snxxz.UI
{
    public class OpenServerActivityNotifyModel : Model,IBeforePlayerDataInitialize,IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class OpenServerActivityNotifyModel : Model,IBeforePlayerDataInitialize,IPlayerLoginOk
    {
      
        public override void Init()
System/OpenServerActivity/RedEnvelopeModel.cs
@@ -5,7 +5,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class RedEnvelopeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class RedEnvelopeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        PlayerRedPacketDatas redPackdata { get { return ModelCenter.Instance.GetModel<PlayerRedPacketDatas>(); } }
        OSRedEnvelopeModel envelopeModel { get { return ModelCenter.Instance.GetModel<OSRedEnvelopeModel>(); } }
System/OpenServerActivity/WishingPoolModel.cs
@@ -6,6 +6,7 @@
namespace Snxxz.UI
{
    [XLua.LuaCallCSharp]
    public class WishingPoolModel : Model,IBeforePlayerDataInitialize,IPlayerLoginOk,IOpenServerActivity
    {
        public event Action<int> UpdateWishingDataEvent;
System/Pet/PetReinforceModel.cs
@@ -8,7 +8,9 @@
using System.Text;
    public class PetReinforceModel:Singleton<PetReinforceModel>
    [XLua.LuaCallCSharp]
public class PetReinforceModel:Singleton<PetReinforceModel>
{
    public PetReinforceTitle PetTitle = PetReinforceTitle.EvolveTrain;
System/Pet/RidingAndPetActivationModel.cs
@@ -12,7 +12,8 @@
namespace Snxxz.UI
{
    public class RidingAndPetActivationModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class RidingAndPetActivationModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        public RidingAndPetActivation RidingAndPetActivation1;
System/PlayerDead/PlayerDeadModel.cs
@@ -6,7 +6,8 @@
using System.Collections;
using System.Text;
public class PlayerDeadModel : Model, IBeforePlayerDataInitialize,IPlayerLoginOk
[XLua.LuaCallCSharp]
    public class PlayerDeadModel : Model, IBeforePlayerDataInitialize,IPlayerLoginOk
{
    public int[]dungeonKillArray { get; private set; }
    public override void Init()
System/Rank/RankModel.cs
@@ -3,7 +3,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class RankModel : Model
    [XLua.LuaCallCSharp]
    public class RankModel : Model
    {
        private int m_RankType = 0;
        public int rankType {
System/Realm/RealmPracticeModel.cs
@@ -6,7 +6,8 @@
using UnityEngine;
using System.Text;
public class RealmPracticeModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
[XLua.LuaCallCSharp]
    public class RealmPracticeModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
{
    private Dictionary<int, Dictionary<int, List<RealmPracticeConfig>>> OpenRealmPraDict = new Dictionary<int, Dictionary<int, List<RealmPracticeConfig>>>(); 
    private SuccessConfig _tagAchievementModel = null;
System/Redpoint/Redpoint.cs
@@ -4,6 +4,7 @@
namespace Snxxz.UI
{
    [XLua.LuaCallCSharp]
    public class Redpoint
    {
        int m_Id = 0;
System/Redpoint/RedpointCenter.cs
@@ -5,6 +5,7 @@
namespace Snxxz.UI
{
    [XLua.LuaCallCSharp]
    public class RedpointCenter : Singleton<RedpointCenter>
    {
        public event Action<int> redpointValueChangeEvent;
System/Role/MagicianModel.cs
@@ -8,7 +8,8 @@
namespace Snxxz.UI
{
    public class MagicianModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class MagicianModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        PlayerPackModel _playerPack;
        PlayerPackModel playerPack
System/Role/RoleModel.cs
@@ -6,7 +6,8 @@
namespace Snxxz.UI
{
    public class RoleModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class RoleModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    {
        FriendsModel friendsModel { get { return ModelCenter.Instance.GetModel<FriendsModel>(); } }
        public string RecordPlayerNameKey;
System/Role/TitleModel.cs
@@ -5,7 +5,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class TitleModel : Model, IBeforePlayerDataInitialize,IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class TitleModel : Model, IBeforePlayerDataInitialize,IPlayerLoginOk
    {
        const string TITLEKEY = "Title";
System/RoleParticulars/RoleParticularModel.cs
@@ -7,7 +7,8 @@
namespace Snxxz.UI
{
    public class RoleParticularModel : Model
    [XLua.LuaCallCSharp]
    public class RoleParticularModel : Model
    {
        public override void Init()
System/RolePromote/RolePromoteModel.cs
@@ -7,7 +7,8 @@
namespace Snxxz.UI
{
    public class RolePromoteModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class RolePromoteModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
    {
        PlayerPackModel _playerPack;
        PlayerPackModel playerPack
System/Rune/RuneComposeModel.cs
@@ -5,7 +5,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class RuneComposeModel : Model, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class RuneComposeModel : Model, IPlayerLoginOk
    {
        public override void Init()
        {
System/Rune/RuneModel.cs
@@ -8,7 +8,8 @@
namespace Snxxz.UI
{
    public class RuneModel : Model, IBeforePlayerDataInitialize,IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class RuneModel : Model, IBeforePlayerDataInitialize,IPlayerLoginOk
    {
        RuneComposeModel m_RuneComposeModel;
        RuneComposeModel runeComposeModel {
System/RuneTower/RuneTowerModel.cs
@@ -7,7 +7,8 @@
namespace Snxxz.UI
{
    public class RuneTowerModel : Model, IMapInitOk, IBeforePlayerDataInitialize, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class RuneTowerModel : Model, IMapInitOk, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        public const int RUNETOWER_MAPID = 31130;
System/Skill/QuickSetting.cs
@@ -7,7 +7,9 @@
/// <summary>
/// 服务端Setting配置,存储一些快捷设置,目前长度为100
/// </summary>
[XLua.LuaCallCSharp]
public class QuickSetting : Singleton<QuickSetting>
{
    public QuickSetting()
    {
System/Skill/SkillModel.cs
@@ -8,7 +8,8 @@
namespace Snxxz.UI
{
    public class SkillModel : Model, IBeforePlayerDataInitialize,IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class SkillModel : Model, IBeforePlayerDataInitialize,IPlayerLoginOk
    {
        public override void Init()
        {
System/Skill/TalentModel.cs
@@ -7,7 +7,8 @@
namespace Snxxz.UI
{
    public class TalentModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize
    [XLua.LuaCallCSharp]
    public class TalentModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize
    {
        Dictionary<int, TalentSkill> talentSkills = new Dictionary<int, TalentSkill>();
        Dictionary<int, TalentTree> talentTreeDict = new Dictionary<int, TalentTree>();
System/StartCoroutine/CoroutineMgr.cs
@@ -6,7 +6,9 @@
using Snxxz.UI;
using System.Linq;
[XLua.LuaCallCSharp]
public class CoroutineMgr : SingletonMonobehaviour<CoroutineMgr>
{
    public event Action MainHighTipCdTimeEvent;//主界面上层切换CD时间
  
System/Store/BuyItemPopModel.cs
@@ -5,7 +5,9 @@
using System.Text;
using TableConfig;
[XLua.LuaCallCSharp]
public class BuyItemPopModel : Singleton<BuyItemPopModel>
{
    public StoreConfig storeConfig { get; private set; }
System/Store/Logic/BuySuccessModel.cs
@@ -5,7 +5,9 @@
namespace Snxxz.UI
{
     public class BuySuccessModel : Singleton<BuySuccessModel>
     [XLua.LuaCallCSharp]
public class BuySuccessModel : Singleton<BuySuccessModel>
    {
        public int ItemID { get; private set; }
        public int itemCnt { get; private set; }
System/Store/StoreModel.cs
@@ -28,7 +28,8 @@
    }
}
public class StoreModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
[XLua.LuaCallCSharp]
    public class StoreModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
{
    public int[] normalBuyCoinsTypes { get; private set; }
    public string UNIONSTORESAVE_KEY { get; private set; }
System/Strengthening/EquipReinforceModel.cs
@@ -4,7 +4,9 @@
using System.Linq;
using System.Text;
[XLua.LuaCallCSharp]
public class EquipReinforceModel : Singleton<EquipReinforceModel>
{
    public EquipReinforceFuncTitle funcTitle = EquipReinforceFuncTitle.Strength;
  
System/Strengthening/EquipSuit/PlayerSuitModel.cs
@@ -14,7 +14,8 @@
        HighSuit = 2, //强化套装
    }
    public class PlayerSuitModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class PlayerSuitModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
    {
        public List<int> suitPartlist { get; private set; }
        private Dictionary<int, Dictionary<int, int>> suitMaxLvDict = new Dictionary<int, Dictionary<int, int>>();
System/Strengthening/EquipWashModel.cs
@@ -38,7 +38,8 @@
    public WashProValue[] proValuelist = null;        // 属性列表,索引0的代表属性1,依次递增
}
public class EquipWashModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
[XLua.LuaCallCSharp]
    public class EquipWashModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
{
    public delegate void OnRefreshWashModel();
System/Strengthening/GemModel.cs
@@ -9,7 +9,8 @@
namespace Snxxz.UI
{
    public class GemModel : Model, IBeforePlayerDataInitialize
    [XLua.LuaCallCSharp]
    public class GemModel : Model, IBeforePlayerDataInitialize
    {
        PlayerPackModel _playerPack;
        PlayerPackModel playerPack
System/Strengthening/GodBeastModel.cs
@@ -11,7 +11,8 @@
using UnityEngine;
// 关于神兽强化
public class GodBeastModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
[XLua.LuaCallCSharp]
    public class GodBeastModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
{
    public Dictionary<int, int> Absorption_Dic = new Dictionary<int, int>();//获取选择的物品
    public event Action AbsorbEvent;
System/Strengthening/HowToPlayModel.cs
@@ -1,6 +1,7 @@
using Snxxz.UI;
public class HowToPlayModel : Model
[XLua.LuaCallCSharp]
    public class HowToPlayModel : Model
{
    public override void Init()
    {
System/Strengthening/WashProModel.cs
@@ -3,7 +3,8 @@
using System.Collections.Generic;
using TableConfig;
public class WashProModel : Model
[XLua.LuaCallCSharp]
    public class WashProModel : Model
{
    EquipWashModel _equipWashModel;
    public EquipWashModel equipWashModel
System/Strengthening/WingsRedDot.cs
@@ -13,7 +13,8 @@
namespace Snxxz.UI
{
    public class WingsRedDot : Model, IPlayerLoginOk, IBeforePlayerDataInitialize
   [XLua.LuaCallCSharp]
     public class WingsRedDot : Model, IPlayerLoginOk, IBeforePlayerDataInitialize
    {
        private const int Redpoint_key = 10603;
        public Redpoint redPointStre = new Redpoint(MainRedDot.RedPoint_key1, Redpoint_key);
System/SystemSetting/ActivitiesPushMgr.cs
@@ -7,7 +7,8 @@
namespace Snxxz.UI
{
    public class ActivitiesPushMgr : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
   [XLua.LuaCallCSharp]
     public class ActivitiesPushMgr : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    {
        public const int WholePeopleRankStart = 2091000; //全民冲榜开始
        public const int WholePeopleRankEnd = 20910000; //全民冲榜截止
System/SystemSetting/ChatSetting.cs
@@ -33,7 +33,9 @@
    //AllianceVoice4G, //同盟语音4G
}
 public class ChatSetting : Singleton<ChatSetting>
 [XLua.LuaCallCSharp]
public class ChatSetting : Singleton<ChatSetting>
{
    const string ChatBoolSet_Key = "ChatBoolSet";
System/SystemSetting/HangUpSetModel.cs
@@ -24,7 +24,9 @@
    isAutoReborn,//是否自动买活
}
[XLua.LuaCallCSharp]
public class HangUpSetModel : Singleton<HangUpSetModel>
{
    const string HpSet_Key = "HpSet";
    const string HangUpBoolSet_Key = "HangUpBoolSet";
System/SystemSetting/PrivateRemind.cs
@@ -14,7 +14,9 @@
}
[XLua.LuaCallCSharp]
public class PrivateRemind : Singleton<HangUpSetModel>
{
    //const string 
    const string BoolSet_Key = "BoolSet";
System/SystemSetting/SetPrivateModel.cs
@@ -7,7 +7,8 @@
namespace Snxxz.UI
{
    public class SetPrivateModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class SetPrivateModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
    {
        DailyQuestModel dailyModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
        VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } }
System/SystemSetting/SettingEffectMgr.cs
@@ -7,7 +7,9 @@
using TableConfig;
using System.Collections;
[XLua.LuaCallCSharp]
public class SettingEffectMgr : SingletonMonobehaviour<SettingEffectMgr>
{
    private bool _isAutoHangUp = false;
    private ItemConfig _tagItemModel;
System/SystemSetting/SettingMgr.cs
@@ -4,7 +4,9 @@
using System.Text;
using UnityEngine;
[XLua.LuaCallCSharp]
public class SettingMgr : Singleton<SettingMgr>
{
    public string accountKey = "";
System/SystemSetting/SystemSetting.cs
@@ -6,7 +6,9 @@
using Snxxz.UI;
using System.Collections;
[XLua.LuaCallCSharp]
public class SystemSetting : Singleton<SystemSetting>
{
    const string QUALITY_LEVEL_KEY = "GameQualityLevel";
    const string SOUND_VOLUME_KEY = "SoundRatioKey";  //音乐
System/TaiChi/TaiChiModel.cs
@@ -5,7 +5,8 @@
using UnityEngine;
using System.Collections.Generic;
public class TaiChiModel : Model,IBeforePlayerDataInitialize
[XLua.LuaCallCSharp]
    public class TaiChiModel : Model,IBeforePlayerDataInitialize
{
    //日常活动
    DailyQuestModel _dailyQuestModel;
System/Team/GroupDungeonChallengeProcessor.cs
@@ -5,7 +5,9 @@
namespace Snxxz.UI
{
    public class GroupDungeonChallengeProcessor : SingletonMonobehaviour<GroupDungeonChallengeProcessor>
    [XLua.LuaCallCSharp]
public class GroupDungeonChallengeProcessor : SingletonMonobehaviour<GroupDungeonChallengeProcessor>
    {
        int mapId = 0;
        int lineId = 0;
System/Team/TeamModel.cs
@@ -7,7 +7,8 @@
namespace Snxxz.UI
{
    public class TeamModel : Model, IAfterPlayerDataInitialize, ISwitchAccount, IPlayerLoginOk, IMapInitOk
    [XLua.LuaCallCSharp]
    public class TeamModel : Model, IAfterPlayerDataInitialize, ISwitchAccount, IPlayerLoginOk, IMapInitOk
    {
        public const int NONE_MISSION = 0;
        public const int CURRENTMAP_MISSION = 1;
System/Test/TestWin.cs
@@ -6,7 +6,10 @@
using System.Collections;
using System;
namespace Snxxz.UI {
    [XLua.Hotfix]
    public class TestWin:Window {
        TestModel m_Model;
System/Tip/PwdKeyboard.cs
@@ -2,6 +2,8 @@
using System.Collections.Generic;
using UnityEngine;
[XLua.LuaCallCSharp]
public class PwdKeyboard : Singleton<PwdKeyboard> {
    public string pwd = string.Empty;
}
System/Treasure/TreasureModel.cs
@@ -12,7 +12,8 @@
namespace Snxxz.UI
{
    public class TreasureModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class TreasureModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk
    {
        public const int TREASURE_DATAMAPID = 41110;
        public const int TREASURE_MAPID = 41110;
System/Treasure/TreasureSoulModel.cs
@@ -6,7 +6,8 @@
namespace Snxxz.UI
{
    public class TreasureSoulModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class TreasureSoulModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        public const int TREASURE_SOUL_ID = 115;
        Redpoint treasureSoulRedpoint = new Redpoint(1, TREASURE_SOUL_ID);
System/TreasureFindHost/TreasureFindHostModel.cs
@@ -6,7 +6,8 @@
namespace Snxxz.UI
{
    public class TreasureFindHostModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class TreasureFindHostModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    {
        private Dictionary<int, List<FindTreasureInfo>> findTreasureDict = new Dictionary<int, List<FindTreasureInfo>>();
        PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } }
System/Vip/FairyJadeInvestmentModel.cs
@@ -16,7 +16,8 @@
    public int NeedLv;//需要等级
    public MonthlyInvestmentModel.MonthlyInvestmentItem FairyJadeInvestmentItem;//奖励
}
public class FairyJadeInvestmentModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
[XLua.LuaCallCSharp]
    public class FairyJadeInvestmentModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
{
    public Dictionary<int, FairyJadeInvestmentClass> FairyJadeInvestmentDic = new Dictionary<int, FairyJadeInvestmentClass>();//等级
    public Dictionary<int, int> InfoSeriors = new Dictionary<int, int>();//奖励领取信息//key为索引,Value(0,未领,其他值未领的钱数)
System/Vip/FirstTimeRechargeModel.cs
@@ -12,7 +12,8 @@
namespace Snxxz.UI
{
    public class FirstTimeRechargeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class FirstTimeRechargeModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        public bool IsOk = false;
System/Vip/LimitedTimePackageModel.cs
@@ -10,7 +10,8 @@
using TableConfig;
using UnityEngine;
public class LimitedTimePackageItemClassModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
[XLua.LuaCallCSharp]
    public class LimitedTimePackageItemClassModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
{
    public Dictionary<int, int> DicBuyPackage = new Dictionary<int, int>();
    public event Action UpdateLimitedTimePackageItem;
System/Vip/NeedForWhiteModel.cs
@@ -25,7 +25,8 @@
    public DateTime dateTime;
}
public class NeedForWhiteModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
[XLua.LuaCallCSharp]
    public class NeedForWhiteModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
{
    public Dictionary<int, NeedForWhiteClass> NeedForWhiteDic = new Dictionary<int, NeedForWhiteClass>();
    public Dictionary<int, BuySateClass> BuySate = new Dictionary<int, BuySateClass>();//领奖信息0-未购买,1-已领取,其他time值-购买时间
System/Vip/OSTimeLimitGiftModel.cs
@@ -5,7 +5,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class OSTimeLimitGiftModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IOpenServerActivity
    [XLua.LuaCallCSharp]
    public class OSTimeLimitGiftModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IOpenServerActivity
    {
        Dictionary<int, List<StoreConfig>> m_OSTimeLimitGifts = new Dictionary<int, List<StoreConfig>>();
System/Vip/VipInvest/VipInvestModel.cs
@@ -5,7 +5,8 @@
namespace Snxxz.UI
{
    public class VipInvestModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    [XLua.LuaCallCSharp]
    public class VipInvestModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    {
        private Dictionary<string, Dictionary<string, List<InvestReward>>> vipInvestDict = new Dictionary<string, Dictionary<string, List<InvestReward>>>();
        private Dictionary<int, List<InvestConfig>> investCycleDict = new Dictionary<int, List<InvestConfig>>(); //每周期数据
System/Vip/VipInvest/WheelOfFortuneModel.cs
@@ -12,6 +12,7 @@
namespace Snxxz.UI
{
    [XLua.LuaCallCSharp]
    public class WheelOfFortuneModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    {
        public class AngleClass
@@ -26,64 +27,64 @@
        public float AngleSave = 0f;//角度记录
        public Dictionary<int, AngleClass> AngleDic = new Dictionary<int, AngleClass>();
        private double[][] AngleList;
        public event Action<float> WheelOfFortuneUpdate;
        public event Action<int> onStateUpate;
        public event Action<float> WheelOfFortuneUpdate;
        public event Action<int> onStateUpate;
        private string StrKey = string.Empty;
        private bool IsOk = false;
        private const int Redpoint_key1 = 20916;//幸运转盘红点
        public Redpoint redPointStre1 = new Redpoint(209, Redpoint_key1);
        VipModel m_Vipmodel;
        VipModel vipmodel { get { return m_Vipmodel ?? (m_Vipmodel = ModelCenter.Instance.GetModel<VipModel>()); } }
        public bool IsOpen
        {
            get
            {
                return FuncOpen.Instance.IsFuncOpen(144);
            }
        }
        public bool IsAdvance
        {
            get
            {
                return false;
            }
        }
        public bool priorityOpen
        {
            get
            {
                if (redPointStre1.state == RedPointState.Simple)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
        VipModel vipmodel { get { return m_Vipmodel ?? (m_Vipmodel = ModelCenter.Instance.GetModel<VipModel>()); } }
        public bool IsOpen
        {
            get
            {
                return FuncOpen.Instance.IsFuncOpen(144);
            }
        }
        public bool IsAdvance
        {
            get
            {
                return false;
            }
        }
        public bool priorityOpen
        {
            get
            {
                if (redPointStre1.state == RedPointState.Simple)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
        public override void Init()
        {
        {
            OpenServerActivityCenter.Instance.Register(16, this);
            var BindJadewheel = Config.Instance.Get<FuncConfigConfig>("BindJadeWheelCfg");
            NeedJade = int.Parse(BindJadewheel.Numerical1);
            AngleList = JsonMapper.ToObject<double[][]>(BindJadewheel.Numerical5);
            if (AngleDic.Count <= 0)
            {
                for (int i = 0; i < AngleList.Length; i++)
                {
                    int Type = i + 1;
                    AngleClass angleClass = new AngleClass();
                    angleClass.AngleStart = (float)AngleList[i][0];
                    angleClass.AngleEnd = (float)AngleList[i][1];
                    AngleDic.Add(Type, angleClass);
                }
            }
            if (AngleDic.Count <= 0)
            {
                for (int i = 0; i < AngleList.Length; i++)
                {
                    int Type = i + 1;
                    AngleClass angleClass = new AngleClass();
                    angleClass.AngleStart = (float)AngleList[i][0];
                    angleClass.AngleEnd = (float)AngleList[i][1];
                    AngleDic.Add(Type, angleClass);
                }
            }
        }
        public override void UnInit()
@@ -93,8 +94,8 @@
        public void OnBeforePlayerDataInitialize()
        {
            IsOk = false;
            IsOk = false;
        }
        public void OnPlayerLoginOk()
@@ -107,17 +108,17 @@
            StrKey = "IsOpenFiaryJadeRedPoint" + PlayerDatas.Instance.baseData.PlayerID;
            AngleSave = LocalSave.GetFloat(StrKey);
            RedPoint();
        }
        }
        private void OnFuncStateChangeEvent(int obj)
        {
            if (obj == 144)
            {
                if (onStateUpate != null)
                {
                    onStateUpate(16);
                if (onStateUpate != null)
                {
                    onStateUpate(16);
                }
                RedPoint();
            }
@@ -131,22 +132,22 @@
            {
                if (AngleDic.ContainsKey(Lattice))
                {
                    float flo = UnityEngine.Random.Range(AngleDic[Lattice].AngleStart + 1f, AngleDic[Lattice].AngleEnd - 1f);
                    float flo = UnityEngine.Random.Range(AngleDic[Lattice].AngleStart + 1f, AngleDic[Lattice].AngleEnd - 1f);
                    flo = (float)Math.Round((double)flo, 2);
                    if (flo > 360f)
                    {
                        flo = flo - 360f;
                    }
                    if (Math.Abs(flo- AngleSave)<=0.2)
                    {
                        if ((flo + 1f )> (AngleDic[Lattice].AngleStart + 1f) && (flo + 1f) < (AngleDic[Lattice].AngleEnd - 1f))
                        {
                            flo += 1;
                        }
                        else if ((flo - 1f) > (AngleDic[Lattice].AngleStart + 1f) && (flo - 1f) < (AngleDic[Lattice].AngleEnd - 1f))
                        {
                            flo -= 1;
                        }
                    if (Math.Abs(flo- AngleSave)<=0.2)
                    {
                        if ((flo + 1f )> (AngleDic[Lattice].AngleStart + 1f) && (flo + 1f) < (AngleDic[Lattice].AngleEnd - 1f))
                        {
                            flo += 1;
                        }
                        else if ((flo - 1f) > (AngleDic[Lattice].AngleStart + 1f) && (flo - 1f) < (AngleDic[Lattice].AngleEnd - 1f))
                        {
                            flo -= 1;
                        }
                    }
                    LocalSave.SetFloat(StrKey, flo);
                    AngleSave = LocalSave.GetFloat(StrKey);
@@ -156,7 +157,7 @@
                    WheelOfFortuneUpdate(AngleSave);
                }
                RedPoint();
            }
            }
        }
        public void StartTheDraw()//开始抽奖
        {
System/Vip/VipModel.cs
@@ -8,7 +8,8 @@
namespace Snxxz.UI
{
    public class VipModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class VipModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk
    {
        private Dictionary<int, VipGiftData> vipGiftDics = new Dictionary<int, VipGiftData>();
        private Dictionary<int, int> vipExpDic = null;
System/Voice/SpeechTranslate.cs
@@ -3,7 +3,9 @@
using UnityEngine;
using System.Collections.Generic;
[XLua.LuaCallCSharp]
public class SpeechTranslate : Singleton<SpeechTranslate>
{
    public const int AUDIO_TIMELIMIT = 8;//秒
System/Welfare/AwardExchangeModel.cs
@@ -5,7 +5,8 @@
namespace Snxxz.UI
{
    public class AwardExchangeModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class AwardExchangeModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    {
        public MailItemModel[] getItems { get; private set; }
System/Welfare/ConsumeRebateModel.cs
@@ -4,7 +4,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class ConsumeRebateModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IOpenServerActivity
    [XLua.LuaCallCSharp]
    public class ConsumeRebateModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IOpenServerActivity
    {
        public event Action consumeRebateUpdateEvent;
        public event Action<int> onStateUpate;
System/Welfare/LevelGiftModel.cs
@@ -6,7 +6,8 @@
namespace Snxxz.UI
{
    public class LevelGiftModel : Model,IBeforePlayerDataInitialize,IPlayerLoginOk
    [XLua.LuaCallCSharp]
    public class LevelGiftModel : Model,IBeforePlayerDataInitialize,IPlayerLoginOk
    {
        public override void Init()
        {
System/Welfare/MultipleExpModel.cs
@@ -4,7 +4,8 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class MultipleExpModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IOpenServerActivity
    [XLua.LuaCallCSharp]
    public class MultipleExpModel : Model, IPlayerLoginOk, IBeforePlayerDataInitialize, IOpenServerActivity
    {
        private bool showTip = false;
        private bool todayRemind = false;
System/Welfare/MultipleRealmPointModel.cs
@@ -3,7 +3,8 @@
namespace Snxxz.UI
{
    public class MultipleRealmPointModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    [XLua.LuaCallCSharp]
    public class MultipleRealmPointModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk, IOpenServerActivity
    {
        public Redpoint multipleRed = new Redpoint(MainRedDot.REDPOINT_OPENSERVER, 20908);
        public string LocalRecord_Key;
System/Welfare/OperationTimeHepler.cs
@@ -5,6 +5,7 @@
using UnityEngine;
namespace Snxxz.UI
{
    [XLua.LuaCallCSharp]
    public class OperationTimeHepler : Singleton<OperationTimeHepler>
    {
        private Dictionary<Operation, OperationBase> operationDict = new Dictionary<Operation, OperationBase>();
@@ -389,7 +390,7 @@
                operationBase.startDate = ParseOperationDate(package.StartDate);
                operationBase.endDate = ParseOperationDate(package.EndtDate);
                operationBase.resetType = package.ResetType;
                ModelCenter.Instance.GetModel<BossRebornModel>().UpdateTaskBaseInfos(package.TaskInfo);
                ModelCenter.Instance.GetModel<BossRebornModel>().UpdateTaskBaseInfos(package.TaskInfo);
            }
        }
System/Welfare/PrayerModel.cs
@@ -9,7 +9,8 @@
namespace Snxxz.UI
{
    public class PrayerModel : Model
    [XLua.LuaCallCSharp]
    public class PrayerModel : Model
    {
        public event Action OnCoinPrayerEvent;
        public event Action OnExpPrayerEvent;
System/Welfare/SignInModel.cs
@@ -5,7 +5,8 @@
using TableConfig;
namespace Snxxz.UI
{
    public class SignInModel : Model, IBeforePlayerDataInitialize
    [XLua.LuaCallCSharp]
    public class SignInModel : Model, IBeforePlayerDataInitialize
    {
        private void OnFuncStateChangeEvent(int func)
        {
System/Welfare/WelfareCenter.cs
@@ -3,7 +3,9 @@
using UnityEngine;
namespace Snxxz.UI
{
    public class WelfareCenter : Singleton<WelfareCenter>
    [XLua.LuaCallCSharp]
public class WelfareCenter : Singleton<WelfareCenter>
    {
        SignInModel signInModel { get { return ModelCenter.Instance.GetModel<SignInModel>(); } }
System/WindowBase/ModelCenter.cs
@@ -52,11 +52,13 @@
        void OnSwitchAccount();
    }
    [XLua.LuaCallCSharp]
    public class ModelCenter : Singleton<ModelCenter>
    {
        bool inited = false;
        Dictionary<int, Model> models = new Dictionary<int, Model>();
        Dictionary<string, Model> nameToModels = new Dictionary<string, Model>();
        public ModelCenter()
        {
@@ -223,15 +225,27 @@
            return model;
        }
        public Model GetModel(string name)
        {
            if (nameToModels.ContainsKey(name))
            {
                return nameToModels[name];
            }
            return null;
        }
        T RegisterModel<T>() where T : Model, new()
        {
            T model = null;
            var token = typeof(T).MetadataToken;
            var name = typeof(T).Name;
            if (!models.ContainsKey(token))
            {
                model = new T();
                models[token] = model;
                nameToModels[name] = model;
                model.Init();
            }
System/WindowBase/WindowCenter.cs
@@ -4,7 +4,9 @@
namespace Snxxz.UI
{
    public class WindowCenter : Singleton<WindowCenter>
    [XLua.LuaCallCSharp]
public class WindowCenter : Singleton<WindowCenter>
    {
        public event Action<Window> windowBeforeOpenEvent;
        public event Action<Window> windowAfterOpenEvent;
@@ -61,8 +63,13 @@
        public void OpenFromLocal<T>() where T : Window
        {
            var windowName = typeof(T).Name;
            T win = null;
            if (TryGetWindow(out win))
            OpenFromLocal(windowName);
        }
        public void OpenFromLocal(string _name)
        {
            Window win = null;
            if (TryGetWindow(_name, out win))
            {
                if (win.windowState == Window.WindowState.Closed)
                {
@@ -72,12 +79,12 @@
                }
                else
                {
                    DebugEx.LogFormat("{0} 窗口已经打开!", typeof(T));
                    DebugEx.LogFormat("{0} 窗口已经打开!", _name);
                }
            }
            else
            {
                win = GetWindowInstance<T>(true);
                win = GetWindowInstance(_name, true);
                if (win != null)
                {
                    win.functionOrder = 0;
@@ -89,24 +96,37 @@
        public T Open<T>(bool _forceSync = false, int _functionalOrder = 0) where T : Window
        {
            var name = typeof(T).Name;
            var window = Open(name, _forceSync, _functionalOrder);
            if (window != null)
            {
                return window as T;
            }
            else
            {
                return null;
            }
        }
        public Window Open(string _name, bool _forceSync = false, int _functionalOrder = 0)
        {
            if (VersionConfig.Get().isBanShu)
            {
                if (typeof(T) == typeof(VipRechargeWin))
                if (_name == "VipRechargeWin")
                {
                    SysNotifyMgr.Instance.ShowTip("FuncNoOpen_VIP");
                    return null;
                }
            }
            var windowName = typeof(T).Name;
            string childWindow = string.Empty;
            var childWindow = string.Empty;
            if (_forceSync || AssetSource.uiFromEditor)
            {
                return OpenSingleWindow<T>(_forceSync, _functionalOrder);
                return OpenSingleWindow(_name, _forceSync, _functionalOrder);
            }
            else
            {
                if (WindowConfig.Get().FindChildWindow(windowName, _functionalOrder, out childWindow))
                if (WindowConfig.Get().FindChildWindow(_name, _functionalOrder, out childWindow))
                {
                    WindowTrim(childWindow);
                    if (!windows.ContainsKey(childWindow))
@@ -115,7 +135,7 @@
                        {
                            if (_ok)
                            {
                                OpenSingleWindow<T>(_forceSync, _functionalOrder);
                                OpenSingleWindow(_name, _forceSync, _functionalOrder);
                            }
                        });
@@ -123,20 +143,34 @@
                    }
                    else
                    {
                        return OpenSingleWindow<T>(_forceSync, _functionalOrder);
                        return OpenSingleWindow(_name, _forceSync, _functionalOrder);
                    }
                }
                else
                {
                    return OpenSingleWindow<T>(_forceSync, _functionalOrder);
                    return OpenSingleWindow(_name, _forceSync, _functionalOrder);
                }
            }
        }
        public T OpenWithoutAnimation<T>() where T : Window
        {
            T win = null;
            if (TryGetWindow(out win))
            var name = typeof(T).Name;
            var window = OpenWithoutAnimation(name);
            if (window != null)
            {
                return window as T;
            }
            else
            {
                return null;
            }
        }
        public Window OpenWithoutAnimation(string _name)
        {
            Window win = null;
            if (TryGetWindow(_name, out win))
            {
                if (win.windowState == Window.WindowState.Closed)
                {
@@ -146,13 +180,13 @@
                }
                else
                {
                    DebugEx.LogFormat("{0} 窗口已经打开!", typeof(T));
                    DebugEx.LogFormat("{0} 窗口已经打开!", _name);
                }
                return (T)win;
                return win;
            }
            win = GetWindowInstance<T>(false);
            win = GetWindowInstance(_name, false);
            if (win != null)
            {
                win.functionOrder = 0;
@@ -160,7 +194,7 @@
                win.Open();
            }
            return (T)win;
            return win;
        }
        public T Get<T>() where T : Window
@@ -211,6 +245,31 @@
            }
            return win;
        }
        public Window Close(string _name)
        {
            if (windows.ContainsKey(_name))
            {
                var window = windows[_name];
                if (window.windowState != Window.WindowState.Closed)
                {
                    window.CloseImmediately();
                }
                else
                {
                    DebugEx.LogFormat("{0} 窗口已经关闭!", _name);
                }
                return window;
            }
            else
            {
                asyncLoad.StopTask(_name);
                DebugEx.LogFormat("{0} 窗口无法获得!", _name);
                return null;
            }
        }
        public T CloseImmediately<T>() where T : Window
@@ -301,7 +360,6 @@
            }
            asyncLoad.StopAllTasks();
        }
        public void CloseOthers(List<string> _windowNames, CloseAllIgnoreType _ignoreType)
@@ -372,20 +430,23 @@
        public void DestroyWin<T>() where T : Window
        {
            T win = null;
            if (TryGetWindow<T>(out win))
            DestroyWin(typeof(T).Name);
        }
        public void DestroyWin(string _name)
        {
            if (windows.ContainsKey(_name))
            {
                var win = windows[_name];
                win.CloseImmediately();
                GameObject.Destroy(win.gameObject);
                MonoBehaviour.Destroy(win);
                var name = typeof(T).Name;
                windows[name] = null;
                windows.Remove(typeof(T).Name);
                windows[_name] = null;
                windows.Remove(_name);
            }
            else
            {
                DebugEx.LogFormat("{0} 窗口无法获得!", typeof(T));
                DebugEx.LogFormat("{0} 窗口无法获得!", _name);
            }
        }
@@ -427,11 +488,11 @@
            }
        }
        public bool IsOpen(string _windowName)
        public bool IsOpen(string _name)
        {
            if (windows.ContainsKey(_windowName) && windows[_windowName] != null)
            if (windows.ContainsKey(_name) && windows[_name] != null)
            {
                var window = windows[_windowName];
                var window = windows[_name];
                return window.windowState == Window.WindowState.Opened || window.windowState == Window.WindowState.Opening;
            }
            else
@@ -523,8 +584,22 @@
        private T OpenSingleWindow<T>(bool _forceSync, int _functionalOrder) where T : Window
        {
            T win = null;
            if (TryGetWindow(out win))
            var name = typeof(T).Name;
            var window = OpenSingleWindow(name, _forceSync, _functionalOrder);
            if (window != null)
            {
                return window as T;
            }
            else
            {
                return null;
            }
        }
        private Window OpenSingleWindow(string _name, bool _forceSync, int _functionalOrder)
        {
            Window win = null;
            if (TryGetWindow(_name, out win))
            {
                if (win.windowState == Window.WindowState.Closed)
                {
@@ -534,15 +609,15 @@
                }
                else
                {
                    DebugEx.LogFormat("{0} 窗口已经打开!", typeof(T));
                    DebugEx.LogFormat("{0} 窗口已经打开!", _name);
                }
                return (T)win;
                return win;
            }
            if (_forceSync || AssetSource.uiFromEditor)
            {
                win = GetWindowInstance<T>(false);
                win = GetWindowInstance(_name, false);
                if (win != null)
                {
                    win.functionOrder = _functionalOrder;
@@ -550,11 +625,11 @@
                    win.Open();
                }
                return (T)win;
                return win;
            }
            else
            {
                GetWindowInstanceAsync<T>(
                GetWindowInstanceAsync(_name,
                    (bool ok, UnityEngine.Object _object) =>
                    {
                        if (TryGetWindow(out win))
@@ -567,7 +642,7 @@
                            }
                            else
                            {
                                DebugEx.LogFormat("{0} 窗口已经打开!", typeof(T));
                                DebugEx.Log(string.Format("{0} 窗口已经打开!", _name));
                            }
                        }
                    }
@@ -579,12 +654,26 @@
        private bool TryGetWindow<T>(out T _win) where T : Window
        {
            var windowName = typeof(T).Name;
            WindowTrim(windowName);
            if (windows.ContainsKey(windowName))
            var name = typeof(T).Name;
            Window window = null;
            if (TryGetWindow(name, out window))
            {
                _win = (T)windows[windowName];
                _win = window as T;
                return true;
            }
            else
            {
                _win = null;
                return false;
            }
        }
        private bool TryGetWindow(string _name, out Window _win)
        {
            WindowTrim(_name);
            if (windows.ContainsKey(_name))
            {
                _win = windows[_name];
                return true;
            }
            else
@@ -608,16 +697,29 @@
        private T GetWindowInstance<T>(bool _fromLocal) where T : Window
        {
            var prefabName = typeof(T).Name;
            if (windows.ContainsKey(prefabName))
            var window = GetWindowInstance(prefabName, _fromLocal);
            if (window != null)
            {
                return windows[prefabName] as T;
                return window as T;
            }
            else
            {
                var prefab = _fromLocal ? BuiltInLoader.LoadPrefab(prefabName) : UILoader.LoadWindow(prefabName);
                return null;
            }
        }
        private Window GetWindowInstance(string _name, bool _fromLocal)
        {
            if (windows.ContainsKey(_name))
            {
                return windows[_name];
            }
            else
            {
                var prefab = _fromLocal ? BuiltInLoader.LoadPrefab(_name) : UILoader.LoadWindow(_name);
                prefab.SetActive(false);
                var instance = GameObject.Instantiate(prefab);
                instance.name = _name;
                if (AssetSource.uiFromEditor)
                {
                    prefab.SetActive(true);
@@ -625,28 +727,25 @@
                if (_fromLocal)
                {
                    BuiltInLoader.UnLoadPrefab(prefabName);
                    BuiltInLoader.UnLoadPrefab(_name);
                }
                else
                {
                    UILoader.UnLoadWindowAsset(prefabName);
                    UILoader.UnLoadWindowAsset(_name);
                }
                instance.name = prefabName;
                var window = instance.GetComponent<T>();
                var window = instance.GetComponent<Window>();
                if (window != null)
                {
                    var windowName = typeof(T).Name;
                    windows[windowName] = window;
                    windows[_name] = window;
                }
                else
                {
                    DebugEx.LogFormat("无法获得  {0}  的资源!", prefabName);
                    DebugEx.LogFormat("无法获得  {0}  的资源!", _name);
                }
                return window;
            }
        }
        private void GetWindowInstanceAsync<T>(Action<bool, UnityEngine.Object> _callBack) where T : Window
@@ -654,13 +753,13 @@
            GetWindowInstanceAsync(typeof(T).Name, _callBack);
        }
        private void GetWindowInstanceAsync(string _windowName, Action<bool, UnityEngine.Object> _callBack)
        private void GetWindowInstanceAsync(string _name, Action<bool, UnityEngine.Object> _callBack)
        {
            Action<bool, UnityEngine.Object> addAction = (bool _ok, UnityEngine.Object _object) =>
            {
                var prefabName = _windowName;
                var prefabName = _name;
                Window window = null;
                if (!windows.ContainsKey(_windowName))
                if (!windows.ContainsKey(_name))
                {
                    var prefab = _object as GameObject;
                    prefab.SetActive(false);
@@ -672,15 +771,15 @@
                    }
                    UILoader.UnLoadWindowAsset(prefabName);
                    instance.name = _windowName;
                    window = (Window)instance.GetComponent(_windowName);
                    instance.name = _name;
                    window = (Window)instance.GetComponent(_name);
                    if (window != null)
                    {
                        windows[_windowName] = (Window)window;
                        windows[_name] = (Window)window;
                    }
                    else
                    {
                        Debug.LogFormat("无法获得  {0}  的资源!", _windowName);
                        Debug.LogFormat("无法获得  {0}  的资源!", _name);
                    }
                }
@@ -690,7 +789,7 @@
                }
            };
            asyncLoad.PushTask(new WindowAsyncLoad.Task(_windowName, addAction));
            asyncLoad.PushTask(new WindowAsyncLoad.Task(_name, addAction));
        }
        public enum WindowStage
System/WindowJump/WindowJumpMgr.cs
@@ -3,6 +3,7 @@
using TableConfig;
using Snxxz.UI;
[XLua.LuaCallCSharp]
public class WindowJumpMgr : Singleton<WindowJumpMgr>
{
    private FuncConfigConfig funcOpenBagItem = null;
System/WorldMap/MapModel.cs
@@ -11,7 +11,8 @@
namespace Snxxz.UI
{
    public class MapModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk, IMapInitOk
    [XLua.LuaCallCSharp]
    public class MapModel : Model, IBeforePlayerDataInitialize, IAfterPlayerDataInitialize, IPlayerLoginOk, IMapInitOk
    {
        Dictionary<int, WorldMapArea> worldMapAreas = new Dictionary<int, WorldMapArea>();
        Dictionary<int, bool> worldMapUnLockStates = new Dictionary<int, bool>();
System/WorldMap/WorldMapSkip.cs
@@ -4,7 +4,9 @@
using UnityEngine;
using TableConfig;
[XLua.LuaCallCSharp]
public class WorldMapSkip : SingletonMonobehaviour<WorldMapSkip>
{
    Action onSceneLoadCompleted;
UI/Common/FunctionButton.cs
@@ -13,6 +13,7 @@
namespace Snxxz.UI
{
    [XLua.LuaCallCSharp]
    public class FunctionButton : Button
    {
        [SerializeField] int m_Order = 0;
UI/Common/ItemBehaviour.cs
@@ -11,7 +11,7 @@
namespace Snxxz.UI
{
    [XLua.LuaCallCSharp]
    public class ItemBehaviour : MonoBehaviour
    {
        ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
UI/Common/TimeDownMgr.cs
@@ -3,7 +3,9 @@
using System.Collections.Generic;
using UnityEngine;
[XLua.LuaCallCSharp]
public class TimeDownMgr : SingletonMonobehaviour<TimeDownMgr> {
    public enum CoolTimeType
    {
UI/Common/UI3DModelExhibition.cs
@@ -11,7 +11,7 @@
namespace Snxxz.UI
{
    [XLua.LuaCallCSharp]
    public class UI3DModelExhibition : MonoBehaviour
    {
        [SerializeField] Transform m_PlayerShowPoint;
@@ -105,6 +105,11 @@
            DontDestroyOnLoad(gameObject);
        }
        public string GetName()
        {
            return this.name;
        }
        public void ShowLoginPlayer(RawImage _rawImage, int _job)
        {
            var clothesItemId = 0;
UI/Common/WindowConfig.cs
@@ -17,7 +17,7 @@
    {
        if (config == null)
        {
            config = Resources.Load<WindowConfig>("ScriptableObject/Config/WindowConfig");
            config = BuiltInLoader.LoadScriptableObject<WindowConfig>("WindowConfig");
            for (int i = 0; i < config.windows.Length; i++)
            {
                var table = config.windows[i];
UI/Core/ButtonEx.cs
@@ -3,6 +3,7 @@
using UnityEngine.EventSystems;
using System;
[XLua.LuaCallCSharp]
public class ButtonEx : Button
{
UI/Effect/EffectMgr.cs
@@ -1,6 +1,8 @@
using Snxxz.UI;
using UnityEngine;
[XLua.LuaCallCSharp]
public class EffectMgr : SingletonMonobehaviour<EffectMgr>
{
    public UIEffectBehaviour GetUIEffect(int id, bool _destroy = false)
    {
UI/Effect/TimeMgr.cs
@@ -3,7 +3,9 @@
using System.Collections.Generic;
using UnityEngine;
[XLua.LuaCallCSharp]
public class TimeMgr : SingletonMonobehaviour<TimeMgr>
{
    private Dictionary<Component, TimeItem> timeItems = new Dictionary<Component, TimeItem>();
    private List<TimeItem> timeItemList = new List<TimeItem>();
UI/Effect/UIEffect.cs
@@ -10,6 +10,8 @@
#if UNITY_EDITOR
using UnityEditor;
#endif
[XLua.LuaCallCSharp]
public class UIEffect : MonoBehaviour
{
    public int renderQueue = 3000;
@@ -197,11 +199,12 @@
            return RetrospectWindow(parent.parent);
        }
    }
#if UNITY_EDITOR
    private const string EDITOR_EFFECT_PATH = "Assets/ResourcesOut/Effect/UI/";
    private const string EFFECT_EXTENAL = ".prefab";
    public void Preview(string _name)
    {
#if UNITY_EDITOR
        if (target != null)
        {
            DestroyImmediate(target);
@@ -220,8 +223,9 @@
        target.transform.localEulerAngles = Vector3.zero;
        target.transform.localScale = Vector3.one;
        Selection.activeGameObject = target.gameObject;
    }
#endif
    }
}
#if UNITY_EDITOR
[CustomEditor(typeof(UIEffect))]
Utility/ComponentExtersion.cs
@@ -1,13 +1,36 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Events;
using System;
using TableConfig;
[XLua.LuaCallCSharp]
public static class ComponentExtersion
{
    public static Component FindComponent(this Component _component, string _type, string _path)
    {
        try
        {
            if (_component == null)
            {
                return null;
            }
            var transform = _component.transform.Find(_path);
            if (transform == null)
            {
                return null;
            }
            return transform.GetComponent(_type);
        }
        catch (Exception ex)
        {
            DebugEx.Log(ex);
            return null;
        }
    }
    public static T AddMissingComponent<T>(this Component _compoent) where T : Component
    {
@@ -57,6 +80,7 @@
        return component;
    }
    [XLua.LuaCallCSharp]
    public static void AddListener(this Button _button, UnityAction _action)
    {
        if (_button == null)
@@ -66,6 +90,7 @@
        _button.onClick.AddListener(_action);
    }
    [XLua.LuaCallCSharp]
    public static void RemoveAllListeners(this Button _button)
    {
        if (_button == null)
@@ -75,6 +100,7 @@
        _button.onClick.RemoveAllListeners();
    }
    [XLua.LuaCallCSharp]
    public static void SetListener(this Button button, UnityAction action)
    {
        if (button == null)
@@ -95,6 +121,7 @@
        _toggle.onValueChanged.AddListener(_action);
    }
    [XLua.LuaCallCSharp]
    public static void SetListener(this Toggle toggle, UnityAction<bool> action)
    {
        if (toggle == null)
@@ -115,6 +142,7 @@
        _toggle.onValueChanged.RemoveAllListeners();
    }
    [XLua.LuaCallCSharp]
    public static void AddListener(this Slider _slider, UnityAction<float> _action)
    {
        if (_slider == null)
@@ -124,6 +152,7 @@
        _slider.onValueChanged.AddListener(_action);
    }
    [XLua.LuaCallCSharp]
    public static void SetListener(this Slider slider, UnityAction<float> action)
    {
        if (slider == null)
@@ -144,6 +173,7 @@
        _slider.onValueChanged.RemoveAllListeners();
    }
    [XLua.LuaCallCSharp]
    public static void AddListener(this InputField _inputField, UnityAction<string> _action)
    {
        if (_inputField == null)
@@ -164,6 +194,7 @@
        inputField.onValueChanged.AddListener(action);
    }
    [XLua.LuaCallCSharp]
    public static void RemoveAllListeners(this InputField _inputField)
    {
        if (_inputField == null)
@@ -173,12 +204,14 @@
        _inputField.onValueChanged.RemoveAllListeners();
    }
    [XLua.LuaCallCSharp]
    public static void SetEnable(this Button _btn, Text _btnTxt, bool _enable, EnableButtonConfig.EnableButtonType _type =
        EnableButtonConfig.EnableButtonType.Default)
    {
        EnableButtonConfig.SetEnable(_btn, _btnTxt, _enable, _type);
    }
    [XLua.LuaCallCSharp]
    public static void SetInteractable(this Button _btn, Text _btnText, bool _interactable)
    {
        if (_btn != null)
@@ -197,6 +230,7 @@
        }
    }
    [XLua.LuaCallCSharp]
    public static void SetSprite(this Image _image, string _id)
    {
        if (_image == null)
@@ -208,6 +242,7 @@
        _image.overrideSprite = sprite;
    }
    [XLua.LuaCallCSharp]
    public static void SetSprite(this TextImage _textImage, string _id)
    {
        if (_textImage == null)
Utility/DeviceUtility.cs
@@ -12,6 +12,7 @@
using UnityEngine.iOS;
#endif
[XLua.LuaCallCSharp]
public class DeviceUtility
{
Utility/FileExtersion.cs
@@ -5,6 +5,7 @@
using System.Security.Cryptography;
using System.Text;
[XLua.LuaCallCSharp]
public class FileExtersion
{
    public readonly static string lineSplit = "\r\n"; //行间隔体
@@ -177,4 +178,17 @@
            throw new Exception("GetMD5HashFromFile() fail,error:" + ex.Message);
        }
    }
    public static LuaConfigData ReadFileAllLines(string path)
    {
        var lines = File.ReadAllLines(path);
        return new LuaConfigData() { length = lines.Length, lines = lines };
    }
    public struct LuaConfigData
    {
        public int length;
        public string[] lines;
    }
}
Utility/GMCommand.cs
@@ -7,7 +7,9 @@
using Snxxz.UI;
using LitJson;
[XLua.LuaCallCSharp]
public class GMCommand : SingletonMonobehaviour<GMCommand>
{
    public void Begin()
Utility/GlobalTimeEvent.cs
@@ -3,7 +3,9 @@
using UnityEngine;
using System;
public class GlobalTimeEvent : SingletonMonobehaviour<GlobalTimeEvent>
[XLua.LuaCallCSharp]
public class GlobalTimeEvent : SingletonMonobehaviour<GlobalTimeEvent>
{
    public event Action secondEvent;
    public event Action minuteEvent;
Utility/LanguageVerify.cs
@@ -7,7 +7,9 @@
using System.Text.RegularExpressions;
using UnityEngine;
[XLua.LuaCallCSharp]
public class LanguageVerify : Singleton<LanguageVerify>
{
    const string Sercret = "c345a165b566d1c421afd8a748373d7f";
    bool requireVerify
Utility/LayerUtility.cs
@@ -2,6 +2,7 @@
using System.Collections;
using System;
[XLua.LuaCallCSharp]
public static class LayerUtility
{
    public static readonly int DefaultLayer = LayerMask.NameToLayer("Default");
Utility/MaterialUtility.cs
@@ -1,6 +1,7 @@
using UnityEngine;
using System;
[XLua.LuaCallCSharp]
public static class MaterialUtility
{
Utility/OperationLogCollect.cs
@@ -5,7 +5,9 @@
using Snxxz.UI;
using LitJson;
[XLua.LuaCallCSharp]
public class OperationLogCollect : Singleton<OperationLogCollect>
{
    const string url = "http://pub.game.2460web.com:11000/event_receiver?";
Utility/RunTimeExceptionUtility.cs
@@ -5,7 +5,9 @@
using System.IO;
using System.Threading;
public class RunTimeExceptionUtility : Singleton<RunTimeExceptionUtility>
[XLua.LuaCallCSharp]
public class RunTimeExceptionUtility : Singleton<RunTimeExceptionUtility>
{
    List<string> logWriteToFileTemp = new List<string>();
Utility/TimeUtility.cs
@@ -2,6 +2,7 @@
using System.Text;
using UnityEngine;
[XLua.LuaCallCSharp]
public static class TimeUtility
{
    private static DateTime s_ServerTime = DateTime.Now;
Utility/TransformExtension.cs
@@ -2,9 +2,11 @@
using System.Collections;
using System.Collections.Generic;
[XLua.LuaCallCSharp]
public static class TransformExtension
{
    [XLua.LuaCallCSharp]
    public static void SetParentEx(this Transform transform, Transform parent, Vector3 localPosition, Quaternion rotation, Vector3 scale)
    {
@@ -17,6 +19,7 @@
        }
    }
    [XLua.LuaCallCSharp]
    public static void SetParentEx(this Transform transform, Transform parent, Vector3 localPosition, Vector3 eulerAngles, Vector3 scale)
    {
        if (transform != null && parent != null)
@@ -27,7 +30,6 @@
            transform.localScale = scale;
        }
    }
    public static T[] GetComponentsInChildren<T>(this Transform transform, bool includeInactive, bool includeSelf) where T : Component
    {
@@ -54,6 +56,7 @@
    }
    [XLua.LuaCallCSharp]
    public static Transform GetChildTransformDeeply(this Transform transform, string childName, bool includeSelf = false)
    {
@@ -95,6 +98,7 @@
    /// </summary>
    /// <param name="_child"></param>
    /// <param name="_parent"></param>
    [XLua.LuaCallCSharp]
    public static void MatchWhith(this RectTransform _child, RectTransform _parent)
    {
@@ -111,7 +115,7 @@
        _child.localScale = Vector3.one;
    }
    [XLua.LuaCallCSharp]
    public static bool ContainWorldPosition(this RectTransform _rectTransform, Vector3 _worldPosition)
    {
        var worldCorners = new Vector3[4];
@@ -125,6 +129,7 @@
        return false;
    }
    [XLua.LuaCallCSharp]
    public static bool RectTransformContain(this RectTransform _rectTransform, RectTransform _target)
    {
        var targetWorldCorners = new Vector3[4];
@@ -142,6 +147,23 @@
        return false;
    }
    [XLua.LuaCallCSharp]
    public static void SetPosition(this Transform transform, float x, float y, float z, bool isLocal = false)
    {
        if (transform == null)
        {
            return;
        }
        if (isLocal)
        {
            transform.localPosition = new Vector3(x, y, z);
        }
        else
        {
            transform.position = new Vector3(x, y, z);
        }
    }
    public static Transform GetRoot(this Transform transform)
    {
Utility/UIHelper.cs
@@ -14,6 +14,7 @@
/// <summary>
/// UI辅助类
/// </summary>
[XLua.LuaCallCSharp]
public static class UIHelper
{
    #region UI通用
@@ -374,6 +375,7 @@
    public static readonly Color s_NavyYellow = new Color32(255, 239, 71, 255);
    public static readonly Color s_LightGreen = new Color32(141, 220, 17, 255);
    public static readonly Color s_LightYellow = new Color32(255, 244, 205, 255); //fff4cd
    public static Color GetUIColor(int itemColor, bool bright = false)
    {
        switch (itemColor)
@@ -395,6 +397,7 @@
        }
        return GetUIColor(TextColType.White, bright);
    }
    public static Color GetUIColor(TextColType type, bool bright = false)
    {
        switch (type)
Utility/UIUtility.cs
@@ -5,6 +5,7 @@
using UnityEngine.EventSystems;
using Snxxz.UI;
[XLua.LuaCallCSharp]
public static class UIUtility
{