From 4fde46699701b1a8b74b4dab516624852b24a86d Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期一, 23 六月 2025 14:24:50 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/Config/Configs/DirtyNameConfig.cs.meta | 11
Main/System/PhantasmPavilion/PhantasmPavilionTabCell.cs.meta | 11
Main/System/PhantasmPavilion/PhantasmPavilionTabCell.cs | 30
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA3BD_tagMCBuyEnterInfo.cs.meta | 11
Main/Config/Configs/PlayerPropertyConfig.cs | 62
Main/System/PhantasmPavilion/AvatarCell.cs.meta | 11
Main/System/Recharge/DailySpecialsModel.cs.meta | 11
Main/Config/Configs/ChatBubbleBoxConfig.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F05_tagFamilyChange.cs.meta | 11
Main/Core/NetworkPackage/ClientPack/CA6_Family.meta | 8
Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA501_tagMCNotifyRequestJoinFamilyInfo.cs | 13
Main/System/PhantasmPavilion/IPhantasmPavilionTabHandler.cs | 31
Main/Core/NetworkPackage/ClientPack/C0F_Family.meta | 8
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA350_tagMCTreasureResult.cs | 25
Main/Core/NetworkPackage/ClientPack/CA4_Family.meta | 8
Main/System/PhantasmPavilion/ChatBubbleHelper.cs.meta | 11
Main/Config/Configs/TreasureSetConfig.cs | 119
Main/System/Store.meta | 8
Main/Core/NetworkPackage/ClientPack/CA2_Interaction/CA230_tagCMSetChatBubbleBox.cs | 30
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA302_tagMCFuncOpenStateList.cs | 13
Main/Core/NetworkPackage/ClientPack/C0F_Family/C0F09_tagCDeleteFamilyMember.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F05_tagFamilyChange.cs | 13
Main/Config/Configs/DailyQuestOpenTimeConfig.cs.meta | 11
Main/Core/NetworkPackage/ClientPack/CA3_Item/CA323_tagCMUseItems.cs | 34
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA302_tagMCFuncOpenStateList.cs | 84
Main/Config/Configs/FamilyConfig.cs | 103
Main/System/PhantasmPavilion/PhantasmPavilionModel.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA320_tagMCPlayerFBInfoData.cs | 13
Main/Config/PartialConfigs/FaceConfig.cs | 28
Main/Config/Configs/PlayerPropertyConfig.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA802_tagMCShopItemDayBuyCntInfo.cs | 13
Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA40D_tagGCServerCreatFamilyTimes.cs | 11
Main/System/PhantasmPavilion/PhantasmPavilionAvatarHandler.cs | 95
Main/System/PhantasmPavilion/PhantasmPavilionAvatarHandler.cs.meta | 11
Main/Config/Configs/FamilyEmblemConfig.cs | 59
Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA204_tagMCVPackRefresh.cs | 7
Main/Core/NetworkPackage/ClientPack/CA3_Item/CA323_tagCMUseItems.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F03_tagRoleFamilyInfo.cs | 13
Main/System/OpenServerActivity/OpenServerActivityCenter.cs | 32
Main/Core/NetworkPackage/ServerPack/HA4_Family.meta | 8
Main/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA03_tagMCDailyPackBuyGiftInfo.cs | 21
Main/System/FairyUnion/PlayerFairyData.cs | 437 +
Main/Core/NetworkPackage/ServerPack/H04_Scene/H0430_tagPlayerInFamilyInfoRefresh.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB120_tagMCZhanlingInfo.cs | 11
Main/Core/NetworkPackage/ServerPack/H0F_Family.meta | 8
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA320_tagMCPlayerFBInfoData.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB117_tagMCFaceInfo.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/HA5_Family.meta | 8
Main/System/Redpoint/MainRedDot.cs.meta | 0
Main/System/PhantasmPavilion/PhantasmPavilionAvatarFrameHandler.cs.meta | 11
Main/Config/PartialConfigs/EquipGSParamConfig.cs.meta | 11
Main/Core/NetworkPackage/ClientPack/CA6_Family/CA611_tagCMRenameFamily.cs | 22
Main/System/ItemTip/ItemTipUtility.cs | 442
Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB118_tagMCFacePicInfo.cs | 13
Main/System/FairyUnion/FairyModel.cs.meta | 12
Main/Core/NetworkPackage/ClientPack/CA6_Family/CA602_tagCMRequesJoinFamily.cs | 20
Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA408_tagGCPyAllFamilyView.cs | 13
Main/Config/Configs/DailyQuestOpenTimeConfig.cs | 92
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA351_tagMCTreasureInfo.cs.meta | 11
Main/System/Dungeon/DungeonModel.cs.meta | 11
Main/Core/NetworkPackage/ClientPack/C0F_Family/C0F09_tagCDeleteFamilyMember.cs | 17
Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F07_tagFamilyRenameResult.cs | 13
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA3BD_tagMCBuyEnterInfo.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/H03_MainCharacter/H0316_tagPackResetOK.cs | 32
Main/Core/NetworkPackage/ServerPack/HA8_Item/HA811_tagMCShoppingResult.cs.meta | 11
Main/System/Equip/EquipFightPower.cs | 159
Main/Utility/FontUtility.cs | 4
Main/Core/GameEngine/Player/PlayerDatas.cs | 85
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA315_tagMCDailyActionCnt.cs.meta | 11
Main/Config/Configs/XBGetItemConfig.cs | 53
Main/System/Equip/EquipSet.cs | 107
Main/Core/NetworkPackage/ServerPack/HB1_Role/HB117_tagMCFaceInfo.cs.meta | 11
Main/System/HappyXB/HappyXBModel.cs | 1074 +++
Main/Core/NetworkPackage/ServerPack/HA2_Package/HA204_tagMCVPackRefresh.cs | 84
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA333_tagMCDailyActivityInfoList.cs.meta | 11
Main/System/PhantasmPavilion/AvatarHelper.cs.meta | 11
Main/Config/PartialConfigs/EquipGSParamConfig.cs | 81
Main/Config/PartialConfigs/EquipPlaceMapConfig.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA302_tagMCFuncOpenStateList.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA3BD_tagMCBuyEnterInfo.cs | 13
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA351_tagMCTreasureInfo.cs | 51
Main/Config/PartialConfigs/PlayerPropertyConfig.cs | 141
Main/Core/NetworkPackage/DTCFile/ServerPack/H02_PlayerTalk/DTC0212_tagNotifyCode.cs | 41
Main/System/Store/StoreModel.cs | 1662 +++++
Main/Core/NetworkPackage/ClientPack/CA4_Family/CA401_tagCGViewFamilyPage.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0430_tagPlayerInFamilyInfoRefresh.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/HB1_Role/HB117_tagMCFaceInfo.cs | 33
Main/Core/NetworkPackage/ServerPack/HB1_Role/HB120_tagMCZhanlingInfo.cs.meta | 11
Main/Config/Configs/TreasureCntAwardConfig.cs.meta | 11
Main/Utility/SafeAreaUI.cs | 3
Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA408_tagGCPyAllFamilyView.cs.meta | 11
Main/System/Recharge/RechargeManager.cs | 6
Main/Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA802_tagMCShopItemDayBuyCntInfo.cs.meta | 11
Main/System/DailyQuest.meta | 8
Main/System/Equip/EquipSlot.cs.meta | 12
Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB228_tagCMFacePicChange.cs | 18
Main/System/FairyEmblem/FairyEmblemModel.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family.meta | 8
Main/System/Chat/ChatManager.cs | 48
Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB118_tagMCFacePicInfo.cs.meta | 11
Main/System/KnapSack/Logic/ItemLogicUtility.cs | 619 -
Main/System/Dungeon/DungeonData.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA205_tagMCVPackClear.cs | 12
Main/System/PhantasmPavilion/PhantasmPavilionChatExpressionHandler.cs | 91
Main/Core/NetworkPackage/ClientPack/C0F_Family/C0F07_tagCGetFamilyInfo.cs.meta | 11
Main/System/DailyQuest/DailyQuestModel.cs.meta | 11
Main/System/PhantasmPavilion/IPhantasmPavilionTabHandler.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA350_tagMCTreasureResult.cs.meta | 11
Main/System/FairyEmblem/EmblemHelper.cs.meta | 11
Main/System/Recharge/DailySpecialsModel.cs | 183
Main/Core/NetworkPackage/ServerPack/HA5_Family/HA501_tagMCNotifyRequestJoinFamilyInfo.cs | 19
Main/Core/NetworkPackage/ClientPack/CA5_Function/CA568_tagCMRequestTreasure.cs.meta | 11
Main/System/FairyUnion/FairyModel.cs | 551 +
Main/Config/PartialConfigs/EquipPlaceMapConfig.cs | 26
Main/Core/NetworkPackage/ClientPack/CA6_Family/CA602_tagCMRequesJoinFamily.cs.meta | 11
Main/Config/Configs/DirtyNameConfig.cs | 38
Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F03_tagRoleFamilyInfo.cs | 117
Main/Core/NetworkPackage/ServerPack/HA5_Family/HA501_tagMCNotifyRequestJoinFamilyInfo.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/HA2_Package/HA205_tagMCVPackClear.cs | 40
Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA401_tagGCViewFamilyRequestInfo.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA01_tagMCTotalLoginDayCntInfo.cs | 19
Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB228_tagCMFacePicChange.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA811_tagMCShoppingResult.cs.meta | 11
Main/System/PhantasmPavilion/PhantasmPavilionAvatarFrameHandler.cs | 95
Main/System/Store/BuyItemController.cs.meta | 12
Main/System/Main/HomeWin.cs.meta | 11
Main/System/Redpoint/MainRedDot.cs | 115
Main/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA01_tagMCTotalLoginDayCntInfo.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F05_tagFamilyChange.cs.meta | 11
Main/System/Equip/EquipSet.cs.meta | 12
Main/Core/NetworkPackage/ServerPack/H04_Scene/H0430_tagPlayerInFamilyInfoRefresh.cs | 23
Main/Core/NetworkPackage/ServerPack/HA4_Family/HA408_tagGCPyAllFamilyView.cs | 61
Main/Core/NetworkPackage/ServerPack/HA4_Family/HA40D_tagGCServerCreatFamilyTimes.cs | 17
Main/Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA811_tagMCShoppingResult.cs | 13
Main/Config/Configs/EquipPlaceMapConfig.cs | 41
Main/Core/NetworkPackage/ClientPack/CA4_Family/CA413_tagCGChangeFamilyEmblem.cs | 18
Main/Core/NetworkPackage/ServerPack/HA8_Item/HA811_tagMCShoppingResult.cs | 19
Main/Core/NetworkPackage/ServerPack/HA4_Family/HA401_tagGCViewFamilyRequestInfo.cs.meta | 11
Main/System/Chat/ChatCenter.cs | 80
Main/System/Equip/EquipSlot.cs | 20
Main/Utility/EnumHelper.cs | 1
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA333_tagMCDailyActivityInfoList.cs.meta | 11
Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB226_tagCMFaceChange.cs | 18
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA3A1_tagMCModuleFightPowerInfo.cs | 10
Main/Config/Configs/TreasureItemLibConfig.cs | 41
Main/Core/NetworkPackage/ClientPack/CA5_Function/CA568_tagCMRequestTreasure.cs | 22
Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB226_tagCMFaceChange.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA403_tagGCFamilyActionInfo.cs | 14
Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA401_tagGCViewFamilyRequestInfo.cs | 13
Main/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA03_tagMCDailyPackBuyGiftInfo.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/HA4_Family/HA408_tagGCPyAllFamilyView.cs.meta | 11
Main/System/KnapSack/VirtualPackManager.cs | 3
Main/Utility/Logic.cs.meta | 12
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA315_tagMCDailyActionCnt.cs | 35
Main/System/FairyUnion/PlayerFairyData.cs.meta | 8
Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA403_tagGCFamilyActionInfo.cs.meta | 11
Main/Config/PartialConfigs/DirtyNameConfig.cs | 199
Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F07_tagFamilyRenameResult.cs.meta | 11
Main/System/Equip/EquipModel.cs | 75
Main/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA721_tagMCEmojiPackInfo.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/H02_PlayerTalk/H0212_tagNotifyCode.cs | 95
Main/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA01_tagMCTotalLoginDayCntInfo.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA721_tagMCEmojiPackInfo.cs | 13
Main/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA03_tagMCDailyPackBuyGiftInfo.cs.meta | 11
Main/Config/Configs/DailyQuestConfig.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/H0F_Family/C0F09_tagFamilyWarBillboardResult.cs | 33
Main/Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0316_tagPackResetOK.cs | 11
Main/Core/NetworkPackage/ServerPack/HA4_Family/HA40D_tagGCServerCreatFamilyTimes.cs.meta | 11
Main/System/Equip/EquipFightPower.cs.meta | 12
Main/System/PhantasmPavilion/PhantasmPavilionChatExpressionHandler.cs.meta | 11
Main/Config/Configs/TreasureItemLibConfig.cs.meta | 11
Main/System/FairyEmblem/EmblemHelper.cs | 57
Main/Config/Configs/DailyLivenessRewardConfig.cs | 101
Main/Core/NetworkPackage/ServerPack/HA8_Item/HA802_tagMCShopItemDayBuyCntInfo.cs | 31
Main/Core/NetworkPackage/ServerPack/HB1_Role/HB118_tagMCFacePicInfo.cs | 33
Main/System/DailyQuest/DailyQuestModel.cs | 216
Main/System/PhantasmPavilion/PhantasmPavilionChatBubbleHandler.cs | 90
Main/Core/NetworkPackage/ClientPack/CA6_Family/CA611_tagCMRenameFamily.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA350_tagMCTreasureResult.cs | 13
Main/System/FairyUnion.meta | 8
Main/System/KnapSack/PackManager.cs | 920 ---
Main/System/Redpoint/RedpointBehaviour.cs | 213
Main/System/PhantasmPavilion/PhantasmPavilionModel.cs | 893 +++
Main/Config/Configs/EquipGSParamConfig.cs.meta | 11
Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs | 32
Main/Core/NetworkPackage/ServerPack/H0F_Family/C0F09_tagFamilyWarBillboardResult.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/HA7_Interaction/HA721_tagMCEmojiPackInfo.cs | 31
Main/System/FairyEmblem/FairyEmblemModel.cs | 348 +
Main/System/FairyEmblem.meta | 8
Main/Config/Configs/EquipGSParamConfig.cs | 173
Main/System/Main/MainWin.cs | 81
Main/System/Dungeon.meta | 8
Main/System/PhantasmPavilion/PhantasmPavilionChatBubbleHandler.cs.meta | 11
Main/Config/Configs/FamilyEmblemConfig.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA350_tagMCTreasureResult.cs.meta | 11
Main/Core/NetworkPackage/ClientPack/CA4_Family/CA408_tagCGQueryFamilyAction.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F05_tagFamilyChange.cs | 17
Main/System/HappyXB.meta | 8
Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F03_tagRoleFamilyInfo.cs.meta | 11
Main/System/Store/StoreModel.cs.meta | 12
Main/Config/PartialConfigs/PlayerPropertyConfig.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA40D_tagGCServerCreatFamilyTimes.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/HB1_Role/HB118_tagMCFacePicInfo.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA320_tagMCPlayerFBInfoData.cs | 41
Main/System/Equip/EquipModel.cs.meta | 12
Main/System/PhantasmPavilion/ChatBubbleHelper.cs | 20
Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0430_tagPlayerInFamilyInfoRefresh.cs | 13
Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F07_tagFamilyRenameResult.cs | 21
Main/System/Message/SysNotifyMgr.cs | 1
Main/Config/Configs/ChatBubbleBoxConfig.cs | 152
Main/Utility/Logic.cs | 417 +
Main/Config/PartialConfigs/DirtyNameConfig.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA03_tagMCDailyPackBuyGiftInfo.cs | 14
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA351_tagMCTreasureInfo.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/HB1_Role/HB120_tagMCZhanlingInfo.cs | 43
Main/Core/NetworkPackage/ServerPack/HA7_Interaction/HA721_tagMCEmojiPackInfo.cs.meta | 11
Main/System/Task/TaskManager.cs | 54
Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB120_tagMCZhanlingInfo.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB117_tagMCFaceInfo.cs | 13
Main/Config/Configs/XBGetItemConfig.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA315_tagMCDailyActionCnt.cs | 13
Main/Core/NetworkPackage/ServerPack/HA4_Family/HA401_tagGCViewFamilyRequestInfo.cs | 43
Main/Core/NetworkPackage/ClientPack/CA3_Item/CA310_tagCMBuyItem.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA333_tagMCDailyActivityInfoList.cs | 13
Main/Config/Configs/DailyQuestConfig.cs | 86
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA333_tagMCDailyActivityInfoList.cs | 25
Main/System/PhantasmPavilion/AvatarHelper.cs | 119
Main/System/Redpoint/RedpointCenter.cs | 244
Main/System/Dungeon/DungeonModel.cs | 71
Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA501_tagMCNotifyRequestJoinFamilyInfo.cs.meta | 11
Main/Core/NetworkPackage/ClientPack/CA4_Family/CA413_tagCGChangeFamilyEmblem.cs.meta | 11
Main/System/HappyXB/HappyXBModel.cs.meta | 12
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA320_tagMCPlayerFBInfoData.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F03_tagRoleFamilyInfo.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA01_tagMCTotalLoginDayCntInfo.cs | 11
Main/Core/NetworkPackage/ServerPack/HA4_Family/HA403_tagGCFamilyActionInfo.cs | 51
Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F07_tagFamilyRenameResult.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA351_tagMCTreasureInfo.cs | 13
Main/Config/ConfigManager.cs | 49
Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family.meta | 8
Main/System/PhantasmPavilion.meta | 8
Main/Config/PartialConfigs/FaceConfig.cs.meta | 11
Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family.meta | 8
Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role.meta | 8
Main/System/GeneralConfig/GeneralDefine.cs | 1368 ++--
Main/Core/NetworkPackage/ClientPack/CA3_Item/CA310_tagCMBuyItem.cs | 20
Main/Config/Configs/TreasureSetConfig.cs.meta | 11
Main/System/Main/HomeWin.cs | 62
Main/Core/NetworkPackage/ServerPack/HA4_Family/HA403_tagGCFamilyActionInfo.cs.meta | 11
Main/Main.cs | 19
Main/System/PhantasmPavilion/AvatarCell.cs | 255
Main/Config/Configs/TreasureCntAwardConfig.cs | 47
Main/Core/NetworkPackage/ClientPack/CA4_Family/CA408_tagCGQueryFamilyAction.cs | 20
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA3BD_tagMCBuyEnterInfo.cs | 29
Main/Core/NetworkPackage/ClientPack/CA4_Family/CA401_tagCGViewFamilyPage.cs | 24
Main/Config/Configs/DailyLivenessRewardConfig.cs.meta | 11
Main/System/Dungeon/DungeonData.cs | 327 +
Main/System/DailyQuest/DailyQuestData.cs | 314 +
/dev/null | 226
Main/Core/NetworkPackage/ServerPack/HA8_Item/HA802_tagMCShopItemDayBuyCntInfo.cs.meta | 11
Main/System/DailyQuest/DailyQuestData.cs.meta | 11
Main/Config/Configs/EquipPlaceMapConfig.cs.meta | 11
Main/Core/NetworkPackage/ServerPack/HA3_Function/HA315_tagMCDailyActionCnt.cs.meta | 11
Main/Core/NetworkPackage/ClientPack/C0F_Family/C0F07_tagCGetFamilyInfo.cs | 17
Main/System/Store/BuyItemController.cs | 214
265 files changed, 14,098 insertions(+), 3,352 deletions(-)
diff --git a/Main/Config/ConfigManager.cs b/Main/Config/ConfigManager.cs
index e241fdd..cb9c38e 100644
--- a/Main/Config/ConfigManager.cs
+++ b/Main/Config/ConfigManager.cs
@@ -33,20 +33,28 @@
isLoadFinished = false;
// 鍔犺浇閰嶇疆鏂囦欢
- int totalConfigs = 49;
+ int totalConfigs = 60;
Type[] configTypes = new Type[] {
typeof(AppointItemConfig),
typeof(AudioConfig),
+ typeof(ChatBubbleBoxConfig),
typeof(ChestsAwardConfig),
typeof(ChestsConfig),
typeof(CTGConfig),
typeof(CTGSelectItemConfig),
+ typeof(DailyLivenessRewardConfig),
+ typeof(DailyQuestConfig),
+ typeof(DailyQuestOpenTimeConfig),
typeof(DienstgradConfig),
+ typeof(DirtyNameConfig),
typeof(DirtyWordConfig),
typeof(EffectConfig),
typeof(EmojiPackConfig),
+ typeof(EquipGSParamConfig),
+ typeof(EquipPlaceMapConfig),
typeof(FaceConfig),
typeof(FamilyConfig),
+ typeof(FamilyEmblemConfig),
typeof(FirstGoldConfig),
typeof(FuncConfigConfig),
typeof(FuncOpenLVConfig),
@@ -73,9 +81,8 @@
typeof(OrderInfoConfig),
typeof(PlayerFaceConfig),
typeof(PlayerFacePicConfig),
- typeof(PlayerFacePicStarConfig),
- typeof(PlayerFaceStarConfig),
typeof(PlayerLVConfig),
+ typeof(PlayerPropertyConfig),
typeof(priorbundleConfig),
typeof(RichTextMsgReplaceConfig),
typeof(RuleConfig),
@@ -83,7 +90,11 @@
typeof(StoreConfig),
typeof(SuccessConfig),
typeof(SysInfoConfig),
- typeof(TitleStarUpConfig)
+ typeof(TitleStarUpConfig),
+ typeof(TreasureCntAwardConfig),
+ typeof(TreasureItemLibConfig),
+ typeof(TreasureSetConfig),
+ typeof(XBGetItemConfig)
};
// 閫愪釜鍔犺浇閰嶇疆骞舵洿鏂拌繘搴�
@@ -184,6 +195,8 @@
ClearConfigDictionary<AppointItemConfig>();
// 娓呯┖ AudioConfig 瀛楀吀
ClearConfigDictionary<AudioConfig>();
+ // 娓呯┖ ChatBubbleBoxConfig 瀛楀吀
+ ClearConfigDictionary<ChatBubbleBoxConfig>();
// 娓呯┖ ChestsAwardConfig 瀛楀吀
ClearConfigDictionary<ChestsAwardConfig>();
// 娓呯┖ ChestsConfig 瀛楀吀
@@ -192,18 +205,32 @@
ClearConfigDictionary<CTGConfig>();
// 娓呯┖ CTGSelectItemConfig 瀛楀吀
ClearConfigDictionary<CTGSelectItemConfig>();
+ // 娓呯┖ DailyLivenessRewardConfig 瀛楀吀
+ ClearConfigDictionary<DailyLivenessRewardConfig>();
+ // 娓呯┖ DailyQuestConfig 瀛楀吀
+ ClearConfigDictionary<DailyQuestConfig>();
+ // 娓呯┖ DailyQuestOpenTimeConfig 瀛楀吀
+ ClearConfigDictionary<DailyQuestOpenTimeConfig>();
// 娓呯┖ DienstgradConfig 瀛楀吀
ClearConfigDictionary<DienstgradConfig>();
+ // 娓呯┖ DirtyNameConfig 瀛楀吀
+ ClearConfigDictionary<DirtyNameConfig>();
// 娓呯┖ DirtyWordConfig 瀛楀吀
ClearConfigDictionary<DirtyWordConfig>();
// 娓呯┖ EffectConfig 瀛楀吀
ClearConfigDictionary<EffectConfig>();
// 娓呯┖ EmojiPackConfig 瀛楀吀
ClearConfigDictionary<EmojiPackConfig>();
+ // 娓呯┖ EquipGSParamConfig 瀛楀吀
+ ClearConfigDictionary<EquipGSParamConfig>();
+ // 娓呯┖ EquipPlaceMapConfig 瀛楀吀
+ ClearConfigDictionary<EquipPlaceMapConfig>();
// 娓呯┖ FaceConfig 瀛楀吀
ClearConfigDictionary<FaceConfig>();
// 娓呯┖ FamilyConfig 瀛楀吀
ClearConfigDictionary<FamilyConfig>();
+ // 娓呯┖ FamilyEmblemConfig 瀛楀吀
+ ClearConfigDictionary<FamilyEmblemConfig>();
// 娓呯┖ FirstGoldConfig 瀛楀吀
ClearConfigDictionary<FirstGoldConfig>();
// 娓呯┖ FuncConfigConfig 瀛楀吀
@@ -256,12 +283,10 @@
ClearConfigDictionary<PlayerFaceConfig>();
// 娓呯┖ PlayerFacePicConfig 瀛楀吀
ClearConfigDictionary<PlayerFacePicConfig>();
- // 娓呯┖ PlayerFacePicStarConfig 瀛楀吀
- ClearConfigDictionary<PlayerFacePicStarConfig>();
- // 娓呯┖ PlayerFaceStarConfig 瀛楀吀
- ClearConfigDictionary<PlayerFaceStarConfig>();
// 娓呯┖ PlayerLVConfig 瀛楀吀
ClearConfigDictionary<PlayerLVConfig>();
+ // 娓呯┖ PlayerPropertyConfig 瀛楀吀
+ ClearConfigDictionary<PlayerPropertyConfig>();
// 娓呯┖ priorbundleConfig 瀛楀吀
ClearConfigDictionary<priorbundleConfig>();
// 娓呯┖ RichTextMsgReplaceConfig 瀛楀吀
@@ -278,5 +303,13 @@
ClearConfigDictionary<SysInfoConfig>();
// 娓呯┖ TitleStarUpConfig 瀛楀吀
ClearConfigDictionary<TitleStarUpConfig>();
+ // 娓呯┖ TreasureCntAwardConfig 瀛楀吀
+ ClearConfigDictionary<TreasureCntAwardConfig>();
+ // 娓呯┖ TreasureItemLibConfig 瀛楀吀
+ ClearConfigDictionary<TreasureItemLibConfig>();
+ // 娓呯┖ TreasureSetConfig 瀛楀吀
+ ClearConfigDictionary<TreasureSetConfig>();
+ // 娓呯┖ XBGetItemConfig 瀛楀吀
+ ClearConfigDictionary<XBGetItemConfig>();
}
}
diff --git a/Main/Config/Configs/ChatBubbleBoxConfig.cs b/Main/Config/Configs/ChatBubbleBoxConfig.cs
new file mode 100644
index 0000000..491df6c
--- /dev/null
+++ b/Main/Config/Configs/ChatBubbleBoxConfig.cs
@@ -0,0 +1,152 @@
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: 2025骞�6鏈�18鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class ChatBubbleBoxConfig : ConfigBase<int, ChatBubbleBoxConfig>
+{
+
+ public int ID;
+ public string Name;
+ public int NeedLV;
+ public int SortNum;
+ public int UnlockDefault;
+ public int ExpireMinutes;
+ public int[][] UnlockNeedItemList;
+ public int[] LightAttrType;
+ public int[] LightAttrValue;
+ public int LightFightPower;
+ public string leftBubbleIcon;
+ public string rightBubbleIcon;
+ public int[] leftOffset;
+ public int[] rightOffset;
+ public string Icon;
+ public int Jump;
+ public string GainTip;
+ public int[] color;
+ public int top;
+ public string Descriptive;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out ID);
+
+ Name = tables[1];
+
+ int.TryParse(tables[2],out NeedLV);
+
+ int.TryParse(tables[3],out SortNum);
+
+ int.TryParse(tables[4],out UnlockDefault);
+
+ int.TryParse(tables[5],out ExpireMinutes);
+
+ UnlockNeedItemList = JsonMapper.ToObject<int[][]>(tables[6].Replace("(", "[").Replace(")", "]"));
+
+ if (tables[7].Contains("["))
+ {
+ LightAttrType = JsonMapper.ToObject<int[]>(tables[7]);
+ }
+ else
+ {
+ string[] LightAttrTypeStringArray = tables[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ LightAttrType = new int[LightAttrTypeStringArray.Length];
+ for (int i=0;i<LightAttrTypeStringArray.Length;i++)
+ {
+ int.TryParse(LightAttrTypeStringArray[i],out LightAttrType[i]);
+ }
+ }
+
+ if (tables[8].Contains("["))
+ {
+ LightAttrValue = JsonMapper.ToObject<int[]>(tables[8]);
+ }
+ else
+ {
+ string[] LightAttrValueStringArray = tables[8].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ LightAttrValue = new int[LightAttrValueStringArray.Length];
+ for (int i=0;i<LightAttrValueStringArray.Length;i++)
+ {
+ int.TryParse(LightAttrValueStringArray[i],out LightAttrValue[i]);
+ }
+ }
+
+ int.TryParse(tables[9],out LightFightPower);
+
+ leftBubbleIcon = tables[10];
+
+ rightBubbleIcon = tables[11];
+
+ if (tables[12].Contains("["))
+ {
+ leftOffset = JsonMapper.ToObject<int[]>(tables[12]);
+ }
+ else
+ {
+ string[] leftOffsetStringArray = tables[12].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ leftOffset = new int[leftOffsetStringArray.Length];
+ for (int i=0;i<leftOffsetStringArray.Length;i++)
+ {
+ int.TryParse(leftOffsetStringArray[i],out leftOffset[i]);
+ }
+ }
+
+ if (tables[13].Contains("["))
+ {
+ rightOffset = JsonMapper.ToObject<int[]>(tables[13]);
+ }
+ else
+ {
+ string[] rightOffsetStringArray = tables[13].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ rightOffset = new int[rightOffsetStringArray.Length];
+ for (int i=0;i<rightOffsetStringArray.Length;i++)
+ {
+ int.TryParse(rightOffsetStringArray[i],out rightOffset[i]);
+ }
+ }
+
+ Icon = tables[14];
+
+ int.TryParse(tables[15],out Jump);
+
+ GainTip = tables[16];
+
+ if (tables[17].Contains("["))
+ {
+ color = JsonMapper.ToObject<int[]>(tables[17]);
+ }
+ else
+ {
+ string[] colorStringArray = tables[17].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ color = new int[colorStringArray.Length];
+ for (int i=0;i<colorStringArray.Length;i++)
+ {
+ int.TryParse(colorStringArray[i],out color[i]);
+ }
+ }
+
+ int.TryParse(tables[18],out top);
+
+ Descriptive = tables[19];
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/ChatBubbleBoxConfig.cs.meta b/Main/Config/Configs/ChatBubbleBoxConfig.cs.meta
new file mode 100644
index 0000000..9988d5c
--- /dev/null
+++ b/Main/Config/Configs/ChatBubbleBoxConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 67486172f11dcdc4cac741efdc641413
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/Configs/DailyLivenessRewardConfig.cs b/Main/Config/Configs/DailyLivenessRewardConfig.cs
new file mode 100644
index 0000000..c0b1c08
--- /dev/null
+++ b/Main/Config/Configs/DailyLivenessRewardConfig.cs
@@ -0,0 +1,101 @@
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: 2025骞�6鏈�18鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class DailyLivenessRewardConfig : ConfigBase<int, DailyLivenessRewardConfig>
+{
+
+ public int id;
+ public int Liveness;
+ public int[] StageLV;
+ public int[] ItemID;
+ public int[] ItemCount;
+ public int[] ItemBind;
+ public string Description;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out id);
+
+ int.TryParse(tables[1],out Liveness);
+
+ if (tables[2].Contains("["))
+ {
+ StageLV = JsonMapper.ToObject<int[]>(tables[2]);
+ }
+ else
+ {
+ string[] StageLVStringArray = tables[2].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ StageLV = new int[StageLVStringArray.Length];
+ for (int i=0;i<StageLVStringArray.Length;i++)
+ {
+ int.TryParse(StageLVStringArray[i],out StageLV[i]);
+ }
+ }
+
+ if (tables[3].Contains("["))
+ {
+ ItemID = JsonMapper.ToObject<int[]>(tables[3]);
+ }
+ else
+ {
+ string[] ItemIDStringArray = tables[3].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ ItemID = new int[ItemIDStringArray.Length];
+ for (int i=0;i<ItemIDStringArray.Length;i++)
+ {
+ int.TryParse(ItemIDStringArray[i],out ItemID[i]);
+ }
+ }
+
+ if (tables[4].Contains("["))
+ {
+ ItemCount = JsonMapper.ToObject<int[]>(tables[4]);
+ }
+ else
+ {
+ string[] ItemCountStringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ ItemCount = new int[ItemCountStringArray.Length];
+ for (int i=0;i<ItemCountStringArray.Length;i++)
+ {
+ int.TryParse(ItemCountStringArray[i],out ItemCount[i]);
+ }
+ }
+
+ if (tables[5].Contains("["))
+ {
+ ItemBind = JsonMapper.ToObject<int[]>(tables[5]);
+ }
+ else
+ {
+ string[] ItemBindStringArray = tables[5].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ ItemBind = new int[ItemBindStringArray.Length];
+ for (int i=0;i<ItemBindStringArray.Length;i++)
+ {
+ int.TryParse(ItemBindStringArray[i],out ItemBind[i]);
+ }
+ }
+
+ Description = tables[6];
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/DailyLivenessRewardConfig.cs.meta b/Main/Config/Configs/DailyLivenessRewardConfig.cs.meta
new file mode 100644
index 0000000..bfe415c
--- /dev/null
+++ b/Main/Config/Configs/DailyLivenessRewardConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8a0f64a88bd389c47904a1cd0ea06667
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/Configs/DailyQuestConfig.cs b/Main/Config/Configs/DailyQuestConfig.cs
new file mode 100644
index 0000000..b7f3917
--- /dev/null
+++ b/Main/Config/Configs/DailyQuestConfig.cs
@@ -0,0 +1,86 @@
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: 2025骞�6鏈�18鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class DailyQuestConfig : ConfigBase<int, DailyQuestConfig>
+{
+
+ public int ID;
+ public string Title;
+ public int RelatedType;
+ public int RelatedID;
+ public int UnLockFuncID;
+ public int OnceActivityTime;
+ public int OnceActivity;
+ public int TotalActiveValue;
+ public int[] RewardID;
+ public string Icon;
+ public string Description;
+ public string QuestTypeDescribe;
+ public int order;
+ public string AwardImg;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out ID);
+
+ Title = tables[1];
+
+ int.TryParse(tables[2],out RelatedType);
+
+ int.TryParse(tables[3],out RelatedID);
+
+ int.TryParse(tables[4],out UnLockFuncID);
+
+ int.TryParse(tables[5],out OnceActivityTime);
+
+ int.TryParse(tables[6],out OnceActivity);
+
+ int.TryParse(tables[7],out TotalActiveValue);
+
+ if (tables[8].Contains("["))
+ {
+ RewardID = JsonMapper.ToObject<int[]>(tables[8]);
+ }
+ else
+ {
+ string[] RewardIDStringArray = tables[8].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ RewardID = new int[RewardIDStringArray.Length];
+ for (int i=0;i<RewardIDStringArray.Length;i++)
+ {
+ int.TryParse(RewardIDStringArray[i],out RewardID[i]);
+ }
+ }
+
+ Icon = tables[9];
+
+ Description = tables[10];
+
+ QuestTypeDescribe = tables[11];
+
+ int.TryParse(tables[12],out order);
+
+ AwardImg = tables[13];
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/DailyQuestConfig.cs.meta b/Main/Config/Configs/DailyQuestConfig.cs.meta
new file mode 100644
index 0000000..4ccedac
--- /dev/null
+++ b/Main/Config/Configs/DailyQuestConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f71474ebc1d8c7c48acd1e49c1152689
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/Configs/DailyQuestOpenTimeConfig.cs b/Main/Config/Configs/DailyQuestOpenTimeConfig.cs
new file mode 100644
index 0000000..9c8539f
--- /dev/null
+++ b/Main/Config/Configs/DailyQuestOpenTimeConfig.cs
@@ -0,0 +1,92 @@
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: 2025骞�6鏈�18鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class DailyQuestOpenTimeConfig : ConfigBase<int, DailyQuestOpenTimeConfig>
+{
+
+ public int ID;
+ public string ActionName;
+ public int OpenServerDay;
+ public string OpenTime;
+ public int Duration;
+ public int DayTimes;
+ public int DayBuyTimes;
+ public int BuyTimesPrivilegeID;
+ public int MoneyType;
+ public int[] BuyNeedMoney;
+ public int DayItemAddTimes;
+ public int DayItemID;
+ public int DayReKind;
+ public int WeekTimes;
+ public int WeekReKind;
+ public int OpenUI;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out ID);
+
+ ActionName = tables[1];
+
+ int.TryParse(tables[2],out OpenServerDay);
+
+ OpenTime = tables[3];
+
+ int.TryParse(tables[4],out Duration);
+
+ int.TryParse(tables[5],out DayTimes);
+
+ int.TryParse(tables[6],out DayBuyTimes);
+
+ int.TryParse(tables[7],out BuyTimesPrivilegeID);
+
+ int.TryParse(tables[8],out MoneyType);
+
+ if (tables[9].Contains("["))
+ {
+ BuyNeedMoney = JsonMapper.ToObject<int[]>(tables[9]);
+ }
+ else
+ {
+ string[] BuyNeedMoneyStringArray = tables[9].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ BuyNeedMoney = new int[BuyNeedMoneyStringArray.Length];
+ for (int i=0;i<BuyNeedMoneyStringArray.Length;i++)
+ {
+ int.TryParse(BuyNeedMoneyStringArray[i],out BuyNeedMoney[i]);
+ }
+ }
+
+ int.TryParse(tables[10],out DayItemAddTimes);
+
+ int.TryParse(tables[11],out DayItemID);
+
+ int.TryParse(tables[12],out DayReKind);
+
+ int.TryParse(tables[13],out WeekTimes);
+
+ int.TryParse(tables[14],out WeekReKind);
+
+ int.TryParse(tables[15],out OpenUI);
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/DailyQuestOpenTimeConfig.cs.meta b/Main/Config/Configs/DailyQuestOpenTimeConfig.cs.meta
new file mode 100644
index 0000000..7ffb5d8
--- /dev/null
+++ b/Main/Config/Configs/DailyQuestOpenTimeConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 383c61a70812a76479a044197b841eb7
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/Configs/DirtyNameConfig.cs b/Main/Config/Configs/DirtyNameConfig.cs
new file mode 100644
index 0000000..fffd283
--- /dev/null
+++ b/Main/Config/Configs/DirtyNameConfig.cs
@@ -0,0 +1,38 @@
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: Tuesday, June 17, 2025
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class DirtyNameConfig : ConfigBase<int, DirtyNameConfig>
+{
+
+ public int id;
+ public string word;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out id);
+
+ word = tables[1];
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/DirtyNameConfig.cs.meta b/Main/Config/Configs/DirtyNameConfig.cs.meta
new file mode 100644
index 0000000..60a8a21
--- /dev/null
+++ b/Main/Config/Configs/DirtyNameConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6da75bc0cae8a5448968ebb2a41cc342
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/Configs/EquipGSParamConfig.cs b/Main/Config/Configs/EquipGSParamConfig.cs
new file mode 100644
index 0000000..426109f
--- /dev/null
+++ b/Main/Config/Configs/EquipGSParamConfig.cs
@@ -0,0 +1,173 @@
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: 2025骞�6鏈�17鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class EquipGSParamConfig : ConfigBase<int, EquipGSParamConfig>
+{
+
+ public int ID;
+ public int EquipClass;
+ public int EquipColor;
+ public int IsSuit;
+ public int Star;
+ public int BaseEquipMaxHPAddPerC;
+ public int BaseEquipAtkAddPerC;
+ public int SuperHitC;
+ public int SuperHitPerC;
+ public int LuckyHitRateC;
+ public int LuckyHitRateReduceC;
+ public int LuckPerC;
+ public int PerLVAtkC;
+ public int PerLVMaxHPC;
+ public int DropMoneyPerC;
+ public int SuperHitReduceC;
+ public int SuperHitRateReduceC;
+ public int HitC;
+ public int MissC;
+ public int PetDamPerC;
+ public int MaxHPPerC;
+ public int AtkPerC;
+ public int SkillAtkRateC;
+ public int SkillAtkRateReduceC;
+ public int SkillAddPerAC;
+ public int SkillAddPerBC;
+ public int SkillAddPerCC;
+ public int SkillAddPerDC;
+ public int SkillAddPerEC;
+ public int SkillAddPerFC;
+ public int SkillAddPerGC;
+ public int SkillReducePerAC;
+ public int SkillReducePerBC;
+ public int SkillReducePerCC;
+ public int SkillReducePerDC;
+ public int SkillReducePerEC;
+ public int SkillReducePerFC;
+ public int SkillReducePerGC;
+ public int ReduceSkillCDPerC;
+ public int LuckyHitPerC;
+ public int FaintDefRateC;
+ public int SuperHitRateC;
+ public int IgnoreDefRateC;
+ public int IgnoreDefRateReduceC;
+ public int ProDefPerC;
+ public int FinalHurtPerC;
+ public int FinalHurtReducePerC;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out ID);
+
+ int.TryParse(tables[1],out EquipClass);
+
+ int.TryParse(tables[2],out EquipColor);
+
+ int.TryParse(tables[3],out IsSuit);
+
+ int.TryParse(tables[4],out Star);
+
+ int.TryParse(tables[5],out BaseEquipMaxHPAddPerC);
+
+ int.TryParse(tables[6],out BaseEquipAtkAddPerC);
+
+ int.TryParse(tables[7],out SuperHitC);
+
+ int.TryParse(tables[8],out SuperHitPerC);
+
+ int.TryParse(tables[9],out LuckyHitRateC);
+
+ int.TryParse(tables[10],out LuckyHitRateReduceC);
+
+ int.TryParse(tables[11],out LuckPerC);
+
+ int.TryParse(tables[12],out PerLVAtkC);
+
+ int.TryParse(tables[13],out PerLVMaxHPC);
+
+ int.TryParse(tables[14],out DropMoneyPerC);
+
+ int.TryParse(tables[15],out SuperHitReduceC);
+
+ int.TryParse(tables[16],out SuperHitRateReduceC);
+
+ int.TryParse(tables[17],out HitC);
+
+ int.TryParse(tables[18],out MissC);
+
+ int.TryParse(tables[19],out PetDamPerC);
+
+ int.TryParse(tables[20],out MaxHPPerC);
+
+ int.TryParse(tables[21],out AtkPerC);
+
+ int.TryParse(tables[22],out SkillAtkRateC);
+
+ int.TryParse(tables[23],out SkillAtkRateReduceC);
+
+ int.TryParse(tables[24],out SkillAddPerAC);
+
+ int.TryParse(tables[25],out SkillAddPerBC);
+
+ int.TryParse(tables[26],out SkillAddPerCC);
+
+ int.TryParse(tables[27],out SkillAddPerDC);
+
+ int.TryParse(tables[28],out SkillAddPerEC);
+
+ int.TryParse(tables[29],out SkillAddPerFC);
+
+ int.TryParse(tables[30],out SkillAddPerGC);
+
+ int.TryParse(tables[31],out SkillReducePerAC);
+
+ int.TryParse(tables[32],out SkillReducePerBC);
+
+ int.TryParse(tables[33],out SkillReducePerCC);
+
+ int.TryParse(tables[34],out SkillReducePerDC);
+
+ int.TryParse(tables[35],out SkillReducePerEC);
+
+ int.TryParse(tables[36],out SkillReducePerFC);
+
+ int.TryParse(tables[37],out SkillReducePerGC);
+
+ int.TryParse(tables[38],out ReduceSkillCDPerC);
+
+ int.TryParse(tables[39],out LuckyHitPerC);
+
+ int.TryParse(tables[40],out FaintDefRateC);
+
+ int.TryParse(tables[41],out SuperHitRateC);
+
+ int.TryParse(tables[42],out IgnoreDefRateC);
+
+ int.TryParse(tables[43],out IgnoreDefRateReduceC);
+
+ int.TryParse(tables[44],out ProDefPerC);
+
+ int.TryParse(tables[45],out FinalHurtPerC);
+
+ int.TryParse(tables[46],out FinalHurtReducePerC);
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/EquipGSParamConfig.cs.meta b/Main/Config/Configs/EquipGSParamConfig.cs.meta
new file mode 100644
index 0000000..142c67b
--- /dev/null
+++ b/Main/Config/Configs/EquipGSParamConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f510c442e570ac446af81fa008cc0367
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/Configs/EquipPlaceMapConfig.cs b/Main/Config/Configs/EquipPlaceMapConfig.cs
new file mode 100644
index 0000000..f0fa345
--- /dev/null
+++ b/Main/Config/Configs/EquipPlaceMapConfig.cs
@@ -0,0 +1,41 @@
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: 2025骞�6鏈�17鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class EquipPlaceMapConfig : ConfigBase<int, EquipPlaceMapConfig>
+{
+
+ public int PackIndex;
+ public int LV;
+ public int EquipPlace;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out PackIndex);
+
+ int.TryParse(tables[1],out LV);
+
+ int.TryParse(tables[2],out EquipPlace);
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/EquipPlaceMapConfig.cs.meta b/Main/Config/Configs/EquipPlaceMapConfig.cs.meta
new file mode 100644
index 0000000..2389729
--- /dev/null
+++ b/Main/Config/Configs/EquipPlaceMapConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 695a587191bcf194ab9c1d32d07102e2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/Configs/FamilyConfig.cs b/Main/Config/Configs/FamilyConfig.cs
index 4f55b1f..c09d921 100644
--- a/Main/Config/Configs/FamilyConfig.cs
+++ b/Main/Config/Configs/FamilyConfig.cs
@@ -1,56 +1,47 @@
-锘�//--------------------------------------------------------
-// [Author]: YYL
-// [ Date ]: 2025骞�5鏈�22鏃�
-//--------------------------------------------------------
-
-using System.Collections.Generic;
-using System.IO;
-using System.Threading;
-using System;
-using UnityEngine;
-using LitJson;
-
-public partial class FamilyConfig : ConfigBase<int, FamilyConfig>
-{
-
- public int familyLV;
- public int memberCnt;
- public int deputyLeaderCnt;
- public int eliteCnt;
- public int needMoney;
- public int weekMissionMoneyMax;
- public int bossFBCnt;
- public int ZhenbaogeWeights;
-
- public override int LoadKey(string _key)
- {
- int key = GetKey(_key);
- return key;
- }
-
- public override void LoadConfig(string input)
- {
- try {
- string[] tables = input.Split('\t');
- int.TryParse(tables[0],out familyLV);
-
- int.TryParse(tables[1],out memberCnt);
-
- int.TryParse(tables[2],out deputyLeaderCnt);
-
- int.TryParse(tables[3],out eliteCnt);
-
- int.TryParse(tables[4],out needMoney);
-
- int.TryParse(tables[5],out weekMissionMoneyMax);
-
- int.TryParse(tables[6],out bossFBCnt);
-
- int.TryParse(tables[7],out ZhenbaogeWeights);
- }
- catch (Exception exception)
- {
- Debug.LogError(exception);
- }
- }
-}
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: Wednesday, June 18, 2025
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class FamilyConfig : ConfigBase<int, FamilyConfig>
+{
+
+ public int FamilyLV;
+ public int MemberMax;
+ public int DeputyLeaderMax;
+ public int EliteMax;
+ public int NeedExp;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out FamilyLV);
+
+ int.TryParse(tables[1],out MemberMax);
+
+ int.TryParse(tables[2],out DeputyLeaderMax);
+
+ int.TryParse(tables[3],out EliteMax);
+
+ int.TryParse(tables[4],out NeedExp);
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/FamilyEmblemConfig.cs b/Main/Config/Configs/FamilyEmblemConfig.cs
new file mode 100644
index 0000000..a4a3fdf
--- /dev/null
+++ b/Main/Config/Configs/FamilyEmblemConfig.cs
@@ -0,0 +1,59 @@
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: 2025骞�6鏈�18鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class FamilyEmblemConfig : ConfigBase<int, FamilyEmblemConfig>
+{
+
+ public int EmblemID;
+ public string Name;
+ public int UnlockFamilyLV;
+ public int ExpireMinutes;
+ public int CustomFamilyID;
+ public string Image;
+ public int EffectID;
+ public int SortNum;
+ public string Descriptive;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out EmblemID);
+
+ Name = tables[1];
+
+ int.TryParse(tables[2],out UnlockFamilyLV);
+
+ int.TryParse(tables[3],out ExpireMinutes);
+
+ int.TryParse(tables[4],out CustomFamilyID);
+
+ Image = tables[5];
+
+ int.TryParse(tables[6],out EffectID);
+
+ int.TryParse(tables[7],out SortNum);
+
+ Descriptive = tables[8];
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/FamilyEmblemConfig.cs.meta b/Main/Config/Configs/FamilyEmblemConfig.cs.meta
new file mode 100644
index 0000000..f4493ef
--- /dev/null
+++ b/Main/Config/Configs/FamilyEmblemConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 193d83e8986b6f94d920a13012975030
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/Configs/PlayerFacePicStarConfig.cs b/Main/Config/Configs/PlayerFacePicStarConfig.cs
deleted file mode 100644
index c4c58a0..0000000
--- a/Main/Config/Configs/PlayerFacePicStarConfig.cs
+++ /dev/null
@@ -1,74 +0,0 @@
-锘�//--------------------------------------------------------
-// [Author]: YYL
-// [ Date ]: 2025骞�5鏈�22鏃�
-//--------------------------------------------------------
-
-using System.Collections.Generic;
-using System.IO;
-using System.Threading;
-using System;
-using UnityEngine;
-using LitJson;
-
-public partial class PlayerFacePicStarConfig : ConfigBase<int, PlayerFacePicStarConfig>
-{
-
- public int index;
- public int FacePicID;
- public int FacePicStar;
- public int[][] StarUpNeedItemList;
- public int[] StarAttrType;
- public int[] StarAttrValue;
-
- public override int LoadKey(string _key)
- {
- int key = GetKey(_key);
- return key;
- }
-
- public override void LoadConfig(string input)
- {
- try {
- string[] tables = input.Split('\t');
- int.TryParse(tables[0],out index);
-
- int.TryParse(tables[1],out FacePicID);
-
- int.TryParse(tables[2],out FacePicStar);
-
- StarUpNeedItemList = JsonMapper.ToObject<int[][]>(tables[3].Replace("(", "[").Replace(")", "]"));
-
- if (tables[4].Contains("["))
- {
- StarAttrType = JsonMapper.ToObject<int[]>(tables[4]);
- }
- else
- {
- string[] StarAttrTypeStringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
- StarAttrType = new int[StarAttrTypeStringArray.Length];
- for (int i=0;i<StarAttrTypeStringArray.Length;i++)
- {
- int.TryParse(StarAttrTypeStringArray[i],out StarAttrType[i]);
- }
- }
-
- if (tables[5].Contains("["))
- {
- StarAttrValue = JsonMapper.ToObject<int[]>(tables[5]);
- }
- else
- {
- string[] StarAttrValueStringArray = tables[5].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
- StarAttrValue = new int[StarAttrValueStringArray.Length];
- for (int i=0;i<StarAttrValueStringArray.Length;i++)
- {
- int.TryParse(StarAttrValueStringArray[i],out StarAttrValue[i]);
- }
- }
- }
- catch (Exception exception)
- {
- Debug.LogError(exception);
- }
- }
-}
diff --git a/Main/Config/Configs/PlayerFacePicStarConfig.cs.meta b/Main/Config/Configs/PlayerFacePicStarConfig.cs.meta
deleted file mode 100644
index 36742e8..0000000
--- a/Main/Config/Configs/PlayerFacePicStarConfig.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 0c54dff18d881a14c8bd594ad7bc889b
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Main/Config/Configs/PlayerFaceStarConfig.cs b/Main/Config/Configs/PlayerFaceStarConfig.cs
deleted file mode 100644
index bb0dc76..0000000
--- a/Main/Config/Configs/PlayerFaceStarConfig.cs
+++ /dev/null
@@ -1,74 +0,0 @@
-锘�//--------------------------------------------------------
-// [Author]: YYL
-// [ Date ]: 2025骞�5鏈�22鏃�
-//--------------------------------------------------------
-
-using System.Collections.Generic;
-using System.IO;
-using System.Threading;
-using System;
-using UnityEngine;
-using LitJson;
-
-public partial class PlayerFaceStarConfig : ConfigBase<int, PlayerFaceStarConfig>
-{
-
- public int index;
- public int FaceID;
- public int FaceStar;
- public int[][] StarUpNeedItemList;
- public int[] StarAttrType;
- public int[] StarAttrValue;
-
- public override int LoadKey(string _key)
- {
- int key = GetKey(_key);
- return key;
- }
-
- public override void LoadConfig(string input)
- {
- try {
- string[] tables = input.Split('\t');
- int.TryParse(tables[0],out index);
-
- int.TryParse(tables[1],out FaceID);
-
- int.TryParse(tables[2],out FaceStar);
-
- StarUpNeedItemList = JsonMapper.ToObject<int[][]>(tables[3].Replace("(", "[").Replace(")", "]"));
-
- if (tables[4].Contains("["))
- {
- StarAttrType = JsonMapper.ToObject<int[]>(tables[4]);
- }
- else
- {
- string[] StarAttrTypeStringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
- StarAttrType = new int[StarAttrTypeStringArray.Length];
- for (int i=0;i<StarAttrTypeStringArray.Length;i++)
- {
- int.TryParse(StarAttrTypeStringArray[i],out StarAttrType[i]);
- }
- }
-
- if (tables[5].Contains("["))
- {
- StarAttrValue = JsonMapper.ToObject<int[]>(tables[5]);
- }
- else
- {
- string[] StarAttrValueStringArray = tables[5].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
- StarAttrValue = new int[StarAttrValueStringArray.Length];
- for (int i=0;i<StarAttrValueStringArray.Length;i++)
- {
- int.TryParse(StarAttrValueStringArray[i],out StarAttrValue[i]);
- }
- }
- }
- catch (Exception exception)
- {
- Debug.LogError(exception);
- }
- }
-}
diff --git a/Main/Config/Configs/PlayerFaceStarConfig.cs.meta b/Main/Config/Configs/PlayerFaceStarConfig.cs.meta
deleted file mode 100644
index 0324809..0000000
--- a/Main/Config/Configs/PlayerFaceStarConfig.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 2c1c3498f7ea21a4db39ffc6bf1c48d8
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Main/Config/Configs/PlayerPropertyConfig.cs b/Main/Config/Configs/PlayerPropertyConfig.cs
new file mode 100644
index 0000000..856601f
--- /dev/null
+++ b/Main/Config/Configs/PlayerPropertyConfig.cs
@@ -0,0 +1,62 @@
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: 2025骞�6鏈�17鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class PlayerPropertyConfig : ConfigBase<int, PlayerPropertyConfig>
+{
+
+ public int ID;
+ public string Name;
+ public string ShowName;
+ public int ISPercentage;
+ public int type;
+ public int decimalCount;
+ public int showType;
+ public int showSequence;
+ public string desc;
+ public string Parameter;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out ID);
+
+ Name = tables[1];
+
+ ShowName = tables[2];
+
+ int.TryParse(tables[3],out ISPercentage);
+
+ int.TryParse(tables[4],out type);
+
+ int.TryParse(tables[5],out decimalCount);
+
+ int.TryParse(tables[6],out showType);
+
+ int.TryParse(tables[7],out showSequence);
+
+ desc = tables[8];
+
+ Parameter = tables[9];
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/PlayerPropertyConfig.cs.meta b/Main/Config/Configs/PlayerPropertyConfig.cs.meta
new file mode 100644
index 0000000..d17edae
--- /dev/null
+++ b/Main/Config/Configs/PlayerPropertyConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 453d28b14c276df41bd363b2054a0477
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/Configs/TreasureCntAwardConfig.cs b/Main/Config/Configs/TreasureCntAwardConfig.cs
new file mode 100644
index 0000000..0f7912d
--- /dev/null
+++ b/Main/Config/Configs/TreasureCntAwardConfig.cs
@@ -0,0 +1,47 @@
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: 2025骞�6鏈�17鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class TreasureCntAwardConfig : ConfigBase<int, TreasureCntAwardConfig>
+{
+
+ public int ID;
+ public int TreasureType;
+ public int NeedTreasureCnt;
+ public int AwardIndex;
+ public int[][] AwardItemList;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out ID);
+
+ int.TryParse(tables[1],out TreasureType);
+
+ int.TryParse(tables[2],out NeedTreasureCnt);
+
+ int.TryParse(tables[3],out AwardIndex);
+
+ AwardItemList = JsonMapper.ToObject<int[][]>(tables[4].Replace("(", "[").Replace(")", "]"));
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/TreasureCntAwardConfig.cs.meta b/Main/Config/Configs/TreasureCntAwardConfig.cs.meta
new file mode 100644
index 0000000..4415b4d
--- /dev/null
+++ b/Main/Config/Configs/TreasureCntAwardConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 571161a2e6c006a4390fbde04e5986cf
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/Configs/TreasureItemLibConfig.cs b/Main/Config/Configs/TreasureItemLibConfig.cs
new file mode 100644
index 0000000..4d612b5
--- /dev/null
+++ b/Main/Config/Configs/TreasureItemLibConfig.cs
@@ -0,0 +1,41 @@
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: 2025骞�6鏈�17鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class TreasureItemLibConfig : ConfigBase<int, TreasureItemLibConfig>
+{
+
+ public int LibID;
+ public int ItemID;
+ public int ItemCount;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out LibID);
+
+ int.TryParse(tables[1],out ItemID);
+
+ int.TryParse(tables[2],out ItemCount);
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/TreasureItemLibConfig.cs.meta b/Main/Config/Configs/TreasureItemLibConfig.cs.meta
new file mode 100644
index 0000000..43dbc25
--- /dev/null
+++ b/Main/Config/Configs/TreasureItemLibConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 90292bb76558b9a4e87e7ef216522f46
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/Configs/TreasureSetConfig.cs b/Main/Config/Configs/TreasureSetConfig.cs
new file mode 100644
index 0000000..afdf86c
--- /dev/null
+++ b/Main/Config/Configs/TreasureSetConfig.cs
@@ -0,0 +1,119 @@
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: 2025骞�6鏈�17鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class TreasureSetConfig : ConfigBase<int, TreasureSetConfig>
+{
+
+ public int TreasureType;
+ public int PackType;
+ public int DailyMaxCount;
+ public int DailyFreeCount;
+ public int[] TreasureCountList;
+ public int CostItemID;
+ public int[] CostItemCountList;
+ public int CostMoneyType;
+ public int[] CostMoneyList;
+ public int EnsureCount;
+ public int OnceLucky;
+ public int FullLucky;
+ public int LuckyGridNum;
+ public string GridNumMaxLimitInfo;
+ public int AwardMoneyType;
+ public int AwardMoneyValue;
+ public string ProbabilityDisplay;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out TreasureType);
+
+ int.TryParse(tables[1],out PackType);
+
+ int.TryParse(tables[2],out DailyMaxCount);
+
+ int.TryParse(tables[3],out DailyFreeCount);
+
+ if (tables[4].Contains("["))
+ {
+ TreasureCountList = JsonMapper.ToObject<int[]>(tables[4]);
+ }
+ else
+ {
+ string[] TreasureCountListStringArray = tables[4].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ TreasureCountList = new int[TreasureCountListStringArray.Length];
+ for (int i=0;i<TreasureCountListStringArray.Length;i++)
+ {
+ int.TryParse(TreasureCountListStringArray[i],out TreasureCountList[i]);
+ }
+ }
+
+ int.TryParse(tables[5],out CostItemID);
+
+ if (tables[6].Contains("["))
+ {
+ CostItemCountList = JsonMapper.ToObject<int[]>(tables[6]);
+ }
+ else
+ {
+ string[] CostItemCountListStringArray = tables[6].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ CostItemCountList = new int[CostItemCountListStringArray.Length];
+ for (int i=0;i<CostItemCountListStringArray.Length;i++)
+ {
+ int.TryParse(CostItemCountListStringArray[i],out CostItemCountList[i]);
+ }
+ }
+
+ int.TryParse(tables[7],out CostMoneyType);
+
+ if (tables[8].Contains("["))
+ {
+ CostMoneyList = JsonMapper.ToObject<int[]>(tables[8]);
+ }
+ else
+ {
+ string[] CostMoneyListStringArray = tables[8].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
+ CostMoneyList = new int[CostMoneyListStringArray.Length];
+ for (int i=0;i<CostMoneyListStringArray.Length;i++)
+ {
+ int.TryParse(CostMoneyListStringArray[i],out CostMoneyList[i]);
+ }
+ }
+
+ int.TryParse(tables[9],out EnsureCount);
+
+ int.TryParse(tables[10],out OnceLucky);
+
+ int.TryParse(tables[11],out FullLucky);
+
+ int.TryParse(tables[12],out LuckyGridNum);
+
+ GridNumMaxLimitInfo = tables[13];
+
+ int.TryParse(tables[14],out AwardMoneyType);
+
+ int.TryParse(tables[15],out AwardMoneyValue);
+
+ ProbabilityDisplay = tables[16];
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/TreasureSetConfig.cs.meta b/Main/Config/Configs/TreasureSetConfig.cs.meta
new file mode 100644
index 0000000..e5a6a20
--- /dev/null
+++ b/Main/Config/Configs/TreasureSetConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6b9694e1e5e82f14b803352d470ba768
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/Configs/XBGetItemConfig.cs b/Main/Config/Configs/XBGetItemConfig.cs
new file mode 100644
index 0000000..5c947d4
--- /dev/null
+++ b/Main/Config/Configs/XBGetItemConfig.cs
@@ -0,0 +1,53 @@
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: 2025骞�6鏈�17鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class XBGetItemConfig : ConfigBase<int, XBGetItemConfig>
+{
+
+ public int ID;
+ public int TreasureType;
+ public int MinLV;
+ public string GridItemInfo;
+ public string GridLibInfo;
+ public string JobItemList;
+ public int[][] GridItemRateList1;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out ID);
+
+ int.TryParse(tables[1],out TreasureType);
+
+ int.TryParse(tables[2],out MinLV);
+
+ GridItemInfo = tables[3];
+
+ GridLibInfo = tables[4];
+
+ JobItemList = tables[5];
+
+ GridItemRateList1 = JsonMapper.ToObject<int[][]>(tables[6].Replace("(", "[").Replace(")", "]"));
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/XBGetItemConfig.cs.meta b/Main/Config/Configs/XBGetItemConfig.cs.meta
new file mode 100644
index 0000000..91f5b07
--- /dev/null
+++ b/Main/Config/Configs/XBGetItemConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a26f83764daa3744d8fac6faefefca9c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/PartialConfigs/DirtyNameConfig.cs b/Main/Config/PartialConfigs/DirtyNameConfig.cs
new file mode 100644
index 0000000..361927f
--- /dev/null
+++ b/Main/Config/PartialConfigs/DirtyNameConfig.cs
@@ -0,0 +1,199 @@
+using System;
+using System.Collections.Generic;
+using System.Text.RegularExpressions;
+using UnityEngine;
+using System.Threading;
+
+public partial class DirtyNameConfig : ConfigBase<int, DirtyNameConfig>
+{
+
+ private static WordGroup[] DIRTYWORLD = new WordGroup[(int)char.MaxValue];
+
+ private static List<string> memoryList = new List<string>();
+
+ private static bool dirtyNameInited = false;
+
+ static int cursor = 0;
+
+ static int wordlenght = 0;
+
+ static int nextCursor = 0;
+
+ protected override void OnConfigParseCompleted()
+ {
+ if (string.IsNullOrEmpty(word))
+ {
+ Debug.LogErrorFormat("灞忚斀鍚嶅瓧 id = {0} 鐨勫唴瀹逛负绌� 闇�瑕佷慨鏀�", id);
+ return;
+ }
+ string key = ToDBC(word);
+ memoryList.Add(key);
+ }
+
+ private static string ToDBC(string input)
+ {
+ char[] c = input.ToCharArray();
+ for (int i = 0; i < c.Length; i++)
+ {
+ if (c[i] == 12288)
+ {
+ c[i] = (char)32;
+ continue;
+ }
+ if (c[i] > 65280 && c[i] < 65375)
+ c[i] = (char)(c[i] - 65248);
+ }
+ return new string(c).ToLower();
+ }
+
+ public static bool IsDirtName(string source)
+ {
+ if (source != string.Empty)
+ {
+ cursor = 0;
+ nextCursor = 0;
+ for (int i = 0; i < source.Length; i++)
+ {
+ //鏌ヨ浠ヨ瀛椾负棣栧瓧绗︾殑璇嶇粍
+ WordGroup group = DIRTYWORLD[(int)ToDBC(source)[i]];
+ if (group != null)
+ {
+ for (int z = 0; z < group.Count(); z++)
+ {
+ string word = group.GetWord(z);
+ if (word.Length == 0 || Check(word, source))
+ {
+ return true;
+ }
+ }
+ }
+ cursor++;
+ }
+ }
+ return false;
+ }
+
+ private static bool Check(string blackWord, string source)
+ {
+ wordlenght = 0;
+ int wordCnt = 0;
+ //妫�娴嬫簮涓嬩竴浣嶆父鏍�
+ nextCursor = cursor + 1;
+ bool found = false;
+ //閬嶅巻璇嶇殑姣忎竴浣嶅仛鍖归厤
+ for (int i = 0; i < blackWord.Length; i++)
+ {
+ //鐗规畩瀛楃鍋忕Щ娓告爣
+ int offset = 0;
+ if (nextCursor >= source.Length)
+ {
+ break;
+ }
+ else
+ {
+ //妫�娴嬩笅浣嶅瓧绗﹀鏋滀笉鏄眽瀛� 鏁板瓧 瀛楃 鍋忕Щ閲忓姞1,,杩囨护鐗规畩瀛楃
+ for (int y = nextCursor; y < source.Length; y++)
+ {
+ //if (!IsCHS(source[y]) && !IsNum(source[y]) && !IsAlphabet(source[y])) {
+ if (IsSpecial(source[y]))
+ {
+ offset++;
+ //閬胯鐗规畩瀛楃锛屼笅浣嶆父鏍囧鏋�>=瀛楃涓查暱搴� 璺冲嚭
+ if (nextCursor + offset >= source.Length) break;
+ wordlenght++;
+
+ }
+ else break;
+ }
+ if (nextCursor + offset >= source.Length)
+ {
+ break;
+ }
+ if ((int)blackWord[i] == (int)source[nextCursor + offset])
+ {
+ wordCnt++;
+ found = true;
+ }
+ else
+ {
+ found = false;
+ break;
+ }
+ }
+ nextCursor = nextCursor + 1 + offset;
+ wordlenght++;
+ }
+ if (blackWord.Length != wordCnt) return false;
+ return found;
+ }
+
+ private static bool IsSpecial(char character)
+ {
+ if (character == ' ')
+ {
+ return true;
+ }
+ return false;
+ }
+
+ static public void DirtyNameInit()
+ {
+ if (dirtyNameInited)
+ {
+ return;
+ }
+
+ dirtyNameInited = true;
+
+ ThreadPool.QueueUserWorkItem((object aaa) =>
+ {
+ memoryList.Sort((string x, string y) =>
+ {
+ return x.CompareTo(y);
+ });
+ for (int i = memoryList.Count - 1; i > 0; i--)
+ {
+ if (memoryList[i].ToString() == memoryList[i - 1].ToString())
+ {
+ memoryList.RemoveAt(i);
+ }
+ }
+ foreach (string word in memoryList)
+ {
+ WordGroup group = DIRTYWORLD[(int)word[0]];
+ if (group == null)
+ {
+ group = new WordGroup();
+ DIRTYWORLD[(int)word[0]] = group;
+ }
+ group.Add(word.Substring(1));
+ }
+ });
+ }
+
+ public static bool IsCHS(char character)
+ {
+ // 涓枃琛ㄦ剰瀛楃鐨勮寖鍥� 4E00-9FA5
+ int charVal = (int)character;
+ return (charVal >= 0x4e00 && charVal <= 0x9fa5);
+ }
+
+ private static bool IsNum(char character)
+ {
+ int charVal = (int)character;
+ return (charVal >= 48 && charVal <= 57);
+ }
+
+ private static bool IsAlphabet(char character)
+ {
+ int charVal = (int)character;
+ return ((charVal >= 97 && charVal <= 122) || (charVal >= 65 && charVal <= 90));
+ }
+
+ private const string FACE_REPLACE = @"#~[0-9a-zA-Z]{1,3}";
+ private static Regex FaceRegex = new Regex(FACE_REPLACE, RegexOptions.Singleline);
+ public static string FitterSpecial(string source)
+ {
+ return FaceRegex.Replace(source, " ");
+ }
+}
diff --git a/Main/Config/PartialConfigs/DirtyNameConfig.cs.meta b/Main/Config/PartialConfigs/DirtyNameConfig.cs.meta
new file mode 100644
index 0000000..6575707
--- /dev/null
+++ b/Main/Config/PartialConfigs/DirtyNameConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 561f81832be9f9f499057d4f05b5f27c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/PartialConfigs/EquipGSParamConfig.cs b/Main/Config/PartialConfigs/EquipGSParamConfig.cs
new file mode 100644
index 0000000..bd48e95
--- /dev/null
+++ b/Main/Config/PartialConfigs/EquipGSParamConfig.cs
@@ -0,0 +1,81 @@
+锘縰sing System.Collections.Generic;
+
+public partial class EquipGSParamConfig : ConfigBase<int, EquipGSParamConfig>
+{
+ private static Dictionary<string, EquipGSParamConfig> s_tagGSModelDict = new Dictionary<string, EquipGSParamConfig>();//鐢ㄤ簬璁板綍瑁呭璇勫垎鏁版嵁
+ private static Dictionary<PropertyType, int> _tagGsProValueDict = new Dictionary<PropertyType, int>();
+
+ protected override void OnConfigParseCompleted()
+ {
+ string key = StringUtility.Contact(EquipClass, EquipColor, IsSuit, Star);
+ s_tagGSModelDict.Add(key, this);
+ }
+
+ public static EquipGSParamConfig GetGSModel(int lv, int color, int isSuit, int star)
+ {
+ string key = StringUtility.Contact(lv, color, isSuit, star);
+ EquipGSParamConfig gsModel = null;
+ s_tagGSModelDict.TryGetValue(key, out gsModel);
+ return gsModel;
+ }
+
+ public static Dictionary<PropertyType, int> GetTagGsProValueDict(int lv, int color, int isSuit, int star)
+ {
+ _tagGsProValueDict.Clear();
+ EquipGSParamConfig gsModel = GetGSModel(lv, color, isSuit, star);
+ if (gsModel == null)
+ return null;
+
+ _tagGsProValueDict.Add(PropertyType.CritHurtPercent, gsModel.SuperHitPerC);
+ _tagGsProValueDict.Add(PropertyType.HeartHit, gsModel.LuckyHitRateC);
+ _tagGsProValueDict.Add(PropertyType.EveryLvAddAtk, gsModel.PerLVAtkC);
+ _tagGsProValueDict.Add(PropertyType.EveryLvAddHp, gsModel.PerLVMaxHPC);
+ _tagGsProValueDict.Add(PropertyType.AddCoinsPrecent, gsModel.DropMoneyPerC);
+ _tagGsProValueDict.Add(PropertyType.CritResis, gsModel.SuperHitReduceC);
+ _tagGsProValueDict.Add(PropertyType.HIT, gsModel.HitC);
+ _tagGsProValueDict.Add(PropertyType.MISS, gsModel.MissC);
+ _tagGsProValueDict.Add(PropertyType.LuckPer, gsModel.LuckPerC);
+ _tagGsProValueDict.Add(PropertyType.WeaponAtkPer, gsModel.BaseEquipAtkAddPerC);
+ _tagGsProValueDict.Add(PropertyType.ArmorMaxHPPer, gsModel.BaseEquipMaxHPAddPerC);
+ _tagGsProValueDict.Add(PropertyType.HeartResis, gsModel.LuckyHitRateReduceC);
+ _tagGsProValueDict.Add(PropertyType.CritHurt, gsModel.SuperHitC);
+ _tagGsProValueDict.Add(PropertyType.PetAddHurt, gsModel.PetDamPerC);
+ _tagGsProValueDict.Add(PropertyType.ReduceCrit, gsModel.SuperHitRateReduceC);
+
+ _tagGsProValueDict.Add(PropertyType.HpPercent, gsModel.MaxHPPerC);
+ _tagGsProValueDict.Add(PropertyType.AtkPercent, gsModel.AtkPerC);
+ _tagGsProValueDict.Add(PropertyType.SkillHurt, gsModel.SkillAtkRateC);
+ _tagGsProValueDict.Add(PropertyType.ReduceSkillHurtPercent, gsModel.SkillAtkRateReduceC);
+
+ _tagGsProValueDict.Add(PropertyType.SkillAddPerA, gsModel.SkillAddPerAC);
+ _tagGsProValueDict.Add(PropertyType.SkillAddPerB, gsModel.SkillAddPerBC);
+ _tagGsProValueDict.Add(PropertyType.SkillAddPerC, gsModel.SkillAddPerCC);
+ _tagGsProValueDict.Add(PropertyType.SkillAddPerD, gsModel.SkillAddPerDC);
+ _tagGsProValueDict.Add(PropertyType.SkillAddPerE, gsModel.SkillAddPerEC);
+ _tagGsProValueDict.Add(PropertyType.SkillAddPerF, gsModel.SkillAddPerFC);
+ _tagGsProValueDict.Add(PropertyType.SkillAddPerG, gsModel.SkillAddPerGC);
+ _tagGsProValueDict.Add(PropertyType.SkillReducePerA, gsModel.SkillReducePerAC);
+ _tagGsProValueDict.Add(PropertyType.SkillReducePerB, gsModel.SkillReducePerBC);
+ _tagGsProValueDict.Add(PropertyType.SkillReducePerC, gsModel.SkillReducePerCC);
+ _tagGsProValueDict.Add(PropertyType.SkillReducePerD, gsModel.SkillReducePerDC);
+ _tagGsProValueDict.Add(PropertyType.SkillReducePerE, gsModel.SkillReducePerEC);
+ _tagGsProValueDict.Add(PropertyType.SkillReducePerF, gsModel.SkillReducePerFC);
+ _tagGsProValueDict.Add(PropertyType.SkillReducePerG, gsModel.SkillReducePerGC);
+ _tagGsProValueDict.Add(PropertyType.ReduceSkillCDPer, gsModel.ReduceSkillCDPerC);
+ _tagGsProValueDict.Add(PropertyType.AddHeartHurtPer, gsModel.LuckyHitPerC);
+ _tagGsProValueDict.Add(PropertyType.CtrlResis, gsModel.FaintDefRateC);
+ _tagGsProValueDict.Add(PropertyType.CritChance, gsModel.SuperHitRateC);
+
+ _tagGsProValueDict.Add(PropertyType.DefyDef, gsModel.IgnoreDefRateC);
+ _tagGsProValueDict.Add(PropertyType.DefyDefResis, gsModel.IgnoreDefRateReduceC);
+ _tagGsProValueDict.Add(PropertyType.ProDefHPPer, gsModel.ProDefPerC);
+ _tagGsProValueDict.Add(PropertyType.AddFinalHurtPer, gsModel.FinalHurtPerC);
+ _tagGsProValueDict.Add(PropertyType.ReduceFinalHurtPer, gsModel.FinalHurtReducePerC);
+
+
+
+ return _tagGsProValueDict;
+ }
+}
+
+
diff --git a/Main/Config/PartialConfigs/EquipGSParamConfig.cs.meta b/Main/Config/PartialConfigs/EquipGSParamConfig.cs.meta
new file mode 100644
index 0000000..f4478c8
--- /dev/null
+++ b/Main/Config/PartialConfigs/EquipGSParamConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2dd2a25da7cc3f8468c1237a08cff49f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/PartialConfigs/EquipPlaceMapConfig.cs b/Main/Config/PartialConfigs/EquipPlaceMapConfig.cs
new file mode 100644
index 0000000..2bbd47e
--- /dev/null
+++ b/Main/Config/PartialConfigs/EquipPlaceMapConfig.cs
@@ -0,0 +1,26 @@
+using System.Collections.Generic;
+using UnityEngine;
+using LitJson;
+
+public partial class EquipPlaceMapConfig : ConfigBase<int, EquipPlaceMapConfig>
+{
+ static Dictionary<int, int> clientPlaceToServerPlace = new Dictionary<int, int>();
+
+ protected override void OnConfigParseCompleted()
+ {
+ clientPlaceToServerPlace[LV * 100 + EquipPlace] = PackIndex;
+ }
+
+ public static int GetServerPlace(int level, int equipPlace)
+ {
+ var key = level * 100 + equipPlace;
+ if (clientPlaceToServerPlace.ContainsKey(key))
+ {
+ return clientPlaceToServerPlace[key];
+ }
+ else
+ {
+ return 0;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Main/Config/PartialConfigs/EquipPlaceMapConfig.cs.meta b/Main/Config/PartialConfigs/EquipPlaceMapConfig.cs.meta
new file mode 100644
index 0000000..76f99a3
--- /dev/null
+++ b/Main/Config/PartialConfigs/EquipPlaceMapConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d1c0c8007bcb91343b4581382b97c181
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/PartialConfigs/FaceConfig.cs b/Main/Config/PartialConfigs/FaceConfig.cs
new file mode 100644
index 0000000..eb839fb
--- /dev/null
+++ b/Main/Config/PartialConfigs/FaceConfig.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Text.RegularExpressions;
+using UnityEngine;
+using System.Threading;
+
+public partial class FaceConfig : ConfigBase<string, FaceConfig>
+{
+ //<琛ㄦ儏鍖匢D,List<Name>>
+ private static Dictionary<int, List<string>> resultDict = new Dictionary<int, List<string>>();
+
+ protected override void OnConfigParseCompleted()
+ {
+ if (frameType == 1)
+ {
+ if (!resultDict.ContainsKey(EmojiPackID))
+ {
+ resultDict[EmojiPackID] = new List<string>();
+ }
+ resultDict[EmojiPackID].Add(name);
+ }
+ }
+
+ public static Dictionary<int, List<string>> GetEmojiPackList()
+ {
+ return resultDict;
+ }
+}
diff --git a/Main/Config/PartialConfigs/FaceConfig.cs.meta b/Main/Config/PartialConfigs/FaceConfig.cs.meta
new file mode 100644
index 0000000..6424954
--- /dev/null
+++ b/Main/Config/PartialConfigs/FaceConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: afdf4592a038af24e9257dc039e0d9a6
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Config/PartialConfigs/PlayerPropertyConfig.cs b/Main/Config/PartialConfigs/PlayerPropertyConfig.cs
new file mode 100644
index 0000000..4ea1bcb
--- /dev/null
+++ b/Main/Config/PartialConfigs/PlayerPropertyConfig.cs
@@ -0,0 +1,141 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text.RegularExpressions;
+
+public partial class PlayerPropertyConfig : ConfigBase<int, PlayerPropertyConfig>
+{
+ private static Dictionary<int, List<PlayerPropertyConfig>> m_PropCfgs = new Dictionary<int, List<PlayerPropertyConfig>>();
+ private static Dictionary<int, List<int>> outputDict = new Dictionary<int, List<int>>();
+
+ protected override void OnConfigParseCompleted()
+ {
+ List<PlayerPropertyConfig> list = null;
+ m_PropCfgs.TryGetValue(type, out list);
+ if (list != null)
+ {
+ list.Add(this);
+ }
+ else
+ {
+ list = new List<PlayerPropertyConfig>();
+ list.Add(this);
+ m_PropCfgs.Add(type, list);
+ }
+ }
+ public static Dictionary<int, List<int>> GetShowDict()
+ {
+ if (outputDict.IsNullOrEmpty())
+ {
+ var keys = GetKeys();
+ for (int i = 0; i < keys.Count; i++)
+ {
+ int id = keys[i];
+ int showType = Get(id).showType;
+ if (showType == 0) //涓�0鏃朵笉鏄剧ず
+ continue;
+ if (!outputDict.ContainsKey(showType))
+ {
+ outputDict[showType] = new List<int> { id };
+ }
+ else
+ {
+ outputDict[showType].Add(id);
+ }
+ }
+ var outputList = outputDict.Keys.ToList();
+ for (int i = 0; i < outputList.Count; i++)
+ {
+ int showType = outputList[i];
+ outputDict[showType].Sort(cmp);
+ }
+ }
+ return outputDict;
+ }
+
+ static int cmp(int id1, int id2)
+ {
+ var config1 = Get(id1);
+ var config2 = Get(id2);
+
+ return config1.showSequence.CompareTo(config2.showSequence);
+ }
+
+ public static List<PlayerPropertyConfig> GetPropByType(int type)
+ {
+ List<PlayerPropertyConfig> list = null;
+ m_PropCfgs.TryGetValue(type, out list);
+ return list;
+ }
+
+
+ public static string GetFullDescription(Int2 property)
+ {
+ return GetFullDescription(property.x, property.y);
+ }
+
+ public static string GetFullDescription(int id, long value)
+ {
+ var config = Get(id);
+ if (config == null)
+ {
+ return string.Empty;
+ }
+
+ if (config.Name.Contains("%s"))
+ {
+ if (id == 52)
+ {
+ return Regex.Replace(config.Name, "%s", (value * 0.0001f).ToString("f2"));
+ }
+ else
+ {
+ return Regex.Replace(config.Name, "%s", value.ToString());
+ }
+ }
+ else
+ {
+ return string.Format("{0} +{1}", config.Name, GetValueDescription(id, value));
+ }
+ }
+
+ public static string GetValueDescription(int id, long value)
+ {
+ return GetValueDescription(id, value, false);
+ }
+
+ public static string GetValueDescription(int id, long value, bool largeValue)
+ {
+ var config = Get(id);
+ if (config == null)
+ {
+ return string.Empty;
+ }
+
+ double result = 0f;
+ if (config.ISPercentage == 0)
+ {
+ result = value;
+ }
+ else if (config.ISPercentage == 1)
+ {
+ result = (double)Math.Round(value / 100f, config.decimalCount);
+ }
+ else if (config.ISPercentage == 2)
+ {
+ result = (double)Math.Round(value / 100f, config.decimalCount);
+ }
+
+ var label = string.Empty;
+ if (largeValue)
+ {
+ label = UIHelper.ReplaceLargeNum(result);
+ }
+ else
+ {
+ label = result.ToString();
+ }
+
+ return config.ISPercentage == 1 ? (label + "%") : label;
+ }
+}
diff --git a/Main/Config/PartialConfigs/PlayerPropertyConfig.cs.meta b/Main/Config/PartialConfigs/PlayerPropertyConfig.cs.meta
new file mode 100644
index 0000000..c37bc1d
--- /dev/null
+++ b/Main/Config/PartialConfigs/PlayerPropertyConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6ec99567b14eb034bb1ffffc2203669b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/GameEngine/Player/PlayerDatas.cs b/Main/Core/GameEngine/Player/PlayerDatas.cs
index 34bb5ac..f20f80e 100644
--- a/Main/Core/GameEngine/Player/PlayerDatas.cs
+++ b/Main/Core/GameEngine/Player/PlayerDatas.cs
@@ -14,7 +14,8 @@
PlayerExtersionData m_Extersion = new PlayerExtersionData();
public PlayerExtersionData extersion { get { return m_Extersion; } }
- // public PlayerFairyData fairyData = new PlayerFairyData();
+ //浠欑洘
+ public PlayerFairyData fairyData = new PlayerFairyData();
// PlayerSkillDatas m_Skill = new PlayerSkillDatas();
// public PlayerSkillDatas skill { get { return m_Skill; } }
@@ -40,11 +41,11 @@
private Dictionary<PlayerDataType, ulong> PlayerDataDict = new Dictionary<PlayerDataType, ulong>();
public void InitPlayerData(H0102_tagCDBPlayer data)
- {
- baseData.UpdateData(data);
- if (playerDataUpdateEvent != null)
- {
- playerDataUpdateEvent();
+ {
+ baseData.UpdateData(data);
+ if (playerDataUpdateEvent != null)
+ {
+ playerDataUpdateEvent();
}
}
@@ -79,35 +80,35 @@
}
public void RefreshPlayerData(H0418_tagObjInfoRefresh vNetData)
- {
- UpdatePlayerData(vNetData);
- //StoreModel.RefreshTCBPlayerData(vNetData);
- if (playerDataUpdateEvent != null)
- {
- playerDataUpdateEvent();
+ {
+ UpdatePlayerData(vNetData);
+ //StoreModel.RefreshTCBPlayerData(vNetData);
+ if (playerDataUpdateEvent != null)
+ {
+ playerDataUpdateEvent();
}
}
private void UpdatePlayerData(H0418_tagObjInfoRefresh vNetData)
- {
- if (baseData != null && vNetData.ObjID == baseData.PlayerID)
- {
- RefreshProperty((PlayerDataType)vNetData.RefreshType, vNetData.Value, vNetData.ValueEx);
-
- if (PlayerDataDict.ContainsKey((PlayerDataType)vNetData.RefreshType))
- {
- PlayerDataDict[(PlayerDataType)vNetData.RefreshType] = vNetData.Value + vNetData.ValueEx * Constants.ExpPointValue;
- }
- else
- {
- PlayerDataDict.Add((PlayerDataType)vNetData.RefreshType, vNetData.Value + vNetData.ValueEx * Constants.ExpPointValue);
- }
-
- if (playerDataRefreshEvent != null)
- {
- playerDataRefreshEvent((PlayerDataType)vNetData.RefreshType);
- }
+ {
+ if (baseData != null && vNetData.ObjID == baseData.PlayerID)
+ {
+ RefreshProperty((PlayerDataType)vNetData.RefreshType, vNetData.Value, vNetData.ValueEx);
+
+ if (PlayerDataDict.ContainsKey((PlayerDataType)vNetData.RefreshType))
+ {
+ PlayerDataDict[(PlayerDataType)vNetData.RefreshType] = vNetData.Value + vNetData.ValueEx * Constants.ExpPointValue;
+ }
+ else
+ {
+ PlayerDataDict.Add((PlayerDataType)vNetData.RefreshType, vNetData.Value + vNetData.ValueEx * Constants.ExpPointValue);
+ }
+
+ if (playerDataRefreshEvent != null)
+ {
+ playerDataRefreshEvent((PlayerDataType)vNetData.RefreshType);
+ }
}
}
@@ -239,16 +240,16 @@
break;
case PlayerDataType.Tick:
#if UNITY_EDITOR
- Debug.LogFormat("---- 鏀跺埌鏈嶅姟绔疶ick: {0}", value);
- if (extersion.Tick != 0)
- {
- uint _curWorldTick = GetWorldTick();
- uint _diffValue = value > _curWorldTick ? value - _curWorldTick : _curWorldTick - value;
- Debug.LogFormat(" |-------- 褰撳墠瀹㈡埛绔疶ick: {0}, 宸紓: {1}", _curWorldTick, _diffValue);
- if (_diffValue > 5000)
- {
- Debug.LogFormat(" |-------- <color=red>鏀跺埌鏈嶅姟绔疻orldTick涓庡綋鍓嶇殑瀹㈡埛绔疶ick宸紓瓒呰繃5绉�</color>");
- }
+ Debug.LogFormat("---- 鏀跺埌鏈嶅姟绔疶ick: {0}", value);
+ if (extersion.Tick != 0)
+ {
+ uint _curWorldTick = GetWorldTick();
+ uint _diffValue = value > _curWorldTick ? value - _curWorldTick : _curWorldTick - value;
+ Debug.LogFormat(" |-------- 褰撳墠瀹㈡埛绔疶ick: {0}, 宸紓: {1}", _curWorldTick, _diffValue);
+ if (_diffValue > 5000)
+ {
+ Debug.LogFormat(" |-------- <color=red>鏀跺埌鏈嶅姟绔疻orldTick涓庡綋鍓嶇殑瀹㈡埛绔疶ick宸紓瓒呰繃5绉�</color>");
+ }
}
#endif
extersion.Tick = value;
@@ -637,8 +638,8 @@
}
public void RequestWorldTick()
- {
- CA102_tagCMWorldTick _proto = new CA102_tagCMWorldTick();
+ {
+ CA102_tagCMWorldTick _proto = new CA102_tagCMWorldTick();
GameNetSystem.Instance.SendInfo(_proto);
}
diff --git a/Main/Core/NetworkPackage/ClientPack/C0F_Family.meta b/Main/Core/NetworkPackage/ClientPack/C0F_Family.meta
new file mode 100644
index 0000000..0a3d6aa
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/C0F_Family.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b925e834e02741a4295b3de53fe23835
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ClientPack/C0F_Family/C0F07_tagCGetFamilyInfo.cs b/Main/Core/NetworkPackage/ClientPack/C0F_Family/C0F07_tagCGetFamilyInfo.cs
new file mode 100644
index 0000000..4bf3b40
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/C0F_Family/C0F07_tagCGetFamilyInfo.cs
@@ -0,0 +1,17 @@
+using UnityEngine;
+using System.Collections;
+
+//0F 07 璇锋眰瀹舵棌鎴愬憳鍒楄〃#tagCGetFamilyInfo
+
+public class C0F07_tagCGetFamilyInfo : GameNetPackBasic {
+ public byte Type;
+
+ public C0F07_tagCGetFamilyInfo () {
+ _cmd = (ushort)0x0F07;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (Type, NetDataType.BYTE);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/C0F_Family/C0F07_tagCGetFamilyInfo.cs.meta b/Main/Core/NetworkPackage/ClientPack/C0F_Family/C0F07_tagCGetFamilyInfo.cs.meta
new file mode 100644
index 0000000..fefc1b4
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/C0F_Family/C0F07_tagCGetFamilyInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 519299938c0f4354ca90af1c7fa6584d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ClientPack/C0F_Family/C0F09_tagCDeleteFamilyMember.cs b/Main/Core/NetworkPackage/ClientPack/C0F_Family/C0F09_tagCDeleteFamilyMember.cs
new file mode 100644
index 0000000..b5effd7
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/C0F_Family/C0F09_tagCDeleteFamilyMember.cs
@@ -0,0 +1,17 @@
+using UnityEngine;
+using System.Collections;
+
+//0F 09 鍒犻櫎瀹舵棌鎴愬憳#tagCDeleteFamilyMember
+
+public class C0F09_tagCDeleteFamilyMember : GameNetPackBasic {
+ public uint MemberID;
+
+ public C0F09_tagCDeleteFamilyMember () {
+ _cmd = (ushort)0x0F09;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (MemberID, NetDataType.DWORD);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/C0F_Family/C0F09_tagCDeleteFamilyMember.cs.meta b/Main/Core/NetworkPackage/ClientPack/C0F_Family/C0F09_tagCDeleteFamilyMember.cs.meta
new file mode 100644
index 0000000..4a30dfe
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/C0F_Family/C0F09_tagCDeleteFamilyMember.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9dd10e31f4bed53489fbc74351a3aeac
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ClientPack/CA2_Interaction/CA230_tagCMSetChatBubbleBox.cs b/Main/Core/NetworkPackage/ClientPack/CA2_Interaction/CA230_tagCMSetChatBubbleBox.cs
index 1f13e87..099b347 100644
--- a/Main/Core/NetworkPackage/ClientPack/CA2_Interaction/CA230_tagCMSetChatBubbleBox.cs
+++ b/Main/Core/NetworkPackage/ClientPack/CA2_Interaction/CA230_tagCMSetChatBubbleBox.cs
@@ -1,18 +1,18 @@
using UnityEngine;
using System.Collections;
-// A2 30 设置聊天气泡框 #tagCMSetChatBubbleBox
-
-public class CA230_tagCMSetChatBubbleBox : GameNetPackBasic {
- public byte BubbleBoxType; //气泡框类型
-
- public CA230_tagCMSetChatBubbleBox () {
- combineCmd = (ushort)0x03FE;
- _cmd = (ushort)0xA230;
- }
-
- public override void WriteToBytes () {
- WriteBytes (BubbleBoxType, NetDataType.BYTE);
- }
-
-}
+// A2 30 璁剧疆鑱婂ぉ姘旀场妗� #tagCMSetChatBubbleBox
+
+public class CA230_tagCMSetChatBubbleBox : GameNetPackBasic {
+ public byte BubbleBoxType; //姘旀场妗嗙被鍨�
+
+ public CA230_tagCMSetChatBubbleBox () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xA230;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (BubbleBoxType, NetDataType.BYTE);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/CA2_Interaction/CA236_tagCMChatBubbleBoxStarUP.cs b/Main/Core/NetworkPackage/ClientPack/CA2_Interaction/CA236_tagCMChatBubbleBoxStarUP.cs
deleted file mode 100644
index b586767..0000000
--- a/Main/Core/NetworkPackage/ClientPack/CA2_Interaction/CA236_tagCMChatBubbleBoxStarUP.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using UnityEngine;
-using System.Collections;
-
-// A2 36 鑱婂ぉ姘旀场妗嗗崌鏄� #tagCMChatBubbleBoxStarUP
-
-public class CA236_tagCMChatBubbleBoxStarUP : GameNetPackBasic {
- public byte BoxID; //姘旀场ID
-
- public CA236_tagCMChatBubbleBoxStarUP () {
- combineCmd = (ushort)0x03FE;
- _cmd = (ushort)0xA236;
- }
-
- public override void WriteToBytes () {
- WriteBytes (BoxID, NetDataType.BYTE);
- }
-
-}
diff --git a/Main/Core/NetworkPackage/ClientPack/CA2_Interaction/CA236_tagCMChatBubbleBoxStarUP.cs.meta b/Main/Core/NetworkPackage/ClientPack/CA2_Interaction/CA236_tagCMChatBubbleBoxStarUP.cs.meta
deleted file mode 100644
index beac235..0000000
--- a/Main/Core/NetworkPackage/ClientPack/CA2_Interaction/CA236_tagCMChatBubbleBoxStarUP.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: cfc606a6bfea0af4bbd3563512f33410
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ClientPack/CA3_Item/CA310_tagCMBuyItem.cs b/Main/Core/NetworkPackage/ClientPack/CA3_Item/CA310_tagCMBuyItem.cs
new file mode 100644
index 0000000..0590a8e
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA3_Item/CA310_tagCMBuyItem.cs
@@ -0,0 +1,20 @@
+using UnityEngine;
+using System.Collections;
+
+// A3 10 璐拱鍟嗗煄鐗╁搧 #tagCMBuyItem
+
+public class CA310_tagCMBuyItem : GameNetPackBasic {
+ public ushort BuyItemIndex; //璐拱鐨勭墿鍝佺储寮�
+ public uint BuyCount; //璐拱鏁伴噺
+
+ public CA310_tagCMBuyItem () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xA310;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (BuyItemIndex, NetDataType.WORD);
+ WriteBytes (BuyCount, NetDataType.DWORD);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/CA3_Item/CA310_tagCMBuyItem.cs.meta b/Main/Core/NetworkPackage/ClientPack/CA3_Item/CA310_tagCMBuyItem.cs.meta
new file mode 100644
index 0000000..8e8cbf7
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA3_Item/CA310_tagCMBuyItem.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 164792ae07cbd5445aeb4d834ed6f3a2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ClientPack/CA3_Item/CA323_tagCMUseItems.cs b/Main/Core/NetworkPackage/ClientPack/CA3_Item/CA323_tagCMUseItems.cs
new file mode 100644
index 0000000..b39aa7e
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA3_Item/CA323_tagCMUseItems.cs
@@ -0,0 +1,34 @@
+using UnityEngine;
+using System.Collections;
+
+// A3 23 浣跨敤鐗╁搧 #tagCMUseItems
+
+public class CA323_tagCMUseItems : GameNetPackBasic {
+ public byte ItemIndex; //鐗╁搧鍦ㄨ儗鍖呬腑绱㈠紩
+ public ushort UseCnt; //浣跨敤涓暟锛�0琛ㄧず鍏ㄩ儴浣跨敤
+ public uint ExData; //浣跨敤鎵╁睍鍊�, 榛樿0, 閫夋嫨鐗╁搧瀹濈鏃跺彂閫侀�夋嫨鐨勭墿鍝両D
+ public byte SelectCount; //鎸囧畾閫夋嫨椤癸紝褰撴壒閲忎娇鐢ㄥ崟涓瀛愰渶瑕佸悓鏃堕�変腑澶氱閫夐」鏃朵娇鐢ㄨ鍊�
+ public tagCMUseItemsSelect[] SelectList;
+
+ public CA323_tagCMUseItems () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xA323;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (ItemIndex, NetDataType.BYTE);
+ WriteBytes (UseCnt, NetDataType.WORD);
+ WriteBytes (ExData, NetDataType.DWORD);
+ WriteBytes (SelectCount, NetDataType.BYTE);
+ for (int i = 0; i < SelectCount; i ++) {
+ WriteBytes (SelectList[i].SelectID, NetDataType.DWORD);
+ WriteBytes (SelectList[i].SelectCnt, NetDataType.WORD);
+ }
+ }
+
+ public struct tagCMUseItemsSelect {
+ public uint SelectID; //閫夋嫨椤笽D
+ public ushort SelectCnt; //閫夋嫨鏁�
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/CA3_Item/CA323_tagCMUseItems.cs.meta b/Main/Core/NetworkPackage/ClientPack/CA3_Item/CA323_tagCMUseItems.cs.meta
new file mode 100644
index 0000000..cfb05c5
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA3_Item/CA323_tagCMUseItems.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f7cabbfd76e753a42a624faac38591f4
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ClientPack/CA4_Family.meta b/Main/Core/NetworkPackage/ClientPack/CA4_Family.meta
new file mode 100644
index 0000000..3db4eba
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA4_Family.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2b21c54aeec142641aa836a23fc11a01
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA401_tagCGViewFamilyPage.cs b/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA401_tagCGViewFamilyPage.cs
new file mode 100644
index 0000000..7bd6294
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA401_tagCGViewFamilyPage.cs
@@ -0,0 +1,24 @@
+using UnityEngine;
+using System.Collections;
+
+//A4 01 鏌ョ湅瀹舵棌绗琋椤�#tagCGViewFamilyPage
+
+public class CA401_tagCGViewFamilyPage : GameNetPackBasic {
+ public ushort PageIndex; //鏌ヨ椤垫暟
+ public byte ShowCount; //姣忛〉鏄剧ず鏁伴噺
+ public byte SortRulex; //鎺掑簭瑙勫垯
+ public byte ViewType; //鏌ョ湅绫诲瀷
+
+ public CA401_tagCGViewFamilyPage () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xA401;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (PageIndex, NetDataType.WORD);
+ WriteBytes (ShowCount, NetDataType.BYTE);
+ WriteBytes (SortRulex, NetDataType.BYTE);
+ WriteBytes (ViewType, NetDataType.BYTE);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA401_tagCGViewFamilyPage.cs.meta b/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA401_tagCGViewFamilyPage.cs.meta
new file mode 100644
index 0000000..1f8dab5
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA401_tagCGViewFamilyPage.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7ed0be7b6caa4414e9e6013625eadca3
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA408_tagCGQueryFamilyAction.cs b/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA408_tagCGQueryFamilyAction.cs
new file mode 100644
index 0000000..f97e4a5
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA408_tagCGQueryFamilyAction.cs
@@ -0,0 +1,20 @@
+using UnityEngine;
+using System.Collections;
+
+// A4 08 鏌ヨ瀹舵棌琛屼负淇℃伅 #tagCGQueryFamilyAction
+
+public class CA408_tagCGQueryFamilyAction : GameNetPackBasic {
+ public byte ActionType; // 琛屼负绫诲瀷
+ public uint FamilyID; // 瀹舵棌ID
+
+ public CA408_tagCGQueryFamilyAction () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xA408;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (ActionType, NetDataType.BYTE);
+ WriteBytes (FamilyID, NetDataType.DWORD);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA408_tagCGQueryFamilyAction.cs.meta b/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA408_tagCGQueryFamilyAction.cs.meta
new file mode 100644
index 0000000..de2bef8
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA408_tagCGQueryFamilyAction.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7de8804e1b0e993469f4b97a1edee59c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA413_tagCGChangeFamilyEmblem.cs b/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA413_tagCGChangeFamilyEmblem.cs
new file mode 100644
index 0000000..d02e0f5
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA413_tagCGChangeFamilyEmblem.cs
@@ -0,0 +1,18 @@
+using UnityEngine;
+using System.Collections;
+
+// A4 13 淇敼瀹舵棌寰界珷 #tagCGChangeFamilyEmblem
+
+public class CA413_tagCGChangeFamilyEmblem : GameNetPackBasic {
+ public byte EmblemID; // 鏇存崲鐨勫窘绔營D
+
+ public CA413_tagCGChangeFamilyEmblem () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xA413;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (EmblemID, NetDataType.BYTE);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA413_tagCGChangeFamilyEmblem.cs.meta b/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA413_tagCGChangeFamilyEmblem.cs.meta
new file mode 100644
index 0000000..acf902c
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA4_Family/CA413_tagCGChangeFamilyEmblem.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 44870dc02eafc9743bd91242794fa52d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ClientPack/CA5_Function/CA568_tagCMRequestTreasure.cs b/Main/Core/NetworkPackage/ClientPack/CA5_Function/CA568_tagCMRequestTreasure.cs
new file mode 100644
index 0000000..6eb3c88
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA5_Function/CA568_tagCMRequestTreasure.cs
@@ -0,0 +1,22 @@
+using UnityEngine;
+using System.Collections;
+
+// A5 68 璇锋眰瀵诲疂 #tagCMRequestTreasure
+
+public class CA568_tagCMRequestTreasure : GameNetPackBasic {
+ public byte TreasureType; //瀵诲疂绫诲瀷
+ public byte TreasureIndex; //瀵诲疂绱㈠紩
+ public byte CostType; //娑堣�楃被鍨嬶細0-榛樿浠欑帀锛�1-鍏嶈垂娆℃暟锛�2-瀵诲疂閬撳叿
+
+ public CA568_tagCMRequestTreasure () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xA568;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (TreasureType, NetDataType.BYTE);
+ WriteBytes (TreasureIndex, NetDataType.BYTE);
+ WriteBytes (CostType, NetDataType.BYTE);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/CA5_Function/CA568_tagCMRequestTreasure.cs.meta b/Main/Core/NetworkPackage/ClientPack/CA5_Function/CA568_tagCMRequestTreasure.cs.meta
new file mode 100644
index 0000000..7695880
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA5_Function/CA568_tagCMRequestTreasure.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4c03c34aa3e88af4fb69a93dfa85b061
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ClientPack/CA6_Family.meta b/Main/Core/NetworkPackage/ClientPack/CA6_Family.meta
new file mode 100644
index 0000000..8fa8f59
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA6_Family.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c0c49911c55b96046b71ac45b72f13a2
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA602_tagCMRequesJoinFamily.cs b/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA602_tagCMRequesJoinFamily.cs
new file mode 100644
index 0000000..9efa288
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA602_tagCMRequesJoinFamily.cs
@@ -0,0 +1,20 @@
+using UnityEngine;
+using System.Collections;
+
+// A6 02 鐢宠鍔犲叆瀹舵棌#tagCMRequesJoinFamily
+
+public class CA602_tagCMRequesJoinFamily : GameNetPackBasic {
+ public byte Type; //鐢宠绫诲瀷锛�0-鐢宠锛�1-鎾ら攢
+ public uint TagFamilyID; //鐩爣瀹舵棌ID锛岀敵璇锋椂涓�0浠h〃涓�閿敵璇峰鏃忎换鎰忓鏃�
+
+ public CA602_tagCMRequesJoinFamily () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xA602;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (Type, NetDataType.BYTE);
+ WriteBytes (TagFamilyID, NetDataType.DWORD);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA602_tagCMRequesJoinFamily.cs.meta b/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA602_tagCMRequesJoinFamily.cs.meta
new file mode 100644
index 0000000..ace0c33
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA602_tagCMRequesJoinFamily.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b823d5814c32e6e4a85e26eeec0faa7d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA611_tagCMRenameFamily.cs b/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA611_tagCMRenameFamily.cs
new file mode 100644
index 0000000..8b5b1eb
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA611_tagCMRenameFamily.cs
@@ -0,0 +1,22 @@
+using UnityEngine;
+using System.Collections;
+
+// A6 11 瀹舵棌鏀瑰悕 #tagCMRenameFamily
+
+public class CA611_tagCMRenameFamily : GameNetPackBasic {
+ public byte NewNameLen;
+ public string NewName;
+ public byte ItemIndex; //鏀瑰悕鐗╁搧鍦ㄨ儗鍖呬腑鐨勪綅缃�
+
+ public CA611_tagCMRenameFamily () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xA611;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (NewNameLen, NetDataType.BYTE);
+ WriteBytes (NewName, NetDataType.Chars, NewNameLen);
+ WriteBytes (ItemIndex, NetDataType.BYTE);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA611_tagCMRenameFamily.cs.meta b/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA611_tagCMRenameFamily.cs.meta
new file mode 100644
index 0000000..c199a13
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CA6_Family/CA611_tagCMRenameFamily.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4f522c9e27318154db996888f280f91b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB226_tagCMFaceChange.cs b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB226_tagCMFaceChange.cs
new file mode 100644
index 0000000..6c75905
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB226_tagCMFaceChange.cs
@@ -0,0 +1,18 @@
+using UnityEngine;
+using System.Collections;
+
+// B2 26 澶村儚骞诲寲 #tagCMFaceChange
+
+public class CB226_tagCMFaceChange : GameNetPackBasic {
+ public uint FaceID; // 骞诲寲鐨処D
+
+ public CB226_tagCMFaceChange () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xB226;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (FaceID, NetDataType.DWORD);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB226_tagCMFaceChange.cs.meta b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB226_tagCMFaceChange.cs.meta
new file mode 100644
index 0000000..c9602e9
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB226_tagCMFaceChange.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 042dc115cedb16645883ab6af37fea1c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB228_tagCMFacePicChange.cs b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB228_tagCMFacePicChange.cs
new file mode 100644
index 0000000..ad7e9c7
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB228_tagCMFacePicChange.cs
@@ -0,0 +1,18 @@
+using UnityEngine;
+using System.Collections;
+
+// B2 28 澶村儚妗嗗够鍖� #tagCMFacePicChange
+
+public class CB228_tagCMFacePicChange : GameNetPackBasic {
+ public uint FacePicID; // 骞诲寲鐨処D
+
+ public CB228_tagCMFacePicChange () {
+ combineCmd = (ushort)0x03FE;
+ _cmd = (ushort)0xB228;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (FacePicID, NetDataType.DWORD);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB228_tagCMFacePicChange.cs.meta b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB228_tagCMFacePicChange.cs.meta
new file mode 100644
index 0000000..61e1780
--- /dev/null
+++ b/Main/Core/NetworkPackage/ClientPack/CB2_NewFunction/CB228_tagCMFacePicChange.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 13ff6fad4eb84dd4ea3e3a09e8d8f474
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H02_PlayerTalk/DTC0212_tagNotifyCode.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/H02_PlayerTalk/DTC0212_tagNotifyCode.cs
index 72e08ed..3e8e37f 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/H02_PlayerTalk/DTC0212_tagNotifyCode.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H02_PlayerTalk/DTC0212_tagNotifyCode.cs
@@ -1,28 +1,13 @@
-using UnityEngine;
-using System.Collections;
-
-//02 12 锟斤拷锟斤拷锟斤拷示#tagNotifyCode
-
-
-
-public class DTC0212_tagNotifyCode : DtcBasic
-{
-
- public override void Done(GameNetPackBasic vNetPack)
- {
-
- base.Done(vNetPack);
-
- H0212_tagNotifyCode vNetData = vNetPack as H0212_tagNotifyCode;
-
- //锟介奖时锟斤拷锟斤拷 锟斤拷没锟斤拷锟斤拷锟较�
- if (vNetData.Msg == "GetMoney" && ItemLogicUtility.Instance.hidePickItem)
- return;
-
- //SysNotifyMgr.Instance.ReceiveNotifyCode(vNetData);
- Debug.Log(vNetData.Msg);
-
- }
-
-}
-
+using UnityEngine;
+using System.Collections;
+
+//02 12 浠g爜鎻愮ず#tagNotifyCode
+
+public class DTC0212_tagNotifyCode : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ H0212_tagNotifyCode vNetData = vNetPack as H0212_tagNotifyCode;
+ SysNotifyMgr.Instance.ReceiveNotifyCode(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0316_tagPackResetOK.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0316_tagPackResetOK.cs
index 15cc47c..c62e1d2 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0316_tagPackResetOK.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H03_MainCharacter/DTC0316_tagPackResetOK.cs
@@ -1,18 +1,13 @@
using UnityEngine;
using System.Collections;
-//03 16 锟斤拷锟斤拷锟斤拷锟斤拷锟缴癸拷#tagPackResetOK
-
+//03 16 鑳屽寘閲嶆暣鎴愬姛#tagPackResetOK
public class DTC0316_tagPackResetOK : DtcBasic {
-
- public override void Done(GameNetPackBasic vNetPack) {
-
+ public override void Done(GameNetPackBasic vNetPack)
+ {
base.Done(vNetPack);
-
H0316_tagPackResetOK vNetData = vNetPack as H0316_tagPackResetOK;
PackManager.Instance.PackResetOk(vNetData);
}
-
}
-
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0430_tagPlayerInFamilyInfoRefresh.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0430_tagPlayerInFamilyInfoRefresh.cs
new file mode 100644
index 0000000..40a9e46
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0430_tagPlayerInFamilyInfoRefresh.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+//04 30 鐜╁瀹舵棌鍚嶅瓧鑱屼綅绛変俊鎭埛鏂�#tagPlayerInFamilyInfoRefresh
+
+public class DTC0430_tagPlayerInFamilyInfoRefresh : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ H0430_tagPlayerInFamilyInfoRefresh vNetData = vNetPack as H0430_tagPlayerInFamilyInfoRefresh;
+ PlayerDatas.Instance.fairyData.OnRefreshFairy(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0430_tagPlayerInFamilyInfoRefresh.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0430_tagPlayerInFamilyInfoRefresh.cs.meta
new file mode 100644
index 0000000..da315f2
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0430_tagPlayerInFamilyInfoRefresh.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: cea43bcc43e708f438eec5f38119a63e
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family.meta
new file mode 100644
index 0000000..f2024e4
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fe3590e36bf456543b5a24ea6bea71f0
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F03_tagRoleFamilyInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F03_tagRoleFamilyInfo.cs
new file mode 100644
index 0000000..a95b812
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F03_tagRoleFamilyInfo.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+//0F 03 瀹舵棌鍩烘湰淇℃伅#tagRoleFamilyInfo
+
+public class DTC0F03_tagRoleFamilyInfo : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ H0F03_tagRoleFamilyInfo vNetData = vNetPack as H0F03_tagRoleFamilyInfo;
+ PlayerDatas.Instance.fairyData.OnRefreshFairy(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F03_tagRoleFamilyInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F03_tagRoleFamilyInfo.cs.meta
new file mode 100644
index 0000000..c979d23
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F03_tagRoleFamilyInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ec87f6995d8549f48afeba58664313f2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F05_tagFamilyChange.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F05_tagFamilyChange.cs
new file mode 100644
index 0000000..8c8ae7f
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F05_tagFamilyChange.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+//0F 05 瀹舵棌鍙樻洿#tagFamilyChange
+
+public class DTC0F05_tagFamilyChange : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ H0F05_tagFamilyChange vNetData = vNetPack as H0F05_tagFamilyChange;
+ PlayerDatas.Instance.fairyData.OnRefreshFairy(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F05_tagFamilyChange.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F05_tagFamilyChange.cs.meta
new file mode 100644
index 0000000..8335004
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F05_tagFamilyChange.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3d4f5226983a2974a81c3682c0340f41
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F07_tagFamilyRenameResult.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F07_tagFamilyRenameResult.cs
new file mode 100644
index 0000000..bba21d0
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F07_tagFamilyRenameResult.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+//0F 07 瀹舵棌鍚嶇О鏀瑰悕缁撴灉#tagFamilyRenameResult
+
+public class DTC0F07_tagFamilyRenameResult : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ H0F07_tagFamilyRenameResult vNetData = vNetPack as H0F07_tagFamilyRenameResult;
+ FairyModel.Instance.UpdateFairyChangeName(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F07_tagFamilyRenameResult.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F07_tagFamilyRenameResult.cs.meta
new file mode 100644
index 0000000..f18f325
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/H0F_Family/DTC0F07_tagFamilyRenameResult.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3b439ca743a409a44b82dcaeafadd547
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA204_tagMCVPackRefresh.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA204_tagMCVPackRefresh.cs
index a2fc02a..fbbcb0c 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA204_tagMCVPackRefresh.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA204_tagMCVPackRefresh.cs
@@ -1,16 +1,13 @@
using UnityEngine;
using System.Collections;
-// A2 04 锟斤拷锟解背锟斤拷锟斤拷品刷锟斤拷 #tagMCVPackRefresh
+// A2 04 铏氭嫙鑳屽寘鐗╁搧鍒锋柊 #tagMCVPackRefresh
-public class DTCA204_tagMCVPackRefresh : DtcBasic
-{
+public class DTCA204_tagMCVPackRefresh : DtcBasic {
public override void Done(GameNetPackBasic vNetPack)
{
base.Done(vNetPack);
HA204_tagMCVPackRefresh vNetData = vNetPack as HA204_tagMCVPackRefresh;
VirtualPackManager.Instance.OnReceiveServerPack(vNetData);
}
-
}
-
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA205_tagMCVPackClear.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA205_tagMCVPackClear.cs
index 924b3c1..f768e3b 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA205_tagMCVPackClear.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA2_Package/DTCA205_tagMCVPackClear.cs
@@ -1,18 +1,12 @@
using UnityEngine;
using System.Collections;
-// A2 05 锟斤拷锟解背锟斤拷锟斤拷品锟斤拷锟� #tagMCVPackClear
+// A2 05 铏氭嫙鑳屽寘鐗╁搧娓呯┖ #tagMCVPackClear
-
-
-public class DTCA205_tagMCVPackClear : DtcBasic
-{
- public override void Done(GameNetPackBasic vNetPack)
- {
+public class DTCA205_tagMCVPackClear : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack) {
base.Done(vNetPack);
HA205_tagMCVPackClear vNetData = vNetPack as HA205_tagMCVPackClear;
VirtualPackManager.Instance.OnReceiveServerPack(vNetData);
}
-
}
-
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA302_tagMCFuncOpenStateList.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA302_tagMCFuncOpenStateList.cs
new file mode 100644
index 0000000..8b60d86
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA302_tagMCFuncOpenStateList.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+//A3 02 鍔熻兘寮�閫氱姸鎬� #tagMCFuncOpenStateList
+
+public class DTCA302_tagMCFuncOpenStateList : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HA302_tagMCFuncOpenStateList vNetData = vNetPack as HA302_tagMCFuncOpenStateList;
+ FuncOpen.Instance.UpdateFuncState(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA302_tagMCFuncOpenStateList.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA302_tagMCFuncOpenStateList.cs.meta
new file mode 100644
index 0000000..db21f45
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA302_tagMCFuncOpenStateList.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f2a758138188d2a47be10d589b12c18a
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA315_tagMCDailyActionCnt.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA315_tagMCDailyActionCnt.cs
new file mode 100644
index 0000000..c8a1742
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA315_tagMCDailyActionCnt.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+// A3 15 鏃ュ父娲诲姩娆℃暟閫氱煡 #tagMCDailyActionCnt
+
+public class DTCA315_tagMCDailyActionCnt : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HA315_tagMCDailyActionCnt vNetData = vNetPack as HA315_tagMCDailyActionCnt;
+ DailyQuestModel.Instance.OnDailyQuestCompletedTimesUpdate(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA315_tagMCDailyActionCnt.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA315_tagMCDailyActionCnt.cs.meta
new file mode 100644
index 0000000..dfaec27
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA315_tagMCDailyActionCnt.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 614cbf82d2da4144b84142734e88ea8f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA320_tagMCPlayerFBInfoData.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA320_tagMCPlayerFBInfoData.cs
new file mode 100644
index 0000000..9ceefea
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA320_tagMCPlayerFBInfoData.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+// A3 20 鐜╁鍓湰鐩稿叧淇℃伅 #tagMCPlayerFBInfoData
+
+public class DTCA320_tagMCPlayerFBInfoData : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HA320_tagMCPlayerFBInfoData vNetData = vNetPack as HA320_tagMCPlayerFBInfoData;
+ DungeonModel.Instance.UpdateRecords(vNetData.FBDataList);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA320_tagMCPlayerFBInfoData.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA320_tagMCPlayerFBInfoData.cs.meta
new file mode 100644
index 0000000..0ec0b24
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA320_tagMCPlayerFBInfoData.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 56cd057c8501b0246b3887eaa785e5f4
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA333_tagMCDailyActivityInfoList.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA333_tagMCDailyActivityInfoList.cs
new file mode 100644
index 0000000..beb7615
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA333_tagMCDailyActivityInfoList.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+//A3 33 鐜╁姣忔棩娲昏穬搴� #tagMCDailyActivityInfoList
+
+public class DTCA333_tagMCDailyActivityInfoList : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HA333_tagMCDailyActivityInfoList vNetData = vNetPack as HA333_tagMCDailyActivityInfoList;
+ DailyQuestModel.Instance.OnDailyQuestActiveValueInfoUpdate(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA333_tagMCDailyActivityInfoList.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA333_tagMCDailyActivityInfoList.cs.meta
new file mode 100644
index 0000000..8bd07bb
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA333_tagMCDailyActivityInfoList.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: af0fbf5fece008640bb9c73851b2523f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA350_tagMCTreasureResult.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA350_tagMCTreasureResult.cs
new file mode 100644
index 0000000..2c51dce
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA350_tagMCTreasureResult.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+// A3 50 閫氱煡瀵诲疂缁撴灉 #tagMCTreasureResult
+
+public class DTCA350_tagMCTreasureResult : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HA350_tagMCTreasureResult vNetData = vNetPack as HA350_tagMCTreasureResult;
+ HappyXBModel.Instance.GetServerXBResult(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA350_tagMCTreasureResult.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA350_tagMCTreasureResult.cs.meta
new file mode 100644
index 0000000..2358261
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA350_tagMCTreasureResult.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 92e6d065753934a458731e0949c64c21
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA351_tagMCTreasureInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA351_tagMCTreasureInfo.cs
new file mode 100644
index 0000000..ab882ed
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA351_tagMCTreasureInfo.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+// A3 51 瀵诲疂鍔熻兘淇℃伅 #tagMCTreasureInfo
+
+public class DTCA351_tagMCTreasureInfo : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HA351_tagMCTreasureInfo vNetData = vNetPack as HA351_tagMCTreasureInfo;
+ HappyXBModel.Instance.GetServerXBInfo(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA351_tagMCTreasureInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA351_tagMCTreasureInfo.cs.meta
new file mode 100644
index 0000000..2592e53
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA351_tagMCTreasureInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 02d2cd493a3537b4094b44f667687070
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA3A1_tagMCModuleFightPowerInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA3A1_tagMCModuleFightPowerInfo.cs
index 2a8a353..a90f023 100644
--- a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA3A1_tagMCModuleFightPowerInfo.cs
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA3A1_tagMCModuleFightPowerInfo.cs
@@ -1,11 +1,13 @@
-using UnityEngine;
-using System.Collections;
-
+using UnityEngine;
+using System.Collections;
+
//A3 A1 鍚勫姛鑳芥ā鍧楁垬鏂楀姏淇℃伅 #tagMCModuleFightPowerInfo
public class DTCA3A1_tagMCModuleFightPowerInfo : DtcBasic {
- public override void Done(GameNetPackBasic vNetPack) {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
base.Done(vNetPack);
HA3A1_tagMCModuleFightPowerInfo vNetData = vNetPack as HA3A1_tagMCModuleFightPowerInfo;
+ RoleParticularModel.Instance.OnRevRoleFuncPower(vNetData);
}
}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA3BD_tagMCBuyEnterInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA3BD_tagMCBuyEnterInfo.cs
new file mode 100644
index 0000000..baa3dc1
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA3BD_tagMCBuyEnterInfo.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+// A3 BD 閫氱煡鐜╁璐拱鍓湰杩涘叆娆℃暟 #tagMCBuyEnterInfo
+
+public class DTCA3BD_tagMCBuyEnterInfo : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HA3BD_tagMCBuyEnterInfo vNetData = vNetPack as HA3BD_tagMCBuyEnterInfo;
+ DungeonModel.Instance.UpdateRecords(vNetData.FBInfo);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA3BD_tagMCBuyEnterInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA3BD_tagMCBuyEnterInfo.cs.meta
new file mode 100644
index 0000000..b37bec8
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA3_Function/DTCA3BD_tagMCBuyEnterInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 70c0c289e8698c940977966591e44d4a
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family.meta
new file mode 100644
index 0000000..c9c01ae
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2bd48faf09f890a4d861428203d7c475
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA401_tagGCViewFamilyRequestInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA401_tagGCViewFamilyRequestInfo.cs
new file mode 100644
index 0000000..6a6fdfc
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA401_tagGCViewFamilyRequestInfo.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+//A4 01 鏌ョ湅鐢宠鍏ヤ細鐨勭帺瀹朵俊鎭� #tagGCViewFamilyRequestInfo
+
+public class DTCA401_tagGCViewFamilyRequestInfo : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HA401_tagGCViewFamilyRequestInfo vNetData = vNetPack as HA401_tagGCViewFamilyRequestInfo;
+ PlayerDatas.Instance.fairyData.OnRefreshFairy(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA401_tagGCViewFamilyRequestInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA401_tagGCViewFamilyRequestInfo.cs.meta
new file mode 100644
index 0000000..eca1ea1
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA401_tagGCViewFamilyRequestInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 00bbdba49f0dd6843bf7a80970de18b4
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA403_tagGCFamilyActionInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA403_tagGCFamilyActionInfo.cs
new file mode 100644
index 0000000..8b57b3d
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA403_tagGCFamilyActionInfo.cs
@@ -0,0 +1,14 @@
+using UnityEngine;
+using System.Collections;
+
+// A4 03 瀹舵棌琛屼负淇℃伅 #tagGCFamilyActionInfo
+
+public class DTCA403_tagGCFamilyActionInfo : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HA403_tagGCFamilyActionInfo vNetData = vNetPack as HA403_tagGCFamilyActionInfo;
+ FairyModel.Instance.UpdateFamilyAction(vNetData);
+ FairyEmblemModel.Instance.UpdateFamilyAction(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA403_tagGCFamilyActionInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA403_tagGCFamilyActionInfo.cs.meta
new file mode 100644
index 0000000..bd22e85
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA403_tagGCFamilyActionInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 634e86ec38141754980e79f2da01cbab
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA408_tagGCPyAllFamilyView.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA408_tagGCPyAllFamilyView.cs
new file mode 100644
index 0000000..320f7a6
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA408_tagGCPyAllFamilyView.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+// A4 08 鏌ョ湅瀹舵棌 #tagGCPyAllFamilyView
+
+public class DTCA408_tagGCPyAllFamilyView : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HA408_tagGCPyAllFamilyView vNetData = vNetPack as HA408_tagGCPyAllFamilyView;
+ PlayerDatas.Instance.fairyData.OnRefreshFairy(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA408_tagGCPyAllFamilyView.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA408_tagGCPyAllFamilyView.cs.meta
new file mode 100644
index 0000000..89c320c
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA408_tagGCPyAllFamilyView.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 569325b108f533a41a508b18461d7c88
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA40D_tagGCServerCreatFamilyTimes.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA40D_tagGCServerCreatFamilyTimes.cs
new file mode 100644
index 0000000..02dbaf4
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA40D_tagGCServerCreatFamilyTimes.cs
@@ -0,0 +1,11 @@
+using UnityEngine;
+using System.Collections;
+
+// A4 0D 閫氱煡寤虹洘娆℃暟 #tagGCServerCreatFamilyTimes
+
+public class DTCA40D_tagGCServerCreatFamilyTimes : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack) {
+ base.Done(vNetPack);
+ HA40D_tagGCServerCreatFamilyTimes vNetData = vNetPack as HA40D_tagGCServerCreatFamilyTimes;
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA40D_tagGCServerCreatFamilyTimes.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA40D_tagGCServerCreatFamilyTimes.cs.meta
new file mode 100644
index 0000000..59b8ec3
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA40D_tagGCServerCreatFamilyTimes.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 78bdf08c9accc8c4abaeb617365caec4
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family.meta
new file mode 100644
index 0000000..af594e2
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9c5b285d8ec93e843bde3b8ac615fa25
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA501_tagMCNotifyRequestJoinFamilyInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA501_tagMCNotifyRequestJoinFamilyInfo.cs
new file mode 100644
index 0000000..09f9d1b
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA501_tagMCNotifyRequestJoinFamilyInfo.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+//A5 01 宸茬敵璇峰姞鍏ョ殑瀹舵棌淇℃伅 #tagMCNotifyRequestJoinFamilyInfo
+
+public class DTCA501_tagMCNotifyRequestJoinFamilyInfo : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HA501_tagMCNotifyRequestJoinFamilyInfo vNetData = vNetPack as HA501_tagMCNotifyRequestJoinFamilyInfo;
+ FairyModel.Instance.UpdateFairyRequested(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA501_tagMCNotifyRequestJoinFamilyInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA501_tagMCNotifyRequestJoinFamilyInfo.cs.meta
new file mode 100644
index 0000000..fb3887c
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA5_Family/DTCA501_tagMCNotifyRequestJoinFamilyInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: eaf67c27be3d78a49a4cf9496e4d1111
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA721_tagMCEmojiPackInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA721_tagMCEmojiPackInfo.cs
new file mode 100644
index 0000000..3091ffb
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA721_tagMCEmojiPackInfo.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+// A7 21 琛ㄦ儏鍖呬俊鎭� #tagMCEmojiPackInfo
+
+public class DTCA721_tagMCEmojiPackInfo : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HA721_tagMCEmojiPackInfo vNetData = vNetPack as HA721_tagMCEmojiPackInfo;
+ PhantasmPavilionModel.Instance.UpdateEmojiPackInfo(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA721_tagMCEmojiPackInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA721_tagMCEmojiPackInfo.cs.meta
new file mode 100644
index 0000000..c2693b5
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA7_Interaction/DTCA721_tagMCEmojiPackInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 01710fb61664f4c4c8f7bfb47fe1c6b0
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA802_tagMCShopItemDayBuyCntInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA802_tagMCShopItemDayBuyCntInfo.cs
new file mode 100644
index 0000000..5f91d18
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA802_tagMCShopItemDayBuyCntInfo.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+// A8 02 閫氱煡NPC鍟嗗簵鐗╁搧浠婃棩宸茶喘涔版鏁� #tagMCShopItemDayBuyCntInfo
+
+public class DTCA802_tagMCShopItemDayBuyCntInfo : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HA802_tagMCShopItemDayBuyCntInfo vNetData = vNetPack as HA802_tagMCShopItemDayBuyCntInfo;
+ StoreModel.Instance.RefreshBuyShopLimitModel(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA802_tagMCShopItemDayBuyCntInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA802_tagMCShopItemDayBuyCntInfo.cs.meta
new file mode 100644
index 0000000..81e2b01
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA802_tagMCShopItemDayBuyCntInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5b4ee9607394bd446b2fb9ff4f29488b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA811_tagMCShoppingResult.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA811_tagMCShoppingResult.cs
new file mode 100644
index 0000000..e8fbf43
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA811_tagMCShoppingResult.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+// A8 11 鍟嗗簵璐拱缁撴灉 #tagMCShoppingResult
+
+public class DTCA811_tagMCShoppingResult : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HA811_tagMCShoppingResult vNetData = vNetPack as HA811_tagMCShoppingResult;
+ StoreModel.Instance.GetBuyResult(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA811_tagMCShoppingResult.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA811_tagMCShoppingResult.cs.meta
new file mode 100644
index 0000000..fe67285
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HA8_Item/DTCA811_tagMCShoppingResult.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6fc2d2e8163f66f4fa1e4cc97b9df1f7
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA01_tagMCTotalLoginDayCntInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA01_tagMCTotalLoginDayCntInfo.cs
new file mode 100644
index 0000000..7686c04
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA01_tagMCTotalLoginDayCntInfo.cs
@@ -0,0 +1,11 @@
+using UnityEngine;
+using System.Collections;
+
+//AA 01 绱鐧婚檰澶╂暟淇℃伅 #tagMCTotalLoginDayCntInfo
+
+public class DTCAA01_tagMCTotalLoginDayCntInfo : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack) {
+ base.Done(vNetPack);
+ HAA01_tagMCTotalLoginDayCntInfo vNetData = vNetPack as HAA01_tagMCTotalLoginDayCntInfo;
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA01_tagMCTotalLoginDayCntInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA01_tagMCTotalLoginDayCntInfo.cs.meta
new file mode 100644
index 0000000..96d8715
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA01_tagMCTotalLoginDayCntInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3442dd4c171e8ae48b8769c65b85eb0e
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA03_tagMCDailyPackBuyGiftInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA03_tagMCDailyPackBuyGiftInfo.cs
new file mode 100644
index 0000000..07cd47c
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA03_tagMCDailyPackBuyGiftInfo.cs
@@ -0,0 +1,14 @@
+using UnityEngine;
+using System.Collections;
+
+// AA 03 姣忔棩鎵撳寘鐩磋喘绀煎寘 #tagMCDailyPackBuyGiftInfo
+
+public class DTCAA03_tagMCDailyPackBuyGiftInfo : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HAA03_tagMCDailyPackBuyGiftInfo vNetData = vNetPack as HAA03_tagMCDailyPackBuyGiftInfo;
+ //姣忔棩鐗规儬绀煎寘
+ DailySpecialsModel.Instance.UpdateGiftState(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA03_tagMCDailyPackBuyGiftInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA03_tagMCDailyPackBuyGiftInfo.cs.meta
new file mode 100644
index 0000000..b993c17
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HAA_SaleActivity/DTCAA03_tagMCDailyPackBuyGiftInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a35fe32256762fe459a5e7e58007969a
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role.meta
new file mode 100644
index 0000000..3529a6b
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8163c4bed71ec094bb3b730028d00357
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB117_tagMCFaceInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB117_tagMCFaceInfo.cs
new file mode 100644
index 0000000..8ddbe6f
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB117_tagMCFaceInfo.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+// B1 17 澶村儚淇℃伅 #tagMCFaceInfo
+
+public class DTCB117_tagMCFaceInfo : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HB117_tagMCFaceInfo vNetData = vNetPack as HB117_tagMCFaceInfo;
+ PhantasmPavilionModel.Instance.UpdateFaceInfo(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB117_tagMCFaceInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB117_tagMCFaceInfo.cs.meta
new file mode 100644
index 0000000..a48c6c6
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB117_tagMCFaceInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a730bf04a288faf488f07720cfafd86b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB118_tagMCFacePicInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB118_tagMCFacePicInfo.cs
new file mode 100644
index 0000000..235694d
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB118_tagMCFacePicInfo.cs
@@ -0,0 +1,13 @@
+using UnityEngine;
+using System.Collections;
+
+// B1 18 澶村儚妗嗕俊鎭� #tagMCFacePicInfo
+
+public class DTCB118_tagMCFacePicInfo : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack)
+ {
+ base.Done(vNetPack);
+ HB118_tagMCFacePicInfo vNetData = vNetPack as HB118_tagMCFacePicInfo;
+ PhantasmPavilionModel.Instance.UpdateFacePicInfo(vNetData);
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB118_tagMCFacePicInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB118_tagMCFacePicInfo.cs.meta
new file mode 100644
index 0000000..2f57692
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB118_tagMCFacePicInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8c5558cffa773094c8d32c01bf2228d8
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB120_tagMCZhanlingInfo.cs b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB120_tagMCZhanlingInfo.cs
new file mode 100644
index 0000000..a62b0ca
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB120_tagMCZhanlingInfo.cs
@@ -0,0 +1,11 @@
+using UnityEngine;
+using System.Collections;
+
+// B1 20 鎴樹护淇℃伅 #tagMCZhanlingInfo
+
+public class DTCB120_tagMCZhanlingInfo : DtcBasic {
+ public override void Done(GameNetPackBasic vNetPack) {
+ base.Done(vNetPack);
+ HB120_tagMCZhanlingInfo vNetData = vNetPack as HB120_tagMCZhanlingInfo;
+ }
+}
diff --git a/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB120_tagMCZhanlingInfo.cs.meta b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB120_tagMCZhanlingInfo.cs.meta
new file mode 100644
index 0000000..a8d5fea
--- /dev/null
+++ b/Main/Core/NetworkPackage/DTCFile/ServerPack/HB1_Role/DTCB120_tagMCZhanlingInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 024c874eb5d8fc241b0ce55491335087
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs b/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
index 761726b..df73d8a 100644
--- a/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
+++ b/Main/Core/NetworkPackage/DataToCtl/PackageRegedit.cs
@@ -59,6 +59,38 @@
Register(typeof(HA110_tagMCCoinToGoldCountInfo), typeof(DTCA110_tagMCCoinToGoldCountInfo));
Register(typeof(HA008_tagGCPlayerRecInfo), typeof(DTCA008_tagGCPlayerRecInfo));
Register(typeof(HAA02_tagMCFirstGoldInfo), typeof(DTCAA02_tagMCFirstGoldInfo));
+ Register(typeof(HAA03_tagMCDailyPackBuyGiftInfo), typeof(DTCAA03_tagMCDailyPackBuyGiftInfo));
+ Register(typeof(HA302_tagMCFuncOpenStateList), typeof(DTCA302_tagMCFuncOpenStateList));
+ Register(typeof(HA320_tagMCPlayerFBInfoData), typeof(DTCA320_tagMCPlayerFBInfoData));
+ Register(typeof(H0F03_tagRoleFamilyInfo), typeof(DTC0F03_tagRoleFamilyInfo));
+ Register(typeof(H0F05_tagFamilyChange), typeof(DTC0F05_tagFamilyChange));
+ Register(typeof(H0F07_tagFamilyRenameResult), typeof(DTC0F07_tagFamilyRenameResult));
+ Register(typeof(H0212_tagNotifyCode), typeof(DTC0212_tagNotifyCode));
+ Register(typeof(H0316_tagPackResetOK), typeof(DTC0316_tagPackResetOK));
+ Register(typeof(H0430_tagPlayerInFamilyInfoRefresh), typeof(DTC0430_tagPlayerInFamilyInfoRefresh));
+ Register(typeof(HA3BD_tagMCBuyEnterInfo), typeof(DTCA3BD_tagMCBuyEnterInfo));
+ Register(typeof(HA315_tagMCDailyActionCnt), typeof(DTCA315_tagMCDailyActionCnt));
+ Register(typeof(HA333_tagMCDailyActivityInfoList), typeof(DTCA333_tagMCDailyActivityInfoList));
+ Register(typeof(HA350_tagMCTreasureResult), typeof(DTCA350_tagMCTreasureResult));
+ Register(typeof(HA351_tagMCTreasureInfo), typeof(DTCA351_tagMCTreasureInfo));
+ Register(typeof(HA362_tagMCMailList), typeof(DTCA362_tagMCMailList));
+ Register(typeof(HA363_tagMCMailStateChange), typeof(DTCA363_tagMCMailStateChange));
+ Register(typeof(HA40D_tagGCServerCreatFamilyTimes), typeof(DTCA40D_tagGCServerCreatFamilyTimes));
+ Register(typeof(HA401_tagGCViewFamilyRequestInfo), typeof(DTCA401_tagGCViewFamilyRequestInfo));
+ Register(typeof(HA403_tagGCFamilyActionInfo), typeof(DTCA403_tagGCFamilyActionInfo));
+ Register(typeof(HA408_tagGCPyAllFamilyView), typeof(DTCA408_tagGCPyAllFamilyView));
+ Register(typeof(HA501_tagMCNotifyRequestJoinFamilyInfo), typeof(DTCA501_tagMCNotifyRequestJoinFamilyInfo));
+ Register(typeof(HA705_tagSCQueryPlayerCacheResult), typeof(DTCA705_tagSCQueryPlayerCacheResult));
+ Register(typeof(HA801_tagMCGiveAwardInfo), typeof(DTCA801_tagMCGiveAwardInfo));
+ Register(typeof(HA802_tagMCShopItemDayBuyCntInfo), typeof(DTCA802_tagMCShopItemDayBuyCntInfo));
+ Register(typeof(HA809_tagMCItemDayUseCntInfo), typeof(DTCA809_tagMCItemDayUseCntInfo));
+ Register(typeof(HA811_tagMCShoppingResult), typeof(DTCA811_tagMCShoppingResult));
+ Register(typeof(HA721_tagMCEmojiPackInfo), typeof(DTCA721_tagMCEmojiPackInfo));
+ Register(typeof(HB117_tagMCFaceInfo), typeof(DTCB117_tagMCFaceInfo));
+ Register(typeof(HB118_tagMCFacePicInfo), typeof(DTCB118_tagMCFacePicInfo));
+ Register(typeof(HB120_tagMCZhanlingInfo), typeof(DTCB120_tagMCZhanlingInfo));
+
+
}
diff --git a/Main/Core/NetworkPackage/ServerPack/H02_PlayerTalk/H0212_tagNotifyCode.cs b/Main/Core/NetworkPackage/ServerPack/H02_PlayerTalk/H0212_tagNotifyCode.cs
index 4886721..ad8ae66 100644
--- a/Main/Core/NetworkPackage/ServerPack/H02_PlayerTalk/H0212_tagNotifyCode.cs
+++ b/Main/Core/NetworkPackage/ServerPack/H02_PlayerTalk/H0212_tagNotifyCode.cs
@@ -1,66 +1,35 @@
using UnityEngine;
using System.Collections;
-//02 12 代码提示#tagNotifyCode
-
-
-
-public class H0212_tagNotifyCode : GameNetPackBasic {
-
- public byte MsgLen; //表中的msg信息
-
- public string Msg; //size = MsgLen
-
- public byte ParCount;
-
- public tagNotifyStr[] Pars = null; //size = ParCount
-
-
-
- public H0212_tagNotifyCode () {
-
- _cmd = (ushort)0x0212;
-
- }
-
-
-
- public override void ReadFromBytes (byte[] vBytes) {
-
- TransBytes (out MsgLen, vBytes, NetDataType.BYTE);
-
- TransBytes (out Msg, vBytes, NetDataType.Chars, MsgLen);
-
- TransBytes (out ParCount, vBytes, NetDataType.BYTE);
-
- Pars = new tagNotifyStr[ParCount];
-
- for (int i = 0; i < ParCount; i++) {
-
- Pars[i] = new tagNotifyStr();
-
- TransBytes (out Pars[i].MsgInt, vBytes, NetDataType.DWORD);
-
- TransBytes (out Pars[i].Len, vBytes, NetDataType.BYTE);
-
- TransBytes (out Pars[i].Msg, vBytes, NetDataType.Chars, Pars[i].Len);
- }
-
- }
-
-
-
- public class tagNotifyStr {
-
- public uint MsgInt; //int类型
-
- public byte Len;
-
- public string Msg; //size = Len
-
- }
-
-
-
-}
-
+//02 12 浠g爜鎻愮ず#tagNotifyCode
+
+public class H0212_tagNotifyCode : GameNetPackBasic {
+ public byte MsgLen; //琛ㄤ腑鐨刴sg淇℃伅
+ public string Msg; //size = MsgLen
+ public byte ParCount;
+ public tagNotifyStr[] Pars; //size = ParCount
+
+ public H0212_tagNotifyCode () {
+ _cmd = (ushort)0x0212;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out MsgLen, vBytes, NetDataType.BYTE);
+ TransBytes (out Msg, vBytes, NetDataType.Chars, MsgLen);
+ TransBytes (out ParCount, vBytes, NetDataType.BYTE);
+ Pars = new tagNotifyStr[ParCount];
+ for (int i = 0; i < ParCount; i ++) {
+ Pars[i] = new tagNotifyStr();
+ TransBytes (out Pars[i].MsgInt, vBytes, NetDataType.DWORD);
+ TransBytes (out Pars[i].Len, vBytes, NetDataType.BYTE);
+ TransBytes (out Pars[i].Msg, vBytes, NetDataType.Chars, Pars[i].Len);
+ }
+ }
+
+ public struct tagNotifyStr {
+ public uint MsgInt; //int绫诲瀷
+ public byte Len;
+ public string Msg; //size = Len
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/H03_MainCharacter/H0316_tagPackResetOK.cs b/Main/Core/NetworkPackage/ServerPack/H03_MainCharacter/H0316_tagPackResetOK.cs
index e49cf73..a9448ea 100644
--- a/Main/Core/NetworkPackage/ServerPack/H03_MainCharacter/H0316_tagPackResetOK.cs
+++ b/Main/Core/NetworkPackage/ServerPack/H03_MainCharacter/H0316_tagPackResetOK.cs
@@ -1,17 +1,17 @@
-using UnityEngine;
-using System.Collections;
+using UnityEngine;
+using System.Collections;
+
+//03 16 鑳屽寘閲嶆暣鎴愬姛#tagPackResetOK
-//03 16 背包重整成功#tagPackResetOK
-
-public class H0316_tagPackResetOK : GameNetPackBasic {
- public byte Type;
-
- public H0316_tagPackResetOK () {
- _cmd = (ushort)0x0316;
- }
-
- public override void ReadFromBytes (byte[] vBytes) {
- TransBytes (out Type, vBytes, NetDataType.BYTE);
- }
-
-}
+public class H0316_tagPackResetOK : GameNetPackBasic {
+ public byte Type;
+
+ public H0316_tagPackResetOK () {
+ _cmd = (ushort)0x0316;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out Type, vBytes, NetDataType.BYTE);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/H04_Scene/H0430_tagPlayerInFamilyInfoRefresh.cs b/Main/Core/NetworkPackage/ServerPack/H04_Scene/H0430_tagPlayerInFamilyInfoRefresh.cs
new file mode 100644
index 0000000..aadbd57
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/H04_Scene/H0430_tagPlayerInFamilyInfoRefresh.cs
@@ -0,0 +1,23 @@
+using UnityEngine;
+using System.Collections;
+
+//04 30 鐜╁瀹舵棌鍚嶅瓧鑱屼綅绛変俊鎭埛鏂�#tagPlayerInFamilyInfoRefresh
+
+public class H0430_tagPlayerInFamilyInfoRefresh : GameNetPackBasic {
+ public uint PlayerID;
+ public byte FamilyNameLen;
+ public string FamilyName; //size = FamilyNameLen
+ public byte FamilyMemberLV; //鐜╁鍦ㄥ鏃忎腑鐨勮亴浣�
+
+ public H0430_tagPlayerInFamilyInfoRefresh () {
+ _cmd = (ushort)0x0430;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out PlayerID, vBytes, NetDataType.DWORD);
+ TransBytes (out FamilyNameLen, vBytes, NetDataType.BYTE);
+ TransBytes (out FamilyName, vBytes, NetDataType.Chars, FamilyNameLen);
+ TransBytes (out FamilyMemberLV, vBytes, NetDataType.BYTE);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/H04_Scene/H0430_tagPlayerInFamilyInfoRefresh.cs.meta b/Main/Core/NetworkPackage/ServerPack/H04_Scene/H0430_tagPlayerInFamilyInfoRefresh.cs.meta
new file mode 100644
index 0000000..a09a482
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/H04_Scene/H0430_tagPlayerInFamilyInfoRefresh.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: cce6076ca0d0a3b448bff2a02ee77f3b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/H0F_Family.meta b/Main/Core/NetworkPackage/ServerPack/H0F_Family.meta
new file mode 100644
index 0000000..91d0d68
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/H0F_Family.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fd8f397972094f9499bf0aea26250d38
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/H0F_Family/C0F09_tagFamilyWarBillboardResult.cs b/Main/Core/NetworkPackage/ServerPack/H0F_Family/C0F09_tagFamilyWarBillboardResult.cs
new file mode 100644
index 0000000..bafcf4c
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/H0F_Family/C0F09_tagFamilyWarBillboardResult.cs
@@ -0,0 +1,33 @@
+using UnityEngine;
+using System.Collections;
+
+//0F 09 瀹舵棌鎴樻帓琛屾淇℃伅#tagFamilyWarBillboardResult
+
+public class C0F09_tagFamilyWarBillboardResult : GameNetPackBasic {
+ public byte ResultCount;
+ public tagFamilyWarBillboardInfo[] Result; //size = ResultCount
+
+ public C0F09_tagFamilyWarBillboardResult () {
+ _cmd = (ushort)0x0F09;
+ }
+
+ public override void WriteToBytes () {
+ WriteBytes (ResultCount, NetDataType.BYTE);
+ for (int i = 0; i < ResultCount; i ++) {
+ WriteBytes (Result[i].FamilyID, NetDataType.DWORD);
+ WriteBytes (Result[i].FamilyNameLen, NetDataType.BYTE);
+ WriteBytes (Result[i].FamilyName, NetDataType.Chars, Result[i].FamilyNameLen);
+ WriteBytes (Result[i].Billboard, NetDataType.DWORD);
+ WriteBytes (Result[i].FamilyCountry, NetDataType.BYTE);
+ }
+ }
+
+ public struct tagFamilyWarBillboardInfo {
+ public uint FamilyID; //瀹舵棌ID
+ public byte FamilyNameLen;
+ public string FamilyName; //size = FamilyNameLen
+ public uint Billboard; //鎺掑悕
+ public byte FamilyCountry; //鍥界睄
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/H0F_Family/C0F09_tagFamilyWarBillboardResult.cs.meta b/Main/Core/NetworkPackage/ServerPack/H0F_Family/C0F09_tagFamilyWarBillboardResult.cs.meta
new file mode 100644
index 0000000..fd64263
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/H0F_Family/C0F09_tagFamilyWarBillboardResult.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 79a41e81b1f4ae547b59bc6d8bbb024e
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F03_tagRoleFamilyInfo.cs b/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F03_tagRoleFamilyInfo.cs
new file mode 100644
index 0000000..758c9c8
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F03_tagRoleFamilyInfo.cs
@@ -0,0 +1,117 @@
+using UnityEngine;
+using System.Collections;
+
+//0F 03 瀹舵棌鍩烘湰淇℃伅#tagRoleFamilyInfo
+
+public class H0F03_tagRoleFamilyInfo : GameNetPackBasic {
+ public uint FamilyID;
+ public string FamilyName; //瀹舵棌鍚嶇О
+ public ushort FamilyLV; //瀹舵棌绛夌骇
+ public uint FamilyMoney; //璧勯噾
+ public uint FamilyHornor; //鑽h獕
+ public ushort MemberCount; //浜烘暟
+ public ushort BroadcastLen; //鍏憡
+ public uint Point; //瀹舵棌鎴樼Н鍒�
+ public string Broadcast; //size = BroadcastLen
+ public uint FamilyActiveValue; //鏈懆瀹舵棌娲昏穬搴�
+ public uint LastWeekFamilyActiveValue; //涓婂懆瀹舵棌娲昏穬搴�
+ public tagRoleFamilyMember[] Member; //size = MemberCount
+ public uint Extra1; //闄勫姞瀛楁1
+ public uint Extra2; //闄勫姞瀛楁2
+ public uint Extra3; //闄勫姞瀛楁3
+ public uint Extra4; //闄勫姞瀛楁4
+ public uint Extra5; //闄勫姞瀛楁5
+ public uint Extra6; //闄勫姞瀛楁6
+ public uint Extra7; //闄勫姞瀛楁7
+ public uint Extra8; //闄勫姞瀛楁8
+ public uint Extra9; //闄勫姞瀛楁
+ public uint Extra10; //闄勫姞瀛楁
+ public uint ServerID; //鍖烘湇ID锛屽垱寤烘椂浠ョ洘涓荤殑ID璧嬪�硷紝鐩墠鐢ㄤ簬鏄剧ず
+ public byte AcceptJoin; //鏄惁鎺ュ彈鐢宠
+
+ public H0F03_tagRoleFamilyInfo () {
+ _cmd = (ushort)0x0F03;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out FamilyID, vBytes, NetDataType.DWORD);
+ TransBytes (out FamilyName, vBytes, NetDataType.Chars, 33);
+ TransBytes (out FamilyLV, vBytes, NetDataType.WORD);
+ TransBytes (out FamilyMoney, vBytes, NetDataType.DWORD);
+ TransBytes (out FamilyHornor, vBytes, NetDataType.DWORD);
+ TransBytes (out MemberCount, vBytes, NetDataType.WORD);
+ TransBytes (out BroadcastLen, vBytes, NetDataType.WORD);
+ TransBytes (out Point, vBytes, NetDataType.DWORD);
+ TransBytes (out Broadcast, vBytes, NetDataType.Chars, BroadcastLen);
+ TransBytes (out FamilyActiveValue, vBytes, NetDataType.DWORD);
+ TransBytes (out LastWeekFamilyActiveValue, vBytes, NetDataType.DWORD);
+ Member = new tagRoleFamilyMember[MemberCount];
+ for (int i = 0; i < MemberCount; i ++) {
+ Member[i] = new tagRoleFamilyMember();
+ TransBytes (out Member[i].PlayerID, vBytes, NetDataType.DWORD);
+ TransBytes (out Member[i].Sex, vBytes, NetDataType.BYTE);
+ TransBytes (out Member[i].NameLen, vBytes, NetDataType.BYTE);
+ TransBytes (out Member[i].Name, vBytes, NetDataType.Chars, Member[i].NameLen);
+ TransBytes (out Member[i].LV, vBytes, NetDataType.WORD);
+ TransBytes (out Member[i].ReincarnationLv, vBytes, NetDataType.WORD);
+ TransBytes (out Member[i].FamilyLV, vBytes, NetDataType.BYTE);
+ TransBytes (out Member[i].FamilyNameLen, vBytes, NetDataType.BYTE);
+ TransBytes (out Member[i].FamilyName, vBytes, NetDataType.Chars, Member[i].FamilyNameLen);
+ TransBytes (out Member[i].Job, vBytes, NetDataType.BYTE);
+ TransBytes (out Member[i].Face, vBytes, NetDataType.DWORD);
+ TransBytes (out Member[i].FacePic, vBytes, NetDataType.DWORD);
+ TransBytes (out Member[i].FamilyActiveValue, vBytes, NetDataType.DWORD);
+ TransBytes (out Member[i].LastWeekFamilyActiveValue, vBytes, NetDataType.DWORD);
+ TransBytes (out Member[i].OfficialRank, vBytes, NetDataType.BYTE);
+ TransBytes (out Member[i].Exattr1, vBytes, NetDataType.DWORD);
+ TransBytes (out Member[i].Exattr2, vBytes, NetDataType.DWORD);
+ TransBytes (out Member[i].Exattr3, vBytes, NetDataType.DWORD);
+ TransBytes (out Member[i].Exattr4, vBytes, NetDataType.DWORD);
+ TransBytes (out Member[i].Exattr5, vBytes, NetDataType.DWORD);
+ TransBytes (out Member[i].Exattr6, vBytes, NetDataType.DWORD);
+ TransBytes (out Member[i].Exattr7, vBytes, NetDataType.DWORD);
+ TransBytes (out Member[i].Exattr8, vBytes, NetDataType.DWORD);
+ TransBytes (out Member[i].OperateInfo, vBytes, NetDataType.DWORD);
+ }
+ TransBytes (out Extra1, vBytes, NetDataType.DWORD);
+ TransBytes (out Extra2, vBytes, NetDataType.DWORD);
+ TransBytes (out Extra3, vBytes, NetDataType.DWORD);
+ TransBytes (out Extra4, vBytes, NetDataType.DWORD);
+ TransBytes (out Extra5, vBytes, NetDataType.DWORD);
+ TransBytes (out Extra6, vBytes, NetDataType.DWORD);
+ TransBytes (out Extra7, vBytes, NetDataType.DWORD);
+ TransBytes (out Extra8, vBytes, NetDataType.DWORD);
+ TransBytes (out Extra9, vBytes, NetDataType.DWORD);
+ TransBytes (out Extra10, vBytes, NetDataType.DWORD);
+ TransBytes (out ServerID, vBytes, NetDataType.DWORD);
+ TransBytes (out AcceptJoin, vBytes, NetDataType.BYTE);
+ }
+
+ public struct tagRoleFamilyMember {
+ public uint PlayerID;
+ public byte Sex; //鎬у埆
+ public byte NameLen;
+ public string Name; //size = NameLen
+ public ushort LV;
+ public ushort ReincarnationLv;
+ public byte FamilyLV; //瀹舵棌绛夌骇
+ public byte FamilyNameLen;
+ public string FamilyName; //size = FamilyNameLen
+ public byte Job; //鑱屼笟
+ public uint Face; //澶村儚
+ public uint FacePic; //澶村儚澶栨
+ public uint FamilyActiveValue; //鏈懆瀹舵棌娲昏穬搴�
+ public uint LastWeekFamilyActiveValue; //涓婂懆瀹舵棌娲昏穬搴�
+ public byte OfficialRank; //澧冪晫
+ public uint Exattr1; //鎵╁睍灞炴��
+ public uint Exattr2; //鎵╁睍灞炴��
+ public uint Exattr3; //鎵╁睍灞炴��
+ public uint Exattr4; //鎵╁睍灞炴��
+ public uint Exattr5; //鎵╁睍灞炴��
+ public uint Exattr6; //鎵╁睍灞炴��
+ public uint Exattr7; //鎵╁睍灞炴��
+ public uint Exattr8; //鎵╁睍灞炴��
+ public uint OperateInfo; //鐜╁闄勫姞杩愯惀鍟嗕俊鎭�
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F03_tagRoleFamilyInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F03_tagRoleFamilyInfo.cs.meta
new file mode 100644
index 0000000..7db7cef
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F03_tagRoleFamilyInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 263f331422a345143b145301e9eb939f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F05_tagFamilyChange.cs b/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F05_tagFamilyChange.cs
new file mode 100644
index 0000000..9a11a21
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F05_tagFamilyChange.cs
@@ -0,0 +1,17 @@
+using UnityEngine;
+using System.Collections;
+
+//0F 05 瀹舵棌鍙樻洿#tagFamilyChange
+
+public class H0F05_tagFamilyChange : GameNetPackBasic {
+ public byte Type;
+
+ public H0F05_tagFamilyChange () {
+ _cmd = (ushort)0x0F05;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out Type, vBytes, NetDataType.BYTE);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F05_tagFamilyChange.cs.meta b/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F05_tagFamilyChange.cs.meta
new file mode 100644
index 0000000..0fdcf4d
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F05_tagFamilyChange.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 950225d931d9acd419622d2966418220
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F07_tagFamilyRenameResult.cs b/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F07_tagFamilyRenameResult.cs
new file mode 100644
index 0000000..5d03a15
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F07_tagFamilyRenameResult.cs
@@ -0,0 +1,21 @@
+using UnityEngine;
+using System.Collections;
+
+//0F 07 瀹舵棌鍚嶇О鏀瑰悕缁撴灉#tagFamilyRenameResult
+
+public class H0F07_tagFamilyRenameResult : GameNetPackBasic {
+ public byte FamilyNameLen;
+ public string FamilyName; //size = FamilyNameLen
+ public byte Reasult;
+
+ public H0F07_tagFamilyRenameResult () {
+ _cmd = (ushort)0x0F07;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out FamilyNameLen, vBytes, NetDataType.BYTE);
+ TransBytes (out FamilyName, vBytes, NetDataType.Chars, FamilyNameLen);
+ TransBytes (out Reasult, vBytes, NetDataType.BYTE);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F07_tagFamilyRenameResult.cs.meta b/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F07_tagFamilyRenameResult.cs.meta
new file mode 100644
index 0000000..e07c24a
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/H0F_Family/H0F07_tagFamilyRenameResult.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: af71867a0bf85044ab07e9ef954a630f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HA2_Package/HA204_tagMCVPackRefresh.cs b/Main/Core/NetworkPackage/ServerPack/HA2_Package/HA204_tagMCVPackRefresh.cs
index 4f4583e..b70a129 100644
--- a/Main/Core/NetworkPackage/ServerPack/HA2_Package/HA204_tagMCVPackRefresh.cs
+++ b/Main/Core/NetworkPackage/ServerPack/HA2_Package/HA204_tagMCVPackRefresh.cs
@@ -1,59 +1,31 @@
using UnityEngine;
using System.Collections;
-// A2 04 虚拟背包物品刷新 #tagMCVPackRefresh
-
-
-
-public class HA204_tagMCVPackRefresh : GameNetPackBasic {
-
- public byte PackType; //背包类型
-
- public ushort Count; // 刷新个数
-
- public tagMCVPackItem[] VPacklItemList = null; // 物品信息列表
-
-
-
- public HA204_tagMCVPackRefresh () {
-
- _cmd = (ushort)0xA204;
-
- }
-
-
-
- public override void ReadFromBytes (byte[] vBytes) {
-
- TransBytes (out PackType, vBytes, NetDataType.BYTE);
-
- TransBytes (out Count, vBytes, NetDataType.WORD);
-
- VPacklItemList = new tagMCVPackItem[Count];
-
- for (int i = 0; i < Count; i ++) {
-
- VPacklItemList[i] = new tagMCVPackItem();
-
- TransBytes (out VPacklItemList[i].ItemPlace, vBytes, NetDataType.WORD);
-
- TransBytes (out VPacklItemList[i].ItemData, vBytes, NetDataType.DWORD);
-
- }
-
- }
-
-
-
- public class tagMCVPackItem {
-
- public ushort ItemPlace; // 背包物品位置索引
-
- public uint ItemData; // 物品数据,根据不同背包类型自定义
-
- }
-
-
-
-}
-
+// A2 04 铏氭嫙鑳屽寘鐗╁搧鍒锋柊 #tagMCVPackRefresh
+
+public class HA204_tagMCVPackRefresh : GameNetPackBasic {
+ public byte PackType; //鑳屽寘绫诲瀷
+ public ushort Count; // 鍒锋柊涓暟
+ public tagMCVPackItem[] VPacklItemList; // 鐗╁搧淇℃伅鍒楄〃
+
+ public HA204_tagMCVPackRefresh () {
+ _cmd = (ushort)0xA204;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out PackType, vBytes, NetDataType.BYTE);
+ TransBytes (out Count, vBytes, NetDataType.WORD);
+ VPacklItemList = new tagMCVPackItem[Count];
+ for (int i = 0; i < Count; i ++) {
+ VPacklItemList[i] = new tagMCVPackItem();
+ TransBytes (out VPacklItemList[i].ItemPlace, vBytes, NetDataType.WORD);
+ TransBytes (out VPacklItemList[i].ItemData, vBytes, NetDataType.DWORD);
+ }
+ }
+
+ public struct tagMCVPackItem {
+ public ushort ItemPlace; // 鑳屽寘鐗╁搧浣嶇疆绱㈠紩
+ public uint ItemData; // 鐗╁搧鏁版嵁锛屾牴鎹笉鍚岃儗鍖呯被鍨嬭嚜瀹氫箟
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA2_Package/HA205_tagMCVPackClear.cs b/Main/Core/NetworkPackage/ServerPack/HA2_Package/HA205_tagMCVPackClear.cs
index 0cb719a..bfbda4c 100644
--- a/Main/Core/NetworkPackage/ServerPack/HA2_Package/HA205_tagMCVPackClear.cs
+++ b/Main/Core/NetworkPackage/ServerPack/HA2_Package/HA205_tagMCVPackClear.cs
@@ -1,21 +1,21 @@
-using UnityEngine;
-using System.Collections;
+using UnityEngine;
+using System.Collections;
+
+// A2 05 铏氭嫙鑳屽寘鐗╁搧娓呯┖ #tagMCVPackClear
-// A2 05 虚拟背包物品清空 #tagMCVPackClear
-
-public class HA205_tagMCVPackClear : GameNetPackBasic {
- public byte PackType; //背包类型
- public ushort Count;
- public ushort[] ItemPlaceList = null; //清空格子索引列表, size = Count
-
- public HA205_tagMCVPackClear () {
- _cmd = (ushort)0xA205;
- }
-
- public override void ReadFromBytes (byte[] vBytes) {
- TransBytes (out PackType, vBytes, NetDataType.BYTE);
- TransBytes (out Count, vBytes, NetDataType.WORD);
- TransBytes (out ItemPlaceList, vBytes, NetDataType.WORD, Count);
- }
-
-}
+public class HA205_tagMCVPackClear : GameNetPackBasic {
+ public byte PackType; //鑳屽寘绫诲瀷
+ public ushort Count;
+ public ushort[] ItemPlaceList; //娓呯┖鏍煎瓙绱㈠紩鍒楄〃, size = Count
+
+ public HA205_tagMCVPackClear () {
+ _cmd = (ushort)0xA205;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out PackType, vBytes, NetDataType.BYTE);
+ TransBytes (out Count, vBytes, NetDataType.WORD);
+ TransBytes (out ItemPlaceList, vBytes, NetDataType.WORD, Count);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA302_tagMCFuncOpenStateList.cs b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA302_tagMCFuncOpenStateList.cs
index 90513bd..f8ad960 100644
--- a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA302_tagMCFuncOpenStateList.cs
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA302_tagMCFuncOpenStateList.cs
@@ -1,59 +1,31 @@
using UnityEngine;
using System.Collections;
-//A3 02 鍔熻兘寮�閫氱姸鎬� #tagMCFuncOpenStateList
-
-
-
-public class HA302_tagMCFuncOpenStateList : GameNetPackBasic {
-
- public byte FuncCount; // 鍔熻兘涓暟
-
- public tagMCFuncOpenState[] FuncStateList; // 鍔熻兘鐘舵�佸垪琛�
-
-
-
- public HA302_tagMCFuncOpenStateList () {
-
- _cmd = (ushort)0xA302;
-
- }
-
-
-
- public override void ReadFromBytes (byte[] vBytes) {
-
- TransBytes (out FuncCount, vBytes, NetDataType.BYTE);
-
- FuncStateList = new tagMCFuncOpenState[FuncCount];
-
- for (int i = 0; i < FuncCount; i ++) {
-
- FuncStateList[i] = new tagMCFuncOpenState();
-
- TransBytes (out FuncStateList[i].FuncID, vBytes, NetDataType.BYTE);
-
- TransBytes (out FuncStateList[i].State, vBytes, NetDataType.BYTE);
-
- TransBytes (out FuncStateList[i].AwardState, vBytes, NetDataType.BYTE);
-
- }
-
- }
-
-
-
- public struct tagMCFuncOpenState {
-
- public byte FuncID; // 鍔熻兘ID
-
- public byte State; // 鏄惁寮�鍚�
-
- public byte AwardState; // 鏄惁宸查濂栧姳
-
- }
-
-
-
-}
-
+//A3 02 鍔熻兘寮�閫氱姸鎬� #tagMCFuncOpenStateList
+
+public class HA302_tagMCFuncOpenStateList : GameNetPackBasic {
+ public byte FuncCount; // 鍔熻兘涓暟
+ public tagMCFuncOpenState[] FuncStateList; // 鍔熻兘鐘舵�佸垪琛�
+
+ public HA302_tagMCFuncOpenStateList () {
+ _cmd = (ushort)0xA302;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out FuncCount, vBytes, NetDataType.BYTE);
+ FuncStateList = new tagMCFuncOpenState[FuncCount];
+ for (int i = 0; i < FuncCount; i ++) {
+ FuncStateList[i] = new tagMCFuncOpenState();
+ TransBytes (out FuncStateList[i].FuncID, vBytes, NetDataType.BYTE);
+ TransBytes (out FuncStateList[i].State, vBytes, NetDataType.BYTE);
+ TransBytes (out FuncStateList[i].AwardState, vBytes, NetDataType.BYTE);
+ }
+ }
+
+ public struct tagMCFuncOpenState {
+ public byte FuncID; // 鍔熻兘ID
+ public byte State; // 鏄惁寮�鍚�
+ public byte AwardState; // 鏄惁宸查濂栧姳
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA315_tagMCDailyActionCnt.cs b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA315_tagMCDailyActionCnt.cs
new file mode 100644
index 0000000..cd8dbd1
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA315_tagMCDailyActionCnt.cs
@@ -0,0 +1,35 @@
+using UnityEngine;
+using System.Collections;
+
+// A3 15 鏃ュ父娲诲姩娆℃暟閫氱煡 #tagMCDailyActionCnt
+
+public class HA315_tagMCDailyActionCnt : GameNetPackBasic {
+ public byte Count; // 涓暟
+ public tagMCDailyActionInfo[] ActionInfo; // 娲诲姩淇℃伅
+
+ public HA315_tagMCDailyActionCnt () {
+ _cmd = (ushort)0xA315;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out Count, vBytes, NetDataType.BYTE);
+ ActionInfo = new tagMCDailyActionInfo[Count];
+ for (int i = 0; i < Count; i ++) {
+ ActionInfo[i] = new tagMCDailyActionInfo();
+ TransBytes (out ActionInfo[i].ActionID, vBytes, NetDataType.DWORD);
+ TransBytes (out ActionInfo[i].DayFinishCnt, vBytes, NetDataType.WORD);
+ TransBytes (out ActionInfo[i].DayBuyTimes, vBytes, NetDataType.BYTE);
+ TransBytes (out ActionInfo[i].DayItemTimes, vBytes, NetDataType.BYTE);
+ TransBytes (out ActionInfo[i].WeekFinishCnt, vBytes, NetDataType.DWORD);
+ }
+ }
+
+ public struct tagMCDailyActionInfo {
+ public uint ActionID; // ID
+ public ushort DayFinishCnt; // 浠婃棩宸插畬鎴愭鏁�
+ public byte DayBuyTimes; // 浠婃棩璐拱娆℃暟
+ public byte DayItemTimes; // 浠婃棩鐗╁搧澧炲姞娆℃暟
+ public uint WeekFinishCnt; // 鏈懆宸插畬鎴愭鏁�
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA315_tagMCDailyActionCnt.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA315_tagMCDailyActionCnt.cs.meta
new file mode 100644
index 0000000..0a8b0d6
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA315_tagMCDailyActionCnt.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d1154c0080ab1f644a04be89788e19a8
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA320_tagMCPlayerFBInfoData.cs b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA320_tagMCPlayerFBInfoData.cs
new file mode 100644
index 0000000..515b01a
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA320_tagMCPlayerFBInfoData.cs
@@ -0,0 +1,41 @@
+using UnityEngine;
+using System.Collections;
+
+// A3 20 鐜╁鍓湰鐩稿叧淇℃伅 #tagMCPlayerFBInfoData
+
+public class HA320_tagMCPlayerFBInfoData : GameNetPackBasic {
+ public byte FBDataCnt; // 鍓湰鏁版嵁涓暟
+ public tagMCFBInfo[] FBDataList; // 鍓湰鏁版嵁鍒楄〃
+
+ public HA320_tagMCPlayerFBInfoData () {
+ _cmd = (ushort)0xA320;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out FBDataCnt, vBytes, NetDataType.BYTE);
+ FBDataList = new tagMCFBInfo[FBDataCnt];
+ for (int i = 0; i < FBDataCnt; i ++) {
+ FBDataList[i] = new tagMCFBInfo();
+ TransBytes (out FBDataList[i].FBID, vBytes, NetDataType.DWORD);
+ TransBytes (out FBDataList[i].EnterCnt, vBytes, NetDataType.WORD);
+ TransBytes (out FBDataList[i].RecoverCnt, vBytes, NetDataType.WORD);
+ TransBytes (out FBDataList[i].ItemAddCnt, vBytes, NetDataType.WORD);
+ TransBytes (out FBDataList[i].PassGradeCnt, vBytes, NetDataType.BYTE);
+ TransBytes (out FBDataList[i].PassGrade, vBytes, NetDataType.DWORD, FBDataList[i].PassGradeCnt);
+ TransBytes (out FBDataList[i].EnterCntTotal, vBytes, NetDataType.DWORD);
+ TransBytes (out FBDataList[i].PassLineID, vBytes, NetDataType.DWORD);
+ }
+ }
+
+ public struct tagMCFBInfo {
+ public uint FBID; //fbId
+ public ushort EnterCnt; //褰撴棩杩涘叆娆℃暟
+ public ushort RecoverCnt; //鎵惧洖娆℃暟
+ public ushort ItemAddCnt; //鐗╁搧澧炲姞娆℃暟
+ public byte PassGradeCnt; //鏄熺骇鍊煎搴斾釜鏁�, 姣忎釜key瀛�9涓猯ineID
+ public uint[] PassGrade; //鍓湰绾胯矾瀵瑰簲鏄熺骇鍊煎垪琛�
+ public uint EnterCntTotal; //绱杩涘叆娆℃暟
+ public uint PassLineID; //宸茶繃鍏冲埌鐨刲ineID
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA320_tagMCPlayerFBInfoData.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA320_tagMCPlayerFBInfoData.cs.meta
new file mode 100644
index 0000000..6edd4e2
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA320_tagMCPlayerFBInfoData.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 708297d42528f9040923687ac7ad8ed8
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA333_tagMCDailyActivityInfoList.cs b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA333_tagMCDailyActivityInfoList.cs
new file mode 100644
index 0000000..ecba836
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA333_tagMCDailyActivityInfoList.cs
@@ -0,0 +1,25 @@
+using UnityEngine;
+using System.Collections;
+
+//A3 33 鐜╁姣忔棩娲昏穬搴� #tagMCDailyActivityInfoList
+
+public class HA333_tagMCDailyActivityInfoList : GameNetPackBasic {
+ public uint CurValue; // 褰撳墠鎬绘椿璺冨害
+ public uint RealmPoint; // 鍙鍙栦慨琛岀偣
+ public byte StageIndex; // 褰撳墠闃舵绱㈠紩
+ public uint AwardRecord; // 棰嗗璁板綍 鎸変綅瀛樺偍
+ public uint ExtraPoint; // 澶氬�嶆椿鍔ㄨ幏寰楃殑棰濆淇鐐�
+
+ public HA333_tagMCDailyActivityInfoList () {
+ _cmd = (ushort)0xA333;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out CurValue, vBytes, NetDataType.DWORD);
+ TransBytes (out RealmPoint, vBytes, NetDataType.DWORD);
+ TransBytes (out StageIndex, vBytes, NetDataType.BYTE);
+ TransBytes (out AwardRecord, vBytes, NetDataType.DWORD);
+ TransBytes (out ExtraPoint, vBytes, NetDataType.DWORD);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA333_tagMCDailyActivityInfoList.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA333_tagMCDailyActivityInfoList.cs.meta
new file mode 100644
index 0000000..7a5213c
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA333_tagMCDailyActivityInfoList.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d9268bc57bc1f774c918ea4708963d44
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA350_tagMCTreasureResult.cs b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA350_tagMCTreasureResult.cs
new file mode 100644
index 0000000..2788cbe
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA350_tagMCTreasureResult.cs
@@ -0,0 +1,25 @@
+using UnityEngine;
+using System.Collections;
+
+// A3 50 閫氱煡瀵诲疂缁撴灉 #tagMCTreasureResult
+
+public class HA350_tagMCTreasureResult : GameNetPackBasic {
+ public byte AddMoneyType; // 鏈瀵诲疂澧炲姞鐨勭Н鍒嗚揣甯佺被鍨嬶紝鍙兘涓�0
+ public ushort AddMoneyValue; // 鏈瀵诲疂澧炲姞鐨勭Н鍒嗚揣甯佸�硷紝鍙兘涓�0
+ public ushort AddTreasureLuck; // 鏈瀵诲疂澧炲姞鐨勫垢杩愬��
+ public ushort TreasureResultLen;
+ public string TreasureResult; // 鑾峰緱鐗╁搧缁撴灉[[鏍煎瓙缂栧彿, 鐗╁搧ID,涓暟,鏄惁缁戝畾], ...]
+
+ public HA350_tagMCTreasureResult () {
+ _cmd = (ushort)0xA350;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out AddMoneyType, vBytes, NetDataType.BYTE);
+ TransBytes (out AddMoneyValue, vBytes, NetDataType.WORD);
+ TransBytes (out AddTreasureLuck, vBytes, NetDataType.WORD);
+ TransBytes (out TreasureResultLen, vBytes, NetDataType.WORD);
+ TransBytes (out TreasureResult, vBytes, NetDataType.Chars, TreasureResultLen);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA350_tagMCTreasureResult.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA350_tagMCTreasureResult.cs.meta
new file mode 100644
index 0000000..c8c3b42
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA350_tagMCTreasureResult.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a3fdc43cd98308c46bd83a042aacd858
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA351_tagMCTreasureInfo.cs b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA351_tagMCTreasureInfo.cs
new file mode 100644
index 0000000..0d21cb5
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA351_tagMCTreasureInfo.cs
@@ -0,0 +1,51 @@
+using UnityEngine;
+using System.Collections;
+
+// A3 51 瀵诲疂鍔熻兘淇℃伅 #tagMCTreasureInfo
+
+public class HA351_tagMCTreasureInfo : GameNetPackBasic {
+ public byte InfoCount; // 瀵诲疂绫诲瀷淇℃伅鏁�
+ public tagMCTreasureTypeInfo[] TreasuerInfoList; // 瀵诲疂绫诲瀷淇℃伅鍒楄〃
+
+ public HA351_tagMCTreasureInfo () {
+ _cmd = (ushort)0xA351;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out InfoCount, vBytes, NetDataType.BYTE);
+ TreasuerInfoList = new tagMCTreasureTypeInfo[InfoCount];
+ for (int i = 0; i < InfoCount; i ++) {
+ TreasuerInfoList[i] = new tagMCTreasureTypeInfo();
+ TransBytes (out TreasuerInfoList[i].TreasureType, vBytes, NetDataType.BYTE);
+ TransBytes (out TreasuerInfoList[i].LuckValue, vBytes, NetDataType.WORD);
+ TransBytes (out TreasuerInfoList[i].TreasureCount, vBytes, NetDataType.DWORD);
+ TransBytes (out TreasuerInfoList[i].TreasureCountToday, vBytes, NetDataType.DWORD);
+ TransBytes (out TreasuerInfoList[i].FreeCountToday, vBytes, NetDataType.WORD);
+ TransBytes (out TreasuerInfoList[i].TreasureCntAward, vBytes, NetDataType.DWORD);
+ TransBytes (out TreasuerInfoList[i].GridLimitCnt, vBytes, NetDataType.BYTE);
+ TreasuerInfoList[i].GridLimitCntList = new tagMCTreasureGridLimit[TreasuerInfoList[i].GridLimitCnt];
+ for (int j = 0; j < TreasuerInfoList[i].GridLimitCnt; j ++) {
+ TreasuerInfoList[i].GridLimitCntList[j] = new tagMCTreasureGridLimit();
+ TransBytes (out TreasuerInfoList[i].GridLimitCntList[j].GridNum, vBytes, NetDataType.BYTE);
+ TransBytes (out TreasuerInfoList[i].GridLimitCntList[j].GridCnt, vBytes, NetDataType.WORD);
+ }
+ }
+ }
+
+ public struct tagMCTreasureTypeInfo {
+ public byte TreasureType; //瀵诲疂绫诲瀷
+ public ushort LuckValue; //褰撳墠骞歌繍鍊�
+ public uint TreasureCount; //宸插瀹濇�绘鏁�
+ public uint TreasureCountToday; //浠婃棩宸插瀹濇�绘鏁�
+ public ushort FreeCountToday; //浠婃棩宸插厤璐瑰瀹濇鏁�
+ public uint TreasureCntAward; //绱瀵诲疂娆℃暟瀵瑰簲濂栧姳棰嗗鐘舵�侊紝鎸夊鍔辫褰曠储寮曚簩杩涘埗璁板綍鏄惁宸查鍙�
+ public byte GridLimitCnt;
+ public tagMCTreasureGridLimit[] GridLimitCntList; //鏈夐檺鍒舵娊鍙栨鏁扮殑鏍煎瓙娆℃暟淇℃伅
+ }
+
+ public struct tagMCTreasureGridLimit {
+ public byte GridNum; // 鏈夐檺鍒舵娊鍙栨鏁扮殑鏍煎瓙缂栧彿
+ public ushort GridCnt; // 宸叉娊鍒版鏁�
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA351_tagMCTreasureInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA351_tagMCTreasureInfo.cs.meta
new file mode 100644
index 0000000..38fce29
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA351_tagMCTreasureInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: bda573ae76c7498489f0b11e1cdc7e72
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA3BD_tagMCBuyEnterInfo.cs b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA3BD_tagMCBuyEnterInfo.cs
new file mode 100644
index 0000000..91342ba
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA3BD_tagMCBuyEnterInfo.cs
@@ -0,0 +1,29 @@
+using UnityEngine;
+using System.Collections;
+
+// A3 BD 閫氱煡鐜╁璐拱鍓湰杩涘叆娆℃暟 #tagMCBuyEnterInfo
+
+public class HA3BD_tagMCBuyEnterInfo : GameNetPackBasic {
+ public byte FBCount; // 鍓湰涓暟
+ public tagMCBuyInfo[] FBInfo; // 鍓湰淇℃伅
+
+ public HA3BD_tagMCBuyEnterInfo () {
+ _cmd = (ushort)0xA3BD;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out FBCount, vBytes, NetDataType.BYTE);
+ FBInfo = new tagMCBuyInfo[FBCount];
+ for (int i = 0; i < FBCount; i ++) {
+ FBInfo[i] = new tagMCBuyInfo();
+ TransBytes (out FBInfo[i].FBID, vBytes, NetDataType.DWORD);
+ TransBytes (out FBInfo[i].BuyCount, vBytes, NetDataType.BYTE);
+ }
+ }
+
+ public struct tagMCBuyInfo {
+ public uint FBID; // 鍓湰ID
+ public byte BuyCount; // 宸茶喘涔版鏁�
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA3BD_tagMCBuyEnterInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA3BD_tagMCBuyEnterInfo.cs.meta
new file mode 100644
index 0000000..27b656b
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA3_Function/HA3BD_tagMCBuyEnterInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 80576833514e12944a49e79b60783a0b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HA4_Family.meta b/Main/Core/NetworkPackage/ServerPack/HA4_Family.meta
new file mode 100644
index 0000000..060d171
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA4_Family.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0104877468a82854e89b3b06fae86dde
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA401_tagGCViewFamilyRequestInfo.cs b/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA401_tagGCViewFamilyRequestInfo.cs
new file mode 100644
index 0000000..68b1473
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA401_tagGCViewFamilyRequestInfo.cs
@@ -0,0 +1,43 @@
+using UnityEngine;
+using System.Collections;
+
+//A4 01 鏌ョ湅鐢宠鍏ヤ細鐨勭帺瀹朵俊鎭� #tagGCViewFamilyRequestInfo
+
+public class HA401_tagGCViewFamilyRequestInfo : GameNetPackBasic {
+ public byte RequestMemberCount; //鐢宠鎴愬憳鐨勬暟閲�
+ public tagtMemberInfo[] MemberInfo; //size = RequestMemberCount
+
+ public HA401_tagGCViewFamilyRequestInfo () {
+ _cmd = (ushort)0xA401;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out RequestMemberCount, vBytes, NetDataType.BYTE);
+ MemberInfo = new tagtMemberInfo[RequestMemberCount];
+ for (int i = 0; i < RequestMemberCount; i ++) {
+ MemberInfo[i] = new tagtMemberInfo();
+ TransBytes (out MemberInfo[i].PlayerID, vBytes, NetDataType.DWORD);
+ TransBytes (out MemberInfo[i].NameLen, vBytes, NetDataType.BYTE);
+ TransBytes (out MemberInfo[i].Name, vBytes, NetDataType.Chars, MemberInfo[i].NameLen);
+ TransBytes (out MemberInfo[i].PlayerLV, vBytes, NetDataType.WORD);
+ TransBytes (out MemberInfo[i].PlayeJob, vBytes, NetDataType.BYTE);
+ TransBytes (out MemberInfo[i].PlayeFightPower, vBytes, NetDataType.DWORD);
+ TransBytes (out MemberInfo[i].PlayeFightPowerEx, vBytes, NetDataType.DWORD);
+ TransBytes (out MemberInfo[i].RequestTime, vBytes, NetDataType.DWORD);
+ TransBytes (out MemberInfo[i].IsOnLine, vBytes, NetDataType.BYTE);
+ }
+ }
+
+ public struct tagtMemberInfo {
+ public uint PlayerID; //鐜╁ID
+ public byte NameLen; //鍚嶅瓧闀垮害
+ public string Name; //size=NameLen
+ public ushort PlayerLV; //鐜╁绛夌骇
+ public byte PlayeJob; //鐜╁鑱屼笟
+ public uint PlayeFightPower; //鐜╁鎴樻枟鍔涳紝姹備綑浜块儴鍒�
+ public uint PlayeFightPowerEx; //鐜╁鎴樻枟鍔涳紝鏁撮櫎浜块儴鍒嗭紝1浠h〃1浜�
+ public uint RequestTime; //鐢宠鏃堕棿
+ public byte IsOnLine; //鏄惁鍦ㄧ嚎
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA401_tagGCViewFamilyRequestInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA401_tagGCViewFamilyRequestInfo.cs.meta
new file mode 100644
index 0000000..a3b5943
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA401_tagGCViewFamilyRequestInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: fb779807ef5c5d645bb800c1be9540f1
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA403_tagGCFamilyActionInfo.cs b/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA403_tagGCFamilyActionInfo.cs
new file mode 100644
index 0000000..d0d1237
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA403_tagGCFamilyActionInfo.cs
@@ -0,0 +1,51 @@
+using UnityEngine;
+using System.Collections;
+
+// A4 03 瀹舵棌琛屼负淇℃伅 #tagGCFamilyActionInfo
+
+public class HA403_tagGCFamilyActionInfo : GameNetPackBasic {
+ public uint FamilyID; //瀹舵棌ID
+ public byte ActionType; //绫诲瀷
+ public ushort Count; //鏁伴噺
+ public tagGCFamilyAction[] FamilyActionList; //size = Count
+
+ public HA403_tagGCFamilyActionInfo () {
+ _cmd = (ushort)0xA403;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out FamilyID, vBytes, NetDataType.DWORD);
+ TransBytes (out ActionType, vBytes, NetDataType.BYTE);
+ TransBytes (out Count, vBytes, NetDataType.WORD);
+ FamilyActionList = new tagGCFamilyAction[Count];
+ for (int i = 0; i < Count; i ++) {
+ FamilyActionList[i] = new tagGCFamilyAction();
+ TransBytes (out FamilyActionList[i].Time, vBytes, NetDataType.DWORD);
+ TransBytes (out FamilyActionList[i].NameLen, vBytes, NetDataType.BYTE);
+ TransBytes (out FamilyActionList[i].Name, vBytes, NetDataType.Chars, FamilyActionList[i].NameLen);
+ TransBytes (out FamilyActionList[i].Value1, vBytes, NetDataType.DWORD);
+ TransBytes (out FamilyActionList[i].Value2, vBytes, NetDataType.DWORD);
+ TransBytes (out FamilyActionList[i].Value3, vBytes, NetDataType.DWORD);
+ TransBytes (out FamilyActionList[i].Value4, vBytes, NetDataType.DWORD);
+ TransBytes (out FamilyActionList[i].Value5, vBytes, NetDataType.DWORD);
+ TransBytes (out FamilyActionList[i].Value6, vBytes, NetDataType.DWORD);
+ TransBytes (out FamilyActionList[i].UseDataLen, vBytes, NetDataType.WORD);
+ TransBytes (out FamilyActionList[i].UseData, vBytes, NetDataType.Chars, FamilyActionList[i].UseDataLen);
+ }
+ }
+
+ public struct tagGCFamilyAction {
+ public uint Time; //鏃堕棿
+ public byte NameLen;
+ public string Name;
+ public uint Value1; //鏁板��1
+ public uint Value2; //鏁板��2
+ public uint Value3; //鏁板��3
+ public uint Value4; //鏁板��4
+ public uint Value5; //鏁板��5
+ public uint Value6; //鏁板��6
+ public ushort UseDataLen;
+ public string UseData;
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA403_tagGCFamilyActionInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA403_tagGCFamilyActionInfo.cs.meta
new file mode 100644
index 0000000..e2d07c0
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA403_tagGCFamilyActionInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0cad2776dfad50f46b1afb2e93b10603
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA408_tagGCPyAllFamilyView.cs b/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA408_tagGCPyAllFamilyView.cs
new file mode 100644
index 0000000..564ff73
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA408_tagGCPyAllFamilyView.cs
@@ -0,0 +1,61 @@
+using UnityEngine;
+using System.Collections;
+
+// A4 08 鏌ョ湅瀹舵棌 #tagGCPyAllFamilyView
+
+public class HA408_tagGCPyAllFamilyView : GameNetPackBasic {
+ public uint TotalCount; //涓�鍏辨湁澶氬皯椤�
+ public ushort CurPage; //褰撳墠绗嚑椤�, 姣忛〉涓暟:FAMILY_VIEW_PAGE_COUNT
+ public byte PageCount; //杩欎竴椤垫湁澶氬皯鏁扮洰
+ public tagGCPyFamilyView[] Family; //size = PageCount
+ public byte IsSearching; //鏄惁鍦ㄦā绯婃悳绱㈢姸鎬佷笅
+
+ public HA408_tagGCPyAllFamilyView () {
+ _cmd = (ushort)0xA408;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out TotalCount, vBytes, NetDataType.DWORD);
+ TransBytes (out CurPage, vBytes, NetDataType.WORD);
+ TransBytes (out PageCount, vBytes, NetDataType.BYTE);
+ Family = new tagGCPyFamilyView[PageCount];
+ for (int i = 0; i < PageCount; i ++) {
+ Family[i] = new tagGCPyFamilyView();
+ TransBytes (out Family[i].FamilyIndex, vBytes, NetDataType.WORD);
+ TransBytes (out Family[i].FamilyID, vBytes, NetDataType.DWORD);
+ TransBytes (out Family[i].FamilyNameLen, vBytes, NetDataType.BYTE);
+ TransBytes (out Family[i].FamilyName, vBytes, NetDataType.Chars, Family[i].FamilyNameLen);
+ TransBytes (out Family[i].LeaderID, vBytes, NetDataType.DWORD);
+ TransBytes (out Family[i].LeaderNameLen, vBytes, NetDataType.BYTE);
+ TransBytes (out Family[i].LeaderName, vBytes, NetDataType.Chars, Family[i].LeaderNameLen);
+ TransBytes (out Family[i].LeaderOfficialRank, vBytes, NetDataType.BYTE);
+ TransBytes (out Family[i].FamilyLV, vBytes, NetDataType.WORD);
+ TransBytes (out Family[i].FamilyMemberCount, vBytes, NetDataType.WORD);
+ TransBytes (out Family[i].JoinAccept, vBytes, NetDataType.BYTE);
+ TransBytes (out Family[i].WarRank, vBytes, NetDataType.BYTE);
+ TransBytes (out Family[i].TotalFightPower, vBytes, NetDataType.DWORD);
+ TransBytes (out Family[i].TotalFightPowerEx, vBytes, NetDataType.DWORD);
+ TransBytes (out Family[i].EmblemID, vBytes, NetDataType.BYTE);
+ }
+ TransBytes (out IsSearching, vBytes, NetDataType.BYTE);
+ }
+
+ public struct tagGCPyFamilyView {
+ public ushort FamilyIndex;
+ public uint FamilyID; //瀹舵棌ID
+ public byte FamilyNameLen;
+ public string FamilyName; //size = FamilyNameLen
+ public uint LeaderID; //鏃忛暱ID
+ public byte LeaderNameLen;
+ public string LeaderName; //size = LeaderNameLen
+ public byte LeaderOfficialRank; //澧冪晫
+ public ushort FamilyLV; //瀹舵棌绛夌骇
+ public ushort FamilyMemberCount; //瀹舵棌浜烘暟
+ public byte JoinAccept; //鐢宠鐘舵��
+ public byte WarRank; //鑱旇禌鎺掑悕
+ public uint TotalFightPower; //鎬绘垬鍔涳紝涓嶈冻1涓嚎鐨勯儴鍒�
+ public uint TotalFightPowerEx; //鎬绘垬鍔涚偣锛�1鐐�=1浜�
+ public byte EmblemID; //寰界珷ID
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA408_tagGCPyAllFamilyView.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA408_tagGCPyAllFamilyView.cs.meta
new file mode 100644
index 0000000..678fa24
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA408_tagGCPyAllFamilyView.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b51502160c7609d4887c91c073d3c368
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA40D_tagGCServerCreatFamilyTimes.cs b/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA40D_tagGCServerCreatFamilyTimes.cs
new file mode 100644
index 0000000..7e90940
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA40D_tagGCServerCreatFamilyTimes.cs
@@ -0,0 +1,17 @@
+using UnityEngine;
+using System.Collections;
+
+// A4 0D 閫氱煡寤虹洘娆℃暟 #tagGCServerCreatFamilyTimes
+
+public class HA40D_tagGCServerCreatFamilyTimes : GameNetPackBasic {
+ public uint Times; //寤虹洘娆℃暟
+
+ public HA40D_tagGCServerCreatFamilyTimes () {
+ _cmd = (ushort)0xA40D;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out Times, vBytes, NetDataType.DWORD);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA40D_tagGCServerCreatFamilyTimes.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA40D_tagGCServerCreatFamilyTimes.cs.meta
new file mode 100644
index 0000000..390e73e
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA4_Family/HA40D_tagGCServerCreatFamilyTimes.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f2706ea0c5db130479182de47640b14b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HA5_Family.meta b/Main/Core/NetworkPackage/ServerPack/HA5_Family.meta
new file mode 100644
index 0000000..ac92f33
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA5_Family.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8cb3012ef0278a84386a3d2333385eb8
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA501_tagMCNotifyRequestJoinFamilyInfo.cs b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA501_tagMCNotifyRequestJoinFamilyInfo.cs
new file mode 100644
index 0000000..ef7e9af
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA501_tagMCNotifyRequestJoinFamilyInfo.cs
@@ -0,0 +1,19 @@
+using UnityEngine;
+using System.Collections;
+
+//A5 01 宸茬敵璇峰姞鍏ョ殑瀹舵棌淇℃伅 #tagMCNotifyRequestJoinFamilyInfo
+
+public class HA501_tagMCNotifyRequestJoinFamilyInfo : GameNetPackBasic {
+ public byte RequestCount; //鐢宠鐨勬暟閲�
+ public uint[] RequestJoinFamilyIDList; //size = RequestCount
+
+ public HA501_tagMCNotifyRequestJoinFamilyInfo () {
+ _cmd = (ushort)0xA501;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out RequestCount, vBytes, NetDataType.BYTE);
+ TransBytes (out RequestJoinFamilyIDList, vBytes, NetDataType.DWORD, RequestCount);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA501_tagMCNotifyRequestJoinFamilyInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA501_tagMCNotifyRequestJoinFamilyInfo.cs.meta
new file mode 100644
index 0000000..e757ee1
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA5_Family/HA501_tagMCNotifyRequestJoinFamilyInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ad5cdc672228430469644d061e23152f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HA7_Interaction/HA721_tagMCEmojiPackInfo.cs b/Main/Core/NetworkPackage/ServerPack/HA7_Interaction/HA721_tagMCEmojiPackInfo.cs
new file mode 100644
index 0000000..38c4349
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA7_Interaction/HA721_tagMCEmojiPackInfo.cs
@@ -0,0 +1,31 @@
+using UnityEngine;
+using System.Collections;
+
+// A7 21 琛ㄦ儏鍖呬俊鎭� #tagMCEmojiPackInfo
+
+public class HA721_tagMCEmojiPackInfo : GameNetPackBasic {
+ public byte Count;
+ public tagMCEmojiPack[] EmojiPackList;
+
+ public HA721_tagMCEmojiPackInfo () {
+ _cmd = (ushort)0xA721;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out Count, vBytes, NetDataType.BYTE);
+ EmojiPackList = new tagMCEmojiPack[Count];
+ for (int i = 0; i < Count; i ++) {
+ EmojiPackList[i] = new tagMCEmojiPack();
+ TransBytes (out EmojiPackList[i].PackID, vBytes, NetDataType.BYTE);
+ TransBytes (out EmojiPackList[i].State, vBytes, NetDataType.BYTE);
+ TransBytes (out EmojiPackList[i].EndTime, vBytes, NetDataType.DWORD);
+ }
+ }
+
+ public struct tagMCEmojiPack {
+ public byte PackID; //琛ㄦ儏鍖匢D
+ public byte State; //鏄惁宸叉縺娲�
+ public uint EndTime; //鍒版湡鏃堕棿鎴筹紝0涓烘案涔�
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA7_Interaction/HA721_tagMCEmojiPackInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA7_Interaction/HA721_tagMCEmojiPackInfo.cs.meta
new file mode 100644
index 0000000..1e6bcbf
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA7_Interaction/HA721_tagMCEmojiPackInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c33dee2148092354f9d6f8404713ea4a
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HA8_Item/HA802_tagMCShopItemDayBuyCntInfo.cs b/Main/Core/NetworkPackage/ServerPack/HA8_Item/HA802_tagMCShopItemDayBuyCntInfo.cs
new file mode 100644
index 0000000..901abf8
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA8_Item/HA802_tagMCShopItemDayBuyCntInfo.cs
@@ -0,0 +1,31 @@
+using UnityEngine;
+using System.Collections;
+
+// A8 02 閫氱煡NPC鍟嗗簵鐗╁搧浠婃棩宸茶喘涔版鏁� #tagMCShopItemDayBuyCntInfo
+
+public class HA802_tagMCShopItemDayBuyCntInfo : GameNetPackBasic {
+ public ushort Count; //閫氱煡涓暟锛屾敞鎰忎笉闄愬埗姣忔棩璐拱娆℃暟鐨勯粯璁や笉閫氱煡
+ public tagMCShopItemDayBuyCnt[] DayBuyCntList;
+
+ public HA802_tagMCShopItemDayBuyCntInfo () {
+ _cmd = (ushort)0xA802;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out Count, vBytes, NetDataType.WORD);
+ DayBuyCntList = new tagMCShopItemDayBuyCnt[Count];
+ for (int i = 0; i < Count; i ++) {
+ DayBuyCntList[i] = new tagMCShopItemDayBuyCnt();
+ TransBytes (out DayBuyCntList[i].ItemIndex, vBytes, NetDataType.DWORD);
+ TransBytes (out DayBuyCntList[i].BuyCnt, vBytes, NetDataType.DWORD);
+ TransBytes (out DayBuyCntList[i].IsReset, vBytes, NetDataType.BYTE);
+ }
+ }
+
+ public struct tagMCShopItemDayBuyCnt {
+ public uint ItemIndex;
+ public uint BuyCnt; // 浠婃棩宸茶喘涔版鏁�
+ public byte IsReset; //鏄惁閲嶇疆
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA8_Item/HA802_tagMCShopItemDayBuyCntInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA8_Item/HA802_tagMCShopItemDayBuyCntInfo.cs.meta
new file mode 100644
index 0000000..80dfcd7
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA8_Item/HA802_tagMCShopItemDayBuyCntInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: cbdb66c5b2f98534ca9f73a2b9b281e0
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HA8_Item/HA811_tagMCShoppingResult.cs b/Main/Core/NetworkPackage/ServerPack/HA8_Item/HA811_tagMCShoppingResult.cs
new file mode 100644
index 0000000..a0592ff
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA8_Item/HA811_tagMCShoppingResult.cs
@@ -0,0 +1,19 @@
+using UnityEngine;
+using System.Collections;
+
+// A8 11 鍟嗗簵璐拱缁撴灉 #tagMCShoppingResult
+
+public class HA811_tagMCShoppingResult : GameNetPackBasic {
+ public uint ItemIndex;
+ public uint ItemCnt; //璐拱鏁伴噺
+
+ public HA811_tagMCShoppingResult () {
+ _cmd = (ushort)0xA811;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out ItemIndex, vBytes, NetDataType.DWORD);
+ TransBytes (out ItemCnt, vBytes, NetDataType.DWORD);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HA8_Item/HA811_tagMCShoppingResult.cs.meta b/Main/Core/NetworkPackage/ServerPack/HA8_Item/HA811_tagMCShoppingResult.cs.meta
new file mode 100644
index 0000000..19048ca
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HA8_Item/HA811_tagMCShoppingResult.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: d60a47c2cc066fd4591828a8598e0759
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA01_tagMCTotalLoginDayCntInfo.cs b/Main/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA01_tagMCTotalLoginDayCntInfo.cs
new file mode 100644
index 0000000..ef3672f
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA01_tagMCTotalLoginDayCntInfo.cs
@@ -0,0 +1,19 @@
+using UnityEngine;
+using System.Collections;
+
+//AA 01 绱鐧婚檰澶╂暟淇℃伅 #tagMCTotalLoginDayCntInfo
+
+public class HAA01_tagMCTotalLoginDayCntInfo : GameNetPackBasic {
+ public ushort DayCnt; //绱鐧婚檰澶╂暟
+ public ushort AwardInfo; //鐧婚檰棰嗗彇鎯呭喌
+
+ public HAA01_tagMCTotalLoginDayCntInfo () {
+ _cmd = (ushort)0xAA01;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out DayCnt, vBytes, NetDataType.WORD);
+ TransBytes (out AwardInfo, vBytes, NetDataType.WORD);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA01_tagMCTotalLoginDayCntInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA01_tagMCTotalLoginDayCntInfo.cs.meta
new file mode 100644
index 0000000..75cd5ad
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA01_tagMCTotalLoginDayCntInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9850c1ba7bfe50241a3fc316683f425b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA03_tagMCDailyPackBuyGiftInfo.cs b/Main/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA03_tagMCDailyPackBuyGiftInfo.cs
new file mode 100644
index 0000000..c5ace0d
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA03_tagMCDailyPackBuyGiftInfo.cs
@@ -0,0 +1,21 @@
+using UnityEngine;
+using System.Collections;
+
+// AA 03 姣忔棩鎵撳寘鐩磋喘绀煎寘 #tagMCDailyPackBuyGiftInfo
+
+public class HAA03_tagMCDailyPackBuyGiftInfo : GameNetPackBasic {
+ public uint PackBuyTime; // 鎵撳寘璐拱鐨勬椂闂存埑锛屽鏋滄湁璇ュ�硷紝浠h〃宸茬粡涓�娆℃�ф墦鍖呰喘涔颁簡锛屽彲鏍规嵁娆℃椂闂存埑绠楀嚭褰撳墠鏄鍑犲ぉ
+ public uint BuyStateToday; // 浠婃棩绀煎寘璐拱鐘舵�侊紝鎸夌ぜ鍖呯储寮曚簩杩涘埗浣嶈绠椾唬琛ㄦ槸鍚﹀凡璐拱锛屼粎闈炴墦鍖呰喘涔扮姸鎬佷笅鏈夌敤
+ public uint AwardState; // 浠婃棩绀煎寘棰嗗鐘舵�侊紝鎸夌ぜ鍖呯储寮曚簩杩涘埗浣嶈绠椾唬琛ㄦ槸鍚﹀凡棰嗗彇
+
+ public HAA03_tagMCDailyPackBuyGiftInfo () {
+ _cmd = (ushort)0xAA03;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out PackBuyTime, vBytes, NetDataType.DWORD);
+ TransBytes (out BuyStateToday, vBytes, NetDataType.DWORD);
+ TransBytes (out AwardState, vBytes, NetDataType.DWORD);
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA03_tagMCDailyPackBuyGiftInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA03_tagMCDailyPackBuyGiftInfo.cs.meta
new file mode 100644
index 0000000..353869e
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HAA_SaleActivity/HAA03_tagMCDailyPackBuyGiftInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3251d66348da046409ba03bd7a29e5cc
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB117_tagMCFaceInfo.cs b/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB117_tagMCFaceInfo.cs
new file mode 100644
index 0000000..6f64ecb
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB117_tagMCFaceInfo.cs
@@ -0,0 +1,33 @@
+using UnityEngine;
+using System.Collections;
+
+// B1 17 澶村儚淇℃伅 #tagMCFaceInfo
+
+public class HB117_tagMCFaceInfo : GameNetPackBasic {
+ public byte Count;
+ public tagMCFace[] FaceList;
+
+ public HB117_tagMCFaceInfo () {
+ _cmd = (ushort)0xB117;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out Count, vBytes, NetDataType.BYTE);
+ FaceList = new tagMCFace[Count];
+ for (int i = 0; i < Count; i ++) {
+ FaceList[i] = new tagMCFace();
+ TransBytes (out FaceList[i].FaceID, vBytes, NetDataType.DWORD);
+ TransBytes (out FaceList[i].State, vBytes, NetDataType.BYTE);
+ TransBytes (out FaceList[i].EndTime, vBytes, NetDataType.DWORD);
+ TransBytes (out FaceList[i].Star, vBytes, NetDataType.BYTE);
+ }
+ }
+
+ public struct tagMCFace {
+ public uint FaceID; //澶村儚ID
+ public byte State; //鏄惁宸叉縺娲�
+ public uint EndTime; //鍒版湡鏃堕棿鎴筹紝0涓烘案涔�
+ public byte Star; //鏄熺骇
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB117_tagMCFaceInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB117_tagMCFaceInfo.cs.meta
new file mode 100644
index 0000000..1603b46
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB117_tagMCFaceInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2f4717fe26fb26a4ca7383abc2c6c325
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB118_tagMCFacePicInfo.cs b/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB118_tagMCFacePicInfo.cs
new file mode 100644
index 0000000..aa27131
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB118_tagMCFacePicInfo.cs
@@ -0,0 +1,33 @@
+using UnityEngine;
+using System.Collections;
+
+// B1 18 澶村儚妗嗕俊鎭� #tagMCFacePicInfo
+
+public class HB118_tagMCFacePicInfo : GameNetPackBasic {
+ public byte Count;
+ public tagMCFacePic[] FacePicList;
+
+ public HB118_tagMCFacePicInfo () {
+ _cmd = (ushort)0xB118;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out Count, vBytes, NetDataType.BYTE);
+ FacePicList = new tagMCFacePic[Count];
+ for (int i = 0; i < Count; i ++) {
+ FacePicList[i] = new tagMCFacePic();
+ TransBytes (out FacePicList[i].FacePicID, vBytes, NetDataType.DWORD);
+ TransBytes (out FacePicList[i].State, vBytes, NetDataType.BYTE);
+ TransBytes (out FacePicList[i].EndTime, vBytes, NetDataType.DWORD);
+ TransBytes (out FacePicList[i].Star, vBytes, NetDataType.BYTE);
+ }
+ }
+
+ public struct tagMCFacePic {
+ public uint FacePicID; //澶村儚妗咺D
+ public byte State; //鏄惁宸叉縺娲�
+ public uint EndTime; //鍒版湡鏃堕棿鎴筹紝0涓烘案涔�
+ public byte Star; //鏄熺骇
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB118_tagMCFacePicInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB118_tagMCFacePicInfo.cs.meta
new file mode 100644
index 0000000..e861c73
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB118_tagMCFacePicInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b394ab9b3d94b834d9d549a52fcd7aca
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB120_tagMCZhanlingInfo.cs b/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB120_tagMCZhanlingInfo.cs
new file mode 100644
index 0000000..54c82cd
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB120_tagMCZhanlingInfo.cs
@@ -0,0 +1,43 @@
+using UnityEngine;
+using System.Collections;
+
+// B1 20 鎴樹护淇℃伅 #tagMCZhanlingInfo
+
+public class HB120_tagMCZhanlingInfo : GameNetPackBasic {
+ public byte ZhanlingType; // 鎴樹护绫诲瀷
+ public byte IsActivite; // 鏅�氭垬浠ゆ槸鍚﹀凡婵�娲�
+ public byte IsActiviteH; // 楂樼骇鎴樹护鏄惁宸叉縺娲�
+ public uint AllFinishTime; // 鍏ㄩ儴濂栧姳棰嗗彇瀹屾瘯鐨勬椂闂存埑锛屾湭瀹屾瘯鏃惰鍊间负0锛屽悗绔細鍦�0鐐硅繃澶╂椂妫�鏌ュ彲鍚﹂噸缃紝鍓嶇鑷鍋氬�掕鏃惰〃鐜板嵆鍙�
+ public uint Value1; // 鎴樹护瀵瑰簲鐨勮嚜瀹氫箟鍊硷紝鍙�夛紝濡傜櫥褰曟垬浠や唬琛ㄥ紑濮嬭绠楁棩鏈熸椂闂存埑
+ public ushort RewardCount;
+ public tagMCZhanling[] RewardList;
+
+ public HB120_tagMCZhanlingInfo () {
+ _cmd = (ushort)0xB120;
+ }
+
+ public override void ReadFromBytes (byte[] vBytes) {
+ TransBytes (out ZhanlingType, vBytes, NetDataType.BYTE);
+ TransBytes (out IsActivite, vBytes, NetDataType.BYTE);
+ TransBytes (out IsActiviteH, vBytes, NetDataType.BYTE);
+ TransBytes (out AllFinishTime, vBytes, NetDataType.DWORD);
+ TransBytes (out Value1, vBytes, NetDataType.DWORD);
+ TransBytes (out RewardCount, vBytes, NetDataType.WORD);
+ RewardList = new tagMCZhanling[RewardCount];
+ for (int i = 0; i < RewardCount; i ++) {
+ RewardList[i] = new tagMCZhanling();
+ TransBytes (out RewardList[i].NeedValue, vBytes, NetDataType.DWORD);
+ TransBytes (out RewardList[i].FreeRewardState, vBytes, NetDataType.BYTE);
+ TransBytes (out RewardList[i].ZLRewardState, vBytes, NetDataType.BYTE);
+ TransBytes (out RewardList[i].ZLRewardStateH, vBytes, NetDataType.BYTE);
+ }
+ }
+
+ public struct tagMCZhanling {
+ public uint NeedValue; // 濂栧姳鎵�闇�鍊�
+ public byte FreeRewardState; // 鍏嶈垂鎴樹护濂栧姳鏄惁宸查鍙�
+ public byte ZLRewardState; // 鏅�氭垬浠ゅ鍔辨槸鍚﹀凡棰嗗彇
+ public byte ZLRewardStateH; // 楂樼骇鎴樹护濂栧姳鏄惁宸查鍙�
+ }
+
+}
diff --git a/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB120_tagMCZhanlingInfo.cs.meta b/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB120_tagMCZhanlingInfo.cs.meta
new file mode 100644
index 0000000..7fa2e84
--- /dev/null
+++ b/Main/Core/NetworkPackage/ServerPack/HB1_Role/HB120_tagMCZhanlingInfo.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0e071807fae559549967fa314e4a8105
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Main.cs b/Main/Main.cs
index 6260096..9500691 100644
--- a/Main/Main.cs
+++ b/Main/Main.cs
@@ -48,6 +48,25 @@
managers.Add(RoleParticularModel.Instance);
managers.Add(RechargeManager.Instance);
managers.Add(RoleParticularModel.Instance);
+ managers.Add(StoreModel.Instance);
+ managers.Add(PhantasmPavilionModel.Instance);
+ managers.Add(FairyModel.Instance);
+ managers.Add(TeamManager.Instance);
+ managers.Add(TaskManager.Instance);
+ managers.Add(DailySpecialsModel.Instance);
+ managers.Add(MailManager.Instance);
+ managers.Add(PackManager.Instance);
+ managers.Add(HappyXBModel.Instance);
+ managers.Add(HeroManager.Instance);
+ managers.Add(GMCmdManager.Instance);
+ managers.Add(FairyEmblemModel.Instance);
+ managers.Add(EquipModel.Instance);
+ managers.Add(DungeonModel.Instance);
+ managers.Add(DailyQuestModel.Instance);
+ managers.Add(CustomizedRechargeModel.Instance);
+ managers.Add(CustomizedGiftModel.Instance);
+ managers.Add(ChatManager.Instance);
+ managers.Add(ChatBubbleManager.Instance);
foreach (var manager in managers)
{
diff --git a/Main/System/Chat/ChatCenter.cs b/Main/System/Chat/ChatCenter.cs
index d01560b..2552fe7 100644
--- a/Main/System/Chat/ChatCenter.cs
+++ b/Main/System/Chat/ChatCenter.cs
@@ -49,8 +49,8 @@
void ParseConfig()
{
chatCharacterLimit = int.Parse(FuncConfigConfig.Get("MessageLength").Numerical1);
- var _funcCfg = FuncConfigConfig.Get("BugleItem");
- bugleItem = int.Parse(_funcCfg.Numerical1);
+ // var _funcCfg = FuncConfigConfig.Get("BugleItem");
+ // bugleItem = int.Parse(_funcCfg.Numerical1);
chatChannels = new List<ChatInfoType>();
chatChannels.Add(ChatInfoType.System);
chatChannels.Add(ChatInfoType.World);
@@ -63,16 +63,16 @@
chatChannels.Add(ChatInfoType.Friend);
chatChannels.Add(ChatInfoType.default1);
- var config = FuncConfigConfig.Get("ClientChatBan");
- banCheckSecond = int.Parse(config.Numerical1);
- repeatCountLimit = int.Parse(config.Numerical2);
- maliceCheckCount = int.Parse(config.Numerical3);
- maliceLimitCount = int.Parse(config.Numerical4);
- var array = ConfigParse.GetMultipleStr<int>(config.Numerical5);
- singleBanSecond = array[0];
- maxBanSecond = array[1];
+ // var config = FuncConfigConfig.Get("ClientChatBan");
+ // banCheckSecond = int.Parse(config.Numerical1);
+ // repeatCountLimit = int.Parse(config.Numerical2);
+ // maliceCheckCount = int.Parse(config.Numerical3);
+ // maliceLimitCount = int.Parse(config.Numerical4);
+ // var array = ConfigParse.GetMultipleStr<int>(config.Numerical5);
+ // singleBanSecond = array[0];
+ // maxBanSecond = array[1];
- config = FuncConfigConfig.Get("LocalChatHistoryCount");
+ var config = FuncConfigConfig.Get("LocalChatHistoryCount");
if (config != null)
{
LocalChatHistory.localSaveCount = int.Parse(config.Numerical1);
@@ -479,36 +479,38 @@
public int singleBanSecond = 1;
public int maxBanSecond = 1;
- public int banSecond {
- get { return LocalSave.GetInt("ClientChatBanSecond", 0); }
- set {
- LocalSave.SetInt("ClientChatBanSecond", value);
- }
- }
+ public int banSecond;
+ // {
+ // get { return LocalSave.GetInt("ClientChatBanSecond", 0); }
+ // set {
+ // LocalSave.SetInt("ClientChatBanSecond", value);
+ // }
+ // }
private int[] banTimeArray = new int[6];
- private DateTime bandTime {
- get {
- var timeArray = LocalSave.GetIntArray("ClientChatBanTime");
- if (null == timeArray)
- {
- return TimeUtility.OriginalTime;
- }
- else
- {
- return new DateTime(timeArray[0], timeArray[1], timeArray[2], timeArray[3], timeArray[4], timeArray[5]);
- }
- }
- set {
- banTimeArray[0] = value.Year;
- banTimeArray[1] = value.Month;
- banTimeArray[2] = value.Day;
- banTimeArray[3] = value.Hour;
- banTimeArray[4] = value.Minute;
- banTimeArray[5] = value.Second;
- LocalSave.SetIntArray("ClientChatBanTime", banTimeArray);
- }
- }
+ private DateTime bandTime;
+ // {
+ // get {
+ // var timeArray = LocalSave.GetIntArray("ClientChatBanTime");
+ // if (null == timeArray)
+ // {
+ // return TimeUtility.OriginalTime;
+ // }
+ // else
+ // {
+ // return new DateTime(timeArray[0], timeArray[1], timeArray[2], timeArray[3], timeArray[4], timeArray[5]);
+ // }
+ // }
+ // set {
+ // banTimeArray[0] = value.Year;
+ // banTimeArray[1] = value.Month;
+ // banTimeArray[2] = value.Day;
+ // banTimeArray[3] = value.Hour;
+ // banTimeArray[4] = value.Minute;
+ // banTimeArray[5] = value.Second;
+ // LocalSave.SetIntArray("ClientChatBanTime", banTimeArray);
+ // }
+ // }
public void ChatClientBan()
{
diff --git a/Main/System/Chat/ChatManager.cs b/Main/System/Chat/ChatManager.cs
index a1c46b2..105050c 100644
--- a/Main/System/Chat/ChatManager.cs
+++ b/Main/System/Chat/ChatManager.cs
@@ -155,8 +155,8 @@
presentChatType = ChatInfoType.World;
IsExtentOpen = false;
- var _funcCfg = FuncConfigConfig.Get("BugleItem");
- BugleItem = int.Parse(_funcCfg.Numerical1);
+ // var _funcCfg = FuncConfigConfig.Get("BugleItem");
+ // BugleItem = int.Parse(_funcCfg.Numerical1);
DTC0102_tagCDBPlayer.switchAccountEvent += SwitchAccountEvent;
// TODO YYL
@@ -165,28 +165,28 @@
InitChatRedpoints();
- FuncConfigConfig _cfg = FuncConfigConfig.Get("RandomWord");
- try
- {
- achievementRandoms.Add(ChatInfoType.World, new List<string>(ConfigParse.GetMultipleStr(_cfg.Numerical1)));
- achievementRandoms.Add(ChatInfoType.Fairy, new List<string>(ConfigParse.GetMultipleStr(_cfg.Numerical2)));
- var json = LitJson.JsonMapper.ToObject(_cfg.Numerical3);
- foreach (var key in json.Keys)
- {
- var type = int.Parse(key);
- m_TaskRandomChats.Add(type, new List<string>(LitJson.JsonMapper.ToObject<string[]>(json[key].ToJson())));
- }
- assistThankLanguages.AddRange(ConfigParse.GetMultipleStr(_cfg.Numerical4));
- if (!string.IsNullOrEmpty(_cfg.Numerical5))
- {
- var levelArray = ConfigParse.GetMultipleStr<int>(_cfg.Numerical5);
- assistThankLevelLimit = new Int2(levelArray[0], levelArray[1]);
- }
- }
- catch (Exception e)
- {
- Debug.LogError(e.Message);
- }
+ // FuncConfigConfig _cfg = FuncConfigConfig.Get("RandomWord");
+ // try
+ // {
+ // achievementRandoms.Add(ChatInfoType.World, new List<string>(ConfigParse.GetMultipleStr(_cfg.Numerical1)));
+ // achievementRandoms.Add(ChatInfoType.Fairy, new List<string>(ConfigParse.GetMultipleStr(_cfg.Numerical2)));
+ // var json = LitJson.JsonMapper.ToObject(_cfg.Numerical3);
+ // foreach (var key in json.Keys)
+ // {
+ // var type = int.Parse(key);
+ // m_TaskRandomChats.Add(type, new List<string>(LitJson.JsonMapper.ToObject<string[]>(json[key].ToJson())));
+ // }
+ // assistThankLanguages.AddRange(ConfigParse.GetMultipleStr(_cfg.Numerical4));
+ // if (!string.IsNullOrEmpty(_cfg.Numerical5))
+ // {
+ // var levelArray = ConfigParse.GetMultipleStr<int>(_cfg.Numerical5);
+ // assistThankLevelLimit = new Int2(levelArray[0], levelArray[1]);
+ // }
+ // }
+ // catch (Exception e)
+ // {
+ // Debug.LogError(e.Message);
+ // }
}
private void PlayerLoginOkEvent()
diff --git a/Main/System/DailyQuest.meta b/Main/System/DailyQuest.meta
new file mode 100644
index 0000000..8bb3338
--- /dev/null
+++ b/Main/System/DailyQuest.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d0cbf67f727be8d4cb2114b8c96e9d04
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/DailyQuest/DailyQuestData.cs b/Main/System/DailyQuest/DailyQuestData.cs
new file mode 100644
index 0000000..b3a96ec
--- /dev/null
+++ b/Main/System/DailyQuest/DailyQuestData.cs
@@ -0,0 +1,314 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using System;
+using System.Text.RegularExpressions;
+
+
+using LitJson;
+
+public class DailyQuestData
+{
+ public int id { get; private set; }
+ public Redpoint redpoint { get; private set; }
+
+ public DailyQuestData(int _id)
+ {
+ this.id = _id;
+ }
+
+ public DailyQuestData(int _id, int _redpointId, int _parentRedpoint)
+ {
+ this.id = _id;
+ this.redpoint = new Redpoint(_parentRedpoint, _redpointId);
+ }
+
+ public void UpdateRedpointState(RedPointState _redpointState)
+ {
+ if (this.redpoint != null)
+ {
+ this.redpoint.state = _redpointState;
+ }
+ }
+
+}
+
+public class DailyQuestActiveValueReward
+{
+ public int id { get; private set; }
+
+ bool m_Got = false;
+ public bool got {
+ get { return this.m_Got; }
+ set { this.m_Got = value; }
+ }
+
+ public DailyQuestActiveValueReward(int _id)
+ {
+ this.id = _id;
+ }
+}
+
+public struct DailyQuestTimes
+{
+ public int completeTimes;
+ public int dayBuyTimes;
+ public int dayUseItemTimes;
+}
+
+public class DailyQuestOpenTime
+{
+ public int id;
+ public bool always;
+
+ //甯歌鐨勬椿鍔ㄦ椂闂达紝key鏄槦鏈焫
+ Dictionary<int, List<HourMinute>> openTimes = new Dictionary<int, List<HourMinute>>();
+
+ public DailyQuestOpenTime(int _id)
+ {
+ this.id = _id;
+ }
+
+ public void ParseQuestNormalOpenTime(DailyQuestOpenTimeConfig activityOpenTime)
+ {
+ string timeString = activityOpenTime.OpenTime;
+ int duration = activityOpenTime.Duration;
+ var matches = Regex.Matches(timeString, "\\\"[0-9]\\\":\\[[0-9|,|\\[|\\]]+");
+ always = matches.Count == 0;
+
+ for (int i = 0; i < matches.Count; i++)
+ {
+ var match = matches[i];
+ var stringArray = match.Value.Split(':');
+
+ var week = 0;
+ var weekMatch = Regex.Match(stringArray[0], "[0-9]");
+ int.TryParse(weekMatch.Value, out week);
+
+ if (week == 0)
+ {
+ var subMatches = Regex.Matches(stringArray[1], "[0-9]{1,2},[0-9]{1,2}");
+ var tempHourMinutes = new List<HourMinute>();
+
+ for (int j = 0; j < subMatches.Count; j++)
+ {
+ tempHourMinutes.Add(new HourMinute(subMatches[j].Value, duration));
+ }
+
+ tempHourMinutes.Sort((HourMinute a, HourMinute b) => { return HourMinute.Compare(a, b); });
+
+ for (int j = 0; j < 7; j++)
+ {
+ var hourMinutes = openTimes[j] = new List<HourMinute>(tempHourMinutes);
+ }
+ }
+ else
+ {
+ var hourMinutes = openTimes[week % 7] = new List<HourMinute>();
+ var subMatches = Regex.Matches(stringArray[1], "[0-9]{1,2},[0-9]{1,2}");
+
+ for (int j = 0; j < subMatches.Count; j++)
+ {
+ hourMinutes.Add(new HourMinute(subMatches[j].Value, duration));
+ }
+
+ hourMinutes.Sort((HourMinute a, HourMinute b) => { return HourMinute.Compare(a, b); });
+ }
+ }
+ }
+
+
+
+
+
+ // 鏀规垚鍒ゆ柇鏃ュ父娲诲姩ID涓嶅湪瀹氬埗涓厤缃垯瀹氬埗鏈熼棿姝e父寮�鍚�
+ public bool InOpenTime()
+ {
+ if (always)
+ {
+ return true;
+ }
+
+
+ return IsNormalOpenTime();
+
+ }
+
+ //鏃ュ父娲诲姩寮�鍚垽鏂�
+ private bool IsNormalOpenTime()
+ {
+ var dayOfWeek = (int)TimeUtility.ServerNow.DayOfWeek;
+ if (!openTimes.ContainsKey(dayOfWeek))
+ {
+ return false;
+ }
+ else
+ {
+ var hourMinutes = openTimes[dayOfWeek];
+ for (int i = 0; i < hourMinutes.Count; i++)
+ {
+ if (hourMinutes[i].InOpenTime())
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+ }
+
+
+ public bool TryGetTodayNearestOpenTime(out HourMinute _hourMinute)
+ {
+
+ var dayOfWeek = (int)TimeUtility.ServerNow.DayOfWeek;
+ if (!openTimes.ContainsKey(dayOfWeek))
+ {
+ _hourMinute = default(HourMinute);
+ return false;
+ }
+
+ var hour = TimeUtility.ServerNow.Hour;
+ var minute = TimeUtility.ServerNow.Minute;
+ var hourMinutes = openTimes[dayOfWeek];
+ _hourMinute = hourMinutes[hourMinutes.Count - 1];
+ for (int i = 0; i < hourMinutes.Count; i++)
+ {
+ var hourMinute = hourMinutes[i];
+ if (hour < hourMinute.hourEnd || (hour == hourMinute.hourEnd && minute <= hourMinute.minuteEnd))
+ {
+ _hourMinute = hourMinute;
+ break;
+ }
+ }
+
+ return true;
+
+ }
+
+
+
+ public List<HourMinute> GetNormalHourMinutes()
+ {
+ foreach (var hourMinutes in openTimes.Values)
+ {
+ if (hourMinutes != null)
+ {
+ return hourMinutes;
+ }
+ }
+ return null;
+ }
+}
+
+public struct HourMinute
+{
+ public int hourBegin;
+ public int minuteBegin;
+ public int hourEnd;
+ public int minuteEnd;
+ public bool wholeDay;
+
+ public HourMinute(string _input, int _duration)
+ {
+ var matches = Regex.Matches(_input, "[0-9]{1,2}");
+ if (matches.Count >= 2)
+ {
+ hourBegin = int.Parse(matches[0].Value);
+ minuteBegin = int.Parse(matches[1].Value);
+
+ hourEnd = hourBegin + _duration / 60;
+ minuteEnd = minuteBegin + _duration % 60;
+ if (minuteEnd >= 60)
+ {
+ minuteEnd = minuteEnd % 60;
+ hourEnd += 1;
+ }
+
+ wholeDay = false;
+ }
+ else
+ {
+ hourBegin = 0;
+ minuteBegin = 0;
+ hourEnd = 0;
+ minuteEnd = 0;
+
+ wholeDay = true;
+ }
+ }
+
+ public HourMinute(int _hourBegin, int _minuteBegin, int _hourEnd, int _minuteEnd)
+ {
+ hourBegin = _hourBegin;
+ minuteBegin = _minuteBegin;
+ hourEnd = _hourEnd;
+ minuteEnd = _minuteEnd;
+
+ wholeDay = hourBegin == 0 && minuteBegin == 0 && hourEnd == 0 && minuteEnd == 0;
+
+ }
+
+ public bool InOpenTime()
+ {
+ if (wholeDay)
+ {
+ return true;
+ }
+ else
+ {
+ var minutes = TimeUtility.ServerNow.Hour * 60 + TimeUtility.ServerNow.Minute;
+ if ((hourBegin * 60 + minuteBegin) <= minutes && (hourEnd * 60 + minuteEnd) > minutes)
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ }
+
+ public bool AfterOpenTime(int hour, int minute)
+ {
+ if (wholeDay)
+ {
+ return false;
+ }
+ else
+ {
+ var minutes = hour * 60 + minute;
+ return (hourEnd * 60 + minuteEnd) <= minutes;
+ }
+ }
+
+ public override string ToString()
+ {
+ var minuteBeginStr = minuteBegin > 9 ? minuteBegin.ToString() : StringUtility.Contact("0", minuteBegin);
+ var minuteEndStr = minuteEnd > 9 ? minuteEnd.ToString() : StringUtility.Contact("0", minuteEnd);
+ return StringUtility.Contact(hourBegin, ":", minuteBeginStr, "--", hourEnd, ":", minuteEndStr);
+ }
+
+ public string ToOpenTime()
+ {
+ if (minuteBegin < 10)
+ {
+ return StringUtility.Contact(hourBegin, ":0", minuteBegin);
+ }
+ else
+ {
+ return StringUtility.Contact(hourBegin, ":", minuteBegin);
+ }
+ }
+
+ public static int Compare(HourMinute _lhs, HourMinute _rhs)
+ {
+ return (_lhs.hourBegin * 60 + _lhs.minuteBegin) < (_rhs.hourBegin * 60 + _rhs.minuteBegin) ? -1 : 1;
+ }
+
+}
+
+
+
+
+
diff --git a/Main/System/DailyQuest/DailyQuestData.cs.meta b/Main/System/DailyQuest/DailyQuestData.cs.meta
new file mode 100644
index 0000000..fd15056
--- /dev/null
+++ b/Main/System/DailyQuest/DailyQuestData.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: bb67339815cd5aa4db4f68442219a4b3
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/DailyQuest/DailyQuestModel.cs b/Main/System/DailyQuest/DailyQuestModel.cs
new file mode 100644
index 0000000..d517c5d
--- /dev/null
+++ b/Main/System/DailyQuest/DailyQuestModel.cs
@@ -0,0 +1,216 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using System;
+using LitJson;
+
+
+public class DailyQuestModel : GameSystemManager<DailyQuestModel>
+{
+ const int EVERYDAY_REDPOINTID = 78001;
+ const int DAILYQUEST_REDPOINTIDBASE = 78100;
+ const int ACTIVEVALUE_REDPOINT = 78004;
+
+ Redpoint activeValueRedpoint = new Redpoint(EVERYDAY_REDPOINTID, ACTIVEVALUE_REDPOINT); //娲昏穬搴﹀鍔辩孩鐐�
+
+ int m_DailyQuestTotalActiveValue = 0;
+ public int dailyQuestTotalActiveValue
+ {
+ get { return m_DailyQuestTotalActiveValue; }
+ }
+
+ Dictionary<int, DailyQuestTimes> dailyQuestTimes = new Dictionary<int, DailyQuestTimes>();//闄や簡鍓湰鐨勫叾浠栦换鍔℃斁鍦ㄨ繖閲�
+ Dictionary<int, int> dailyActionToDailyQuestTable = new Dictionary<int, int>();
+ List<int> DailyQuestLVList = new List<int>();
+ Dictionary<int, DailyQuestOpenTime> dailyQuestOpenTimes = new Dictionary<int, DailyQuestOpenTime>();
+ Dictionary<int, DailyQuestData> dailyQuests = new Dictionary<int, DailyQuestData>();
+ List<DailyQuestActiveValueReward> dailyQuestActiveValueRewards = new List<DailyQuestActiveValueReward>();
+
+
+ int m_CurrentRewardStageIndex = 0;
+ public int currentRewardStageIndex
+ {
+ get { return m_CurrentRewardStageIndex; }
+ private set { m_CurrentRewardStageIndex = value; }
+ }
+
+ int m_CurrentActiveValue = 0;
+ public int currentActiveValue
+ {
+ get { return m_CurrentActiveValue; }
+ private set
+ {
+ if (m_CurrentActiveValue != value)
+ {
+ m_CurrentActiveValue = value;
+
+ if (currentActiveValueUpdateEvent != null)
+ {
+ currentActiveValueUpdateEvent();
+ }
+ }
+ }
+ }
+
+ public event Action<int> dailyQuestProgressUpdateEvent;
+ public event Action currentActiveValueUpdateEvent;
+
+ public override void Init()
+ {
+ ParseConfig();
+ }
+
+ public override void Release()
+ {
+ }
+
+ private void ParseConfig()
+ {
+ var allConfigs = DailyQuestConfig.GetValues();
+ var redpointIndex = 1;
+ foreach (var config in allConfigs)
+ {
+ if (VersionConfig.Get().isBanShu && config.ID == 12)
+ {
+ continue;
+ }
+
+ var openTime = default(DailyQuestOpenTime);
+
+ switch (config.RelatedType)
+ {
+ case 1:
+ var NeedLV = GetDailyQuestLV(config.ID);
+ if (!DailyQuestLVList.Contains(NeedLV))
+ {
+ bool bIsAdd = false;
+ for (int i = 0; i < DailyQuestLVList.Count; i++)
+ {
+ if (NeedLV < DailyQuestLVList[i])
+ {
+ DailyQuestLVList.Insert(i, NeedLV);
+ bIsAdd = true;
+ break;
+ }
+ }
+ if (!bIsAdd)
+ {
+ DailyQuestLVList.Add(NeedLV);
+ }
+
+ }
+
+ var activityOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
+ openTime = dailyQuestOpenTimes[config.ID] = new DailyQuestOpenTime(config.ID);
+ openTime.ParseQuestNormalOpenTime(activityOpenTime);
+ dailyActionToDailyQuestTable[config.RelatedID] = config.ID;
+ break;
+ case 2:
+
+ break;
+ }
+
+ dailyQuests[config.ID] = new DailyQuestData(config.ID, DAILYQUEST_REDPOINTIDBASE + redpointIndex++, EVERYDAY_REDPOINTID);
+ }
+
+ var allRewardKeys = DailyLivenessRewardConfig.GetKeys();
+ m_DailyQuestTotalActiveValue = DailyLivenessRewardConfig.Get(allRewardKeys[allRewardKeys.Count - 1]).Liveness;
+
+ var values = DailyLivenessRewardConfig.GetValues();
+ for (int i = 0; i < allRewardKeys.Count; i++)
+ {
+ var config = DailyLivenessRewardConfig.Get(allRewardKeys[i]);
+ dailyQuestActiveValueRewards.Add(new DailyQuestActiveValueReward(config.id));
+ }
+
+ dailyQuestActiveValueRewards.Sort((x, y) => { return x.id.CompareTo(y.id); });
+
+ }
+
+
+
+
+ public void OnDailyQuestCompletedTimesUpdate(HA315_tagMCDailyActionCnt _serverInfo)
+ {
+ for (int i = 0; i < _serverInfo.Count; i++)
+ {
+ var dailyAction = _serverInfo.ActionInfo[i];
+ if (dailyAction.DayFinishCnt > 0)
+ {
+ dailyQuestTimes[(int)dailyAction.ActionID] = new DailyQuestTimes()
+ {
+ completeTimes = dailyAction.DayFinishCnt,
+ dayBuyTimes = dailyAction.DayBuyTimes,
+ dayUseItemTimes = dailyAction.DayItemTimes,
+ };
+ }
+ else
+ {
+ dailyQuestTimes[(int)dailyAction.ActionID] = new DailyQuestTimes()
+ {
+ completeTimes = (int)dailyAction.WeekFinishCnt,
+ };
+ }
+
+ if (dailyActionToDailyQuestTable.ContainsKey((int)dailyAction.ActionID))
+ {
+ var dailyQuestId = dailyActionToDailyQuestTable[(int)dailyAction.ActionID];
+ //UpdateDailyActionRedpoint(dailyQuestId);
+ }
+
+ if (dailyQuestProgressUpdateEvent != null)
+ {
+ dailyQuestProgressUpdateEvent((int)dailyAction.ActionID);
+ }
+ }
+ }
+
+ public int GetDailyQuestLV(int id)
+ {
+ var QuestConfig = DailyQuestConfig.Get(id);
+ var LVConfig = FuncOpenLVConfig.Get(QuestConfig.UnLockFuncID);
+ int NeedLV = 0;
+ if (LVConfig.LimitLV != 0)
+ {
+ NeedLV = LVConfig.LimitLV;
+ }
+ else if (LVConfig.LimitMissionID != 0)
+ {
+
+ }
+ return NeedLV;
+ }
+
+ public void OnDailyQuestActiveValueInfoUpdate(HA333_tagMCDailyActivityInfoList _activeValueInfo)
+ {
+ int OldCurrentActiveValue = currentActiveValue;
+ currentActiveValue = (int)_activeValueInfo.CurValue;
+ currentRewardStageIndex = (int)_activeValueInfo.StageIndex;
+
+ UpdateActiveValueRedpoint();
+ }
+
+ private void UpdateActiveValueRedpoint()
+ {
+ var count = dailyQuestActiveValueRewards.Count;
+ var anyAwardable = false;
+ for (int i = 0; i < count; i++)
+ {
+ var reward = dailyQuestActiveValueRewards[i];
+ if (!reward.got)
+ {
+ var config = DailyLivenessRewardConfig.Get(reward.id);
+ if (currentActiveValue >= config.Liveness)
+ {
+ anyAwardable = true;
+ break;
+ }
+ }
+ }
+
+ activeValueRedpoint.state = anyAwardable ? RedPointState.Simple : RedPointState.None;
+ }
+
+
+}
+
diff --git a/Main/System/DailyQuest/DailyQuestModel.cs.meta b/Main/System/DailyQuest/DailyQuestModel.cs.meta
new file mode 100644
index 0000000..71f4982
--- /dev/null
+++ b/Main/System/DailyQuest/DailyQuestModel.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c625d462938840044bd47268f81da57a
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Dungeon.meta b/Main/System/Dungeon.meta
new file mode 100644
index 0000000..1d39911
--- /dev/null
+++ b/Main/System/Dungeon.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 46646361254e846438b76518ad3da8eb
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Dungeon/DungeonData.cs b/Main/System/Dungeon/DungeonData.cs
new file mode 100644
index 0000000..7aac149
--- /dev/null
+++ b/Main/System/Dungeon/DungeonData.cs
@@ -0,0 +1,327 @@
+锘縰sing System.Collections.Generic;
+using System;
+using LitJson;
+using UnityEngine;
+
+
+public struct Dungeon
+{
+ public int mapId;
+ public int lineId;
+
+ public Dungeon(int _mapId, int _lineId)
+ {
+ this.mapId = _mapId;
+ this.lineId = _lineId;
+ }
+
+ public static bool operator ==(Dungeon _lhs, Dungeon _rhs)
+ {
+ return _lhs.mapId == _rhs.mapId && _lhs.lineId == _rhs.lineId;
+ }
+
+ public static bool operator !=(Dungeon _lhs, Dungeon _rhs)
+ {
+ return _lhs.mapId != _rhs.mapId || _lhs.lineId != _rhs.lineId;
+ }
+
+}
+
+public struct DungeonResult
+{
+ public int conWinCnt; //鑳滃埄鐨勫満鏁�
+ public int extraExp; //棰濆鐨勭粡楠屽姞鎴�
+ public int extraExpPoint;//棰濆鐨勭粡楠岀偣鏁�
+ public int score; //鑾峰緱绉垎
+ public int extrScore; //棰濆鑾峰緱绉垎
+
+ public int addScore; //澧炲姞鐨勭Н鍒嗭紝鏈夋璐�
+ public int updScore; //鏇存柊鍚庣殑绉垎
+ public int curOrder; // 涔嬪墠鎺掑悕
+ public int updOrder; //鏇存柊鍚庢帓鍚�
+
+ public int quickPass; //蹇�熼�氬叧
+ public int isSweep;
+ public int dataMapID;
+ public int lineID;
+ public int upPer;
+ public int costTime; //姣
+ public int isPass;
+ public int isAssist;
+ public int rank;
+ public int grade;
+ public int gradeExp;
+ public int gradeExpPoint;
+ public int scoreExp;
+ public int scoreExpPoint;
+ public int npcTotal;
+ public int expPoint;
+ public int exp;
+ public DungeonGotMoney[] money;
+ public int runeEssence;
+ public int runeMagicEssence;
+ public ServerItem[] itemInfo;
+ public ServerItem[] succItemInfo;
+ public ServerItem[] AuctionItem;
+ public ServerItem[] firstPassItem;
+ public int[] xianyuanCoin;
+ public int sp;
+ public int startRewardLineID;
+ public int enterLV;
+ public int leaderID;
+ public int wheel;
+ public Dictionary<string, AssistPlayer> helpPlayer;
+ public int memberCnt;
+ public uint ownerID;
+ public string ownerName;
+ public int isWin;
+
+ public long totalExp
+ {
+ get
+ {
+ return (long)((ulong)exp + (ulong)expPoint * Constants.ExpPointValue);
+ }
+ }
+
+ public long extraTotalExp
+ {
+ get { return (long)((ulong)extraExp + (ulong)extraExpPoint * Constants.ExpPointValue); }
+ }
+
+ public long totalScoreExp
+ {
+ get { return (long)((ulong)scoreExp + (ulong)scoreExpPoint * Constants.ExpPointValue); }
+ }
+
+ public long totalGradeExp
+ {
+ get { return (long)((ulong)gradeExp + (ulong)gradeExpPoint * Constants.ExpPointValue); }
+ }
+}
+
+
+public struct DungeonMissionData
+{
+ public int lineID;
+ public int missionID;
+ public int step;
+ public int wheel;
+ public int expPoint;
+ public int exp;
+ public int grade;
+ public int npcTotal;
+ public int npcTotalNeed;
+ public int hasCollect;
+ public int passAllCnt;
+ public DungeonNPCInfo[] npc;
+ public DungeonGotMoney[] money;
+ public int score;
+ public int remainHPPer;
+ public int hpReduceSpeed;
+ public int talkOver;
+ public int winCnt;
+ public int KillBOSS;
+ public DungeonHurt[] hurtInfo;
+ public int myHurt;
+ public int myHurtEx;
+ public int myRank;
+ public int myMenberCnt;
+ public string topName;
+ public int topScore;
+ public int isFullExp;
+ public int leaderID;
+ public FairyFeastRank[] familyPartyRank;
+ public FairyFeastTop familyPartyTop;
+ public int topPlayerID;
+ public int enemyID;
+ public int hasSit;
+ public int isHelp;
+ public int helpCount;
+ public int[] relation;
+ public int roundNum; //璺ㄦ湇1Vs1 褰撳墠鍥炲悎
+ public int[] roundWinerIDList; //璺ㄦ湇1Vs1 鍥炲悎鑳滃埄鐨処d鍒楄〃
+ public int prepareTime; //璺ㄦ湇1Vs1 鍥炲悎缁撴潫鍊掕鏃�
+ public int isStart; //璺ㄦ湇1Vs1鍥炲悎寮�濮�
+ public int PlayerEnterMap; //鍒ゆ柇鐜╁ID涓嶆槸鑷繁鍒欐竻闄ょ瓑寰呮椂闂存樉绀�
+ public int IsEncourage;//鏄惁榧撹垶
+ public long totalExp
+ {
+ get
+ {
+ return (long)((ulong)exp + (ulong)expPoint * Constants.ExpPointValue);
+ }
+ }
+
+ public long myHurtTotal
+ {
+ get
+ {
+ return (long)((ulong)myHurt + (ulong)myHurtEx * Constants.ExpPointValue);
+ }
+ }
+}
+
+public struct DungeonNPCInfo
+{
+ public int NPCID;
+ public int killCnt;
+ public int HPPer;
+}
+
+public struct DungeonGotMoney
+{
+ public int moneyType;
+ public int moneyValue;
+}
+
+public struct DungeonHurt
+{
+ public string playerName;
+ public int hurt;
+ public int rank;
+ public int hurtEx;
+ public long totalHurt
+ {
+ get
+ {
+ return (long)((ulong)hurt + (ulong)hurtEx * Constants.ExpPointValue);
+ }
+ }
+}
+
+public struct FairyFeastRank
+{
+ public int rank;
+ public string name;
+ public int cnt;
+}
+
+public struct FairyFeastTop
+{
+ public string name;
+ public int cnt;
+}
+
+public struct ServerItem
+{
+ public int ItemID;
+ public int Count;
+ public int IsAuctionItem;
+ public string UserData;
+}
+
+public struct AssistPlayer
+{
+ public string Name;
+ public int LV;
+ public int Job;
+ public int Face;
+ public int FacePic;
+ public int Relation;
+ public int RealmLV;
+ public int FightPower;
+}
+
+public class DungeonRecord
+{
+ public int id { get; private set; } //鍓湰id
+ public int enterTimes { get; private set; } //褰撴棩杩涘叆娆℃暟
+ public int buyTimes { get; private set; } //褰撴棩宸茶喘涔版鏁�
+ public int extraTimes { get; private set; } //浣跨敤鐗╁搧澧炲姞鐨勯澶栨鏁�
+ public int recoverTimes { get; private set; } //鎵惧洖娆℃暟
+ public Dictionary<int, int> lineGrades; //鍓湰绾胯矾瀵瑰簲鏄熺骇鍊煎垪琛�
+ public int enterCntTotal { get; private set; } //鎵惧洖娆℃暟
+
+ public int passLineID;
+
+ public DungeonRecord(HA320_tagMCPlayerFBInfoData.tagMCFBInfo _serverInfo)
+ {
+ this.id = (int)_serverInfo.FBID;
+ this.enterTimes = (int)_serverInfo.EnterCnt;
+ this.recoverTimes = (int)_serverInfo.RecoverCnt;
+ this.extraTimes = (int)_serverInfo.ItemAddCnt;
+ this.lineGrades = new Dictionary<int, int>();
+ this.passLineID = (int)_serverInfo.PassLineID;
+ for (int i = 0; i < _serverInfo.PassGrade.Length; i++)
+ {
+ var tempValue = (int)_serverInfo.PassGrade[i];
+ for (int j = 0; j < 9; j++)
+ {
+ var a = MathUtility.Power(10, j);
+ var b = MathUtility.Power(10, j + 1);
+ this.lineGrades[i * 9 + j] = (tempValue % b) / a;
+ }
+ }
+ this.enterCntTotal = (int)_serverInfo.EnterCntTotal;
+ }
+
+ public DungeonRecord(HA3BD_tagMCBuyEnterInfo.tagMCBuyInfo _serverInfo)
+ {
+ this.id = (int)_serverInfo.FBID;
+ this.buyTimes = _serverInfo.BuyCount;
+ }
+
+ public void UpdateRecord(HA320_tagMCPlayerFBInfoData.tagMCFBInfo _serverInfo)
+ {
+ this.enterTimes = (int)_serverInfo.EnterCnt;
+ this.recoverTimes = (int)_serverInfo.RecoverCnt;
+ this.extraTimes = (int)_serverInfo.ItemAddCnt;
+ this.passLineID = (int)_serverInfo.PassLineID;
+ for (int i = 0; i < _serverInfo.PassGrade.Length; i++)
+ {
+ var tempValue = (int)_serverInfo.PassGrade[i];
+ for (int j = 0; j < 9; j++)
+ {
+ var a = MathUtility.Power(10, j);
+ var b = MathUtility.Power(10, j + 1);
+ this.lineGrades[i * 9 + j] = (tempValue % b) / a;
+ }
+ }
+ this.enterCntTotal = (int)_serverInfo.EnterCntTotal;
+ }
+
+ public void UpdateRecord(HA3BD_tagMCBuyEnterInfo.tagMCBuyInfo _serverInfo)
+ {
+ this.buyTimes = _serverInfo.BuyCount;
+ }
+
+}
+
+public class DungeonEnterCoolDown
+{
+ public int mapId;
+ public int level;
+ public int duration;
+ public int clearCoolDownCost;
+ public DateTime endCoolDownTime;
+
+ public void SetEnterTime(uint tick)
+ {
+ endCoolDownTime = TimeUtility.GetTime(tick);
+ endCoolDownTime = endCoolDownTime.AddTicks(duration * TimeSpan.TicksPerSecond);
+ }
+
+ public int suplursSeconds
+ {
+ get
+ {
+ return Mathf.Max(0, (int)(endCoolDownTime - TimeUtility.ServerNow).TotalSeconds);
+ }
+ }
+}
+
+public struct DungeonTarget
+{
+ public DungeonTargetType targetType;
+ public int targetCondition;
+ public int targetValue;
+
+ public DungeonTarget(DungeonTargetType _type, int _condition, int _targetValue)
+ {
+ this.targetType = _type;
+ this.targetCondition = _condition;
+ this.targetValue = _targetValue;
+ }
+
+}
diff --git a/Main/System/Dungeon/DungeonData.cs.meta b/Main/System/Dungeon/DungeonData.cs.meta
new file mode 100644
index 0000000..68ade5c
--- /dev/null
+++ b/Main/System/Dungeon/DungeonData.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6ab6bc03ed79b6e4a8531f460d1b7363
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Dungeon/DungeonModel.cs b/Main/System/Dungeon/DungeonModel.cs
new file mode 100644
index 0000000..c6942c9
--- /dev/null
+++ b/Main/System/Dungeon/DungeonModel.cs
@@ -0,0 +1,71 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using System;
+using LitJson;
+
+
+public class DungeonModel : GameSystemManager<DungeonModel>
+{
+
+ Dictionary<int, DungeonRecord> dungeonRecords = new Dictionary<int, DungeonRecord>();
+
+ public event Action<int> dungeonRecordChangeEvent;
+ public event Action updateDungeonBuyCnt;
+
+ public override void Init()
+ {
+
+ }
+
+ public override void Release()
+ {
+ }
+
+ public void UpdateRecords(HA320_tagMCPlayerFBInfoData.tagMCFBInfo[] _serverInfos)
+ {
+ for (int i = 0; i < _serverInfos.Length; i++)
+ {
+ var info = _serverInfos[i];
+ var dungeonId = (int)info.FBID;
+ if (dungeonRecords.ContainsKey(dungeonId))
+ {
+ dungeonRecords[dungeonId].UpdateRecord(info);
+ }
+ else
+ {
+ dungeonRecords[dungeonId] = new DungeonRecord(info);
+ }
+
+ if (dungeonRecordChangeEvent != null)
+ {
+ dungeonRecordChangeEvent(dungeonId);
+ }
+ }
+
+ }
+
+ public void UpdateRecords(HA3BD_tagMCBuyEnterInfo.tagMCBuyInfo[] vNetDatas)
+ {
+ for (int i = 0; i < vNetDatas.Length; i++)
+ {
+ var info = vNetDatas[i];
+ var dungeonId = (int)info.FBID;
+ if (dungeonRecords.ContainsKey(dungeonId))
+ {
+ dungeonRecords[dungeonId].UpdateRecord(info);
+ }
+ else
+ {
+ dungeonRecords[dungeonId] = new DungeonRecord(info);
+ }
+ }
+ if (updateDungeonBuyCnt != null)
+ {
+ updateDungeonBuyCnt();
+ }
+ }
+
+}
+
+
diff --git a/Main/System/Dungeon/DungeonModel.cs.meta b/Main/System/Dungeon/DungeonModel.cs.meta
new file mode 100644
index 0000000..9d1607e
--- /dev/null
+++ b/Main/System/Dungeon/DungeonModel.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7054c8785e96d9f49a3948ed09eebb7b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Equip/EquipFightPower.cs b/Main/System/Equip/EquipFightPower.cs
new file mode 100644
index 0000000..0809790
--- /dev/null
+++ b/Main/System/Equip/EquipFightPower.cs
@@ -0,0 +1,159 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+
+public class EquipFightPower : Singleton<EquipFightPower>
+{
+ string scoreFormula;
+ string propertyFormula;
+
+ public EquipFightPower()
+ {
+ var config = FuncConfigConfig.Get("FightpowerFormula");
+ propertyFormula = config.Numerical1;
+ scoreFormula = config.Numerical2;
+ }
+
+ public int GetSpiritWeaponPower(int itemId)
+ {
+ var score = ItemLogicUtility.Instance.GetEquipScore(itemId);
+ Equation.Instance.Clear();
+ Equation.Instance.AddKeyValue("equipScoreTotal", score);
+ return Equation.Instance.Eval<int>(scoreFormula);
+ }
+
+ public int CalculatePower(int level)
+ {
+ Equation.Instance.Clear();
+ Equation.Instance.AddKeyValue("equipScoreTotal", CountEquipScore(level));
+ var power = Equation.Instance.Eval<int>(scoreFormula);
+
+ var propertyContainer = new Properties();
+
+ Equation.Instance.Clear();
+ var keys = propertyContainer.keys;
+ for (int i = 0; i < keys.Count; i++)
+ {
+ var id = keys[i];
+ var value = propertyContainer[id];
+ var config = PlayerPropertyConfig.Get(id);
+ Equation.Instance.AddKeyValue(config.Parameter, value);
+ }
+
+ var propertyPower = Equation.Instance.Eval<int>(propertyFormula);
+ power += propertyPower;
+
+
+ return power;
+ }
+
+ private int CountEquipScore(int level)
+ {
+ var score = 0;
+ // for (int i = 1; i <= 12; i++)
+ // {
+ // var equipPosition = new Int2(level, i);
+ // var guid = equipModel.GetEquip(equipPosition);
+ // if (string.IsNullOrEmpty(guid))
+ // {
+ // continue;
+ // }
+
+ // var equip = packModel.GetItemByGuid(guid);
+ // if (equip == null)
+ // {
+ // continue;
+ // }
+
+ // score += equip.score;
+ // }
+
+ return score;
+ }
+
+
+
+ public int CalculatePower(int job, int level, List<EquipInfo> equipInfos)
+ {
+ var propertyContainer = new Properties();
+ var totalScore = 0;
+
+
+ Equation.Instance.Clear();
+ Equation.Instance.AddKeyValue("equipScoreTotal", totalScore);
+ var power = Equation.Instance.Eval<int>(scoreFormula);
+
+ Equation.Instance.Clear();
+ var keys = propertyContainer.keys;
+ for (int i = 0; i < keys.Count; i++)
+ {
+ var id = keys[i];
+ var value = propertyContainer[id];
+ var config = PlayerPropertyConfig.Get(id);
+ if (config != null)
+ {
+ Equation.Instance.AddKeyValue(config.Parameter, value);
+ }
+
+ }
+
+ power += Equation.Instance.Eval<int>(propertyFormula);
+
+ return power;
+ }
+
+ class Properties
+ {
+ Dictionary<int, int> tables = new Dictionary<int, int>();
+
+ public List<int> keys { get { return new List<int>(tables.Keys); } }
+
+ public int this[int id] { get { return tables[id]; } }
+
+ public void Add(int id, int value)
+ {
+ if (id == 7)
+ {
+ Add(67, value);
+ Add(68, value);
+ }
+ else
+ {
+ if (tables.ContainsKey(id))
+ {
+ tables[id] = tables[id] + value;
+ }
+ else
+ {
+ tables[id] = value;
+ }
+ }
+ }
+
+ public void AddRange(List<int> ids, List<int> values)
+ {
+ if (ids.IsNullOrEmpty() || values.IsNullOrEmpty())
+ {
+ return;
+ }
+
+ var count = Mathf.Min(ids.Count, values.Count);
+ for (int i = 0; i < count; i++)
+ {
+ Add(ids[i], values[i]);
+ }
+ }
+
+ }
+
+ public struct EquipInfo
+ {
+ public int itemId;
+ public int score;
+
+ }
+
+}
+
+
diff --git a/Main/System/Equip/EquipFightPower.cs.meta b/Main/System/Equip/EquipFightPower.cs.meta
new file mode 100644
index 0000000..d9b9a17
--- /dev/null
+++ b/Main/System/Equip/EquipFightPower.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 0bf4ddb4117ea2f4b8d9d341d0e980dc
+timeCreated: 1554174994
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Equip/EquipModel.cs b/Main/System/Equip/EquipModel.cs
new file mode 100644
index 0000000..bf04d84
--- /dev/null
+++ b/Main/System/Equip/EquipModel.cs
@@ -0,0 +1,75 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using System;
+using LitJson;
+
+
+public class EquipModel : GameSystemManager<EquipModel>
+{
+
+
+
+ public void OnPlayerLoginOk()
+ {
+
+ }
+
+ public override void Init()
+ {
+
+ }
+
+ public override void Release()
+ {
+ }
+
+ public Dictionary<int, int> EquipLevelFuncID = new Dictionary<int, int>();
+
+
+ public void OnAfterPlayerDataInitialize()
+ {
+
+ }
+
+
+
+ public static int GetItemServerEquipPlace(int itemId)
+ {
+ var config = ItemConfig.Get(itemId);
+ if (config == null)
+ {
+ return -1;
+ }
+
+ var serverEquipPlace = -1;
+ switch ((RoleEquipType)config.EquipPlace)
+ {
+ case RoleEquipType.Weapon:
+ case RoleEquipType.Weapon2:
+ case RoleEquipType.Hat:
+ case RoleEquipType.Clothes:
+ case RoleEquipType.Belt:
+ case RoleEquipType.Trousers:
+ case RoleEquipType.Shoes:
+ case RoleEquipType.Neck:
+ case RoleEquipType.FairyCan1:
+ case RoleEquipType.FairyCan2:
+ case RoleEquipType.Glove:
+ case RoleEquipType.Jade:
+ serverEquipPlace = EquipSet.ClientPlaceToServerPlace(new Int2(config.LV, config.EquipPlace));
+ break;
+ case RoleEquipType.Wing:
+ case RoleEquipType.Guard:
+ case RoleEquipType.PeerlessWeapon1:
+ case RoleEquipType.PeerlessWeapon2:
+ serverEquipPlace = EquipSet.ClientPlaceToServerPlace(new Int2(0, config.EquipPlace));
+ break;
+ }
+
+ return serverEquipPlace;
+ }
+
+}
+
+
diff --git a/Main/System/Equip/EquipModel.cs.meta b/Main/System/Equip/EquipModel.cs.meta
new file mode 100644
index 0000000..4d2a3cd
--- /dev/null
+++ b/Main/System/Equip/EquipModel.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: f3ee6b5bd5b76714b87a241feedd3937
+timeCreated: 1551096748
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Equip/EquipSet.cs b/Main/System/Equip/EquipSet.cs
new file mode 100644
index 0000000..2b7a7fe
--- /dev/null
+++ b/Main/System/Equip/EquipSet.cs
@@ -0,0 +1,107 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+//涓诲姛鑳芥暣濂楄澶�
+public class EquipSet
+{
+ public readonly int maxEquipCnt = 12; //鏈�澶ц澶囨牸瀛愭暟
+ public readonly int level; //澶氬鎯呭喌锛屾垨鑰呭娴佹淳瀛樺偍
+ public bool unLocked { get { return true; } } //鍚庣画鏍规嵁鐜╂硶瑙i攣鐨勬儏鍐碉紝濡傝喘涔板瓨鍌ㄦ祦娲句綅
+
+ public int fightPower {
+ get {
+ return EquipFightPower.Instance.CalculatePower(level);
+ }
+ }
+
+ Dictionary<int, EquipSlot> equipSlots = new Dictionary<int, EquipSlot>();
+
+ public EquipSet(int level)
+ {
+ this.level = level;
+
+ for (var i = 1; i <= maxEquipCnt; i++)
+ {
+ equipSlots[i] = new EquipSlot(i);
+ }
+
+ }
+
+ public void UpdateEquipSlot(int place, string equipGuid)
+ {
+ if (equipSlots.ContainsKey(place))
+ {
+ equipSlots[place].equip.value = equipGuid;
+ }
+ }
+
+
+
+ public EquipSlot GetEquipSlot(int place)
+ {
+ if (!equipSlots.ContainsKey(place))
+ {
+ return null;
+ }
+
+ return equipSlots[place];
+ }
+
+ public string GetEquip(int place)
+ {
+ if (!equipSlots.ContainsKey(place))
+ {
+ return null;
+ }
+
+ return equipSlots[place].equip.value;
+ }
+
+
+
+ public int CompareToCurrent(string equipGuid)
+ {
+ var item = PackManager.Instance.GetItemByGuid(equipGuid); //闇�鏀规垚鍦版澘鐗╁搧
+ if (item == null)
+ {
+ return 0;
+ }
+
+ var place = item.config.EquipPlace;
+ if (!equipSlots.ContainsKey(place))
+ {
+ return 0;
+ }
+
+ var slot = equipSlots[place];
+ var currentEquip = PackManager.Instance.GetItemByGuid(slot.equip.value);
+ if (currentEquip == null)
+ {
+ return 1;
+ }
+
+ return item.score.CompareTo(currentEquip.score);
+ }
+
+ public static Int2 ServerPlaceToClientPlace(int serverPlace)
+ {
+ var config = EquipPlaceMapConfig.Get(serverPlace);
+ if (config != null)
+ {
+ return new Int2(config.LV, config.EquipPlace);
+ }
+ else
+ {
+ return Int2.zero;
+ }
+ }
+
+ public static int ClientPlaceToServerPlace(Int2 equipPosition)
+ {
+ return EquipPlaceMapConfig.GetServerPlace(equipPosition.x, equipPosition.y);
+ }
+
+}
+
+
diff --git a/Main/System/Equip/EquipSet.cs.meta b/Main/System/Equip/EquipSet.cs.meta
new file mode 100644
index 0000000..78440b6
--- /dev/null
+++ b/Main/System/Equip/EquipSet.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 5e6ca401fb2c59844b89e981c4a58bc0
+timeCreated: 1551096917
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Equip/EquipSlot.cs b/Main/System/Equip/EquipSlot.cs
new file mode 100644
index 0000000..599a32c
--- /dev/null
+++ b/Main/System/Equip/EquipSlot.cs
@@ -0,0 +1,20 @@
+锘縰sing System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+//瑁呭浣嶇疆涓婄殑淇℃伅锛堝崟鏍煎瓙锛夛紝澶氭祦娲惧彲鐢�
+public class EquipSlot
+{
+ public int equipPosition;
+ public readonly LogicString equip = new LogicString();
+ public int itemId;
+
+ public EquipSlot(int equipPosition)
+ {
+ this.equipPosition = equipPosition;
+ }
+
+
+}
+
+
diff --git a/Main/System/Equip/EquipSlot.cs.meta b/Main/System/Equip/EquipSlot.cs.meta
new file mode 100644
index 0000000..e03634b
--- /dev/null
+++ b/Main/System/Equip/EquipSlot.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: e1fa9aacd2e109c4c954083ce08738e4
+timeCreated: 1551097235
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/FairyEmblem.meta b/Main/System/FairyEmblem.meta
new file mode 100644
index 0000000..2e89140
--- /dev/null
+++ b/Main/System/FairyEmblem.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 397588e2bd67d3a4b894aa3f530728ff
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/FairyEmblem/EmblemHelper.cs b/Main/System/FairyEmblem/EmblemHelper.cs
new file mode 100644
index 0000000..b56819f
--- /dev/null
+++ b/Main/System/FairyEmblem/EmblemHelper.cs
@@ -0,0 +1,57 @@
+public static class EmblemHelper
+{
+
+ public static EmblemModel GetEmblemModel(int familyID, int id)
+ {
+ bool isMyself = familyID == PlayerDatas.Instance.fairyData.fairy.FamilyID;
+ return isMyself ? GetMyEmblemModel() : GetOtherEmblemModel(id);
+ }
+
+ public static EmblemModel GetOtherEmblemModel(int id)
+ {
+ int emblemID = GetOtherEmblemID(id);
+ int effectID = GetEmblemEffectID(emblemID);
+ return new EmblemModel(emblemID, effectID);
+ }
+
+ public static EmblemModel GetMyEmblemModel()
+ {
+ int emblemID = GetMyEmblemID();
+ int effectID = GetEmblemEffectID(emblemID);
+ return new EmblemModel(emblemID, effectID);
+ }
+
+ public static int GetEmblemID(int familyID, int id)
+ {
+ bool isMyself = familyID == PlayerDatas.Instance.fairyData.fairy.FamilyID;
+ return isMyself ? GetMyEmblemID() : GetOtherEmblemID(id);
+ }
+
+ public static int GetOtherEmblemID(int id)
+ {
+ if (FamilyEmblemConfig.HasKey(id))
+ return id;
+ return !FamilyEmblemConfig.HasKey(FairyEmblemModel.Instance.defaultFamilyEmblemId) ? 0 : FairyEmblemModel.Instance.defaultFamilyEmblemId;
+ }
+
+ public static int GetMyEmblemID()
+ {
+ int emblemID = (int)PlayerDatas.Instance.fairyData.fairy.Extra6;
+ if (FamilyEmblemConfig.HasKey(emblemID) && FairyEmblemModel.Instance.IsUnLock(emblemID))
+ return emblemID;
+ return !FamilyEmblemConfig.HasKey(FairyEmblemModel.Instance.defaultFamilyEmblemId) ? 0 : FairyEmblemModel.Instance.defaultFamilyEmblemId;
+ }
+
+ public static int GetEmblemEffectID(int id)
+ {
+ FairyEmblemModel.Instance.TryGetEffectID(id, out int effectID);
+ return effectID;
+ }
+
+ public static int GetDefaultFamilyEmblemId()
+ {
+ return FairyEmblemModel.Instance.defaultFamilyEmblemId;
+ }
+}
+
+
diff --git a/Main/System/FairyEmblem/EmblemHelper.cs.meta b/Main/System/FairyEmblem/EmblemHelper.cs.meta
new file mode 100644
index 0000000..99ea203
--- /dev/null
+++ b/Main/System/FairyEmblem/EmblemHelper.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 23ae5c264fec3024ca275ac0742c7bb2
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/FairyEmblem/FairyEmblemModel.cs b/Main/System/FairyEmblem/FairyEmblemModel.cs
new file mode 100644
index 0000000..ec2065c
--- /dev/null
+++ b/Main/System/FairyEmblem/FairyEmblemModel.cs
@@ -0,0 +1,348 @@
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+
+//浠欑洘寰界珷 瑙i攣閫斿緞绫诲瀷
+public enum FairyEmblemUnlockMethodType
+{
+ Custom, // 0 - 瀹氬埗
+ LV, // 1 - 绛夌骇鑷姩瑙i攣
+ Active, // 2 - 娲诲姩鑾峰緱
+}
+
+public class FairyEmblemModel : GameSystemManager<FairyEmblemModel>
+{
+ public readonly int MaxItemRowCount = 6; // 涓�琛屽睍绀簒涓窘绔�
+ public readonly int FamilyActionsType = 15; // 瀹舵棌琛屼负绫诲瀷15
+ public readonly int FuncId = 237;
+ public int defaultFamilyEmblemId; // 榛樿寰界珷ID
+
+ public bool isSendA408Pack = false;
+
+ private int m_NowChooseEmblemId;
+ public int nowChooseEmblemId
+ {
+ get { return m_NowChooseEmblemId; }
+ set
+ {
+ m_NowChooseEmblemId = value;
+ ChooseEmblemIdChangeEvent?.Invoke();
+ }
+ }
+
+ //<EmblemId,FamilyAction>
+ Dictionary<int, HA403_tagGCFamilyActionInfo.tagGCFamilyAction> familyActions = new Dictionary<int, HA403_tagGCFamilyActionInfo.tagGCFamilyAction>();
+
+ public event Action ChooseEmblemIdChangeEvent; //鍒囨崲鏍囩椤�
+ public event Action<int, int> UpdateFamilyActionEvent;
+
+ Redpoint entranceRedPoint = new Redpoint(10702, MainRedDot.FairyEmbleManageRepoint); //浠欑洘绠$悊闈㈡澘鍏ュ彛绾㈢偣
+
+ public override void Init()
+ {
+ PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
+ defaultFamilyEmblemId = int.Parse(FuncConfigConfig.Get("FairyEmblem").Numerical1);
+ }
+
+ public override void Release()
+ {
+ PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo;
+ }
+
+ private void OnRefreshFairyInfo()
+ {
+ UpdateRedPoint();
+ }
+
+ public void OnBeforePlayerDataInitialize()
+ {
+ familyActions.Clear();
+ }
+
+ public void UpdateRedPoint()
+ {
+ entranceRedPoint.state = RedPointState.None;
+ // 浠呯洘涓昏兘鐪嬪埌
+ if (!IsCaptain())
+ return;
+ // 浠欑洘2绾у嚭鐜�
+ if (PlayerDatas.Instance.fairyData == null || PlayerDatas.Instance.fairyData.fairy.FamilyLV != 2)
+ return;
+ // 鍙嚭鐜颁竴娆�
+ if (GetRedPointShow())
+ return;
+ entranceRedPoint.state = RedPointState.Simple;
+ }
+
+ string localStr = "FairyEmblemEntranceRedPoint_";
+
+ public bool GetRedPointShow()
+ {
+ return LocalSave.GetBool(localStr + PlayerDatas.Instance.PlayerId);
+ }
+
+ public void SetRedPointShow()
+ {
+ LocalSave.SetBool(localStr + PlayerDatas.Instance.PlayerId, true);
+ }
+
+ public bool TryGetNowEmblemID(out int nowID)
+ {
+ nowID = 0;
+ int emblemID = (int)PlayerDatas.Instance.fairyData.fairy.Extra6;
+ if (FamilyEmblemConfig.HasKey(emblemID) && IsUnLock(emblemID))
+ {
+ nowID = (int)emblemID;
+ return true;
+ }
+
+ if (FamilyEmblemConfig.HasKey(defaultFamilyEmblemId))
+ {
+ nowID = defaultFamilyEmblemId;
+ return true;
+ }
+
+ nowID = 0;
+ return false;
+
+ }
+
+ // 灞曠ず鎸囧畾寰界珷 琛ㄤ腑鎵句笉鍒板窘绔犲氨鏄剧ず榛樿鐨�
+ public void ShowEmblem(int emblemID, ImageEx imgTitle, float scale = 1.0f)
+ {
+ int nowEmblemID = emblemID;
+ if (!FamilyEmblemConfig.HasKey(nowEmblemID))
+ {
+ nowEmblemID = defaultFamilyEmblemId;
+ }
+ FamilyEmblemConfig config = FamilyEmblemConfig.Get(nowEmblemID);
+ UIFrame frame = imgTitle.GetComponent<UIFrame>();
+ if (UIFrameMgr.Inst.ContainsDynamicImage(config.Image))
+ {
+ if (frame == null)
+ frame = imgTitle.gameObject.AddComponent<UIFrame>();
+
+ List<UnityEngine.Sprite> spriteList = UIFrameMgr.Inst.GetDynamicImage(config.Image);
+ if (!spriteList.IsNullOrEmpty())
+ {
+ imgTitle.rectTransform.sizeDelta = new Vector2(spriteList[0].rect.width, spriteList[0].rect.height);
+ }
+
+ imgTitle.raycastTarget = false;
+ frame.ResetFrame(config.Image);
+ frame.enabled = true;
+ }
+ else
+ {
+ if (frame != null)
+ frame.enabled = false;
+ imgTitle.SetSprite(config.Image);
+ imgTitle.SetNativeSize();
+ }
+ imgTitle.rectTransform.localScale = new Vector3(scale, scale, scale);
+ }
+
+ //鍙戝寘 鏌ヨ鐜╁褰撳墠浠欑洘寰界珷
+ public void TrySendA408EmblemInfoPack()
+ {
+ //宸茬粡鍙戣繃鍖呬簡
+ if (isSendA408Pack)
+ return;
+ isSendA408Pack = true;
+ var pack = new CA408_tagCGQueryFamilyAction();
+ pack.ActionType = 15;
+ pack.FamilyID = PlayerDatas.Instance.baseData.FamilyId;
+ GameNetSystem.Instance.SendInfo(pack);
+ }
+
+ //鍙戝寘 鏇存敼浠欑洘寰界珷
+ public void SendCA413ChangeFamilyEmblemPack(int emblemId)
+ {
+ var pack = new CA413_tagCGChangeFamilyEmblem();
+ pack.EmblemID = (byte)emblemId;
+ GameNetSystem.Instance.SendInfo(pack);
+ }
+
+ public List<int> GetShowList()
+ {
+ List<int> showList = new List<int>();
+ List<int> keys = FamilyEmblemConfig.GetKeys();
+ for (int i = 0; i < keys.Count; i++)
+ {
+ showList.Add(keys[i]);
+ }
+ showList.Sort(Cmp);
+ return showList;
+ }
+
+ // 宸叉縺娲�>鏈縺娲�
+ private int Cmp(int a, int b)
+ {
+ bool isUnlock1 = IsUnLock(a);
+ bool isUnlock2 = IsUnLock(b);
+
+ if (isUnlock1 != isUnlock2)
+ {
+ return isUnlock2.CompareTo(isUnlock1);
+ }
+
+ // 濡傛灉婵�娲荤姸鎬佺浉鍚岋紝姣旇緝鏄惁涓洪檺鏃讹細闄愭椂 (true) > 姘镐箙 (false)
+ bool isLimitA = IsLimitTime(a, out var familyAction1);
+ bool isLimitB = IsLimitTime(b, out var familyAction2);
+
+ if (isLimitA != isLimitB)
+ {
+ return isLimitB.CompareTo(isLimitA);
+ }
+
+ // 闄愭椂鐘舵�佺浉鍚岋紝姣旇緝 SortNum
+ int sortNumA = GetSortNum(a);
+ int sortNumB = GetSortNum(b);
+ if (sortNumA != sortNumB)
+ {
+ return sortNumA.CompareTo(sortNumB);
+ }
+
+ return a.CompareTo(b);
+ }
+
+ public int GetSortNum(int emblemID)
+ {
+ if (!FamilyEmblemConfig.HasKey(emblemID))
+ return 0;
+ return FamilyEmblemConfig.Get(emblemID).SortNum;
+ }
+
+ // 鑾峰緱寰界珷鏉ユ簮绫诲瀷
+ public FairyEmblemUnlockMethodType GetFairyEmblemUnlockType(int emblemID)
+ {
+ FamilyEmblemConfig config = FamilyEmblemConfig.Get(emblemID);
+ if (config == null)
+ return FairyEmblemUnlockMethodType.LV;
+ if (config.CustomFamilyID > 0)
+ return FairyEmblemUnlockMethodType.Custom;
+ return config.UnlockFamilyLV > 0 ? FairyEmblemUnlockMethodType.LV : FairyEmblemUnlockMethodType.Active;
+ }
+
+ // 鎸囧畾鐨勫窘绔犺В閿佷簡鍚�
+ public bool IsUnLock(int emblemId)
+ {
+ FamilyEmblemConfig config = FamilyEmblemConfig.Get(emblemId);
+ FairyEmblemUnlockMethodType type = GetFairyEmblemUnlockType(emblemId);
+ HA403_tagGCFamilyActionInfo.tagGCFamilyAction familyAction;
+ switch (type)
+ {
+ case FairyEmblemUnlockMethodType.Custom:
+ //鎵�鍦ㄤ粰鐩熶笉鏄寚瀹氱殑瀹氬埗浠欑洘 鏈В閿�
+ if (PlayerDatas.Instance.baseData.FamilyId != config.CustomFamilyID)
+ return false;
+ //灏佸寘涓病鏈夊氨绠楁湭瑙i攣
+ if (!TryGetfamilyAction(emblemId, out familyAction))
+ return false;
+ if (familyAction.Value2 > 0 && familyAction.Value2 < TimeUtility.AllSeconds)
+ return false;
+ return true;
+
+ case FairyEmblemUnlockMethodType.LV:
+ //鎵�鍦ㄤ粰鐩熺瓑绾у皬浜庡窘绔犺姹傜瓑绾� 鏈В閿�
+ if (PlayerDatas.Instance.fairyData.fairy.FamilyLV < config.UnlockFamilyLV)
+ return false;
+ return true;
+
+ case FairyEmblemUnlockMethodType.Active:
+ //灏佸寘涓病鏈夊氨绠楁湭瑙i攣
+ if (!TryGetfamilyAction(emblemId, out familyAction))
+ return false;
+ if (familyAction.Value2 > 0 && familyAction.Value2 < TimeUtility.AllSeconds)
+ return false;
+ return true;
+
+ default:
+ return false;
+ }
+ }
+
+ public bool IsUsing(int emblemId)
+ {
+ if (!TryGetNowEmblemID(out int Id))
+ {
+ return false;
+ }
+ return emblemId == Id;
+ }
+
+ public bool IsLimitTime(int emblemId, out HA403_tagGCFamilyActionInfo.tagGCFamilyAction familyAction)
+ {
+ familyAction = new HA403_tagGCFamilyActionInfo.tagGCFamilyAction();
+ FamilyEmblemConfig config = FamilyEmblemConfig.Get(emblemId);
+ FairyEmblemUnlockMethodType type = GetFairyEmblemUnlockType(emblemId);
+ switch (type)
+ {
+ case FairyEmblemUnlockMethodType.LV:
+ return false;
+
+ case FairyEmblemUnlockMethodType.Custom:
+ case FairyEmblemUnlockMethodType.Active:
+ if (config.ExpireMinutes <= 0)
+ return false;
+ if (!TryGetfamilyAction(emblemId, out familyAction))
+ return false;
+ return true;
+
+ default:
+ return false;
+ }
+ }
+
+ public bool IsCaptain()
+ {
+ return (int)PlayerDatas.Instance.fairyData.mine.FamilyLV == 3;
+ }
+
+ // 灏濊瘯浠庡皝鍖呬腑寰楀埌鎸囧畾鐨勫窘绔犳椂鏁堜俊鎭紙娲诲姩閫斿緞鑾峰彇鐨勫窘绔�,瀹氬埗寰界珷锛�
+ private bool TryGetfamilyAction(int emblemId, out HA403_tagGCFamilyActionInfo.tagGCFamilyAction familyAction)
+ {
+ familyAction = new HA403_tagGCFamilyActionInfo.tagGCFamilyAction();
+ if (!familyActions.TryGetValue(emblemId, out var info))
+ return false;
+ familyAction = info;
+ return true;
+ }
+
+ public bool TryGetEffectID(int emblemId, out int effectID)
+ {
+ effectID = 0;
+ if (!FamilyEmblemConfig.HasKey(emblemId))
+ return false;
+ FamilyEmblemConfig config = FamilyEmblemConfig.Get(emblemId);
+ if (!EffectConfig.HasKey(config.EffectID))
+ return false;
+ effectID = config.EffectID;
+ return true;
+ }
+
+ public void UpdateFamilyAction(HA403_tagGCFamilyActionInfo vNetData)
+ {
+ if (vNetData.ActionType != FamilyActionsType || PlayerDatas.Instance.baseData == null || (int)vNetData.FamilyID != (int)PlayerDatas.Instance.baseData.FamilyId)
+ return;
+ for (int i = 0; i < vNetData.FamilyActionList.Length; i++)
+ {
+ HA403_tagGCFamilyActionInfo.tagGCFamilyAction familyAction = vNetData.FamilyActionList[i];
+ familyActions[(int)familyAction.Value1] = familyAction;
+ }
+ UpdateFamilyActionEvent?.Invoke((int)vNetData.FamilyID, vNetData.ActionType);
+ }
+}
+
+public class EmblemModel
+{
+ public int emblemID { get; private set; }
+ public int emblemUIEffectID { get; private set; }
+
+ public EmblemModel(int emblemID, int emblemUIEffectID)
+ {
+ this.emblemID = emblemID;
+ this.emblemUIEffectID = emblemUIEffectID;
+ }
+}
\ No newline at end of file
diff --git a/Main/System/FairyEmblem/FairyEmblemModel.cs.meta b/Main/System/FairyEmblem/FairyEmblemModel.cs.meta
new file mode 100644
index 0000000..2a1fb8e
--- /dev/null
+++ b/Main/System/FairyEmblem/FairyEmblemModel.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 892fb40a637f86f458d1d31439ead14d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/FairyUnion.meta b/Main/System/FairyUnion.meta
new file mode 100644
index 0000000..c46908e
--- /dev/null
+++ b/Main/System/FairyUnion.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 18f8f54b46f01384bac4a0f425d83966
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/FairyUnion/FairyModel.cs b/Main/System/FairyUnion/FairyModel.cs
new file mode 100644
index 0000000..6a50c74
--- /dev/null
+++ b/Main/System/FairyUnion/FairyModel.cs
@@ -0,0 +1,551 @@
+锘縰sing System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+
+using UnityEngine;
+
+
+public class FairyModel : GameSystemManager<FairyModel>
+{
+
+
+ public Dictionary<int, Dictionary<int, HA403_tagGCFamilyActionInfo.tagGCFamilyAction[]>> familyActions = new Dictionary<int, Dictionary<int, HA403_tagGCFamilyActionInfo.tagGCFamilyAction[]>>();
+ public event Action<int, int> FamilyActionInfoEvent;
+
+ public event Action fairyCreateTimesUpdate;
+ public override void Init()
+ {
+ ParseConfig();
+ PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo;
+ PlayerDatas.Instance.fairyData.OnRefreshFairyMine += OnRefreshFairyMine;
+ TimeMgr.Instance.OnSyntonyEvent += OnSyntonyEvent;
+ FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
+ }
+
+ private void OnSyntonyEvent(TimeMgr.SyntonyType _type)
+ {
+ if (_type == TimeMgr.SyntonyType.GetFairyInfo)
+ {
+ if (m_RequestFairyInfoCount > 1)
+ {
+ C0F07_tagCGetFamilyInfo pack = new C0F07_tagCGetFamilyInfo();
+ pack.Type = 0;
+ GameNetSystem.Instance.SendInfo(pack);
+ TimeMgr.Instance.Register(TimeMgr.SyntonyType.GetFairyInfo, 1);
+ m_RequestFairyInfoCount = 1;
+ }
+ else
+ {
+ m_RequestFairyInfoCount = 0;
+ }
+ }
+ }
+
+
+
+ public void OnBeforePlayerDataInitialize()
+ {
+ m_FairyRequesteds.Clear();
+ m_RequestFairyInfoCount = 0;
+ fairyCreateTimes = 0;
+ familyActions.Clear();
+ }
+
+
+
+ private void OnRefreshFairyInfo()
+ {
+ UpdateAddFairyRedpoint();
+ }
+
+ private void OnRefreshFairyMine()
+ {
+ if (!PlayerDatas.Instance.fairyData.HasFairy)
+ {
+ familyActions.Clear();
+ }
+ }
+
+ public void GotoFairyWin(int functionOrder = 0)
+ {
+ if (functionOrder == 0)
+ {
+ if (PlayerDatas.Instance.fairyData.HasFairy)
+ {
+ functionOrder = 1;
+ if (RedpointCenter.Instance.GetRedpointState(10701) == RedPointState.Simple)
+ {
+ functionOrder = 1;
+ }
+ else if (RedpointCenter.Instance.GetRedpointState(10702) == RedPointState.Simple)
+ {
+ functionOrder = 2;
+ }
+ else if (RedpointCenter.Instance.GetRedpointState(10704) == RedPointState.Simple)
+ {
+ functionOrder = 4;
+ }
+ else if (RedpointCenter.Instance.GetRedpointState(10705) == RedPointState.Simple)
+ {
+ functionOrder = 5;
+ }
+ }
+ else
+ {
+ functionOrder = 3;
+ }
+ }
+ // WindowCenter.Instance.Open<UnionPanel>(false, functionOrder);
+ }
+
+ #region 鍙戝寘
+ public void SendKickFairy(uint playerID)
+ {
+
+ var pak = new C0F09_tagCDeleteFamilyMember();
+ pak.MemberID = playerID;
+ GameNetSystem.Instance.SendInfo(pak);
+ }
+
+ public void SendApplyFairy(uint id)
+ {
+ int limit = FuncOpenLVConfig.Get((int)FuncOpenEnum.Fairy).LimitLV;
+ if (PlayerDatas.Instance.baseData.LV < limit)
+ {
+ ServerTipDetails.DisplayNormalTip(Language.Get("L1106", limit));
+ return;
+ }
+ if (PlayerDatas.Instance.fairyData.HasFairy)
+ {
+ ServerTipDetails.DisplayNormalTip(Language.Get("HasFairyTip"));
+ return;
+ }
+ CA602_tagCMRequesJoinFamily rqPack = new CA602_tagCMRequesJoinFamily();
+ rqPack.Type = 0;
+ rqPack.TagFamilyID = id;
+ GameNetSystem.Instance.SendInfo(rqPack);
+ }
+ #endregion
+
+ public int presentChangeMember
+ {
+ get;
+ set;
+ }
+ private bool m_IsOnAllot = false;
+ public bool IsOnAllot
+ {
+ get
+ {
+ return m_IsOnAllot;
+ }
+ set
+ {
+ m_IsOnAllot = value;
+ }
+ }
+
+ private int m_RequestFairyInfoCount = 0;
+
+ #region 閰嶇疆
+
+ public int createFairyCost
+ {
+ get;
+ private set;
+ }
+ public int createFairyFreeCount
+ {
+ get;
+ private set;
+ }
+ public readonly int changeFairyNameItem = 947;
+ public int freeNotifyCount { get; private set; }
+ public int changeNotifyCost { get; private set; }
+ public int fairyCreateTimes { get; private set; }
+ void ParseConfig()
+ {
+ var config = FuncConfigConfig.Get("CreateFamily");
+ createFairyCost = int.Parse(config.Numerical1);
+
+ config = FuncConfigConfig.Get("FamilyMatchSet");
+ fairyLeagueLimit = int.Parse(config.Numerical1);
+ }
+
+ public static string GetFairyGradeLabel(int rank)
+ {
+ rank = Mathf.CeilToInt((float)rank / 4);
+ switch (rank)
+ {
+ case 1:
+ return Language.Get("Fairy_S");
+ case 2:
+ return Language.Get("Fairy_A");
+ case 3:
+ return Language.Get("Fairy_B");
+ case 4:
+ return Language.Get("Fairy_C");
+ default:
+ return Language.Get("Fairy_D");
+ }
+ }
+ #endregion
+
+ public List<PlayerFairyData.FairyData> fairyList = new List<PlayerFairyData.FairyData>();
+ public int page = 0;
+ public int presentFairy = -1;
+
+
+ public void OnSearchPageList()
+ {
+ SendSearchFairyList(page, PlayerFairyData.PageCnt);
+ }
+ public void SendSearchFairyList(int _page, int _pageCnt)
+ {
+ CA401_tagCGViewFamilyPage searchPack = new CA401_tagCGViewFamilyPage();
+ searchPack.PageIndex = (ushort)_page;
+ searchPack.ShowCount = (byte)_pageCnt;
+ searchPack.SortRulex = 0;
+ searchPack.ViewType = 3;
+ GameNetSystem.Instance.SendInfo(searchPack);
+ }
+
+
+
+ private List<int> m_FairyRequesteds = new List<int>();
+ public void UpdateFairyRequested(HA501_tagMCNotifyRequestJoinFamilyInfo _package)
+ {
+ m_FairyRequesteds.Clear();
+ for (int i = 0; i < _package.RequestCount; i++)
+ {
+ m_FairyRequesteds.Add((int)_package.RequestJoinFamilyIDList[i]);
+ }
+ }
+
+ public void ReceivePackage(HA40D_tagGCServerCreatFamilyTimes package)
+ {
+ fairyCreateTimes = (int)package.Times;
+ if (fairyCreateTimesUpdate != null)
+ {
+ fairyCreateTimesUpdate();
+ }
+ }
+
+ public bool FairyRequested(int _fairyId)
+ {
+ return m_FairyRequesteds.Contains(_fairyId);
+ }
+
+ public void UpdateFairyInfo()
+ {
+ if (m_RequestFairyInfoCount == 0)
+ {
+ C0F07_tagCGetFamilyInfo pack = new C0F07_tagCGetFamilyInfo();
+ pack.Type = 0;
+ GameNetSystem.Instance.SendInfo(pack);
+ TimeMgr.Instance.Register(TimeMgr.SyntonyType.GetFairyInfo, 1);
+ }
+ m_RequestFairyInfoCount++;
+ }
+
+ public bool InSameFairy(int playerId)
+ {
+ if (!PlayerDatas.Instance.fairyData.HasFairy)
+ {
+ return false;
+ }
+ return PlayerDatas.Instance.fairyData.GetMember(playerId) != null;
+ }
+
+ #region 鎴愬憳鍒楄〃鎺掑簭
+ private int m_SortType = 4;
+ public int sortType
+ {
+ get
+ {
+ return m_SortType;
+ }
+ set
+ {
+ m_SortType = value;
+ }
+ }
+ private bool m_Up = false;
+ public bool up
+ {
+ get
+ {
+ return m_Up;
+ }
+ set
+ {
+ m_Up = value;
+ }
+ }
+ public List<PlayerFairyData.FairyMember> sortFairyMembers = new List<PlayerFairyData.FairyMember>();
+ public void OnSort(int type)
+ {
+ if (sortType == type)
+ {
+ up = !up;
+ }
+ else
+ {
+ up = false;
+ }
+ sortType = type;
+ if (sortFairyMembers.Count > 0)
+ {
+ sortFairyMembers.Sort(Compare);
+ }
+ }
+ public int Compare(PlayerFairyData.FairyMember x, PlayerFairyData.FairyMember y)
+ {
+ int attach = up ? 1 : -1;
+ //鍦ㄧ嚎0 鎸傛満1 绂荤嚎2
+ uint olx = 2 - (x.Exattr2 > 1 ? 2 : x.Exattr2);
+ uint oly = 2 - (y.Exattr2 > 1 ? 2 : y.Exattr2);
+ switch (sortType)
+ {
+ case 1:
+ {
+ if (x.LV.CompareTo(y.LV) != 0)
+ return attach * x.LV.CompareTo(y.LV);
+ if (olx.CompareTo(oly) != 0)
+ return -olx.CompareTo(oly);
+ if (x.Exattr2.CompareTo(y.Exattr2) != 0)
+ return x.Exattr2.CompareTo(y.Exattr2);
+ if (x.FamilyLV.CompareTo(y.FamilyLV) != 0)
+ return -x.FamilyLV.CompareTo(y.FamilyLV);
+ if (x.FamilyActiveValue.CompareTo(y.FamilyActiveValue) != 0)
+ return -x.FamilyActiveValue.CompareTo(y.FamilyActiveValue);
+ }
+ break;
+ case 2:
+ {
+ if (x.FamilyLV.CompareTo(y.FamilyLV) != 0)
+ return attach * x.FamilyLV.CompareTo(y.FamilyLV);
+ if (olx.CompareTo(oly) != 0)
+ return -olx.CompareTo(oly);
+ if (x.Exattr2.CompareTo(y.Exattr2) != 0)
+ return x.Exattr2.CompareTo(y.Exattr2);
+ if (x.LV.CompareTo(y.LV) != 0)
+ return -x.LV.CompareTo(y.LV);
+ if (x.FamilyActiveValue.CompareTo(y.FamilyActiveValue) != 0)
+ return -x.FamilyActiveValue.CompareTo(y.FamilyActiveValue);
+ }
+ break;
+ case 3:
+ {
+ if (x.FamilyActiveValue.CompareTo(y.FamilyActiveValue) != 0)
+ return attach * x.FamilyActiveValue.CompareTo(y.FamilyActiveValue);
+ if (olx.CompareTo(oly) != 0)
+ return -olx.CompareTo(oly);
+ if (x.Exattr2.CompareTo(y.Exattr2) != 0)
+ return x.Exattr2.CompareTo(y.Exattr2);
+ if (x.FamilyLV.CompareTo(y.FamilyLV) != 0)
+ return -x.FamilyLV.CompareTo(y.FamilyLV);
+ if (x.LV.CompareTo(y.LV) != 0)
+ return -x.LV.CompareTo(y.LV);
+ }
+ break;
+ case 4:
+ {
+ if (olx.CompareTo(oly) != 0)
+ return attach * olx.CompareTo(oly);
+ if (x.Exattr2.CompareTo(y.Exattr2) != 0)
+ return attach * x.Exattr2.CompareTo(y.Exattr2);
+ if (x.FamilyLV.CompareTo(y.FamilyLV) != 0)
+ return -x.FamilyLV.CompareTo(y.FamilyLV);
+ if (x.LV.CompareTo(y.LV) != 0)
+ return -x.LV.CompareTo(y.LV);
+ if (x.FamilyActiveValue.CompareTo(y.FamilyActiveValue) != 0)
+ return -x.FamilyActiveValue.CompareTo(y.FamilyActiveValue);
+ }
+ break;
+ }
+ return 1;
+ }
+ #endregion
+
+
+ #region 浠欑洘鍚嶉檺鍒�
+ public bool CheckFairyNameLimit(string _name, out int errorCode)
+ {
+ errorCode = 0;
+ if (string.IsNullOrEmpty(_name))
+ {
+ errorCode = 0;
+ return false;
+ }
+ if (DirtyWordConfig.IsDirtWord(_name) || UIHelper.HasSpecialCharac(_name)
+ || DirtyNameConfig.IsDirtName(_name))
+ {
+ errorCode = 1;
+ return false;
+ }
+ return true;
+ }
+ public void ShowFairyNameErrorTip(int _errorCode)
+ {
+ switch (_errorCode)
+ {
+ case 0:
+ SysNotifyMgr.Instance.ShowTip("FamilyNameChangeNoNull");
+ break;
+ case 1:
+ SysNotifyMgr.Instance.ShowTip("FamilyNameChangeUnlegal");
+ break;
+ }
+ }
+
+ public void SendChangeFairyName(string _name, int _itemIndex)
+ {
+ LanguageVerify.Instance.VerifyFairy(_name, 2, PlayerDatas.Instance.fairyData.fairy.FamilyName, PlayerDatas.Instance.fairyData.mine.FamilyLV, (bool ok, string content) =>
+ {
+ CA611_tagCMRenameFamily _pak = new CA611_tagCMRenameFamily();
+ _pak.NewName = content;
+ _pak.ItemIndex = (byte)_itemIndex;
+ _pak.NewNameLen = (byte)Encoding.UTF8.GetBytes(content).Length;
+ GameNetSystem.Instance.SendInfo(_pak);
+ });
+ }
+
+ public event Action<int> UpdateFairyChangeNameEvent;
+ public void UpdateFairyChangeName(H0F07_tagFamilyRenameResult _package)
+ {
+ if (UpdateFairyChangeNameEvent != null)
+ {
+ UpdateFairyChangeNameEvent(_package.Reasult);
+ }
+ }
+ #endregion
+
+
+
+ #region 绾㈢偣
+
+
+ private void OnFuncStateChangeEvent(int _id)
+ {
+ if (_id == (int)FuncOpenEnum.Fairy)
+ {
+ UpdateAddFairyRedpoint();
+ }
+ }
+
+ private Redpoint m_FairyListRedpoint = new Redpoint(107, 10703);
+ private Redpoint m_AddFairyRedpoint = new Redpoint(10703, 1070301);
+ private const string FairyKey = "FairyAdd";
+ public void UpdateAddFairyRedpoint()
+ {
+ m_AddFairyRedpoint.state = RedPointState.None;
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Fairy))
+ {
+ return;
+ }
+ if (PlayerDatas.Instance.fairyData.HasFairy)
+ {
+ return;
+ }
+ var _list = PlayerDatas.Instance.fairyData.GetFairyListByPage(0);
+ if (_list != null && _list.Count > 0)
+ {
+ for (int i = 0; i < _list.Count; i++)
+ {
+ var _cfg = FamilyConfig.Get(_list[i].FamilyLV);
+ if (_cfg != null)
+ {
+ if (_list[i].AcceptJoin == 1 && _list[i].MemberCount < _cfg.MemberMax)
+ {
+ m_AddFairyRedpoint.state = RedPointState.Simple;
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ public void OnPlayerLoginOk()
+ {
+ page = 0;
+ OnSearchPageList();
+ UpdateFairyInfo();
+ }
+ #endregion
+
+
+ #region 浠欑洘鍟嗗簵寮�鍚�
+ public int fairyStoreLimit { get; private set; }
+ public bool fairyStoreOpen
+ {
+ get
+ {
+ if (PlayerDatas.Instance.fairyData.HasFairy)
+ {
+ var fairy = PlayerDatas.Instance.fairyData.fairy;
+ if (fairy != null && fairy.FamilyLV >= fairyStoreLimit)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+ }
+
+ public void ProcessErrorTip()
+ {
+ if (!PlayerDatas.Instance.fairyData.HasFairy)
+ {
+ SysNotifyMgr.Instance.ShowTip("DailyQuestwinUnionLimit");
+ }
+ else if (PlayerDatas.Instance.fairyData.fairy.FamilyLV < fairyStoreLimit)
+ {
+ SysNotifyMgr.Instance.ShowTip("FairyStoreOpenLimit", fairyStoreLimit);
+ }
+ }
+ #endregion
+
+
+
+ #region 浠欑洘鑱旇禌寮�鍚�
+ public int fairyLeagueLimit
+ {
+ get; private set;
+ }
+
+ public bool SatisfyOpenFairyLeagueLv()
+ {
+ if (PlayerDatas.Instance.fairyData.HasFairy)
+ {
+ var fairy = PlayerDatas.Instance.fairyData.fairy;
+ if (fairy != null && fairy.FamilyLV >= fairyLeagueLimit)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+ #endregion
+
+
+
+
+
+ //瀹舵棌琛屼负鏁版嵁 鍥爐ype涓嶅悓鑰岄�昏緫涓嶅悓锛屼娇鐢ㄨ鏍规嵁鍔熻兘闇�姹傚悇鑷帴鏀跺鐞�
+ public void UpdateFamilyAction(HA403_tagGCFamilyActionInfo _package)
+ {
+ if (_package.ActionType != 13 && _package.ActionType != 14)
+ return;
+
+ if (!familyActions.ContainsKey((int)_package.FamilyID))
+ {
+
+ familyActions.Add((int)_package.FamilyID, new Dictionary<int, HA403_tagGCFamilyActionInfo.tagGCFamilyAction[]>());
+ }
+
+ familyActions[(int)_package.FamilyID][_package.ActionType] = _package.FamilyActionList;
+ FamilyActionInfoEvent?.Invoke((int)_package.FamilyID, _package.ActionType);
+ }
+}
\ No newline at end of file
diff --git a/Main/System/FairyUnion/FairyModel.cs.meta b/Main/System/FairyUnion/FairyModel.cs.meta
new file mode 100644
index 0000000..f445af5
--- /dev/null
+++ b/Main/System/FairyUnion/FairyModel.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 3be9797073d3cfc44b79252a1a0fa647
+timeCreated: 1508843329
+licenseType: Free
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/FairyUnion/PlayerFairyData.cs b/Main/System/FairyUnion/PlayerFairyData.cs
new file mode 100644
index 0000000..1d68e16
--- /dev/null
+++ b/Main/System/FairyUnion/PlayerFairyData.cs
@@ -0,0 +1,437 @@
+锘縰sing System;
+using UnityEngine;
+using System.Collections;
+using System.Collections.Generic;
+
+
+/** 鐜╁浠欑洘鐩稿叧淇℃伅缂撳瓨鏁版嵁 */
+public class PlayerFairyData
+{
+ private bool hasFairy = false;
+ public bool HasFairy
+ {
+ get { return hasFairy; }
+ }
+
+ public int presentFairyCount { get; set; }
+
+
+
+ public FairyData fairy = null;
+ public FairyMember mine = null;
+ public event Action OnRefreshFairyInfo;
+ public event Action OnRefreshFairyMine;
+ private Dictionary<int, FairyMember> memberDic = new Dictionary<int, FairyMember>();
+ private List<FairyMember> eliteList = new List<FairyMember>();
+ public List<FairyMember> GetEliteList()
+ {
+ return eliteList;
+ }
+ /// <summary>
+ /// 鍓洘涓�
+ /// </summary>
+ private List<FairyMember> deputyLeaderList = new List<FairyMember>();
+ public List<FairyMember> GetDeputyLeaderList()
+ {
+ return deputyLeaderList;
+ }
+
+ public void OnRefreshFairy(H0F03_tagRoleFamilyInfo vNetData)
+ {
+ if (fairy == null)
+ {
+ fairy = new FairyData();
+ }
+ fairy.FamilyID = vNetData.FamilyID;
+ if (fairy.FamilyID != 0) hasFairy = true;
+ fairy.FamilyName = vNetData.FamilyName;
+ fairy.FamilyLV = vNetData.FamilyLV;
+ fairy.FamilyMoney = vNetData.FamilyMoney;
+ fairy.FamilyHornor = vNetData.FamilyHornor;
+ fairy.MemberCount = vNetData.MemberCount;
+ fairy.Broadcast = vNetData.Broadcast;
+ fairy.WarRank = vNetData.Point;
+ fairy.FamilyActiveValue = vNetData.FamilyActiveValue;
+ fairy.LastWeekFamilyActiveValue = vNetData.LastWeekFamilyActiveValue;
+ fairy.Extra1 = vNetData.Extra1;
+ fairy.Extra2 = vNetData.Extra2;
+ fairy.Extra3 = vNetData.Extra3;
+ fairy.Extra4 = vNetData.Extra4;
+ fairy.Extra5 = vNetData.Extra5;
+ fairy.Extra6 = vNetData.Extra6;
+ fairy.AcceptJoin = vNetData.AcceptJoin;
+
+ if (fairy.Member == null)
+ {
+ fairy.Member = new List<FairyMember>();
+ }
+
+ mine = null;
+
+ memberDic.Clear();
+ deputyLeaderList.Clear();
+ eliteList.Clear();
+ for (int i = 0; i < vNetData.MemberCount; i++)
+ {
+ FairyMember member = null;
+ if (i >= fairy.Member.Count)
+ {
+ member = new FairyMember();
+ fairy.Member.Add(member);
+ }
+ else
+ {
+ member = fairy.Member[i];
+ }
+ member.PlayerID = vNetData.Member[i].PlayerID;
+ member.Sex = vNetData.Member[i].Sex;
+ member.Name = UIHelper.ServerStringTrim(vNetData.Member[i].Name);
+ member.LV = vNetData.Member[i].LV;
+ member.ReincarnationLv = vNetData.Member[i].ReincarnationLv;
+ member.FamilyLV = vNetData.Member[i].FamilyLV;
+ member.FamilyName = UIHelper.ServerStringTrim(vNetData.Member[i].FamilyName);
+ member.Job = vNetData.Member[i].Job;
+ member.Face = vNetData.Member[i].Face;
+ member.FacePic = vNetData.Member[i].FacePic;
+ member.FamilyActiveValue = vNetData.Member[i].FamilyActiveValue;
+ member.LastWeekFamilyActiveValue = vNetData.Member[i].LastWeekFamilyActiveValue;
+ member.OperateInfo = vNetData.Member[i].OperateInfo;
+ member.OfficialRank = vNetData.Member[i].OfficialRank;
+ member.Exattr1 = vNetData.Member[i].Exattr1;
+ member.Exattr2 = vNetData.Member[i].Exattr2;
+ member.Exattr3 = vNetData.Member[i].Exattr3 + vNetData.Member[i].Exattr5 * (long)Constants.ExpPointValue;
+ member.Exattr4 = vNetData.Member[i].Exattr4;
+ member.Exattr5 = vNetData.Member[i].Exattr5;
+
+ memberDic.Add((int)member.PlayerID, member);
+
+ if (member.PlayerID == PlayerDatas.Instance.baseData.PlayerID)
+ {//鑷繁
+ mine = member;
+ }
+
+ if (member.FamilyLV == 1)
+ {
+ eliteList.Add(member);
+ }
+ else if (member.FamilyLV == 2)
+ {
+ deputyLeaderList.Add(member);
+ }
+ else if (member.FamilyLV == 3)
+ {
+ Leader = member;
+ }
+ }
+
+ for (int i = fairy.Member.Count - 1; i >= vNetData.MemberCount; i--)
+ {
+ FairyMember member = fairy.Member[i];
+ fairy.Member.RemoveAt(i);
+ member = null;
+ }
+
+ if (OnRefreshFairyInfo != null) OnRefreshFairyInfo();
+ }
+
+ public FairyMember GetMember(int playerid)
+ {
+ FairyMember member = null;
+ memberDic.TryGetValue(playerid, out member);
+ return member;
+ }
+
+ public FairyMember Leader
+ {
+ get;
+ private set;
+ }
+ #region 浠欑洘鍒楄〃
+ private bool isSearching = false;
+ public bool IsSearching
+ {
+ get { return isSearching; }
+ }
+ public const int PageCnt = 20;
+
+
+ public event Action OnRefreshFairyList;
+ public event Action OnRefreshFairySearch;
+
+ private Dictionary<int, List<FairyData>> fairyList = new Dictionary<int, List<FairyData>>();
+
+ private List<FairyData> searchList = new List<FairyData>();
+ public void OnRefreshFairy(HA408_tagGCPyAllFamilyView vNetData)
+ {
+ if (vNetData.IsSearching == 100)
+ {
+ return;
+ }
+
+ isSearching = vNetData.IsSearching == 1;
+
+ if (isSearching)
+ {
+ searchList.Clear();
+ for (int i = 0; i < vNetData.PageCount; i++)
+ {
+ FairyData data = null;
+ if (i >= searchList.Count)
+ {
+ data = new FairyData();
+ searchList.Add(data);
+ }
+ HA408_tagGCPyAllFamilyView.tagGCPyFamilyView view = vNetData.Family[i];
+ SetFairyViewData(data, view);
+ }
+ if (OnRefreshFairySearch != null) OnRefreshFairySearch();
+ return;
+ }
+ List<FairyData> list = null;
+ fairyList.TryGetValue(vNetData.CurPage, out list);
+ if (list == null)
+ {
+ list = new List<FairyData>(PageCnt);
+ fairyList.Add(vNetData.CurPage, list);
+ }
+ list.Clear();
+ for (int i = 0; i < vNetData.PageCount; i++)
+ {
+ FairyData data = null;
+ if (i >= list.Count)
+ {
+ data = new FairyData();
+ list.Add(data);
+ }
+ HA408_tagGCPyAllFamilyView.tagGCPyFamilyView view = vNetData.Family[i];
+ SetFairyViewData(data, view);
+ }
+ presentFairyCount = 0;
+ foreach (var _list in fairyList.Values)
+ {
+ presentFairyCount += _list.Count;
+ }
+ if (OnRefreshFairyList != null)
+ {
+ OnRefreshFairyList();
+ }
+ FairyModel.Instance.UpdateAddFairyRedpoint();
+ }
+
+ public List<FairyData> GetSearchFairy()
+ {
+ return searchList;
+ }
+
+ public static void SetFairyViewData(FairyData data, HA408_tagGCPyAllFamilyView.tagGCPyFamilyView view)
+ {
+ data.FamilyID = view.FamilyID;
+ data.FamilyIndex = view.FamilyIndex;
+ data.FamilyName = view.FamilyName;
+ data.leaderID = view.LeaderID;
+ data.leaderName = view.LeaderName;
+ data.FamilyLV = view.FamilyLV;
+ data.MemberCount = view.FamilyMemberCount;
+ data.OfficialRank = view.LeaderOfficialRank;
+ data.AcceptJoin = view.JoinAccept;
+ data.totalFightPower = (ulong)view.TotalFightPowerEx * Constants.ExpPointValue + view.TotalFightPower;
+ data.WarRank = view.WarRank;
+ data.EmblemID = view.EmblemID;
+}
+
+ public void OnRefreshFairy(H0430_tagPlayerInFamilyInfoRefresh vNetData)
+ {
+ if (vNetData.FamilyNameLen > 0)
+ {
+ if (fairy == null)
+ {
+ fairy = new FairyData();
+ }
+
+ if (mine != null)
+ {
+ mine.FamilyLV = vNetData.FamilyMemberLV;
+ }
+ }
+ else
+ {
+ ClearFairyData();
+ LocalChatHistory.Clear(ChatInfoType.Fairy);
+ // WindowCenter.Instance.Close<UnionPanel>();
+ }
+ if (OnRefreshFairyMine != null)
+ {
+ OnRefreshFairyMine();
+ }
+ UpdateRequestRedpoint();
+ }
+
+ public void OnRefreshFairy(H0F05_tagFamilyChange vNetData)
+ {
+ FairyModel.Instance.UpdateFairyInfo();
+ }
+
+ public void ClearFairyList()
+ {
+ fairyList.Clear();
+ }
+
+ public List<FairyData> GetFairyListByPage(int page)
+ {
+ List<FairyData> list = null;
+ fairyList.TryGetValue(page, out list);
+ return list;
+ }
+
+ public void ClearFairyData()
+ {
+ hasFairy = false;
+ fairy = null;
+ mine = null;
+ applyList.Clear();
+ //ChatCtrl.Inst.ClearChatInfo(ChatInfoType.Fairy);
+ }
+ #endregion
+
+ #region 鐢宠鍒楄〃
+ public event Action OnRefreshApplyList;
+ private List<FairyApply> applyList = new List<FairyApply>();
+ private Redpoint applyRedpoint = new Redpoint(10702, 1070201);
+ private Redpoint memberRedpoint = new Redpoint(107, 10702);
+ public void OnRefreshFairy(HA401_tagGCViewFamilyRequestInfo vNetData)
+ {
+ applyList.Clear();
+ for (int i = 0; i < vNetData.RequestMemberCount; i++)
+ {
+ FairyApply apply = new FairyApply();
+ apply.Name = vNetData.MemberInfo[i].Name;
+ apply.PlayerID = vNetData.MemberInfo[i].PlayerID;
+ apply.PlayerLV = vNetData.MemberInfo[i].PlayerLV;
+ apply.PlayeJob = vNetData.MemberInfo[i].PlayeJob;
+ apply.PlayeFightPower = vNetData.MemberInfo[i].PlayeFightPower + vNetData.MemberInfo[i].PlayeFightPowerEx * (long)Constants.ExpPointValue;
+ apply.RequestTime = vNetData.MemberInfo[i].RequestTime;
+ apply.IsOnLine = vNetData.MemberInfo[i].IsOnLine;
+ applyList.Add(apply);
+ }
+ if (OnRefreshApplyList != null)
+ {
+ OnRefreshApplyList();
+ }
+ UpdateRequestRedpoint();
+ }
+
+ void UpdateRequestRedpoint()
+ {
+ if (HasFairy && IsCanFunc(LimitFunc.CanCall))
+ {
+ applyRedpoint.state = applyList.Count > 0 ? RedPointState.Simple : RedPointState.None;
+ }
+ else
+ {
+ applyRedpoint.state = RedPointState.None;
+ }
+ }
+
+ public List<FairyApply> GetApplyList()
+ {
+ return applyList;
+ }
+ #endregion
+
+
+
+ #region 浠欑洘鏉冨姏寮�鍚潯浠�
+ public int[] funcArray = null;
+ public bool IsCanFunc(LimitFunc funcType)
+ {
+ // if (funcArray == null)
+ // {
+ // funcArray = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("FamilyPurview").Numerical1);
+ // }
+ // if (funcArray != null && funcArray.Length > 6)
+ // {
+ // if (mine != null)
+ // {
+ // return mine.FamilyLV >= funcArray[(int)funcType];
+ // }
+ // }
+ return false;
+ }
+ #endregion
+
+ public class FairyData
+ {
+ public uint FamilyID;
+ public string FamilyName; //瀹舵棌鍚嶇О
+ public ushort FamilyLV; //瀹舵棌绛夌骇
+ public uint FamilyMoney; //璧勯噾
+ public uint FamilyHornor; //鑽h獕
+ public ushort MemberCount; //浜烘暟
+ public uint Point; //瀹舵棌鎴樼Н鍒�
+ public string Broadcast; //size = BroadcastLen
+ public uint FamilyActiveValue; //鏈懆瀹舵棌娲昏穬搴�
+ public uint LastWeekFamilyActiveValue; //涓婂懆瀹舵棌娲昏穬搴�
+ public List<FairyMember> Member = null; //size = MemberCount
+ public uint Extra1; //闄勫姞瀛楁1
+ public uint Extra2; //闄勫姞瀛楁2
+ public uint Extra3; //闄勫姞瀛楁3
+ public uint Extra4; //闄勫姞瀛楁4
+ public uint Extra5; //闄勫姞瀛楁5
+ public uint Extra6; //闄勫姞瀛楁6 浠欑洘褰撳墠浣╂埓鐨勫窘绔營D
+ public byte AcceptJoin; //鏄惁鎺ュ彈鐢宠
+ public uint WarRank; //浠欑洘鑱旇禌鎺掑悕
+ public ulong totalFightPower;
+ public int EmblemID; //浠欑洘寰界珷ID
+ #region 鏌ユ壘涓撶敤瀛楁
+ public ushort FamilyIndex;
+ public uint leaderID;
+ public string leaderName;
+ public byte OfficialRank; //澧冪晫
+ #endregion
+ }
+
+ public class FairyMember
+ {
+ public uint PlayerID;
+ public byte Sex; //鎬у埆
+ public string Name; //size = NameLen
+ public ushort LV;
+ public ushort ReincarnationLv;
+ public byte FamilyLV; //瀹舵棌绛夌骇
+ public string FamilyName; //size = FamilyNameLen
+ public byte Job; //鑱屼笟
+ public uint Face; //澶村儚
+ public uint FacePic; //澶村儚澶栨
+ public byte OfficialRank; //澧冪晫
+ public uint FamilyActiveValue; //鏈懆瀹舵棌娲昏穬搴�
+ public uint LastWeekFamilyActiveValue; //涓婂懆瀹舵棌娲昏穬搴�
+ public uint Exattr1; //鎵╁睍灞炴��
+ public uint Exattr2; //姣忓懆浠欑洘璧勯噾涓婇檺
+ public long Exattr3; //鎵╁睍灞炴��
+ public uint Exattr4; //鎵╁睍灞炴��
+ public uint Exattr5; //鎵╁睍灞炴��
+ public uint OperateInfo; //鐜╁闄勫姞杩愯惀鍟嗕俊鎭�
+ }
+
+ public class FairyApply
+ {
+ public uint PlayerID; //鐜╁ID
+ public string Name; //size=NameLen
+ public ushort PlayerLV; //鐜╁绛夌骇
+ public byte PlayeJob; //鐜╁鑱屼笟
+ public long PlayeFightPower; //鐜╁鎴樻枟鍔�
+ public uint RequestTime; //鐢宠鏃堕棿
+ public byte IsOnLine; //鏄惁鍦ㄧ嚎
+ }
+
+ public enum LimitFunc
+ {
+ CanCall = 0,
+ CanJobTitle = 1,
+ CanNotify = 2,
+ CanLvUp = 3,
+ CanClearTreasury = 4,
+ CanKick = 5,
+ CanOpenBoss = 6,
+ }
+}
\ No newline at end of file
diff --git a/Main/System/FairyUnion/PlayerFairyData.cs.meta b/Main/System/FairyUnion/PlayerFairyData.cs.meta
new file mode 100644
index 0000000..b1ce92e
--- /dev/null
+++ b/Main/System/FairyUnion/PlayerFairyData.cs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1e7db462662fa3f41b9b1051315190eb
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
diff --git a/Main/System/GeneralConfig/GeneralDefine.cs b/Main/System/GeneralConfig/GeneralDefine.cs
index fe7b8c9..5051e0d 100644
--- a/Main/System/GeneralConfig/GeneralDefine.cs
+++ b/Main/System/GeneralConfig/GeneralDefine.cs
@@ -246,727 +246,727 @@
{
try
{
- equipStarUpAmendFactor = GetIntArray("EquipStarRate")[0];
- equipStarDownAmendFactor = GetIntArray("EquipStarRate")[1];
+ // equipStarUpAmendFactor = GetIntArray("EquipStarRate")[0];
+ // equipStarDownAmendFactor = GetIntArray("EquipStarRate")[1];
- normalEquipStarUpgradeRateFloor = GetIntArray("EquipStarRate", 2)[0];
- normalEquipStarUpgradeRateCeiling = GetIntArray("EquipStarRate", 2)[1];
+ // normalEquipStarUpgradeRateFloor = GetIntArray("EquipStarRate", 2)[0];
+ // normalEquipStarUpgradeRateCeiling = GetIntArray("EquipStarRate", 2)[1];
- suitEquipStarUpgradeRateFloor = GetIntArray("EquipStarRate", 3)[0];
- suitEquipStarUpgradeRateCeiling = GetIntArray("EquipStarRate", 3)[1];
+ // suitEquipStarUpgradeRateFloor = GetIntArray("EquipStarRate", 3)[0];
+ // suitEquipStarUpgradeRateCeiling = GetIntArray("EquipStarRate", 3)[1];
- BlueEquipJumpLevel = GetInt("BlueEquipJumpLevel");
- initDepotGridCount = GetInt("InitDepotCellCount");
- maxDepotGridCount = GetInt("MaxDepotCellCount");
- initBagGridCount = GetInt("InitBagCellCount");
- maxBagGridCount = GetInt("MaxBagCellCount");
- maxXBGridCount = GetInt("TreasureSet", 3);
+ // BlueEquipJumpLevel = GetInt("BlueEquipJumpLevel");
+ // initDepotGridCount = GetInt("InitDepotCellCount");
+ // maxDepotGridCount = GetInt("MaxDepotCellCount");
+ // initBagGridCount = GetInt("InitBagCellCount");
+ // maxBagGridCount = GetInt("MaxBagCellCount");
+ // maxXBGridCount = GetInt("TreasureSet", 3);
- CompareEquipPlaces = GetIntArray("EquipUpType");
- playerMaxLevel = GetInt("PlayerMaxLV");
- kylinHomeCollectItems = GetIntArray("KirinNpc", 2);
- dailyQuestOpenTime = GetTimeArray("ActionTime", 1);
- flyBootItemId = GetInt("TransportPay");
- flyBootItemMoney = GetInt("TransportPay", 2);
- teamReadyTime = GetInt("TeamReadyTime");
- playerNameLength = GetInt("RoleNameLength");
- elderGodAreaAngerTotal = GetInt("AngryAdd", 4);
- petRandomSpeak = GetFloat("PetRandomSpeak");
- guardDungeonCageNPCID = GetInt("GuardFBCageNPCID");
- guardBubbleInterval = GetFloat("GuardFBCageNPCID", 3);
- autoRideHorse = GetFloat("AutoRideHorseTime") * Constants.F_DELTA;
- moneyDisplayIds = ConfigParse.GetDic<int, int>(GetInputString("MoneyDisplayModel", 1));
- expDisplayId = GetInt("MoneyDisplayModel", 2);
- openJobs = GetIntArray("OpenJob");
- xpGuideDelay = GetFloat("GuideConfig");
- xpGuideDuration = GetFloat("GuideConfig", 2);
- ResetComAtkTime = GetFloat("AtkWaitingTime");
- autoOnHookMap = new List<int>(GetIntArray("AutoOnHookMap"));
- GuardianPickUpID = new List<int>(GetIntArray("GuardianPickUpID"));
- ArenaSetList = new List<int>(GetIntArray("ArenaSet"));
- RotateSpeed = GetInt("RoleTurnedAngle");
- CloseNpcDist = GetFloat("ConversationDistanc", 2);
- FarawayNpcDist = GetFloat("ConversationDistanc");
- SpecialNpcIDs = new List<int>(GetIntArray("SpecialCollectNpcs", 1));
- PetDanceInterval = GetInt("PetDanceInterval") * Constants.F_GAMMA;
- FuncNpcDanceInterval = GetInt("PetDanceInterval", 2) * Constants.F_GAMMA;
- ruinsTranscriptMapId = GetInt("SpRewardMapID");
- EarlierGetTreasure = new List<int>(GetIntArray("EarlierGetTreasure"));
- BossSound = GetInt("BossSound");
- PlayBossHurtInterval = GetFloat("BossSound", 2);
- var jobHeadPortraitConfig1 = FuncConfigConfig.Get("Job1Head");
- jobHeadPortrait[1] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig1.Numerical1);
- otherjobHeadPortrait[1] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig1.Numerical2);
+ // CompareEquipPlaces = GetIntArray("EquipUpType");
+ // playerMaxLevel = GetInt("PlayerMaxLV");
+ // kylinHomeCollectItems = GetIntArray("KirinNpc", 2);
+ // dailyQuestOpenTime = GetTimeArray("ActionTime", 1);
+ // flyBootItemId = GetInt("TransportPay");
+ // flyBootItemMoney = GetInt("TransportPay", 2);
+ // teamReadyTime = GetInt("TeamReadyTime");
+ // playerNameLength = GetInt("RoleNameLength");
+ // elderGodAreaAngerTotal = GetInt("AngryAdd", 4);
+ // petRandomSpeak = GetFloat("PetRandomSpeak");
+ // guardDungeonCageNPCID = GetInt("GuardFBCageNPCID");
+ // guardBubbleInterval = GetFloat("GuardFBCageNPCID", 3);
+ // autoRideHorse = GetFloat("AutoRideHorseTime") * Constants.F_DELTA;
+ // moneyDisplayIds = ConfigParse.GetDic<int, int>(GetInputString("MoneyDisplayModel", 1));
+ // expDisplayId = GetInt("MoneyDisplayModel", 2);
+ // openJobs = GetIntArray("OpenJob");
+ // xpGuideDelay = GetFloat("GuideConfig");
+ // xpGuideDuration = GetFloat("GuideConfig", 2);
+ // ResetComAtkTime = GetFloat("AtkWaitingTime");
+ // autoOnHookMap = new List<int>(GetIntArray("AutoOnHookMap"));
+ // GuardianPickUpID = new List<int>(GetIntArray("GuardianPickUpID"));
+ // ArenaSetList = new List<int>(GetIntArray("ArenaSet"));
+ // RotateSpeed = GetInt("RoleTurnedAngle");
+ // CloseNpcDist = GetFloat("ConversationDistanc", 2);
+ // FarawayNpcDist = GetFloat("ConversationDistanc");
+ // SpecialNpcIDs = new List<int>(GetIntArray("SpecialCollectNpcs", 1));
+ // PetDanceInterval = GetInt("PetDanceInterval") * Constants.F_GAMMA;
+ // FuncNpcDanceInterval = GetInt("PetDanceInterval", 2) * Constants.F_GAMMA;
+ // ruinsTranscriptMapId = GetInt("SpRewardMapID");
+ // EarlierGetTreasure = new List<int>(GetIntArray("EarlierGetTreasure"));
+ // BossSound = GetInt("BossSound");
+ // PlayBossHurtInterval = GetFloat("BossSound", 2);
+ // var jobHeadPortraitConfig1 = FuncConfigConfig.Get("Job1Head");
+ // jobHeadPortrait[1] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig1.Numerical1);
+ // otherjobHeadPortrait[1] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig1.Numerical2);
- var jobHeadPortraitConfig2 = FuncConfigConfig.Get("Job2Head");
- jobHeadPortrait[2] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig2.Numerical1);
- otherjobHeadPortrait[2] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig2.Numerical2);
+ // var jobHeadPortraitConfig2 = FuncConfigConfig.Get("Job2Head");
+ // jobHeadPortrait[2] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig2.Numerical1);
+ // otherjobHeadPortrait[2] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig2.Numerical2);
- var jobHeadPortraitConfig3 = FuncConfigConfig.Get("Job3Head");
- jobHeadPortrait[3] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig3.Numerical1);
- otherjobHeadPortrait[3] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig3.Numerical2);
+ // var jobHeadPortraitConfig3 = FuncConfigConfig.Get("Job3Head");
+ // jobHeadPortrait[3] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig3.Numerical1);
+ // otherjobHeadPortrait[3] = ConfigParse.GetDic<int, string>(jobHeadPortraitConfig3.Numerical2);
- bossWearyValues = ConfigParse.GetDic<int, int>(GetInputString("KillBossCntLimit", 2));
- wingEquipLimits = ConfigParse.GetDic<int, int>(GetInputString("WingRealmLimit", 1));
- int i = 0;
- int[] equipPlaces = GetIntArray("EquipArea", 1);
- string[] equipPlacesNames = GetStringArray("EquipArea", 2);
- equipPlaceNameDict = new Dictionary<int, string>();
- for (i = 0; i < equipPlaces.Length; i++)
- {
- if (!equipPlaceNameDict.ContainsKey(equipPlaces[i]))
- {
- equipPlaceNameDict.Add(equipPlaces[i], equipPlacesNames[i]);
- }
- else
- {
- Debug.LogError("EquipArea : 瑁呭浣嶇疆閲嶅");
- }
- }
- var _trailBossJson = LitJson.JsonMapper.ToObject(GetInputString("MuneKadoTrialBossHead", 1));
- trailBossHeadIcons = new Dictionary<int, string>();
- foreach (var _key in _trailBossJson.Keys)
- {
- var _npcId = int.Parse(_key);
- if (!trailBossHeadIcons.ContainsKey(_npcId))
- {
- trailBossHeadIcons.Add(_npcId, _trailBossJson[_key].ToString());
- }
- }
- FuncConfigConfig HorseTrainConfig = FuncConfigConfig.Get("HorseTrain");
- HorseTrainIDList = LitJson.JsonMapper.ToObject<int[]>(HorseTrainConfig.Numerical1);
- FuncConfigConfig PetTrainConfig = FuncConfigConfig.Get("PetUpItem");
- PetTrainIDList = LitJson.JsonMapper.ToObject<int[]>(PetTrainConfig.Numerical3);
- FuncConfigConfig LingQiTrainConfig = FuncConfigConfig.Get("HorseTrain");
- var LingQiTrainJson = LitJson.JsonMapper.ToObject(GetInputString("LingQiTrain", 1));
- LingQiTrainIDList = new Dictionary<int, List<int>>();
- foreach (var key in LingQiTrainJson.Keys)
- {
- int attrId = int.Parse(key);
- var skillIds = LingQiTrainJson[key];
- foreach (var skillId in skillIds)
- {
- int id = int.Parse(skillId.ToString());
- if (!LingQiTrainIDList.ContainsKey(attrId))
- {
- List<int> list = new List<int>();
- list.Add(id);
- LingQiTrainIDList.Add(attrId, list);
- }
- else
- {
- LingQiTrainIDList[attrId].Add(id);
- }
- }
-
- }
-
- var skillPlusAttrIDJson = LitJson.JsonMapper.ToObject(GetInputString("SkillPlusAttrID", 2));
- skillAttrIDDict = new Dictionary<int, List<int>>();
- foreach (var key in skillPlusAttrIDJson.Keys)
- {
- int attrId = int.Parse(key);
- var skillIds = skillPlusAttrIDJson[key];
- foreach (var skillId in skillIds)
- {
- int id = int.Parse(skillId.ToString());
- if (!skillAttrIDDict.ContainsKey(id))
- {
- List<int> list = new List<int>();
- list.Add(attrId);
- skillAttrIDDict.Add(id, list);
- }
- else
- {
- skillAttrIDDict[id].Add(attrId);
- }
- }
-
- }
-
- var BossAssistAwardJson = LitJson.JsonMapper.ToObject(GetInputString("AssistAward", 1));
- BossAssistAward = new Dictionary<int, List<int>>();
- foreach (var key in BossAssistAwardJson.Keys)
- {
- int bossID = int.Parse(key);
- var awards = BossAssistAwardJson[key];
- if (!BossAssistAward.ContainsKey(bossID))
- {
- BossAssistAward[bossID] = new List<int>();
- }
- foreach (var award in awards)
- {
- BossAssistAward[bossID].Add(int.Parse(award.ToString()));
- }
-
- }
-
- var FBAssistAwardJson = LitJson.JsonMapper.ToObject(GetInputString("AssistAward", 2));
- FBAssistAward = new Dictionary<int, List<int>>();
- foreach (var key in FBAssistAwardJson.Keys)
- {
- int mapID = int.Parse(key);
- var awards = FBAssistAwardJson[key];
- if (!FBAssistAward.ContainsKey(mapID))
- {
- FBAssistAward[mapID] = new List<int>();
- }
- foreach (var award in awards)
- {
- FBAssistAward[mapID].Add(int.Parse(award.ToString()));
- }
-
- }
-
- var _godWeaponJson = LitJson.JsonMapper.ToObject(GetInputString("GodModel", 1));
- godWeaponMobs = new Dictionary<int, string>();
- foreach (var _key in _godWeaponJson.Keys)
- {
- var _godWeaponType = int.Parse(_key);
- if (!godWeaponMobs.ContainsKey(_godWeaponType))
- {
- godWeaponMobs.Add(_godWeaponType, _godWeaponJson[_key].ToString());
- }
- }
-
- audioScaleWhenFullScreenOn = GetFloat("AudioSound");
-
- iceCrystalMonsterScores = ConfigParse.GetDic<int, int>(GetInputString("IceLodeNeedPoint", 2));
-
- NoXpDungeons = new List<int>(GetIntArray("XpNoUseDungeon"));
- RandomJobs = new List<int>(GetIntArray("RandomJob"));
- elderGodTalkingTime = GetInt("ElderGodTalkingTime");
- elderGodBigBoss = GetInt("ElderGodBigBoss");
- PassiveSkillShow = new List<int>(GetIntArray("PassiveSkillShow"));
-
- FuncConfigConfig func = FuncConfigConfig.Get("NpcPosOffset");
- LitJson.JsonData _data = LitJson.JsonMapper.ToObject(func.Numerical1);
- foreach (var _key in _data.Keys)
- {
- int _npcID = int.Parse(_key);
- double[] _pos = new double[2];
- _pos[0] = (double)_data[_key][0];
- _pos[1] = (double)_data[_key][1];
- NpcPosOffset.Add(_npcID, new Vector3((float)_pos[0], 0, (float)_pos[1]));
- }
- //checkShowSwitchAccount
- var showSwitchAccount = FuncConfigConfig.Get("ShowSwitchAccount");
- LitJson.JsonData itemShowSwitchAccount = LitJson.JsonMapper.ToObject(showSwitchAccount.Numerical1);
- checkShowSwitchAccount = new List<string>();
- foreach(var item in itemShowSwitchAccount)
- {
- checkShowSwitchAccount.Add(item.ToString());
- }
-
- var putInItemPack = FuncConfigConfig.Get("PutInItemPack");
- LitJson.JsonData itemPutInData = LitJson.JsonMapper.ToObject(putInItemPack.Numerical1);
- itemPutInPackDict = new Dictionary<int, List<int>>();
- foreach (var _key in itemPutInData.Keys)
- {
- var itemTypeData = itemPutInData[_key];
- int packType = int.Parse(_key);
- List<int> itemTypes = new List<int>();
- itemPutInPackDict.Add(packType, itemTypes);
- if (itemTypeData.IsArray)
- {
- for (i = 0; i < itemTypeData.Count; i++)
- {
- int itemType = int.Parse(itemTypeData[i].ToString());
- itemTypes.Add(itemType);
- }
- }
- }
-
- //鎷惧彇璐甸噸鐗╁搧
- FuncConfigConfig importantItemType = FuncConfigConfig.Get("AutoBuyDrug");
- ImportantItemType = LitJson.JsonMapper.ToObject<int[]>(importantItemType.Numerical2);
- ImportantItemID = LitJson.JsonMapper.ToObject<int[]>(importantItemType.Numerical3);
-
- FuncConfigConfig nxxdImg = FuncConfigConfig.Get("NXXDPicture");
- LitJson.JsonData nxxdData = LitJson.JsonMapper.ToObject(nxxdImg.Numerical1);
- multipleRealmImgDict = new Dictionary<int, string>();
- if (nxxdData.IsArray)
- {
- for (i = 0; i < nxxdData.Count; i++)
- {
- if (nxxdData[i].IsArray)
- {
- multipleRealmImgDict.Add(int.Parse(nxxdData[i][0].ToString()), nxxdData[i][1].ToString());
- }
- }
- }
-
- bossShuntMaps = new List<int>(GetIntArray("BossShunt"));
- bossShuntDays = GetInt("BossShunt", 3);
-
- itemDropEffect.Clear();
- func = FuncConfigConfig.Get("ItemEquipmentEffect");
- _data = LitJson.JsonMapper.ToObject(func.Numerical1);
- List<string> _keys = new List<string>(_data.Keys);
- for (i = 0; i < _keys.Count; ++i)
- {
- int[] _props = new int[3];
- for (int j = 0; j < 3; ++j)
- {
- _props[j] = (int)_data[_keys[i]][j];
- }
- itemDropEffect[int.Parse(_keys[i])] = _props;
- }
-
- xllyDropEffect.Clear();
- _data = LitJson.JsonMapper.ToObject(func.Numerical2);
- _keys.Clear();
- _keys.AddRange(_data.Keys);
- for (i = 0; i < _keys.Count; ++i)
- {
- int[] _props = new int[3];
- for (int j = 0; j < 3; ++j)
- {
- _props[j] = (int)_data[_keys[i]][j];
- }
- xllyDropEffect[int.Parse(_keys[i])] = _props;
- }
-
- xqryDropEffect.Clear();
- _data = LitJson.JsonMapper.ToObject(func.Numerical3);
- _keys.Clear();
- _keys.AddRange(_data.Keys);
- for (i = 0; i < _keys.Count; ++i)
- {
- int[] _props = new int[3];
- for (int j = 0; j < 3; ++j)
- {
- _props[j] = (int)_data[_keys[i]][j];
- }
- xqryDropEffect[int.Parse(_keys[i])] = _props;
- }
-
- dropEffectQuality.Clear();
- func = FuncConfigConfig.Get("IeemEquipmentEffectQuality");
- _data = LitJson.JsonMapper.ToObject(func.Numerical1);
- _keys.Clear();
- _keys.AddRange(_data.Keys);
- for (i = 0; i < _keys.Count; ++i)
- {
- dropEffectQuality[int.Parse(_keys[i])] = (int)_data[_keys[i]];
- }
-
- customDropEffect.Clear();
- func = FuncConfigConfig.Get("ItemEquipmentEffectItem");
- _data = LitJson.JsonMapper.ToObject(func.Numerical1);
- _keys.Clear();
- _keys.AddRange(_data.Keys);
- int[] _tmp = null;
- List<int[]> _content = null;
- for (i = 0; i < _keys.Count; ++i)
- {
- _content = new List<int[]>();
- foreach (LitJson.JsonData _values in _data[_keys[i]])
- {
- if (_values.IsArray)
- {
- _tmp = new int[2];
- _tmp[0] = (int)_values[0];
- _tmp[1] = (int)_values[1];
- }
- else
- {
- _tmp = new int[1];
- _tmp[0] = (int)_values;
- }
- _content.Add(_tmp);
- }
- customDropEffect.Add(int.Parse(_keys[i]), _content);
- }
-
- BuffToHitEffect.Clear();
- func = FuncConfigConfig.Get("BuffToHitEffect");
- if (!string.IsNullOrEmpty(func.Numerical1) && !string.IsNullOrEmpty(func.Numerical2))
- {
- string[] _buffs = func.Numerical1.Split('|');
- string[] _effects = func.Numerical2.Split('|');
- for (i = 0; i < _buffs.Length; ++i)
- {
- BuffToHitEffect[int.Parse(_buffs[i])] = int.Parse(_effects[i]);
- }
- }
-
- demonJarHintLevelLimit = GetInt("DemonJarFirstRemin");
- demonJarHintLineId = GetInt("DemonJarFirstRemin", 2);
- skillPanelUnLock = GetInt("SkillPanelUnlock");
- dailyQuestRedpointLevelLimit = GetInt("DailyQuestRedPoint");
- lowHpRemind = GetInt("LowHpRemind");
- autoBuyItemIds = GetIntArray("BuyItemPrice", 1);
- autoBuyItemPrices = GetIntArray("BuyItemPrice", 2);
- neutralMaps.AddRange(GetIntArray("MapLine", 4));
- neutralBossMaps.AddRange(GetIntArray("BossListMapID"));
-
- var _propertyIconCfg = FuncConfigConfig.Get("PropertyIcon");
- var _propertyIconJson = LitJson.JsonMapper.ToObject(_propertyIconCfg.Numerical1);
- foreach (var _key in _propertyIconJson.Keys)
- {
- var _property = int.Parse(_key);
- propertyIconDict.Add(_property, _propertyIconJson[_key].ToString());
- }
-
- munekadolockLimit = GetInt("MunekadoLockLimit");
- demonJarRedPoint = GetInt("DemonJarRedPoint");
- LoadLV = GetInputString("LoadLV");
-
- mainWinSkillResetTime = GetFloat("AutomaticSwitch");
- heroDialogueOffset = GetInputString("NpcHalfLength", 1).Vector3Parse();
- heroDialogueRotation = GetInputString("NpcHalfLength", 2).Vector3Parse();
- heroDialogueScale = GetFloat("NpcHalfLength", 3);
-
- var ancientConfig = FuncConfigConfig.Get("ElderBattleTarget");
- ancientGrandTotalAchievements = new List<int>();
- ancientGrandTotalAchievements.AddRange(ConfigParse.GetMultipleStr<int>(ancientConfig.Numerical1));
- ancientContinueKillAchievements = new List<int>();
- ancientContinueKillAchievements.AddRange(ConfigParse.GetMultipleStr<int>(ancientConfig.Numerical2));
-
- trialDungeonGroupChallengeTipLv = GetInt("SingleIntoFB");
- prayerRedpointLimitLv = GetInt("PrayRedPoint");
- demonJarLevelLimit = GetInt("DemonJarLevelLimit");
- maxItemDropEffectCount = GetInt("ItemMaskEffect");
-
- specialGuide41Mission = GetInt("SpecialGuide41", 1);
- specialGuide41Achievement = GetInt("SpecialGuide41", 2);
-
- supremeRechargeVipLv = GetInt("SupremeCTGVipLimit", 1);
-
- rechargeRedpointLv = GetInt("FirstPayRedPoint", 1);
- rechargeRedpointMinLv = GetInt("FirstPayRedPoint", 2);
- runeTowerSweepBuyTimes = GetInt("RuneTowerSweepBuy");
- runeTowerSweepBuyPrice = GetInt("RuneTowerSweepBuy", 2);
- teamMatchingTimeOut = GetInt("TeamMatchingTimeOut");
- inGameDownLoadLevelCheckPoints = new List<int>(GetIntArray("InGameDownLoad"));
- inGameDownLoadTaskCheckPoints = new List<int>(GetIntArray("InGameDownLoad", 2));
- inGameDownLoadHighLevel = GetInt("InGameDownLoad", 3);
-
- worldBossNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 1));
- bossHomeNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 2));
- elderGodNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 3));
- demonJarNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 4));
- dogzNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 5));
-
- if (ModeDefaultConfig == null)
- {
- func = FuncConfigConfig.Get("ModeDefault");
-
- string[] _funcNpc = func.Numerical1.Split('|');
- string[] _fightNpc = func.Numerical2.Split('|');
- string[] _pet = func.Numerical3.Split('|');
- string[] _horse = func.Numerical4.Split('|');
-
- ModeDefaultConfig = new string[4][];
- ModeDefaultConfig[0] = _funcNpc;
- ModeDefaultConfig[1] = _fightNpc;
- ModeDefaultConfig[2] = _pet;
- ModeDefaultConfig[3] = _horse;
- }
-
- if (RealmGroup == null)
- {
- func = FuncConfigConfig.Get("RealmGroup");
- string[] _group = func.Numerical1.Split('|');
- RealmGroup = new int[_group.Length];
- for (int j = 0; j < _group.Length; ++j)
- {
- int.TryParse(_group[j], out RealmGroup[j]);
- }
- }
-
- func = FuncConfigConfig.Get("PrefightAtkRange");
- PrefightAtkRange = float.Parse(func.Numerical1);
- inGameDownLoadHighestLevelPoint = GetInt("DownReward", 2);
-
- dungeonCanUseMoneyIds = new List<int>(GetIntArray("FBEnterTickeyAuto", 1));
- dungeonRebornClientTimes = ConfigParse.GetDic<int, int>(GetInputString("DuplicatesRebornTime", 2));
- dogzBoxLimit = GetInt("DogzBoxLimit");
-
- fairyGrabBossMapLines = ConfigParse.GetDic<int, int>(GetInputString("MapLine", 2));
- var grabBossMaps = fairyGrabBossMapLines.Keys.ToList();
- foreach (var _key in grabBossMaps)
- {
- fairyGrabBossMapLines[_key] = fairyGrabBossMapLines[_key] - 1;
- }
-
- if (DropItemEffectMapID == null)
- {
- DropItemEffectMapID = new Dictionary<int, List<int>>();
- }
- DropItemEffectMapID.Clear();
- func = FuncConfigConfig.Get("DropItemEffectMapID");
- _data = LitJson.JsonMapper.ToObject(func.Numerical1);
- int _itemID;
- _keys.Clear();
- _keys.AddRange(_data.Keys);
- for (int j = 0; j < _keys.Count; ++j)
- {
- if (int.TryParse(_keys[j].ToString(), out _itemID))
- {
- if (!DropItemEffectMapID.ContainsKey(_itemID))
- {
- DropItemEffectMapID.Add(_itemID, new List<int>());
- }
- var _jsonMapIDs = _data[_keys[j]];
- foreach (var _jsonMapID in _jsonMapIDs)
- {
- var _mapID = ((LitJson.IJsonWrapper)_jsonMapID).GetInt();
- if (!DropItemEffectMapID[_itemID].Contains(_mapID))
- {
- DropItemEffectMapID[_itemID].Add(_mapID);
- }
- }
- }
- }
-
- int[] mapIDs = GetIntArray("RebornAutoFightDungeon");
- RebornAutoFightMapID = new List<int>(mapIDs);
-
- teamWorldCall = GetInputString("TeamWorldCall");
- teamWorldCallInviteCount = GetInt("TeamWorldCall", 2);
-
- var ancientKingAwradConfig = FuncConfigConfig.Get("ElderBattlefieldTopAward");
- if (ancientKingAwradConfig != null)
- {
- var itemArray = LitJson.JsonMapper.ToObject<int[][]>(ancientKingAwradConfig.Numerical1);
- for (int k = 0; k < itemArray.Length; k++)
- {
- // ancientKingAwards.Add(new Item()
- // {
- // id = itemArray[k][0],
- // count = itemArray[k][1],
- // });
- }
- }
-
- func = FuncConfigConfig.Get("QualityEffectConfig");
- lowQualityEffectCount = int.Parse(func.Numerical1);
- medQualityEffectCount = int.Parse(func.Numerical2);
- highQualityEffectCount = int.Parse(func.Numerical3);
-
- func = FuncConfigConfig.Get("QualityPetCountConfig");
- lowQualityPetCount = int.Parse(func.Numerical1);
- medQualityPetCount = int.Parse(func.Numerical2);
- highQualityPetCount = int.Parse(func.Numerical3);
-
- func = FuncConfigConfig.Get("QualityGuardCountConfig");
- lowQualityGuardCount = int.Parse(func.Numerical1);
- medQualityGuardCount = int.Parse(func.Numerical2);
- highQualityGuardCount = int.Parse(func.Numerical3);
-
- func = FuncConfigConfig.Get("QualityPetEffectCount");
- lowQualityPetEffectCount = int.Parse(func.Numerical1);
- medQualityPetEffectCount = int.Parse(func.Numerical2);
- highQualityPetEffectCount = int.Parse(func.Numerical3);
-
- func = FuncConfigConfig.Get("QualityHorseEffectCount");
- lowQualityHorseEffectCount = int.Parse(func.Numerical1);
- medQualityHorseEffectCount = int.Parse(func.Numerical2);
- highQualityHorseEffectCount = int.Parse(func.Numerical3);
-
- fairyLandBuffCondition = GetInt("XjmjAddHarm", 1);
- fairyLandBuffId = GetInt("XjmjAddHarm", 2);
- achievementEarlierStageLevel = GetInt("AchieveLV");
-
- func = FuncConfigConfig.Get("PreloadSkillEffect");
- PreloadSkillEffect = new int[2][];
- PreloadSkillEffect[0] = GetIntArray("PreloadSkillEffect");
- PreloadSkillEffect[1] = GetIntArray("PreloadSkillEffect", 2);
- demonJarAutoTime = GetInt("DemonJarAutoTime");
-
- // if (SgzzRobotEquipDict == null)
+ // bossWearyValues = ConfigParse.GetDic<int, int>(GetInputString("KillBossCntLimit", 2));
+ // wingEquipLimits = ConfigParse.GetDic<int, int>(GetInputString("WingRealmLimit", 1));
+ // int i = 0;
+ // int[] equipPlaces = GetIntArray("EquipArea", 1);
+ // string[] equipPlacesNames = GetStringArray("EquipArea", 2);
+ // equipPlaceNameDict = new Dictionary<int, string>();
+ // for (i = 0; i < equipPlaces.Length; i++)
// {
- // SgzzRobotEquipDict = new Dictionary<int, Dictionary<int, GA_NpcFightSgzcZZ.EquipRandomInfo>>();
-
- // for (int job = 1; job <= 3; ++job)
+ // if (!equipPlaceNameDict.ContainsKey(equipPlaces[i]))
// {
- // string _jsonString = GetInputString("SGZCHelpBattleEquip", job);
-
- // if (string.IsNullOrEmpty(_jsonString))
+ // equipPlaceNameDict.Add(equipPlaces[i], equipPlacesNames[i]);
+ // }
+ // else
+ // {
+ // Debug.LogError("EquipArea : 瑁呭浣嶇疆閲嶅");
+ // }
+ // }
+ // var _trailBossJson = LitJson.JsonMapper.ToObject(GetInputString("MuneKadoTrialBossHead", 1));
+ // trailBossHeadIcons = new Dictionary<int, string>();
+ // foreach (var _key in _trailBossJson.Keys)
+ // {
+ // var _npcId = int.Parse(_key);
+ // if (!trailBossHeadIcons.ContainsKey(_npcId))
+ // {
+ // trailBossHeadIcons.Add(_npcId, _trailBossJson[_key].ToString());
+ // }
+ // }
+ // FuncConfigConfig HorseTrainConfig = FuncConfigConfig.Get("HorseTrain");
+ // HorseTrainIDList = LitJson.JsonMapper.ToObject<int[]>(HorseTrainConfig.Numerical1);
+ // FuncConfigConfig PetTrainConfig = FuncConfigConfig.Get("PetUpItem");
+ // PetTrainIDList = LitJson.JsonMapper.ToObject<int[]>(PetTrainConfig.Numerical3);
+ // FuncConfigConfig LingQiTrainConfig = FuncConfigConfig.Get("HorseTrain");
+ // var LingQiTrainJson = LitJson.JsonMapper.ToObject(GetInputString("LingQiTrain", 1));
+ // LingQiTrainIDList = new Dictionary<int, List<int>>();
+ // foreach (var key in LingQiTrainJson.Keys)
+ // {
+ // int attrId = int.Parse(key);
+ // var skillIds = LingQiTrainJson[key];
+ // foreach (var skillId in skillIds)
+ // {
+ // int id = int.Parse(skillId.ToString());
+ // if (!LingQiTrainIDList.ContainsKey(attrId))
// {
- // continue;
+ // List<int> list = new List<int>();
+ // list.Add(id);
+ // LingQiTrainIDList.Add(attrId, list);
// }
-
- // var _jsonData = LitJson.JsonMapper.ToObject(_jsonString);
- // var _jobDict = new Dictionary<int, GA_NpcFightSgzcZZ.EquipRandomInfo>();
-
- // for (i = 0; i < _jsonData.Count; ++i)
+ // else
// {
- // var _lvJson = _jsonData[i];
- // var _lv = (int)_lvJson["LV"];
- // if (!_jobDict.ContainsKey(_lv))
- // {
- // var _equips = _lvJson["Equips"];
-
- // var _randEquip = new GA_NpcFightSgzcZZ.EquipRandomInfo();
-
- // _randEquip.randClothesItemIDs = new int[_equips[0].Count];
- // for (int j = 0; j < _equips[0].Count; ++j)
- // {
- // _randEquip.randClothesItemIDs[j] = (int)_equips[0][j];
- // }
-
- // _randEquip.randWeaponItemIDs = new int[_equips[1].Count];
- // for (int j = 0; j < _equips[1].Count; ++j)
- // {
- // _randEquip.randWeaponItemIDs[j] = (int)_equips[1][j];
- // }
-
- // _randEquip.randSecondaryItemIDs = new int[_equips[2].Count];
- // for (int j = 0; j < _equips[2].Count; ++j)
- // {
- // _randEquip.randSecondaryItemIDs[j] = (int)_equips[2][j];
- // }
-
- // _randEquip.randWingItemIDs = new int[_equips[3].Count];
- // for (int j = 0; j < _equips[3].Count; ++j)
- // {
- // _randEquip.randWingItemIDs[j] = (int)_equips[3][j];
- // }
-
- // _randEquip.godWeaponIDs = new int[_equips[4].Count];
- // for (int j = 0; j < _equips[4].Count; ++j)
- // {
- // _randEquip.godWeaponIDs[j] = (int)_equips[4][j];
- // }
-
- // _jobDict.Add(_lv, _randEquip);
- // }
+ // LingQiTrainIDList[attrId].Add(id);
// }
+ // }
- // SgzzRobotEquipDict.Add(job, _jobDict);
+ // }
+ // var skillPlusAttrIDJson = LitJson.JsonMapper.ToObject(GetInputString("SkillPlusAttrID", 2));
+ // skillAttrIDDict = new Dictionary<int, List<int>>();
+ // foreach (var key in skillPlusAttrIDJson.Keys)
+ // {
+ // int attrId = int.Parse(key);
+ // var skillIds = skillPlusAttrIDJson[key];
+ // foreach (var skillId in skillIds)
+ // {
+ // int id = int.Parse(skillId.ToString());
+ // if (!skillAttrIDDict.ContainsKey(id))
+ // {
+ // List<int> list = new List<int>();
+ // list.Add(attrId);
+ // skillAttrIDDict.Add(id, list);
+ // }
+ // else
+ // {
+ // skillAttrIDDict[id].Add(attrId);
+ // }
+ // }
+
+ // }
+
+ // var BossAssistAwardJson = LitJson.JsonMapper.ToObject(GetInputString("AssistAward", 1));
+ // BossAssistAward = new Dictionary<int, List<int>>();
+ // foreach (var key in BossAssistAwardJson.Keys)
+ // {
+ // int bossID = int.Parse(key);
+ // var awards = BossAssistAwardJson[key];
+ // if (!BossAssistAward.ContainsKey(bossID))
+ // {
+ // BossAssistAward[bossID] = new List<int>();
+ // }
+ // foreach (var award in awards)
+ // {
+ // BossAssistAward[bossID].Add(int.Parse(award.ToString()));
+ // }
+
+ // }
+
+ // var FBAssistAwardJson = LitJson.JsonMapper.ToObject(GetInputString("AssistAward", 2));
+ // FBAssistAward = new Dictionary<int, List<int>>();
+ // foreach (var key in FBAssistAwardJson.Keys)
+ // {
+ // int mapID = int.Parse(key);
+ // var awards = FBAssistAwardJson[key];
+ // if (!FBAssistAward.ContainsKey(mapID))
+ // {
+ // FBAssistAward[mapID] = new List<int>();
+ // }
+ // foreach (var award in awards)
+ // {
+ // FBAssistAward[mapID].Add(int.Parse(award.ToString()));
+ // }
+
+ // }
+
+ // var _godWeaponJson = LitJson.JsonMapper.ToObject(GetInputString("GodModel", 1));
+ // godWeaponMobs = new Dictionary<int, string>();
+ // foreach (var _key in _godWeaponJson.Keys)
+ // {
+ // var _godWeaponType = int.Parse(_key);
+ // if (!godWeaponMobs.ContainsKey(_godWeaponType))
+ // {
+ // godWeaponMobs.Add(_godWeaponType, _godWeaponJson[_key].ToString());
// }
// }
+ // audioScaleWhenFullScreenOn = GetFloat("AudioSound");
- if (SgzcRealm == null)
- {
- SgzcRealm = new Dictionary<int, int>();
+ // iceCrystalMonsterScores = ConfigParse.GetDic<int, int>(GetInputString("IceLodeNeedPoint", 2));
- var _lvArr = GetInputString("SGZCRobotRealm", 1).Split('|');
- var _rLvArr = GetInputString("SGZCRobotRealm", 2).Split('|');
+ // NoXpDungeons = new List<int>(GetIntArray("XpNoUseDungeon"));
+ // RandomJobs = new List<int>(GetIntArray("RandomJob"));
+ // elderGodTalkingTime = GetInt("ElderGodTalkingTime");
+ // elderGodBigBoss = GetInt("ElderGodBigBoss");
+ // PassiveSkillShow = new List<int>(GetIntArray("PassiveSkillShow"));
- for (int j = 0; j < _lvArr.Length; ++j)
- {
- SgzcRealm[int.Parse(_lvArr[j])] = int.Parse(_rLvArr[j]);
- }
- }
+ // FuncConfigConfig func = FuncConfigConfig.Get("NpcPosOffset");
+ // LitJson.JsonData _data = LitJson.JsonMapper.ToObject(func.Numerical1);
+ // foreach (var _key in _data.Keys)
+ // {
+ // int _npcID = int.Parse(_key);
+ // double[] _pos = new double[2];
+ // _pos[0] = (double)_data[_key][0];
+ // _pos[1] = (double)_data[_key][1];
+ // NpcPosOffset.Add(_npcID, new Vector3((float)_pos[0], 0, (float)_pos[1]));
+ // }
+ // //checkShowSwitchAccount
+ // var showSwitchAccount = FuncConfigConfig.Get("ShowSwitchAccount");
+ // LitJson.JsonData itemShowSwitchAccount = LitJson.JsonMapper.ToObject(showSwitchAccount.Numerical1);
+ // checkShowSwitchAccount = new List<string>();
+ // foreach(var item in itemShowSwitchAccount)
+ // {
+ // checkShowSwitchAccount.Add(item.ToString());
+ // }
- crossServerBattleFieldOpenDay = GetInt("CrossRealmCfg", 2);
- UISpringDecorate = GetInt("UISpringDecorate");
+ // var putInItemPack = FuncConfigConfig.Get("PutInItemPack");
+ // LitJson.JsonData itemPutInData = LitJson.JsonMapper.ToObject(putInItemPack.Numerical1);
+ // itemPutInPackDict = new Dictionary<int, List<int>>();
+ // foreach (var _key in itemPutInData.Keys)
+ // {
+ // var itemTypeData = itemPutInData[_key];
+ // int packType = int.Parse(_key);
+ // List<int> itemTypes = new List<int>();
+ // itemPutInPackDict.Add(packType, itemTypes);
+ // if (itemTypeData.IsArray)
+ // {
+ // for (i = 0; i < itemTypeData.Count; i++)
+ // {
+ // int itemType = int.Parse(itemTypeData[i].ToString());
+ // itemTypes.Add(itemType);
+ // }
+ // }
+ // }
- mixServerCustomDays = GetInt("MixServer");
- openServerCustomDays = GetInt("OperationAction");
- ClientPvpAttributePer = GetInt("ClientPvPAttributePer") * Constants.F_DELTA;
+ // //鎷惧彇璐甸噸鐗╁搧
+ // FuncConfigConfig importantItemType = FuncConfigConfig.Get("AutoBuyDrug");
+ // ImportantItemType = LitJson.JsonMapper.ToObject<int[]>(importantItemType.Numerical2);
+ // ImportantItemID = LitJson.JsonMapper.ToObject<int[]>(importantItemType.Numerical3);
- mysteryShopRefreshItem = GetInt("MysteryShopRefresh");
- mysteryShopRefreshItemCount = new Dictionary<int, int>();
- var mysteryShopJson = JsonMapper.ToObject(GetInputString("MysteryShopRefresh", 2));
- foreach (var key in mysteryShopJson.Keys)
- {
- var time = int.Parse(key);
- mysteryShopRefreshItemCount[time] = (int)mysteryShopJson[key];
- }
+ // FuncConfigConfig nxxdImg = FuncConfigConfig.Get("NXXDPicture");
+ // LitJson.JsonData nxxdData = LitJson.JsonMapper.ToObject(nxxdImg.Numerical1);
+ // multipleRealmImgDict = new Dictionary<int, string>();
+ // if (nxxdData.IsArray)
+ // {
+ // for (i = 0; i < nxxdData.Count; i++)
+ // {
+ // if (nxxdData[i].IsArray)
+ // {
+ // multipleRealmImgDict.Add(int.Parse(nxxdData[i][0].ToString()), nxxdData[i][1].ToString());
+ // }
+ // }
+ // }
- mysteryShopRefreshItemValue = GetInt("MysteryShopRefresh", 3);
- mysteryShopRefreshInterval = GetInt("MysteryShopRefresh", 4);
+ // bossShuntMaps = new List<int>(GetIntArray("BossShunt"));
+ // bossShuntDays = GetInt("BossShunt", 3);
- var equipStarConfig = FuncConfigConfig.Get("EquipPartStar");
- var equipStarJson = LitJson.JsonMapper.ToObject(equipStarConfig.Numerical1);
- equipStarLimit = new Dictionary<int, Dictionary<int, int>>();
- foreach (var itemColorKey in equipStarJson.Keys)
- {
- var itemColor = int.Parse(itemColorKey);
- Dictionary<int, int> dict = new Dictionary<int, int>();
- foreach (var itemLevelKey in equipStarJson[itemColorKey].Keys)
- {
- var itemLevel = int.Parse(itemLevelKey);
- var starLimit = int.Parse(equipStarJson[itemColorKey][itemLevelKey].ToString());
- dict.Add(itemLevel, starLimit);
- }
- equipStarLimit.Add(itemColor, dict);
- }
+ // itemDropEffect.Clear();
+ // func = FuncConfigConfig.Get("ItemEquipmentEffect");
+ // _data = LitJson.JsonMapper.ToObject(func.Numerical1);
+ // List<string> _keys = new List<string>(_data.Keys);
+ // for (i = 0; i < _keys.Count; ++i)
+ // {
+ // int[] _props = new int[3];
+ // for (int j = 0; j < 3; ++j)
+ // {
+ // _props[j] = (int)_data[_keys[i]][j];
+ // }
+ // itemDropEffect[int.Parse(_keys[i])] = _props;
+ // }
- equipTrainMustItemId = GetInt("EquipWashMustID");
- acutionItemHour = GetInt("AuctionItem");
- mainWinTopCloseTime = GetInt("AutomaticSwitch");
+ // xllyDropEffect.Clear();
+ // _data = LitJson.JsonMapper.ToObject(func.Numerical2);
+ // _keys.Clear();
+ // _keys.AddRange(_data.Keys);
+ // for (i = 0; i < _keys.Count; ++i)
+ // {
+ // int[] _props = new int[3];
+ // for (int j = 0; j < 3; ++j)
+ // {
+ // _props[j] = (int)_data[_keys[i]][j];
+ // }
+ // xllyDropEffect[int.Parse(_keys[i])] = _props;
+ // }
- equipDecomposeScreen.AddRange(GetIntArray("EquipDecomposeScreen", 2));
+ // xqryDropEffect.Clear();
+ // _data = LitJson.JsonMapper.ToObject(func.Numerical3);
+ // _keys.Clear();
+ // _keys.AddRange(_data.Keys);
+ // for (i = 0; i < _keys.Count; ++i)
+ // {
+ // int[] _props = new int[3];
+ // for (int j = 0; j < 3; ++j)
+ // {
+ // _props[j] = (int)_data[_keys[i]][j];
+ // }
+ // xqryDropEffect[int.Parse(_keys[i])] = _props;
+ // }
- func = FuncConfigConfig.Get("AtkTypeIncreasePushDis");
- var _ks = func.Numerical1.Split('|');
- var _vs = func.Numerical2.Split('|');
- for (i = 0; i < _ks.Length; ++i)
- {
- AtkTypeIncreasePushDis[int.Parse(_ks[i])] = int.Parse(_vs[i]) * Constants.F_DELTA;
- }
+ // dropEffectQuality.Clear();
+ // func = FuncConfigConfig.Get("IeemEquipmentEffectQuality");
+ // _data = LitJson.JsonMapper.ToObject(func.Numerical1);
+ // _keys.Clear();
+ // _keys.AddRange(_data.Keys);
+ // for (i = 0; i < _keys.Count; ++i)
+ // {
+ // dropEffectQuality[int.Parse(_keys[i])] = (int)_data[_keys[i]];
+ // }
- func = FuncConfigConfig.Get("NpcDieSetCamera");
- if (func != null)
- {
- var _jsonData = LitJson.JsonMapper.ToObject(func.Numerical1);
- for (i = 0; i < _jsonData.Count; ++i)
- {
- var _child = _jsonData[i];
- // var _lookAtData = new CameraController.LookAtData();
- // _lookAtData.position = new Vector3(MathUtility.GetFloatFromLitJson(_child[1][0]),
- // MathUtility.GetFloatFromLitJson(_child[1][1]),
- // MathUtility.GetFloatFromLitJson(_child[1][2]));
- // _lookAtData.rotX = (int)_child[2];
- // _lookAtData.rotY = (int)_child[3];
- // _lookAtData.lastTime = MathUtility.GetFloatFromLitJson(_child[4]);
+ // customDropEffect.Clear();
+ // func = FuncConfigConfig.Get("ItemEquipmentEffectItem");
+ // _data = LitJson.JsonMapper.ToObject(func.Numerical1);
+ // _keys.Clear();
+ // _keys.AddRange(_data.Keys);
+ // int[] _tmp = null;
+ // List<int[]> _content = null;
+ // for (i = 0; i < _keys.Count; ++i)
+ // {
+ // _content = new List<int[]>();
+ // foreach (LitJson.JsonData _values in _data[_keys[i]])
+ // {
+ // if (_values.IsArray)
+ // {
+ // _tmp = new int[2];
+ // _tmp[0] = (int)_values[0];
+ // _tmp[1] = (int)_values[1];
+ // }
+ // else
+ // {
+ // _tmp = new int[1];
+ // _tmp[0] = (int)_values;
+ // }
+ // _content.Add(_tmp);
+ // }
+ // customDropEffect.Add(int.Parse(_keys[i]), _content);
+ // }
- // NpcDieSetCamera[(int)_child[0]] = _lookAtData;
- }
- }
- WorkForEnemySkills = GetIntArray("ArenaSetSkills", 1);
- WorkForMeSkills = GetIntArray("ArenaSetSkills", 2);
- WorkNotSkills = GetIntArray("ArenaSetSkills", 3);
- defenseGetWays = GetIntArray("DefenseGetWays", 1);
- skillYinjis = ConfigParse.GetDic<int, int>(GetInputString("SkillYinji", 1));
- onlyUsedAtBackpackItems = new List<int>(GetIntArray("ItemPush", 2));
+ // BuffToHitEffect.Clear();
+ // func = FuncConfigConfig.Get("BuffToHitEffect");
+ // if (!string.IsNullOrEmpty(func.Numerical1) && !string.IsNullOrEmpty(func.Numerical2))
+ // {
+ // string[] _buffs = func.Numerical1.Split('|');
+ // string[] _effects = func.Numerical2.Split('|');
+ // for (i = 0; i < _buffs.Length; ++i)
+ // {
+ // BuffToHitEffect[int.Parse(_buffs[i])] = int.Parse(_effects[i]);
+ // }
+ // }
- var signInSkillArray = GetIntArray("SignInPromoteSkill", 1);
- if (signInSkillArray != null)
- {
- signInPromoteSkills.AddRange(signInSkillArray);
- }
+ // demonJarHintLevelLimit = GetInt("DemonJarFirstRemin");
+ // demonJarHintLineId = GetInt("DemonJarFirstRemin", 2);
+ // skillPanelUnLock = GetInt("SkillPanelUnlock");
+ // dailyQuestRedpointLevelLimit = GetInt("DailyQuestRedPoint");
+ // lowHpRemind = GetInt("LowHpRemind");
+ // autoBuyItemIds = GetIntArray("BuyItemPrice", 1);
+ // autoBuyItemPrices = GetIntArray("BuyItemPrice", 2);
+ // neutralMaps.AddRange(GetIntArray("MapLine", 4));
+ // neutralBossMaps.AddRange(GetIntArray("BossListMapID"));
- MasteryLoadingLevelLimit1 = GetInt("MasteryLoadingLevelLimit");
- MasteryLoadingLevelLimit2 = GetInt("MasteryLoadingLevelLimit", 2);
+ // var _propertyIconCfg = FuncConfigConfig.Get("PropertyIcon");
+ // var _propertyIconJson = LitJson.JsonMapper.ToObject(_propertyIconCfg.Numerical1);
+ // foreach (var _key in _propertyIconJson.Keys)
+ // {
+ // var _property = int.Parse(_key);
+ // propertyIconDict.Add(_property, _propertyIconJson[_key].ToString());
+ // }
- chestDisplayItems = new List<int>(GetIntArray("ChestShowItems"));
+ // munekadolockLimit = GetInt("MunekadoLockLimit");
+ // demonJarRedPoint = GetInt("DemonJarRedPoint");
+ // LoadLV = GetInputString("LoadLV");
- func = FuncConfigConfig.Get("Zhanling");
- if (func != null)
- {
- OldZhanLingCtgIdDict = new Dictionary<int, int>();
- ZhanLingCtgIdDict = new Dictionary<int, List<int>>();
- var tempDict = JsonMapper.ToObject(func.Numerical1);
- var keyList = tempDict.Keys.ToList();
- for (int j = 0; j < keyList.Count; j++)
- {
- OldZhanLingCtgIdDict[int.Parse(keyList[j])] = JsonMapper.ToObject<List<int>>(tempDict[keyList[j]].ToJson())[0];
- ZhanLingCtgIdDict[int.Parse(keyList[j])] = JsonMapper.ToObject<List<int>>(tempDict[keyList[j]].ToJson());
- }
+ // mainWinSkillResetTime = GetFloat("AutomaticSwitch");
+ // heroDialogueOffset = GetInputString("NpcHalfLength", 1).Vector3Parse();
+ // heroDialogueRotation = GetInputString("NpcHalfLength", 2).Vector3Parse();
+ // heroDialogueScale = GetFloat("NpcHalfLength", 3);
- ZhanLingCtgIdHDict = new Dictionary<int, List<int>>();
- tempDict = JsonMapper.ToObject(func.Numerical3);
- keyList = tempDict.Keys.ToList();
- for (int k = 0; k < keyList.Count; k++)
- {
- ZhanLingCtgIdHDict[int.Parse(keyList[k])] = JsonMapper.ToObject<List<int>>(tempDict[keyList[k]].ToJson());
- }
- }
+ // var ancientConfig = FuncConfigConfig.Get("ElderBattleTarget");
+ // ancientGrandTotalAchievements = new List<int>();
+ // ancientGrandTotalAchievements.AddRange(ConfigParse.GetMultipleStr<int>(ancientConfig.Numerical1));
+ // ancientContinueKillAchievements = new List<int>();
+ // ancientContinueKillAchievements.AddRange(ConfigParse.GetMultipleStr<int>(ancientConfig.Numerical2));
- func = FuncConfigConfig.Get("FBQuickPass");
- fightPowerMore = float.Parse(func.Numerical1) + 0.01f; //鐤戜技鐜╁鏃犳硶闆疯瘺鏄疌/S璁$畻涓嶅绛夐棶棰橈紝鎵�浠ュ姞0.01f
- flashOpenArr = JsonMapper.ToObject<int[]>(func.Numerical2);
- flashCntMoreArr = JsonMapper.ToObject<int[]>(func.Numerical3);
- flashKillMaxCount = int.Parse(func.Numerical4);
+ // trialDungeonGroupChallengeTipLv = GetInt("SingleIntoFB");
+ // prayerRedpointLimitLv = GetInt("PrayRedPoint");
+ // demonJarLevelLimit = GetInt("DemonJarLevelLimit");
+ // maxItemDropEffectCount = GetInt("ItemMaskEffect");
+
+ // specialGuide41Mission = GetInt("SpecialGuide41", 1);
+ // specialGuide41Achievement = GetInt("SpecialGuide41", 2);
+
+ // supremeRechargeVipLv = GetInt("SupremeCTGVipLimit", 1);
+
+ // rechargeRedpointLv = GetInt("FirstPayRedPoint", 1);
+ // rechargeRedpointMinLv = GetInt("FirstPayRedPoint", 2);
+ // runeTowerSweepBuyTimes = GetInt("RuneTowerSweepBuy");
+ // runeTowerSweepBuyPrice = GetInt("RuneTowerSweepBuy", 2);
+ // teamMatchingTimeOut = GetInt("TeamMatchingTimeOut");
+ // inGameDownLoadLevelCheckPoints = new List<int>(GetIntArray("InGameDownLoad"));
+ // inGameDownLoadTaskCheckPoints = new List<int>(GetIntArray("InGameDownLoad", 2));
+ // inGameDownLoadHighLevel = GetInt("InGameDownLoad", 3);
+
+ // worldBossNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 1));
+ // bossHomeNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 2));
+ // elderGodNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 3));
+ // demonJarNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 4));
+ // dogzNoRebornRemindMaps = new List<int>(GetIntArray("NoRebornRemindMap", 5));
+
+ // if (ModeDefaultConfig == null)
+ // {
+ // func = FuncConfigConfig.Get("ModeDefault");
+
+ // string[] _funcNpc = func.Numerical1.Split('|');
+ // string[] _fightNpc = func.Numerical2.Split('|');
+ // string[] _pet = func.Numerical3.Split('|');
+ // string[] _horse = func.Numerical4.Split('|');
+
+ // ModeDefaultConfig = new string[4][];
+ // ModeDefaultConfig[0] = _funcNpc;
+ // ModeDefaultConfig[1] = _fightNpc;
+ // ModeDefaultConfig[2] = _pet;
+ // ModeDefaultConfig[3] = _horse;
+ // }
+
+ // if (RealmGroup == null)
+ // {
+ // func = FuncConfigConfig.Get("RealmGroup");
+ // string[] _group = func.Numerical1.Split('|');
+ // RealmGroup = new int[_group.Length];
+ // for (int j = 0; j < _group.Length; ++j)
+ // {
+ // int.TryParse(_group[j], out RealmGroup[j]);
+ // }
+ // }
+
+ // func = FuncConfigConfig.Get("PrefightAtkRange");
+ // PrefightAtkRange = float.Parse(func.Numerical1);
+ // inGameDownLoadHighestLevelPoint = GetInt("DownReward", 2);
+
+ // dungeonCanUseMoneyIds = new List<int>(GetIntArray("FBEnterTickeyAuto", 1));
+ // dungeonRebornClientTimes = ConfigParse.GetDic<int, int>(GetInputString("DuplicatesRebornTime", 2));
+ // dogzBoxLimit = GetInt("DogzBoxLimit");
+
+ // fairyGrabBossMapLines = ConfigParse.GetDic<int, int>(GetInputString("MapLine", 2));
+ // var grabBossMaps = fairyGrabBossMapLines.Keys.ToList();
+ // foreach (var _key in grabBossMaps)
+ // {
+ // fairyGrabBossMapLines[_key] = fairyGrabBossMapLines[_key] - 1;
+ // }
+
+ // if (DropItemEffectMapID == null)
+ // {
+ // DropItemEffectMapID = new Dictionary<int, List<int>>();
+ // }
+ // DropItemEffectMapID.Clear();
+ // func = FuncConfigConfig.Get("DropItemEffectMapID");
+ // _data = LitJson.JsonMapper.ToObject(func.Numerical1);
+ // int _itemID;
+ // _keys.Clear();
+ // _keys.AddRange(_data.Keys);
+ // for (int j = 0; j < _keys.Count; ++j)
+ // {
+ // if (int.TryParse(_keys[j].ToString(), out _itemID))
+ // {
+ // if (!DropItemEffectMapID.ContainsKey(_itemID))
+ // {
+ // DropItemEffectMapID.Add(_itemID, new List<int>());
+ // }
+ // var _jsonMapIDs = _data[_keys[j]];
+ // foreach (var _jsonMapID in _jsonMapIDs)
+ // {
+ // var _mapID = ((LitJson.IJsonWrapper)_jsonMapID).GetInt();
+ // if (!DropItemEffectMapID[_itemID].Contains(_mapID))
+ // {
+ // DropItemEffectMapID[_itemID].Add(_mapID);
+ // }
+ // }
+ // }
+ // }
+
+ // int[] mapIDs = GetIntArray("RebornAutoFightDungeon");
+ // RebornAutoFightMapID = new List<int>(mapIDs);
+
+ // teamWorldCall = GetInputString("TeamWorldCall");
+ // teamWorldCallInviteCount = GetInt("TeamWorldCall", 2);
+
+ // var ancientKingAwradConfig = FuncConfigConfig.Get("ElderBattlefieldTopAward");
+ // if (ancientKingAwradConfig != null)
+ // {
+ // var itemArray = LitJson.JsonMapper.ToObject<int[][]>(ancientKingAwradConfig.Numerical1);
+ // for (int k = 0; k < itemArray.Length; k++)
+ // {
+ // // ancientKingAwards.Add(new Item()
+ // // {
+ // // id = itemArray[k][0],
+ // // count = itemArray[k][1],
+ // // });
+ // }
+ // }
+
+ // func = FuncConfigConfig.Get("QualityEffectConfig");
+ // lowQualityEffectCount = int.Parse(func.Numerical1);
+ // medQualityEffectCount = int.Parse(func.Numerical2);
+ // highQualityEffectCount = int.Parse(func.Numerical3);
+
+ // func = FuncConfigConfig.Get("QualityPetCountConfig");
+ // lowQualityPetCount = int.Parse(func.Numerical1);
+ // medQualityPetCount = int.Parse(func.Numerical2);
+ // highQualityPetCount = int.Parse(func.Numerical3);
+
+ // func = FuncConfigConfig.Get("QualityGuardCountConfig");
+ // lowQualityGuardCount = int.Parse(func.Numerical1);
+ // medQualityGuardCount = int.Parse(func.Numerical2);
+ // highQualityGuardCount = int.Parse(func.Numerical3);
+
+ // func = FuncConfigConfig.Get("QualityPetEffectCount");
+ // lowQualityPetEffectCount = int.Parse(func.Numerical1);
+ // medQualityPetEffectCount = int.Parse(func.Numerical2);
+ // highQualityPetEffectCount = int.Parse(func.Numerical3);
+
+ // func = FuncConfigConfig.Get("QualityHorseEffectCount");
+ // lowQualityHorseEffectCount = int.Parse(func.Numerical1);
+ // medQualityHorseEffectCount = int.Parse(func.Numerical2);
+ // highQualityHorseEffectCount = int.Parse(func.Numerical3);
+
+ // fairyLandBuffCondition = GetInt("XjmjAddHarm", 1);
+ // fairyLandBuffId = GetInt("XjmjAddHarm", 2);
+ // achievementEarlierStageLevel = GetInt("AchieveLV");
+
+ // func = FuncConfigConfig.Get("PreloadSkillEffect");
+ // PreloadSkillEffect = new int[2][];
+ // PreloadSkillEffect[0] = GetIntArray("PreloadSkillEffect");
+ // PreloadSkillEffect[1] = GetIntArray("PreloadSkillEffect", 2);
+ // demonJarAutoTime = GetInt("DemonJarAutoTime");
+
+ // // if (SgzzRobotEquipDict == null)
+ // // {
+ // // SgzzRobotEquipDict = new Dictionary<int, Dictionary<int, GA_NpcFightSgzcZZ.EquipRandomInfo>>();
+
+ // // for (int job = 1; job <= 3; ++job)
+ // // {
+ // // string _jsonString = GetInputString("SGZCHelpBattleEquip", job);
+
+ // // if (string.IsNullOrEmpty(_jsonString))
+ // // {
+ // // continue;
+ // // }
+
+ // // var _jsonData = LitJson.JsonMapper.ToObject(_jsonString);
+ // // var _jobDict = new Dictionary<int, GA_NpcFightSgzcZZ.EquipRandomInfo>();
+
+ // // for (i = 0; i < _jsonData.Count; ++i)
+ // // {
+ // // var _lvJson = _jsonData[i];
+ // // var _lv = (int)_lvJson["LV"];
+ // // if (!_jobDict.ContainsKey(_lv))
+ // // {
+ // // var _equips = _lvJson["Equips"];
+
+ // // var _randEquip = new GA_NpcFightSgzcZZ.EquipRandomInfo();
+
+ // // _randEquip.randClothesItemIDs = new int[_equips[0].Count];
+ // // for (int j = 0; j < _equips[0].Count; ++j)
+ // // {
+ // // _randEquip.randClothesItemIDs[j] = (int)_equips[0][j];
+ // // }
+
+ // // _randEquip.randWeaponItemIDs = new int[_equips[1].Count];
+ // // for (int j = 0; j < _equips[1].Count; ++j)
+ // // {
+ // // _randEquip.randWeaponItemIDs[j] = (int)_equips[1][j];
+ // // }
+
+ // // _randEquip.randSecondaryItemIDs = new int[_equips[2].Count];
+ // // for (int j = 0; j < _equips[2].Count; ++j)
+ // // {
+ // // _randEquip.randSecondaryItemIDs[j] = (int)_equips[2][j];
+ // // }
+
+ // // _randEquip.randWingItemIDs = new int[_equips[3].Count];
+ // // for (int j = 0; j < _equips[3].Count; ++j)
+ // // {
+ // // _randEquip.randWingItemIDs[j] = (int)_equips[3][j];
+ // // }
+
+ // // _randEquip.godWeaponIDs = new int[_equips[4].Count];
+ // // for (int j = 0; j < _equips[4].Count; ++j)
+ // // {
+ // // _randEquip.godWeaponIDs[j] = (int)_equips[4][j];
+ // // }
+
+ // // _jobDict.Add(_lv, _randEquip);
+ // // }
+ // // }
+
+ // // SgzzRobotEquipDict.Add(job, _jobDict);
+
+ // // }
+ // // }
+
+
+ // if (SgzcRealm == null)
+ // {
+ // SgzcRealm = new Dictionary<int, int>();
+
+ // var _lvArr = GetInputString("SGZCRobotRealm", 1).Split('|');
+ // var _rLvArr = GetInputString("SGZCRobotRealm", 2).Split('|');
+
+ // for (int j = 0; j < _lvArr.Length; ++j)
+ // {
+ // SgzcRealm[int.Parse(_lvArr[j])] = int.Parse(_rLvArr[j]);
+ // }
+ // }
+
+ // crossServerBattleFieldOpenDay = GetInt("CrossRealmCfg", 2);
+ // UISpringDecorate = GetInt("UISpringDecorate");
+
+ // mixServerCustomDays = GetInt("MixServer");
+ // openServerCustomDays = GetInt("OperationAction");
+ // ClientPvpAttributePer = GetInt("ClientPvPAttributePer") * Constants.F_DELTA;
+
+ // mysteryShopRefreshItem = GetInt("MysteryShopRefresh");
+ // mysteryShopRefreshItemCount = new Dictionary<int, int>();
+ // var mysteryShopJson = JsonMapper.ToObject(GetInputString("MysteryShopRefresh", 2));
+ // foreach (var key in mysteryShopJson.Keys)
+ // {
+ // var time = int.Parse(key);
+ // mysteryShopRefreshItemCount[time] = (int)mysteryShopJson[key];
+ // }
+
+ // mysteryShopRefreshItemValue = GetInt("MysteryShopRefresh", 3);
+ // mysteryShopRefreshInterval = GetInt("MysteryShopRefresh", 4);
+
+ // var equipStarConfig = FuncConfigConfig.Get("EquipPartStar");
+ // var equipStarJson = LitJson.JsonMapper.ToObject(equipStarConfig.Numerical1);
+ // equipStarLimit = new Dictionary<int, Dictionary<int, int>>();
+ // foreach (var itemColorKey in equipStarJson.Keys)
+ // {
+ // var itemColor = int.Parse(itemColorKey);
+ // Dictionary<int, int> dict = new Dictionary<int, int>();
+ // foreach (var itemLevelKey in equipStarJson[itemColorKey].Keys)
+ // {
+ // var itemLevel = int.Parse(itemLevelKey);
+ // var starLimit = int.Parse(equipStarJson[itemColorKey][itemLevelKey].ToString());
+ // dict.Add(itemLevel, starLimit);
+ // }
+ // equipStarLimit.Add(itemColor, dict);
+ // }
+
+ // equipTrainMustItemId = GetInt("EquipWashMustID");
+ // acutionItemHour = GetInt("AuctionItem");
+ // mainWinTopCloseTime = GetInt("AutomaticSwitch");
+
+ // equipDecomposeScreen.AddRange(GetIntArray("EquipDecomposeScreen", 2));
+
+ // func = FuncConfigConfig.Get("AtkTypeIncreasePushDis");
+ // var _ks = func.Numerical1.Split('|');
+ // var _vs = func.Numerical2.Split('|');
+ // for (i = 0; i < _ks.Length; ++i)
+ // {
+ // AtkTypeIncreasePushDis[int.Parse(_ks[i])] = int.Parse(_vs[i]) * Constants.F_DELTA;
+ // }
+
+ // func = FuncConfigConfig.Get("NpcDieSetCamera");
+ // if (func != null)
+ // {
+ // var _jsonData = LitJson.JsonMapper.ToObject(func.Numerical1);
+ // for (i = 0; i < _jsonData.Count; ++i)
+ // {
+ // var _child = _jsonData[i];
+ // // var _lookAtData = new CameraController.LookAtData();
+ // // _lookAtData.position = new Vector3(MathUtility.GetFloatFromLitJson(_child[1][0]),
+ // // MathUtility.GetFloatFromLitJson(_child[1][1]),
+ // // MathUtility.GetFloatFromLitJson(_child[1][2]));
+ // // _lookAtData.rotX = (int)_child[2];
+ // // _lookAtData.rotY = (int)_child[3];
+ // // _lookAtData.lastTime = MathUtility.GetFloatFromLitJson(_child[4]);
+
+ // // NpcDieSetCamera[(int)_child[0]] = _lookAtData;
+ // }
+ // }
+ // WorkForEnemySkills = GetIntArray("ArenaSetSkills", 1);
+ // WorkForMeSkills = GetIntArray("ArenaSetSkills", 2);
+ // WorkNotSkills = GetIntArray("ArenaSetSkills", 3);
+ // defenseGetWays = GetIntArray("DefenseGetWays", 1);
+ // skillYinjis = ConfigParse.GetDic<int, int>(GetInputString("SkillYinji", 1));
+ // onlyUsedAtBackpackItems = new List<int>(GetIntArray("ItemPush", 2));
+
+ // var signInSkillArray = GetIntArray("SignInPromoteSkill", 1);
+ // if (signInSkillArray != null)
+ // {
+ // signInPromoteSkills.AddRange(signInSkillArray);
+ // }
+
+ // MasteryLoadingLevelLimit1 = GetInt("MasteryLoadingLevelLimit");
+ // MasteryLoadingLevelLimit2 = GetInt("MasteryLoadingLevelLimit", 2);
+
+ // chestDisplayItems = new List<int>(GetIntArray("ChestShowItems"));
+
+ // func = FuncConfigConfig.Get("Zhanling");
+ // if (func != null)
+ // {
+ // OldZhanLingCtgIdDict = new Dictionary<int, int>();
+ // ZhanLingCtgIdDict = new Dictionary<int, List<int>>();
+ // var tempDict = JsonMapper.ToObject(func.Numerical1);
+ // var keyList = tempDict.Keys.ToList();
+ // for (int j = 0; j < keyList.Count; j++)
+ // {
+ // OldZhanLingCtgIdDict[int.Parse(keyList[j])] = JsonMapper.ToObject<List<int>>(tempDict[keyList[j]].ToJson())[0];
+ // ZhanLingCtgIdDict[int.Parse(keyList[j])] = JsonMapper.ToObject<List<int>>(tempDict[keyList[j]].ToJson());
+ // }
+
+ // ZhanLingCtgIdHDict = new Dictionary<int, List<int>>();
+ // tempDict = JsonMapper.ToObject(func.Numerical3);
+ // keyList = tempDict.Keys.ToList();
+ // for (int k = 0; k < keyList.Count; k++)
+ // {
+ // ZhanLingCtgIdHDict[int.Parse(keyList[k])] = JsonMapper.ToObject<List<int>>(tempDict[keyList[k]].ToJson());
+ // }
+ // }
+
+ // func = FuncConfigConfig.Get("FBQuickPass");
+ // fightPowerMore = float.Parse(func.Numerical1) + 0.01f; //鐤戜技鐜╁鏃犳硶闆疯瘺鏄疌/S璁$畻涓嶅绛夐棶棰橈紝鎵�浠ュ姞0.01f
+ // flashOpenArr = JsonMapper.ToObject<int[]>(func.Numerical2);
+ // flashCntMoreArr = JsonMapper.ToObject<int[]>(func.Numerical3);
+ // flashKillMaxCount = int.Parse(func.Numerical4);
}
catch (Exception ex)
diff --git a/Main/System/HappyXB.meta b/Main/System/HappyXB.meta
new file mode 100644
index 0000000..7217b16
--- /dev/null
+++ b/Main/System/HappyXB.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6010e3ebc98aac2408a40f41efe92c38
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/HappyXB/HappyXBModel.cs b/Main/System/HappyXB/HappyXBModel.cs
new file mode 100644
index 0000000..5237198
--- /dev/null
+++ b/Main/System/HappyXB/HappyXBModel.cs
@@ -0,0 +1,1074 @@
+锘縰sing LitJson;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+
+
+public class HappyXBModel : GameSystemManager<HappyXBModel>
+{
+ private Dictionary<string, XBGetItemConfig> xbGetItemDict = new Dictionary<string, XBGetItemConfig>();
+ private Dictionary<int, List<XBGetItemConfig>> xbTypeItemDict = new Dictionary<int, List<XBGetItemConfig>>();
+ private Dictionary<string, Dictionary<int, XBGetItem>> jobXBItemDict = new Dictionary<string, Dictionary<int, XBGetItem>>();
+ private Dictionary<int, XBFuncSet> xbFuncSetDict = new Dictionary<int, XBFuncSet>();
+ public Dictionary<int, int> XBCostTypeDict = new Dictionary<int, int>();
+ public HappXBTitle title = HappXBTitle.Best;
+
+
+ public string USETOOLXBKey = string.Empty;
+ public static string HAPPYXBITEMKEY;
+ public List<ArrayList> XBNotifyParms = new List<ArrayList>();
+ public bool isXBCoolTime { get; set; }
+
+ public bool isJumpBestXB { get; set; }
+ public bool isJumpRuneXB { get; set; }
+ public bool isJumpGubaoXB { get; set; }
+ public bool isJumpGatherSoulXB { get; set; } //鑱氶瓊瀵诲疂锛氭槸鍚﹁烦杩囧姩鐢�
+
+ public override void Init()
+ {
+ isJumpBestXB = false;
+ isJumpRuneXB = false;
+ isJumpGubaoXB = false;
+ isJumpGatherSoulXB = false;
+ xbGetItemDict.Clear();
+ xbTypeItemDict.Clear();
+ xbFuncSetDict.Clear();
+ List<XBGetItemConfig> list = XBGetItemConfig.GetValues();
+ for (int i = 0; i < list.Count; i++)
+ {
+ string key = StringUtility.Contact(list[i].TreasureType, list[i].MinLV);
+ if (!xbGetItemDict.ContainsKey(key))
+ {
+ xbGetItemDict.Add(key, list[i]);
+ }
+
+ if (!xbTypeItemDict.ContainsKey(list[i].TreasureType))
+ {
+ List<XBGetItemConfig> typeItemlist = new List<XBGetItemConfig>();
+ typeItemlist.Add(list[i]);
+ xbTypeItemDict.Add(list[i].TreasureType, typeItemlist);
+ }
+ else
+ {
+ xbTypeItemDict[list[i].TreasureType].Add(list[i]);
+ }
+ }
+
+ SetXBFuncDict(1);
+ SetXBFuncDict(2);
+ // var treasureIDArr = JsonMapper.ToObject<int[]>(FuncConfigConfig.Get("TreasureLuckyDraw").Numerical1);
+ // for (int i = 0; i < treasureIDArr.Length; i++)
+ // {
+ // int type = XBGetItemConfig.Get(treasureIDArr[i]).TreasureType;
+ // SetXBFuncDict(type);
+ // }
+
+ SetXBFuncDict(105);
+ SetXBFuncDict(106);
+ SetXBFuncDict(107);
+ SetXBFuncDict(108);
+ SysNotifyMgr.Instance.RegisterCondition("HappyXB", SatisfyNotifyCondition);
+
+ XBCostTypeDict.Clear();
+
+ XBCostTypeDict[(int)HappXBTitle.Best] = TreasureSetConfig.Get(1).CostMoneyType;
+ XBCostTypeDict[(int)HappXBTitle.Rune] = TreasureSetConfig.Get(2).CostMoneyType;
+ // for (int i = 0; i < treasureIDArr.Length; i++)
+ // {
+ // int type = XBGetItemConfig.Get(treasureIDArr[i]).TreasureType;
+ // XBCostTypeDict[(int)HappXBTitle.Gubao1 + i] = TreasureSetConfig.Get(type).CostMoneyType;
+ // }
+ XBCostTypeDict[(int)HappXBTitle.YunShi1] = TreasureSetConfig.Get(105).CostMoneyType;
+ XBCostTypeDict[(int)HappXBTitle.YunShi2] = TreasureSetConfig.Get(106).CostMoneyType;
+ XBCostTypeDict[(int)HappXBTitle.YunShi3] = TreasureSetConfig.Get(107).CostMoneyType;
+ XBCostTypeDict[(int)HappXBTitle.YunShi4] = TreasureSetConfig.Get(108).CostMoneyType;
+ }
+
+
+
+ public void OnBeforePlayerDataInitialize()
+ {
+ PlayerDatas.Instance.playerDataRefreshEvent -= RefreshStoreScore;
+ FuncOpen.Instance.OnFuncStateChangeEvent -= UpdateFuncState;
+ PackManager.Instance.refreshItemCountEvent -= RefreshXBTool;
+ isXBCoolTime = false;
+ XBNotifyParms.Clear();
+ xbTypeInfoDict.Clear();
+ }
+ public void OnAfterPlayerDataInitialize()
+ {
+ SetXBGetItemModel();
+ }
+ public void OnPlayerLoginOk()
+ {
+ int playerId = (int)PlayerDatas.Instance.baseData.PlayerID;
+ HAPPYXBITEMKEY = StringUtility.Contact(playerId, "HappyXBItemTime");
+ USETOOLXBKey = StringUtility.Contact(playerId, "UseToolXB");
+ XBWarehouseRedPoint();
+ PlayerDatas.Instance.playerDataRefreshEvent += RefreshStoreScore;
+ PackManager.Instance.refreshItemCountEvent += RefreshXBTool;
+ FuncOpen.Instance.OnFuncStateChangeEvent += UpdateFuncState;
+ }
+
+
+ /// <summary>
+ /// 妫�娴嬭嚜韬帺瀹舵槸鍚﹂渶瑕佷俊鎭彁绀�
+ /// </summary>
+ /// <param name="key"></param>
+ /// <param name="paramArray"></param>
+ /// <returns></returns>
+ private bool SatisfyNotifyCondition(string key, ArrayList paramArray)
+ {
+ switch (title)
+ {
+ case HappXBTitle.Best:
+ if (isJumpBestXB)
+ {
+ return true;
+ }
+ break;
+ case HappXBTitle.Rune:
+ if (isJumpRuneXB)
+ {
+ return true;
+ }
+ break;
+ case HappXBTitle.Gubao1:
+ case HappXBTitle.Gubao2:
+ case HappXBTitle.Gubao3:
+ case HappXBTitle.Gubao4:
+ if (isJumpGubaoXB)
+ {
+ return true;
+ }
+ break;
+ case HappXBTitle.GatherSoul:
+ if (isJumpGatherSoulXB)
+ {
+ return true;
+ }
+ break;
+ case HappXBTitle.YunShi1:
+ case HappXBTitle.YunShi2:
+ case HappXBTitle.YunShi3:
+ case HappXBTitle.YunShi4:
+ // if (ModelCenter.Instance.GetModelEx<YunShiXBActModel>().isSkipXB)
+ // {
+ // return true;
+ // }
+ break;
+ }
+
+ XBNotifyParms.Add(new ArrayList(paramArray));
+ if (paramArray != null && paramArray.Count > 0 &&
+ paramArray[0].Equals(UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName)))
+ {
+ return false;
+ }
+ return true;
+ }
+
+ public void GetNotifyResult(int itemId, int itemCount)
+ {
+ int notifyIndex = 0;
+ if (CheckNotifyItemByIdAndCnt(itemId, itemCount, out notifyIndex))
+ {
+ SysNotifyMgr.Instance.ShowTip("HappyXB", XBNotifyParms[notifyIndex].ToArray());
+ }
+ }
+
+ private bool CheckNotifyItemByIdAndCnt(int itemId, int itemCnt, out int notifyIndex)
+ {
+ notifyIndex = 0;
+ for (int i = 0; i < XBNotifyParms.Count; i++)
+ {
+ if (XBNotifyParms[i] != null && XBNotifyParms[i].Count > 3)
+ {
+ int notifyItemId = 0;
+ int.TryParse(XBNotifyParms[i][1].ToString(), out notifyItemId);
+ int notifyItemCnt = 0;
+ int.TryParse(XBNotifyParms[i][3].ToString(), out notifyItemCnt);
+ if (notifyItemId == itemId && notifyItemCnt == itemCnt)
+ {
+ notifyIndex = i;
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ private void SetXBFuncDict(int type)
+ {
+ var treasureSetCfg = TreasureSetConfig.Get(type);
+ if (!xbFuncSetDict.ContainsKey(type))
+ {
+ XBFuncSet funcSet = new XBFuncSet();
+ funcSet.xbType = type;
+ funcSet.xbNums = treasureSetCfg.TreasureCountList;
+
+ funcSet.xbPrices = treasureSetCfg.CostMoneyList;
+
+ funcSet.costToolIds = new int[] { treasureSetCfg.CostItemID, treasureSetCfg.CostItemID };
+ funcSet.costToolNums = treasureSetCfg.CostItemCountList;
+ funcSet.dailyFreeCount = treasureSetCfg.DailyFreeCount;
+ funcSet.xbScores = new int[] { treasureSetCfg.AwardMoneyValue, treasureSetCfg.AwardMoneyValue * treasureSetCfg.TreasureCountList[1] };
+
+ xbFuncSetDict.Add(funcSet.xbType, funcSet);
+ }
+ }
+
+ public XBFuncSet GetXBFuncSet(int type)
+ {
+ XBFuncSet funcSet = null;
+ xbFuncSetDict.TryGetValue(type, out funcSet);
+ return funcSet;
+ }
+
+ //榛樿浼樺厛浣跨敤閬撳叿瀵诲疂
+ public bool IsUseToolXB()
+ {
+ return true;
+ //if (!PlayerPrefs.HasKey(USETOOLXBKey))
+ //{
+ // LocalSave.SetBool(USETOOLXBKey, true);
+ // return true;
+ //}
+ //else
+ //{
+ // return LocalSave.GetBool(USETOOLXBKey);
+ //}
+ }
+
+ public void SetUseToolXB(bool isToolXB)
+ {
+ //LocalSave.SetBool(USETOOLXBKey, isToolXB);
+ }
+
+ private void SetXBGetItemModel()
+ {
+ jobXBItemDict.Clear();
+ Dictionary<int, XBGetItem> getItemDict = new Dictionary<int, XBGetItem>();
+ Dictionary<int, List<int>> jobItemDict = new Dictionary<int, List<int>>();
+ int playerJob = PlayerDatas.Instance.baseData.Job;
+ foreach (var key in xbGetItemDict.Keys)
+ {
+
+ getItemDict.Clear();
+ jobItemDict.Clear();
+ Dictionary<int, XBGetItem> jobGetItemDict = new Dictionary<int, XBGetItem>();
+ XBGetItemConfig getItemConfig = xbGetItemDict[key];
+ jobXBItemDict.Add(key, jobGetItemDict);
+ JsonData getItemJson = JsonMapper.ToObject(getItemConfig.GridItemInfo);
+ foreach (var grid in getItemJson.Keys)
+ {
+ int id = int.Parse(getItemJson[grid][0].ToString());
+ int count = int.Parse(getItemJson[grid][1].ToString());
+ XBGetItem getItem = new XBGetItem();
+ getItem.SetModel(int.Parse(grid), id, count);
+ getItemDict.Add(getItem.gridIndex, getItem);
+ }
+ JsonData jobReplaceJson = JsonMapper.ToObject(getItemConfig.JobItemList);
+ if (jobReplaceJson.IsArray)
+ {
+ for (int i = 0; i < jobReplaceJson.Count; i++)
+ {
+ List<int> itemIdlist = new List<int>();
+ jobItemDict.Add(i, itemIdlist);
+ if (jobReplaceJson[i].IsArray)
+ {
+ for (int j = 0; j < jobReplaceJson[i].Count; j++)
+ {
+ int id = int.Parse(jobReplaceJson[i][j].ToString());
+ itemIdlist.Add(id);
+ }
+ }
+ }
+ }
+
+ foreach (var model in getItemDict.Values)
+ {
+ ItemConfig itemConfig = ItemConfig.Get(model.itemId);
+ if (itemConfig.JobLimit == 0)
+ {
+ jobGetItemDict.Add(model.gridIndex, model);
+ }
+ else
+ {
+ bool isReplace = false;
+ foreach (var list in jobItemDict.Values)
+ {
+ if (list.Contains(model.itemId))
+ {
+ for (int i = 0; i < list.Count; i++)
+ {
+ int equipJob = int.Parse(list[i].ToString().Substring(0, 1));
+ if (playerJob == equipJob)
+ {
+ isReplace = true;
+ XBGetItem getItem = new XBGetItem();
+ getItem.SetModel(model.gridIndex, list[i], model.count);
+ jobGetItemDict.Add(getItem.gridIndex, getItem);
+ break;
+ }
+ }
+ break;
+ }
+ }
+ if (!isReplace)
+ {
+ jobGetItemDict.Add(model.gridIndex, model);
+ }
+ }
+
+ }
+
+ }
+
+ }
+
+ public Dictionary<int, XBGetItem> GetXBGetItemByID(int type)
+ {
+ int lv = 0;
+ List<XBGetItemConfig> configlist = null;
+ xbTypeItemDict.TryGetValue(type, out configlist);
+ if (configlist != null)
+ {
+ for (int i = configlist.Count - 1; i > -1; i--)
+ {
+ if (PlayerDatas.Instance.baseData.LV >= configlist[i].MinLV)
+ {
+ lv = configlist[i].MinLV;
+ break;
+ }
+ }
+ }
+ string key = StringUtility.Contact(type, lv);
+ Dictionary<int, XBGetItem> dict = null;
+ jobXBItemDict.TryGetValue(key, out dict);
+ return dict;
+ }
+
+ public XBGetItemConfig GetXBItemConfigByType(int type)
+ {
+ int lv = 0;
+ List<XBGetItemConfig> configlist = null;
+ xbTypeItemDict.TryGetValue(type, out configlist);
+ if (configlist != null)
+ {
+ for (int i = configlist.Count - 1; i > -1; i--)
+ {
+ if (PlayerDatas.Instance.baseData.LV >= configlist[i].MinLV)
+ {
+ lv = configlist[i].MinLV;
+ break;
+ }
+ }
+ }
+ XBGetItemConfig xbItemConfig = null;
+ string key = StringUtility.Contact(type, lv);
+ xbGetItemDict.TryGetValue(key, out xbItemConfig);
+ return xbItemConfig;
+ }
+
+ #region 澶勭悊鏈嶅姟绔暟鎹�
+ public event Action RefreshXBTypeInfoAct;
+ public event Action RefreshXBResultAct;
+ public int addXBScore { get; private set; }
+ public int addXBScoreType { get; private set; } //瀵诲疂绉垎璐у竵绫诲瀷
+ public int addXBLuckValue { get; private set; }
+ private Dictionary<int, XBGetItem> xbResultDict = new Dictionary<int, XBGetItem>();
+ public void GetServerXBResult(HA350_tagMCTreasureResult result)
+ {
+ XBNotifyParms.Clear();
+ xbResultDict.Clear();
+ addXBScore = result.AddMoneyValue;
+ addXBScoreType = result.AddMoneyType;
+ addXBLuckValue = result.AddTreasureLuck;
+ JsonData resultData = JsonMapper.ToObject(result.TreasureResult);
+ if (resultData.IsArray)
+ {
+ for (int i = 0; i < resultData.Count; i++)
+ {
+ if (resultData[i].IsArray)
+ {
+ int index = int.Parse(resultData[i][0].ToString());
+ int itemId = int.Parse(resultData[i][1].ToString());
+ int count = int.Parse(resultData[i][2].ToString());
+ XBGetItem getItem = new XBGetItem();
+ getItem.SetModel(index, itemId, count);
+ if (!xbResultDict.ContainsKey(i))
+ {
+ xbResultDict.Add(i, getItem);
+ }
+ else
+ {
+ xbResultDict[i] = getItem;
+ }
+ }
+ }
+ }
+ SetXBResultRecord();
+ isXBCoolTime = false;
+ if (RefreshXBResultAct != null)
+ {
+ RefreshXBResultAct();
+ }
+ }
+
+ List<string> itemGetTimeArray = new List<string>();
+ List<string> getNewItemLoglist = new List<string>();
+ List<XBGetItem> xbItemRecordlist = new List<XBGetItem>();
+ public void SetXBResultRecord()
+ {
+ if (PlayerPrefs.HasKey(HAPPYXBITEMKEY))
+ {
+ itemGetTimeArray = LocalSave.GeStringArray(HappyXBModel.HAPPYXBITEMKEY).ToList();
+ }
+ else
+ {
+ itemGetTimeArray.Clear();
+ }
+ xbItemRecordlist.Clear();
+ getNewItemLoglist.Clear();
+ xbItemRecordlist.AddRange(GetXBResultlist());
+ if (xbItemRecordlist != null)
+ {
+ int remianLogNum = (itemGetTimeArray.Count + xbItemRecordlist.Count) - 30;
+ if (remianLogNum > 0)
+ {
+ int startIndex = itemGetTimeArray.Count - remianLogNum;
+ itemGetTimeArray.RemoveRange(startIndex, remianLogNum);
+ }
+ xbItemRecordlist.Sort(CompareByTime);
+ for (int i = 0; i < xbItemRecordlist.Count; i++)
+ {
+ string log = Language.Get("HappyXBGetItemTime", xbItemRecordlist[i].createTimeStr, UIHelper.ServerStringTrim(PlayerDatas.Instance.baseData.PlayerName),
+ xbItemRecordlist[i].itemId, xbItemRecordlist[i].count);
+ getNewItemLoglist.Add(log);
+ }
+ if (getNewItemLoglist.Count > 0)
+ {
+ itemGetTimeArray.InsertRange(0, getNewItemLoglist);
+ LocalSave.SetStringArray(HappyXBModel.HAPPYXBITEMKEY, itemGetTimeArray.ToArray());
+ }
+
+ }
+ }
+
+ public int CompareByTime(XBGetItem start, XBGetItem end)
+ {
+ DateTime startTime = start.createTime;
+ DateTime endTime = end.createTime;
+ if (startTime.CompareTo(endTime) != 0) return -startTime.CompareTo(endTime);
+
+ return 0;
+ }
+
+ public List<XBGetItem> rangelist = new List<XBGetItem>();
+ List<int> index = new List<int>();
+ public List<XBGetItem> GetXBResultlist()
+ {
+ rangelist.Clear();
+ index.Clear();
+ List<XBGetItem> xbItemlist = xbResultDict.Values.ToList();
+ for (int i = 0; i < xbItemlist.Count; i++)
+ {
+ index.Add(i);
+ }
+ SetRandomList(xbItemlist);
+ return rangelist;
+ }
+
+ public void SetRandomList(List<XBGetItem> xbItemlist)
+ {
+ int currentRandom = UnityEngine.Random.Range(0, index.Count);
+ XBGetItem current = xbItemlist[index[currentRandom]];
+ if (!rangelist.Contains(current))
+ {
+ rangelist.Add(current);
+ index.Remove(index[currentRandom]);
+
+ }
+ if (index.Count > 0)
+ {
+ SetRandomList(xbItemlist);
+ }
+ }
+
+ public Dictionary<int, XBGetItem> GetXbResultDict()
+ {
+ return xbResultDict;
+ }
+
+ public void ClearXBRusltData()
+ {
+ xbResultDict.Clear();
+ }
+
+ private Dictionary<int, XBTypeInfo> xbTypeInfoDict = new Dictionary<int, XBTypeInfo>();
+ public void GetServerXBInfo(HA351_tagMCTreasureInfo info)
+ {
+ for (int i = 0; i < info.InfoCount; i++)
+ {
+ if (!xbTypeInfoDict.ContainsKey(info.TreasuerInfoList[i].TreasureType))
+ {
+ XBTypeInfo typeInfo = new XBTypeInfo();
+ typeInfo.xbType = info.TreasuerInfoList[i].TreasureType;
+ typeInfo.luckValue = info.TreasuerInfoList[i].LuckValue;
+ typeInfo.freeCountToday = info.TreasuerInfoList[i].FreeCountToday;
+ typeInfo.treasureCount = (int)info.TreasuerInfoList[i].TreasureCount;
+ typeInfo.treasureCountToday = (int)info.TreasuerInfoList[i].TreasureCountToday;
+ typeInfo.treasureCntAward = (int)info.TreasuerInfoList[i].TreasureCntAward;
+ if (typeInfo.gridLimitCntDict == null)
+ typeInfo.gridLimitCntDict = new Dictionary<int, int>();
+ for (int j = 0; j < info.TreasuerInfoList[i].GridLimitCntList.Length; j++)
+ {
+ int num = info.TreasuerInfoList[i].GridLimitCntList[j].GridNum;
+ int cnt = info.TreasuerInfoList[i].GridLimitCntList[j].GridCnt;
+ typeInfo.gridLimitCntDict[num] = cnt;
+ }
+ xbTypeInfoDict.Add(info.TreasuerInfoList[i].TreasureType, typeInfo);
+ }
+ else
+ {
+ xbTypeInfoDict[info.TreasuerInfoList[i].TreasureType].luckValue = info.TreasuerInfoList[i].LuckValue;
+ xbTypeInfoDict[info.TreasuerInfoList[i].TreasureType].freeCountToday = info.TreasuerInfoList[i].FreeCountToday;
+ xbTypeInfoDict[info.TreasuerInfoList[i].TreasureType].treasureCount = (int)info.TreasuerInfoList[i].TreasureCount;
+ xbTypeInfoDict[info.TreasuerInfoList[i].TreasureType].treasureCountToday = (int)info.TreasuerInfoList[i].TreasureCountToday;
+ xbTypeInfoDict[info.TreasuerInfoList[i].TreasureType].treasureCntAward = (int)info.TreasuerInfoList[i].TreasureCntAward;
+ if (xbTypeInfoDict[info.TreasuerInfoList[i].TreasureType].gridLimitCntDict == null)
+ xbTypeInfoDict[info.TreasuerInfoList[i].TreasureType].gridLimitCntDict = new Dictionary<int, int>();
+ for (int j = 0; j < info.TreasuerInfoList[i].GridLimitCntList.Length; j++)
+ {
+ int num = info.TreasuerInfoList[i].GridLimitCntList[j].GridNum;
+ int cnt = info.TreasuerInfoList[i].GridLimitCntList[j].GridCnt;
+ xbTypeInfoDict[info.TreasuerInfoList[i].TreasureType].gridLimitCntDict[num] = cnt;
+ }
+ }
+ }
+
+
+ if (RefreshXBTypeInfoAct != null)
+ {
+ RefreshXBTypeInfoAct();
+ }
+
+ BestAndRuneXBRedPoint();
+ }
+
+ public XBTypeInfo GetXBInfoByType(int type)
+ {
+ XBTypeInfo typeInfo = null;
+ xbTypeInfoDict.TryGetValue(type, out typeInfo);
+ return typeInfo;
+ }
+
+ /// <summary>
+ /// type 1 鏋佸搧瀵诲疂 2 绗﹀嵃瀵诲疂 index 0 鍗曟瀵诲疂 1 澶氭瀵诲疂
+ ///costType 0-榛樿浠欑帀锛�1-鍏嶈垂娆℃暟锛�2-瀵诲疂閬撳叿
+ /// </summary>
+ /// <param name="type"></param>
+ /// <param name="index"></param>
+ public event Action<int> StartXBEvent;
+ public void SendXBQuest(int type, int index, int costType)
+ {
+ isXBCoolTime = true;
+ CA568_tagCMRequestTreasure treasure = new CA568_tagCMRequestTreasure();
+ treasure.TreasureType = (byte)type;
+ treasure.TreasureIndex = (byte)index;
+ treasure.CostType = (byte)costType;
+ GameNetSystem.Instance.SendInfo(treasure);
+ if (StartXBEvent != null)
+ {
+ StartXBEvent(index);
+ }
+ }
+
+
+
+ public bool CheckIsEmptyGrid(PackType type, int needGrid = 1)
+ {
+ switch (type)
+ {
+ case PackType.Treasure:
+ SinglePack singlePack = PackManager.Instance.GetSinglePack(type);
+ if (GeneralDefine.maxXBGridCount - singlePack.GetAllItems().Count < needGrid)
+ {
+ SysNotifyMgr.Instance.ShowTip("XBWarehouseFull");
+ return false;
+ }
+ break;
+ case PackType.Item:
+ if (PackManager.Instance.GetEmptyGridCount(type) < needGrid)
+ {
+ SysNotifyMgr.Instance.ShowTip("BagFull");
+ return false;
+ }
+ break;
+ }
+ return true;
+ }
+
+ public void SendOneXBQuest(PackType type, int xbType)
+ {
+ var config = TreasureSetConfig.Get(xbType);
+ if (GetXBInfoByType(xbType).treasureCountToday + config.TreasureCountList[0] > config.DailyMaxCount)
+ {
+ SysNotifyMgr.Instance.ShowTip("XBTodayMax");
+ return;
+ }
+
+ var funcSet = GetXBFuncSet(xbType);
+ if (CheckIsEmptyGrid(type))
+ {
+ if (IsHaveOneXBTool(xbType))
+ {
+ SendXBQuest(xbType, 0, 2);
+ return;
+ }
+
+
+
+ int moneyType = XBCostTypeDict[xbType];
+ int xbOneMoney = funcSet.xbPrices[0];
+
+ if (UIHelper.GetMoneyCnt(moneyType) >= (ulong)xbOneMoney)
+ {
+ StoreModel.Instance.UseMoneyCheck(xbOneMoney, () =>
+ {
+ SendXBQuest(xbType, 0, 0);
+ }, xbType == 1 ? 5 : 6, fullTip: Language.Get("TreasurePavilion08", xbOneMoney, moneyType, funcSet.costToolIds[0], 1));
+ }
+ else
+ {
+ SysNotifyMgr.Instance.ShowTip("LackMoney", moneyType);
+
+ }
+ }
+ }
+
+
+ public void SendXBManyQuest(PackType type, int xbType)
+ {
+ var config = TreasureSetConfig.Get(xbType);
+ if (GetXBInfoByType(xbType).treasureCountToday + config.TreasureCountList[1] > config.DailyMaxCount)
+ {
+ SysNotifyMgr.Instance.ShowTip("XBTodayMax");
+ return;
+ }
+
+ var funcSet = GetXBFuncSet(xbType);
+ if (CheckIsEmptyGrid(type))
+ {
+ int toolCnt = 0;
+ int needToolCnt = 0;
+ int needMoney = 0;
+ if (IsHaveManyXBToolEx(xbType, out toolCnt, out needToolCnt, out needMoney))
+ {
+ if (toolCnt >= needToolCnt)
+ {
+ CheckXBManyLimit(0, xbType, 2);
+
+ return;
+ }
+
+ }
+
+ int moneyType = XBCostTypeDict[xbType];
+ int xbManyMoney = needMoney == 0 ? funcSet.xbPrices[1] : needMoney;
+
+ if (UIHelper.GetMoneyCnt(moneyType) >= (ulong)xbManyMoney)
+ {
+ StoreModel.Instance.UseMoneyCheck(xbManyMoney, () =>
+ {
+ SendXBQuest(xbType, 1, toolCnt > 0 ? 2 : 0);
+ }, xbType == 1 ? 5 : 6, fullTip: Language.Get("TreasurePavilion08", xbManyMoney, moneyType, funcSet.costToolIds[1], needToolCnt - toolCnt));
+ }
+ else
+ {
+ SysNotifyMgr.Instance.ShowTip("LackMoney", moneyType);
+
+ }
+
+ }
+ }
+
+ public void CheckXBManyLimit(int needMoney, int xbtype, int costType)
+ {
+ int moneyType = XBCostTypeDict[xbtype];
+ if (UIHelper.GetMoneyCnt(moneyType) >= (ulong)needMoney)
+ {
+ SendXBQuest(xbtype, 1, costType);
+ }
+ else
+ {
+ //WindowCenter.Instance.Open<RechargeTipWin>();
+ SysNotifyMgr.Instance.ShowTip("LackMoney", moneyType);
+ }
+ }
+ #endregion
+
+ public bool IsHaveFreeXB(int type)
+ {
+ XBTypeInfo typeInfo = GetXBInfoByType(type);
+ if (typeInfo == null)
+ {
+ typeInfo = new XBTypeInfo()
+ {
+ xbType = type,
+ luckValue = 0,
+ freeCountToday = 0,
+ treasureCount = 0,
+ };
+ }
+
+ //鍒ゆ柇鏄惁鏈夊厤璐规鏁帮紝涓斿厤璐规鏁版槸鍚︾敤瀹�
+ var funcSet = GetXBFuncSet(type);
+ return typeInfo.freeCountToday < funcSet.dailyFreeCount;
+ }
+
+
+ public bool CheckIsXBTool(int itemId, int type)
+ {
+ XBFuncSet funcSet = GetXBFuncSet(type);
+ if (funcSet == null) return false;
+
+ if (funcSet.costToolIds.Contains(itemId))
+ {
+ return true;
+ }
+ return false;
+ }
+ public bool IsHaveOneXBTool(int type)
+ {
+ XBFuncSet funcSet = GetXBFuncSet(type);
+ if (funcSet == null) return false;
+
+ int toolCnt = PackManager.Instance.GetItemCountByID(PackType.Item, funcSet.costToolIds[0]);
+ if (toolCnt >= funcSet.costToolNums[0])
+ {
+ return true;
+ }
+
+ return false;
+ }
+
+ //needToolCnt 涓洪厤琛ㄤ腑闇�瑕佺殑閬撳叿鏁伴噺
+ public bool IsHaveManyXBTool(int type, out int toolCnt, out int needToolCnt)
+ {
+ toolCnt = 0;
+ needToolCnt = 0;
+ XBFuncSet funcSet = GetXBFuncSet(type);
+ if (funcSet == null) return false;
+
+ toolCnt = PackManager.Instance.GetItemCountByID(PackType.Item, funcSet.costToolIds[1]);
+ needToolCnt = funcSet.costToolNums[1];
+ if (toolCnt > 0)
+ {
+ return true;
+ }
+ return false;
+ }
+
+ //needToolCnt 涓洪厤琛ㄤ腑闇�瑕佺殑閬撳叿鏁伴噺
+ // 鍙幏寰楃湡姝i渶瑕佽ˉ瓒宠喘涔伴亾鍏风殑閲戦
+ public bool IsHaveManyXBToolEx(int type, out int toolCnt, out int needToolCnt, out int needMoney)
+ {
+ toolCnt = 0;
+ needToolCnt = 0; //閰嶇疆涓渶瑕佺殑閬撳叿鏁伴噺
+ needMoney = 0; //鐪熸闇�瑕佽ˉ瓒宠喘涔伴亾鍏风殑閲戦
+ XBFuncSet funcSet = GetXBFuncSet(type);
+ if (funcSet == null) return false;
+
+ toolCnt = PackManager.Instance.GetItemCountByID(PackType.Item, funcSet.costToolIds[1]);
+ needToolCnt = funcSet.costToolNums[1];
+
+ if (toolCnt > 0)
+ {
+ if (toolCnt < needToolCnt)
+ {
+ needMoney = funcSet.xbPrices[1] / needToolCnt * (needToolCnt - toolCnt);
+ }
+
+ return true;
+ }
+ return false;
+ }
+
+
+
+ public event Action<float> RefreshBestXBTimeAct;
+ public event Action<float> RefreshRuneXBTimeAct;
+ public void RefreshBestXBTime(float time)
+ {
+ if (RefreshBestXBTimeAct != null)
+ {
+ RefreshBestXBTimeAct(time);
+ }
+
+ if (time <= 0)
+ {
+ BestAndRuneXBRedPoint();
+ }
+ }
+ public void RefreshRuneXBTime(float time)
+ {
+ if (RefreshRuneXBTimeAct != null)
+ {
+ RefreshRuneXBTimeAct(time);
+ }
+
+ if (time <= 0)
+ {
+ BestAndRuneXBRedPoint();
+ }
+ }
+
+ public event Action<HappXBTitle, int> RefreshAgainXBAct;
+ /// <summary>
+ /// xbtype 0-鍗曟 1 澶氭
+ /// </summary>
+ /// <param name="xBTitle"></param>
+ /// <param name="xbType"></param>
+ public void SetAgainXBEvent(HappXBTitle xBTitle, int xbType)
+ {
+ if (RefreshAgainXBAct != null)
+ {
+ RefreshAgainXBAct(xBTitle, xbType);
+ }
+ }
+
+ #region 绾㈢偣閫昏緫
+ public const int HappyXB_RedKey = 203;
+ public const int BestXB_RedKey = 20301;
+ public const int RuneXB_RedKey = 20302;
+ public const int XBStore_RedKey = 20303;
+ public const int XBWarehouse_RedKey = 20304;
+ public const int BestXB_OneRedKey = 20301001;
+ public const int BestXB_ManyRedKey = 20301002;
+ public const int BestXB_FreeRedKey = 20301003;
+ public const int RuneXB_OneRedKey = 20302001;
+ public const int RuneXB_ManyRedKey = 20302002;
+ public const int RuneXB_FreeRedKey = 20302003;
+
+ public Redpoint happyXBRed = new Redpoint(HappyXB_RedKey);
+ public Redpoint bestXBRed = new Redpoint(HappyXB_RedKey, BestXB_RedKey);
+ public Redpoint runeXBRed = new Redpoint(HappyXB_RedKey, RuneXB_RedKey);
+ public Redpoint xbStoreRed = new Redpoint(HappyXB_RedKey, XBStore_RedKey);
+ public Redpoint xbWarehouseRed = new Redpoint(HappyXB_RedKey, XBWarehouse_RedKey);
+ public Redpoint bestXBOneRed = new Redpoint(BestXB_RedKey, BestXB_OneRedKey);
+ public Redpoint bestXBManyRed = new Redpoint(BestXB_RedKey, BestXB_ManyRedKey);
+ public Redpoint bestXBFreeRed = new Redpoint(BestXB_RedKey, BestXB_FreeRedKey);
+ public Redpoint runeXBOneRed = new Redpoint(RuneXB_RedKey, RuneXB_OneRedKey);
+ public Redpoint runeXBManyRed = new Redpoint(RuneXB_RedKey, RuneXB_ManyRedKey);
+ public Redpoint runeXBFreeRed = new Redpoint(RuneXB_RedKey, RuneXB_FreeRedKey);
+
+ private void UpdateFuncState(int funcId)
+ {
+ if (funcId == (int)FuncOpenEnum.HappyFindTreasure
+ || funcId == 184)
+ {
+ XBWarehouseRedPoint();
+ BestAndRuneXBRedPoint();
+ XBStoreRedPoint();
+ }
+ }
+
+ public void RefreshXBWarehouse()
+ {
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.HappyFindTreasure)) return;
+
+ xbWarehouseRed.state = RedPointState.Simple;
+ }
+
+ public void XBWarehouseRedPoint()
+ {
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.HappyFindTreasure)) return;
+
+ SinglePack singlePack = PackManager.Instance.GetSinglePack(PackType.Treasure);
+ if (singlePack == null) return;
+
+ if (singlePack.GetAllItems().Count > 0)
+ {
+ xbWarehouseRed.state = RedPointState.Simple;
+ }
+ else
+ {
+ xbWarehouseRed.state = RedPointState.None;
+ }
+ }
+
+ private void RefreshXBTool(PackType type, int index, int id)
+ {
+ if (type != PackType.Item) return;
+ if (!CheckIsXBTool(id, 1) && !CheckIsXBTool(id, 2)) return;
+ BestAndRuneXBRedPoint();
+ }
+
+ public void BestAndRuneXBRedPoint()
+ {
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.HappyFindTreasure)) return;
+
+ int xbtoolCnt = 0;
+ int needtoolCnt = 0;
+ if (IsHaveFreeXB(1))
+ {
+ bestXBFreeRed.state = RedPointState.Simple;
+ }
+ else
+ {
+ bestXBFreeRed.state = RedPointState.None;
+ }
+
+ if (IsHaveManyXBTool(1, out xbtoolCnt, out needtoolCnt))
+ {
+ if (xbtoolCnt >= needtoolCnt)
+ {
+ bestXBManyRed.state = RedPointState.Simple;
+ }
+ else
+ {
+ bestXBManyRed.state = RedPointState.None;
+ }
+ bestXBOneRed.state = RedPointState.Simple;
+ }
+ else
+ {
+ bestXBOneRed.state = RedPointState.None;
+ bestXBManyRed.state = RedPointState.None;
+ }
+
+ if (FuncOpen.Instance.IsFuncOpen(184) && IsHaveFreeXB(2))
+ {
+ runeXBFreeRed.state = RedPointState.Simple;
+ }
+ else
+ {
+ runeXBFreeRed.state = RedPointState.None;
+ }
+
+ if (FuncOpen.Instance.IsFuncOpen(184) &&
+ IsHaveManyXBTool(2, out xbtoolCnt, out needtoolCnt))
+ {
+ if (xbtoolCnt >= needtoolCnt)
+ {
+ runeXBManyRed.state = RedPointState.Simple;
+ }
+ else
+ {
+ runeXBManyRed.state = RedPointState.None;
+ }
+ runeXBOneRed.state = RedPointState.Simple;
+ }
+ else
+ {
+ runeXBOneRed.state = RedPointState.None;
+ runeXBManyRed.state = RedPointState.None;
+ }
+ }
+
+
+ private void RefreshStoreScore(PlayerDataType type)
+ {
+ if (type != PlayerDataType.CDBPlayerRefresh_TreasureScore) return;
+
+ XBStoreRedPoint();
+ }
+
+ private List<StoreModel.StoreData> storelist = null;
+ public void XBStoreRedPoint()
+ {
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.HappyFindTreasure)) return;
+
+ ulong moneyNum = UIHelper.GetMoneyCnt(25);
+ for (int i = 11; i < 14; i++)
+ {
+ storelist = StoreModel.Instance.TryGetStoreDatas((StoreFunc)i);
+ if (storelist.Count > 0)
+ {
+ List<StoreModel.StoreData> orderlist = new List<StoreModel.StoreData>();
+ orderlist.AddRange(storelist);
+ orderlist.Sort(CompareByMoney);
+ if (moneyNum >= (ulong)orderlist[0].storeConfig.MoneyNumber)
+ {
+ xbStoreRed.state = RedPointState.Simple;
+ return;
+ }
+ }
+ }
+ xbStoreRed.state = RedPointState.None;
+ }
+
+ public int CompareByMoney(StoreModel.StoreData start, StoreModel.StoreData end)
+ {
+ int money1 = start.storeConfig.MoneyNumber;
+ int money2 = end.storeConfig.MoneyNumber;
+ if (money1.CompareTo(money2) != 0) return money1.CompareTo(money2);
+ int index1 = storelist.IndexOf(start);
+ int index2 = storelist.IndexOf(end);
+ if (index1.CompareTo(index2) != 0) return index1.CompareTo(index2);
+ return 0;
+ }
+ #endregion
+}
+
+public class XBTypeInfo
+{
+ public int xbType; // 1 鏋佸搧瀵诲疂 2 绗﹀嵃瀵诲疂
+ public int luckValue;
+ public int freeCountToday; //浠婃棩宸插厤璐瑰瀹濇鏁�
+ public int treasureCount; //宸插瀹濇�绘鏁�
+ public int treasureCountToday; //浠婃棩宸插瀹濇�绘鏁�
+ public int treasureCntAward; //绱瀵诲疂娆℃暟瀵瑰簲濂栧姳棰嗗鐘舵�侊紝鎸夊鍔辫褰曠储寮曚簩杩涘埗璁板綍鏄惁宸查鍙�
+ public Dictionary<int, int> gridLimitCntDict; //<鏈夐檺鍒舵娊鍙栨鏁扮殑鏍煎瓙缂栧彿,宸叉娊鍒版鏁�> 鏈夐檺鍒舵娊鍙栨鏁扮殑鏍煎瓙娆℃暟淇℃伅
+}
+
+public class XBFuncSet
+{
+ public int xbType;// 1 鏋佸搧瀵诲疂 2 绗﹀嵃瀵诲疂
+ public int[] xbNums;
+ public int[] xbPrices;
+ public int[] costToolIds;
+ public int[] costToolNums;
+ public int[] xbFreeCDs;
+ public int[] xbScores;
+ public int dailyFreeCount;
+}
+
+public class XBGetItem
+{
+ public int gridIndex;
+ public int itemId;
+ public int count;
+ public DateTime createTime;
+ public string createTimeStr;
+
+ public void SetModel(int index, int id, int count)
+ {
+ this.gridIndex = index;
+ this.itemId = id;
+ this.count = count;
+ createTime = TimeUtility.ServerNow;
+ createTimeStr = TimeUtility.ServerNow.ToString("yyyy-MM-dd HH:mm:ss");
+ }
+}
+
+public enum HappXBTitle
+{
+ Best = 1,
+ Rune = 2,
+ //Store = 3,
+ //Warehouse = 4,
+ GatherSoul = 4, //鑱氶瓊瀵诲疂
+ Gubao1 = 5,
+ Gubao2 = 6,
+ Gubao3 = 7,
+ Gubao4 = 8,
+ YunShi1 = 105,
+ YunShi2 = 106,
+ YunShi3 = 107,
+ YunShi4 = 108,
+}
diff --git a/Main/System/HappyXB/HappyXBModel.cs.meta b/Main/System/HappyXB/HappyXBModel.cs.meta
new file mode 100644
index 0000000..68c447a
--- /dev/null
+++ b/Main/System/HappyXB/HappyXBModel.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 0e1f243eb9d07704c8bd44faec9f12c0
+timeCreated: 1524575267
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/ItemTip/ItemTipUtility.cs b/Main/System/ItemTip/ItemTipUtility.cs
index ce8e618..fd63253 100644
--- a/Main/System/ItemTip/ItemTipUtility.cs
+++ b/Main/System/ItemTip/ItemTipUtility.cs
@@ -442,54 +442,51 @@
// }
- // public static void ShowGood(int goodId, int itemId)
- // {
- // secondaryData = null;
+ public static void ShowGood(int goodId, int itemId)
+ {
+ secondaryData = null;
- // var isEquip = ItemLogicUtility.Instance.IsRealmEquip(itemId);
- // if (isEquip)
- // {
- // mainTipData = CreateGoodEquipData(itemId, goodId);
- // }
- // else
- // {
- // mainTipData = CreateGoodItemData(itemId, goodId);
- // }
+ var isEquip = ItemLogicUtility.Instance.IsRealmEquip(itemId);
+ if (isEquip)
+ {
+ mainTipData = CreateGoodEquipData(itemId, goodId);
+ }
+ else
+ {
+ mainTipData = CreateGoodItemData(itemId, goodId);
+ }
- // BuyItemController.Instance.SetGood(goodId);
- // var itemConfig = ItemConfig.Get(itemId);
- // if (isEquip)
- // {
- // WindowCenter.Instance.Open<EquipTipWin>();
- // }
- // else
- // {
- // var tipType = GetTipType(itemId);
+ BuyItemController.Instance.SetGood(goodId);
+ var itemConfig = ItemConfig.Get(itemId);
+ if (isEquip)
+ {
+ // WindowCenter.Instance.Open<EquipTipWin>();
+ }
+ else
+ {
+ var tipType = GetTipType(itemId);
- // switch (tipType)
- // {
- // case TipType.PetMount:
- // WindowCenter.Instance.Open<PetMountTipWin>();
- // break;
- // case TipType.SpiritWeapon:
- // WindowCenter.Instance.Open<SpiritWeaponTipWin>();
- // break;
- // case TipType.BoxItem:
- // if (WindowCenter.Instance.IsOpen<ItemBoxTipWin>())
- // {
- // WindowCenter.Instance.Open<ItemTipWin>();
- // }
- // else
- // {
- // WindowCenter.Instance.Open<ItemBoxTipWin>();
- // }
- // break;
- // default:
- // WindowCenter.Instance.Open<ItemTipWin>();
- // break;
- // }
- // }
- // }
+ // switch (tipType)
+ // {
+ // case TipType.PetMount:
+ // WindowCenter.Instance.Open<PetMountTipWin>();
+ // break;
+ // case TipType.BoxItem:
+ // if (WindowCenter.Instance.IsOpen<ItemBoxTipWin>())
+ // {
+ // WindowCenter.Instance.Open<ItemTipWin>();
+ // }
+ // else
+ // {
+ // WindowCenter.Instance.Open<ItemBoxTipWin>();
+ // }
+ // break;
+ // default:
+ // WindowCenter.Instance.Open<ItemTipWin>();
+ // break;
+ // }
+ }
+ }
// public static void ShowCustomEquip(CustomEquipInfo info)
// {
@@ -736,26 +733,26 @@
// };
// }
- // static TipData CreateGoodEquipData(int itemId, int goodId)
- // {
- // return new TipData()
- // {
- // itemId = itemId,
- // guid = string.Empty,
- // goodId = goodId,
+ static TipData CreateGoodEquipData(int itemId, int goodId)
+ {
+ return new TipData()
+ {
+ itemId = itemId,
+ guid = string.Empty,
+ goodId = goodId,
- // baseInfo = GetBaseInfo(itemId),
- // baseProperty = GetBaseProperty(itemId),
- // spiritWeaponProperty = GetSpiritWeaponProperty(itemId),
- // legendProperty = GetLegendProperty(itemId),
- // skillInfo = GetSkillInfo(itemId),
- // suitInfo = GetSuitInfo(itemId),
- // gemInfo = GetGemInfo(itemId),
- // starInfo = GetStarInfo(itemId),
- // operates = GetGoodOperates(goodId),
- // shenProperty = GetShenProperty(itemId)
- // };
- // }
+ baseInfo = GetBaseInfo(itemId),
+ baseProperty = GetBaseProperty(itemId),
+ //spiritWeaponProperty = GetSpiritWeaponProperty(itemId),
+ //legendProperty = GetLegendProperty(itemId),
+ skillInfo = GetSkillInfo(itemId),
+ //suitInfo = GetSuitInfo(itemId),
+ //gemInfo = GetGemInfo(itemId),
+ //starInfo = GetStarInfo(itemId),
+ operates = GetGoodOperates(goodId),
+ //shenProperty = GetShenProperty(itemId)
+ };
+ }
// static TipData CreateEquipAuctionData(string guid, bool operatable)
// {
@@ -830,21 +827,21 @@
// };
// }
- // static TipData CreateGoodItemData(int itemId, int goodId)
- // {
- // return new TipData()
- // {
- // itemId = itemId,
- // goodId = goodId,
- // baseInfo = GetBaseInfo(itemId),
- // baseProperty = GetBaseProperty(itemId),
- // legendProperty = GetLegendProperty(itemId),
- // spiritWeaponProperty = GetSpiritWeaponProperty(itemId),
- // petMountBaseProperty = GetPetMountBaseProperty(itemId),
- // operates = GetGoodOperates(goodId),
- // shenProperty = GetShenProperty(itemId)
- // };
- // }
+ static TipData CreateGoodItemData(int itemId, int goodId)
+ {
+ return new TipData()
+ {
+ itemId = itemId,
+ goodId = goodId,
+ baseInfo = GetBaseInfo(itemId),
+ baseProperty = GetBaseProperty(itemId),
+ // legendProperty = GetLegendProperty(itemId),
+ // spiritWeaponProperty = GetSpiritWeaponProperty(itemId),
+ // petMountBaseProperty = GetPetMountBaseProperty(itemId),
+ operates = GetGoodOperates(goodId),
+ // shenProperty = GetShenProperty(itemId)
+ };
+ }
@@ -929,31 +926,31 @@
// }
- // private static BaseInfo GetBaseInfo(int itemId)
- // {
- // var config = ItemConfig.Get(itemId);
- // var money = 0;
- // if (config.Type == 81)
- // {
- // var chestConfig = ChestsConfig.Get(itemId);
- // money = chestConfig.OpenMoney;
- // }
+ private static BaseInfo GetBaseInfo(int itemId)
+ {
+ var config = ItemConfig.Get(itemId);
+ var money = 0;
+ if (config.Type == 81)
+ {
+ var chestConfig = ChestsConfig.Get(itemId);
+ money = chestConfig.OpenMoney;
+ }
- // var baseInfo = new BaseInfo()
- // {
- // itemId = itemId,
- // isAuction = false,
- // isEquiped = false,
- // isPreview = true,
- // score = ItemLogicUtility.Instance.GetEquipScore(itemId, null, true),
- // auctionSurplusTime = 0,
- // levelLimit = config.UseLV,
- // realmLimit = config.RealmLimit,
- // moneyLimit = money,
- // };
+ var baseInfo = new BaseInfo()
+ {
+ itemId = itemId,
+ isAuction = false,
+ isEquiped = false,
+ isPreview = true,
+ //score = ItemLogicUtility.Instance.GetEquipScore(itemId, null, true),
+ auctionSurplusTime = 0,
+ levelLimit = config.UseLV,
+ realmLimit = config.RealmLimit,
+ moneyLimit = money,
+ };
- // return baseInfo;
- // }
+ return baseInfo;
+ }
// private static BaseInfo GetBaseInfo(string guid)
// {
@@ -997,78 +994,78 @@
// return baseInfo;
// }
- // private static BaseProperty GetBaseProperty(int itemId)
- // {
- // var baseProperties = new List<Int2>();
- // var config = ItemConfig.Get(itemId);
+ private static BaseProperty GetBaseProperty(int itemId)
+ {
+ var baseProperties = new List<Int2>();
+ var config = ItemConfig.Get(itemId);
- // if (config.Effect1 == 220)
- // {
- // return GetBaseProperty(config.EffectValueA1);
- // }
+ if (config.Effect1 == 220)
+ {
+ return GetBaseProperty(config.EffectValueA1);
+ }
- // if (!ItemLogicUtility.Instance.IsDogzEquip(itemId))
- // {
- // if (config.Effect1 != 0)
- // {
- // baseProperties.Add(new Int2(config.Effect1, config.EffectValueA1));
- // }
- // }
+ if (!ItemLogicUtility.Instance.IsDogzEquip(itemId))
+ {
+ if (config.Effect1 != 0)
+ {
+ baseProperties.Add(new Int2(config.Effect1, config.EffectValueA1));
+ }
+ }
- // if (config.Effect2 != 0)
- // {
- // baseProperties.Add(new Int2(config.Effect2, config.EffectValueA2));
- // }
+ if (config.Effect2 != 0)
+ {
+ baseProperties.Add(new Int2(config.Effect2, config.EffectValueA2));
+ }
- // if (config.Effect3 != 0)
- // {
- // baseProperties.Add(new Int2(config.Effect3, config.EffectValueA3));
- // }
+ if (config.Effect3 != 0)
+ {
+ baseProperties.Add(new Int2(config.Effect3, config.EffectValueA3));
+ }
- // if (config.Effect4 != 0)
- // {
- // baseProperties.Add(new Int2(config.Effect4, config.EffectValueA4));
- // }
+ if (config.Effect4 != 0)
+ {
+ baseProperties.Add(new Int2(config.Effect4, config.EffectValueA4));
+ }
- // if (config.Effect5 != 0)
- // {
- // baseProperties.Add(new Int2(config.Effect5, config.EffectValueA5));
- // }
+ if (config.Effect5 != 0)
+ {
+ baseProperties.Add(new Int2(config.Effect5, config.EffectValueA5));
+ }
- // var baseProperty = new BaseProperty()
- // {
- // baseProperties = baseProperties,
- // };
+ var baseProperty = new BaseProperty()
+ {
+ baseProperties = baseProperties,
+ };
- // return baseProperty;
- // }
+ return baseProperty;
+ }
- // private static BaseProperty GetBaseProperty(string guid)
- // {
- // var item = packModel.GetItemByGuid(guid);
- // var equipPosition = new Int2(item.config.LV, item.config.EquipPlace);
- // var equiped = equipModel.GetEquip(equipPosition) == guid;
+ private static BaseProperty GetBaseProperty(string guid)
+ {
+ var item = PackManager.Instance.GetItemByGuid(guid);
+ var equipPosition = new Int2(item.config.LV, item.config.EquipPlace);
+ var equiped = true;//equipModel.GetEquip(equipPosition) == guid;
- // var baseProperty = GetBaseProperty(item.itemId);
+ var baseProperty = GetBaseProperty(item.itemId);
- // if (equiped)
- // {
- // var starProperties = new List<Int2>();
- // var currentStar = starModel.GetEquipStarLevel(equipPosition);
- // var maxStar = EquipStarModel.GetMaxStarLevel(item.config.ItemColor, item.config.LV);
- // var star = Mathf.Min(currentStar, maxStar);
- // if (star > 0)
- // {
- // baseProperty.star = star;
- // var starConfig = EquipStarConfig.Get(item.config.LV, item.config.EquipPlace, star);
- // starProperties.AddRange(starConfig.BaseAttrInfo);
- // }
+ if (equiped)
+ {
+ var starProperties = new List<Int2>();
+ // var currentStar = starModel.GetEquipStarLevel(equipPosition);
+ // var maxStar = EquipStarModel.GetMaxStarLevel(item.config.ItemColor, item.config.LV);
+ // var star = Mathf.Min(currentStar, maxStar);
+ // if (star > 0)
+ // {
+ // baseProperty.star = star;
+ // var starConfig = EquipStarConfig.Get(item.config.LV, item.config.EquipPlace, star);
+ // starProperties.AddRange(starConfig.BaseAttrInfo);
+ // }
- // baseProperty.starProperties = starProperties;
- // }
+ baseProperty.starProperties = starProperties;
+ }
- // return baseProperty;
- // }
+ return baseProperty;
+ }
// private static BaseProperty GetPetMountBaseProperty(int itemId)
// {
@@ -1913,26 +1910,26 @@
- // private static List<ItemOperateType> GetGoodOperates(int goodId)
- // {
- // var operates = new List<ItemOperateType>();
- // var countLimit = BuyItemController.Instance.GetBuyCountLimit(goodId, PlayerDatas.Instance.baseData.VIPLv);
- // if (countLimit == -1 || countLimit > 0)
- // {
- // var config = StoreConfig.Get(goodId);
- // int curVipIndex = -1;
- // int nextVipIndex = -1;
- // bool isVipBuy = BuyItemController.Instance.CheckIsVipBuy(config, out curVipIndex, out nextVipIndex);
+ private static List<ItemOperateType> GetGoodOperates(int goodId)
+ {
+ var operates = new List<ItemOperateType>();
+ var countLimit = BuyItemController.Instance.GetBuyCountLimit(goodId, PlayerDatas.Instance.baseData.VIPLv);
+ if (countLimit == -1 || countLimit > 0)
+ {
+ var config = StoreConfig.Get(goodId);
+ int curVipIndex = -1;
+ int nextVipIndex = -1;
+ bool isVipBuy = BuyItemController.Instance.CheckIsVipBuy(config, out curVipIndex, out nextVipIndex);
- // if ((isVipBuy && curVipIndex == -1) || PlayerDatas.Instance.baseData.LV < config.LV)
- // {
- // return operates;
- // }
- // operates.Add(ItemOperateType.buy);
- // }
+ if ((isVipBuy && curVipIndex == -1) || PlayerDatas.Instance.baseData.LV < config.LV)
+ {
+ return operates;
+ }
+ operates.Add(ItemOperateType.buy);
+ }
- // return operates;
- // }
+ return operates;
+ }
// private static bool IsEquipGemHoleOpen(Int2 equipPosition, int maxStar, int hole)
// {
@@ -1955,60 +1952,45 @@
// return true;
// }
- // private static TipType GetTipType(int itemId)
- // {
- // if (GeneralDefine.chestDisplayItems.Contains(itemId))
- // {
- // return TipType.PeerlessChest;
- // }
+ private static TipType GetTipType(int itemId)
+ {
+ if (GeneralDefine.chestDisplayItems.Contains(itemId))
+ {
+ return TipType.PeerlessChest;
+ }
- // if (ChestsAwardConfig.IsBox(itemId))
- // {
- // return TipType.BoxItem;
- // }
+ // if (ChestsAwardConfig.IsBox(itemId))
+ // {
+ // return TipType.BoxItem;
+ // }
- // var config = ItemConfig.Get(itemId);
- // switch (config.Type)
- // {
- // case 101:
- // case 102:
- // case 103:
- // case 104:
- // case 105:
- // case 106:
- // case 107:
- // case 108:
- // case 109:
- // case 110:
- // case 111:
- // case 112:
- // return TipType.Equip;
- // case 119:
- // case 120:
- // case 121:
- // case 122:
- // case 123:
- // return TipType.Dogz;
- // case 53:
- // return TipType.KingTreasure;
- // case 56:
- // return TipType.TreasureShow;
- // case 26:
- // case 41:
- // case 42:
- // return TipType.PetMount;
- // case 113:
- // case 114:
- // case 116:
- // case 117:
- // return TipType.SpiritWeapon;
- // case 147:
- // return TipType.TreasurePavilion;
- // default:
- // return TipType.Item;
- // }
+ var config = ItemConfig.Get(itemId);
+ switch (config.Type)
+ {
+ case 101:
+ case 102:
+ case 103:
+ case 104:
+ case 105:
+ case 106:
+ case 107:
+ case 108:
+ case 109:
+ case 110:
+ case 111:
+ case 112:
+ return TipType.Equip;
+ case 26:
+ case 41:
+ case 42:
+ return TipType.PetMount;
+ case 147:
+ return TipType.TreasurePavilion;
+ default:
+ return TipType.Item;
+ }
- // }
+ }
[System.Diagnostics.Conditional("UNITY_EDITOR")]
private static void PrintItemBrief(int itemId)
diff --git a/Main/System/KnapSack/Logic/ItemLogicUtility.cs b/Main/System/KnapSack/Logic/ItemLogicUtility.cs
index 829d8c5..0513ad9 100644
--- a/Main/System/KnapSack/Logic/ItemLogicUtility.cs
+++ b/Main/System/KnapSack/Logic/ItemLogicUtility.cs
@@ -7,22 +7,10 @@
public class ItemLogicUtility : Singleton<ItemLogicUtility>
{
- private string dogzGSFormula;
private string normalGSFormula;
- private Dictionary<int, string> specialSpiritPropertyFormula = new Dictionary<int, string>();
- Dictionary<int, int> specialSpiritPropertyMaxLevels;
- private int[] preciousItemTypes;
- private int[] preciousItemIDs; // 涓嶅睍绀虹殑鐗╁搧ID
- public int[] drugIDs;
- private int[] onekeySellTypes;
- private int[] pushItemIds;
-
- private int lsItemCnt; // 鑳屽寘涓殑鐏电煶鏁伴噺
private List<int> equipBaseProperties = new List<int>();
- private Dictionary<int, int> promptUseLimitDict;
- private Dictionary<int, List<int>> betterEquipExceptDungeonDict;
Dictionary<int, int> equipSkillScores = new Dictionary<int, int>();
PackManager packModel { get { return PackManager.Instance; } }
@@ -38,15 +26,8 @@
public void Init()
{
var GSFormulaConfig = FuncConfigConfig.Get("EquipGSFormula");
- dogzGSFormula = GSFormulaConfig.Numerical3;
normalGSFormula = GSFormulaConfig.Numerical1;
- var json = JsonMapper.ToObject(FuncConfigConfig.Get("OutOfPrintValue").Numerical2);
- foreach (var key in json.Keys)
- {
- specialSpiritPropertyFormula[int.Parse(key)] = json[key].ToString();
- }
- specialSpiritPropertyMaxLevels = ConfigParse.GetDic<int, int>(FuncConfigConfig.Get("OutOfPrintValueDes").Numerical1);
var equipSkillScoreJson = JsonMapper.ToObject(GSFormulaConfig.Numerical4);
foreach (var key in equipSkillScoreJson.Keys)
{
@@ -66,29 +47,9 @@
equipBaseProperties.Add(int.Parse(baseAttr[i].ToString()));
}
}
- lsItemCnt = int.Parse(FuncConfigConfig.Get("LingshiShowCount").Numerical1);
- preciousItemTypes = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("ItemPush").Numerical1);
- promptUseLimitDict = ConfigParse.GetDic<int, int>(FuncConfigConfig.Get("NoPromptUsetItem").Numerical1);
- preciousItemIDs = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("ItemPush").Numerical3);
- drugIDs = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("LifePotionlist").Numerical1);
- onekeySellTypes = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("OneKeySellItemType").Numerical1);
- pushItemIds = ConfigParse.GetMultipleStr<int>(FuncConfigConfig.Get("IntroductionItem").Numerical1);
-
- betterEquipExceptDungeonDict = new Dictionary<int, List<int>>();
- var excEquipData = JsonMapper.ToObject(FuncConfigConfig.Get("GoodItemDungeon").Numerical1);
- foreach (var dungeonId in excEquipData.Keys)
- {
- var itemIds = new List<int>();
- betterEquipExceptDungeonDict.Add(int.Parse(dungeonId), itemIds);
- for (var i = 0; i < excEquipData[dungeonId].Count; i++)
- {
- var itemId = int.Parse(excEquipData[dungeonId][i].ToString());
- itemIds.Add(itemId);
- }
- }
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
}
@@ -213,63 +174,42 @@
}
- // public int GetEquipScore(int itemId, Dictionary<int, List<int>> useDataDic = null, bool isPreview = false)
- // {
- // var config = ItemConfig.Get(itemId);
- // if (config == null) return 0;
- // if (config.EquipPlace == 0)
- // {
- // return 0;
- // }
+ public int GetEquipScore(int itemId, Dictionary<int, List<int>> useDataDic = null, bool isPreview = false)
+ {
+ var config = ItemConfig.Get(itemId);
+ if (config == null) return 0;
+ if (config.EquipPlace == 0)
+ {
+ return 0;
+ }
- // var properties = new EquipSorceProperties();
+ var properties = new EquipSorceProperties();
- // if (IsCustomItem(itemId))
- // {
- // properties.AddBaseProperties(config.EffectValueA1, equipBaseProperties);
- // properties.AddCustomProperties(itemId);
- // return CalculateEquipScore(config.EffectValueA1, properties);
- // }
+ if (IsCustomItem(itemId))
+ {
+ properties.AddBaseProperties(config.EffectValueA1, equipBaseProperties);
+ properties.AddCustomProperties(itemId);
+ return CalculateEquipScore(config.EffectValueA1, properties);
+ }
- // properties.AddBaseProperties(itemId, equipBaseProperties);
- // if (isPreview)
- // {
- // switch ((RoleEquipType)config.EquipPlace)
- // {
- // case RoleEquipType.Weapon:
- // case RoleEquipType.Weapon2:
- // case RoleEquipType.Hat:
- // case RoleEquipType.Clothes:
- // case RoleEquipType.Belt:
- // case RoleEquipType.Trousers:
- // case RoleEquipType.Shoes:
- // case RoleEquipType.Glove:
- // case RoleEquipType.Neck:
- // case RoleEquipType.FairyCan1:
- // case RoleEquipType.FairyCan2:
- // case RoleEquipType.Jade:
- // properties.AddRange(GetEquipLegendProperties(itemId));
- // break;
- // }
+ properties.AddBaseProperties(itemId, equipBaseProperties);
- // return CalculateEquipScore(itemId, properties);
- // }
- // if (useDataDic != null)
- // {
- // if (useDataDic.ContainsKey((int)ItemUseDataKey.legendAttrID))
- // {
- // properties.AddRange(useDataDic[(int)ItemUseDataKey.legendAttrID], useDataDic[(int)ItemUseDataKey.legendAttrValue]);
- // }
+ if (useDataDic != null)
+ {
+ if (useDataDic.ContainsKey((int)ItemUseDataKey.legendAttrID))
+ {
+ properties.AddRange(useDataDic[(int)ItemUseDataKey.legendAttrID], useDataDic[(int)ItemUseDataKey.legendAttrValue]);
+ }
- // if (useDataDic.ContainsKey((int)ItemUseDataKey.outOfPrintAttrID))
- // {
- // properties.AddRange(useDataDic[(int)ItemUseDataKey.outOfPrintAttrID], useDataDic[(int)ItemUseDataKey.outOfPrintAttrValue]);
- // }
- // }
+ if (useDataDic.ContainsKey((int)ItemUseDataKey.outOfPrintAttrID))
+ {
+ properties.AddRange(useDataDic[(int)ItemUseDataKey.outOfPrintAttrID], useDataDic[(int)ItemUseDataKey.outOfPrintAttrValue]);
+ }
+ }
- // return CalculateEquipScore(itemId, properties, useDataDic);
- // }
+ return CalculateEquipScore(itemId, properties, useDataDic);
+ }
// private Dictionary<int, int> GetEquipLegendProperties(int itemId)
// {
@@ -319,470 +259,94 @@
/// <param name="itemId"></param>
/// <returns></returns>
private Dictionary<PropertyType, float> curEquipAttrDict = new Dictionary<PropertyType, float>(); //瀛樺偍褰撳墠瑁呭灞炴�у搴旂殑鏁板�� key 灞炴�� value 灞炴�у��
- // private int CalculateEquipScore(int itemId, EquipSorceProperties properties, Dictionary<int, List<int>> useDataDic = null)
- // {
- // var config = ItemConfig.Get(itemId);
- // if (config == null || !GeneralDefine.CompareEquipPlaces.Contains(config.EquipPlace))
- // {
- // return 0;
- // }
-
- // properties.AddRange(GetEquipShenProperties(itemId));
-
- // var minAttack = properties.ContainsKey((int)PropertyType.MinAtk) ? properties[(int)PropertyType.MinAtk] : 0;
- // var maxAttack = properties.ContainsKey((int)PropertyType.MaxAtk) ? properties[(int)PropertyType.MaxAtk] : 0;
- // var attack = properties.ContainsKey((int)PropertyType.ATK) ? properties[(int)PropertyType.ATK] : 0;
-
- // properties[(int)PropertyType.MinAtk] = minAttack + attack;
- // properties[(int)PropertyType.MaxAtk] = maxAttack + attack;
-
- // Equation.Instance.Clear();
- // curEquipAttrDict.Clear();
-
- // var GSProValueDict = EquipGSParamConfig.GetTagGsProValueDict(config.LV, config.ItemColor, config.SuiteiD > 0 ? 1 : 0, config.StarLevel);
- // foreach (var key in properties.Keys)
- // {
- // var attrType = (PropertyType)key;
- // switch (attrType)
- // {
- // case PropertyType.ATKSPEED:
- // case PropertyType.OnlyFinalHurt:
- // case PropertyType.PVPAtkBackHP:
- // case PropertyType.MinAtk:
- // case PropertyType.MaxAtk:
- // case PropertyType.AddFinalHurt:
- // case PropertyType.ReduceFinalHurt:
- // curEquipAttrDict.Add(attrType, properties[key]);
- // break;
- // default:
- // if (GSProValueDict != null && GSProValueDict.ContainsKey(attrType))
- // {
- // var curProValue = properties[key] * GSProValueDict[attrType];
- // curEquipAttrDict.Add(attrType, curProValue);
- // }
- // else
- // {
- // curEquipAttrDict.Add(attrType, properties[key]);
- // }
- // break;
- // }
- // }
-
- // foreach (var key in curEquipAttrDict.Keys)
- // {
- // var propertyConfig = PlayerPropertyConfig.Get((int)key);
- // if (propertyConfig != null)
- // {
- // Equation.Instance.AddKeyValue(propertyConfig.Parameter, curEquipAttrDict[key]);
- // }
- // }
-
- // var skillScore = 0;
- // if (useDataDic != null && useDataDic.ContainsKey((int)ItemUseDataKey.equipSkills))
- // {
- // for (int i = 0; i < useDataDic[(int)ItemUseDataKey.equipSkills].Count; i++)
- // {
- // skillScore += equipSkillScores[useDataDic[(int)ItemUseDataKey.equipSkills][i]];
- // }
- // }
- // else
- // {
-
- // if (config.AddSkill1 != 0 && equipSkillScores.ContainsKey(config.AddSkill1))
- // {
- // skillScore += equipSkillScores[config.AddSkill1];
- // }
-
- // if (config.AddSkill2 != 0 && equipSkillScores.ContainsKey(config.AddSkill2))
- // {
- // skillScore += equipSkillScores[config.AddSkill2];
- // }
-
- // }
-
-
- // var spiritWeaponScore = 0;
- // if (SpiritWeaponConfig.Has(itemId))
- // {
- // spiritWeaponScore = SpiritWeaponConfig.Get(itemId).AttrScore;
- // }
-
- // if (IsDogzEquip(itemId))
- // {
- // return Equation.Instance.Eval<int>(dogzGSFormula);
- // }
- // else
- // {
- // return spiritWeaponScore + skillScore + Equation.Instance.Eval<int>(normalGSFormula);
- // }
- // }
-
- #endregion
-
- #region 涓荤晫闈㈢墿鍝佸脊妗嗗睍绀�
- public event Action<PackType, string> GetPreciousItemEvent; //寰楀埌鐝嶅搧 value 鐗╁搧鐨勫疄渚婭D
- public event Action<PackType, string> GetExpItemEvent; //寰楀埌缁忛獙鐗╁搧 value 鐗╁搧鐨勫疄渚婭D
- public void RecommendItem(ItemModel item)
+ private int CalculateEquipScore(int itemId, EquipSorceProperties properties, Dictionary<int, List<int>> useDataDic = null)
{
- if (item.packType != PackType.Item)
+ var config = ItemConfig.Get(itemId);
+ if (config == null || !GeneralDefine.CompareEquipPlaces.Contains(config.EquipPlace))
{
- return;
- }
- if (!preciousItemTypes.Contains(item.config.Type))
- {
- int mapId = PlayerDatas.Instance.baseData.MapID;
- var drugList = packModel.GetDrugIDListByDungeonID(mapId);
- if (drugList == null)
- return;
- if (!drugList.Contains(item.config.ID))
- return;
+ return 0;
}
- if (item.config.Type == 145 && item.config.CDTime > 0)
+ //properties.AddRange(GetEquipShenProperties(itemId));
+
+ var minAttack = properties.ContainsKey((int)PropertyType.MinAtk) ? properties[(int)PropertyType.MinAtk] : 0;
+ var maxAttack = properties.ContainsKey((int)PropertyType.MaxAtk) ? properties[(int)PropertyType.MaxAtk] : 0;
+ var attack = properties.ContainsKey((int)PropertyType.ATK) ? properties[(int)PropertyType.ATK] : 0;
+
+ properties[(int)PropertyType.MinAtk] = minAttack + attack;
+ properties[(int)PropertyType.MaxAtk] = maxAttack + attack;
+
+ Equation.Instance.Clear();
+ curEquipAttrDict.Clear();
+
+ var GSProValueDict = EquipGSParamConfig.GetTagGsProValueDict(config.LV, config.ItemColor, config.SuiteiD > 0 ? 1 : 0, config.StarLevel);
+ foreach (var key in properties.Keys)
{
- var createTime = item.GetUseDataFirstValue((int)ItemUseDataKey.createTime);
- if (createTime > 0)
+ var attrType = (PropertyType)key;
+ switch (attrType)
{
- DateTime useTime;
- if (item.config.CDTypeEx == 1)
- {
- //itemConfig.CDTime 涓哄ぉ锛岃繃0鐐瑰彲鐢�
- useTime = TimeUtility.GetTime((uint)createTime).AddDays(item.config.CDTime);
- useTime = TimeUtility.GetDayStartTime(useTime.Year, useTime.Month, useTime.Day);
- }
- else
- {
- useTime = TimeUtility.GetTime((uint)createTime).AddSeconds(item.config.CDTime);
- }
- if (TimeUtility.ServerNow < useTime)
- {
- return;
- }
+ case PropertyType.ATKSPEED:
+ case PropertyType.OnlyFinalHurt:
+ case PropertyType.PVPAtkBackHP:
+ case PropertyType.MinAtk:
+ case PropertyType.MaxAtk:
+ case PropertyType.AddFinalHurt:
+ case PropertyType.ReduceFinalHurt:
+ curEquipAttrDict.Add(attrType, properties[key]);
+ break;
+ default:
+ if (GSProValueDict != null && GSProValueDict.ContainsKey(attrType))
+ {
+ var curProValue = properties[key] * GSProValueDict[attrType];
+ curEquipAttrDict.Add(attrType, curProValue);
+ }
+ else
+ {
+ curEquipAttrDict.Add(attrType, properties[key]);
+ }
+ break;
}
}
- if (preciousItemIDs != null && preciousItemIDs.Contains(item.config.ID))
+ foreach (var key in curEquipAttrDict.Keys)
{
- return;
- }
- if (item.config.ID == packModel.lsItemID)
- {
- int tmpCnt = PlayerDatas.Instance.baseData.LV < 50 ? 5 : lsItemCnt;
- if (packModel.GetItemCountByID(PackType.Item, packModel.lsItemID) < tmpCnt)
- return;
- }
- //if (item.isAuction)
- //{
- // return;
- //}
-
- if (item.config.UseLV > PlayerDatas.Instance.baseData.LV)
- {
- return;
- }
-
- if (IsOverdue(item.guid))
- {
- return;
- }
-
- // if (!IsAbleToUse(item))
- // {
- // return;
- // }
-
- if (IsSpiritWeapon(item.itemId))
- {
- if (IsFightUp(item.itemId, item.score) != 1)
+ var propertyConfig = PlayerPropertyConfig.Get((int)key);
+ if (propertyConfig != null)
{
- return;
+ Equation.Instance.AddKeyValue(propertyConfig.Parameter, curEquipAttrDict[key]);
}
}
- if (item.config.Type == 13)
+
+ var skillScore = 0;
+ if (useDataDic != null && useDataDic.ContainsKey((int)ItemUseDataKey.equipSkills))
{
- // 缁忛獙涓圭壒娈婂鐞嗭紝浼樺厛鏄剧ず
- if (GetExpItemEvent != null)
+ for (int i = 0; i < useDataDic[(int)ItemUseDataKey.equipSkills].Count; i++)
{
- GetExpItemEvent(item.packType, item.guid);
+ skillScore += equipSkillScores[useDataDic[(int)ItemUseDataKey.equipSkills][i]];
}
}
else
{
- if (GetPreciousItemEvent != null)
+
+ if (config.AddSkill1 != 0 && equipSkillScores.ContainsKey(config.AddSkill1))
{
- GetPreciousItemEvent(item.packType, item.guid);
+ skillScore += equipSkillScores[config.AddSkill1];
+ }
+
+ if (config.AddSkill2 != 0 && equipSkillScores.ContainsKey(config.AddSkill2))
+ {
+ skillScore += equipSkillScores[config.AddSkill2];
}
}
+
+
+ return skillScore + Equation.Instance.Eval<int>(normalGSFormula);
}
- // bool IsAbleToUse(ItemModel item)
- // {
- // var windowSearch = WindowSearchConfig.Get(item.config.Jump);
- // if (windowSearch != null)
- // {
- // if (!FuncOpen.Instance.IsFuncOpen(windowSearch.Lv) && windowSearch.Lv != 0)
- // {
- // return false;
- // }
- // }
+ #endregion
- // if (pushItemIds.Contains(item.itemId))
- // {
- // var itemCnt = packModel.GetItemCountByID(PackType.Item, item.itemId) - item.count;
- // if (itemCnt > 0)
- // {
- // return false;
- // }
- // else
- // {
- // if (item.preItemCount > 0)
- // {
- // return false;
- // }
- // }
- // }
-
- // if (promptUseLimitDict.ContainsKey(item.itemId))
- // {
- // var playerLv = PlayerDatas.Instance.baseData.LV;
- // if (playerLv < promptUseLimitDict[item.itemId])
- // {
- // return false;
- // }
- // }
-
- // ulong canUseCnt = 0;
- // if (packModel.IsReachUseLimit(item.guid, out canUseCnt))
- // {
- // return false;
- // }
-
- // bool isBox = false;
- // bool isCanOpen = ModelCenter.Instance.GetModel<BoxGetItemModel>().CheckOpenBoxCondition(item.itemId, out isBox);
- // if (isBox)
- // {
- // if (!isCanOpen)
- // {
- // return false;
- // }
- // }
-
- // //if (trialModel.trialTokens.Contains(item.itemId))
- // //{
- // // if (!trialModel.IsAnySatisfyExchangeBetter(item.itemId))
- // // {
- // // return false;
- // // }
- // //}
-
- // if (packModel.CheckIsDrugById(item.itemId))
- // {
- // if (item.config.RealmLimit > PlayerDatas.Instance.baseData.realmLevel)
- // {
- // return false;
- // }
- // }
-
- // var fruitConfig = AttrFruitConfig.Get(item.itemId);
- // if (fruitConfig != null && fruitConfig.FuncID == 2)
- // {
- // if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.BlastFurnace))
- // {
- // return false;
- // }
- // }
-
- // switch (item.config.Type)
- // {
- // case 8:
- // if (buffDatas.BastBuff(item.itemId))
- // {
- // return false;
- // }
- // break;
- // case 20:
- // if (magicianModel.IsGodWeaponMaxLevelByItem(item.itemId))
- // {
- // return false;
- // }
- // break;
- // case 21:
- // if (!mountDatas.IsHint(HorseEnum.HorseDan, item.itemId))
- // {
- // return false;
- // }
- // break;
- // case 22:
- // if (!mountDatas.IsHint(HorseEnum.HorseStone, item.itemId))
- // {
- // return false;
- // }
- // break;
- // case 41:
- // if (!mountDatas.IsHint(HorseEnum.HorseDebris, item.itemId))
- // {
- // return false;
- // }
- // break;
- // case 26:
- // if (!petDatas.IsHint(PetEnum.PetDebris, item.itemId))
- // {
- // return false;
- // }
- // break;
- // case 27:
- // if (!petDatas.IsHint(PetEnum.PetDan, item.itemId))
- // {
- // return false;
- // }
- // break;
- // case 28:
- // if (!petDatas.IsHint(PetEnum.PetStone, item.itemId))
- // {
- // return false;
- // }
- // break;
- // case 25:
- // if (!ModelCenter.Instance.GetModel<EquipGemModel>().IsBetterGem(item.itemId))
- // {
- // return false;
- // }
- // break;
- // case 39:
- // if (!IsBetterWings(item))
- // {
- // return false;
- // }
- // break;
- // case 52:
- // if (!strengthDatas.IsHint(item.itemId))
- // {
- // return false;
- // }
- // break;
- // case 55:
- // if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.BlastFurnace))
- // {
- // return false;
- // }
- // var alchemyId = 0;
- // if (alchemyModel.TryGetAlchemyByStudyMaterial(item.itemId, out alchemyId))
- // {
- // var alchemyConfig = AlchemyConfig.Get(alchemyId);
- // int alchemingId;
- // if (alchemyModel.IsStoveAlcheming((AlchemyType)alchemyConfig.AlchemType, out alchemingId))
- // {
- // return false;
- // }
- // if (alchemyModel.IsGraspRecipe(alchemyId))
- // {
- // return false;
- // }
- // var studyError = 0;
- // if (!alchemyModel.TryLearn(alchemyId, out studyError))
- // {
- // return false;
- // }
- // }
- // break;
- // case 127:
- // var error = 0;
- // bool isHaveMakeNum = ItemOperateUtility.Instance.CanUseItem(item.guid, 1, out error);
- // int remainNum = CrossServerOneVsOnePlayerInfo.Instance.GetDayRemainNum();
- // if (!CrossServerOneVsOnePKSeason.Instance.isSatisfyMatch
- // || remainNum > 0
- // || !isHaveMakeNum)
- // {
- // return false;
- // }
- // break;
- // default:
- // break;
- // }
-
- // switch (item.itemId)
- // {
- // case 951:
- // if (!CheckIsExtendGrid(item.itemId))
- // {
- // return false;
- // }
- // break;
- // case 952:
- // return false;
- // break;
-
- // }
-
- // return true;
- // }
-
- // private bool IsBetterWings(ItemModel item)
- // {
- // if (item == null)
- // {
- // return false;
- // }
-
- // var putModel = packModel.GetItemByIndex(PackType.Equip, SpiritWeaponModel.WING_EQUIPINDEX);
- // var singlePack = packModel.GetSinglePack(PackType.Item);
- // if (singlePack == null)
- // {
- // return false;
- // }
-
- // int[] composeTypes = item.config.JumpComposeCondi;
- // bool isOpenCompose = false;
- // if (composeTypes != null && composeTypes.Length >= 3)
- // {
- // int first = composeTypes[0];
- // int second = composeTypes[1];
- // int third = composeTypes[2];
- // ComposeWinModel.ComposeThirdTypeData thirdTypeData = null;
- // composeModel.TryGetThirdTypeData(first, second, third, out thirdTypeData);
- // if (thirdTypeData != null)
- // {
- // var itemCompound = thirdTypeData.itemCompound;
- // if (itemCompound.levelNeed <= PlayerDatas.Instance.baseData.LV)
- // {
- // isOpenCompose = true;
- // }
- // }
- // }
-
- // if (!isOpenCompose)
- // {
- // return false;
- // }
-
- // if (putModel != null && putModel.config.LV >= item.config.LV)
- // {
- // return false;
- // }
-
- // var itemModels = packModel.GetItems(PackType.Item, new SinglePack.FilterParams()
- // {
- // itemTypes = new List<int>() { (int)ItemType.Equip_Wing }
- // });
-
- // if (itemModels != null)
- // {
- // for (int i = 0; i < itemModels.Count; i++)
- // {
- // if (IsJobCompatibleItem(itemModels[i].itemId))
- // {
- // if (itemModels[i].config.LV >= item.config.LV)
- // {
- // return false;
- // }
- // }
- // }
- // }
-
- // return true;
- // }
-
+
private bool CheckIsExtendGrid(int itemId)
{
SinglePack singlePack = packModel.GetSinglePack(PackType.Item);
@@ -988,7 +552,6 @@
// }
// return RealmDruglist;
// }
- #endregion
#region 鐗╁搧澶勪簬CD涓殑閫昏緫澶勭悊
diff --git a/Main/System/KnapSack/PackManager.cs b/Main/System/KnapSack/PackManager.cs
index 5b5648b..0dbd7f1 100644
--- a/Main/System/KnapSack/PackManager.cs
+++ b/Main/System/KnapSack/PackManager.cs
@@ -24,12 +24,9 @@
//AlchemyModel alchemyModel { get { return ModelCenter.Instance.GetModel<AlchemyModel>(); } }
//ItemTipsModel itemTipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
- public int lsItemID = 150; //鍙厬鎹㈢殑鐏电煶鐗╁搧ID
- int lsItemCnt = 0;
List<string> commonShowAwardEvents = new List<string>();
public int[] autoUseItemIDs;
- UIEffect lingshiEffect; //鐏电煶鐗规晥
public override void Init()
{
DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnBeforePlayerDataInitialize;
@@ -37,72 +34,25 @@
DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
ParseConfig();
//SysNotifyMgr.Instance.sysNotifyEvent += RefreshSysInfo;
- // List<DungeonOpenTimeConfig> dungeonlist = DungeonOpenTimeConfig.GetValues();
- // if (dungeonlist != null)
- // {
- // //DrugToDungeonDict = new Dictionary<int, int>();
- // DungeonToDrugDict = new Dictionary<int, int[]>();
+
- // for (int i = 0; i < dungeonlist.Count; i++)
+
+ // FuncConfigConfig ShareUseCntItem = FuncConfigConfig.Get("ShareUseCntItem");
+ // sharedUseCountItemDict = new Dictionary<int, List<int>>();
+ // JsonData shareUseJson = JsonMapper.ToObject(ShareUseCntItem.Numerical1);
+ // if (shareUseJson.IsArray)
+ // {
+ // for (int i = 0; i < shareUseJson.Count; i++)
// {
- // int[] drugIdlist = dungeonlist[i].ElixirHint;
- // if (drugIdlist != null && drugIdlist.Length > 0)
+ // var idListJson = shareUseJson[i];
+ // var idlist = new List<int>();
+ // sharedUseCountItemDict.Add(i, idlist);
+ // foreach (var id in idListJson)
// {
- // DungeonToDrugDict.Add(dungeonlist[i].DataMapID, drugIdlist);
- // //for (int j = 0; j < drugIdlist.Length; j++)
- // //{
- // // DrugToDungeonDict.Add(drugIdlist[j], dungeonlist[i].DataMapID);
- // //}
+ // idlist.Add(int.Parse(id.ToString()));
// }
// }
// }
-
- // makeDruglist = new List<AttrFruitConfig>();
- // List<AttrFruitConfig> fruitlist = AttrFruitConfig.GetValues();
- // for (int i = 0; i < fruitlist.Count; i++)
- // {
- // if (fruitlist[i].FuncID == 2)
- // {
- // makeDruglist.Add(fruitlist[i]);
- // }
- // }
- // StageLoad.Instance.onStageLoadFinish += OnStageLoadFinish;
-
- SetDevourEquipPlace();
-
- // decomposeAttrDict.Clear();
- // List<EquipDeComposeConfig> decomlist = EquipDeComposeConfig.GetValues();
- // for (int i = 0; i < decomlist.Count; i++)
- // {
- // JsonData attrData = JsonMapper.ToObject(decomlist[i].Attr);
- // Dictionary<int, int> attrDict = new Dictionary<int, int>();
- // decomposeAttrDict.Add(decomlist[i].LV, attrDict);
- // foreach (var id in attrData.Keys)
- // {
- // attrDict.Add(int.Parse(id), int.Parse(attrData[id].ToString()));
- // }
- // }
-
- FuncConfigConfig equipDecompose = FuncConfigConfig.Get("EquipDevourCount");
- minDecomposeNum = int.Parse(equipDecompose.Numerical1);
- defaultUnSelectlist = ConfigParse.GetMultipleStr<int>(equipDecompose.Numerical2);
-
- FuncConfigConfig ShareUseCntItem = FuncConfigConfig.Get("ShareUseCntItem");
- sharedUseCountItemDict = new Dictionary<int, List<int>>();
- JsonData shareUseJson = JsonMapper.ToObject(ShareUseCntItem.Numerical1);
- if (shareUseJson.IsArray)
- {
- for (int i = 0; i < shareUseJson.Count; i++)
- {
- var idListJson = shareUseJson[i];
- var idlist = new List<int>();
- sharedUseCountItemDict.Add(i, idlist);
- foreach (var id in idListJson)
- {
- idlist.Add(int.Parse(id.ToString()));
- }
- }
- }
ParseItemCount();
@@ -140,27 +90,18 @@
private void OnFuncStateChangeEvent(int id)
{
- if (id == (int)FuncOpenEnum.EquipDecompose)
- {
- EquipDecomRedCtrl();
- }
+
}
public void OnBeforePlayerDataInitialize()
{
GlobalTimeEvent.Instance.secondEvent -= UpdateSecond;
PlayerDatas.Instance.playerDataRefreshEvent -= UpdatePlayerLv;
LocalSave.DeleteKey(RecordKnapsackTitle);
- cacheMapId = 0;
playerPackDict.Clear();
itemDayUseCntDict.Clear();
itemSumUseCntDict.Clear();
itemGUIDDict.Clear();
isPlayBetterEquipEffect = false;
- colorType = EquipColorType.Orange;
- decomposeLv = 1;
- decomposeExp = 0;
- decomposeProgress = 0;
- isAutoDecompose = false;
}
public void OnAfterPlayerDataInitialize()
@@ -171,7 +112,6 @@
public void OnPlayerLoginOk()
{
//ItemOperateUtility.Instance.RequestWarehouseData();
- EquipDecomRedCtrl();
RoleEquipLocalSave = StringUtility.Contact("RoleEquipLocalSave", PlayerDatas.Instance.baseData.PlayerID);
StrengthAttrShift_RecordKey = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "StrengthAttrShift");
if (LocalSave.GetIntArray(RoleEquipLocalSave) != null)
@@ -321,20 +261,10 @@
UpdatePackRedpoint(type);
//EquipDecomRedCtrl();
- m_CheckEquipDecomRedCtrl = true;
AutoUseItem(itemInfo.itemId, serverItem.ItemGUID);
}
- bool m_CheckEquipDecomRedCtrl = false;
- void CheckEquipDecomRedCtrl()
- {
- if (m_CheckEquipDecomRedCtrl)
- {
- EquipDecomRedCtrl();
- m_CheckEquipDecomRedCtrl = false;
- }
- }
public void UpdateUnlockedGridCount(H0724_tagRolePackCanUseCount useCount)
@@ -381,7 +311,6 @@
{
itemCntAddEvent(type, itemModel.gridIndex, itemModel.itemId);
}
- ItemLogicUtility.Instance.RecommendItem(itemModel);
ItemLogicUtility.Instance.RefreshPickItem(type, itemModel.itemId.ToString());
}
else
@@ -397,7 +326,6 @@
refreshItemCountEvent(type, itemModel.gridIndex, itemModel.itemId);
}
- UpdateLSRedpoint(type, itemModel.itemId);
}
}
@@ -444,8 +372,6 @@
}
UpdatePackRedpoint(type);
- m_CheckEquipDecomRedCtrl = true;
- //EquipDecomRedCtrl();
if (GetItemByGuid(guid) == null)
{
@@ -468,16 +394,6 @@
return;
}
- MakeUseItemSuccess(success.ItemIndex, (int)success.ItemID);
- switch (success.ItemID)
- {
- // case 221:
- // if (WindowCenter.Instance.IsOpen<KnapSackWin>())
- // {
- // WindowCenter.Instance.Close<KnapSackWin>();
- // }
- // break;
- }
if (useItemSuccessEvent != null)
{
@@ -493,28 +409,6 @@
// }
}
- private void MakeUseItemSuccess(int index, int id)
- {
- ItemConfig itemConfig = ItemConfig.Get(id);
- if (itemConfig.CDType != 0)
- {
- var items = GetItems(PackType.Item, new SinglePack.FilterParams()
- {
- itemTypes = new List<int>() { (int)ItemType.Buff }
- });
-
- for (int i = 0; i < items.Count; i++)
- {
- if (ItemLogicUtility.Instance.drugIDs.Contains(items[i].itemId))
- {
- itemConfig = ItemConfig.Get(items[i].itemId);
- float configCdTime = (float)Math.Round((double)itemConfig.CDTime / 1000, 1);
- KnapsackTimeCDMgr.Instance.Register(items[i].guid, items[i].itemId, configCdTime);
- }
- }
-
- }
- }
void AddItemGUIDDict(ItemModel itemModel, bool showNewItem)
{
@@ -586,67 +480,16 @@
#endregion
#region 鐜╁瑁呭鐗规畩閫昏緫
- public Dictionary<int, Dictionary<int, int>> spiritWeaponPathIds { get; private set; }
- public Dictionary<int, int> wingsGetPathIdDict { get; private set; }
- public Dictionary<int, List<int>> dungeonUseDict { get; private set; }
void ParseConfig()
{
- FuncConfigConfig funcConfig = FuncConfigConfig.Get("WingYuPeiHQTJ");
- spiritWeaponPathIds = new Dictionary<int, Dictionary<int, int>>();
- var splits = funcConfig.Numerical3.Split('|');
- for (int i = 0; i < splits.Length; i++)
- {
- var tempString = splits[i];
- var matches = Regex.Matches(tempString.Trim(), "\\d+");
- var equipPlace = int.Parse(matches[0].Value);
- var job = int.Parse(matches[1].Value);
- var itemId = int.Parse(matches[2].Value);
+
- if (!spiritWeaponPathIds.ContainsKey(equipPlace))
- {
- spiritWeaponPathIds[equipPlace] = new Dictionary<int, int>();
- }
-
- spiritWeaponPathIds[equipPlace][job] = itemId;
- }
-
- FuncConfigConfig copyItemBulletWindow = FuncConfigConfig.Get("CopyItemBulletWindow");
- JsonData copyWinData = JsonMapper.ToObject(copyItemBulletWindow.Numerical1);
- dungeonUseDict = new Dictionary<int, List<int>>();
- foreach (var dungeonId in copyWinData.Keys)
- {
- List<int> idlist = new List<int>();
- dungeonUseDict.Add(int.Parse(dungeonId), idlist);
- if (copyWinData[dungeonId].IsArray)
- {
- JsonData useData = copyWinData[dungeonId];
- for (int i = 0; i < useData.Count; i++)
- {
- idlist.Add(int.Parse(useData[i].ToString()));
- }
- }
- }
-
- lsItemCnt = int.Parse(FuncConfigConfig.Get("LingshiShowCount").Numerical1);
var config = FuncConfigConfig.Get("CommonShowAwards");
commonShowAwardEvents = JsonMapper.ToObject<List<string>>(config.Numerical1);
}
- public int GetRoleEquipPathId(int equipPlace)
- {
- int playerJob = PlayerDatas.Instance.baseData.Job;
- switch ((RoleEquipType)equipPlace)
- {
- case RoleEquipType.Guard:
- case RoleEquipType.PeerlessWeapon1:
- case RoleEquipType.PeerlessWeapon2:
- case RoleEquipType.Wing:
- return spiritWeaponPathIds[equipPlace][playerJob];
- default:
- return 0;
- }
- }
+
private void UpdateSecond()
{
@@ -654,7 +497,6 @@
{
isUpdatePlayerLv = false;
}
- CheckEquipDecomRedCtrl();
}
private void UpdatePlayerLv(PlayerDataType type)
@@ -947,27 +789,6 @@
const int LS_REDKEY = 102011015;
Redpoint redpointLS = new Redpoint(MainRedDot.RedPoint_BagFuncKey, LS_REDKEY);
- private void UpdateLSRedpoint(PackType type, int itemID)
- {
- var singlePack = GetSinglePack(type);
- if (singlePack == null)
- {
- return;
- }
- if (type != PackType.Item) return;
- if (itemID != lsItemID) return;
-
-
- if (GetItemCountByID(PackType.Item, lsItemID) < lsItemCnt)
- {
- redpointLS.state = RedPointState.None;
- }
- else
- {
- redpointLS.state = RedPointState.Simple;
- }
-
- }
private void UpdatePackRedpoint(PackType type)
{
@@ -989,14 +810,7 @@
{
redpointItemPack.state = RedPointState.None;
}
- if (GetItemCountByID(PackType.Item, lsItemID) < lsItemCnt)
- {
- redpointLS.state = RedPointState.None;
- }
- else
- {
- redpointLS.state = RedPointState.Simple;
- }
+
break;
case PackType.Warehouse:
if (singlePack.GetEmptyGridCount() <= 0)
@@ -1011,34 +825,7 @@
}
}
- const int PLAYERSUMSTAR_REDKEY = 102011002;
- Redpoint redpointSTAR = new Redpoint(MainRedDot.RedPoint_BagFuncKey, PLAYERSUMSTAR_REDKEY);
-
- public const int EquipDecompose_RedKey = 10205;
- public Redpoint redpointEquipDecom = new Redpoint(MainRedDot.RedPoint_MainPackKey, EquipDecompose_RedKey);
- public void EquipDecomRedCtrl()
- {
- if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.EquipDecompose))
- {
- return;
- }
-
- if (PlayerDatas.Instance.baseData.LV < devourRedpointLevel)
- {
- redpointEquipDecom.state = RedPointState.None;
- return;
- }
-
- var canDevourItems = GetCanDevourModellist();
- if (canDevourItems != null && canDevourItems.Count >= minDevourEquipNum)
- {
- redpointEquipDecom.state = RedPointState.Simple;
- }
- else
- {
- redpointEquipDecom.state = RedPointState.None;
- }
- }
+
#endregion
#region 鏌ョ湅鏌愪釜浣嶇疆鐨勭墿鍝�
@@ -1090,33 +877,7 @@
private int cacheMapId = 0;
public event Action<PackType, string> itemUseAct;
private Dictionary<int, int> itemUseTypeDict = new Dictionary<int, int>(); //key SkillTypeID,value 浣跨敤鐗╁搧鐨処D
- private void OnStageLoadFinish()
- {
- // itemUseTypeDict.Clear();
- // if (PlayerDatas.Instance.baseData.MapID == cacheMapId)
- // {
- // return;
- // }
-
- // cacheMapId = PlayerDatas.Instance.baseData.MapID;
- // UpdateDungeonDanUse();
- // UpdateDungeonUse();
- // SinglePack singlePack = GetSinglePack(PackType.Item);
- // foreach (int itemId in itemUseTypeDict.Values)
- // {
- // var modellist = singlePack.GetItemsById(itemId);
- // if (modellist.Count > 0)
- // {
- // ItemModel itemModel = modellist[0];
- // bool isExist = StatusMgr.Instance.IsExist(PlayerDatas.Instance.hero.ServerInstID, itemModel.config.AddSkill1);
- // Debug.Log("Buff鏄惁瀛樺湪" + isExist);
- // if (itemUseAct != null && !isExist)
- // {
- // itemUseAct(PackType.Item, itemModel.guid);
- // }
- // }
- // }
- }
+
private void AddItemUseTypeDict(int id)
{
@@ -1139,31 +900,8 @@
}
}
- private void UpdateDungeonDanUse()
- {
- int mapId = PlayerDatas.Instance.baseData.MapID;
- int[] useDrugs = GetDrugIDListByDungeonID(mapId);
- if (useDrugs == null) return;
- for (int i = 0; i < useDrugs.Length; i++)
- {
- int id = useDrugs[i];
- AddItemUseTypeDict(id);
- }
- }
- private void UpdateDungeonUse()
- {
- int mapId = PlayerDatas.Instance.baseData.MapID;
- if (!dungeonUseDict.ContainsKey(mapId)) return;
-
- List<int> useIdlist = dungeonUseDict[mapId];
- for (int i = 0; i < useIdlist.Count; i++)
- {
- int id = useIdlist[i];
- AddItemUseTypeDict(id);
- }
- }
public SkillConfig GetSkillConfig(int itemId)
{
@@ -1172,19 +910,8 @@
return skillConfig;
}
- public int GetDungeonIDByDrugID(int drugID)
- {
- int dungeonID = 0;
- //DrugToDungeonDict.TryGetValue(drugID, out dungeonID);
- return dungeonID;
- }
- public int[] GetDrugIDListByDungeonID(int dungeonID)
- {
- int[] drugIDlist = null;
- DungeonToDrugDict.TryGetValue(dungeonID, out drugIDlist);
- return drugIDlist;
- }
+
#endregion
#region 鍒ゆ柇鐗╁搧鏄惁杈惧埌浣跨敤涓婇檺
@@ -1228,442 +955,9 @@
// }
#endregion
- #region 鐗╁搧鍚炲櫖閫昏緫澶勭悊
- public EquipColorType colorType { get; private set; }
- public event Action<EquipColorType> RefreshColorSelectAct;
- public event Action RefreshEquipDecomNumAct;
- public int[] defaultUnSelectlist { get; private set; }
+
- public int GetBetterEquipCount(List<ItemModel> itemModels)
- {
- if (itemModels.IsNullOrEmpty())
- {
- return 0;
- }
-
- var count = 0;
- foreach (var item in itemModels)
- {
- if (ItemLogicUtility.Instance.IsFightUp(item.itemId, item.score) == 1)
- {
- count += item.count;
- }
- }
- return count;
- }
-
- public void SetColorSelect(EquipColorType type)
- {
- colorType = type;
-
- if (RefreshColorSelectAct != null)
- {
- RefreshColorSelectAct(type);
- }
- SendEquipDevourRecordQuest();
- EquipDecomRedCtrl();
- }
-
- public List<int> devourPlacelist { get; private set; }
- public int devourRedpointLevel { get; private set; }
- public int minDevourEquipNum { get; private set; }
- public void SetDevourEquipPlace()
- {
- devourPlacelist = new List<int>();
- FuncConfigConfig funcConfig = FuncConfigConfig.Get("PetAbsorbType");
- int[] placeArray = ConfigParse.GetMultipleStr<int>(funcConfig.Numerical1);
- for (int i = 0; i < placeArray.Length; i++)
- {
- devourPlacelist.Add(placeArray[i]);
- }
- devourRedpointLevel = int.Parse(funcConfig.Numerical2);
- minDevourEquipNum = int.Parse(funcConfig.Numerical3);
- }
-
- List<ItemModel> devourModellist = new List<ItemModel>();
- List<ItemModel> orderDevourModellist = new List<ItemModel>();
- public List<ItemModel> GetDevourModellist()
- {
- SinglePack singlePack = GetSinglePack(PackType.Item);
- if (singlePack == null) return null;
-
- devourModellist.Clear();
- orderDevourModellist.Clear();
- foreach (var model in singlePack.GetAllItems().Values)
- {
- if (model.config.Type == 29)
- {
- devourModellist.Add(model);
- }
- else
- {
- if (devourPlacelist.Contains(model.config.EquipPlace))
- {
- if (GeneralDefine.equipDecomposeScreen.Contains(model.config.ItemColor))
- {
- devourModellist.Add(model);
- }
- }
- }
-
- }
- orderDevourModellist.AddRange(devourModellist);
- orderDevourModellist.Sort(CompareByColor);
- return orderDevourModellist;
- }
-
- public int CompareByColor(ItemModel start, ItemModel next)
- {
- bool typeX = start.config.Type == 29 ? true : false;
- bool typeY = next.config.Type == 29 ? true : false;
-
- if (typeX.CompareTo(typeY) != 0) return -typeX.CompareTo(typeY);
-
- int colorX = start.config.ItemColor;
- int colorY = next.config.ItemColor;
- if (colorX.CompareTo(colorY) != 0) return colorX.CompareTo(colorY);
-
- int startIndex = devourModellist.IndexOf(start);
- int nextIndex = devourModellist.IndexOf(next);
- if (startIndex.CompareTo(nextIndex) != 0) return startIndex.CompareTo(nextIndex);
-
- return 0;
- }
-
- public List<ItemModel> GetCanDevourModellist()
- {
- List<ItemModel> canDevourModellist = new List<ItemModel>();
- SinglePack singlePack = GetSinglePack(PackType.Item);
- if (singlePack == null || colorType == EquipColorType.None)
- {
- if (RefreshEquipDecomNumAct != null)
- {
- RefreshEquipDecomNumAct();
- }
- return null;
- }
-
- foreach (var model in singlePack.GetAllItems().Values)
- {
- if (model.config.Type == 29)
- {
- if (!defaultUnSelectlist.Contains(model.itemId))
- {
- canDevourModellist.Add(model);
- }
- }
- else
- {
- if (IsCanDevour(model))
- {
- canDevourModellist.Add(model);
- }
- }
- }
-
- if (RefreshEquipDecomNumAct != null)
- {
- RefreshEquipDecomNumAct();
- }
-
- return canDevourModellist;
- }
-
- public bool IsCanDevour(ItemModel model)
- {
- // if (devourPlacelist.Contains(model.config.EquipPlace))
- // {
- // if (GeneralDefine.equipDecomposeScreen.Contains(model.config.ItemColor))
- // {
- // var eatEquipConfig = PetEatEquipConfig.GetEquipColorAndEquipClass(model.config.ItemColor, model.config.LV);
- // if (eatEquipConfig == null) return false;
-
- // if (EquipControlConfig.Get(model.config.LV, 1).realm > PlayerDatas.Instance.baseData.realmLevel)
- // {
- // //bug锛氱帺瀹舵寕鏈轰細鎵撻珮澧冪晫鎬紝瀵艰嚧瑁呭鏃犳硶鍒嗚В鑳屽寘澶弧鐨勬儏鍐�
- // //澧冪晫澶т簬鐜╁澧冪晫锛屼笖鍦ㄦ寚瀹氶鑹插搧璐ㄤ笅鐨勭洿鎺ュ垎瑙g传鑹蹭互涓嬭澶�
- // if (model.config.ItemColor <= (int)colorType && model.config.ItemColor <= 3)
- // {
- // return true;
- // }
- // }
-
- // //1. 闈炴媿鍗栬澶�
- // //2. 瑁呭鍝佽川灏忎簬绛変簬褰撳墠閫夋嫨鐨勫搧璐�
- // //3. 闈炴湰鑱屼笟鐨勫瑁呰澶�
- // //4. 闈炴垬鏂楀姏鎻愬崌鐨勮澶�
- // if (!model.isAuction && model.config.ItemColor <= (int)colorType
- // && !(ItemLogicUtility.Instance.IsJobCompatibleItem(model.itemId)
- // && model.config.ItemColor == 4 && model.config.SuiteiD != 0)
- // && ItemLogicUtility.Instance.IsFightUp(model.itemId, model.score) != 1)
- // {
- // return true;
- // }
- // }
- // }
-
- return false;
- }
-
- public bool IsMaxDecomLv(int decomLv, out int realLv)
- {
- realLv = decomLv;
- // var decomlist = EquipDeComposeConfig.GetValues();
- // if (decomLv > decomlist[decomlist.Count - 1].LV)
- // {
- // realLv = decomlist[decomlist.Count - 1].LV;
- // return true;
- // }
-
- return false;
- }
-
- public List<ItemModel> selectDevourlist = new List<ItemModel>();
- public void GetSelectDevourList()
- {
- selectDevourlist.Clear();
- List<ItemModel> itemModels = GetCanDevourModellist();
- if (itemModels != null)
- {
- selectDevourlist.AddRange(itemModels);
- }
- }
-
- public void RefreshGetNewItem(ItemModel model)
- {
- if (model == null) return;
-
- if (CheckIsReachDevourCondi(model))
- {
- selectDevourlist.Add(model);
- if (RefreshEquipDecomNumAct != null)
- {
- RefreshEquipDecomNumAct();
- }
- }
- }
-
- public void AddSelectDevourModellist(ItemModel model)
- {
- selectDevourlist.Add(model);
- if (RefreshEquipDecomNumAct != null)
- {
- RefreshEquipDecomNumAct();
- }
- }
-
- public bool CheckIsReachDevourCondi(ItemModel model)
- {
- if (model.config.Type == 29)
- {
- if (!defaultUnSelectlist.Contains(model.itemId))
- {
- return true;
- }
- return false;
- }
- else
- {
- if (IsCanDevour(model))
- {
- return true;
- }
-
- }
- return false;
- }
-
- public void RemoveSelectDevourModellist(ItemModel model)
- {
- if (selectDevourlist.Contains(model))
- {
- selectDevourlist.Remove(model);
- }
- if (RefreshEquipDecomNumAct != null)
- {
- RefreshEquipDecomNumAct();
- }
- }
-
- public Dictionary<int, int> GetDecomAttrDictByLv(int decomLv)
- {
- if (decomposeAttrDict.ContainsKey(decomLv))
- {
- return decomposeAttrDict[decomLv];
- }
-
- return null;
- }
-
- public bool IsReachMinDecomposeNum()
- {
- List<ItemModel> itemModels = GetCanDevourModellist();
- if (itemModels != null && itemModels.Count >= minDecomposeNum)
- {
- return true;
- }
- return false;
- }
-
- public void SendEquipdevourQuest(bool auto)
- {
- List<ItemModel> items = null;
- if (auto)
- {
- items = GetCanDevourModellist();
- }
- else
- {
- items = selectDevourlist;
- }
-
- // if (items == null || items.Count < minDecomposeNum || !ItemLogicUtility.Instance.isPackResetOk || SettingEffectMgr.Instance.isStartDecompose) return;
-
- // SettingEffectMgr.Instance.isStartDecompose = true;
- // isAutoDecompose = auto;
- // recordAutoDecomNum = Math.Min(items.Count, 100); //鍗曟鏈�澶�100浠跺垎瑙�
- // var package = new CA32C_tagCMEquipDecompose();
- // var indexLists = new ushort[recordAutoDecomNum];
- // var idlist = new uint[recordAutoDecomNum];
- // for (int i = 0; i < recordAutoDecomNum; i++)
- // {
- // indexLists[i] = (ushort)items[i].gridIndex;
- // idlist[i] = (uint)items[i].itemId;
- // if ((items[i].config.EquipPlace == 0 && items[i].config.Type != 29))
- // {
- // return;
- // }
- // }
- // package.Count = (byte)indexLists.Length;
- // package.IndexList = indexLists;
- // package.ItemIDList = idlist;
- // package.IsAuto = (byte)(auto ? 1 : 0);
- // GameNetSystem.Instance.SendInfo(package);
- }
-
- public void SendEquipDevourRecordQuest()
- {
- var record = StringUtility.Contact((int)colorType + 1, 1, 1);
- var decomSet = new CA32D_tagCMDecomposeSeting();
- decomSet.Seting = uint.Parse(record);
- GameNetSystem.Instance.SendInfo(decomSet);
- }
-
- public int decomposeLv { get; private set; }
- public int decomposeExp { get; private set; }
- public int decomposeProgress { get; private set; }
- public int addDecomposeExp { get; private set; }
- public int minDecomposeNum { get; private set; }
- public bool isAutoDecompose { get; set; }
- public int recordAutoDecomNum { get; private set; }
- public DecomposeGetMatInfo[] getItems { get; private set; }
-
- public event Action RefreshDecomAttrAct;
- // public void GetServerDecomposeSet(HA31C_tagMCEquipDecomposeInfo info)
- // {
- // addDecomposeExp = 0;
- // int realLv = info.LV + 1;
- // bool isMax = IsMaxDecomLv(realLv, out realLv);
- // if (realLv == decomposeLv)
- // {
- // addDecomposeExp = (int)info.Exp - decomposeExp;
- // }
- // else
- // {
- // for (int i = decomposeLv; i <= realLv; i++)
- // {
- // var deComposeConfig = EquipDeComposeConfig.Get(i);
- // if (i == decomposeLv)
- // {
- // addDecomposeExp = deComposeConfig.UpNeedExp - decomposeExp;
- // }
- // else if (i == realLv)
- // {
- // addDecomposeExp += (int)info.Exp;
- // }
- // else
- // {
- // addDecomposeExp += deComposeConfig.UpNeedExp;
- // }
- // }
- // }
-
- // decomposeLv = realLv;
- // decomposeExp = (int)info.Exp;
- // decomposeProgress = info.DecomposeCnt;
- // getItems = JsonMapper.ToObject<DecomposeGetMatInfo[]>(info.GetItemData);
-
- // if (info.Seting != 0)
- // {
- // string decomSetStr = info.Seting.ToString();
- // string colorStr = decomSetStr.Substring(0, 1);
- // colorType = (EquipColorType)(int.Parse(colorStr) - 1);
- // string lvStr = decomSetStr.Substring(1, decomSetStr.Length - 2);
- // }
- // if (RefreshDecomAttrAct != null)
- // {
- // RefreshDecomAttrAct();
- // }
- // }
- /// <summary>
- /// 璁剧疆鑾峰緱鐐间腹鏉愭枡鐨勫睍绀烘暟鎹�
- /// </summary>
- /// <param name="getMatInfos"></param>
- /// <returns></returns>
- private List<DecomposeGetMatInfo> getMatInfos = new List<DecomposeGetMatInfo>();
- public List<DecomposeGetMatInfo> SetShowMatInfo()
- {
- getMatInfos.Clear();
- int sumMatCnt = 0;
- if (getItems != null)
- {
- for (int i = 0; i < getItems.Length; i++)
- {
- if (getItems[i].Count > 0)
- {
- sumMatCnt += getItems[i].Count;
- }
- else
- {
- sumMatCnt += 1;
- }
- }
- }
-
- if (sumMatCnt > 5)
- {
- for (int i = 0; i < getItems.Length; i++)
- {
- getMatInfos.Add(getItems[i]);
- }
- }
- else
- {
- if (getItems != null)
- {
- for (int i = 0; i < getItems.Length; i++)
- {
- //if (getItems[i].Count > 0)
- //{
- // for (int j = 0; j < getItems[i].Count; j++)
- // {
- // DecomposeGetMatInfo matInfo = new DecomposeGetMatInfo();
- // matInfo.ItemID = getItems[i].ItemID;
- // matInfo.Count = 1;
- // matInfo.IsSuite = getItems[i].IsSuite;
- // matInfo.UserData = getItems[i].UserData;
- // getMatInfos.Add(matInfo);
- // }
- //}
- //else
- {
- getMatInfos.Add(getItems[i]);
- }
- }
- }
- }
- return getMatInfos;
- }
+
public enum EquipColorType
{
@@ -1673,177 +967,11 @@
Purple = 3,
Orange = 4,
Red = 5,
- //鍚庣画IL寮�鍙戞坊鍔犻璁�
- default1,
- default2,
- default3,
- default4,
- All = 10,
+
}
- public class DecomposeGetMatInfo
- {
- public int ItemID;
- public int Count;
- public int IsSuite;
- public string UserData;
- }
- #endregion
- #region 涓硅嵂閫昏緫澶勭悊
-
- // private int CompareMakeDrug(AttrFruitConfig start, AttrFruitConfig end)
- // {
- // ItemConfig configS = ItemConfig.Get(start.ID);
- // ItemConfig configE = ItemConfig.Get(end.ID);
- // if (configS.RealmLimit.CompareTo(configE.RealmLimit) != 0)
- // {
- // return configS.RealmLimit.CompareTo(configE.RealmLimit);
- // }
- // if (configS.LV.CompareTo(configE.LV) != 0)
- // {
- // return configS.LV.CompareTo(configE.LV);
- // }
-
- // int x = makeDruglist.IndexOf(start);
- // int y = makeDruglist.IndexOf(end);
- // if (x.CompareTo(y) != 0) x.CompareTo(y);
-
- // return 0;
- // }
-
- // List<AttrFruitConfig> drugOrderlist = new List<AttrFruitConfig>();
- // List<AttrFruitConfig> haveDruglist = new List<AttrFruitConfig>();
- // public List<AttrFruitConfig> GetDrugOrderByCnt()
- // {
- // drugOrderlist.Clear();
- // haveDruglist.Clear();
- // drugOrderlist.AddRange(makeDruglist);
- // drugOrderlist.Sort(CompareByIsHave);
- // for (int i = 0; i < drugOrderlist.Count; i++)
- // {
- // if (IsHaveDrugUse(drugOrderlist[i]))
- // {
- // haveDruglist.Add(drugOrderlist[i]);
- // }
- // }
- // haveDruglist.Sort(CompareMakeDrug);
- // for (int i = 0; i < haveDruglist.Count; i++)
- // {
- // drugOrderlist[i] = haveDruglist[i];
- // }
-
- // return drugOrderlist;
- // }
-
- public bool CheckIsDrugById(int itemId)
- {
- // for (int i = 0; i < makeDruglist.Count; i++)
- // {
- // if (makeDruglist[i].ID == itemId)
- // {
- // return true;
- // }
- // }
- return false;
- }
-
- // public int CompareByIsHave(AttrFruitConfig start, AttrFruitConfig end)
- // {
- // bool isHaveStart = IsHaveDrugUse(start);
- // bool isHaveEnd = IsHaveDrugUse(end);
- // if (isHaveStart.CompareTo(isHaveEnd) != 0) return -isHaveStart.CompareTo(isHaveEnd);
-
- // //isHaveStart = IsHaveDrugRecycle(start);
- // //isHaveEnd = IsHaveDrugRecycle(end);
- // //if (isHaveStart.CompareTo(isHaveEnd) != 0) return -isHaveStart.CompareTo(isHaveEnd);
-
- // isHaveStart = GetItemCountByID(PackType.Item, start.ID) > 0 ? true : false;
- // isHaveEnd = GetItemCountByID(PackType.Item, end.ID) > 0 ? true : false;
- // if (isHaveStart.CompareTo(isHaveEnd) != 0) return isHaveStart.CompareTo(isHaveEnd);
-
- // isHaveStart = IsReachMaxUseDrug(start);
- // isHaveEnd = IsReachMaxUseDrug(end);
- // if (isHaveStart.CompareTo(isHaveEnd) != 0) return isHaveStart.CompareTo(isHaveEnd);
-
- // int x = makeDruglist.IndexOf(start);
- // int y = makeDruglist.IndexOf(end);
- // if (x.CompareTo(y) != 0) return x.CompareTo(y);
- // return 0;
- // }
-
- // public bool IsHaveDrugUse(AttrFruitConfig fruitConfig)
- // {
- // if (!IsReachMaxUseDrug(fruitConfig))
- // {
- // return GetItemCountByID(PackType.Item, fruitConfig.ID) > 0 ? true : false;
- // }
-
- // return false;
- // }
-
- // public bool IsHaveDrugRecycle(AttrFruitConfig fruitConfig)
- // {
- // if (IsReachMaxUseDrug(fruitConfig))
- // {
- // return GetItemCountByID(PackType.Item, fruitConfig.ID) > 0 ? true : false;
- // }
- // return false;
- // }
-
- // public bool IsReachMaxUseDrug(AttrFruitConfig fruitConfig)
- // {
- // if (fruitConfig == null)
- // {
- // return false;
- // }
-
- // if (fruitConfig.FuncID == 2)
- // {
- // AlchemyDrugUseLimit drugUseLimit;
- // if (alchemyModel.TryGetAlchemyUseLimit(fruitConfig.ID, out drugUseLimit))
- // {
- // return drugUseLimit.IsReachLimit();
- // }
- // }
-
- // int useNum = GetItemTotalUsedTimes(fruitConfig.ID);
- // if (useNum >= fruitConfig.basicUseLimit)
- // {
- // return true;
- // }
- // return false;
- // }
- #endregion
-
- //鑾峰彇鑳屽寘涓殑涓�浠跺彲鎷嶅崠鐗╁搧 浼樺厛鍏朵粬鑱屼笟
- public string GetAuctionEquip()
- {
- var itemPackage = GetSinglePack(PackType.Item);
- var allItems = itemPackage.GetAllItems();
-
- var guid = string.Empty;
- List<string> guidList = new List<string>();
- foreach (var item in allItems.Values)
- {
- var isAuction = item.isAuction;
- if (isAuction && ItemLogicUtility.Instance.IsRealmEquip(item.itemId))
- {
- if (!ItemLogicUtility.Instance.IsJobCompatibleItem(item.itemId))
- {
- return item.guid;
- }
- else
- {
- if (guid != string.Empty)
- continue;
- guid = item.guid;
- }
- }
- }
- return guid;
- }
-
+
public void ReceiveAwardNotify(HA801_tagMCGiveAwardInfo netPack)
{
diff --git a/Main/System/KnapSack/VirtualPackManager.cs b/Main/System/KnapSack/VirtualPackManager.cs
index 9072080..a88250e 100644
--- a/Main/System/KnapSack/VirtualPackManager.cs
+++ b/Main/System/KnapSack/VirtualPackManager.cs
@@ -60,8 +60,7 @@
void ParseConfig()
{
- var funcConfig = FuncConfigConfig.Get("RunePackageNum");
- virtualPackCapacityDict.Add(PackType.RunePack, int.Parse(funcConfig.Numerical1));
+ // virtualPackCapacityDict.Add(PackType.RunePack, int.Parse(funcConfig.Numerical1));
}
public bool IsVirtualPack(PackType packType)
diff --git a/Main/System/Main/HomeWin.cs b/Main/System/Main/HomeWin.cs
new file mode 100644
index 0000000..c5f41f1
--- /dev/null
+++ b/Main/System/Main/HomeWin.cs
@@ -0,0 +1,62 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+
+/// <summary>
+/// 娓告垙涓荤晫闈�
+/// </summary>
+public class HomeWin : UIBase
+{
+ /// <summary>
+ /// 鍒濆鍖栫粍浠�
+ /// </summary>
+ protected override void InitComponent()
+ {
+ }
+
+
+
+
+ public override void Refresh()
+ {
+ UpdatePlayerInfo();
+ UpdateCurrency();
+ }
+
+ protected override void OnPreOpen()
+ {
+ Refresh();
+ }
+
+ // protected override void OnPreClose()
+ // {
+ // }
+
+ /// <summary>
+ /// 鏇存柊鐜╁淇℃伅
+ /// </summary>
+ private void UpdatePlayerInfo()
+ {
+ // 浠庣帺瀹舵暟鎹腑鑾峰彇淇℃伅骞舵洿鏂癠I
+ // 渚嬪锛�
+ // playerNameText.text = PlayerData.Instance.Name;
+ // playerLevelText.text = "Lv." + PlayerData.Instance.Level;
+ // powerText.text = PlayerData.Instance.Power.ToString();
+ // expSlider.value = PlayerData.Instance.ExpRatio;
+ }
+
+ /// <summary>
+ /// 鏇存柊璐у竵淇℃伅
+ /// </summary>
+ private void UpdateCurrency()
+ {
+ // 浠庣帺瀹舵暟鎹腑鑾峰彇璐у竵淇℃伅骞舵洿鏂癠I
+ // 渚嬪锛�
+ // goldText.text = PlayerData.Instance.Gold.ToString();
+ // diamondText.text = PlayerData.Instance.Diamond.ToString();
+ // energyText.text = PlayerData.Instance.Energy + "/" + PlayerData.Instance.MaxEnergy;
+ }
+
+
+}
\ No newline at end of file
diff --git a/Main/System/Main/HomeWin.cs.meta b/Main/System/Main/HomeWin.cs.meta
new file mode 100644
index 0000000..43b93c9
--- /dev/null
+++ b/Main/System/Main/HomeWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 428e25b7deff7474e8c611d41bbbaf7b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Main/MainWin.cs b/Main/System/Main/MainWin.cs
index 76a04cc..0db0f0f 100644
--- a/Main/System/Main/MainWin.cs
+++ b/Main/System/Main/MainWin.cs
@@ -4,16 +4,13 @@
using UnityEngine.UI;
/// <summary>
-/// 娓告垙涓荤晫闈�
+/// 娓告垙涓荤晫闈㈠簳閮ㄥ姛鑳芥寜閽�
/// </summary>
public class MainWin : UIBase
{
- public GameObject windowBackground;
-
// 搴曢儴鎸夐挳缁�
public Button[] bottomTabButtons;
- private EffectPlayer[] bottomTabEffects;
// 褰撳墠閫変腑鐨勫簳閮ㄦ爣绛剧储寮�
private int currentTabIndex = 0;
@@ -48,55 +45,25 @@
}
- protected override void OnOpen()
+ public override void Refresh()
{
- base.OnOpen();
-
+ UpdateCurrency();
+ }
+
+ protected override void OnPreOpen()
+ {
// 榛樿閫変腑绗竴涓爣绛�
SelectBottomTab(0);
// 鍒锋柊UI
Refresh();
}
-
- public override void Refresh()
- {
- UpdatePlayerInfo();
- UpdateCurrency();
- }
- protected override void OnPreOpen()
- {
- base.OnPreOpen();
- bottomTabEffects = new EffectPlayer[bottomTabButtons.Length];
- for (int i = 0; i < bottomTabButtons.Length; i++)
- {
- bottomTabEffects[i] = PlayUIEffect(1004, bottomTabButtons[i].transform, false);
- }
- }
-
- protected override void OnPreClose()
- {
- base.OnPreClose();
- foreach (var effectGO in bottomTabEffects)
- {
- DestroyImmediate(effectGO);
- }
- bottomTabEffects = null;
- }
+ // protected override void OnPreClose()
+ // {
+ // }
- /// <summary>
- /// 鏇存柊鐜╁淇℃伅
- /// </summary>
- private void UpdatePlayerInfo()
- {
- // 浠庣帺瀹舵暟鎹腑鑾峰彇淇℃伅骞舵洿鏂癠I
- // 渚嬪锛�
- // playerNameText.text = PlayerData.Instance.Name;
- // playerLevelText.text = "Lv." + PlayerData.Instance.Level;
- // powerText.text = PlayerData.Instance.Power.ToString();
- // expSlider.value = PlayerData.Instance.ExpRatio;
- }
+
/// <summary>
/// 鏇存柊璐у竵淇℃伅
@@ -115,6 +82,13 @@
/// </summary>
private void OnBottomTabButtonClicked(int index)
{
+ if (index == 0)
+ {
+ if (currentSubUI != null && currentSubUI.name == "HomeWin")
+ {
+ //鎵撳紑涓荤晫闈㈢殑鎯呭喌涓嬪啀鐐瑰嚮鎸夐挳锛屾墽琛屾敾鍑婚�昏緫
+ }
+ }
SelectBottomTab(index);
}
@@ -150,12 +124,8 @@
// 閬嶅巻鎵�鏈夋寜閽紝璁剧疆閫変腑鐘舵��
for (int i = 0; i < bottomTabButtons.Length; i++)
{
- // 杩欓噷鍙互鏍规嵁鏄惁閫変腑璁剧疆鎸夐挳鐨勮瑙夋晥鏋�
- // 渚嬪锛氭敼鍙樺浘鐗囥�侀鑹茬瓑
- // bottomTabButtons[i].GetComponent<Image>().color = (i == currentTabIndex) ? Color.blue : Color.white;
- // 鎴栬�呮縺娲�/绂佺敤閫変腑鍥炬爣
- bottomTabButtons[i].image.color = (i == currentTabIndex) ? Color.white : Color.gray;
+ // bottomTabButtons[i].image.color = (i == currentTabIndex) ? Color.white : Color.gray;
}
}
@@ -179,34 +149,29 @@
{
Debug.Log("鎵撳紑瀛愮晫闈� : " + index);
- // 涓诲煄 闃靛 鍚岀洘 绂忓埄 鍐掗櫓
- windowBackground.SetActive(index != 4);
+ // 涓诲煄 鍐呮斂 姝﹀皢 鎸戞垬 鍏細
//鏍规嵁绱㈠紩鎵撳紑涓嶅悓鐨勭晫闈�
switch (index)
{
case 0:
- // 渚嬪锛氭墦寮�涓婚〉鐣岄潰
- // currentSubUI = UIManager.Instance.OpenUI<HomeUI>();
+ // 鎵撳紑涓婚〉鐣岄潰
+ currentSubUI = UIManager.Instance.OpenWindow<HomeWin>();
Debug.Log("鎵撳紑涓诲煄鐣岄潰");
break;
case 1:
- // 渚嬪锛氭墦寮�瑙掕壊鐣岄潰
// currentSubUI = UIManager.Instance.OpenUI<CharacterUI>();
Debug.Log("鎵撳紑闃靛鐣岄潰");
break;
case 2:
- // 渚嬪锛氭墦寮�鑳屽寘鐣岄潰
// currentSubUI = UIManager.Instance.OpenUI<BagUI>();
Debug.Log("鎵撳紑鍚岀洘鐣岄潰");
break;
case 3:
- // 渚嬪锛氭墦寮�浠诲姟鐣岄潰
// currentSubUI = UIManager.Instance.OpenUI<QuestUI>();
Debug.Log("鎵撳紑绂忓埄鐣岄潰");
break;
case 4:
- // 渚嬪锛氭墦寮�璁剧疆鐣岄潰
- currentSubUI = UIManager.Instance.OpenWindow<PlaceWin>();
+ //currentSubUI = UIManager.Instance.OpenWindow<PlaceWin>();
Debug.Log("鎵撳紑鍐掗櫓鐣岄潰");
break;
default:
diff --git a/Main/System/MainInterfacePanel.meta b/Main/System/MainInterfacePanel.meta
deleted file mode 100644
index 6591dbf..0000000
--- a/Main/System/MainInterfacePanel.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 4cf9daf7c9fbaf94ea5af5b13a70c217
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Main/System/MainInterfacePanel/MainRedDot.cs b/Main/System/MainInterfacePanel/MainRedDot.cs
deleted file mode 100644
index 0aecf9f..0000000
--- a/Main/System/MainInterfacePanel/MainRedDot.cs
+++ /dev/null
@@ -1,226 +0,0 @@
-锘�//--------------------------------------------------------
-// [Author]: 绗簩涓栫晫
-// [ Date ]: Thursday, November 16, 2017
-//--------------------------------------------------------
-using UnityEngine;
-using System.Collections;
-using UnityEngine.UI;
-using System.Collections.Generic;
-using System;
-
-
- public class MainRedDot : Singleton<MainRedDot>
- {
- public const int RedPoint_key = 1;
- public const int FAIRY_REDPOINT_KEY1 = 107;
- public const int RedPoint_key1 = 106;
- public const int RedPoint_UpFuncBase = 2;
- public const int RedPoint_VipDot = 35;//VIP鐣岄潰
- public const int RedPoint_Share = 66; //sdk鍒嗕韩绛�
-
- private Redpoint rightTopRedpint = new Redpoint(RedPoint_UpFuncBase);
-
- private Redpoint redPointStrePrentOne = new Redpoint(RedPoint_key);
- private Redpoint redPointStrePrent = new Redpoint(RedPoint_key, RedPoint_key1);
- private Redpoint welfareRedPoint = new Redpoint(201);
- private Redpoint realmRedpoint = new Redpoint(114);
- private Redpoint redPointVipDot = new Redpoint(RedPoint_VipDot);
-
- public Redpoint rankActRepoint = new Redpoint(RankActRepoint);
-
- #region 瑙掕壊绾㈢偣
- public Redpoint roleRedpoint = new Redpoint(RedPoint_key, 101);
- public Redpoint roleTagRedpoint = new Redpoint(101, 10101);
- #endregion
-
- //public Redpoint jadeDynastyRedpoint = new Redpoint(1, 117);
-
- #region 閭欢绾㈢偣
- public const int RedPoint_MainMailKey = 24;
- public const int RedPoint_MailFuncKey = 2401;
- public Redpoint redpointMainMail = new Redpoint(RedPoint_MainMailKey);
- public Redpoint redpointMailFunc = new Redpoint(RedPoint_MainMailKey, RedPoint_MailFuncKey);
- #endregion
-
- #region 濂藉弸绾㈢偣
- public const int RedPoint_FriendQuestKey = 26;
- public const int RedPoint_FriendChatKey = 25; //濂藉弸
- public Redpoint redpointFriendQuest = new Redpoint(RedPoint_FriendQuestKey);
- public Redpoint redPointFriendChat = new Redpoint(RedPoint_FriendChatKey);
- #endregion
-
- #region 鑳屽寘绾㈢偣
- public const int RedPoint_MainPackKey = 102;
- public const int RedPoint_BagFuncKey = 10201;
- public const int RedPoint_DepotFuncKey = 10204;
- public Redpoint redPointMainPack = new Redpoint(RedPoint_MainPackKey);
- public Redpoint redPointBagFunc = new Redpoint(RedPoint_MainPackKey, RedPoint_BagFuncKey);
- public Redpoint redPointDepotFunc = new Redpoint(RedPoint_MainPackKey, RedPoint_DepotFuncKey);
- #endregion
-
- #region 娲楃偧绾㈢偣
- public const int RedPoint_WashFuncKey = 10605;
- public Redpoint redPointWashFunc = new Redpoint(RedPoint_key1, RedPoint_WashFuncKey);
- #endregion
-
- #region 濂楄绾㈢偣
- public const int RedPoint_SuitFuncKey = 10604;
- public Redpoint redPointSuitFunc = new Redpoint(RedPoint_key1, RedPoint_SuitFuncKey);
- #endregion
-
- #region 浠欑洘鍏敤绾㈢偣
- public const int FAIRY_REDPOINT_KEY2 = 10701;
- public Redpoint fairyLaunch = new Redpoint(RedPoint_key, FAIRY_REDPOINT_KEY1);
- public Redpoint fairyBaseFuncRedPoint = new Redpoint(FAIRY_REDPOINT_KEY1, FAIRY_REDPOINT_KEY2);
- #endregion
-
- #region 浠欑洘娲昏穬绾㈢偣
- public const int FAIRYLiven_REDPOINT_KEY3 = 1070107;
- public Redpoint fairyLivenRedPoint = new Redpoint(FAIRY_REDPOINT_KEY2, FAIRYLiven_REDPOINT_KEY3);
- #endregion
-
- #region 浠欑洘鍟嗗簵绾㈢偣
- public const int FAIRYStore_REDPOINT_KEY3 = 1070106;
- public Redpoint fairyStoreRedPoint = new Redpoint(FAIRY_REDPOINT_KEY2, FAIRYStore_REDPOINT_KEY3);
- #endregion
-
-
- #region 鍧愰獞绾㈢偣/鐏靛疇绾㈢偣
-
- public const int RedPoint_PetKey = 105;
- public Redpoint redPointPetKeyFunc = new Redpoint(RedPoint_key, RedPoint_PetKey);
- public const int RedPoint_MountPackKey = 10501;
- public Redpoint redPointMountFunc = new Redpoint(RedPoint_PetKey, RedPoint_MountPackKey);
- public const int RedPoint_PetKey2 = 10502;
- public Redpoint redPonintPetFunc2 = new Redpoint(RedPoint_PetKey, RedPoint_PetKey2);
- #endregion
-
- #region 寮�鏈嶆椿鍔ㄧ孩鐐�
- public const int REDPOINT_OPENSERVER = 209;
- public Redpoint openServerRedpoint = new Redpoint(REDPOINT_OPENSERVER);
-
- //280 寮�澶寸敤浜庤妭鏃ョ绂�
- public const int RedPoint_HolidayWishes = 280;
- public Redpoint holidayWishesRedpoint = new Redpoint(RedPoint_HolidayWishes);
-
- #endregion
- public const int REDPOINT_OPENRANK = 258;
- public Redpoint openRankRedpoint = new Redpoint(REDPOINT_OPENRANK);
- #region 浠欑洘娲诲姩绾㈢偣
- public readonly Redpoint fairyActivityRedpoint = new Redpoint(218);
- #endregion
-
- //IL绾㈢偣 浠�400寮�濮嬩娇鐢紝鍗曠孩鐐癸紙400-599锛夊敖閲忔寜椤哄簭鎺�
- public static int jpbnRedPoint = 401; //鏋佸搧鐧芥嬁
- public static int zxthRedPoint = 402; //鍦ㄧ嚎鐗规儬
- public static int gntqRedPoint = 403; //鍔熻兘鐗规潈鍗�
- public static int hfhdRedPoint = 406; //鍚堟湇娲诲姩
- public static int faqiRedPoint = 408; //淇偧锛堟硶鍣級绾㈢偣
- public static int wfqzRedPoint = 409; //鐜╂硶鍓嶇灮
- public static int QYRedPoint = 410; //鎯呯紭
- public static int SugarRedPoint = 411; //鍠滅硸
- public static int CharmRedPoint = 412; //鎻愬崌榄呭姏
- public static int XYYGRedPoint = 413; //骞歌繍浜戣喘
- public static int GSCJRedPoint = 416; //鍙ょ鎴愬氨
- public static int TTLRedPoint = 418; //閫氬ぉ浠�
- public static int TDLBRedPoint = 421; //澶╁笣绀煎寘
- public static int CrossServerQualifyingRedPoint = 423; //璺ㄦ湇锛堜竾鐣岋級浜夐湼
- public static int cbgRedpoint = 428; //钘忓疂闃佺孩鐐�
- public static int achievementRedpoint = 431; //鎴愬氨绾㈢偣
- public static int buy1Free5Redpoint = 433; //涔�1閫�5绾㈢偣
- public static int RechargeGenerousGiftWinRedpoint = 434; //鍏呭�艰豹绀煎叆鍙�
- public static int LvZhanlingRedpoint = 435; //绛夌骇鎴樹护鍏ュ彛绾㈢偣
- public static int RealmLvZhanlingRedpoint = 436; //澧冪晫鎴樹护鍏ュ彛绾㈢偣
- public static int CelestialStarTowerRedpoint = 437; //澶╂槦濉旀垬浠ゅ叆鍙g孩鐐�
- public static int GuBaoTotalStarsRedpoint = 438; //鍙ゅ疂鎴樹护鍏ュ彛绾㈢偣
- public static int DailySpecialsRedpoint = 439; //姣忔棩鐗规儬鍏ュ彛绾㈢偣
- public static int CZBMRedpoint = 440; //鎴愰暱蹇呬拱鍏ュ彛绾㈢偣
-
- // boss棣栨潃
- public const int REDPOINT_BOSSFIRSTKILL = 600;
- public const int ForeverCardRedPoint = 441; //缁堣韩鍗$孩鐐�
- public const int BossTrialRepoint = 442; //boss鍑瘉
- public const int NewDayActionRedPoint = 443; //鏃ユ湡鍨嬶紙绫昏妭鏃ワ級娲诲姩
-
- public static int BlessedLandRedpoint = 444; //绂忓湴绾㈢偣
- public const int FuyuanSumRechargeRedpoint = 445; //绂忕紭- 绱厖
- public const int OnHookRedpoint = 446; //鎸傛満
- public const int RedPoint_FamilyRecharge = 447; //浠欑洘鍏呭�煎崗鍔�
- public const int CustomizedGiftRedpoint = 448; //鑷�夌ぜ鍖�
- public const int LoginZhanLingRedpoint = 449; //鐧诲綍鎴樹护
- public const int GatheringSoulZhanLingRedpoint = 450; //鑱氶瓊鎴樹护
- public const int TreasureLuckyDrawRedpoint = 451; //鍙ゅ疂鎶藉
- public const int MjxbRedpoint = 452; //绉樺瀵诲疂
- public const int CrossServerGodBattleFieldAssort = 453; //鍙ょ鎴樺満缁勯槦
- public const int GatherSourRedpointEnter = 454; //鑱氶瓊鍏ュ彛绾㈢偣
- public const int QCTrainActRedpoint = 455; //楠戝疇鍏绘垚娲诲姩
- public const int RankActRepoint = 456; //鎺掕姒滄椿鍔ㄧ殑涓粙绾㈢偣
- public const int TreasurePavilionRankActRepoint = 457; //鍙ゅ疂鍏绘垚鎺掕姒滄椿鍔�
- public const int CelestialPalaceRepoint = 458; //浠欏
- public const int PhantasmPavilionRepoint = 459; //骞诲闃�
- public const int PhantasmPavilionZhanLingRepoint = 460; //骞诲鎴樹护
- public const int FairyAffinityRepoint = 461; //浠欑紭
- public const int FairyEmbleManageRepoint = 462;//浠欑洘寰界珷绠$悊鍏ュ彛绾㈢偣
- public const int CycleHallRepoint = 463; //杞洖娈�
- public const int YunShiRepoint = 464; //杩愬娍
- public const int LianQiRepoint = 465; //浠欏尃澶т細
- public const int FairySiegeRepoint = 466; //浠欑洘鏀诲煄鎴�
- public const int MailRepoint = 467; //閭
- public const int RedPoint_MR648 = 900; // BT鍔熻兘绾㈢偣 - 姣忔棩648
-
-
-
- public void Register()
- {
- RedpointCenter.Instance.redpointValueChangeEvent -= OnRedpointChange;
- RedpointCenter.Instance.redpointValueChangeEvent += OnRedpointChange;
- }
-
- public List<int> rightTopHideRedpoints = new List<int>()
- {
- 203,
- 209,
- 210,
- 212,
- 213,
- 214,
- 216,
- 280,
- 401,
- 402,
- 403,
- 406,
- 413,
- 421,
- 423,
- 433,
- 434,
- 443,
- 452,
- 500,
- 900,
- };
-
- private void OnRedpointChange(int id)
- {
- if (rightTopHideRedpoints.Contains(id))
- {
- var redpiontState = RedPointState.None;
- for (int i = 0; i < rightTopHideRedpoints.Count; i++)
- {
- var redpointId = rightTopHideRedpoints[i];
- if (RedpointCenter.Instance.GetRedpointState(redpointId) != RedPointState.None)
- {
- redpiontState = RedPointState.Simple;
- break;
- }
- }
-
- rightTopRedpint.state = redpiontState;
- }
- }
-
- }
-
-
-
diff --git a/Main/System/Message/SysNotifyMgr.cs b/Main/System/Message/SysNotifyMgr.cs
index 849ff29..414ed80 100644
--- a/Main/System/Message/SysNotifyMgr.cs
+++ b/Main/System/Message/SysNotifyMgr.cs
@@ -72,7 +72,6 @@
ServerTipDetails.ClearHint();
}
- // // TODO YYL
public void ReceiveNotifyCode(H0212_tagNotifyCode vNetData)
{
if (vNetData != null)
diff --git a/Main/System/OpenServerActivity/OpenServerActivityCenter.cs b/Main/System/OpenServerActivity/OpenServerActivityCenter.cs
index 8abb28f..3f7cf55 100644
--- a/Main/System/OpenServerActivity/OpenServerActivityCenter.cs
+++ b/Main/System/OpenServerActivity/OpenServerActivityCenter.cs
@@ -133,22 +133,22 @@
//AT_Activity2 鏃ユ湡鍨嬫椿鍔�-榛樿璁捐閮芥槸鍚屼竴涓叆鍙o紝鏍规嵁娲诲姩鏇挎崲鍥炬爣鍜屽悕绉帮紝鎵撳紑涓嶅悓鐣岄潰
public NewDayActivityInfo GetNewDayActionEnterInfo()
{
- if (IsActivityOpen((int)NewDayActivityID.BossTrial, (int)ActivityType.AT_Activity2))
- {
- return new NewDayActivityInfo() { activityID = (int)NewDayActivityID.BossTrial, redpointID = MainRedDot.BossTrialRepoint, winName = "BossTrialActWin" };
- }
- else if (IsActivityOpen((int)NewDayActivityID.SecretPlaceXB, (int)ActivityType.AT_Activity2))
- {
- return new NewDayActivityInfo() { activityID = (int)NewDayActivityID.SecretPlaceXB, redpointID = MainRedDot.MjxbRedpoint, winName = "SecretPlaceActWin" };
- }
- else if (IsActivityOpen((int)NewDayActivityID.PetHorseAct, (int)ActivityType.AT_Activity2))
- {
- return new NewDayActivityInfo() { activityID = (int)NewDayActivityID.PetHorseAct, redpointID = MainRedDot.QCTrainActRedpoint, winName = "PetHorseActWin" };
- }
- else if (IsActivityOpen((int)NewDayActivityID.TreasurePavilionAct, (int)ActivityType.AT_Activity2))
- {
- return new NewDayActivityInfo() { activityID = (int)NewDayActivityID.TreasurePavilionAct, redpointID = MainRedDot.TreasurePavilionRankActRepoint, winName = "TreasurePavilionRankActWin" };
- }
+ // if (IsActivityOpen((int)NewDayActivityID.BossTrial, (int)ActivityType.AT_Activity2))
+ // {
+ // return new NewDayActivityInfo() { activityID = (int)NewDayActivityID.BossTrial, redpointID = MainRedDot.BossTrialRepoint, winName = "BossTrialActWin" };
+ // }
+ // else if (IsActivityOpen((int)NewDayActivityID.SecretPlaceXB, (int)ActivityType.AT_Activity2))
+ // {
+ // return new NewDayActivityInfo() { activityID = (int)NewDayActivityID.SecretPlaceXB, redpointID = MainRedDot.MjxbRedpoint, winName = "SecretPlaceActWin" };
+ // }
+ // else if (IsActivityOpen((int)NewDayActivityID.PetHorseAct, (int)ActivityType.AT_Activity2))
+ // {
+ // return new NewDayActivityInfo() { activityID = (int)NewDayActivityID.PetHorseAct, redpointID = MainRedDot.QCTrainActRedpoint, winName = "PetHorseActWin" };
+ // }
+ // else if (IsActivityOpen((int)NewDayActivityID.TreasurePavilionAct, (int)ActivityType.AT_Activity2))
+ // {
+ // return new NewDayActivityInfo() { activityID = (int)NewDayActivityID.TreasurePavilionAct, redpointID = MainRedDot.TreasurePavilionRankActRepoint, winName = "TreasurePavilionRankActWin" };
+ // }
return new NewDayActivityInfo() { activityID = 0 };
}
diff --git a/Main/System/PhantasmPavilion.meta b/Main/System/PhantasmPavilion.meta
new file mode 100644
index 0000000..f025c0d
--- /dev/null
+++ b/Main/System/PhantasmPavilion.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7cf953fa805a45343b556c89fa68bbdb
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/PhantasmPavilion/AvatarCell.cs b/Main/System/PhantasmPavilion/AvatarCell.cs
new file mode 100644
index 0000000..f10574b
--- /dev/null
+++ b/Main/System/PhantasmPavilion/AvatarCell.cs
@@ -0,0 +1,255 @@
+using System.Collections.Generic;
+using UnityEngine;
+
+public class AvatarCell : MonoBehaviour
+{
+ public float scale = 1.0f;
+
+ ImageEx m_BgImage;
+ public ImageEx bgImage
+ {
+ get
+ {
+ if (m_BgImage == null)
+ {
+ LoadPrefab();
+ m_BgImage = this.GetComponent<ImageEx>("AvatarCell/Img_BG");
+ }
+ return m_BgImage;
+ }
+ }
+
+ ImageEx m_AvatarImage;
+ public ImageEx avatarImage
+ {
+ get
+ {
+ if (m_AvatarImage == null)
+ {
+ LoadPrefab();
+ m_AvatarImage = this.GetComponent<ImageEx>("AvatarCell/Img_Avatar");
+ }
+ return m_AvatarImage;
+ }
+ }
+
+ ImageEx m_AvatarFrameImage;
+ public ImageEx avatarFrameImage
+ {
+ get
+ {
+ if (m_AvatarFrameImage == null)
+ {
+ LoadPrefab();
+ m_AvatarFrameImage = this.GetComponent<ImageEx>("AvatarCell/Img_AvatarFrame");
+ }
+ return m_AvatarFrameImage;
+ }
+ }
+
+ ButtonEx m_button;
+ public ButtonEx button
+ {
+ get
+ {
+ if (m_button == null)
+ {
+ LoadPrefab();
+ m_button = this.GetComponent<ButtonEx>("AvatarCell/Img_AvatarFrame");
+ }
+ return m_button;
+ }
+ }
+
+ UIFrame m_AvatarUIFrame;
+ public UIFrame avatarUIFrame
+ {
+ get
+ {
+ if (m_AvatarUIFrame == null)
+ {
+ LoadPrefab();
+ m_AvatarUIFrame = this.GetComponent<UIFrame>("AvatarCell/Img_Avatar");
+ }
+ return m_AvatarUIFrame;
+ }
+ }
+
+ UIFrame m_AvatarFrameUIFrame;
+ public UIFrame avatarFrameUIFrame
+ {
+ get
+ {
+ if (m_AvatarFrameUIFrame == null)
+ {
+ LoadPrefab();
+ m_AvatarFrameUIFrame = this.GetComponent<UIFrame>("AvatarCell/Img_AvatarFrame");
+ }
+ return m_AvatarFrameUIFrame;
+ }
+ }
+
+ UIEffect m_AvatarUIEffect;
+ public UIEffect avatarUIEffect
+ {
+ get
+ {
+ if (m_AvatarUIEffect == null)
+ {
+ LoadPrefab();
+ m_AvatarUIEffect = this.GetComponent<UIEffect>("AvatarCell/Img_Avatar");
+ }
+ return m_AvatarUIEffect;
+ }
+ }
+
+ UIEffect m_AvatarFrameUIEffect;
+ public UIEffect avatarFrameUIEffect
+ {
+ get
+ {
+ if (m_AvatarFrameUIEffect == null)
+ {
+ LoadPrefab();
+ m_AvatarFrameUIEffect = this.GetComponent<UIEffect>("AvatarCell/Img_AvatarFrame");
+ }
+ return m_AvatarFrameUIEffect;
+ }
+ }
+
+ GameObject prefab;
+
+
+ protected void LoadPrefab()
+ {
+ var tmp = transform.Find("AvatarCell");
+
+ if (tmp != null)
+ {
+ prefab = tmp.gameObject;
+ return;
+ }
+ if (prefab == null)
+ {
+ prefab = UIUtility.CreateWidget("AvatarCell", "AvatarCell");
+
+ if (prefab != null)
+ {
+ prefab.transform.SetParentEx(this.transform, Vector3.zero, Quaternion.identity, Vector3.one);
+ prefab.transform.SetAsFirstSibling();
+
+ RectTransform prefabRect = prefab.GetComponent<RectTransform>();
+ RectTransform parentRect = GetComponent<RectTransform>();
+ if (prefabRect != null && parentRect != null)
+ {
+ prefabRect.anchorMin = new Vector2(0.5f, 0.5f);
+ prefabRect.anchorMax = new Vector2(0.5f, 0.5f);
+ prefabRect.sizeDelta = new Vector2(parentRect.rect.width, parentRect.rect.height);
+ prefabRect.localScale = new Vector3(scale, scale, scale);
+ }
+ }
+ }
+ }
+
+ public void InitUI(AvatarModel model)
+ {
+ if (model == null)
+ return;
+ string img = AvatarHelper.GetAvatarBgColorStr(model.avatarID);
+ bgImage.SetSprite(img);
+ InitUI(model.avatarID, model.avatarUIEffectID, model.avatarFrameID, model.avatarFrameUIEffectID);
+ }
+
+ private void InitUI(int avatarID, int avatarUIEffectID, int avatarFrameID, int avatarFrameUIEffectID)
+ {
+ InitAvatarUI(avatarID, avatarUIEffectID);
+ InitAvatarFrameUI(avatarFrameID, avatarFrameUIEffectID);
+ }
+
+ private void InitAvatarUI(int avatarID, int avatarUIEffectID)
+ {
+ avatarUIEffect.Stop();
+ avatarUIFrame.enabled = false;
+ if (!PlayerFaceConfig.HasKey(avatarID))
+ return;
+
+ PlayerFaceConfig config = PlayerFaceConfig.Get(avatarID);
+ string imgStr = config.Image;
+ if (UIFrameMgr.Inst.ContainsDynamicImage(imgStr))
+ {
+ avatarUIFrame.ResetFrame(imgStr);
+
+ List<UnityEngine.Sprite> spriteList = UIFrameMgr.Inst.GetDynamicImage(imgStr);
+ if (!spriteList.IsNullOrEmpty())
+ {
+ avatarImage.rectTransform.sizeDelta = new Vector2(spriteList[0].rect.width, spriteList[0].rect.height);
+ }
+
+ avatarUIFrame.enabled = true;
+ }
+ else
+ {
+ avatarImage.SetSprite(imgStr);
+ avatarImage.SetNativeSize();
+ avatarUIFrame.enabled = false;
+ }
+
+ if (!EffectConfig.HasKey(avatarUIEffectID))
+ return;
+ avatarUIEffect.effect = avatarUIEffectID;
+ avatarUIEffect.loop = true;
+ avatarUIEffect.Play();
+ }
+
+ private void InitAvatarFrameUI(int avatarFrameID, int avatarFrameUIEffectID)
+ {
+ avatarFrameUIEffect.Stop();
+ avatarFrameUIFrame.enabled = false;
+ if (!PlayerFacePicConfig.HasKey(avatarFrameID))
+ return;
+
+ PlayerFacePicConfig config = PlayerFacePicConfig.Get(avatarFrameID);
+ string imgStr = config.Image;
+ if (UIFrameMgr.Inst.ContainsDynamicImage(imgStr))
+ {
+ avatarFrameUIFrame.ResetFrame(imgStr);
+
+ List<UnityEngine.Sprite> spriteList = UIFrameMgr.Inst.GetDynamicImage(imgStr);
+ if (!spriteList.IsNullOrEmpty())
+ {
+ avatarFrameImage.rectTransform.sizeDelta = new Vector2(spriteList[0].rect.width, spriteList[0].rect.height);
+ }
+
+ avatarFrameUIFrame.enabled = true;
+ }
+ else
+ {
+ avatarFrameImage.SetSprite(imgStr);
+ avatarFrameImage.SetNativeSize();
+ avatarFrameUIFrame.enabled = false;
+ }
+
+ if (!EffectConfig.HasKey(avatarFrameUIEffectID))
+ return;
+ avatarUIEffect.effect = avatarFrameUIEffectID;
+ avatarUIEffect.loop = true;
+ avatarUIEffect.Play();
+ }
+}
+
+public class AvatarModel
+{
+ public int avatarID { get; private set; }
+ public int avatarFrameID { get; private set; }
+ public int avatarUIEffectID { get; private set; }
+ public int avatarFrameUIEffectID { get; private set; }
+ public float scale { get; private set; }
+
+ public AvatarModel(int avatarID, int avatarFrameID, int avatarUIEffectID = 0, int avatarFrameUIEffectID = 0)
+ {
+ this.avatarID = avatarID;
+ this.avatarFrameID = avatarFrameID;
+ this.avatarUIEffectID = avatarUIEffectID;
+ this.avatarFrameUIEffectID = avatarFrameUIEffectID;
+ }
+}
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/AvatarCell.cs.meta b/Main/System/PhantasmPavilion/AvatarCell.cs.meta
new file mode 100644
index 0000000..21fb257
--- /dev/null
+++ b/Main/System/PhantasmPavilion/AvatarCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 10e0c2965f0f23249b69c5a19f2e235b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/PhantasmPavilion/AvatarHelper.cs b/Main/System/PhantasmPavilion/AvatarHelper.cs
new file mode 100644
index 0000000..bafbb2a
--- /dev/null
+++ b/Main/System/PhantasmPavilion/AvatarHelper.cs
@@ -0,0 +1,119 @@
+public static class AvatarHelper
+{
+
+ public static AvatarModel GetAvatarModel(int playerId, int face, int facePic, int job = 0)
+ {
+ bool isMyself = playerId == PlayerDatas.Instance.PlayerId;
+ return isMyself ? GetMyAvatarModel() : GetOtherAvatarModel(face, facePic, job);
+ }
+
+ //鑾峰彇澶村儚淇℃伅锛堝鏋滆〃涓笉瀛樺湪锛岃繑鍥為粯璁ょ殑锛�
+ public static AvatarModel GetOtherAvatarModel(int face, int facePic, int job = 0)
+ {
+ int nowFace = GetOtherAvatarID(face, job);
+ int nowfacePic = GetOtherAvatarFrameID(facePic, job);
+ int faceEffectID = GetAvatarEffectID(nowFace);
+ int facePicEffectID = GetAvatarFrameDefaultID(nowfacePic);
+ return new AvatarModel(nowFace, nowfacePic, faceEffectID, facePicEffectID);
+ }
+
+ //鑾峰彇鎴戠殑澶村儚淇℃伅锛堝鏋滆〃涓笉瀛樺湪 鎴� 宸茶繃鏈燂紝杩斿洖榛樿鐨勶級
+ public static AvatarModel GetMyAvatarModel()
+ {
+ int nowFace = GetMyAvatarID();
+ int nowfacePic = GetMyAvatarFrameID();
+ int faceEffectID = GetAvatarEffectID(nowFace);
+ int facePicEffectID = GetAvatarFrameDefaultID(nowfacePic);
+ return new AvatarModel(nowFace, nowfacePic, faceEffectID, facePicEffectID);
+ }
+
+ public static AvatarModel GetDefaultAvatarModel(int job = 0)
+ {
+ int nowFace = GetAvatarDefaultID(job);
+ int nowfacePic = GetAvatarFrameDefaultID(job);
+ int faceEffectID = GetAvatarEffectID(nowFace);
+ int facePicEffectID = GetAvatarFrameDefaultID(nowfacePic);
+ return new AvatarModel(nowFace, nowfacePic, faceEffectID, facePicEffectID);
+ }
+
+ public static int GetAvatarID(int playerId, int nowID, int job)
+ {
+ bool isMyself = playerId == PlayerDatas.Instance.PlayerId;
+ return isMyself ? GetMyAvatarID() : GetOtherAvatarID(nowID, job);
+ }
+
+ public static int GetAvatarFrameID(int playerId, int nowID, int job)
+ {
+ bool isMyself = playerId == PlayerDatas.Instance.PlayerId;
+ return isMyself ? GetMyAvatarFrameID() : GetOtherAvatarFrameID(nowID, job);
+ }
+
+ // 鑾峰彇鍏朵粬鐜╁澶村儚id(灏佸寘涓殑id鍦ㄨ〃涓笉瀛樺湪鏄剧ず榛樿鐨�)
+ public static int GetOtherAvatarID(int nowID, int job)
+ {
+ if (PlayerFaceConfig.HasKey(nowID))
+ return nowID;
+ return PhantasmPavilionModel.Instance.TryGetDefaultID(PhantasmPavilionTab.Avatar, job, out int defaultID) ? defaultID : 0;
+ }
+
+ public static int GetOtherAvatarFrameID(int nowID, int job)
+ {
+ if (PlayerFaceConfig.HasKey(nowID))
+ return nowID;
+ return PhantasmPavilionModel.Instance.TryGetDefaultID(PhantasmPavilionTab.AvatarFrame, job, out int defaultID) ? defaultID : 0;
+ }
+
+ //杩斿洖鐜╁澶村儚id(褰撳墠瑁呭鐨勮繃鏈熶簡鏄剧ず榛樿鐨�)
+ public static int GetMyAvatarID()
+ {
+ PhantasmPavilionModel.Instance.TryGetNowShowID(PhantasmPavilionTab.Avatar, out int defaultID);
+ return defaultID;
+ }
+
+ public static int GetMyAvatarFrameID()
+ {
+ PhantasmPavilionModel.Instance.TryGetNowShowID(PhantasmPavilionTab.AvatarFrame, out int defaultID);
+ return defaultID;
+ }
+
+ //鏍规嵁job 鐩存帴杩斿洖瀵瑰簲鐨勯粯璁ゅご鍍廼d
+ public static int GetAvatarDefaultID(int job)
+ {
+ PhantasmPavilionModel.Instance.TryGetDefaultID(PhantasmPavilionTab.Avatar, job, out int defaultID);
+ return defaultID;
+ }
+
+ public static int GetAvatarFrameDefaultID(int job)
+ {
+ PhantasmPavilionModel.Instance.TryGetDefaultID(PhantasmPavilionTab.AvatarFrame, job, out int defaultID);
+ return defaultID;
+ }
+
+ public static int GetAvatarEffectID(int id)
+ {
+ PhantasmPavilionModel.Instance.TryGetEffectID(PhantasmPavilionTab.Avatar, id, out int effectID);
+ return effectID;
+ }
+
+ public static int GetAvatarFrameEffectID(int id)
+ {
+ PhantasmPavilionModel.Instance.TryGetEffectID(PhantasmPavilionTab.AvatarFrame, id, out int effectID);
+ return effectID;
+ }
+
+ //鑾峰彇鎸囧畾澶村儚搴曞浘鍝佽川
+ public static int GetAvatarBgColor(int faceID)
+ {
+ int defaultColor = 1;//榛樿鍝佽川鏄櫧鑹�
+ if (!PlayerFaceConfig.HasKey(faceID))
+ return defaultColor;
+ return PlayerFaceConfig.Get(faceID).BgColor;
+ }
+
+ //鑾峰彇鎸囧畾澶村儚鍥剧墖鍚�
+ public static string GetAvatarBgColorStr(int faceID)
+ {
+ int bgColor = GetAvatarBgColor(faceID);
+ return StringUtility.Contact("AvatarBgColor", bgColor);
+ }
+}
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/AvatarHelper.cs.meta b/Main/System/PhantasmPavilion/AvatarHelper.cs.meta
new file mode 100644
index 0000000..e279c3e
--- /dev/null
+++ b/Main/System/PhantasmPavilion/AvatarHelper.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3cb54d39bd61368488bdd1689fbc9257
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/PhantasmPavilion/ChatBubbleHelper.cs b/Main/System/PhantasmPavilion/ChatBubbleHelper.cs
new file mode 100644
index 0000000..7beaa1e
--- /dev/null
+++ b/Main/System/PhantasmPavilion/ChatBubbleHelper.cs
@@ -0,0 +1,20 @@
+public static class ChatBubbleHelper
+{
+
+
+ public static int GetOtherChatBubbleID(int nowID)
+ {
+ return PhantasmPavilionModel.Instance.GetNowOtherChatBubbleID(nowID);
+ }
+
+ public static int GetMyChatBubbleID()
+ {
+ return PhantasmPavilionModel.Instance.GetNowChatBubbleID();
+ }
+
+ public static int GetChatBubbleDefaultID()
+ {
+ PhantasmPavilionModel.Instance.TryGetDefaultID(PhantasmPavilionTab.ChatBubble, 0, out int defaultID);
+ return defaultID;
+ }
+}
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/ChatBubbleHelper.cs.meta b/Main/System/PhantasmPavilion/ChatBubbleHelper.cs.meta
new file mode 100644
index 0000000..f254096
--- /dev/null
+++ b/Main/System/PhantasmPavilion/ChatBubbleHelper.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f54eef33aa8e30646b6700f6e03db119
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/PhantasmPavilion/IPhantasmPavilionTabHandler.cs b/Main/System/PhantasmPavilion/IPhantasmPavilionTabHandler.cs
new file mode 100644
index 0000000..9acbc7e
--- /dev/null
+++ b/Main/System/PhantasmPavilion/IPhantasmPavilionTabHandler.cs
@@ -0,0 +1,31 @@
+using System.Collections.Generic;
+
+public interface IPhantasmPavilionTabHandler
+{
+ string GetDescriptive(int id);
+
+ int GetSortNum(int id);
+
+ int GetExpireMinutes(int id);
+
+ string GetImage(int id);
+
+ string GetName(int id);
+
+ List<int> GetTableKeys();
+
+ int GetUnlockDefault(int id);
+
+ bool Has(int id);
+
+
+ void SendUsePack(int id);
+
+
+ bool TryGetEffectID(int id, out int effectID);
+
+
+ bool TryGetUnLockAttr(int id, out int[] lightAttrTypeArr, out int[] lightAttrValueArr);
+
+ bool TryGetUnLockNeedItem(int id, out int itemId, out int count);
+}
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/IPhantasmPavilionTabHandler.cs.meta b/Main/System/PhantasmPavilion/IPhantasmPavilionTabHandler.cs.meta
new file mode 100644
index 0000000..d9167aa
--- /dev/null
+++ b/Main/System/PhantasmPavilion/IPhantasmPavilionTabHandler.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 37f2ad437f021474abf3e1eaa501a86c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionAvatarFrameHandler.cs b/Main/System/PhantasmPavilion/PhantasmPavilionAvatarFrameHandler.cs
new file mode 100644
index 0000000..4950bab
--- /dev/null
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionAvatarFrameHandler.cs
@@ -0,0 +1,95 @@
+using System.Collections.Generic;
+
+public class PhantasmPavilionAvatarFrameHandler : IPhantasmPavilionTabHandler
+{
+
+ public string GetDescriptive(int id)
+ {
+ return PlayerFacePicConfig.Get(id).Descriptive;
+ }
+
+ public int GetExpireMinutes(int id)
+ {
+ return PlayerFacePicConfig.Get(id).ExpireMinutes;
+ }
+
+ public string GetImage(int id)
+ {
+ return PlayerFacePicConfig.Get(id).Image;
+ }
+
+ public string GetName(int id)
+ {
+ return PlayerFacePicConfig.Get(id).Name;
+ }
+
+ public int GetSortNum(int id)
+ {
+ return PlayerFacePicConfig.Get(id).SortNum;
+ }
+
+ public List<int> GetTableKeys()
+ {
+ return PlayerFacePicConfig.GetKeys();
+ }
+
+ public int GetUnlockDefault(int id)
+ {
+ return PlayerFacePicConfig.Get(id).UnlockDefault;
+ }
+
+ public bool Has(int id)
+ {
+ return PlayerFacePicConfig.HasKey(id);
+ }
+
+
+
+ public void SendUsePack(int id)
+ {
+ PhantasmPavilionModel.Instance.SendCB228FacePicChange(id);
+ }
+
+
+ public bool TryGetEffectID(int id, out int effectID)
+ {
+ effectID = 0;
+ if (!PlayerFacePicConfig.HasKey(id))
+ return false;
+ PlayerFacePicConfig config = PlayerFacePicConfig.Get(id);
+ if (!EffectConfig.HasKey(config.EffectID))
+ return false;
+ effectID = config.EffectID;
+ return true;
+ }
+
+
+ public bool TryGetUnLockAttr(int id, out int[] lightAttrTypeArr, out int[] lightAttrValueArr)
+ {
+ lightAttrTypeArr = new int[0];
+ lightAttrValueArr = new int[0];
+ if (!PlayerFacePicConfig.HasKey(id))
+ return false;
+ PlayerFacePicConfig config = PlayerFacePicConfig.Get(id);
+ if (config.LightAttrType.IsNullOrEmpty() || config.LightAttrValue.IsNullOrEmpty() || config.LightAttrType.Length != config.LightAttrValue.Length)
+ return false;
+ lightAttrTypeArr = config.LightAttrType;
+ lightAttrValueArr = config.LightAttrValue;
+ return true;
+ }
+
+ public bool TryGetUnLockNeedItem(int id, out int itemId, out int count)
+ {
+ itemId = 0;
+ count = 0;
+ if (!PlayerFacePicConfig.HasKey(id))
+ return false;
+ PlayerFacePicConfig config = PlayerFacePicConfig.Get(id);
+
+ if (config.UnlockNeedItemList.IsNullOrEmpty())
+ return false;
+ itemId = config.UnlockNeedItemList[0][0];
+ count = config.UnlockNeedItemList[0][1];
+ return true;
+ }
+}
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionAvatarFrameHandler.cs.meta b/Main/System/PhantasmPavilion/PhantasmPavilionAvatarFrameHandler.cs.meta
new file mode 100644
index 0000000..ba92fcd
--- /dev/null
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionAvatarFrameHandler.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 58f6eca69a5754f47ac01e67cdd1aa42
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionAvatarHandler.cs b/Main/System/PhantasmPavilion/PhantasmPavilionAvatarHandler.cs
new file mode 100644
index 0000000..d62dfbe
--- /dev/null
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionAvatarHandler.cs
@@ -0,0 +1,95 @@
+using System.Collections.Generic;
+
+public class PhantasmPavilionAvatarHandler : IPhantasmPavilionTabHandler
+{
+
+ public string GetDescriptive(int id)
+ {
+ return PlayerFaceConfig.Get(id).Descriptive;
+ }
+
+ public int GetExpireMinutes(int id)
+ {
+ return PlayerFaceConfig.Get(id).ExpireMinutes;
+ }
+
+ public string GetImage(int id)
+ {
+ return PlayerFaceConfig.Get(id).Image;
+ }
+
+ public string GetName(int id)
+ {
+ return PlayerFaceConfig.Get(id).Name;
+ }
+
+ public int GetSortNum(int id)
+ {
+ return PlayerFaceConfig.Get(id).BgColor;
+ }
+
+ public List<int> GetTableKeys()
+ {
+ return PlayerFaceConfig.GetKeys();
+ }
+
+ public int GetUnlockDefault(int id)
+ {
+ return PlayerFaceConfig.Get(id).UnlockDefault;
+ }
+
+ public bool Has(int id)
+ {
+ return PlayerFaceConfig.HasKey(id);
+ }
+
+
+ public void SendUsePack(int id)
+ {
+ PhantasmPavilionModel.Instance.SendCB226FaceChange(id);
+ }
+
+
+ public bool TryGetEffectID(int id, out int effectID)
+ {
+ effectID = 0;
+ if (!PlayerFaceConfig.HasKey(id))
+ return false;
+ PlayerFaceConfig config = PlayerFaceConfig.Get(id);
+ if (!EffectConfig.HasKey(config.EffectID))
+ return false;
+ effectID = config.EffectID;
+ return true;
+ }
+
+
+
+ public bool TryGetUnLockAttr(int id, out int[] lightAttrTypeArr, out int[] lightAttrValueArr)
+ {
+ lightAttrTypeArr = new int[0];
+ lightAttrValueArr = new int[0];
+ if (!PlayerFaceConfig.HasKey(id))
+ return false;
+ PlayerFaceConfig config = PlayerFaceConfig.Get(id);
+ if (config.LightAttrType.IsNullOrEmpty() || config.LightAttrValue.IsNullOrEmpty() || config.LightAttrType.Length != config.LightAttrValue.Length)
+ return false;
+ lightAttrTypeArr = config.LightAttrType;
+ lightAttrValueArr = config.LightAttrValue;
+ return true;
+ }
+
+ public bool TryGetUnLockNeedItem(int id, out int itemId, out int count)
+ {
+ itemId = 0;
+ count = 0;
+ if (!PlayerFaceConfig.HasKey(id))
+ return false;
+ PlayerFaceConfig config = PlayerFaceConfig.Get(id);
+
+ if (config.UnlockNeedItemList.IsNullOrEmpty())
+ return false;
+ itemId = config.UnlockNeedItemList[0][0];
+ count = config.UnlockNeedItemList[0][1];
+ return true;
+ }
+}
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionAvatarHandler.cs.meta b/Main/System/PhantasmPavilion/PhantasmPavilionAvatarHandler.cs.meta
new file mode 100644
index 0000000..68bc6dc
--- /dev/null
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionAvatarHandler.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 86b74289e945f41478304281d8fd7943
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionChatBubbleHandler.cs b/Main/System/PhantasmPavilion/PhantasmPavilionChatBubbleHandler.cs
new file mode 100644
index 0000000..8d305ff
--- /dev/null
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionChatBubbleHandler.cs
@@ -0,0 +1,90 @@
+using System.Collections.Generic;
+
+public class PhantasmPavilionChatBubbleHandler : IPhantasmPavilionTabHandler
+{
+
+
+ public string GetDescriptive(int id)
+ {
+ return ChatBubbleBoxConfig.Get(id).Descriptive;
+ }
+
+ public int GetExpireMinutes(int id)
+ {
+ return ChatBubbleBoxConfig.Get(id).ExpireMinutes;
+ }
+
+ public string GetImage(int id)
+ {
+ return ChatBubbleBoxConfig.Get(id).Icon;
+ }
+
+ public string GetName(int id)
+ {
+ return ChatBubbleBoxConfig.Get(id).Name;
+ }
+
+ public int GetSortNum(int id)
+ {
+ return ChatBubbleBoxConfig.Get(id).SortNum;
+ }
+
+ public List<int> GetTableKeys()
+ {
+ return ChatBubbleBoxConfig.GetKeys();
+ }
+
+ public int GetUnlockDefault(int id)
+ {
+ return ChatBubbleBoxConfig.Get(id).UnlockDefault;
+ }
+
+ public bool Has(int id)
+ {
+ return ChatBubbleBoxConfig.HasKey(id);
+ }
+
+
+
+ public void SendUsePack(int id)
+ {
+ PhantasmPavilionModel.Instance.SendCA230SetChatBubbleBox(id);
+ }
+
+ public bool TryGetEffectID(int id, out int effectID)
+ {
+ effectID = 0;
+ return false;
+ }
+
+
+
+ public bool TryGetUnLockAttr(int id, out int[] lightAttrTypeArr, out int[] lightAttrValueArr)
+ {
+ lightAttrTypeArr = new int[0];
+ lightAttrValueArr = new int[0];
+ if (!ChatBubbleBoxConfig.HasKey(id))
+ return false;
+ ChatBubbleBoxConfig config = ChatBubbleBoxConfig.Get(id);
+ if (config.LightAttrType.IsNullOrEmpty() || config.LightAttrValue.IsNullOrEmpty() || config.LightAttrType.Length != config.LightAttrValue.Length)
+ return false;
+ lightAttrTypeArr = config.LightAttrType;
+ lightAttrValueArr = config.LightAttrValue;
+ return true;
+ }
+
+ public bool TryGetUnLockNeedItem(int id, out int itemId, out int count)
+ {
+ itemId = 0;
+ count = 0;
+ if (!ChatBubbleBoxConfig.HasKey(id))
+ return false;
+ ChatBubbleBoxConfig config = ChatBubbleBoxConfig.Get(id);
+
+ if (config.UnlockNeedItemList.IsNullOrEmpty())
+ return false;
+ itemId = config.UnlockNeedItemList[0][0];
+ count = config.UnlockNeedItemList[0][1];
+ return true;
+ }
+}
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionChatBubbleHandler.cs.meta b/Main/System/PhantasmPavilion/PhantasmPavilionChatBubbleHandler.cs.meta
new file mode 100644
index 0000000..48d7138
--- /dev/null
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionChatBubbleHandler.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: cf722846804928a4a90fd214baeb5295
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionChatExpressionHandler.cs b/Main/System/PhantasmPavilion/PhantasmPavilionChatExpressionHandler.cs
new file mode 100644
index 0000000..fb9a723
--- /dev/null
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionChatExpressionHandler.cs
@@ -0,0 +1,91 @@
+using System.Collections.Generic;
+
+public class PhantasmPavilionChatExpressionHandler : IPhantasmPavilionTabHandler
+{
+
+ public string GetDescriptive(int id)
+ {
+ return EmojiPackConfig.Get(id).Descriptive;
+ }
+
+ public int GetExpireMinutes(int id)
+ {
+ return EmojiPackConfig.Get(id).ExpireMinutes;
+ }
+
+ public string GetImage(int id)
+ {
+ return EmojiPackConfig.Get(id).Image;
+ }
+
+ public string GetName(int id)
+ {
+ return EmojiPackConfig.Get(id).Name;
+ }
+
+ public int GetSortNum(int id)
+ {
+ return EmojiPackConfig.Get(id).SortNum;
+ }
+
+ public List<int> GetTableKeys()
+ {
+ return EmojiPackConfig.GetKeys();
+ }
+
+ public int GetUnlockDefault(int id)
+ {
+ return EmojiPackConfig.Get(id).UnlockDefault;
+ }
+
+ public bool Has(int id)
+ {
+ return EmojiPackConfig.HasKey(id);
+ }
+
+
+
+ public void SendUsePack(int id)
+ {
+ PhantasmPavilionModel.Instance.SendCA230SetChatBubbleBox(id);
+ }
+
+
+
+ public bool TryGetEffectID(int id, out int effectID)
+ {
+ effectID = 0;
+ if (!EmojiPackConfig.HasKey(id))
+ return false;
+ EmojiPackConfig config = EmojiPackConfig.Get(id);
+ if (!EffectConfig.HasKey(config.EffectID))
+ return false;
+ effectID = config.EffectID;
+ return true;
+ }
+
+
+
+
+ public bool TryGetUnLockAttr(int id, out int[] lightAttrTypeArr, out int[] lightAttrValueArr)
+ {
+ lightAttrTypeArr = new int[0];
+ lightAttrValueArr = new int[0];
+ return false;
+ }
+
+ public bool TryGetUnLockNeedItem(int id, out int itemId, out int count)
+ {
+ itemId = 0;
+ count = 0;
+ if (!EmojiPackConfig.HasKey(id))
+ return false;
+ EmojiPackConfig config = EmojiPackConfig.Get(id);
+
+ if (config.UnlockNeedItemList.IsNullOrEmpty())
+ return false;
+ itemId = config.UnlockNeedItemList[0][0];
+ count = config.UnlockNeedItemList[0][1];
+ return true;
+ }
+}
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionChatExpressionHandler.cs.meta b/Main/System/PhantasmPavilion/PhantasmPavilionChatExpressionHandler.cs.meta
new file mode 100644
index 0000000..9410d9b
--- /dev/null
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionChatExpressionHandler.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 787bf856f1279b8478b2d596060cd4d9
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionModel.cs b/Main/System/PhantasmPavilion/PhantasmPavilionModel.cs
new file mode 100644
index 0000000..89ce304
--- /dev/null
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionModel.cs
@@ -0,0 +1,893 @@
+using LitJson;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+
+public enum PhantasmPavilionTab
+{
+ Avatar, // 0 - 澶村儚
+ AvatarFrame, // 1 - 澶村儚妗�
+ ChatExpression, // 2 - 鑱婂ぉ琛ㄦ儏
+ ChatBubble // 3 - 鑱婂ぉ姘旀场
+}
+
+public class PhantasmPavilionModel : GameSystemManager<PhantasmPavilionModel>
+{
+ public readonly int MaxItemRowCount = 2; // 涓�琛屽睍绀簒涓墿鍝�
+ public readonly int MaxEmojiCount = 10;
+ public readonly int FuncId = 236;
+ private PhantasmPavilionTab m_SelectTab;
+ //褰撳墠閫変腑鐨勬爣绛鹃〉
+ public PhantasmPavilionTab selectTab
+ {
+ get { return m_SelectTab; }
+ set
+ {
+ m_SelectTab = value;
+ TabChangeEvent?.Invoke();
+ }
+ }
+
+ private int m_selectItemId;
+ public int selectItemId
+ {
+ get { return m_selectItemId; }
+ set
+ {
+ m_selectItemId = value;
+ ItemIdChangeEvent?.Invoke();
+ }
+ }
+
+ //褰撳墠閫変腑鐨勮〃鎯呭寘缁�
+
+ private int m_SelectEmojiPackID;
+ public int selectEmojiPackID
+ {
+ get { return m_SelectEmojiPackID; }
+ set
+ {
+ m_SelectEmojiPackID = value;
+ EmojiPackIDChangeEvent?.Invoke();
+ }
+ }
+
+ private Dictionary<PhantasmPavilionTab, IPhantasmPavilionTabHandler> handlers = new Dictionary<PhantasmPavilionTab, IPhantasmPavilionTabHandler>();
+ public Dictionary<PhantasmPavilionTab, Dictionary<int, PhantasmPavilionInfo>> infoDict = new Dictionary<PhantasmPavilionTab, Dictionary<int, PhantasmPavilionInfo>>();
+ public Dictionary<PhantasmPavilionTab, Dictionary<int, int>> defaultIDDict = new Dictionary<PhantasmPavilionTab, Dictionary<int, int>>();
+ public Dictionary<PhantasmPavilionTab, int> nowIDDict = new Dictionary<PhantasmPavilionTab, int>();
+
+ // 骞诲闃佸叆鍙g孩鐐� 459
+ Redpoint mainRedPoint = new Redpoint(10101, MainRedDot.PhantasmPavilionRepoint);
+
+ //鏍囩椤电孩鐐� 4591 - 4594
+ public Dictionary<PhantasmPavilionTab, Redpoint> tabRedPointDict = new Dictionary<PhantasmPavilionTab, Redpoint>();
+
+ public Dictionary<PhantasmPavilionTab, Dictionary<int, Redpoint>> itemRedPointDict = new Dictionary<PhantasmPavilionTab, Dictionary<int, Redpoint>>();
+
+ public event Action TabChangeEvent; //鍒囨崲鏍囩椤�
+ public event Action ItemIdChangeEvent; //鍒囨崲閫変腑椤�
+ public event Action EmojiPackIDChangeEvent; //鍒囨崲閫変腑椤�
+ public event Action UpdateFaceInfoEvent;
+ public event Action UpdateFacePicInfoEvent;
+ public event Action UpdateEmojiPackInfoEvent;
+ public event Action UpdateChatBubbleBoxInfoEvent;
+ public Action<string> SendChatAction;
+
+
+ public override void Init()
+ {
+ PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataRefreshEvent;
+ PackManager.Instance.refreshItemCountEvent += OnRefreshItemCountEvent;
+ GlobalTimeEvent.Instance.secondEvent += CheckRedPoint;
+ InitHandler();
+ InitTable();
+ InitRedPoint();
+ }
+
+ public override void Release()
+ {
+ PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataRefreshEvent;
+ PackManager.Instance.refreshItemCountEvent -= OnRefreshItemCountEvent;
+ GlobalTimeEvent.Instance.fiveSecondEvent -= CheckRedPoint;
+ }
+
+ private void OnRefreshItemCountEvent(PackType type, int arg2, int arg3)
+ {
+ m_CheckRedPoint = true;
+ }
+
+ bool m_CheckRedPoint = false;
+ void CheckRedPoint()
+ {
+ if (m_CheckRedPoint)
+ {
+ UpdateRedPoint();
+ m_CheckRedPoint = false;
+ }
+ }
+
+
+ public void OnBeforePlayerDataInitialize()
+ {
+ infoDict.Clear();
+ }
+
+ public void OnPlayerLoginOk()
+ {
+ selectTab = PhantasmPavilionTab.Avatar;
+ var list = ShowItemList(selectTab, out int fristIndex);
+ if (!list.IsNullOrEmpty())
+ selectItemId = fristIndex;
+
+ nowIDDict[PhantasmPavilionTab.Avatar] = PlayerDatas.Instance.baseData.face;
+ nowIDDict[PhantasmPavilionTab.AvatarFrame] = PlayerDatas.Instance.baseData.facePic;
+ nowIDDict[PhantasmPavilionTab.ChatBubble] = (int)PlayerDatas.Instance.baseData.bubbleId;
+ }
+
+ private void OnPlayerDataRefreshEvent(PlayerDataType type)
+ {
+ if (type == PlayerDataType.Face)
+ {
+ nowIDDict[PhantasmPavilionTab.Avatar] = (int)PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.Face);
+ }
+ else if (type == PlayerDataType.HairColor)
+ {
+ nowIDDict[PhantasmPavilionTab.AvatarFrame] = (int)PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.HairColor);
+ }
+ else if (type == PlayerDataType.ExAttr10)
+ {
+ nowIDDict[PhantasmPavilionTab.ChatBubble] = (int)PlayerDatas.Instance.GetPlayerDataByType(PlayerDataType.ExAttr10);
+ }
+
+ if (type == PlayerDataType.LV)
+ {
+ UpdateRedPoint();
+ }
+ }
+
+ private void InitHandler()
+ {
+ handlers = new Dictionary<PhantasmPavilionTab, IPhantasmPavilionTabHandler>();
+ handlers[PhantasmPavilionTab.Avatar] = new PhantasmPavilionAvatarHandler();
+ handlers[PhantasmPavilionTab.AvatarFrame] = new PhantasmPavilionAvatarFrameHandler();
+ handlers[PhantasmPavilionTab.ChatExpression] = new PhantasmPavilionChatExpressionHandler();
+ handlers[PhantasmPavilionTab.ChatBubble] = new PhantasmPavilionChatBubbleHandler();
+ }
+
+ private void InitTable()
+ {
+ InitDefault();
+ }
+
+ private void InitRedPoint()
+ {
+ InitTabRedPoint();
+ InitItemRedPoint(PhantasmPavilionTab.Avatar, PlayerFaceConfig.GetKeys());
+ InitItemRedPoint(PhantasmPavilionTab.AvatarFrame, PlayerFacePicConfig.GetKeys());
+ InitItemRedPoint(PhantasmPavilionTab.ChatExpression, EmojiPackConfig.GetKeys());
+ InitItemRedPoint(PhantasmPavilionTab.ChatBubble, ChatBubbleBoxConfig.GetKeys());
+ }
+
+ private void InitDefault()
+ {
+ var tabValues = Enum.GetValues(typeof(PhantasmPavilionTab));
+ for (int i = 0; i < tabValues.Length; i++)
+ {
+ PhantasmPavilionTab tab = (PhantasmPavilionTab)tabValues.GetValue(i);
+ if (!defaultIDDict.ContainsKey(tab))
+ {
+ defaultIDDict[tab] = new Dictionary<int, int>();
+ }
+ }
+
+ var config = FuncConfigConfig.Get("PhantasmPavilion");
+ var jsonData = JsonMapper.ToObject(config.Numerical1);
+ List<string> keyList = jsonData.Keys.ToList();
+ for (int i = 0; i < keyList.Count; i++)
+ {
+ int key = int.Parse(keyList[i]);
+ int value = int.Parse(jsonData[keyList[i]].ToString());
+ defaultIDDict[PhantasmPavilionTab.Avatar][key] = value;
+ }
+
+ jsonData = JsonMapper.ToObject(config.Numerical2);
+ keyList = jsonData.Keys.ToList();
+ for (int i = 0; i < keyList.Count; i++)
+ {
+ int key = int.Parse(keyList[i]);
+ int value = int.Parse(jsonData[keyList[i]].ToString());
+ defaultIDDict[PhantasmPavilionTab.AvatarFrame][key] = value;
+ }
+ //defaultIDDict[PhantasmPavilionTab.ChatExpression][0] = int.Parse(config.Numerical3);
+ defaultIDDict[PhantasmPavilionTab.ChatBubble][0] = int.Parse(config.Numerical3);
+ }
+
+ private void InitTabRedPoint()
+ {
+ var values = Enum.GetValues(typeof(PhantasmPavilionTab));
+ for (int i = 0; i < values.Length; i++)
+ {
+ PhantasmPavilionTab tab = (PhantasmPavilionTab)values.GetValue(i);
+ int id = MainRedDot.PhantasmPavilionRepoint * 10 + (int)tab + 1;
+ tabRedPointDict[tab] = new Redpoint(MainRedDot.PhantasmPavilionRepoint, id);
+ }
+ }
+
+ private void InitItemRedPoint(PhantasmPavilionTab tab, List<int> idList)
+ {
+ if (!infoDict.ContainsKey(tab))
+ itemRedPointDict[tab] = new Dictionary<int, Redpoint>();
+
+ for (int i = 0; i < idList.Count; i++)
+ {
+ int id = idList[i];
+ int baseValue = MainRedDot.PhantasmPavilionRepoint * 10 + (int)tab + 1;
+ itemRedPointDict[tab][id] = new Redpoint(baseValue, baseValue * 10000 + id);
+ }
+ }
+
+ public void UpdateRedPoint()
+ {
+ var values = Enum.GetValues(typeof(PhantasmPavilionTab));
+ for (int i = 0; i < values.Length; i++)
+ {
+ PhantasmPavilionTab key = (PhantasmPavilionTab)values.GetValue(i);
+ tabRedPointDict[key].state = RedPointState.None;
+ var keyList = itemRedPointDict[key].Keys.ToList();
+ for (int j = 0; j < keyList.Count; j++)
+ {
+ int id = keyList[j];
+ itemRedPointDict[key][id].state = RedPointState.None;
+ //鍙縺娲�
+ if (GetUnLockState(key, id) == 1)
+ {
+ itemRedPointDict[key][id].state = RedPointState.Simple;
+
+ if (selectTab != key)
+ {
+ tabRedPointDict[key].state = RedPointState.Simple;
+ }
+ }
+
+ }
+ }
+ }
+
+
+ public bool IsCustom(int faceID, out int customPlayerID)
+ {
+ customPlayerID = 0;
+ if (!PlayerFaceConfig.HasKey(faceID))
+ return false;
+ customPlayerID = PlayerFaceConfig.Get(faceID).CustomPlayerID;
+ if (customPlayerID <= 0)
+ return false;
+ return true;
+ }
+
+
+ //鑾峰彇涓嶅悓鑱屼笟瀵瑰簲鐨勯粯璁ゅ��
+ public bool TryGetDefaultID(PhantasmPavilionTab key, int job, out int defaultID)
+ {
+ defaultID = 0;
+ if (defaultIDDict == null || !defaultIDDict.TryGetValue(key, out var dict) || dict == null)
+ return false;
+ // 灏濊瘯鑾峰彇 job 瀵瑰簲鐨勫�硷紝濡傛灉娌℃湁鍒欒幏鍙� key 涓� 0 鐨勫��
+ return dict.TryGetValue(job, out defaultID) || dict.TryGetValue(0, out defaultID);
+ }
+
+ public bool TryGetNowShowID(PhantasmPavilionTab key, out int result)
+ {
+ result = 0;
+ int job = PlayerDatas.Instance.baseData.Job;
+ // 濡傛灉 nowIDDict 涓虹┖鎴栨病鏈夊綋鍓� ID锛岀洿鎺ュ皾璇曡幏鍙栭粯璁� ID
+ if (nowIDDict == null || !TryGetDefaultID(key, job, out int defaultID))
+ return false;
+
+ // 鑾峰彇褰撳墠 ID锛屽鏋滃瓨鍦ㄥ垯璧嬪�肩粰 result
+ if (nowIDDict.TryGetValue(key, out int nowID) && IsUnlock(key, nowID))
+ {
+ result = nowID;
+ }
+ else
+ {
+ result = defaultID;
+ }
+
+ return true;
+ }
+
+ public bool TryGetInfo(PhantasmPavilionTab tab, int id, out PhantasmPavilionInfo info)
+ {
+ info = new PhantasmPavilionInfo();
+ if (!Has(tab, id))
+ return false;
+ if (infoDict == null || !infoDict.TryGetValue(tab, out var tempInfoDict))
+ {
+ // 瀹氬埗鐨勯粯璁ゆ縺娲�0鏄�
+ if (IsCustom(id, out int customPlayerID))
+ {
+ if (customPlayerID == PlayerDatas.Instance.baseData.PlayerID)
+ {
+ info = new PhantasmPavilionInfo()
+ {
+ ID = id,
+ Star = 0,
+ State = true
+ };
+ return true;
+ }
+ }
+ return false;
+ }
+ if (tempInfoDict == null || !tempInfoDict.TryGetValue(id, out info))
+ {
+ // 瀹氬埗鐨勯粯璁ゆ縺娲�0鏄�
+ if (IsCustom(id, out int customPlayerID))
+ {
+ if (customPlayerID == PlayerDatas.Instance.baseData.PlayerID)
+ {
+ info = new PhantasmPavilionInfo()
+ {
+ ID = id,
+ Star = 0,
+ State = true
+ };
+ return true;
+ }
+ }
+ return false;
+ }
+ return true;
+ }
+
+
+ public List<int> ShowItemList(PhantasmPavilionTab tab, out int fristIndex)
+ {
+ fristIndex = 0;
+ if (!handlers.TryGetValue(tab, out var handler))
+ return new List<int>();
+
+ var resList = handler.GetTableKeys();
+ resList.Sort((int a, int b) => Cmp(a, b, tab));
+
+ if (tab == PhantasmPavilionTab.Avatar)
+ {
+ for (int i = resList.Count - 1; i >= 0; i--)
+ {
+ int id = resList[i];
+ int[] JobShowList = PlayerFaceConfig.Get(id).JobShowList;
+ if (JobShowList != null && !JobShowList.Contains(PlayerDatas.Instance.baseData.Job) && resList.Contains(id))
+ {
+ resList.Remove(id);
+ }
+ }
+ }
+
+ fristIndex = resList.First();
+ return resList;
+ }
+
+ public int Cmp(int a, int b, PhantasmPavilionTab tab)
+ {
+ // 鑾峰彇 a 鍜� b 鐨勮В閿佺姸鎬�
+ int stateA = GetUnLockState(tab, a);
+ int stateB = GetUnLockState(tab, b);
+
+ // 灏嗙姸鎬侀噸鏂板畾涔変负浼樺厛绾ф帓搴忔暟鍊硷細鍙縺娲� > 宸叉縺娲� > 鏈縺娲绘渶鍚�
+ int priorityA = stateA == 1 ? 0 : (stateA == 2 ? 1 : 2);
+ int priorityB = stateB == 1 ? 0 : (stateB == 2 ? 1 : 2);
+
+ if (priorityA != priorityB)
+ {
+ return priorityA.CompareTo(priorityB);
+ }
+
+ // 濡傛灉婵�娲荤姸鎬佺浉鍚岋紝姣旇緝 SortNum
+ int sortNumA = GetSortNum(tab, a);
+ int sortNumB = GetSortNum(tab, b);
+
+ if (sortNumA != sortNumB)
+ {
+ if (tab == PhantasmPavilionTab.Avatar)
+ {
+ return sortNumB.CompareTo(sortNumA);
+ }
+ else
+ {
+ return sortNumA.CompareTo(sortNumB);
+ }
+ }
+
+ return a.CompareTo(b);
+ }
+
+ ////鑾峰緱褰撳墠鐘舵�� 0 - 鏈縺娲� 1 - 鍙縺娲� 2 - 宸叉縺娲�
+ public int GetUnLockState(PhantasmPavilionTab tab, int id)
+ {
+ if (!Has(tab, id))
+ return 0;
+
+ if (IsCustom(id, out int customPlayerID))
+ {
+ if (customPlayerID == PlayerDatas.Instance.baseData.PlayerID)
+ return 2;
+ return 0;
+ }
+
+ //娌℃縺娲�
+ if (!IsUnlock(tab, id))
+ {
+ //娌℃湁濉縺娲荤墿鍝�
+ if (!TryGetUnLockNeedItem(tab, id, out int itemId, out int count))
+ return 0;
+ if (!ItemConfig.HasKey(itemId))
+ return 0;
+ ItemConfig itemConfig = ItemConfig.Get(itemId);
+ if (itemConfig.UseLV > PlayerDatas.Instance.baseData.LV)
+ return 0;
+ //婵�娲荤墿鍝佹暟閲忎笉瓒�
+ int hasCnt = PackManager.Instance.GetItemCountByID(PackType.Item, itemId);
+ if (hasCnt < count)
+ return 0;
+ return 1;
+ }
+ return 2;
+ }
+
+ //鑾峰緱灞炴�у睍绀烘牱寮忕被鍨� 0 鍔犲彿 1 绠ご false涓嶅睍绀�
+ public bool TryGetAttrShowType(PhantasmPavilionTab tab, int faceId, out int type)
+ {
+ type = 0;
+ //int unLockState = GetUnLockState(tab, faceId);// 0 - 鏈縺娲� 1 - 鍙縺娲� 2 - 宸叉縺娲�
+ // bool isHaveUnLockAttr = TryGetUnLockAttr(tab, selectItemId, out int[] lightAttrTypeArr, out int[] lightAttrValueArr);
+
+ // if (!isHaveUnLockAttr)
+ // return false;
+
+ return false;
+ }
+
+
+ #region 琛ㄦ儏鍖呮帴鍏ョ浉鍏�
+
+ public List<int> GetUnlockIDList()
+ {
+ List<int> allList = EmojiPackConfig.GetKeys();
+ List<int> result = new List<int>();
+ for (int i = 0; i < allList.Count; i++)
+ {
+ int id = allList[i];
+ if (IsUnlock(PhantasmPavilionTab.ChatExpression, id))
+ {
+ result.Add(id);
+ }
+ }
+ return result;
+ }
+
+ public List<string> GetEmojiList(int id)
+ {
+ var info = FaceConfig.GetEmojiPackList();
+ if (info == null || !info.TryGetValue(id, out var list) || list == null)
+ return new List<string>();
+ return list;
+ }
+
+ public int GetShowEmojiInfo(float itemWidth, int id, out int rowCount, out int emojiCount, out int space)
+ {
+ emojiCount = 0;
+ rowCount = 0;
+ space = 0; // 榛樿鍊�
+
+ int minSpace = 5; // 鏈�灏忛棿闅�
+ int maxSpace = 50; // 鏈�澶ч棿闅�
+ int width = Mathf.CeilToInt(itemWidth);
+
+ GetEmojiShowSize(id, out int emojiWidth, out int emojiHeight);
+ List<string> emojiList = GetEmojiList(id);
+ if (emojiList == null || emojiList.Count == 0 || emojiWidth == 0)
+ return 0;
+
+ int listCount = emojiList.Count;
+ emojiCount = Mathf.Min(MaxEmojiCount, Mathf.Min(width / emojiWidth, listCount));
+
+ if (emojiCount > 1)
+ {
+ int availableWidthForSpaces = width - (emojiCount * emojiWidth);
+ space = availableWidthForSpaces / (emojiCount - 1);
+ space = Mathf.Clamp(space, minSpace, maxSpace);
+ }
+ else
+ {
+ space = 0; // 娌℃湁绌洪棿鍙垎閰嶉棿闅旀垨鑰呴棿闅斾箣闂村彧鏈変竴涓〃鎯�
+ }
+
+ rowCount = Mathf.CeilToInt((float)listCount / emojiCount);
+ return 0;
+ }
+
+ // 鑾峰緱琛ㄦ儏鍖呬腑琛ㄦ儏鏈�澶х殑灏哄
+ public void GetEmojiShowSize(int id, out int width, out int height)
+ {
+ width = 0;
+ height = 0;
+
+ List<string> emojiList = GetEmojiList(id);
+ if (emojiList.IsNullOrEmpty())
+ return;
+
+ for (int i = 0; i < emojiList.Count; i++)
+ {
+ string imgSrc = emojiList[i];
+
+ if (UIFrameMgr.Inst.ContainsDynamicImage(imgSrc))
+ {
+ List<UnityEngine.Sprite> spriteList = UIFrameMgr.Inst.GetDynamicImage(imgSrc);
+ if (!spriteList.IsNullOrEmpty())
+ {
+ for (int j = 0; j < spriteList.Count; j++)
+ {
+ UpdateMaxSize(spriteList[j], ref width, ref height);
+ }
+ }
+ }
+ else if (IconConfig.HasKey(imgSrc))
+ {
+ UnityEngine.Sprite sprite = UILoader.LoadSprite(imgSrc);
+ UpdateMaxSize(sprite, ref width, ref height);
+ }
+ }
+ }
+
+ // 鏇存柊鏈�澶у昂瀵哥殑鏂规硶
+ private void UpdateMaxSize(UnityEngine.Sprite sprite, ref int width, ref int height)
+ {
+ float nowWidth = sprite.rect.width;
+ float nowHeight = sprite.rect.height;
+ if (width < nowWidth)
+ width = Mathf.CeilToInt(nowWidth);
+ if (height < nowHeight)
+ height = Mathf.CeilToInt(nowHeight);
+ }
+
+ #endregion
+
+ //鑾峰緱鑷繁鐨勮亰澶╂皵娉D
+ public int GetNowChatBubbleID()
+ {
+ PhantasmPavilionTab key = PhantasmPavilionTab.ChatBubble;
+ int job = 0;
+ // 灏濊瘯鑾峰彇褰撳墠 ID
+ if (nowIDDict.TryGetValue(key, out int nowID) && ChatBubbleBoxConfig.HasKey(nowID) && IsUnlock(key, nowID))
+ return nowID;
+ // 濡傛灉褰撳墠 ID 涓嶅瓨鍦ㄦ垨鏈В閿侊紝灏濊瘯鑾峰彇榛樿 ID
+ return TryGetDefaultID(key, job, out int defaultID) ? defaultID : -1;
+ }
+
+ //鑾峰緱鍏朵粬鐜╁鐨勮亰澶╂皵娉D
+ public int GetNowOtherChatBubbleID(int nowID)
+ {
+ PhantasmPavilionTab key = PhantasmPavilionTab.AvatarFrame;
+ // 灏濊瘯鑾峰彇褰撳墠 ID
+ if (ChatBubbleBoxConfig.HasKey(nowID))
+ return nowID;
+ // 濡傛灉褰撳墠 ID 涓嶅瓨鍦ㄦ垨鏈В閿侊紝灏濊瘯鑾峰彇榛樿 ID
+ return TryGetDefaultID(key, 0, out int defaultID) ? defaultID : -1;
+ }
+
+ public bool IsUnlock(PhantasmPavilionTab tab, int id)
+ {
+ if (!Has(tab, id))
+ return false;
+ int unlockDefault = GetUnlockDefault(tab, id);
+ //閰嶉粯璁ゆ縺娲荤殑 涓嶅仛鍏朵粬鍒ゅ畾鐩存帴婵�娲�
+ if (unlockDefault == 1)
+ return true;
+ // 灏佸寘涓病鏈�
+ if (!TryGetInfo(tab, id, out var info))
+ return false;
+ // 鐘舵�佹槸鏈縺娲�
+ if (!info.State)
+ return false;
+ // 鏃舵晥涓嶄负姘镐箙 涓旀椂鏁堢敤瀹�
+ if (info.EndTime > 0 && info.EndTime < TimeUtility.AllSeconds)
+ return false;
+ return true;
+ }
+
+ //鏄惁鏈夋椂鏁� true 鏈夋椂闂撮檺鍒� false 姘镐箙锛堟棤鏃堕棿闄愬埗锛�
+ public bool IsLimitTime(PhantasmPavilionTab tab, int id)
+ {
+ if (!Has(tab, id))
+ return false;
+ int unlockDefault = GetUnlockDefault(tab, id);
+ int expireMinutes = GetExpireMinutes(tab, id);
+ //娌℃壘鍒�
+ if (unlockDefault == -1 || expireMinutes == -1)
+ return false;
+ //榛樿婵�娲荤殑閮芥槸姘镐箙鐨�,娌℃湁鏃舵晥闄愬埗
+ if (unlockDefault == 1)
+ return false;
+ //鏃舵晥鍒嗛挓閰�0鐨勯兘鏄案涔呯殑,娌℃湁鏃舵晥闄愬埗
+ if (expireMinutes <= 0)
+ return false;
+ return true;
+ }
+
+
+
+ public void ShowImage(PhantasmPavilionTab tab, int id, ImageEx imgTitle)
+ {
+ if (!Has(tab, id))
+ return;
+ string image = GetImage(tab, id);
+ UIFrame frame = imgTitle.GetComponent<UIFrame>();
+ if (UIFrameMgr.Inst.ContainsDynamicImage(image))
+ {
+ if (frame == null)
+ frame = imgTitle.gameObject.AddComponent<UIFrame>();
+
+ List<UnityEngine.Sprite> spriteList = UIFrameMgr.Inst.GetDynamicImage(image);
+ if (!spriteList.IsNullOrEmpty())
+ {
+ imgTitle.rectTransform.sizeDelta = new Vector2(spriteList[0].rect.width, spriteList[0].rect.height);
+ }
+
+ imgTitle.raycastTarget = false;
+ frame.ResetFrame(image);
+ frame.enabled = true;
+ }
+ else
+ {
+ if (frame != null)
+ frame.enabled = false;
+ imgTitle.SetSprite(image);
+ imgTitle.SetNativeSize();
+ }
+ }
+
+
+
+ #region handler鐩稿叧
+
+ public bool Has(PhantasmPavilionTab tab, int id)
+ {
+ if (!handlers.TryGetValue(tab, out var handler))
+ return false;
+ return handler.Has(id);
+ }
+ public string GetDescriptive(PhantasmPavilionTab tab, int id)
+ {
+ if (!Has(tab, id))
+ return string.Empty;
+ if (!handlers.TryGetValue(tab, out var handler))
+ return string.Empty;
+ return handler.GetDescriptive(id);
+ }
+
+ public int GetSortNum(PhantasmPavilionTab tab, int id)
+ {
+ if (!Has(tab, id))
+ return 0;
+ if (!handlers.TryGetValue(tab, out var handler))
+ return 0;
+ return handler.GetSortNum(id);
+ }
+
+ public string GetName(PhantasmPavilionTab tab, int id)
+ {
+ if (!Has(tab, id))
+ return string.Empty;
+ if (!handlers.TryGetValue(tab, out var handler))
+ return string.Empty;
+ return handler.GetName(id);
+ }
+
+ public string GetImage(PhantasmPavilionTab tab, int id)
+ {
+ if (!Has(tab, id))
+ return string.Empty;
+ if (!handlers.TryGetValue(tab, out var handler))
+ return string.Empty;
+ return handler.GetImage(id);
+ }
+
+ public int GetUnlockDefault(PhantasmPavilionTab tab, int id)
+ {
+ if (!Has(tab, id))
+ return 0;
+ if (!handlers.TryGetValue(tab, out var handler))
+ return 0;
+ return handler.GetUnlockDefault(id);
+ }
+
+ public int GetExpireMinutes(PhantasmPavilionTab tab, int id)
+ {
+ if (!Has(tab, id))
+ return 0;
+ if (!handlers.TryGetValue(tab, out var handler))
+ return 0;
+ return handler.GetExpireMinutes(id);
+ }
+
+ public bool IsUsing(PhantasmPavilionTab tab, int id)
+ {
+ if (!Has(tab, id))
+ return false;
+ if (!TryGetNowShowID(tab, out int result))
+ return false;
+ return result == id;
+ }
+
+ public bool TryGetUnLockAttr(PhantasmPavilionTab tab, int id, out int[] lightAttrTypeArr, out int[] lightAttrValueArr)
+ {
+ lightAttrTypeArr = null;
+ lightAttrValueArr = null;
+ if (!Has(tab, id))
+ return false;
+ if (!handlers.TryGetValue(tab, out var handler))
+ return false;
+ return handler.TryGetUnLockAttr(id, out lightAttrTypeArr, out lightAttrValueArr);
+ }
+
+ public bool TryGetUnLockNeedItem(PhantasmPavilionTab tab, int id, out int itemId, out int count)
+ {
+ itemId = 0;
+ count = 0;
+ if (!Has(tab, id))
+ return false;
+ if (!handlers.TryGetValue(tab, out var handler))
+ return false;
+ return handler.TryGetUnLockNeedItem(id, out itemId, out count);
+ }
+
+
+
+ public bool TryGetEffectID(PhantasmPavilionTab tab, int id, out int effectID)
+ {
+ effectID = 0;
+ if (!Has(tab, id))
+ return false;
+ if (!handlers.TryGetValue(tab, out var handler))
+ return false;
+ return handler.TryGetEffectID(id, out effectID);
+ }
+
+
+
+
+ public void SendUsePack(PhantasmPavilionTab tab, int id)
+ {
+ if (!Has(tab, id))
+ return;
+ if (!handlers.TryGetValue(tab, out var handler))
+ return;
+ handler.SendUsePack(id);
+ }
+
+ #endregion
+
+ #region 鍙戝皝鍖�
+
+ public void SendCA323UnLockPack(int itemIndex, int count)
+ {
+ var pack = new CA323_tagCMUseItems();
+ pack.ItemIndex = (byte)itemIndex;
+ pack.UseCnt = (ushort)count;
+ GameNetSystem.Instance.SendInfo(pack);
+ }
+
+ public void SendCB226FaceChange(int faceId)
+ {
+ var pack = new CB226_tagCMFaceChange();
+ pack.FaceID = (uint)faceId;
+ GameNetSystem.Instance.SendInfo(pack);
+ }
+
+
+
+ public void SendCB228FacePicChange(int facePicId)
+ {
+ var pack = new CB228_tagCMFacePicChange();
+ pack.FacePicID = (uint)facePicId;
+ GameNetSystem.Instance.SendInfo(pack);
+ }
+
+
+
+ public void SendCA230SetChatBubbleBox(int id)
+ {
+ CA230_tagCMSetChatBubbleBox pak = new CA230_tagCMSetChatBubbleBox();
+ pak.BubbleBoxType = (byte)id;
+ GameNetSystem.Instance.SendInfo(pak);
+ }
+
+
+ #endregion
+
+ #region 鏀跺皝鍖�
+
+ public void UpdateFaceInfo(HB117_tagMCFaceInfo vNetData)
+ {
+ if (!infoDict.ContainsKey(PhantasmPavilionTab.Avatar))
+ infoDict[PhantasmPavilionTab.Avatar] = new Dictionary<int, PhantasmPavilionInfo>();
+ for (int i = 0; i < vNetData.FaceList.Length; i++)
+ {
+ HB117_tagMCFaceInfo.tagMCFace tagMCFaces = vNetData.FaceList[i];
+ if (!infoDict[PhantasmPavilionTab.Avatar].ContainsKey((int)tagMCFaces.FaceID))
+ infoDict[PhantasmPavilionTab.Avatar][(int)tagMCFaces.FaceID] = new PhantasmPavilionInfo();
+ infoDict[PhantasmPavilionTab.Avatar][(int)tagMCFaces.FaceID].ID = (int)tagMCFaces.FaceID;
+ infoDict[PhantasmPavilionTab.Avatar][(int)tagMCFaces.FaceID].State = tagMCFaces.State == 1;
+ infoDict[PhantasmPavilionTab.Avatar][(int)tagMCFaces.FaceID].EndTime = tagMCFaces.EndTime;
+ }
+ UpdateRedPoint();
+ UpdateFaceInfoEvent?.Invoke();
+ }
+
+ public void UpdateFacePicInfo(HB118_tagMCFacePicInfo vNetData)
+ {
+ if (!infoDict.ContainsKey(PhantasmPavilionTab.AvatarFrame))
+ infoDict[PhantasmPavilionTab.AvatarFrame] = new Dictionary<int, PhantasmPavilionInfo>();
+
+ for (int i = 0; i < vNetData.FacePicList.Length; i++)
+ {
+ HB118_tagMCFacePicInfo.tagMCFacePic tagMCFacePics = vNetData.FacePicList[i];
+ if (!infoDict[PhantasmPavilionTab.AvatarFrame].ContainsKey((int)tagMCFacePics.FacePicID))
+ infoDict[PhantasmPavilionTab.AvatarFrame][(int)tagMCFacePics.FacePicID] = new PhantasmPavilionInfo();
+ infoDict[PhantasmPavilionTab.AvatarFrame][(int)tagMCFacePics.FacePicID].ID = (int)tagMCFacePics.FacePicID;
+ infoDict[PhantasmPavilionTab.AvatarFrame][(int)tagMCFacePics.FacePicID].State = tagMCFacePics.State == 1;
+ infoDict[PhantasmPavilionTab.AvatarFrame][(int)tagMCFacePics.FacePicID].EndTime = tagMCFacePics.EndTime;
+ }
+ UpdateRedPoint();
+ UpdateFacePicInfoEvent?.Invoke();
+ }
+
+ public void UpdateEmojiPackInfo(HA721_tagMCEmojiPackInfo vNetData)
+ {
+ if (!infoDict.ContainsKey(PhantasmPavilionTab.ChatExpression))
+ infoDict[PhantasmPavilionTab.ChatExpression] = new Dictionary<int, PhantasmPavilionInfo>();
+
+ for (int i = 0; i < vNetData.EmojiPackList.Length; i++)
+ {
+ HA721_tagMCEmojiPackInfo.tagMCEmojiPack emojiPack = vNetData.EmojiPackList[i];
+ if (!infoDict[PhantasmPavilionTab.ChatExpression].ContainsKey((int)emojiPack.PackID))
+ infoDict[PhantasmPavilionTab.ChatExpression][(int)emojiPack.PackID] = new PhantasmPavilionInfo();
+ infoDict[PhantasmPavilionTab.ChatExpression][(int)emojiPack.PackID].ID = (int)emojiPack.PackID;
+ infoDict[PhantasmPavilionTab.ChatExpression][(int)emojiPack.PackID].State = emojiPack.State == 1;
+ infoDict[PhantasmPavilionTab.ChatExpression][(int)emojiPack.PackID].EndTime = emojiPack.EndTime;
+ }
+ UpdateRedPoint();
+ UpdateEmojiPackInfoEvent?.Invoke();
+ }
+
+ public void UpdateChatBubbleBoxInfo(HA717_tagMCChatBubbleBoxState vNetData)
+ {
+ if (!infoDict.ContainsKey(PhantasmPavilionTab.ChatBubble))
+ infoDict[PhantasmPavilionTab.ChatBubble] = new Dictionary<int, PhantasmPavilionInfo>();
+
+ for (int i = 0; i < vNetData.BoxList.Length; i++)
+ {
+ HA717_tagMCChatBubbleBoxState.tagMCChatBubbleBox chatBubbleBox = vNetData.BoxList[i];
+ if (!infoDict[PhantasmPavilionTab.ChatBubble].ContainsKey((int)chatBubbleBox.BoxID))
+ infoDict[PhantasmPavilionTab.ChatBubble][(int)chatBubbleBox.BoxID] = new PhantasmPavilionInfo();
+ infoDict[PhantasmPavilionTab.ChatBubble][(int)chatBubbleBox.BoxID].ID = (int)chatBubbleBox.BoxID;
+ infoDict[PhantasmPavilionTab.ChatBubble][(int)chatBubbleBox.BoxID].State = chatBubbleBox.State == 1;
+ infoDict[PhantasmPavilionTab.ChatBubble][(int)chatBubbleBox.BoxID].EndTime = chatBubbleBox.EndTime;
+ }
+ UpdateRedPoint();
+ UpdateChatBubbleBoxInfoEvent?.Invoke();
+ }
+
+ #endregion
+}
+
+public class PhantasmPavilionInfo
+{
+ public int ID; //ID
+ public bool State; //鏄惁宸叉縺娲�
+ public uint EndTime; //鍒版湡鏃堕棿鎴筹紝0涓烘案涔�
+ public int Star; //鏄熺骇
+}
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionModel.cs.meta b/Main/System/PhantasmPavilion/PhantasmPavilionModel.cs.meta
new file mode 100644
index 0000000..92b5bf0
--- /dev/null
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionModel.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 336548bbdf51c6844a76be570ae7becc
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionTabCell.cs b/Main/System/PhantasmPavilion/PhantasmPavilionTabCell.cs
new file mode 100644
index 0000000..1038192
--- /dev/null
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionTabCell.cs
@@ -0,0 +1,30 @@
+锘縰sing System;
+using UnityEngine;
+
+public class PhantasmPavilionTabCell : CellView
+{
+ [SerializeField] ButtonEx btnTab;
+ [SerializeField] TextEx txtTab;
+ [SerializeField] ImageEx imgChoose;
+ [SerializeField] RedpointBehaviour redpointBehaviour;
+ int iIndex;
+
+ public void Display(int index)
+ {
+ this.iIndex = index;
+ redpointBehaviour.redpointId = MainRedDot.PhantasmPavilionRepoint * 10 + index + 1;
+ txtTab.text = Language.Get(StringUtility.Contact("PhantasmPavilionTab", index));
+ imgChoose.SetActive(index == (int)PhantasmPavilionModel.Instance.selectTab);
+ btnTab.SetListener(OnTabClick);
+ }
+
+ private void OnTabClick()
+ {
+ if (!Enum.IsDefined(typeof(PhantasmPavilionTab), iIndex))
+ return;
+ PhantasmPavilionTab tab = (PhantasmPavilionTab)iIndex;
+ if (tab == PhantasmPavilionModel.Instance.selectTab)
+ return;
+ PhantasmPavilionModel.Instance.selectTab = tab;
+ }
+}
\ No newline at end of file
diff --git a/Main/System/PhantasmPavilion/PhantasmPavilionTabCell.cs.meta b/Main/System/PhantasmPavilion/PhantasmPavilionTabCell.cs.meta
new file mode 100644
index 0000000..9526b6b
--- /dev/null
+++ b/Main/System/PhantasmPavilion/PhantasmPavilionTabCell.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 399fb03614c78844794580ff4c8cb06f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Recharge/DailySpecialsModel.cs b/Main/System/Recharge/DailySpecialsModel.cs
new file mode 100644
index 0000000..31dc062
--- /dev/null
+++ b/Main/System/Recharge/DailySpecialsModel.cs
@@ -0,0 +1,183 @@
+锘縰sing System.Collections.Generic;
+using UnityEngine.UI;
+using System.Linq;
+using LitJson;
+using System;
+using System.Reflection;
+
+
+public class DailySpecialsModel : GameSystemManager<DailySpecialsModel>
+{
+ public uint PackBuyTime; // 鎵撳寘璐拱鐨勬椂闂存埑锛屽鏋滄湁璇ュ�硷紝浠h〃宸茬粡涓�娆℃�ф墦鍖呰喘涔颁簡锛屽彲鏍规嵁娆℃椂闂存埑绠楀嚭褰撳墠鏄鍑犲ぉ
+ public uint BuyStateToday; // 浠婃棩绀煎寘璐拱鐘舵�侊紝鎸夌ぜ鍖呯储寮曚簩杩涘埗浣嶈绠椾唬琛ㄦ槸鍚﹀凡璐拱锛屼粎闈炴墦鍖呰喘涔扮姸鎬佷笅鏈夌敤
+ public uint AwardState; // 浠婃棩绀煎寘棰嗗鐘舵�侊紝鎸夌ぜ鍖呯储寮曚簩杩涘埗浣嶈绠椾唬琛ㄦ槸鍚﹀凡棰嗗彇
+ public int maxDay; //鎬诲叡鍙互棰嗗彇鍑犲ぉ
+ public int giftLvRestrict; //绀煎寘绛夌骇闄愬埗
+
+ public Dictionary<int, List<List<int>>> giftInfoDict = new Dictionary<int, List<List<int>>>();
+ public Dictionary<int, List<int>> ctgIdDict = new Dictionary<int, List<int>>();
+ public List<int> packRechargeIdList = new List<int>();
+ public List<List<Item>> itemAllList = new List<List<Item>>();
+ Redpoint redpoint = new Redpoint(MainRedDot.DailySpecialsRedpoint);
+ Dictionary<int, Redpoint> childRedpointDict = new Dictionary<int, Redpoint>();
+ public event Action UpdateGiftStateEvent;
+
+ public override void Init()
+ {
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += OnbeforePlayerDataInitialize;
+ FuncOpen.Instance.OnFuncStateChangeEvent += OnFunctionStateChange;
+ var tempDict = JsonMapper.ToObject(FuncConfigConfig.Get("DailyPackBuyGift").Numerical1);
+ var keyList = tempDict.Keys.ToList();
+ for (int i = 0; i < keyList.Count; i++)
+ {
+ List<List<int>> giftInfoList = new List<List<int>>();
+ for (int j = 0; j < tempDict[i].Count; j++)
+ {
+ List<int> giftInfo = JsonMapper.ToObject<List<int>>(tempDict[keyList[i]][j].ToJson());
+ giftInfoList.Add(giftInfo);
+ }
+ giftInfoDict.Add(int.Parse(keyList[i]), giftInfoList);
+ }
+
+ tempDict = JsonMapper.ToObject(FuncConfigConfig.Get("DailyPackBuyGift").Numerical2);
+ keyList = tempDict.Keys.ToList();
+ for (int i = 0; i < keyList.Count; i++)
+ {
+ ctgIdDict[int.Parse(keyList[i])] = JsonMapper.ToObject<List<int>>(tempDict[keyList[i]].ToJson());
+ }
+
+ packRechargeIdList = JsonMapper.ToObject<List<int>>(FuncConfigConfig.Get("DailyPackBuyGift").Numerical3);
+ maxDay = int.Parse(FuncConfigConfig.Get("DailyPackBuyGift").Numerical4);
+
+ List<int> giftInfokeyList = giftInfoDict.Keys.ToList();
+ for (int i = 0; i < giftInfoDict.Count; i++)
+ {
+ List<Item> itemList = new List<Item>();
+ for (int j = 0; j < giftInfoDict[giftInfokeyList[i]].Count; j++)
+ {
+ Item item = new Item(giftInfoDict[giftInfokeyList[i]][j][0], giftInfoDict[giftInfokeyList[i]][j][1]);
+ itemList.Add(item);
+ }
+ itemAllList.Add(itemList);
+ }
+ List<int> keyList2 = giftInfoDict.Keys.ToList();
+ for (int i = 0; i < giftInfoDict.Count; i++)
+ {
+ childRedpointDict[keyList2[i]] = new Redpoint(MainRedDot.DailySpecialsRedpoint, MainRedDot.DailySpecialsRedpoint * 100 + i);
+ }
+
+ }
+
+ public override void Release()
+ {
+ DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= OnbeforePlayerDataInitialize;
+ FuncOpen.Instance.OnFuncStateChangeEvent -= OnFunctionStateChange;
+ }
+
+ public void OnbeforePlayerDataInitialize()
+ {
+ PackBuyTime = 0;
+ BuyStateToday = 0;
+ AwardState = 0;
+ }
+
+
+ private void OnFunctionStateChange(int id)
+ {
+ if (id == 222)
+ {
+ UpdateRedpoint();
+ }
+ }
+
+
+ public void UpdateGiftState(HAA03_tagMCDailyPackBuyGiftInfo vNetData)
+ {
+ this.PackBuyTime = vNetData.PackBuyTime;
+ this.BuyStateToday = vNetData.BuyStateToday;
+ this.AwardState = vNetData.AwardState;
+ UpdateGiftStateEvent?.Invoke();
+ UpdateRedpoint();
+
+ }
+
+ // 鍦ㄥ姛鑳藉紑鍚殑鏃跺�欏垽鏂槸鍚︽瘡鏃ョ壒鎯犲紑鍚�, 瑙﹀彂UpdateRedpoint
+
+ //姣忔棩鐗规儬
+ //1. 鍔熻兘鏄惁寮�鍚�
+ //2. 鍏嶈垂鏄惁宸查鍙�
+ //3. 璐拱鍚庢槸鍚﹀彲棰嗗彇
+ void UpdateRedpoint()
+ {
+ redpoint.state = RedPointState.None;
+ if (!FuncOpen.Instance.IsFuncOpen(222))
+ return;
+
+ List<int> keyList = childRedpointDict.Keys.ToList();
+
+ for (int i = 0; i < childRedpointDict.Count; i++)
+ {
+ childRedpointDict[keyList[i]].state = RedPointState.None;
+ if (GetGiftState(i) == 2)
+ {
+ childRedpointDict[keyList[i]].state = RedPointState.Simple;
+ }
+ }
+ }
+
+ //鑾峰緱鎸夐挳鐘舵��
+ //0 鏈喘涔� 1 宸茶喘涔� 2 鍙鍙� 3 宸查鍙�
+ public int GetGiftState(int index)
+ {
+ if (index == 0)
+ {
+ return IsHavePack(index) ? 3 : 2;
+ }
+ else
+ {
+ if (IsBuyAllPack())
+ {
+ return IsHavePack(index) ? 3 : 2;
+ }
+ else
+ {
+ if (IsBuyPack(index))
+ {
+ return IsHavePack(index) ? 3 : 2;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+ }
+ }
+
+ //鏄惁璐拱鎬诲寘
+ public bool IsBuyAllPack()
+ {
+
+ if (PackBuyTime == 0)
+ {
+ return false;
+ }
+ else
+ {
+ return (TimeUtility.ServerNow - TimeUtility.GetTime(PackBuyTime)).Days < maxDay;
+ }
+ }
+
+ //鏄惁璐拱鍒嗗寘
+ public bool IsBuyPack(int index)
+ {
+ return ((int)Math.Pow(2, index) & BuyStateToday) != 0;
+ }
+
+ //鍒嗗寘鏄惁宸查鍙�
+ public bool IsHavePack(int index)
+ {
+ return ((int)Math.Pow(2, index) & AwardState) != 0;
+ }
+
+}
+
diff --git a/Main/System/Recharge/DailySpecialsModel.cs.meta b/Main/System/Recharge/DailySpecialsModel.cs.meta
new file mode 100644
index 0000000..f176e9f
--- /dev/null
+++ b/Main/System/Recharge/DailySpecialsModel.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2e39e10a6edb4a84daee6a829b6bc647
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Recharge/RechargeManager.cs b/Main/System/Recharge/RechargeManager.cs
index d1d2ad3..c3460bf 100644
--- a/Main/System/Recharge/RechargeManager.cs
+++ b/Main/System/Recharge/RechargeManager.cs
@@ -217,11 +217,6 @@
#endif
}
}
- var _funcConfig = FuncConfigConfig.Get("ChargeDelayTime");
- m_CTGDelayTime = int.Parse(_funcConfig.Numerical1);
- m_CTGLimitDelayTime = int.Parse(_funcConfig.Numerical2);
- _funcConfig = FuncConfigConfig.Get("FirstGoldMobs");
- firstRechargeWeapon = ConfigParse.GetDic<int, int>(_funcConfig.Numerical1);
}
public List<int> GetCTGConfigs(string _appid)
@@ -305,7 +300,6 @@
#region 鍏呭��
- public Dictionary<int, int> firstRechargeWeapon { get; private set; }
public Dictionary<int, List<Item>> m_RechargeGainItemDict { get; private set; }
private Dictionary<int, RechargeCount> m_RechargeCountDict = new Dictionary<int, RechargeCount>();
Dictionary<string, List<OrderInfoConfig>> m_OrderInfoDict = new Dictionary<string, List<OrderInfoConfig>>();
diff --git a/Main/System/Redpoint/MainRedDot.cs b/Main/System/Redpoint/MainRedDot.cs
new file mode 100644
index 0000000..43510d3
--- /dev/null
+++ b/Main/System/Redpoint/MainRedDot.cs
@@ -0,0 +1,115 @@
+锘�//--------------------------------------------------------
+// [Author]: 绗簩涓栫晫
+// [ Date ]: Thursday, November 16, 2017
+//--------------------------------------------------------
+
+
+
+public class MainRedDot : Singleton<MainRedDot>
+{
+ //涓荤晫闈�
+ public const int MainAffairsRedpoint = 1; //鍐呮斂
+ public Redpoint redpointAffairs = new Redpoint(MainAffairsRedpoint);
+ public const int MainHerosRedpoint = 2; //姝﹀皢
+ public Redpoint redpointHeros = new Redpoint(MainHerosRedpoint);
+ public const int MainChallengeRedpoint = 3; //鎸戞垬
+ public Redpoint redpointChallenge = new Redpoint(MainChallengeRedpoint);
+ public const int MainGuildRedpoint = 4; //鍏細
+ public Redpoint redpointGuild = new Redpoint(MainGuildRedpoint);
+
+
+ public const int RedPoint_key = 11;
+ public const int FAIRY_REDPOINT_KEY1 = 107;
+ public const int RedPoint_UpFuncBase = 12;
+
+ private Redpoint rightTopRedpint = new Redpoint(RedPoint_UpFuncBase);
+ private Redpoint redPointStrePrentOne = new Redpoint(RedPoint_key);
+
+
+ //public Redpoint jadeDynastyRedpoint = new Redpoint(1, 117);
+
+ #region 閭欢绾㈢偣
+ public const int RedPoint_MainMailKey = 24;
+ public const int RedPoint_MailFuncKey = 2401;
+ public Redpoint redpointMainMail = new Redpoint(RedPoint_MainMailKey);
+ public Redpoint redpointMailFunc = new Redpoint(RedPoint_MainMailKey, RedPoint_MailFuncKey);
+ #endregion
+
+ #region 濂藉弸绾㈢偣
+ public const int RedPoint_FriendQuestKey = 26;
+ public const int RedPoint_FriendChatKey = 25; //濂藉弸
+ public Redpoint redpointFriendQuest = new Redpoint(RedPoint_FriendQuestKey);
+ public Redpoint redPointFriendChat = new Redpoint(RedPoint_FriendChatKey);
+ #endregion
+
+ #region 鑳屽寘绾㈢偣
+ public const int RedPoint_MainPackKey = 102;
+ public const int RedPoint_BagFuncKey = 10201;
+ public const int RedPoint_DepotFuncKey = 10204;
+ public Redpoint redPointMainPack = new Redpoint(RedPoint_MainPackKey);
+ public Redpoint redPointBagFunc = new Redpoint(RedPoint_MainPackKey, RedPoint_BagFuncKey);
+ public Redpoint redPointDepotFunc = new Redpoint(RedPoint_MainPackKey, RedPoint_DepotFuncKey);
+ #endregion
+
+
+
+
+ #region 浠欑洘鍏敤绾㈢偣
+ public const int FAIRY_REDPOINT_KEY2 = 10701;
+ public Redpoint fairyLaunch = new Redpoint(RedPoint_key, FAIRY_REDPOINT_KEY1);
+ public Redpoint fairyBaseFuncRedPoint = new Redpoint(FAIRY_REDPOINT_KEY1, FAIRY_REDPOINT_KEY2);
+ #endregion
+
+
+
+ #region 浠欑洘鍟嗗簵绾㈢偣
+ public const int FAIRYStore_REDPOINT_KEY3 = 1070106;
+ public Redpoint fairyStoreRedPoint = new Redpoint(FAIRY_REDPOINT_KEY2, FAIRYStore_REDPOINT_KEY3);
+ #endregion
+
+
+
+
+ #region 寮�鏈嶆椿鍔ㄧ孩鐐�
+ public const int REDPOINT_OPENSERVER = 209;
+ public Redpoint openServerRedpoint = new Redpoint(REDPOINT_OPENSERVER);
+
+ //280 寮�澶寸敤浜庤妭鏃ョ绂�
+ public const int RedPoint_HolidayWishes = 280;
+ public Redpoint holidayWishesRedpoint = new Redpoint(RedPoint_HolidayWishes);
+
+ #endregion
+ public const int REDPOINT_OPENRANK = 258;
+ public Redpoint openRankRedpoint = new Redpoint(REDPOINT_OPENRANK);
+ #region 浠欑洘娲诲姩绾㈢偣
+ public readonly Redpoint fairyActivityRedpoint = new Redpoint(218);
+ #endregion
+
+ public static int DailySpecialsRedpoint = 439; //姣忔棩鐗规儬鍏ュ彛绾㈢偣
+
+ public static int BlessedLandRedpoint = 444; //绂忓湴绾㈢偣
+ public const int CustomizedGiftRedpoint = 448; //鑷�夌ぜ鍖�
+ public const int LoginZhanLingRedpoint = 449; //鐧诲綍鎴樹护
+ public const int PhantasmPavilionRepoint = 459; //骞诲闃�
+ public const int FairyEmbleManageRepoint = 462;//浠欑洘寰界珷绠$悊鍏ュ彛绾㈢偣
+ public const int CycleHallRepoint = 463; //杞洖娈�
+ public const int YunShiRepoint = 464; //杩愬娍
+ public const int LianQiRepoint = 465; //浠欏尃澶т細
+ public const int FairySiegeRepoint = 466; //浠欑洘鏀诲煄鎴�
+ public const int MailRepoint = 467; //閭
+
+
+
+
+ public void Register()
+ {
+
+ }
+
+
+
+
+}
+
+
+
diff --git a/Main/System/MainInterfacePanel/MainRedDot.cs.meta b/Main/System/Redpoint/MainRedDot.cs.meta
similarity index 100%
rename from Main/System/MainInterfacePanel/MainRedDot.cs.meta
rename to Main/System/Redpoint/MainRedDot.cs.meta
diff --git a/Main/System/Redpoint/RedpointBehaviour.cs b/Main/System/Redpoint/RedpointBehaviour.cs
index 6cb2382..61a7734 100644
--- a/Main/System/Redpoint/RedpointBehaviour.cs
+++ b/Main/System/Redpoint/RedpointBehaviour.cs
@@ -6,114 +6,119 @@
using System.Collections;
using UnityEngine.UI;
-
- public class RedpointBehaviour : MonoBehaviour
- {
- [SerializeField]
- int m_RedpointId;
- public int redpointId {
- get {
- return m_RedpointId;
- }
- set {
- m_RedpointId = value;
- UpdateRedpoint(value);
- }
+
+public class RedpointBehaviour : MonoBehaviour
+{
+ [SerializeField]
+ int m_RedpointId;
+ public int redpointId {
+ get {
+ return m_RedpointId;
}
-
- [SerializeField]
- Transform m_SimpleRedpoint;
- public Transform simpleRedpoint {
- get {
- return m_SimpleRedpoint;
- }
+ set {
+ m_RedpointId = value;
+ UpdateRedpoint(value);
}
- [SerializeField]
- Transform m_QuantityRedpoint;
- public Transform quantityRedpoint {
- get {
- return m_QuantityRedpoint;
- }
- }
- [SerializeField]
- Text m_Quantity;
- public Text quantityText {
- get {
- return m_Quantity;
- }
- }
- [SerializeField]
- Transform m_FullRedpoint;
-
- [SerializeField]
- Transform m_GetRewardRedpoint;
-
- bool m_Show = false;
- public bool show {
- get { return m_Show; }
- set {
- if (m_Show != value)
- {
- m_Show = value;
- this.SetActive(m_Show);
- }
- }
- }
-
- private void Awake()
- {
- UpdateRedpoint(redpointId);
- RedpointCenter.Instance.redpointValueChangeEvent += UpdateRedpoint;
- }
-
- private void OnDestroy()
- {
- RedpointCenter.Instance.redpointValueChangeEvent -= UpdateRedpoint;
- }
-
- void UpdateRedpoint(int _id)
- {
- if (_id != redpointId)
- {
- return;
- }
-
- var state = RedpointCenter.Instance.GetRedpointState(redpointId);
- if (m_SimpleRedpoint != null)
- {
- m_SimpleRedpoint.SetActive(state == RedPointState.Simple);
- }
-
- if (m_QuantityRedpoint != null)
- {
- m_QuantityRedpoint.SetActive(state == RedPointState.Quantity);
- }
-
- if (m_Quantity != null)
- {
- m_Quantity.SetActive(state == RedPointState.Quantity);
- }
-
- if (m_FullRedpoint != null)
- {
- m_FullRedpoint.SetActive(state == RedPointState.Full);
- }
-
- if (m_GetRewardRedpoint != null)
- {
- m_GetRewardRedpoint.SetActive(state == RedPointState.GetReward);
- }
-
- if (state == RedPointState.Quantity && m_Quantity != null)
- {
- var count = RedpointCenter.Instance.GetRedpointCount(redpointId);
- m_Quantity.text = count > 9 ? "N" : count >= 1 ? count.ToString() : "";
- }
-
- }
-
}
+ [SerializeField]
+ Transform m_SimpleRedpoint;
+ public Transform simpleRedpoint {
+ get {
+ return m_SimpleRedpoint;
+ }
+ }
+ [SerializeField]
+ Transform m_QuantityRedpoint;
+ public Transform quantityRedpoint {
+ get {
+ return m_QuantityRedpoint;
+ }
+ }
+ [SerializeField]
+ Text m_Quantity;
+ public Text quantityText {
+ get {
+ return m_Quantity;
+ }
+ }
+ [SerializeField]
+ Transform m_FullRedpoint;
+
+ [SerializeField]
+ Transform m_GetRewardRedpoint;
+
+ [SerializeField] Transform m_NewRedpoint;
+ bool m_Show = false;
+ public bool show {
+ get { return m_Show; }
+ set {
+ if (m_Show != value)
+ {
+ m_Show = value;
+ this.SetActive(m_Show);
+ }
+ }
+ }
+
+ private void Awake()
+ {
+ UpdateRedpoint(redpointId);
+ RedpointCenter.Instance.redpointValueChangeEvent += UpdateRedpoint;
+ }
+
+ private void OnDestroy()
+ {
+ RedpointCenter.Instance.redpointValueChangeEvent -= UpdateRedpoint;
+ }
+
+ void UpdateRedpoint(int _id)
+ {
+ if (_id != redpointId)
+ {
+ return;
+ }
+
+ var state = RedpointCenter.Instance.GetRedpointState(redpointId);
+ if (m_SimpleRedpoint != null)
+ {
+ m_SimpleRedpoint.SetActive(state == RedPointState.Simple);
+ }
+
+ if (m_QuantityRedpoint != null)
+ {
+ m_QuantityRedpoint.SetActive(state == RedPointState.Quantity);
+ }
+
+ if (m_Quantity != null)
+ {
+ m_Quantity.SetActive(state == RedPointState.Quantity);
+ }
+
+ if (m_FullRedpoint != null)
+ {
+ m_FullRedpoint.SetActive(state == RedPointState.Full);
+ }
+
+ if (m_GetRewardRedpoint != null)
+ {
+ m_GetRewardRedpoint.SetActive(state == RedPointState.GetReward);
+ }
+
+ if (state == RedPointState.Quantity && m_Quantity != null)
+ {
+ var count = RedpointCenter.Instance.GetRedpointCount(redpointId);
+ m_Quantity.text = count > 9 ? "N" : count >= 1 ? count.ToString() : "";
+ }
+
+ if (m_NewRedpoint != null)
+ {
+ m_NewRedpoint.SetActive(state == RedPointState.New);
+ }
+ }
+
+}
+
diff --git a/Main/System/Redpoint/RedpointCenter.cs b/Main/System/Redpoint/RedpointCenter.cs
index b197f86..408a26f 100644
--- a/Main/System/Redpoint/RedpointCenter.cs
+++ b/Main/System/Redpoint/RedpointCenter.cs
@@ -3,128 +3,128 @@
using UnityEngine;
using System;
-
- public class RedpointCenter : Singleton<RedpointCenter>
+
+public class RedpointCenter : Singleton<RedpointCenter>
+{
+ public event Action<int> redpointValueChangeEvent;
+
+ Dictionary<int, Redpoint> redpoints = new Dictionary<int, Redpoint>();
+ Dictionary<int, List<int>> parentChildren = new Dictionary<int, List<int>>();
+
+ public RedpointCenter()
{
- public event Action<int> redpointValueChangeEvent;
-
- Dictionary<int, Redpoint> redpoints = new Dictionary<int, Redpoint>();
- Dictionary<int, List<int>> parentChildren = new Dictionary<int, List<int>>();
-
- public RedpointCenter()
- {
-
- }
-
- public void ResetAllRedpointState()
- {
- foreach (var redpoint in redpoints.Values)
- {
- redpoint.state = RedPointState.None;
- }
- }
-
- public void Register(Redpoint _redpoint)
- {
- var id = _redpoint.id;
- if (redpoints.ContainsKey(id))
- {
- Debug.LogErrorFormat("閲嶅娉ㄥ唽绾㈢偣锛歩d->{0}", id);
- }
-
- redpoints[id] = _redpoint;
-
- var parentId = _redpoint.parent;
- if (parentId > 0)
- {
- List<int> children = null;
- if (!parentChildren.TryGetValue(parentId, out children))
- {
- parentChildren[parentId] = children = new List<int>();
- }
-
- if (!children.Contains(id))
- {
- children.Add(id);
- }
- }
- }
-
- public void Report(Redpoint _redpoint)
- {
- var parentId = _redpoint.parent;
-
- if (redpointValueChangeEvent != null)
- {
- redpointValueChangeEvent(_redpoint.id);
- }
-
- if (parentId > 0)
- {
- TestParentValue(_redpoint.parent);
- }
- }
-
- public void ReportWithoutParent(Redpoint _redpoint)
- {
- if (redpointValueChangeEvent != null)
- {
- redpointValueChangeEvent(_redpoint.id);
- }
- }
-
- public RedPointState GetRedpointState(int _id)
- {
- Redpoint redpoint = null;
- if (this.redpoints.TryGetValue(_id, out redpoint))
- {
- return redpoint.state;
- }
- else
- {
- return RedPointState.None;
- }
- }
-
- public int GetRedpointCount(int _id)
- {
- Redpoint redpoint = null;
- if (this.redpoints.TryGetValue(_id, out redpoint))
- {
- return redpoint.count;
- }
- else
- {
- return 0;
- }
- }
-
- void TestParentValue(int _parentId)
- {
- List<int> children = null;
- Redpoint parent = null;
- if (redpoints.TryGetValue(_parentId, out parent) && parentChildren.TryGetValue(_parentId, out children))
- {
- var parentState = RedPointState.None;
- for (int i = 0; i < children.Count; i++)
- {
- Redpoint child = null;
- if (redpoints.TryGetValue(children[i], out child))
- {
- if (child.state > parentState)
- {
- parentState = child.state;
- }
- }
-
- if (parentState == RedPointState.Full)
- {
- break;
- }
-
- }
- parent.state = parentState;
- }
- }
}
+
+ public void ResetAllRedpointState()
+ {
+ foreach (var redpoint in redpoints.Values)
+ {
+ redpoint.state = RedPointState.None;
+ }
+ }
+
+ public void Register(Redpoint _redpoint)
+ {
+ var id = _redpoint.id;
+ if (redpoints.ContainsKey(id))
+ {
+ Debug.LogErrorFormat("閲嶅娉ㄥ唽绾㈢偣锛歩d->{0}", id);
+ }
+
+ redpoints[id] = _redpoint;
+
+ var parentId = _redpoint.parent;
+ if (parentId > 0)
+ {
+ List<int> children = null;
+ if (!parentChildren.TryGetValue(parentId, out children))
+ {
+ parentChildren[parentId] = children = new List<int>();
+ }
+
+ if (!children.Contains(id))
+ {
+ children.Add(id);
+ }
+ }
+ }
+
+ public void Report(Redpoint _redpoint)
+ {
+ var parentId = _redpoint.parent;
+
+ if (redpointValueChangeEvent != null)
+ {
+ redpointValueChangeEvent(_redpoint.id);
+ }
+
+ if (parentId > 0)
+ {
+ TestParentValue(_redpoint.parent);
+ }
+ }
+
+ public void ReportWithoutParent(Redpoint _redpoint)
+ {
+ if (redpointValueChangeEvent != null)
+ {
+ redpointValueChangeEvent(_redpoint.id);
+ }
+ }
+
+ public RedPointState GetRedpointState(int _id)
+ {
+ Redpoint redpoint = null;
+ if (this.redpoints.TryGetValue(_id, out redpoint))
+ {
+ return redpoint.state;
+ }
+ else
+ {
+ return RedPointState.None;
+ }
+ }
+
+ public int GetRedpointCount(int _id)
+ {
+ Redpoint redpoint = null;
+ if (this.redpoints.TryGetValue(_id, out redpoint))
+ {
+ return redpoint.count;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+
+ void TestParentValue(int _parentId)
+ {
+ List<int> children = null;
+ Redpoint parent = null;
+ if (redpoints.TryGetValue(_parentId, out parent) && parentChildren.TryGetValue(_parentId, out children))
+ {
+ var parentState = RedPointState.None;
+ for (int i = 0; i < children.Count; i++)
+ {
+ Redpoint child = null;
+ if (redpoints.TryGetValue(children[i], out child))
+ {
+ if (child.state > parentState)
+ {
+ parentState = child.state;
+ }
+ }
+
+ if (parentState == RedPointState.Full)
+ {
+ break;
+ }
+
+ }
+ parent.state = parentState;
+ }
+ }
+
+}
diff --git a/Main/System/Store.meta b/Main/System/Store.meta
new file mode 100644
index 0000000..040ccea
--- /dev/null
+++ b/Main/System/Store.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4fc5215db0b4d9e40bf585115834dfa0
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Store/BuyItemController.cs b/Main/System/Store/BuyItemController.cs
new file mode 100644
index 0000000..909a317
--- /dev/null
+++ b/Main/System/Store/BuyItemController.cs
@@ -0,0 +1,214 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using UnityEngine;
+
+
+public class BuyItemController : Singleton<BuyItemController>
+{
+
+ Dictionary<int, int> vipBuyCntDict = new Dictionary<int, int>();
+
+ public bool CheckIsVipBuy(StoreConfig model, out int curVipIndex, out int nextVipIndex)
+ {
+ vipBuyCntDict.Clear();
+ curVipIndex = -1;
+ nextVipIndex = -1;
+ bool isVipBuy = false;
+ if (model == null) return isVipBuy;
+
+ if (model.VIPLV.Length < 2)
+ {
+ if (model.VIPLV[0] != 0)
+ {
+ isVipBuy = true;
+ }
+ else
+ {
+ isVipBuy = false;
+ }
+ }
+ else
+ {
+ isVipBuy = true;
+ }
+
+ if (isVipBuy)
+ {
+ for (int i = model.VIPLV.Length - 1; i > -1; i--)
+ {
+ vipBuyCntDict.Add(model.VIPLV[i], model.GoumaiNumber[i]);
+ }
+ int playerVip = PlayerDatas.Instance.baseData.VIPLv;
+ for (int i = model.VIPLV.Length - 1; i > -1; i--)
+ {
+ if (model.VIPLV[i] > playerVip)
+ {
+ nextVipIndex = i;
+ }
+ else if (model.VIPLV[i] <= playerVip)
+ {
+ curVipIndex = i;
+ break;
+ }
+ }
+
+ }
+
+ return isVipBuy;
+ }
+
+ public bool CheckIsLimitBuyCnt(StoreConfig model, out int canBuyCnt, out int addBuyCnt)
+ {
+ canBuyCnt = 0;
+ addBuyCnt = 0;
+ if (model == null) return false;
+
+ int[] canBuyNums = model.GoumaiNumber;
+ int curVipIndex = -1;
+ int nexVipIndex = -1;
+ bool isVipBuy = CheckIsVipBuy(model, out curVipIndex, out nexVipIndex);
+ if (isVipBuy)
+ {
+ if (curVipIndex != -1)
+ {
+ canBuyCnt = canBuyNums[curVipIndex];
+ }
+
+ if (nexVipIndex != -1)
+ {
+ addBuyCnt = canBuyNums[nexVipIndex] - canBuyCnt;
+ }
+ return true;
+ }
+ else
+ {
+ if (canBuyNums[0] != 0)
+ {
+ canBuyCnt = canBuyNums[0];
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ }
+
+ public int goodId { get; private set; }
+ public readonly LogicInt wannaBuyCount = new LogicInt();
+
+
+ public void SetGood(int goodId)
+ {
+ this.goodId = goodId;
+ wannaBuyCount.value = 1;
+ }
+
+ public void SetBuyCount(int goodId, int count)
+ {
+ var countLimit = GetBuyCountLimit(goodId, PlayerDatas.Instance.baseData.VIPLv);
+ if (countLimit == -1)
+ {
+ wannaBuyCount.value = Mathf.Clamp(count, 1, 999);
+ }
+ else
+ {
+ wannaBuyCount.value = Mathf.Clamp(count, 1, countLimit);
+ }
+ }
+
+ public bool IsVipLimitGood(int goodId)
+ {
+ var config = StoreConfig.Get(goodId);
+ return config != null && config.VIPLV.Length > 1 && config.VIPLV[0] > 0;
+ }
+
+ /// <summary>
+ /// 杩斿洖鍊间负-1锛岃〃绀烘病鏈塿ip闄愬埗锛岃繑鍥炲�间负999琛ㄧず宸茬粡娌℃湁涓嬩竴涓獀ip闄愬埗
+ /// </summary>
+ /// <param name="goodId"></param>
+ /// <param name="vipLevel"></param>
+ /// <returns></returns>
+ public int GetNextCanbuyVipLevel(int goodId, int vipLevel)
+ {
+ if (!IsVipLimitGood(goodId))
+ {
+ return -1;
+ }
+
+ var config = StoreConfig.Get(goodId);
+ var nextLevel = 999;
+ for (int i = 0; i < config.VIPLV.Length; i++)
+ {
+ if (config.VIPLV[i] > vipLevel)
+ {
+ nextLevel = config.VIPLV[i];
+ break;
+ }
+ }
+
+ return nextLevel;
+ }
+
+ /// <summary>
+ /// 杩斿洖鍊煎鏋滄槸-1锛岃〃绀烘棤闄愬埗
+ /// </summary>
+ /// <param name="goodId"></param>
+ /// <returns></returns>
+ public int GetBuyCountLimit(int goodId, int vipLevel)
+ {
+ var config = StoreConfig.Get(goodId);
+ if (config.GoumaiNumber.Length == 0 || config.GoumaiNumber[0] == 0)
+ {
+ return -1;
+ }
+
+ var isVipLimitGood = config != null && config.VIPLV.Length > 1;
+ var canBuy = 0;
+ if (isVipLimitGood)
+ {
+ var index = -1;
+ for (var i = config.VIPLV.Length - 1; i >= 0; i--)
+ {
+ if (config.VIPLV[i] <= vipLevel)
+ {
+ index = i;
+ break;
+ }
+ }
+
+ if (index != -1)
+ {
+ canBuy = config.GoumaiNumber[index];
+ }
+ else
+ {
+ canBuy = 0;
+ }
+ }
+ else
+ {
+ canBuy = config.GoumaiNumber[0];
+ }
+
+ var goodLimit = StoreModel.Instance.GetBuyShopLimit((uint)goodId);
+ var haveBuy = goodLimit != null ? goodLimit.BuyCnt : 0;
+ return canBuy - haveBuy;
+ }
+
+ public bool IsSellOut(int goodId, int vipLevel)
+ {
+ var limitCount = GetBuyCountLimit(goodId, vipLevel);
+ return limitCount != -1 && limitCount <= 0;
+ }
+
+ public int GetTotalPrice(int goodId, int count)
+ {
+ var config = StoreConfig.Get(goodId);
+ return config.MoneyNumber * count;
+ }
+
+
+}
diff --git a/Main/System/Store/BuyItemController.cs.meta b/Main/System/Store/BuyItemController.cs.meta
new file mode 100644
index 0000000..25724b9
--- /dev/null
+++ b/Main/System/Store/BuyItemController.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: dc23e302e8daefe418c0a4baeaedb9f1
+timeCreated: 1556020061
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Store/StoreModel.cs b/Main/System/Store/StoreModel.cs
new file mode 100644
index 0000000..4b98aaa
--- /dev/null
+++ b/Main/System/Store/StoreModel.cs
@@ -0,0 +1,1662 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+
+using UnityEngine;
+using LitJson;
+using System.Collections;
+
+public class BuyShopItemLimit
+{
+ public uint ItemIndex;
+ public int BuyCnt; // 浠婃棩宸茶喘涔版鏁�
+ public int isReset; //鏄惁灞炰簬姣忔湀閲嶇疆 0 涓嶉噸缃� 1閲嶇疆
+}
+
+public struct ShopItemInfo
+{
+ public int itemId;
+ public int count;
+
+ public ShopItemInfo(int id, int count)
+ {
+ this.itemId = id;
+ this.count = count;
+ }
+}
+
+public class StoreModel : GameSystemManager<StoreModel>
+{
+
+ public string UNIONSTORESAVE_KEY { get; private set; }
+ public string MUSTBUYSAVE_KEY { get; private set; }
+ public string StoreEffectRecord_Key { get; private set; }
+ public Dictionary<int, Dictionary<int, int>> JobReplaceIdDict = new Dictionary<int, Dictionary<int, int>>();
+ public Dictionary<int, int> showCoinUIDict { get; private set; }
+ public int storeTrailerLv { get; private set; }
+
+
+ public int fairyStoreJumpShopId = 0;
+
+ int m_SelectClassifyId = 0;
+ public int selectSecondType
+ {
+ get { return m_SelectClassifyId; }
+ set
+ {
+ if (m_SelectClassifyId != value)
+ {
+ m_SelectClassifyId = value;
+ if (selectClassifyRefresh != null)
+ {
+ selectClassifyRefresh();
+ }
+ }
+ }
+ }
+
+ public event Action selectClassifyRefresh;
+
+
+ private bool isUpdatePlayerLv;
+
+ //鎺掕姒滄椿鍔ㄧ殑鍟嗗簵
+ public int rankActStore_MoneyType;
+ public int rankActStore_StoreType;
+ public Operation rankActStore_ActType;
+
+ public override void Init()
+ {
+ ParseFuncConfig();
+ ParseStoreConfig();
+ SetShopRedpoint();
+ }
+
+ public void OnBeforePlayerDataInitialize()
+ {
+ isUpdatePlayerLv = false;
+ IsMustBuyDay = false;
+ sortStoreSecondType = true;
+ ClearJump();
+ FuncOpen.Instance.OnFuncStateChangeEvent -= FuncStateChange;
+ PlayerDatas.Instance.fairyData.OnRefreshFairyMine -= RefreshServerHour;
+ PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= RefreshFamilyLv;
+ PlayerDatas.Instance.playerDataRefreshEvent -= RefreshPlayerData;
+ TimeMgr.Instance.OnHourEvent -= RefreshServerHour;
+ GlobalTimeEvent.Instance.secondEvent -= UpdateSecond;
+ shopItemlimitDict.Clear();
+ storeFuncType = StoreFunc.DayStore;
+ }
+
+ public void OnAfterPlayerDataInitialize()
+ {
+ UNIONSTORESAVE_KEY = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, LocalSaveStoreType.UnionStore);
+ StoreEffectRecord_Key = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "StoreEffectRecord");
+ MUSTBUYSAVE_KEY = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "MustBuy");
+ buyItemCheckDict.Clear();
+ }
+
+ public void OnPlayerLoginOk()
+ {
+ PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += RefreshFamilyLv;
+ PlayerDatas.Instance.fairyData.OnRefreshFairyMine += RefreshServerHour;
+ FuncOpen.Instance.OnFuncStateChangeEvent += FuncStateChange;
+ PlayerDatas.Instance.playerDataRefreshEvent += RefreshPlayerData;
+ TimeMgr.Instance.OnHourEvent += RefreshServerHour;
+ GlobalTimeEvent.Instance.secondEvent += UpdateSecond;
+
+ UpdateShowStore();
+ SetIsMustBuyDay();
+ ControllerRedPoint();
+ UpdateFreeShopRedpoint();
+ UpdateCanBuyRedpoint();
+ UpdateMustBuyRedpoint();
+ UpdateDailyRedpoinit();
+ }
+
+
+
+
+
+ #region 瑙f瀽鏈湴鏁版嵁
+ public Dictionary<int, List<int>> storeRedRuleDict { get; private set; } //绾㈢偣绫诲瀷 1,鍏嶈垂鍟嗗搧 2,蹇呬拱鍟嗗搧 3,鍧愰獞鐏靛疇 4,鍙喘涔扮墿鍝侊紙绉垎鍏戞崲锛�
+ private void ParseFuncConfig()
+ {
+ storeRedRuleDict = new Dictionary<int, List<int>>();
+ FuncConfigConfig storeRedRules = FuncConfigConfig.Get("StoreRedRules");
+ if (storeRedRules != null)
+ {
+ JsonData redRules = JsonMapper.ToObject(storeRedRules.Numerical1);
+ foreach (var type in redRules.Keys)
+ {
+ int redType = 0;
+ int.TryParse(type, out redType);
+ JsonData shops = redRules[type];
+ if (!storeRedRuleDict.ContainsKey(redType))
+ {
+ List<int> shopIdlist = new List<int>();
+ if (shops.IsArray)
+ {
+ for (int i = 0; i < shops.Count; i++)
+ {
+ int shopId = 0;
+ int.TryParse(shops[i].ToString(), out shopId);
+ shopIdlist.Add(shopId);
+ }
+ }
+ storeRedRuleDict.Add(redType, shopIdlist);
+ }
+ }
+
+
+ }
+ }
+
+ public Dictionary<int, List<StoreData>> storeTypeDict { get; private set; }
+ public Dictionary<int, List<StoreData>> theOnlyShopDict { get; private set; } //key 鐗╁搧id
+ public Dictionary<string, List<StoreData>> limitValueShopDict { get; private set; } //key 鍟嗗搧绫诲瀷鍜岄檺鍒舵潯浠�
+ private void ParseStoreConfig()
+ {
+ storeTypeDict = new Dictionary<int, List<StoreData>>();
+ theOnlyShopDict = new Dictionary<int, List<StoreData>>();
+ limitValueShopDict = new Dictionary<string, List<StoreData>>();
+ List<StoreConfig> storeConfigs = StoreConfig.GetValues();
+ for (int i = 0; i < storeConfigs.Count; i++)
+ {
+ var config = storeConfigs[i];
+ if (config.ShopType != 0)
+ {
+ StoreData storeData = new StoreData();
+ storeData.shopId = config.ID;
+ storeData.storeConfig = config;
+ storeData.jobReplaceDict = AnalysisJobReplace(config);
+ if (!storeTypeDict.ContainsKey(config.ShopType))
+ {
+ List<StoreData> storeDatas = new List<StoreData>();
+ storeDatas.Add(storeData);
+ storeTypeDict.Add(config.ShopType, storeDatas);
+ }
+ else
+ {
+ storeTypeDict[config.ShopType].Add(storeData);
+ }
+
+ if (config.TheOnlyShop == 1)
+ {
+ if (!theOnlyShopDict.ContainsKey(config.ItemID))
+ {
+ List<StoreData> storeDatas = new List<StoreData>();
+ storeDatas.Add(storeData);
+ theOnlyShopDict.Add(config.ItemID, storeDatas);
+ }
+ else
+ {
+ theOnlyShopDict[config.ItemID].Add(storeData);
+ }
+ }
+
+ string key = StringUtility.Contact(config.ShopType, config.LimitValue);
+ if (!limitValueShopDict.ContainsKey(key))
+ {
+ List<StoreData> storeDatas = new List<StoreData>();
+ storeDatas.Add(storeData);
+ limitValueShopDict.Add(key, storeDatas);
+ }
+ else
+ {
+ limitValueShopDict[key].Add(storeData);
+ }
+ }
+ }
+
+ foreach (var type in storeTypeDict.Keys)
+ {
+ var configs = storeTypeDict[type];
+ configs.Sort(CompareByShopSort);
+ }
+ }
+
+ private Dictionary<int, List<int>> AnalysisJobReplace(StoreConfig storeConfig)
+ {
+ if (storeConfig == null || string.IsNullOrEmpty(storeConfig.JobItem)) return null;
+
+ Dictionary<int, List<int>> replaceDict = new Dictionary<int, List<int>>();
+ JsonData jsonData = JsonMapper.ToObject(storeConfig.JobItem);
+ if (jsonData.IsArray)
+ {
+ for (int i = 0; i < jsonData.Count; i++)
+ {
+ List<int> idlist = new List<int>();
+ replaceDict.Add(i, idlist);
+ if (jsonData[i].IsArray)
+ {
+ for (int j = 0; j < jsonData[i].Count; j++)
+ {
+ int itemId = int.Parse(jsonData[i][j].ToString());
+ idlist.Add(itemId);
+ }
+ }
+ }
+ }
+ return replaceDict;
+ }
+
+ public int CompareByShopSort(StoreData start, StoreData end)
+ {
+ int sort1 = start.storeConfig.ShopSort;
+ int sort2 = end.storeConfig.ShopSort;
+
+ return sort1.CompareTo(sort2);
+ }
+
+ public class StoreData
+ {
+ public int shopId;
+ public StoreConfig storeConfig;
+ public Dictionary<int, List<int>> jobReplaceDict;
+ }
+ #endregion
+
+ #region 鑾峰彇鏁版嵁
+
+ private Dictionary<int, List<StoreData>> showStoreTypeDict = new Dictionary<int, List<StoreData>>();
+
+ private Dictionary<int, Dictionary<int, List<StoreData>>> showStoreSecondTypeDict = new Dictionary<int, Dictionary<int, List<StoreData>>>();
+
+
+ // 鏂拌鍒欏垎浜岀骇鏍囩锛屾鍑芥暟淇濈暀锛屽彟澧炲姞UpdateShowStoreEx鍑芥暟
+ public void UpdateShowStore()
+ {
+ showStoreTypeDict.Clear();
+ int playeLv = PlayerDatas.Instance.baseData.LV;
+ //int vipLevel = PlayerDatas.Instance.baseData.VIPLv;
+ foreach (var type in storeTypeDict.Keys)
+ {
+ var storeDatas = storeTypeDict[type];
+ List<StoreData> showStoreDatas = new List<StoreData>();
+ if (!showStoreTypeDict.ContainsKey(type))
+ {
+ for (int i = 0; i < storeDatas.Count; i++)
+ {
+ var storeData = storeDatas[i];
+ bool isReachLv = playeLv >= storeData.storeConfig.LVSee ? true : false;
+
+ bool isReach = isReachLv;
+ if (isReach)
+ {
+ int remainNum = 0;
+ bool isSellOut = TryGetIsSellOut(storeData.storeConfig, out remainNum);
+ if (storeData.storeConfig.IsHideSellOut != 1)
+ {
+ showStoreDatas.Add(storeData);
+ }
+ else
+ {
+ if (storeData.storeConfig.TheOnlyShop == 1)
+ {
+ if (!CheckTheOnlyShopSellOut(storeData.shopId))
+ {
+ showStoreDatas.Add(storeData);
+ }
+ }
+ else
+ {
+ if (!isSellOut)
+ {
+ showStoreDatas.Add(storeData);
+ }
+ }
+ }
+ }
+
+ }
+ showStoreTypeDict.Add(type, showStoreDatas);
+ }
+ }
+ UpdateShowStoreEx();
+ }
+
+ // 鍟嗗煄鍒嗕簩绾ф爣绛�
+ public void UpdateShowStoreEx()
+ {
+ sortStoreSecondType = true;
+ showStoreSecondTypeDict.Clear();
+ foreach (var type in showStoreTypeDict.Keys)
+ {
+ if (!showStoreSecondTypeDict.ContainsKey(type))
+ showStoreSecondTypeDict[type] = new Dictionary<int, List<StoreData>>();
+
+ foreach (var storeData in showStoreTypeDict[type])
+ {
+
+ foreach (var secondType in storeData.storeConfig.SecondType)
+ {
+ if (!showStoreSecondTypeDict[type].ContainsKey(secondType))
+ showStoreSecondTypeDict[type][secondType] = new List<StoreData>();
+
+ showStoreSecondTypeDict[type][secondType].Add(storeData);
+ }
+
+ }
+ }
+
+ }
+
+ bool sortStoreSecondType = true;
+
+ public void SortStoreSecondType()
+ {
+ //ArrayList lst = new ArrayList(showStoreSecondTypeDict.Keys);
+ if (!sortStoreSecondType)
+ return;
+
+ foreach (var type in showStoreSecondTypeDict.Keys)
+ {
+ foreach (var secondType in showStoreSecondTypeDict[type].Keys)
+ {
+ var storeList = showStoreSecondTypeDict[type][secondType];
+ storeList.Sort(CompareSecondShop);
+ }
+ }
+
+ sortStoreSecondType = false;
+ }
+
+ private bool IsSellOut(StoreData storeData)
+ {
+ int remainNum = 0;
+ if (TryGetIsSellOut(storeData.storeConfig, out remainNum))
+ return true;
+
+ if (storeData.storeConfig.TheOnlyShop == 1 && CheckTheOnlyShopSellOut(storeData.shopId))
+ return true;
+
+ return false;
+ }
+
+ private int CompareSecondShop(StoreData start, StoreData end)
+ {
+ bool isSellOut1 = IsSellOut(start);
+ bool isSellOut2 = IsSellOut(end);
+
+ if (isSellOut1 != isSellOut2)
+ return isSellOut1.CompareTo(isSellOut2);
+ int sort1 = start.storeConfig.ShopSort;
+ int sort2 = end.storeConfig.ShopSort;
+
+ return sort1.CompareTo(sort2);
+ }
+
+ /// <summary>
+ /// 妫�娴嬪敮涓�鍟嗗搧鏄惁宸插敭缃�
+ /// </summary>
+ /// <param name="shopIndex"></param>
+ /// <param name="isTheOnlyShop"></param>
+ /// <returns></returns>
+ public bool CheckTheOnlyShopSellOut(int shopIndex)
+ {
+ StoreConfig storeConfig = StoreConfig.Get(shopIndex);
+ if (storeConfig == null || storeConfig.TheOnlyShop != 1) return false;
+
+ if (theOnlyShopDict.ContainsKey(storeConfig.ItemID))
+ {
+ List<StoreData> datas = theOnlyShopDict[storeConfig.ItemID];
+ for (int i = 0; i < datas.Count; i++)
+ {
+ var data = datas[i];
+ int remainNum = 0;
+ if (TryGetIsSellOut(data.storeConfig, out remainNum))
+ {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ public List<StoreData> TryGetStoreDatas(StoreFunc type)
+ {
+ var results = new List<StoreData>();
+ List<StoreData> datas = null;
+ if (showStoreTypeDict.TryGetValue((int)type, out datas))
+ {
+ results.AddRange(datas);
+ //switch (type)
+ //{
+ // case StoreFunc.MysteryStore:
+ // foreach (var item in datas)
+ // {
+ // if (mysteryCommondities.Contains(item.storeConfig.ID))
+ // {
+ // results.Add(item);
+ // }
+ // }
+
+ // results.Sort((StoreData x, StoreData y) => { return x.storeConfig.MoneyType < y.storeConfig.MoneyType ? -1 : 1; });
+ // break;
+ // default:
+ // results.AddRange(datas);
+ // break;
+ //}
+ }
+
+ return results;
+ }
+
+ // 鑾峰彇浜岀骇鏍囩鍟嗗搧
+ public List<StoreData> TryGetStoreDatasBySecondType(int type, int secondType)
+ {
+ if (!showStoreSecondTypeDict.ContainsKey(type))
+ return null;
+
+ if (!showStoreSecondTypeDict[type].ContainsKey(secondType))
+ return null;
+
+ SortStoreSecondType();
+ return showStoreSecondTypeDict[type][secondType];
+ }
+
+ // 鑾峰緱浜岀骇鏍囩鐨勭涓�涓爣绛剧被鍨�
+ public int GetFirstStoreSecondType(int type, bool jump = true)
+ {
+ if (jump && jumpToItemId != 0)
+ {
+ if (selectSecondType == 0) selectSecondType = 1;
+ return selectSecondType;
+ }
+ if (!showStoreSecondTypeDict.ContainsKey(type))
+ return 1;
+
+ ArrayList sortList = new ArrayList(showStoreSecondTypeDict[type].Keys);
+ sortList.Sort();
+ return (int)sortList[0];
+ }
+
+ // 鑾峰緱浜岀骇鏍囩鐨勭涓�涓爣绛剧被鍨�
+ public ArrayList GetStoreSecondTypeList(int type)
+ {
+ if (!showStoreSecondTypeDict.ContainsKey(type))
+ return null;
+
+ ArrayList sortList = new ArrayList(showStoreSecondTypeDict[type].Keys);
+ sortList.Sort();
+ return sortList;
+ }
+
+ public StoreData GetStoreData(int shopId)
+ {
+ StoreConfig storeConfig = StoreConfig.Get(shopId);
+ if (storeConfig == null) return null;
+
+ List<StoreData> storeDatas = null;
+ storeTypeDict.TryGetValue(storeConfig.ShopType, out storeDatas);
+ if (storeDatas != null)
+ {
+ for (int i = 0; i < storeDatas.Count; i++)
+ {
+ var storeData = storeDatas[i];
+ if (storeData.shopId == shopId)
+ {
+ return storeData;
+ }
+ }
+ }
+ return null;
+ }
+
+ // 涓嶅悓鑱屼笟鏄剧ず涓嶅悓鐗╁搧鐨勬儏鍐�
+ public int GetReplaceId(int shopId, int itemId)
+ {
+ var storeData = GetStoreData(shopId);
+ if (storeData == null) return 0;
+
+ int job = PlayerDatas.Instance.baseData.Job;
+ var replaceDict = storeData.jobReplaceDict;
+ if (replaceDict != null)
+ {
+ foreach (var index in replaceDict.Keys)
+ {
+ var idlist = replaceDict[index];
+ if (idlist.Contains(itemId))
+ {
+ int replaceIndex = job - 1;
+ return idlist[replaceIndex];
+ }
+ }
+ }
+
+ return itemId;
+ }
+
+ public bool TryGetRedTypeByShopId(int shopId, out int type)
+ {
+ type = 0;
+ foreach (var key in storeRedRuleDict.Keys)
+ {
+ List<int> idlist = storeRedRuleDict[key];
+ if (idlist.Contains(shopId))
+ {
+ type = key;
+ return true;
+ }
+ }
+ return false;
+ }
+
+
+
+ public bool TryGetIsSellOut(StoreConfig storeConfig, out int remainCnt)
+ {
+ int canBuyCnt = 0;
+ int addBuyCnt = 0;
+ remainCnt = 0;
+ bool isLimitBuy = TryGetLimitBuy(storeConfig, out canBuyCnt, out addBuyCnt);
+ if (!isLimitBuy) return false;
+
+ remainCnt = canBuyCnt;
+ BuyShopItemLimit shopItemLimit = GetBuyShopLimit((uint)storeConfig.ID);
+ if (shopItemLimit != null)
+ {
+ remainCnt -= shopItemLimit.BuyCnt;
+ }
+
+ if (remainCnt <= 0)
+ {
+ return true;
+ }
+ return false;
+ }
+
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="config"></param>
+ /// <param name="canBuyCnt"> 鍙喘涔颁笂闄�</param>
+ /// <param name="addBuyCnt"> 涓嬩竴绾IP澧炲姞鐨勫彲璐拱娆℃暟</param>
+ /// <returns></returns>
+ public bool TryGetLimitBuy(StoreConfig config, out int canBuyCnt, out int addBuyCnt)
+ {
+ canBuyCnt = 0;
+ addBuyCnt = 0;
+ if (config == null) return false;
+
+ int[] canBuyNums = config.GoumaiNumber;
+ if (canBuyNums == null || canBuyNums.Length < 1) return false;
+
+ int curVipIndex = -1;
+ int nexVipIndex = -1;
+ bool isVipBuy = TryGetVipBuy(config, out curVipIndex, out nexVipIndex);
+ if (isVipBuy)
+ {
+ if (curVipIndex != -1)
+ {
+ canBuyCnt = canBuyNums[curVipIndex];
+ }
+
+ if (nexVipIndex != -1)
+ {
+ addBuyCnt = canBuyNums[nexVipIndex] - canBuyCnt;
+ }
+ return true;
+ }
+ else
+ {
+ if (canBuyNums[0] != 0)
+ {
+ canBuyCnt = canBuyNums[0];
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ }
+
+ public bool TryGetVipBuy(StoreConfig config, out int curVipIndex, out int nextVipIndex)
+ {
+ curVipIndex = -1;
+ nextVipIndex = -1;
+ bool isVipBuy = false;
+ if (config == null) return false;
+
+ var vipLvs = config.VIPLV;
+ if (vipLvs == null || vipLvs.Length < 1) return false;
+
+ for (int i = 0; i < vipLvs.Length; i++)
+ {
+ var vipLv = vipLvs[i];
+ if (vipLv != 0)
+ {
+ isVipBuy = true;
+ }
+ }
+
+ if (isVipBuy)
+ {
+ int playerVip = PlayerDatas.Instance.baseData.VIPLv;
+ for (int i = vipLvs.Length - 1; i > -1; i--)
+ {
+ var vipLv = vipLvs[i];
+ if (vipLv > playerVip)
+ {
+ nextVipIndex = i;
+ }
+ else if (vipLv <= playerVip)
+ {
+ curVipIndex = i;
+ break;
+ }
+ }
+
+ }
+
+ return isVipBuy;
+ }
+
+
+
+ public List<StoreData> TryGetStoreDatasByLimit(int type, int limitValue)
+ {
+ string key = StringUtility.Contact(type, limitValue);
+ List<StoreData> datas = null;
+ limitValueShopDict.TryGetValue(key, out datas);
+ return datas;
+ }
+ #endregion
+
+
+
+ public string GetMysteryStoreRefreshTime()
+ {
+ if (GeneralDefine.mysteryShopRefreshInterval == 0)
+ {
+ return "";
+ }
+ var seconds = GeneralDefine.mysteryShopRefreshInterval -
+ (int)((TimeUtility.ServerNow - TimeUtility.createRoleTime).TotalSeconds) % GeneralDefine.mysteryShopRefreshInterval;
+ return Language.Get("StoreWin200", TimeUtility.SecondsToHMS(seconds));
+ }
+
+ private int GetWillRefreshTime()
+ {
+ int willRefresh = (3 - TimeUtility.OpenDay % 3);
+ if (willRefresh == 3)
+ {
+ if (TimeUtility.ServerNow.Hour < 5)
+ {
+ willRefresh = 0;
+ }
+ }
+ int remainHour = 5 - TimeUtility.ServerNow.Hour;
+ int remainMinute = 0 - TimeUtility.ServerNow.Minute;
+ int remainSecond = willRefresh * 24 * 60 * 60 + remainHour * 60 * 60 + remainMinute * 60 - TimeUtility.ServerNow.Second;
+ return remainSecond;
+ }
+
+ int refreshTime = 0;
+ private void UpdateSecond()
+ {
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Store)) return;
+ if (isUpdatePlayerLv)
+ {
+ UpdatePlayerLv();
+ isUpdatePlayerLv = false;
+ }
+ }
+
+ private void UpdatePlayerLv()
+ {
+ UpdateShowStore();
+ UpdateFreeShopRedpoint();
+ UpdateCanBuyRedpoint();
+ UpdateMustBuyRedpoint();
+ }
+
+ private void RefreshPlayerData(PlayerDataType type)
+ {
+ if (type == PlayerDataType.VIPLv)
+ {
+ UpdateShowStore();
+ }
+
+ switch (type)
+ {
+ case PlayerDataType.LV:
+ isUpdatePlayerLv = true;
+ break;
+ case PlayerDataType.VIPLv:
+ case PlayerDataType.Gold:
+ case PlayerDataType.GoldPaper:
+ UpdateFreeShopRedpoint();
+ UpdateCanBuyRedpoint();
+ UpdateDailyRedpoinit();
+ break;
+ case PlayerDataType.UnionLiven:
+ UpdateDailyRedpoinit();
+ break;
+ case PlayerDataType.FBHelpPoint:
+ UpdateFreeShopRedpoint();
+ UpdateCanBuyRedpoint();
+ break;
+ }
+ }
+
+ private void RefreshFamilyLv()
+ {
+ int familyLv = PlayerDatas.Instance.fairyData.fairy.FamilyLV;
+ if (familyLv > GetSaveFairyLV())
+ {
+ ControllerRedPoint();
+ }
+ UpdateDailyRedpoinit();
+ }
+
+ private void RefreshServerHour()
+ {
+ ControllerRedPoint();
+ if (PlayerPrefs.HasKey(MUSTBUYSAVE_KEY))
+ {
+ int[] records = LocalSave.GetIntArray(MUSTBUYSAVE_KEY);
+ if (TimeUtility.ServerNow.Hour >= 5
+ && ((TimeUtility.ServerNow.Day == records[0] && records[1] < 5)
+ || TimeUtility.ServerNow.Day != records[0]))
+ {
+ saveTimes[0] = TimeUtility.ServerNow.Day;
+ saveTimes[1] = TimeUtility.ServerNow.Hour;
+ IsMustBuyDay = true;
+ LocalSave.SetIntArray(MUSTBUYSAVE_KEY, saveTimes);
+ UpdateMustBuyRedpoint();
+ }
+ }
+ if (!PlayerDatas.Instance.fairyData.HasFairy)
+ {
+ PlayerPrefs.DeleteKey(UNIONSTORESAVE_KEY);
+ }
+
+ UpdateDailyRedpoinit();
+ }
+
+ public event Action RefreshBuyShopLimitEvent;
+
+ public StoreFunc storeFuncType = StoreFunc.DayStore;
+ public int jumpStoreFuncType { get; set; }
+ private Dictionary<uint, BuyShopItemLimit> shopItemlimitDict = new Dictionary<uint, BuyShopItemLimit>();
+
+ /// <summary>
+ /// 寰楀埌鐗╁搧璐拱娆℃暟
+ /// </summary>
+ /// <param name="buylimit"></param>
+ public void RefreshBuyShopLimitModel(HA802_tagMCShopItemDayBuyCntInfo buylimit)
+ {
+ Debug.Log("RefreshBuyShopLimitModel" + buylimit.Count);
+ if (buylimit.Count > 0)
+ {
+ int i = 0;
+ for (i = 0; i < buylimit.Count; i++)
+ {
+ if (!shopItemlimitDict.ContainsKey(buylimit.DayBuyCntList[i].ItemIndex))
+ {
+ BuyShopItemLimit shopItemLimit = new BuyShopItemLimit();
+ shopItemLimit.ItemIndex = buylimit.DayBuyCntList[i].ItemIndex;
+ shopItemLimit.BuyCnt = (int)buylimit.DayBuyCntList[i].BuyCnt;
+ shopItemLimit.isReset = buylimit.DayBuyCntList[i].IsReset;
+ shopItemlimitDict.Add(shopItemLimit.ItemIndex, shopItemLimit);
+ }
+ else
+ {
+ shopItemlimitDict[buylimit.DayBuyCntList[i].ItemIndex].BuyCnt = (int)buylimit.DayBuyCntList[i].BuyCnt;
+ shopItemlimitDict[buylimit.DayBuyCntList[i].ItemIndex].isReset = buylimit.DayBuyCntList[i].IsReset;
+ }
+ }
+
+ }
+
+ sortStoreSecondType = true;
+ UpdateShowStore();
+ UpdateFreeShopRedpoint();
+ UpdateCanBuyRedpoint();
+ UpdateMustBuyRedpoint();
+ UpdateDailyRedpoinit();
+ if (RefreshBuyShopLimitEvent != null)
+ RefreshBuyShopLimitEvent();
+ }
+
+ public BuyShopItemLimit GetBuyShopLimit(uint itemIndex)
+ {
+ if (shopItemlimitDict.ContainsKey(itemIndex))
+ {
+ return shopItemlimitDict[itemIndex];
+ }
+ return null;
+ }
+
+
+
+ //鍜孏etShopItemlistEx 涓�鏍� 鑾峰彇鍟嗗簵鐗╁搧鍒楄〃锛屽彧鏄繑鍥炵被鍨嬩笉鍚�
+ List<ShopItemInfo> shopItemlist = new List<ShopItemInfo>();
+ public List<ShopItemInfo> GetShopItemlistByIndex(StoreConfig storeConfig)
+ {
+ if (storeConfig == null) return null;
+
+ shopItemlist.Clear();
+ if (storeConfig.ItemID != 0)
+ {
+ int replaceId = GetReplaceId(storeConfig.ID, storeConfig.ItemID);
+ ShopItemInfo shopItem = new ShopItemInfo(replaceId, storeConfig.ItemCnt);
+ shopItemlist.Add(shopItem);
+ }
+ JsonData extraItem = JsonMapper.ToObject(storeConfig.ItemListEx);
+ if (extraItem.IsArray)
+ {
+ for (int i = 0; i < extraItem.Count; i++)
+ {
+ if (extraItem[i].IsArray)
+ {
+ if (extraItem[i].Count > 0)
+ {
+ int itemId = int.Parse(extraItem[i][0].ToString());
+ int itemCount = int.Parse(extraItem[i][1].ToString());
+ if (itemId != 0)
+ {
+ int extraReplaceId = GetReplaceId(storeConfig.ID, itemId);
+ ShopItemInfo shop = new ShopItemInfo(extraReplaceId, itemCount);
+ shopItemlist.Add(shop);
+ }
+ }
+ }
+ }
+ }
+ return shopItemlist;
+ }
+
+ //鍜孏etShopItemlistByIndex 涓�鏍� 鑾峰彇鍟嗗簵鐗╁搧鍒楄〃锛屽彧鏄繑鍥炵被鍨嬩笉鍚�
+ public List<int[]> GetShopItemlistEx(StoreConfig storeConfig)
+ {
+ if (storeConfig == null) return null;
+
+ List<int[]> shopItemlist = new List<int[]>();
+ if (storeConfig.ItemID != 0)
+ {
+ int replaceId = GetReplaceId(storeConfig.ID, storeConfig.ItemID);
+ shopItemlist.Add(new int[] { replaceId, storeConfig.ItemCnt, 0 });
+ }
+ var extraItem = JsonMapper.ToObject<int[][]>(storeConfig.ItemListEx);
+ for (int i = 0; i < extraItem.Length; i++)
+ {
+ shopItemlist.Add(extraItem[i]);
+ }
+ return shopItemlist;
+ }
+
+ public bool TryGetShopItemInfo(StoreFunc _type, int _id, out List<ShopItemInfo> _shopItems)
+ {
+ _shopItems = null;
+ var _list = TryGetStoreDatas(_type);
+ var _index = _list.FindIndex((x) =>
+ {
+ return x.shopId == _id;
+ });
+ if (_index == -1)
+ {
+ return false;
+ }
+ _shopItems = GetShopItemlistByIndex(_list[_index].storeConfig);
+ return _shopItems != null;
+ }
+
+
+ #region 鐐瑰嚮鍟嗗簵鐗╁搧閫昏緫
+ public void OnClickShopCell(StoreConfig shopInfo)
+ {
+ int itemId = GetReplaceId(shopInfo.ID, shopInfo.ItemID);
+ ItemTipUtility.ShowGood(shopInfo.ID, itemId);
+ }
+
+ public int BuyCnt { get; private set; }
+ public void SetBuyCnt(int buyCnt)
+ {
+ BuyCnt = buyCnt;
+ }
+
+ #endregion
+
+ private ulong _price;
+ public void SendBuyShopItem(StoreConfig model, int count)
+ {
+
+ _price = (ulong)(model.MoneyNumber * count);
+
+ if (MoneyIsEnough(model.MoneyType, _price))
+ {
+ var vipLv = PlayerDatas.Instance.baseData.VIPLv;
+ var itemMinLv = model.VIPLV[0];
+ if (vipLv < itemMinLv)
+ {
+ SysNotifyMgr.Instance.ShowTip("VIPNotEnough", itemMinLv);
+ }
+ else
+ {
+ CA310_tagCMBuyItem buyShop = new CA310_tagCMBuyItem();
+ buyShop.BuyItemIndex = (ushort)model.ID;
+ buyShop.BuyCount = (uint)count;
+ GameNetSystem.Instance.SendInfo(buyShop);
+ }
+ }
+ else
+ {
+ switch (model.MoneyType)
+ {
+ case 1:
+ if (VersionConfig.Get().isBanShu)
+ {
+ SysNotifyMgr.Instance.ShowTip("GoldErr");
+ return;
+ }
+ // WindowCenter.Instance.Open<RechargeTipWin>();
+ break;
+ case 25:
+ SysNotifyMgr.Instance.ShowTip("LackXBMoney", model.MoneyType);
+ break;
+ default:
+ SysNotifyMgr.Instance.ShowTip("LackMoney", model.MoneyType);
+ break;
+ }
+ }
+
+ }
+
+ //浠欑帀璐拱鐗╁搧鐨勪簩娆$‘璁ゆ锛屼竴绾ц揣甯佸彧鏈変粰鐜� 榛樿涓轰粰鐜夊嵆鍙�
+ Dictionary<int, bool> buyItemCheckDict = new Dictionary<int, bool>();
+ //type 瀵瑰簲鏋氫妇 BuyStoreItemCheckType 鏂逛究璁板繂
+ public void SendBuyShopItemWithPopCheck(StoreConfig model, int count, int type = 0)
+ {
+ if (model.MoneyNumber == 0)
+ {
+ //鍏嶈垂鐨�
+ SendBuyShopItem(model, count);
+ return;
+ }
+
+ if (buyItemCheckDict.ContainsKey(type) && buyItemCheckDict[type])
+ {
+ SendBuyShopItem(model, count);
+ return;
+ }
+
+ ConfirmCancel.ToggleConfirmCancel(Language.Get("Mail101"), Language.Get("OSTimeLimitGiftConfirm", model.MoneyNumber),
+ Language.Get("ConfirmCancel102"), (Action<bool, bool>)((bool isOk, bool isToggle) =>
+ {
+ if (isOk)
+ {
+ SendBuyShopItem(model, count);
+ buyItemCheckDict[type] = isToggle;
+ }
+
+ }));
+ }
+
+ //鑺变粰鐜夎喘涔扮殑浜屾纭妗�(鏈鐧诲綍) 榛樿鎻愮ず MysticalQG104 鏄惁鑺辫垂<color=#109d06>{0}</color>浠欑帀杩涜璐拱锛�
+ //type 瀵瑰簲鏋氫妇 BuyStoreItemCheckType 鏂逛究璁板繂
+ public void UseMoneyCheck(int money, Action func, int type = 0, string tip = "MysticalQG104", string fullTip = "")
+ {
+ if (money == 0)
+ {
+ //鍏嶈垂鐨�
+ func?.Invoke();
+ return;
+ }
+
+ if (buyItemCheckDict.ContainsKey(type) && buyItemCheckDict[type])
+ {
+ func?.Invoke();
+ return;
+ }
+
+ ConfirmCancel.ToggleConfirmCancel(Language.Get("Mail101"), fullTip == "" ? Language.Get(tip, money) : fullTip,
+ Language.Get("ConfirmCancel102"), (bool isOk, bool isToggle) =>
+ {
+ if (isOk)
+ {
+ func?.Invoke();
+ buyItemCheckDict[type] = isToggle;
+ }
+
+ });
+ }
+
+
+
+ public event Action<int> RefreshBuyResultEvent;
+
+ public void GetBuyResult(HA811_tagMCShoppingResult result)
+ {
+
+ //Debug.Log("GetBuyResult");
+ StoreConfig tagStore = StoreConfig.Get((int)result.ItemIndex);
+
+ if (tagStore != null)
+ {
+ ItemConfig chinModel = ItemConfig.Get(GetReplaceId(tagStore.ID, tagStore.ItemID));
+ if (tagStore.RemindSuccess == 0)
+ {
+ return;
+ }
+
+ if (RefreshBuyResultEvent != null)
+ {
+ RefreshBuyResultEvent(chinModel.ID);
+ }
+ }
+ }
+
+
+ public bool MoneyIsEnough(int moneyType, ulong money)
+ {
+ if (UIHelper.GetMoneyCnt(moneyType) < money)
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+
+ public int funcOrder { get; private set; }
+ public int jumpToItemId { get; set; }
+
+ /// <summary>
+ /// 浼氬厛娓呬箣鍓嶇殑璺宠浆锛岃皟鐢ㄨ�呰娉ㄦ剰 ClearJump
+ /// </summary>
+ /// <param name="itemId"></param>
+ public void SetJumpToModel(int itemId)
+ {
+ ClearJump();
+ jumpToItemId = itemId;
+ }
+
+ public void ClearJump()
+ {
+ funcOrder = -1;
+ jumpToItemId = 0;
+ }
+
+ public void SetWinOrder(int order)
+ {
+ funcOrder = order;
+ }
+
+ public void OpenStoreWin(bool forceSync = false, int functionOrder = 0, bool useJump = false)
+ {
+ if (useJump && funcOrder != -1)
+ {
+ // WindowCenter.Instance.Open<StoreWin>(forceSync, funcOrder);
+ }
+ else
+ {
+ ClearJump();
+ // WindowCenter.Instance.Open<StoreWin>(forceSync, functionOrder);
+ }
+ }
+
+ public event Action StoreFuncOpenAct;
+
+ private void FuncStateChange(int funcId)
+ {
+ switch ((FuncOpenEnum)funcId)
+ {
+ case FuncOpenEnum.Store:
+ if (StoreFuncOpenAct != null)
+ {
+ StoreFuncOpenAct();
+ }
+ UpdateFreeShopRedpoint();
+ UpdateCanBuyRedpoint();
+ UpdateMustBuyRedpoint();
+ UpdateDailyRedpoinit();
+ break;
+ case FuncOpenEnum.BlastFurnace:
+ ControllerRedPoint();
+ break;
+ }
+ }
+
+ public bool IsNewDay(string recordKey)
+ {
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Store)) return false;
+
+ if (PlayerPrefs.HasKey(recordKey))
+ {
+ int day = LocalSave.GetInt(recordKey);
+ if (day != TimeUtility.ServerNow.Day)
+ {
+ LocalSave.SetInt(recordKey, TimeUtility.ServerNow.Day);
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else
+ {
+ LocalSave.SetInt(recordKey, TimeUtility.ServerNow.Day);
+ return true;
+ }
+ }
+
+ public bool IsRequireDailyRedRemind(int shopId)
+ {
+ var config = StoreConfig.Get(shopId);
+ if (config == null)
+ {
+ return false;
+ }
+ var key = StringUtility.Contact("Store_", config.ShopType, "_", "Daily", shopId);
+ var array = LocalSave.GetIntArray(key);
+ if (array != null && array.Length == 2)
+ {
+ if (array[0] < TimeUtility.Day - 1)
+ {
+ return true;
+ }
+ else if (array[0] == TimeUtility.Day - 1)
+ {
+ return array[1] < 5 || TimeUtility.Hour >= 5;
+ }
+ else if (array[0] == TimeUtility.Day)
+ {
+ return array[1] < 5 && TimeUtility.Hour >= 5;
+ }
+ }
+ return true;
+ }
+
+ public void SetDailyRedRedmind(int shopId)
+ {
+ var config = StoreConfig.Get(shopId);
+ if (config == null)
+ {
+ return;
+ }
+ var key = StringUtility.Contact("Store_", config.ShopType, "_", "Daily", shopId);
+ LocalSave.SetIntArray(key, new int[2] { TimeUtility.Day, TimeUtility.Hour });
+ UpdateDailyRedpoinit();
+ }
+ #region 鍟嗗煄绾㈢偣
+
+ #region 浠欑洘绾㈢偣閫昏緫澶勭悊
+
+ private bool CheckIsBuyNewItem(int fairyLv)
+ {
+ if (fairyLv > GetSaveFairyLV())
+ {
+ var toolStoreDatas = TryGetStoreDatasByLimit((int)StoreFunc.ToolStore, fairyLv);
+ var mountStoreDatas = TryGetStoreDatasByLimit((int)StoreFunc.MountStoneStore, fairyLv);
+ var skillBookStoreData = TryGetStoreDatasByLimit((int)StoreFunc.MountSkillBookStore, fairyLv);
+ if ((toolStoreDatas != null && toolStoreDatas.Count > 0)
+ || (mountStoreDatas != null && mountStoreDatas.Count > 0)
+ || (skillBookStoreData != null && skillBookStoreData.Count > 0))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private bool CheckIsNewMonth()
+ {
+ GetSaveDateTime();
+ if (datelist.Count > 0)
+ {
+ if (TimeUtility.ServerNow.Month == datelist[0])
+ {
+ if (TimeUtility.ServerNow.Day >= 1
+ && TimeUtility.ServerNow.Hour >= 5
+ && datelist[1] <= 1 && datelist[2] < 5)
+ {
+ return true;
+ }
+ }
+ else
+ {
+ if (TimeUtility.ServerNow.Day >= 1
+ && TimeUtility.ServerNow.Hour >= 5)
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ List<int> datelist = new List<int>();
+ public List<int> GetSaveDateTime()
+ {
+ datelist.Clear();
+ int[] unionArray = LocalSave.GetIntArray(UNIONSTORESAVE_KEY);
+ if (unionArray != null && unionArray.Length >= 4)
+ {
+ datelist.Add(unionArray[1]);
+ datelist.Add(unionArray[2]);
+ datelist.Add(unionArray[3]);
+ }
+ return datelist;
+ }
+
+ public int GetSaveFairyLV()
+ {
+ int[] unionArray = LocalSave.GetIntArray(UNIONSTORESAVE_KEY);
+ int fairyLv = 0;
+ if (unionArray != null)
+ {
+ return unionArray[0];
+ }
+ return fairyLv;
+ }
+
+
+ //1浠欑洘绛夌骇 2 鏈堜唤 3 鍙� 4 鍑犵偣
+ public void SetStoreLocalSave(LocalSaveStoreType saveStoreType, params int[] infos)
+ {
+ string key = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, saveStoreType);
+ LocalSave.SetIntArray(key, infos);
+ }
+
+ public void ControllerRedPoint(bool isLook = false)
+ {
+ fairyStoreRemindRedpoint.state = RedPointState.None;
+ if (!FairyModel.Instance.fairyStoreOpen
+ || !FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.BlastFurnace))
+ {
+ return;
+ }
+
+ int familyLv = PlayerDatas.Instance.fairyData.fairy.FamilyLV;
+ if (!isLook)
+ {
+ if (CheckIsBuyNewItem(familyLv))
+ {
+ fairyStoreRemindRedpoint.state = RedPointState.Simple;
+ return;
+ }
+
+ if (CheckIsNewMonth())
+ {
+ fairyStoreRemindRedpoint.state = RedPointState.Simple;
+ return;
+ }
+ }
+
+ SetStoreLocalSave(LocalSaveStoreType.UnionStore, familyLv, TimeUtility.ServerNow.Month,
+ TimeUtility.ServerNow.Day, TimeUtility.ServerNow.Hour);
+ }
+
+ #endregion
+
+ public const int StoreFunc_RedKey = 22;
+ public const int StoreFunc1_RedKey = 2201;
+ public const int StoreFunc2_RedKey = 2202;
+ public const int StoreFunc3_RedKey = 2203;
+ public const int StoreFunc4_RedKey = 2204;
+ public const int StoreFunc5_RedKey = 2205;
+ public const int StoreFunc8_RedKey = 2208;
+ public const int FairyStoreRemind_RedKey = 107010601;
+ public Redpoint storeFuncPoint = new Redpoint(StoreFunc_RedKey);
+ public Redpoint storeFunc1Point = new Redpoint(StoreFunc_RedKey, StoreFunc1_RedKey);
+ public Redpoint storeFunc2Point = new Redpoint(StoreFunc_RedKey, StoreFunc2_RedKey);
+ public Redpoint storeFunc3Point = new Redpoint(StoreFunc_RedKey, StoreFunc3_RedKey);
+ public Redpoint storeFunc4Point = new Redpoint(StoreFunc_RedKey, StoreFunc4_RedKey);
+ public Redpoint storeFunc5Point = new Redpoint(StoreFunc_RedKey, StoreFunc5_RedKey);
+ public Redpoint storeFunc8Point = new Redpoint(MainRedDot.FAIRYStore_REDPOINT_KEY3, StoreFunc8_RedKey);
+ public Redpoint fairyStoreRemindRedpoint = new Redpoint(MainRedDot.FAIRYStore_REDPOINT_KEY3, FairyStoreRemind_RedKey);
+ public Dictionary<int, Redpoint> shopRedDict = new Dictionary<int, Redpoint>();
+ public void SetShopRedpoint()
+ {
+ shopRedDict.Clear();
+ List<StoreConfig> storelist = StoreConfig.GetValues();
+ for (int i = 0; i < storelist.Count; i++)
+ {
+ StoreConfig storeConfig = storelist[i];
+ int redKey = 0;
+ Redpoint redpoint = null;
+ switch (storeConfig.ShopType)
+ {
+ //case 1:
+ // redKey = StoreFunc1_RedKey * 10000 + storeConfig.ID;
+ // redpoint = new Redpoint(StoreFunc1_RedKey, redKey);
+ // shopRedDict.Add(storeConfig.ID, redpoint);
+ // break;
+ //case 2:
+ // redKey = StoreFunc2_RedKey * 10000 + storeConfig.ID;
+ // redpoint = new Redpoint(StoreFunc2_RedKey, redKey);
+ // shopRedDict.Add(storeConfig.ID, redpoint);
+ // break;
+ //case 3:
+ // redKey = StoreFunc3_RedKey * 10000 + storeConfig.ID;
+ // redpoint = new Redpoint(StoreFunc3_RedKey, redKey);
+ // shopRedDict.Add(storeConfig.ID, redpoint);
+ // break;
+ //case 4:
+ // redKey = StoreFunc4_RedKey * 10000 + storeConfig.ID;
+ // redpoint = new Redpoint(StoreFunc4_RedKey, redKey);
+ // shopRedDict.Add(storeConfig.ID, redpoint);
+ // break;
+ //case 5:
+ // redKey = StoreFunc5_RedKey * 10000 + storeConfig.ID;
+ // redpoint = new Redpoint(StoreFunc5_RedKey, redKey);
+ // shopRedDict.Add(storeConfig.ID, redpoint);
+ // break;
+ case 8:
+ redKey = StoreFunc8_RedKey * 10000 + storeConfig.ID;
+ redpoint = new Redpoint(StoreFunc8_RedKey, redKey);
+ shopRedDict.Add(storeConfig.ID, redpoint);
+ break;
+ }
+ }
+ }
+
+ public void UpdateFreeShopRedpoint()
+ {
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Store)) return;
+
+ foreach (var key in showStoreTypeDict.Keys)
+ {
+ var storeDatas = showStoreTypeDict[key];
+ for (int i = 0; i < storeDatas.Count; i++)
+ {
+ var storeConfig = storeDatas[i].storeConfig;
+ int type = 0;
+ TryGetRedTypeByShopId(storeConfig.ID, out type);
+ if (type == 1)
+ {
+ int remainNum = 0;
+ if (shopRedDict.ContainsKey(storeConfig.ID))
+ {
+ if (!TryGetIsSellOut(storeConfig, out remainNum))
+ {
+ shopRedDict[storeConfig.ID].state = RedPointState.Simple;
+ }
+ else
+ {
+ shopRedDict[storeConfig.ID].state = RedPointState.None;
+ }
+ }
+ }
+ }
+
+ }
+ }
+
+ public void UpdateCanBuyRedpoint()
+ {
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Store)) return;
+
+ foreach (var key in showStoreTypeDict.Keys)
+ {
+ var storeDatas = showStoreTypeDict[key];
+ for (int i = 0; i < storeDatas.Count; i++)
+ {
+ var storeConfig = storeDatas[i].storeConfig;
+ int type = 0;
+ TryGetRedTypeByShopId(storeConfig.ID, out type);
+ if (type == 4)
+ {
+ int remainNum = 0;
+ if (shopRedDict.ContainsKey(storeConfig.ID))
+ {
+ if (!TryGetIsSellOut(storeConfig, out remainNum))
+ {
+ if (UIHelper.GetMoneyCnt(storeConfig.MoneyType) >= (ulong)storeConfig.MoneyNumber)
+ {
+ shopRedDict[storeConfig.ID].state = RedPointState.Simple;
+ }
+ else
+ {
+ shopRedDict[storeConfig.ID].state = RedPointState.None;
+ }
+ }
+ else
+ {
+ shopRedDict[storeConfig.ID].state = RedPointState.None;
+ }
+
+ }
+ }
+ }
+
+ }
+ }
+
+ public void UpdateMustBuyRedpoint()
+ {
+ if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Store)) return;
+
+ foreach (var key in showStoreTypeDict.Keys)
+ {
+ var storeDatas = showStoreTypeDict[key];
+ for (int i = 0; i < storeDatas.Count; i++)
+ {
+ var storeConfig = storeDatas[i].storeConfig;
+ int type = 0;
+ TryGetRedTypeByShopId(storeConfig.ID, out type);
+ if (type == 2)
+ {
+ if (shopRedDict.ContainsKey(storeConfig.ID))
+ {
+ if (CheckIsMustBuy(storeConfig))
+ {
+ shopRedDict[storeConfig.ID].state = RedPointState.Simple;
+ }
+ else
+ {
+ shopRedDict[storeConfig.ID].state = RedPointState.None;
+ }
+ }
+ }
+ }
+
+ }
+ }
+
+ public void UpdateDailyRedpoinit()
+ {
+ if (storeRedRuleDict.ContainsKey(6))
+ {
+ var shopIds = storeRedRuleDict[6];
+ var count = 0;
+ foreach (var shopId in shopIds)
+ {
+ var redable = false;
+ var config = StoreConfig.Get(shopId);
+ switch (config.ShopType)
+ {
+ case 8:
+ if (TryGetIsSellOut(config, out count))
+ {
+ break;
+ }
+ if (PlayerDatas.Instance.fairyData.fairy == null)
+ {
+ break;
+ }
+ if (config.VIPLV.Length > 0
+ && PlayerDatas.Instance.baseData.VIPLv < config.VIPLV[0])
+ {
+ break;
+ }
+ if (PlayerDatas.Instance.fairyData.fairy.FamilyLV < config.LimitValue)
+ {
+ break;
+ }
+ if (!MoneyIsEnough(config.MoneyType, (ulong)config.MoneyNumber))
+ {
+ break;
+ }
+ redable = IsRequireDailyRedRemind(shopId);
+ break;
+ }
+
+ if (shopRedDict.ContainsKey(shopId))
+ {
+ shopRedDict[shopId].state = redable ? RedPointState.Simple : RedPointState.None;
+ }
+ }
+ }
+ }
+
+
+
+
+ public void ClearMustBuyRedpoint(StoreConfig storeConfig)
+ {
+ if (!shopRedDict.ContainsKey(storeConfig.ID))
+ return;
+ int type = 0;
+ TryGetRedTypeByShopId(storeConfig.ID, out type);
+ if (type == 2)
+ {
+ shopRedDict[storeConfig.ID].state = RedPointState.None;
+ IsMustBuyDay = false;
+ }
+ else if (type == 1)
+ {
+ shopRedDict[storeConfig.ID].state = RedPointState.None;
+ }
+ }
+
+ public bool IsMustBuyDay { get; private set; }
+ int[] saveTimes = new int[2];
+ public void SetIsMustBuyDay()
+ {
+ if (IsMustBuyDay) return;
+
+ saveTimes[0] = TimeUtility.ServerNow.Day;
+ saveTimes[1] = TimeUtility.ServerNow.Hour;
+ if (PlayerPrefs.HasKey(MUSTBUYSAVE_KEY))
+ {
+ int[] records = LocalSave.GetIntArray(MUSTBUYSAVE_KEY);
+ if (TimeUtility.ServerNow.Hour >= 5
+ && ((TimeUtility.ServerNow.Day == records[0] && records[1] < 5)
+ || TimeUtility.ServerNow.Day != records[0]))
+ {
+ IsMustBuyDay = true;
+ LocalSave.SetIntArray(MUSTBUYSAVE_KEY, saveTimes);
+ }
+ else
+ {
+ IsMustBuyDay = false;
+ }
+ }
+ else
+ {
+ IsMustBuyDay = true;
+ LocalSave.SetIntArray(MUSTBUYSAVE_KEY, saveTimes);
+ }
+ }
+
+ public bool CheckIsMustBuy(StoreConfig config)
+ {
+ int remainNum = 0;
+ if (!TryGetIsSellOut(config, out remainNum) && IsMustBuyDay)
+ {
+ return true;
+ }
+ return false;
+ }
+
+
+ public void ClearPetAndMountRedpoint(StoreConfig storeConfig)
+ {
+ ItemConfig itemConfig = ItemConfig.Get(storeConfig.ItemID);
+ switch (itemConfig.Type)
+ {
+ case 26:
+ case 41:
+ string key = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "ShopId", storeConfig.ID);
+ if (shopRedDict.ContainsKey(storeConfig.ID) && shopRedDict[storeConfig.ID].state == RedPointState.Simple)
+ {
+ shopRedDict[storeConfig.ID].state = RedPointState.None;
+ LocalSave.SetBool(key, false);
+ }
+ break;
+ }
+ }
+
+ public void ClearAllPetAndMountRedpoint(StoreFunc storeFunc)
+ {
+ if (storeFuncType == StoreFunc.BindStore && storeFunc != StoreFunc.BindStore)
+ {
+ foreach (var key in shopRedDict.Keys)
+ {
+ StoreConfig storeConfig = StoreConfig.Get(key);
+ ItemConfig itemConfig = ItemConfig.Get(storeConfig.ItemID);
+ switch (itemConfig.Type)
+ {
+ case 26:
+ case 41:
+ if (shopRedDict.ContainsKey(key) && shopRedDict[key].state != RedPointState.None)
+ {
+ string record = StringUtility.Contact(PlayerDatas.Instance.baseData.PlayerID, "ShopId", key);
+ shopRedDict[key].state = RedPointState.None;
+ LocalSave.SetBool(record, false);
+ }
+ break;
+ }
+
+ }
+ }
+
+ }
+
+ public void CloseRedPoint(StoreConfig storeConfig)
+ {
+ ClearMustBuyRedpoint(storeConfig);
+ ClearPetAndMountRedpoint(storeConfig);
+ }
+
+ public void CloseAllRedpoint(StoreFunc storeFunc)
+ {
+ ClearAllPetAndMountRedpoint(storeFunc);
+ }
+ #endregion
+
+
+
+
+}
+
+public enum StoreFunc
+{
+ DayStore = 1, //1锛氭瘡澶╅檺璐�
+ CommonStore = 2, //2锛氬够澧冮榿鍟嗗簵
+ GrowStrongerStore = 3, //3锛氭垚闀垮彉寮�
+ BindStore = 4, //4锛氱粦鐜夊晢鍩�
+ IntegralStore = 5, //5锛氱Н鍒嗗晢鍩�
+ BagStore = 6, //6:闅忚韩鍟嗗簵
+ RuneStore = 7, //7锛氱鍗板晢搴�
+ ToolStore = 8, // 閬撳叿鍟嗗簵
+ MountStoneStore = 9, //鍧愰獞榄傜煶鍟嗗簵
+ MountSkillBookStore = 10,//鍧愰獞鎶�鑳戒功鍟嗗簵
+ XBEquipStore = 11, //瀵诲疂瑁呭鍟嗗簵
+ XBRuneStore = 12, //瀵诲疂绗﹀嵃鍟嗗簵
+ XBToolStore = 13, //瀵诲疂閬撳叿鍟嗗簵
+ OSGift = 14,//寮�鏈嶇ぜ鍖�
+ OSTimeLimitGift = 15,//闄愭椂鐗规儬
+ CrossOneVsOneHonor = 17,//鑽h獕鍟嗗簵
+ MysteryStore = 18, //1锛氱绉樺晢搴�
+ default1,
+ default2, //鏃堕棿绫绘椿鍔� - 濡俠oss鍑瘉鐨勫晢搴� 20
+ default3,
+ QCTrainActStore = 306, //楠戝疇鍏绘垚娲诲姩鍟嗗簵
+ CelestialPalaceStore = 308, //浠欏鍟嗗簵锛堝ぉ閬撻榿锛�
+}
+
+public enum LocalSaveStoreType
+{
+ UnionStore, //浠欑洘鍟嗗簵
+
+}
+
diff --git a/Main/System/Store/StoreModel.cs.meta b/Main/System/Store/StoreModel.cs.meta
new file mode 100644
index 0000000..feed344
--- /dev/null
+++ b/Main/System/Store/StoreModel.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 011b7415c126f9e419ee23cbd873c887
+timeCreated: 1505464356
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Task/TaskManager.cs b/Main/System/Task/TaskManager.cs
index 41632ab..7bb2e2d 100644
--- a/Main/System/Task/TaskManager.cs
+++ b/Main/System/Task/TaskManager.cs
@@ -170,36 +170,36 @@
// StageLoad.Instance.onStageLoadFinish += onStageLoadFinish;
// NPCInteractProcessor.s_NpcInteractEvent += NpcInterac;
- string BossDelayTime = FuncConfigConfig.Get("BossDelayTime").Numerical1;
- BossDelayTimeint = float.Parse(BossDelayTime);
- var Task_Auto = FuncConfigConfig.Get("TaskAuto");
- TaskAutoLv = int.Parse(Task_Auto.Numerical1);
- TaskAutoTime = int.Parse(Task_Auto.Numerical2);
- mainTaskAutoWaitTime = int.Parse(Task_Auto.Numerical3) / 1000f;
- var mapIds = ConfigParse.GetMultipleStr<int>(Task_Auto.Numerical4);
- if (mapIds != null && mapIds.Length > 0)
- {
- allowAutoTaskMapIds.AddRange(mapIds);
- }
+ // string BossDelayTime = FuncConfigConfig.Get("BossDelayTime").Numerical1;
+ // BossDelayTimeint = float.Parse(BossDelayTime);
+ // var Task_Auto = FuncConfigConfig.Get("TaskAuto");
+ // TaskAutoLv = int.Parse(Task_Auto.Numerical1);
+ // TaskAutoTime = int.Parse(Task_Auto.Numerical2);
+ // mainTaskAutoWaitTime = int.Parse(Task_Auto.Numerical3) / 1000f;
+ // var mapIds = ConfigParse.GetMultipleStr<int>(Task_Auto.Numerical4);
+ // if (mapIds != null && mapIds.Length > 0)
+ // {
+ // allowAutoTaskMapIds.AddRange(mapIds);
+ // }
- FairyAuTaskCount_Day = int.Parse(FuncConfigConfig.Get("RunTaskCnt").Numerical1.Split('|')[1].Split('_')[1]);
- FairyAuTaskCount_Round = int.Parse(FuncConfigConfig.Get("RunTaskCnt").Numerical2.Split('|')[1].Split('_')[1]);
+ // FairyAuTaskCount_Day = int.Parse(FuncConfigConfig.Get("RunTaskCnt").Numerical1.Split('|')[1].Split('_')[1]);
+ // FairyAuTaskCount_Round = int.Parse(FuncConfigConfig.Get("RunTaskCnt").Numerical2.Split('|')[1].Split('_')[1]);
- var cliengGuardConfig = FuncConfigConfig.Get("ClientGuardDungeon");
- clientGuardDugeonTask = int.Parse(cliengGuardConfig.Numerical5);
+ // var cliengGuardConfig = FuncConfigConfig.Get("ClientGuardDungeon");
+ // clientGuardDugeonTask = int.Parse(cliengGuardConfig.Numerical5);
- var funcConfig = FuncConfigConfig.Get("AutoSelectTaskChain");
- var taskChainArray = LitJson.JsonMapper.ToObject<int[][]>(funcConfig.Numerical1);
- if (taskChainArray != null)
- {
- for (int i = 0; i < taskChainArray.Length; i++)
- {
- priorityTaskChains.Add(taskChainArray[i]);
- }
- }
- var config = FuncConfigConfig.Get("NPCTalk");
- npcImages = JsonMapper.ToObject<List<int>>(config.Numerical1);
- playerJobImages = JsonMapper.ToObject<List<int>>(config.Numerical2);
+ // var funcConfig = FuncConfigConfig.Get("AutoSelectTaskChain");
+ // var taskChainArray = LitJson.JsonMapper.ToObject<int[][]>(funcConfig.Numerical1);
+ // if (taskChainArray != null)
+ // {
+ // for (int i = 0; i < taskChainArray.Length; i++)
+ // {
+ // priorityTaskChains.Add(taskChainArray[i]);
+ // }
+ // }
+ // var config = FuncConfigConfig.Get("NPCTalk");
+ // npcImages = JsonMapper.ToObject<List<int>>(config.Numerical1);
+ // playerJobImages = JsonMapper.ToObject<List<int>>(config.Numerical2);
}
public override void Release()
diff --git a/Main/Utility/EnumHelper.cs b/Main/Utility/EnumHelper.cs
index 66ffe05..0dbdc97 100644
--- a/Main/Utility/EnumHelper.cs
+++ b/Main/Utility/EnumHelper.cs
@@ -1144,6 +1144,7 @@
Quantity = 2,
Full = 3,
GetReward = 4,
+ New = 5,
}
diff --git a/Main/Utility/FontUtility.cs b/Main/Utility/FontUtility.cs
index 876ab17..09d455f 100644
--- a/Main/Utility/FontUtility.cs
+++ b/Main/Utility/FontUtility.cs
@@ -7,12 +7,12 @@
{
static Font m_Preferred;
public static Font preferred {
- get { return m_Preferred ?? (m_Preferred = ResManager.Instance.LoadAsset<Font>("Font", "AlibabaSansTC-55")); }
+ get { return m_Preferred ?? (m_Preferred = ResManager.Instance.LoadAsset<Font>("Font", "GameFont1")); }
}
static Font m_Secondary;
public static Font secondary {
- get { return m_Secondary ?? (m_Secondary = ResManager.Instance.LoadAsset<Font>("Font", "AlibabaSansTC-55")); }
+ get { return m_Secondary ?? (m_Secondary = ResManager.Instance.LoadAsset<Font>("Font", "GameFont2")); }
}
}
diff --git a/Main/Utility/Logic.cs b/Main/Utility/Logic.cs
new file mode 100644
index 0000000..6b7ed9e
--- /dev/null
+++ b/Main/Utility/Logic.cs
@@ -0,0 +1,417 @@
+锘縰sing System;
+using System.Collections.Generic;
+
+public class BaseProperty
+{
+ bool m_Dirty = true;
+ public bool dirty {
+ get {
+ return this.m_Dirty;
+ }
+ set {
+ lock (this)
+ {
+ this.m_Dirty = value;
+ }
+ }
+ }
+
+ public BaseProperty()
+ {
+
+ }
+}
+
+public sealed class LogicInt : BaseProperty
+{
+ int m_Value;
+ public int value {
+ get { return this.m_Value; }
+ set {
+ lock (this)
+ {
+ if (this.m_Value != value)
+ {
+ this.m_Value = value;
+ this.dirty = true;
+ }
+ }
+ }
+ }
+
+ public LogicInt()
+ {
+ }
+
+ public LogicInt(int value)
+ {
+ this.value = value;
+ }
+
+ public int Fetch()
+ {
+ this.dirty = false;
+ return this.m_Value;
+ }
+
+}
+
+public sealed class LogicFloat : BaseProperty
+{
+ float m_Value;
+ public float value {
+ get { return this.m_Value; }
+ set {
+ lock (this)
+ {
+ if (this.m_Value != value)
+ {
+ this.m_Value = value;
+ this.dirty = true;
+ }
+ }
+ }
+ }
+
+ public LogicFloat()
+ {
+ }
+
+ public LogicFloat(float value)
+ {
+ this.value = value;
+ }
+
+ public float Fetch()
+ {
+ this.dirty = false;
+ return this.m_Value;
+ }
+
+}
+
+public sealed class LogicBool : BaseProperty
+{
+ bool m_Value;
+ public bool value {
+ get { return this.m_Value; }
+ set {
+ lock (this)
+ {
+ if (this.m_Value != value)
+ {
+ this.m_Value = value;
+ this.dirty = true;
+ }
+ }
+ }
+ }
+
+ public LogicBool()
+ {
+ }
+
+ public LogicBool(bool value)
+ {
+ this.value = value;
+ }
+
+ public bool Fetch()
+ {
+ this.dirty = false;
+ return this.m_Value;
+ }
+
+}
+
+
+public sealed class LogicString : BaseProperty
+{
+ string m_Value = string.Empty;
+ public string value {
+ get { return this.m_Value; }
+ set {
+ lock (this)
+ {
+ if (this.m_Value != value)
+ {
+ this.m_Value = value;
+ this.dirty = true;
+ }
+ }
+ }
+ }
+
+ public LogicString()
+ {
+ }
+
+ public LogicString(string value)
+ {
+ this.value = value;
+ }
+
+ public string Fetch()
+ {
+ this.dirty = false;
+ return this.m_Value;
+ }
+
+}
+
+
+public sealed class LogicLong : BaseProperty
+{
+ long m_Value;
+ public long value {
+ get { return this.m_Value; }
+ set {
+ lock (this)
+ {
+ if (this.m_Value != value)
+ {
+ this.m_Value = value;
+ this.dirty = true;
+ }
+ }
+ }
+ }
+
+ public LogicLong()
+ {
+ }
+
+ public LogicLong(long value)
+ {
+ this.value = value;
+ }
+
+ public long Fetch()
+ {
+ this.dirty = false;
+ return this.m_Value;
+ }
+
+}
+
+public sealed class LogicInt2 : BaseProperty
+{
+ Int2 m_Value = Int2.zero;
+ public Int2 value {
+ get { return this.m_Value; }
+ set {
+ lock (this)
+ {
+ if (this.m_Value != value)
+ {
+ this.m_Value = value;
+ this.dirty = true;
+ }
+ }
+ }
+ }
+
+ public LogicInt2()
+ {
+ }
+
+ public LogicInt2(Int2 value)
+ {
+ this.value = value;
+ }
+
+ public Int2 Fetch()
+ {
+ this.dirty = false;
+ return this.m_Value;
+ }
+
+}
+
+public sealed class LogicInt3 : BaseProperty
+{
+ Int3 m_Value = Int3.zero;
+ public Int3 value {
+ get { return this.m_Value; }
+ set {
+ lock (this)
+ {
+ if (this.m_Value != value)
+ {
+ this.m_Value = value;
+ this.dirty = true;
+ }
+ }
+ }
+ }
+
+ public LogicInt3()
+ {
+ }
+
+ public LogicInt3(Int3 value)
+ {
+ this.value = value;
+ }
+
+ public Int3 Fetch()
+ {
+ this.dirty = false;
+ return this.m_Value;
+ }
+
+}
+
+public sealed class LogicDateTime : BaseProperty
+{
+ DateTime m_Value = DateTime.MinValue;
+ public DateTime value {
+ get { return this.m_Value; }
+ set {
+ lock (this)
+ {
+ if (this.m_Value != value)
+ {
+ this.m_Value = value;
+ this.dirty = true;
+ }
+ }
+ }
+ }
+
+ public LogicDateTime()
+ {
+ }
+
+ public LogicDateTime(DateTime value)
+ {
+ this.value = value;
+ }
+
+ public DateTime Fetch()
+ {
+ this.dirty = false;
+ return this.m_Value;
+ }
+
+}
+
+public sealed class LogicEnum<T> : BaseProperty where T : struct
+{
+ T m_Value;
+ public T value {
+ get { return this.m_Value; }
+ set {
+ lock (this)
+ {
+ this.m_Value = value;
+ this.dirty = true;
+ }
+ }
+ }
+
+ public LogicEnum(T value)
+ {
+ if (typeof(Enum) != typeof(T).BaseType)
+ {
+ throw new ArgumentException("鍙傛暟蹇呴』鏄灇涓剧被鍨嬶紒");
+ }
+
+ this.value = value;
+ }
+
+ public T Fetch()
+ {
+ this.dirty = false;
+ return this.m_Value;
+ }
+
+}
+
+public sealed class LogicList<T> : BaseProperty
+{
+ List<T> collect = new List<T>();
+
+ public T this[int index] { get { return this.collect[index]; } }
+
+ public int Count { get { return collect.Count; } }
+
+ public void Add(T element)
+ {
+ collect.Add(element);
+ this.dirty = true;
+ }
+
+ public void AddRange(IList<T> elements)
+ {
+ collect.AddRange(elements);
+ this.dirty = true;
+ }
+
+ public void Remove(T element)
+ {
+ collect.Remove(element);
+ this.dirty = true;
+ }
+
+ public void RemoveAt(int index)
+ {
+ collect.RemoveAt(index);
+ this.dirty = true;
+ }
+
+ public bool Contains(T element)
+ {
+ return collect.Contains(element);
+ }
+
+ public void Clear()
+ {
+ collect.Clear();
+ this.dirty = true;
+ }
+
+ public void Sort(Comparison<T> comparison)
+ {
+ collect.Sort(comparison);
+ this.dirty = true;
+ }
+
+ public List<T> Fetch()
+ {
+ this.dirty = false;
+ return this.collect;
+ }
+
+}
+
+public sealed class LogicStruct<T> : BaseProperty where T : struct
+{
+ T m_Value;
+ public T value {
+ get { return this.m_Value; }
+ set {
+ lock (this)
+ {
+ this.m_Value = value;
+ this.dirty = true;
+ }
+ }
+ }
+
+ public LogicStruct()
+ {
+ }
+
+ public LogicStruct(T value)
+ {
+ this.value = value;
+ }
+
+ public T Fetch()
+ {
+ this.dirty = false;
+ return this.m_Value;
+ }
+
+}
\ No newline at end of file
diff --git a/Main/Utility/Logic.cs.meta b/Main/Utility/Logic.cs.meta
new file mode 100644
index 0000000..0d60f8c
--- /dev/null
+++ b/Main/Utility/Logic.cs.meta
@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: faf6a99de5f6e154386b07e2c2f9239e
+timeCreated: 1551234104
+licenseType: Pro
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Utility/SafeAreaUI.cs b/Main/Utility/SafeAreaUI.cs
index b31890f..8f1c476 100644
--- a/Main/Utility/SafeAreaUI.cs
+++ b/Main/Utility/SafeAreaUI.cs
@@ -6,6 +6,7 @@
{
public const int SafeWidth = 75;
+ public const int SafeBottom = 15; //绔栧睆涓嬫柟闂撮殧
public enum SimDevice { None, IphoneX }
public static SimDevice Sim
@@ -62,7 +63,7 @@
if (Screen.height / Screen.width > 1.8)//瀹藉睆闇�瑕侀�傞厤
{
//涓婁笅鍚勯棿闅擲afeWidth
- Panel.offsetMin = new Vector2(0, SafeWidth);
+ Panel.offsetMin = new Vector2(0, SafeBottom);
Panel.offsetMax = new Vector2(0, -SafeWidth);
}
else
--
Gitblit v1.8.0