| #!/usr/bin/python  | 
| # -*- coding: GBK -*-  | 
| #-------------------------------------------------------------------------------  | 
| #  | 
| ##@package   | 
| #  | 
| # @todo:¶ÁÈ¡PY±í  | 
| # @author hxp  | 
| # @date 2018-05-10  | 
| # @version 1.0  | 
| #  | 
| # ÏêϸÃèÊö: ¶ÁÈ¡PY±í  | 
| #  | 
| #-------------------------------------------------------------------------------  | 
| #"""Version = 2018-05-10 12:00"""  | 
| #-------------------------------------------------------------------------------  | 
|   | 
| import FormulaControl  | 
| import ChConfig  | 
| import LogUI  | 
|   | 
| import hashlib  | 
| import os  | 
|   | 
| '''±í½á¹¹¶¨Òå×Öµä  | 
| {  | 
|     ±íÃû:(  | 
|         (×Ö¶ÎÀàÐÍ, ×Ö¶ÎÃû, ÊÇ·ñ²éѯË÷Òý),   | 
|         ...  | 
|         ),  | 
|     ...  | 
| }  | 
| '''  | 
| Def_IpyTable = {  | 
|                 "FuncConfig":(  | 
|                         ("char", "Key", 1),  | 
|                         ("char", "Numerical1", 0),  | 
|                         ("char", "Numerical2", 0),  | 
|                         ("char", "Numerical3", 0),  | 
|                         ("char", "Numerical4", 0),  | 
|                         ("char", "Numerical5", 0),  | 
|                         ),  | 
|   | 
|                 "CreateRole":(  | 
|                         ("BYTE", "RoleType", 1),  | 
|                         ("BYTE", "Job", 0),  | 
|                         ("DWORD", "Face", 0),  | 
|                         ("DWORD", "ModelMark", 0),  | 
|                         ("list", "CreateRoleMap", 0),  | 
|                         ),  | 
|   | 
|                 "CreateRoleLimitServer":(  | 
|                         ("list", "LimitServerGroupIDRangeList", 0),  | 
|                         ("list", "LimitServerGroupIDList", 0),  | 
|                         ),  | 
|   | 
|                 "WorldLV":(  | 
|                         ("WORD", "WorldLV", 1),  | 
|                         ("DWORD", "OpenServerSecond", 0),  | 
|                         ),  | 
|   | 
|                 "Family":(  | 
|                         ("BYTE", "FamilyLV", 1),  | 
|                         ("WORD", "MemberCnt", 0),  | 
|                         ("BYTE", "DeputyLeaderCnt", 0),  | 
|                         ("BYTE", "EliteCnt", 0),  | 
|                         ("DWORD", "NeedMoney", 0),  | 
|                         ("DWORD", "WeekMissionMoneyMax", 0),  | 
|                         ("BYTE", "BossFBCnt", 0),  | 
|                         ),  | 
|   | 
|                 "FamilyBossHurtAward":(  | 
|                         ("BYTE", "AwardType", 1),  | 
|                         ("BYTE", "RecordIndex", 1),  | 
|                         ("DWORD", "NeedHurtTotal", 0),  | 
|                         ("list", "AwardItemList", 0),  | 
|                         ),  | 
|   | 
|                 "FamilyZhenfa":(  | 
|                         ("BYTE", "ZhenfaType", 1),  | 
|                         ("WORD", "ZhenfaLV", 1),  | 
|                         ("DWORD", "LVUpNeedExp", 0),  | 
|                         ),  | 
|   | 
|                 "MarketQuery":(  | 
|                         ("WORD", "QueryType", 1),  | 
|                         ("dict", "LimitInfo", 0),  | 
|                         ),  | 
|   | 
|                 "AuctionItem":(  | 
|                         ("DWORD", "AuctionItemID", 1),  | 
|                         ("BYTE", "NoticeSaleMinutes", 0),  | 
|                         ("WORD", "FamilySaleMinutes", 0),  | 
|                         ("WORD", "WorldSaleMinutes", 0),  | 
|                         ("WORD", "BasePrice", 0),  | 
|                         ("WORD", "BuyoutPrice", 0),  | 
|                         ("WORD", "BiddingAdd", 0),  | 
|                         ("BYTE", "NeedWorldNotify", 0),  | 
|                         ("BYTE", "Sortpriority", 0),  | 
|                         ),  | 
|   | 
|                 "AuctionSystemItem":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("char", "StartTime", 0),  | 
|                         ("char", "EndTime", 0),  | 
|                         ("list", "WorldLVRange", 0),  | 
|                         ("list", "AddRandSecondRange", 0),  | 
|                         ("WORD", "ReplenishCDMinutes", 0),  | 
|                         ("BYTE", "ReplenishAuctionCount", 0),  | 
|                         ("DWORD", "ReplenishItemID", 0),  | 
|                         ("list", "ReplenishEquipInfo", 0),  | 
|                         ("list", "ReplenishEquipPlaces", 0),  | 
|                         ("BYTE", "AuctionCount", 0),  | 
|                         ("list", "RandMinuteRange", 0),  | 
|                         ("list", "ItemCountWeightList", 0),  | 
|                         ("list", "AuctionItemWeightList", 0),  | 
|                         ("list", "RandMailKeyList", 0),  | 
|                         ),  | 
|   | 
|                 "CrossDailyAction":(  | 
|                         ("DWORD", "DailyID", 1),  | 
|                         ("dict", "OpenTimeDict", 0),  | 
|                         ("DWORD", "Duration", 0),  | 
|                         ("dict", "NotifyInfo", 0),  | 
|                         ),  | 
|   | 
|                 "DailyAction":(  | 
|                         ("DWORD", "DailyID", 1),  | 
|                         ("dict", "OpenTimeDict", 0),  | 
|                         ("DWORD", "Duration", 0),  | 
|                         ("dict", "NotifyInfo", 0),  | 
|                         ),  | 
|   | 
|                 "DailyActionCustom":(  | 
|                         ("DWORD", "ID", 0),  | 
|                         ("BYTE", "OpenServerWeek", 1),  | 
|                         ("DWORD", "OpenServerDay", 0),  | 
|                         ("BYTE", "DailyID", 0),  | 
|                         ("list", "OpenTimeList", 0),  | 
|                         ("DWORD", "Duration", 0),  | 
|                         ("dict", "NotifyInfo", 0),  | 
|                         ),  | 
|   | 
|                 "DailyActionCustomMix":(  | 
|                         ("DWORD", "ID", 0),  | 
|                         ("DWORD", "MixServerDay", 1),  | 
|                         ("BYTE", "DailyID", 0),  | 
|                         ("list", "OpenTimeList", 0),  | 
|                         ("DWORD", "Duration", 0),  | 
|                         ("dict", "NotifyInfo", 0),  | 
|                         ),  | 
|   | 
|                 "FBStateTime":(  | 
|                         ("DWORD", "ID", 1),  | 
|                         ("DWORD", "DataMapID", 0),  | 
|                         ("BYTE", "StartWeekday", 0),  | 
|                         ("BYTE", "StartHour", 0),  | 
|                         ("BYTE", "StartMinute", 0),  | 
|                         ("BYTE", "EndHour", 0),  | 
|                         ("BYTE", "EndMinute", 0),  | 
|                         ("BYTE", "CanEnter", 0),  | 
|                         ("BYTE", "StateValue", 0),  | 
|                         ("dict", "NotifyInfoDict", 0),  | 
|                         ),  | 
|   | 
|                 "FBStateTimeCustom":(  | 
|                         ("DWORD", "ID", 0),  | 
|                         ("BYTE", "OpenServerWeek", 1),  | 
|                         ("DWORD", "OpenServerDay", 0),  | 
|                         ("DWORD", "DataMapID", 0),  | 
|                         ("BYTE", "StartHour", 0),  | 
|                         ("BYTE", "StartMinute", 0),  | 
|                         ("BYTE", "EndHour", 0),  | 
|                         ("BYTE", "EndMinute", 0),  | 
|                         ("BYTE", "CanEnter", 0),  | 
|                         ("BYTE", "StateValue", 0),  | 
|                         ("dict", "NotifyInfoDict", 0),  | 
|                         ),  | 
|   | 
|                 "FBStateTimeCustomMix":(  | 
|                         ("DWORD", "ID", 0),  | 
|                         ("DWORD", "MixServerDay", 1),  | 
|                         ("DWORD", "DataMapID", 0),  | 
|                         ("BYTE", "StartHour", 0),  | 
|                         ("BYTE", "StartMinute", 0),  | 
|                         ("BYTE", "EndHour", 0),  | 
|                         ("BYTE", "EndMinute", 0),  | 
|                         ("BYTE", "CanEnter", 0),  | 
|                         ("BYTE", "StateValue", 0),  | 
|                         ("dict", "NotifyInfoDict", 0),  | 
|                         ),  | 
|   | 
|                 "FBFunc":(  | 
|                         ("DWORD", "DataMapID", 1),  | 
|                         ("WORD", "HelpPoint", 0),  | 
|                         ),  | 
|   | 
|                 "FBLine":(  | 
|                         ("DWORD", "DataMapID", 1),  | 
|                         ("BYTE", "LineID", 1),  | 
|                         ("DWORD", "MapID", 0),  | 
|                         ),  | 
|   | 
|                 "FBHelpBattle":(  | 
|                         ("DWORD", "DataMapID", 1),  | 
|                         ("BYTE", "LineID", 1),  | 
|                         ("DWORD", "FightPowerMin", 0),  | 
|                         ("DWORD", "FightPowerMax", 0),  | 
|                         ("WORD", "LVLimit", 0),  | 
|                         ("list", "DayFreeHelpCount", 0),  | 
|                         ),  | 
|   | 
|                 "ChinMap":(  | 
|                         ("DWORD", "MapID", 1),  | 
|                         ("char", "MapName", 0),  | 
|                         ("BYTE", "MapFBType", 0),  | 
|                         ("BYTE", "TeamLimit", 0),  | 
|                         ),  | 
|   | 
|                 "BOSSInfo":(  | 
|                         ("DWORD", "NPCID", 1),  | 
|                         ("DWORD", "MapID", 0),  | 
|                         ("char", "RefreshTime", 0),  | 
|                         ("list", "LVLimit", 0),  | 
|                         ("BYTE", "DiffPer", 0),  | 
|                         ("BYTE", "NoUpdataCnt", 0),  | 
|                         ("DWORD", "StoneNPCID", 0),  | 
|                         ("WORD", "RebornPreNotifyTime", 0),  | 
|                         ("char", "SourceName", 0),  | 
|                         ("BYTE", "CanAssist", 0),  | 
|                         ),  | 
|   | 
|                 "BOSSFirstKill":(  | 
|                         ("DWORD", "NPCID", 1),  | 
|                         ("list", "ServerFirstKillPlayerAward", 0),  | 
|                         ),  | 
|   | 
|                 "OSCBillRankAward":(  | 
|                         ("BYTE", "OSCBillType", 1),  | 
|                         ("BYTE", "RankA", 0),  | 
|                         ("BYTE", "RankB", 0),  | 
|                         ("dict", "RankAward", 0),  | 
|                         ),  | 
|   | 
|                 "QuestionBank":(  | 
|                         ("DWORD", "ID", 1),  | 
|                         ("char", "Answer", 0),  | 
|                         ),  | 
|   | 
|                 "FamilyRedPack":(  | 
|                         ("WORD", "ID", 1),  | 
|                         ("WORD", "GetType", 0),  | 
|                         ("WORD", "MoneyNum", 0),  | 
|                         ("BYTE", "MoneyType", 0),  | 
|                         ("BYTE", "PacketCnt", 0),  | 
|                         ("BYTE", "LeaderOwn", 0),  | 
|                         ("char", "PacketOpenTime", 0),  | 
|                         ("BYTE", "ValidMinutes", 0),  | 
|                         ),  | 
|   | 
|                 "ActFeastRedPacket":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActMark", 0),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ("BYTE", "ResetType", 0),  | 
|                         ("list", "RedPacketIDList", 0),  | 
|                         ("WORD", "LVLimit", 0),  | 
|                         ),  | 
|   | 
|                 "ActFeastLogin":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActMark", 0),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ),  | 
|   | 
|                 "ActFeastWish":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActMark", 0),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("BYTE", "ResetType", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ),  | 
|   | 
|                 "ActFeastTravel":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActMark", 0),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("BYTE", "ResetType", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ),  | 
|   | 
|                 "FuncOpenLV":(  | 
|                         ("DWORD", "FuncId", 1),  | 
|                         ("DWORD", "LimitLV", 0),  | 
|                         ("DWORD", "LimitMagicWeapon", 0),  | 
|                         ("WORD", "LimiRealmLV", 0),  | 
|                         ("BYTE", "LimitVIPLV", 0),  | 
|                         ),  | 
|   | 
|                 "ChinNPC":(  | 
|                         ("DWORD", "NPCID", 1),  | 
|                         ("char", "NPCName", 0),  | 
|                         ("WORD", "LV", 0),  | 
|                         ),  | 
|   | 
|                 "PlayerLV":(  | 
|                         ("WORD", "LV", 1),  | 
|                         ("DWORD", "ReFightPower", 0),  | 
|                         ),  | 
|   | 
|                 "VipPrivilege":(  | 
|                         ("DWORD", "VIPPriID", 1),  | 
|                         ("DWORD", "VIP0", 0),  | 
|                         ("DWORD", "VIP1", 0),  | 
|                         ("DWORD", "VIP2", 0),  | 
|                         ("DWORD", "VIP3", 0),  | 
|                         ("DWORD", "VIP4", 0),  | 
|                         ("DWORD", "VIP5", 0),  | 
|                         ("DWORD", "VIP6", 0),  | 
|                         ("DWORD", "VIP7", 0),  | 
|                         ("DWORD", "VIP8", 0),  | 
|                         ("DWORD", "VIP9", 0),  | 
|                         ("DWORD", "VIP10", 0),  | 
|                         ("DWORD", "VIP11", 0),  | 
|                         ("DWORD", "VIP12", 0),  | 
|                         ("DWORD", "VIP13", 0),  | 
|                         ("DWORD", "VIP14", 0),  | 
|                         ("DWORD", "VIP15", 0),  | 
|                         ),  | 
|   | 
|                 "ActSpringSale":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("BYTE", "ActNum", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("list", "StartTimeList", 0),  | 
|                         ("list", "EndTimeList", 0),  | 
|                         ("WORD", "AdvanceMinutes", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("WORD", "LVLimit", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ),  | 
|   | 
|                 "ActFlashGiftbag":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("BYTE", "ActNum", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("list", "StartTimeList", 0),  | 
|                         ("list", "EndTimeList", 0),  | 
|                         ("WORD", "AdvanceMinutes", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("WORD", "LimitWorldLV", 0),  | 
|                         ("WORD", "LVLimit", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ),  | 
|   | 
|                 "ActDailyGiftbag":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActMark", 0),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ),  | 
|   | 
|                 "ActExpRate":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("list", "ServerGroupIDListExcept", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("list", "StartTimeList", 0),  | 
|                         ("list", "EndTimeList", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("WORD", "LVLimit", 0),  | 
|                         ("DWORD", "AddExpRate", 0),  | 
|                         ),  | 
|   | 
|                 "ActCostRebate":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("BYTE", "ActNum", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ),  | 
|   | 
|                 "ActBuyOne":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("BYTE", "ActNum", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ),  | 
|   | 
|                 "ActCollectWords":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("BYTE", "ActNum", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ),  | 
|   | 
|                 "ActGarbageSorting":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("BYTE", "ActNum", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("BYTE", "ResetType", 0),  | 
|                         ),  | 
|   | 
|                 "ActBossTrial":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("BYTE", "ActNum", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ("BYTE", "ResetType", 0),  | 
|                         ("list", "TemplateIDList", 0),  | 
|                         ),  | 
|   | 
|                 "ActBossTrialTemplate":(  | 
|                         ("DWORD", "TemplateID", 1),  | 
|                         ("BYTE", "Rank", 0),  | 
|                         ("list", "AwardItemList", 0),  | 
|                         ),  | 
|   | 
|                 "ActXianXiaMJ":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("BYTE", "ActNum", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("BYTE", "ResetType", 0),  | 
|                         ),  | 
|   | 
|                 "ActGodGift":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("BYTE", "ActNum", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ),  | 
|   | 
|                 "ActHorsePetFeast":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("BYTE", "ActNum", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("list", "StartTimeList", 0),  | 
|                         ("list", "EndTimeList", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ),  | 
|   | 
|                 "ActBossReborn":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("list", "ServerGroupIDListExcept", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("BYTE", "ResetType", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("WORD", "LVLimit", 0),  | 
|                         ("BYTE", "TemplateID", 0),  | 
|                         ),  | 
|   | 
|                 "ActFairyCeremony":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActMark", 0),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("BYTE", "ResetType", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("WORD", "LVLimit", 0),  | 
|                         ),  | 
|   | 
|                 "UniquenessArrive":(  | 
|                         ("BYTE", "WorldLvNum", 1),  | 
|                         ("DWORD", "Rank", 1),  | 
|                         ("dict", "Award", 0),  | 
|                         ),  | 
|   | 
|                 "ActRealmPoint":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActMark", 0),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("BYTE", "ResetType", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("WORD", "Multiple", 0),  | 
|                         ("WORD", "LVLimit", 0),  | 
|                         ("DWORD", "PointLimit", 0),  | 
|                         ),  | 
|   | 
|                 "ActFlashSale":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("BYTE", "ActNum", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("list", "StartTimeList", 0),  | 
|                         ("list", "EndTimeList", 0),  | 
|                         ("WORD", "AdvanceMinutes", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("WORD", "LVLimit", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ("list", "ShopTypeList", 0),  | 
|                         ),  | 
|   | 
|                 "Store":(  | 
|                         ("DWORD", "ID", 1),  | 
|                         ("DWORD", "ShopType", 0),  | 
|                         ("BYTE", "RefreshType", 0),  | 
|                         ("DWORD", "ServerLimitCnt", 0),  | 
|                         ),  | 
|   | 
|                 "ActWishingWell":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("list", "ServerGroupIDListExcept", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ("BYTE", "ResetType", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("WORD", "LVLimit", 0),  | 
|                         ),  | 
|   | 
|                 "ActRechargePrize":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActMark", 0),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ),  | 
|   | 
|                 "ActRechargeRebateGold":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActMark", 0),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ),  | 
|   | 
|                 "ActGrowupBuy":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActMark", 0),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ),  | 
|   | 
|                 "ActSingleRecharge":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("BYTE", "ActNum", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ),  | 
|   | 
|                 "ActTurntable":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("BYTE", "ActNum", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ),  | 
|   | 
|                 "ActManyDayRecharge":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("BYTE", "ActNum", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ),  | 
|   | 
|                 "ActTotalRecharge":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("BYTE", "ActNum", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ),  | 
|   | 
|                 "CrossZoneComm":(  | 
|                         ("char", "CrossZoneName", 1),  | 
|                         ("BYTE", "ZoneID", 1),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ),  | 
|   | 
|                 "CrossZonePK":(  | 
|                         ("char", "CrossZoneName", 1),  | 
|                         ("BYTE", "ZoneID", 1),  | 
|                         ("char", "ZoneName", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ),  | 
|   | 
|                 "ChampionshipTime":(  | 
|                         ("DWORD", "ID", 1),  | 
|                         ("BYTE", "StartDay", 0),  | 
|                         ("BYTE", "StartHour", 0),  | 
|                         ("BYTE", "StartMinute", 0),  | 
|                         ("BYTE", "EndDay", 0),  | 
|                         ("BYTE", "EndHour", 0),  | 
|                         ("BYTE", "EndMinute", 0),  | 
|                         ("WORD", "StateValue", 0),  | 
|                         ("dict", "NotifyInfo", 0),  | 
|                         ),  | 
|   | 
|                 "ChampionshipRank":(  | 
|                         ("BYTE", "Rank", 1),  | 
|                         ("list", "RankAwardItemList", 0),  | 
|                         ("WORD", "MainOfficialID", 0),  | 
|                         ),  | 
|   | 
|                 "ChampionshipOfficial":(  | 
|                         ("WORD", "OfficialID", 1),  | 
|                         ("list", "JuniorOfficialIDList", 0),  | 
|                         ("list", "DailyAwardItemList", 0),  | 
|                         ("BYTE", "CanBeReplace", 0),  | 
|                         ),  | 
|   | 
|                 "CrossRealmPKSeason":(  | 
|                         ("char", "CrossZoneName", 1),  | 
|                         ("BYTE", "ZoneID", 1),  | 
|                         ("WORD", "SeasonID", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("char", "EndTime", 0),  | 
|                         ),  | 
|   | 
|                 "CrossRealmPKDan":(  | 
|                         ("BYTE", "DanLV", 1),  | 
|                         ("WORD", "LVUpScore", 0),  | 
|                         ("BYTE", "MatchRobotRate", 0),  | 
|                         ("BYTE", "MatchRobotRateEx", 0),  | 
|                         ),  | 
|   | 
|                 "CrossPenglaiZoneMap":(  | 
|                         ("BYTE", "ZoneID", 0),  | 
|                         ("DWORD", "MapID", 1),  | 
|                         ("DWORD", "DataMapID", 1),  | 
|                         ("BYTE", "CopyMapID", 1),  | 
|                         ),  | 
|   | 
|                 "CrossDemonLandZoneMap":(  | 
|                         ("BYTE", "ZoneID", 0),  | 
|                         ("DWORD", "MapID", 1),  | 
|                         ("DWORD", "DataMapID", 1),  | 
|                         ("BYTE", "CopyMapID", 1),  | 
|                         ),  | 
|   | 
|                 "ActWeekParty":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActMark", 0),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("WORD", "AdvanceMinutes", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ("BYTE", "ResetType", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("WORD", "LVLimit", 0),  | 
|                         ),  | 
|   | 
|                 "ActLoginAward":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActMark", 0),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("WORD", "AdvanceMinutes", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ("BYTE", "ResetType", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("WORD", "LVLimit", 0),  | 
|                         ),  | 
|   | 
|                 "ActFeastWeekParty":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActMark", 0),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("WORD", "AdvanceMinutes", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ("BYTE", "ResetType", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("WORD", "LVLimit", 0),  | 
|                         ),  | 
|   | 
|                 "ActNewFairyCeremony":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActMark", 0),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("BYTE", "ResetType", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("WORD", "LVLimit", 0),  | 
|                         ),  | 
|   | 
|                 "NewUniquenessArrive":(  | 
|                         ("BYTE", "WorldLvNum", 1),  | 
|                         ("DWORD", "Rank", 1),  | 
|                         ("dict", "Award", 0),  | 
|                         ),  | 
|   | 
|                 "LoveGift":(  | 
|                         ("BYTE", "GiftNum", 1),  | 
|                         ("float", "AddCharmSelf", 0),  | 
|                         ("float", "AddCharmTag", 0),  | 
|                         ("DWORD", "AddIntimacy", 0),  | 
|                         ("char", "WorldNotifyKey", 0),  | 
|                         ),  | 
|   | 
|                 "Marry":(  | 
|                         ("BYTE", "BridePriceID", 1),  | 
|                         ("BYTE", "CanBuyCount", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ("DWORD", "Prosperity", 0),  | 
|                         ("WORD", "CandyTimes", 0),  | 
|                         ("list", "CandyItemWeightInfo", 0),  | 
|                         ("list", "CandyNotifyItemInfo", 0),  | 
|                         ("list", "BrideGiftItemInfo", 0),  | 
|                         ("char", "WorldNotifyKey", 0),  | 
|                         ),  | 
|   | 
|                 "ActLuckyTreasure":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActMark", 0),  | 
|                         ("list", "PlatformList", 0),  | 
|                         ("list", "ServerGroupIDList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("BYTE", "ResetType", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("WORD", "LVLimit", 0),  | 
|                         ),  | 
|   | 
|                 "CrossActLuckyCloudBuy":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActGroupName", 0),  | 
|                         ("BYTE", "ZoneID", 0),  | 
|                         ("list", "ServerIDRangeList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("list", "StartTimeList", 0),  | 
|                         ("list", "EndTimeList", 0),  | 
|                         ("list", "RoundMaxList", 0),  | 
|                         ("WORD", "LVLimit", 0),  | 
|                         ("list", "TemplateIDList", 0),  | 
|                         ),  | 
|   | 
|                 "CrossActLuckyCloudBuyTemplate":(  | 
|                         ("DWORD", "TemplateID", 1),  | 
|                         ("list", "BaseAwardInfo", 0),  | 
|                         ("list", "RandAwardWeightInfo", 0),  | 
|                         ("list", "SuperItemWeightInfo", 0),  | 
|                         ),  | 
|   | 
|                 "CrossActAllRecharge":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActGroupName", 0),  | 
|                         ("BYTE", "ZoneID", 0),  | 
|                         ("list", "ServerIDRangeList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("list", "TemplateIDList", 0),  | 
|                         ),  | 
|   | 
|                 "CrossActAllRechargeTemplate":(  | 
|                         ("DWORD", "TemplateID", 1),  | 
|                         ("DWORD", "CTGNeed", 0),  | 
|                         ("WORD", "NeedPlayerCount", 0),  | 
|                         ("BYTE", "AwardIndex", 0),  | 
|                         ("list", "AwardItemList", 0),  | 
|                         ),  | 
|   | 
|                 "CrossActCTGBillboard":(  | 
|                         ("DWORD", "CfgID", 1),  | 
|                         ("char", "ActGroupName", 0),  | 
|                         ("BYTE", "ZoneID", 0),  | 
|                         ("list", "ServerIDRangeList", 0),  | 
|                         ("char", "StartDate", 0),  | 
|                         ("char", "EndDate", 0),  | 
|                         ("dict", "NotifyInfoStart", 0),  | 
|                         ("dict", "NotifyInfoEnd", 0),  | 
|                         ("list", "NotifyInfoLoop", 0),  | 
|                         ("BYTE", "IsDayReset", 0),  | 
|                         ("list", "TemplateIDList", 0),  | 
|                         ),  | 
|   | 
|                 "CrossActCTGBillboardOrder":(  | 
|                         ("DWORD", "TemplateID", 1),  | 
|                         ("WORD", "OrderA", 0),  | 
|                         ("WORD", "OrderB", 0),  | 
|                         ("float", "CTGAtleast", 0),  | 
|                         ("list", "AwardItemList", 0),  | 
|                         ),  | 
|   | 
|                 "EquipStarUp":(  | 
|                         ("BYTE", "ClassLV", 1),  | 
|                         ("BYTE", "EquipPlace", 1),  | 
|                         ("BYTE", "Star", 1),  | 
|                         ("list", "CostEquipPlace", 0),  | 
|                         ("BYTE", "IsJobLimit", 0),  | 
|                         ("list", "CostEquipColor", 0),  | 
|                         ("BYTE", "UnSuitRate", 0),  | 
|                         ),  | 
|   | 
|                 "FamilyWarRankAward":(  | 
|                         ("WORD", "WarWorldLV", 1),  | 
|                         ("BYTE", "WarRank", 0),  | 
|                         ("list", "RankAuctionItem", 0),  | 
|                         ),  | 
|   | 
|                 "AssistThanksGift":(  | 
|                         ("DWORD", "GiftID", 1),  | 
|                         ("BYTE", "AssistAwardCount", 0),  | 
|                         ),  | 
|   | 
|                 "FairyDomain":(  | 
|                         ("WORD", "ID", 1),  | 
|                         ("DWORD", "HourCntPubLimit", 0),  | 
|                         ("DWORD", "DayCntPubLimit", 0),  | 
|                         ),  | 
|                 }  | 
|   | 
|   | 
| # ¹¦ÄÜÅäÖñí¸ñ | 
| class IPY_FuncConfig(): | 
|      | 
|     def __init__(self): | 
|         self.Key = ""  | 
|         self.Numerical1 = ""  | 
|         self.Numerical2 = ""  | 
|         self.Numerical3 = ""  | 
|         self.Numerical4 = ""  | 
|         self.Numerical5 = "" | 
|         return | 
|          | 
|     def GetKey(self): return self.Key # ±êʶ  | 
|     def GetNumerical1(self): return self.Numerical1 # Êý¾Ý1  | 
|     def GetNumerical2(self): return self.Numerical2 # Êý¾Ý2  | 
|     def GetNumerical3(self): return self.Numerical3 # Êý¾Ý3  | 
|     def GetNumerical4(self): return self.Numerical4 # Êý¾Ý4  | 
|     def GetNumerical5(self): return self.Numerical5 # Êý¾Ý5 | 
|   | 
| # ´´½Ç±í | 
| class IPY_CreateRole(): | 
|      | 
|     def __init__(self): | 
|         self.RoleType = 0  | 
|         self.Job = 0  | 
|         self.Face = 0  | 
|         self.ModelMark = 0  | 
|         self.CreateRoleMap = [] | 
|         return | 
|          | 
|     def GetRoleType(self): return self.RoleType #  ½ÇÉ«  | 
|     def GetJob(self): return self.Job #  Ö°Òµ  | 
|     def GetFace(self): return self.Face #  Ä¬ÈÏÍ·Ïñ  | 
|     def GetModelMark(self): return self.ModelMark #  Ä¬ÈÏÍâÐÎ  | 
|     def GetCreateRoleMap(self): return self.CreateRoleMap #  ´´½ÇµØÍ¼×ø±êÐÅÏ¢ [dataMapID,posX,posY] | 
|   | 
| # ´´½ÇÏÞÖÆ·þÎñÆ÷ÅäÖñí | 
| class IPY_CreateRoleLimitServer(): | 
|      | 
|     def __init__(self): | 
|         self.LimitServerGroupIDRangeList = []  | 
|         self.LimitServerGroupIDList = [] | 
|         return | 
|          | 
|     def GetLimitServerGroupIDRangeList(self): return self.LimitServerGroupIDRangeList # ÏÞÖÆ´´½ÇµÄ·þÎñÆ÷×éID·¶Î§ÁÐ±í  | 
|     def GetLimitServerGroupIDList(self): return self.LimitServerGroupIDList # ÏÞÖÆ´´½ÇµÄ·þÎñÆ÷×éIDÁбí | 
|   | 
| # ÊÀ½çµÈ¼¶±í¸ñ | 
| class IPY_WorldLV(): | 
|      | 
|     def __init__(self): | 
|         self.WorldLV = 0  | 
|         self.OpenServerSecond = 0 | 
|         return | 
|          | 
|     def GetWorldLV(self): return self.WorldLV # ÊÀ½çµÈ¼¶  | 
|     def GetOpenServerSecond(self): return self.OpenServerSecond # ¿ª·þʱ¼äÃë | 
|   | 
| # ÏÉÃ˱í¸ñ | 
| class IPY_Family(): | 
|      | 
|     def __init__(self): | 
|         self.FamilyLV = 0  | 
|         self.MemberCnt = 0  | 
|         self.DeputyLeaderCnt = 0  | 
|         self.EliteCnt = 0  | 
|         self.NeedMoney = 0  | 
|         self.WeekMissionMoneyMax = 0  | 
|         self.BossFBCnt = 0 | 
|         return | 
|          | 
|     def GetFamilyLV(self): return self.FamilyLV # ÏÉÃ˵ȼ¶  | 
|     def GetMemberCnt(self): return self.MemberCnt # ³ÉÔ±ÊýÁ¿  | 
|     def GetDeputyLeaderCnt(self): return self.DeputyLeaderCnt # ¸±ÃËÖ÷ÊýÁ¿  | 
|     def GetEliteCnt(self): return self.EliteCnt # ¾«Ó¢ÊýÁ¿  | 
|     def GetNeedMoney(self): return self.NeedMoney # Éý¼¶ÐèÒª×ʽð  | 
|     def GetWeekMissionMoneyMax(self): return self.WeekMissionMoneyMax # Ã¿ÖÜÈÎÎñ×î´ó¿É»ñµÃÏÉÃË×ʽð  | 
|     def GetBossFBCnt(self): return self.BossFBCnt # BOSS¸±±¾´ÎÊý | 
|   | 
| # ÏÉÃËÊÔÁ¶ÉËѪ½±Àø±í | 
| class IPY_FamilyBossHurtAward(): | 
|      | 
|     def __init__(self): | 
|         self.AwardType = 0  | 
|         self.RecordIndex = 0  | 
|         self.NeedHurtTotal = 0  | 
|         self.AwardItemList = [] | 
|         return | 
|          | 
|     def GetAwardType(self): return self.AwardType # ½±ÀøÀàÐÍ 1-¸öÈË£»2-ÏÉÃË  | 
|     def GetRecordIndex(self): return self.RecordIndex # ½±Àø¼Ç¼Ë÷Òý£¬Í¬½±ÀøÀàÐÍʱ¼Ç¼Ë÷Òý²»¿ÉÖØ¸´  | 
|     def GetNeedHurtTotal(self): return self.NeedHurtTotal # ËùÐè×ÜÉËѪ  | 
|     def GetAwardItemList(self): return self.AwardItemList # ½±ÀøÎïÆ·Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...] | 
|   | 
| # ÏÉÃËÕ󷨱í | 
| class IPY_FamilyZhenfa(): | 
|      | 
|     def __init__(self): | 
|         self.ZhenfaType = 0  | 
|         self.ZhenfaLV = 0  | 
|         self.LVUpNeedExp = 0 | 
|         return | 
|          | 
|     def GetZhenfaType(self): return self.ZhenfaType #  Õó·¨ÀàÐÍ  | 
|     def GetZhenfaLV(self): return self.ZhenfaLV #  Õ󷨵ȼ¶  | 
|     def GetLVUpNeedExp(self): return self.LVUpNeedExp # ÉýÏÂÒ»¼¶ËùÐè¾Ñé | 
|   | 
| # ¼¯Êвéѯ±í | 
| class IPY_MarketQuery(): | 
|      | 
|     def __init__(self): | 
|         self.QueryType = 0  | 
|         self.LimitInfo = {} | 
|         return | 
|          | 
|     def GetQueryType(self): return self.QueryType # ²éѯÀàÐÍ  | 
|     def GetLimitInfo(self): return self.LimitInfo # ÏÞÖÆÌõ¼þ | 
|   | 
| # ÅÄÂôÎïÆ·±í | 
| class IPY_AuctionItem(): | 
|      | 
|     def __init__(self): | 
|         self.AuctionItemID = 0  | 
|         self.NoticeSaleMinutes = 0  | 
|         self.FamilySaleMinutes = 0  | 
|         self.WorldSaleMinutes = 0  | 
|         self.BasePrice = 0  | 
|         self.BuyoutPrice = 0  | 
|         self.BiddingAdd = 0  | 
|         self.NeedWorldNotify = 0  | 
|         self.Sortpriority = 0 | 
|         return | 
|          | 
|     def GetAuctionItemID(self): return self.AuctionItemID  | 
|     def GetNoticeSaleMinutes(self): return self.NoticeSaleMinutes # Ô¤¸æÅÄÂô·ÖÖÓ  | 
|     def GetFamilySaleMinutes(self): return self.FamilySaleMinutes # ÏÉÃËÅÄÂô·ÖÖÓ  | 
|     def GetWorldSaleMinutes(self): return self.WorldSaleMinutes # È«·þÅÄÂô·ÖÖÓ  | 
|     def GetBasePrice(self): return self.BasePrice # ÆðÅÄ¼Û  | 
|     def GetBuyoutPrice(self): return self.BuyoutPrice # Ò»¿Ú¼Û  | 
|     def GetBiddingAdd(self): return self.BiddingAdd # ¾º¼ÛÔö¼Ó  | 
|     def GetNeedWorldNotify(self): return self.NeedWorldNotify # ÊÇ·ñÐèÒª¹ã²¥  | 
|     def GetSortpriority(self): return self.Sortpriority # ÅÅÐòÓÅÏȼ¶¹é×é | 
|   | 
| # ÅÄÂôÐÐϵͳÅÄÆ·±í | 
| class IPY_AuctionSystemItem(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.StartTime = ""  | 
|         self.EndTime = ""  | 
|         self.WorldLVRange = []  | 
|         self.AddRandSecondRange = []  | 
|         self.ReplenishCDMinutes = 0  | 
|         self.ReplenishAuctionCount = 0  | 
|         self.ReplenishItemID = 0  | 
|         self.ReplenishEquipInfo = []  | 
|         self.ReplenishEquipPlaces = []  | 
|         self.AuctionCount = 0  | 
|         self.RandMinuteRange = []  | 
|         self.ItemCountWeightList = []  | 
|         self.AuctionItemWeightList = []  | 
|         self.RandMailKeyList = [] | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetStartTime(self): return self.StartTime # ¿ªÆôʱ¼ä  | 
|     def GetEndTime(self): return self.EndTime # ½áÊøÊ±¼ä  | 
|     def GetWorldLVRange(self): return self.WorldLVRange # ÊÀ½çµÈ¼¶·¶Î§ÏÞÖÆ  | 
|     def GetAddRandSecondRange(self): return self.AddRandSecondRange # Ã¿¼þÅÄÆ·Ëæ»ú¼ä¸ôÉϼÜÃëÊý ÉÏÏÞ|ÏÂÏÞ  | 
|     def GetReplenishCDMinutes(self): return self.ReplenishCDMinutes # ¶¯Ì¬²¹³äÅÄÆ·¼ä¸ô·ÖÖÓ  | 
|     def GetReplenishAuctionCount(self): return self.ReplenishAuctionCount # ¶¯Ì¬²¹³äÅÄÆ·±£µ×Êý  | 
|     def GetReplenishItemID(self): return self.ReplenishItemID # ¶¯Ì¬²¹³äÎïÆ·ID  | 
|     def GetReplenishEquipInfo(self): return self.ReplenishEquipInfo # ¶¯Ì¬²¹³ä×°±¸ÐÅÏ¢ [½×,ÑÕÉ«,ÊÇ·ñÌ××°]  | 
|     def GetReplenishEquipPlaces(self): return self.ReplenishEquipPlaces # ¶¯Ì¬²¹³äÉϼÜ×°±¸Î»ÁÐ±í  | 
|     def GetAuctionCount(self): return self.AuctionCount # Ö¸¶¨ÉϼܴÎÊý  | 
|     def GetRandMinuteRange(self): return self.RandMinuteRange # Ö¸¶¨ÉϼÜËæ»ú¼ä¸ô·ÖÖÓÏÂÏÞ|ÉÏÏÞ  | 
|     def GetItemCountWeightList(self): return self.ItemCountWeightList # Ö¸¶¨ÉϼÜËæ»ú¼þÊýÈ¨ÖØÁбí, [[È¨ÖØ, ¼þÊý], ...]  | 
|     def GetAuctionItemWeightList(self): return self.AuctionItemWeightList # Ö¸¶¨ÉϼÜÎïÆ·Ëæ»úÈ¨ÖØ, [[È¨ÖØ, ÎïÆ·ID],[È¨ÖØ, [½×,ÑÕÉ«,²¿Î»¼¯ºÏ,ÊÇ·ñÌ××°,ÐǼ¶]] ...]  | 
|     def GetRandMailKeyList(self): return self.RandMailKeyList # Ö¸¶¨ÉϼÜËæ»úÓʼþÁÐ±í£¬ÓÐÅäÖÃʱÉϼܵÄʱºòÔÚÏßÍæ¼Ò»áÊÕµ½Ò»·âÉϼÜÓʼþÌáÐÑ | 
|   | 
| # ¿ç·þÈÕ³£»î¶¯±í | 
| class IPY_CrossDailyAction(): | 
|      | 
|     def __init__(self): | 
|         self.DailyID = 0  | 
|         self.OpenTimeDict = {}  | 
|         self.Duration = 0  | 
|         self.NotifyInfo = {} | 
|         return | 
|          | 
|     def GetDailyID(self): return self.DailyID # »î¶¯ID  | 
|     def GetOpenTimeDict(self): return self.OpenTimeDict # ¿ªÆôʱ¼ä  | 
|     def GetDuration(self): return self.Duration # ³ÖÐøÊ±¼ä, 0Ϊ²»ÏÞÖÆ  | 
|     def GetNotifyInfo(self): return self.NotifyInfo # ¹ã²¥ÌáʾÐÅÏ¢ | 
|   | 
| # ÈÕ³£»î¶¯±í | 
| class IPY_DailyAction(): | 
|      | 
|     def __init__(self): | 
|         self.DailyID = 0  | 
|         self.OpenTimeDict = {}  | 
|         self.Duration = 0  | 
|         self.NotifyInfo = {} | 
|         return | 
|          | 
|     def GetDailyID(self): return self.DailyID # »î¶¯ID  | 
|     def GetOpenTimeDict(self): return self.OpenTimeDict # ¿ªÆôʱ¼ä  | 
|     def GetDuration(self): return self.Duration # ³ÖÐøÊ±¼ä, 0Ϊ²»ÏÞÖÆ  | 
|     def GetNotifyInfo(self): return self.NotifyInfo # ¹ã²¥ÌáʾÐÅÏ¢ | 
|   | 
| # ÈÕ³£»î¶¯±í¶¨ÖƱí | 
| class IPY_DailyActionCustom(): | 
|      | 
|     def __init__(self): | 
|         self.ID = 0  | 
|         self.OpenServerWeek = 0  | 
|         self.OpenServerDay = 0  | 
|         self.DailyID = 0  | 
|         self.OpenTimeList = []  | 
|         self.Duration = 0  | 
|         self.NotifyInfo = {} | 
|         return | 
|          | 
|     def GetID(self): return self.ID # ID  | 
|     def GetOpenServerWeek(self): return self.OpenServerWeek # ¿ª·þÊÇÖܼ¸  | 
|     def GetOpenServerDay(self): return self.OpenServerDay # ¿ª·þµÚ¼¸Ìì  | 
|     def GetDailyID(self): return self.DailyID # ÈÕ³£»î¶¯ID  | 
|     def GetOpenTimeList(self): return self.OpenTimeList # ¿ªÆôʱ¼äÁÐ±í  | 
|     def GetDuration(self): return self.Duration # ³ÖÐøÊ±¼ä, 0Ϊ²»ÏÞÖÆ  | 
|     def GetNotifyInfo(self): return self.NotifyInfo # ¹ã²¥ÌáʾÐÅÏ¢ | 
|   | 
| # ÈÕ³£»î¶¯±í¶¨ÖƱíºÏ·þ | 
| class IPY_DailyActionCustomMix(): | 
|      | 
|     def __init__(self): | 
|         self.ID = 0  | 
|         self.MixServerDay = 0  | 
|         self.DailyID = 0  | 
|         self.OpenTimeList = []  | 
|         self.Duration = 0  | 
|         self.NotifyInfo = {} | 
|         return | 
|          | 
|     def GetID(self): return self.ID # ID  | 
|     def GetMixServerDay(self): return self.MixServerDay # ºÏ·þµÚ¼¸Ìì  | 
|     def GetDailyID(self): return self.DailyID # ÈÕ³£»î¶¯ID  | 
|     def GetOpenTimeList(self): return self.OpenTimeList # ¿ªÆôʱ¼äÁÐ±í  | 
|     def GetDuration(self): return self.Duration # ³ÖÐøÊ±¼ä, 0Ϊ²»ÏÞÖÆ  | 
|     def GetNotifyInfo(self): return self.NotifyInfo # ¹ã²¥ÌáʾÐÅÏ¢ | 
|   | 
| # ¸±±¾×´Ì¬Ê±¼ä±í | 
| class IPY_FBStateTime(): | 
|      | 
|     def __init__(self): | 
|         self.ID = 0  | 
|         self.DataMapID = 0  | 
|         self.StartWeekday = 0  | 
|         self.StartHour = 0  | 
|         self.StartMinute = 0  | 
|         self.EndHour = 0  | 
|         self.EndMinute = 0  | 
|         self.CanEnter = 0  | 
|         self.StateValue = 0  | 
|         self.NotifyInfoDict = {} | 
|         return | 
|          | 
|     def GetID(self): return self.ID # ID  | 
|     def GetDataMapID(self): return self.DataMapID # ËùÊôµÄÍæ·¨Êý¾ÝµØÍ¼ID  | 
|     def GetStartWeekday(self): return self.StartWeekday # ¿ªÊ¼ÐÇÆÚ  | 
|     def GetStartHour(self): return self.StartHour # ¿ªÊ¼Ê±  | 
|     def GetStartMinute(self): return self.StartMinute # ¿ªÊ¼·Ö  | 
|     def GetEndHour(self): return self.EndHour # ½áÊøÊ±  | 
|     def GetEndMinute(self): return self.EndMinute # ½áÊø·Ö  | 
|     def GetCanEnter(self): return self.CanEnter # ÊÇ·ñ¿É½øÈ븱±¾  | 
|     def GetStateValue(self): return self.StateValue # ×´Ì¬Öµ  | 
|     def GetNotifyInfoDict(self): return self.NotifyInfoDict # ¹ã²¥ÌáʾÐÅÏ¢ | 
|   | 
| # ¸±±¾×´Ì¬Ê±¼ä¶¨ÖƱí | 
| class IPY_FBStateTimeCustom(): | 
|      | 
|     def __init__(self): | 
|         self.ID = 0  | 
|         self.OpenServerWeek = 0  | 
|         self.OpenServerDay = 0  | 
|         self.DataMapID = 0  | 
|         self.StartHour = 0  | 
|         self.StartMinute = 0  | 
|         self.EndHour = 0  | 
|         self.EndMinute = 0  | 
|         self.CanEnter = 0  | 
|         self.StateValue = 0  | 
|         self.NotifyInfoDict = {} | 
|         return | 
|          | 
|     def GetID(self): return self.ID # ID  | 
|     def GetOpenServerWeek(self): return self.OpenServerWeek # ¿ª·þÊÇÖܼ¸  | 
|     def GetOpenServerDay(self): return self.OpenServerDay # ¿ª·þµÚ¼¸Ìì  | 
|     def GetDataMapID(self): return self.DataMapID # ËùÊôµÄÍæ·¨Êý¾ÝµØÍ¼ID  | 
|     def GetStartHour(self): return self.StartHour # ¿ªÊ¼Ê±  | 
|     def GetStartMinute(self): return self.StartMinute # ¿ªÊ¼·Ö  | 
|     def GetEndHour(self): return self.EndHour # ½áÊøÊ±  | 
|     def GetEndMinute(self): return self.EndMinute # ½áÊø·Ö  | 
|     def GetCanEnter(self): return self.CanEnter # ÊÇ·ñ¿É½øÈ븱±¾  | 
|     def GetStateValue(self): return self.StateValue # ×´Ì¬Öµ  | 
|     def GetNotifyInfoDict(self): return self.NotifyInfoDict # ¹ã²¥ÌáʾÐÅÏ¢ | 
|   | 
| # ¸±±¾×´Ì¬Ê±¼ä¶¨ÖƱíºÏ·þ | 
| class IPY_FBStateTimeCustomMix(): | 
|      | 
|     def __init__(self): | 
|         self.ID = 0  | 
|         self.MixServerDay = 0  | 
|         self.DataMapID = 0  | 
|         self.StartHour = 0  | 
|         self.StartMinute = 0  | 
|         self.EndHour = 0  | 
|         self.EndMinute = 0  | 
|         self.CanEnter = 0  | 
|         self.StateValue = 0  | 
|         self.NotifyInfoDict = {} | 
|         return | 
|          | 
|     def GetID(self): return self.ID # ID  | 
|     def GetMixServerDay(self): return self.MixServerDay # ºÏ·þµÚ¼¸Ìì  | 
|     def GetDataMapID(self): return self.DataMapID # ËùÊôµÄÍæ·¨Êý¾ÝµØÍ¼ID  | 
|     def GetStartHour(self): return self.StartHour # ¿ªÊ¼Ê±  | 
|     def GetStartMinute(self): return self.StartMinute # ¿ªÊ¼·Ö  | 
|     def GetEndHour(self): return self.EndHour # ½áÊøÊ±  | 
|     def GetEndMinute(self): return self.EndMinute # ½áÊø·Ö  | 
|     def GetCanEnter(self): return self.CanEnter # ÊÇ·ñ¿É½øÈ븱±¾  | 
|     def GetStateValue(self): return self.StateValue # ×´Ì¬Öµ  | 
|     def GetNotifyInfoDict(self): return self.NotifyInfoDict # ¹ã²¥ÌáʾÐÅÏ¢ | 
|   | 
| # ¸±±¾×ܱí | 
| class IPY_FBFunc(): | 
|      | 
|     def __init__(self): | 
|         self.DataMapID = 0  | 
|         self.HelpPoint = 0 | 
|         return | 
|          | 
|     def GetDataMapID(self): return self.DataMapID # Êý¾ÝµØÍ¼ID  | 
|     def GetHelpPoint(self): return self.HelpPoint # ÖúÕ½ÏÉÔµ±Ò(0´ú±í²»¿ÉÖúÕ½) | 
|   | 
| # ¸±±¾¹¦ÄÜÏß·±í | 
| class IPY_FBLine(): | 
|      | 
|     def __init__(self): | 
|         self.DataMapID = 0  | 
|         self.LineID = 0  | 
|         self.MapID = 0 | 
|         return | 
|          | 
|     def GetDataMapID(self): return self.DataMapID # Êý¾ÝµØÍ¼ID  | 
|     def GetLineID(self): return self.LineID # ¹¦ÄÜÏß·ID  | 
|     def GetMapID(self): return self.MapID # ³¡¾°µØÍ¼ID | 
|   | 
| # ¸±±¾ÖúÕ½±í | 
| class IPY_FBHelpBattle(): | 
|      | 
|     def __init__(self): | 
|         self.DataMapID = 0  | 
|         self.LineID = 0  | 
|         self.FightPowerMin = 0  | 
|         self.FightPowerMax = 0  | 
|         self.LVLimit = 0  | 
|         self.DayFreeHelpCount = [] | 
|         return | 
|          | 
|     def GetDataMapID(self): return self.DataMapID # Êý¾ÝµØÍ¼ID  | 
|     def GetLineID(self): return self.LineID # ¹¦ÄÜÏß·ID  | 
|     def GetFightPowerMin(self): return self.FightPowerMin # ÖúÕ½×îµÍÕ½Á¦£¬Ò²ÊǸ±±¾Õ½Á¦  | 
|     def GetFightPowerMax(self): return self.FightPowerMax # ÖúÕ½×î¸ßÕ½Á¦£¬0Ϊ²»ÏÞÖÆ  | 
|     def GetLVLimit(self): return self.LVLimit # ÖúÕ½µÈ¼¶ÏÞÖÆ, 0Ϊ²»ÏÞÖÆ  | 
|     def GetDayFreeHelpCount(self): return self.DayFreeHelpCount # Ã¿ÈÕÃâ·ÑÖúÕ½´ÎÊý£¬[ÿÈÕÃâ·ÑÖúÕ½´ÎÊý, ÊÇ·ñËùÓвãͨÓÃ] | 
|   | 
| # µØÍ¼±í | 
| class IPY_ChinMap(): | 
|      | 
|     def __init__(self): | 
|         self.MapID = 0  | 
|         self.MapName = ""  | 
|         self.MapFBType = 0  | 
|         self.TeamLimit = 0 | 
|         return | 
|          | 
|     def GetMapID(self): return self.MapID # µØÍ¼ID  | 
|     def GetMapName(self): return self.MapName # µØÍ¼Ãû  | 
|     def GetMapFBType(self): return self.MapFBType #  µØÍ¼ÀàÐÍ  | 
|     def GetTeamLimit(self): return self.TeamLimit #  ¶ÓÎéÏÞÖÆÀàÐÍ£»0²»ÏÞ£¬1-²»¿É±ä¸ü£¬2-²»¿É´æÔÚ¶ÓÎé | 
|   | 
| # BOSSÐÅÏ¢±í | 
| class IPY_BOSSInfo(): | 
|      | 
|     def __init__(self): | 
|         self.NPCID = 0  | 
|         self.MapID = 0  | 
|         self.RefreshTime = ""  | 
|         self.LVLimit = []  | 
|         self.DiffPer = 0  | 
|         self.NoUpdataCnt = 0  | 
|         self.StoneNPCID = 0  | 
|         self.RebornPreNotifyTime = 0  | 
|         self.SourceName = ""  | 
|         self.CanAssist = 0 | 
|         return | 
|          | 
|     def GetNPCID(self): return self.NPCID # ID  | 
|     def GetMapID(self): return self.MapID # µØÍ¼ID  | 
|     def GetRefreshTime(self): return self.RefreshTime # Ë¢ÐÂʱ¼ä ²ÎÊý onlineCnt  | 
|     def GetLVLimit(self): return self.LVLimit # ÔÚÏßÈËÎïµÈ¼¶·¶Î§  | 
|     def GetDiffPer(self): return self.DiffPer # °Ù·Ö±ÈÓë֮ǰµÄÎó²îСÓÚX%,Ôò¸üÐÂʵʱÔÚÏßÊýÁ¿  | 
|     def GetNoUpdataCnt(self): return self.NoUpdataCnt # ¶àÉÙ´Îδ¸üÐÂʵʱÔÚÏßÊýÁ¿×Ö¶ÎÊ±Ç¿ÖÆ¸üР | 
|     def GetStoneNPCID(self): return self.StoneNPCID # Ä¹±®NPCID  | 
|     def GetRebornPreNotifyTime(self): return self.RebornPreNotifyTime # ¸´»îǰXÃë֪ͨ  | 
|     def GetSourceName(self): return self.SourceName # BOSSÀ´Ô´  | 
|     def GetCanAssist(self): return self.CanAssist # ÊÇ·ñ¿ÉÐÖú | 
|   | 
| # BossÊ×ɱ | 
| class IPY_BOSSFirstKill(): | 
|      | 
|     def __init__(self): | 
|         self.NPCID = 0  | 
|         self.ServerFirstKillPlayerAward = [] | 
|         return | 
|          | 
|     def GetNPCID(self): return self.NPCID # ID  | 
|     def GetServerFirstKillPlayerAward(self): return self.ServerFirstKillPlayerAward #  È«·þÊ×É±Íæ¼Ò½±Àø [[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...] | 
|   | 
| # È«Ãñ³å°ñÅÅÐн±Àø±í | 
| class IPY_OSCBillRankAward(): | 
|      | 
|     def __init__(self): | 
|         self.OSCBillType = 0  | 
|         self.RankA = 0  | 
|         self.RankB = 0  | 
|         self.RankAward = {} | 
|         return | 
|          | 
|     def GetOSCBillType(self): return self.OSCBillType # ³å°ñÀàÐÍ  | 
|     def GetRankA(self): return self.RankA # ÅÅÃûA  | 
|     def GetRankB(self): return self.RankB # ÖÁÅÅÃûB  | 
|     def GetRankAward(self): return self.RankAward # ÅÅÃû½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý],...], ...} | 
|   | 
| # Ñç»áÌâ¿â±í | 
| class IPY_QuestionBank(): | 
|      | 
|     def __init__(self): | 
|         self.ID = 0  | 
|         self.Answer = "" | 
|         return | 
|          | 
|     def GetID(self): return self.ID # ID  | 
|     def GetAnswer(self): return self.Answer # ´ð°¸ | 
|   | 
| # ÏÉÃ˺ì°ü±í | 
| class IPY_FamilyRedPack(): | 
|      | 
|     def __init__(self): | 
|         self.ID = 0  | 
|         self.GetType = 0  | 
|         self.MoneyNum = 0  | 
|         self.MoneyType = 0  | 
|         self.PacketCnt = 0  | 
|         self.LeaderOwn = 0  | 
|         self.PacketOpenTime = ""  | 
|         self.ValidMinutes = 0 | 
|         return | 
|          | 
|     def GetID(self): return self.ID # ID  | 
|     def GetGetType(self): return self.GetType # »ñµÃ;¾¶  | 
|     def GetMoneyNum(self): return self.MoneyNum # ºì°ü¶î¶È  | 
|     def GetMoneyType(self): return self.MoneyType # ½ðÇ®ÀàÐÍ  | 
|     def GetPacketCnt(self): return self.PacketCnt # ºì°ü¸öÊý  | 
|     def GetLeaderOwn(self): return self.LeaderOwn # ÊÇ·ñ¹éÊôÃËÖ÷  | 
|     def GetPacketOpenTime(self): return self.PacketOpenTime # ·¢·Åºì°üʱ¼äyyyy-MM-dd hh:mm  | 
|     def GetValidMinutes(self): return self.ValidMinutes # ºì°üÓÐЧʱ³¤£¨·Ö£© | 
|   | 
| # ½ÚÈÕºì°üʱ¼ä±í | 
| class IPY_ActFeastRedPacket(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActMark = ""  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.IsDayReset = 0  | 
|         self.ResetType = 0  | 
|         self.RedPacketIDList = []  | 
|         self.LVLimit = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActMark(self): return self.ActMark # »î¶¯×é±ê¼Ç  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà  | 
|     def GetResetType(self): return self.ResetType # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     def GetRedPacketIDList(self): return self.RedPacketIDList # Ã¿ÈÕ¶ÔÓ¦ºì°üIDÁбí[[µÚÒ»Ììºì°üIDÁбí], ...]  | 
|     def GetLVLimit(self): return self.LVLimit # ÏÞÖÆµÈ¼¶ | 
|   | 
| # ½ÚÈյǼ½±ÀøÊ±¼ä±í | 
| class IPY_ActFeastLogin(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActMark = ""  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = "" | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActMark(self): return self.ActMark # »î¶¯×é±ê¼Ç  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ | 
|   | 
| # ½ÚÈÕ×£¸£Ê±¼ä±í | 
| class IPY_ActFeastWish(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActMark = ""  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.ResetType = 0  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = [] | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActMark(self): return self.ActMark # »î¶¯×é±ê¼Ç  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetResetType(self): return self.ResetType # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] | 
|   | 
| # ½ÚÈÕÓÎÀúʱ¼ä±í | 
| class IPY_ActFeastTravel(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActMark = ""  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.ResetType = 0  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = [] | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActMark(self): return self.ActMark # »î¶¯×é±ê¼Ç  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetResetType(self): return self.ResetType # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] | 
|   | 
| # µÈ¼¶¿ªÆô¹¦ÄÜ | 
| class IPY_FuncOpenLV(): | 
|      | 
|     def __init__(self): | 
|         self.FuncId = 0  | 
|         self.LimitLV = 0  | 
|         self.LimitMagicWeapon = 0  | 
|         self.LimiRealmLV = 0  | 
|         self.LimitVIPLV = 0 | 
|         return | 
|          | 
|     def GetFuncId(self): return self.FuncId # ¹¦Äܱêʶ  | 
|     def GetLimitLV(self): return self.LimitLV # ¿ªÆôµÈ¼¶  | 
|     def GetLimitMagicWeapon(self): return self.LimitMagicWeapon # ÐèÒª½âËø·¨±¦ID  | 
|     def GetLimiRealmLV(self): return self.LimiRealmLV # ÐèÒª¾³½çµÈ¼¶  | 
|     def GetLimitVIPLV(self): return self.LimitVIPLV # ÐèÒªVIPµÈ¼¶ | 
|   | 
| # NPC±í | 
| class IPY_ChinNPC(): | 
|      | 
|     def __init__(self): | 
|         self.NPCID = 0  | 
|         self.NPCName = ""  | 
|         self.LV = 0 | 
|         return | 
|          | 
|     def GetNPCID(self): return self.NPCID  | 
|     def GetNPCName(self): return self.NPCName  | 
|     def GetLV(self): return self.LV | 
|   | 
| # Íæ¼ÒµÈ¼¶±í | 
| class IPY_PlayerLV(): | 
|      | 
|     def __init__(self): | 
|         self.LV = 0  | 
|         self.ReFightPower = 0 | 
|         return | 
|          | 
|     def GetLV(self): return self.LV # Íæ¼ÒµÈ¼¶  | 
|     def GetReFightPower(self): return self.ReFightPower # Õ½¶·Á¦ | 
|   | 
| # VIPÌØÈ¨±í | 
| class IPY_VipPrivilege(): | 
|      | 
|     def __init__(self): | 
|         self.VIPPriID = 0  | 
|         self.VIP0 = 0  | 
|         self.VIP1 = 0  | 
|         self.VIP2 = 0  | 
|         self.VIP3 = 0  | 
|         self.VIP4 = 0  | 
|         self.VIP5 = 0  | 
|         self.VIP6 = 0  | 
|         self.VIP7 = 0  | 
|         self.VIP8 = 0  | 
|         self.VIP9 = 0  | 
|         self.VIP10 = 0  | 
|         self.VIP11 = 0  | 
|         self.VIP12 = 0  | 
|         self.VIP13 = 0  | 
|         self.VIP14 = 0  | 
|         self.VIP15 = 0 | 
|         return | 
|          | 
|     def GetVIPPriID(self): return self.VIPPriID # ÌØÈ¨ID  | 
|     def GetVIP0(self): return self.VIP0 # VIP0¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     def GetVIP1(self): return self.VIP1 # VIP1¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     def GetVIP2(self): return self.VIP2 # VIP2¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     def GetVIP3(self): return self.VIP3 # VIP3¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     def GetVIP4(self): return self.VIP4 # VIP4¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     def GetVIP5(self): return self.VIP5 # VIP5¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     def GetVIP6(self): return self.VIP6 # VIP6¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     def GetVIP7(self): return self.VIP7 # VIP7¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     def GetVIP8(self): return self.VIP8 # VIP8¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     def GetVIP9(self): return self.VIP9 # VIP9¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     def GetVIP10(self): return self.VIP10 # VIP10¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     def GetVIP11(self): return self.VIP11 # VIP11¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     def GetVIP12(self): return self.VIP12 # VIP12¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     def GetVIP13(self): return self.VIP13 # VIP13¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     def GetVIP14(self): return self.VIP14 # VIP14¶ÔÓ¦µÄÌØÈ¨Öµ  | 
|     def GetVIP15(self): return self.VIP15 # VIP15¶ÔÓ¦µÄÌØÈ¨Öµ | 
|   | 
| # ÏÞÊ±ÌØ»Ý±í | 
| class IPY_ActSpringSale(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.ActNum = 0  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.StartTimeList = []  | 
|         self.EndTimeList = []  | 
|         self.AdvanceMinutes = 0  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.LVLimit = 0  | 
|         self.IsDayReset = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetActNum(self): return self.ActNum # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetStartTimeList(self): return self.StartTimeList # ¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     def GetEndTimeList(self): return self.EndTimeList # ½áÊøÊ±¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     def GetAdvanceMinutes(self): return self.AdvanceMinutes # Ç°¶ËÌáǰX·ÖÖÓչʾ»î¶¯  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key]  | 
|     def GetLVLimit(self): return self.LVLimit # ÏÞÖÆµÈ¼¶  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà | 
|   | 
| # ÏÞʱÀñ°ü±í | 
| class IPY_ActFlashGiftbag(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.ActNum = 0  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.StartTimeList = []  | 
|         self.EndTimeList = []  | 
|         self.AdvanceMinutes = 0  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.LimitWorldLV = 0  | 
|         self.LVLimit = 0  | 
|         self.IsDayReset = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetActNum(self): return self.ActNum # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetStartTimeList(self): return self.StartTimeList # ¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     def GetEndTimeList(self): return self.EndTimeList # ½áÊøÊ±¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     def GetAdvanceMinutes(self): return self.AdvanceMinutes # Ç°¶ËÌáǰX·ÖÖÓչʾ»î¶¯  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key]  | 
|     def GetLimitWorldLV(self): return self.LimitWorldLV # ÏÞÖÆ¿ªÆôµÄ×îµÍÊÀ½çµÈ¼¶  | 
|     def GetLVLimit(self): return self.LVLimit # ÏÞÖÆµÈ¼¶  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà | 
|   | 
| # Ã¿ÈÕÀñ°ü±í | 
| class IPY_ActDailyGiftbag(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActMark = ""  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = "" | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActMark(self): return self.ActMark # »î¶¯×é±ê¼Ç  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ | 
|   | 
| # Ë«±¶¾Ñé»î¶¯±í | 
| class IPY_ActExpRate(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ServerGroupIDList = []  | 
|         self.ServerGroupIDListExcept = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.StartTimeList = []  | 
|         self.EndTimeList = []  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.LVLimit = 0  | 
|         self.AddExpRate = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷×éIDÁÐ±í  | 
|     def GetServerGroupIDListExcept(self): return self.ServerGroupIDListExcept # ÅųýµÄ·þÎñÆ÷×éIDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetStartTimeList(self): return self.StartTimeList # ¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     def GetEndTimeList(self): return self.EndTimeList # ½áÊøÊ±¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key, [¿ÉÑ¡²ÎÊý1, ...]]  | 
|     def GetLVLimit(self): return self.LVLimit # ÏÞÖÆµÈ¼¶  | 
|     def GetAddExpRate(self): return self.AddExpRate # ¾Ñé±¶Âʼӳɣ¬Íò·ÖÂÊ | 
|   | 
| # Ïû·Ñ·µÀû»î¶¯±í | 
| class IPY_ActCostRebate(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.ActNum = 0  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.IsDayReset = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetActNum(self): return self.ActNum # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key]  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà | 
|   | 
| # ÂòÒ»ËͶà»î¶¯±í | 
| class IPY_ActBuyOne(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.ActNum = 0  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.IsDayReset = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetActNum(self): return self.ActNum # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key]  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà | 
|   | 
| # ¼¯×ֻʱ¼ä±í | 
| class IPY_ActCollectWords(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.ActNum = 0  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = [] | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetActNum(self): return self.ActNum # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] | 
|   | 
| # À¬»ø·ÖÀà»î¶¯Ê±¼ä±í | 
| class IPY_ActGarbageSorting(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.ActNum = 0  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.ResetType = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetActNum(self): return self.ActNum # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key]  | 
|     def GetResetType(self): return self.ResetType # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà | 
|   | 
| # BossÀúÁ·»î¶¯±í | 
| class IPY_ActBossTrial(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.ActNum = 0  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.IsDayReset = 0  | 
|         self.ResetType = 0  | 
|         self.TemplateIDList = [] | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetActNum(self): return self.ActNum # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key]  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà  | 
|     def GetResetType(self): return self.ResetType # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     def GetTemplateIDList(self): return self.TemplateIDList # °ñµ¥Ä£°å±àºÅÁбí | 
|   | 
| # BossÀúÁ·°ñµ¥Ä£°æ±í | 
| class IPY_ActBossTrialTemplate(): | 
|      | 
|     def __init__(self): | 
|         self.TemplateID = 0  | 
|         self.Rank = 0  | 
|         self.AwardItemList = [] | 
|         return | 
|          | 
|     def GetTemplateID(self): return self.TemplateID # Ä£°å±àºÅ  | 
|     def GetRank(self): return self.Rank # Ãû´Î  | 
|     def GetAwardItemList(self): return self.AwardItemList # ½±ÀøÎïÆ·ÐÅÏ¢Áбí [[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...] | 
|   | 
| # ÏÉÏ»ÃØ¾³»î¶¯Ê±¼ä±í | 
| class IPY_ActXianXiaMJ(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.ActNum = 0  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.ResetType = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetActNum(self): return self.ActNum # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key]  | 
|     def GetResetType(self): return self.ResetType # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà | 
|   | 
| # ÌìµÛÀñ°ü»î¶¯Ê±¼ä±í | 
| class IPY_ActGodGift(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.ActNum = 0  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.IsDayReset = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetActNum(self): return self.ActNum # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key]  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà | 
|   | 
| # Æï³èÊ¢Ñç»î¶¯ | 
| class IPY_ActHorsePetFeast(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.ActNum = 0  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.StartTimeList = []  | 
|         self.EndTimeList = []  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.IsDayReset = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetActNum(self): return self.ActNum # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetStartTimeList(self): return self.StartTimeList # ¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     def GetEndTimeList(self): return self.EndTimeList # ½áÊøÊ±¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà | 
|   | 
| # BOSS¸´»î»î¶¯Ê±¼ä±í | 
| class IPY_ActBossReborn(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ServerGroupIDList = []  | 
|         self.ServerGroupIDListExcept = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.ResetType = 0  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.LVLimit = 0  | 
|         self.TemplateID = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷×éIDÁÐ±í  | 
|     def GetServerGroupIDListExcept(self): return self.ServerGroupIDListExcept # ÅųýµÄ·þÎñÆ÷×éIDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetResetType(self): return self.ResetType # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetLVLimit(self): return self.LVLimit # ÏÞÖÆµÈ¼¶  | 
|     def GetTemplateID(self): return self.TemplateID # Ä£°å±àºÅ | 
|   | 
| # ÏɽçÊ¢µä»î¶¯Ê±¼ä±í | 
| class IPY_ActFairyCeremony(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActMark = ""  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.ResetType = 0  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.LVLimit = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActMark(self): return self.ActMark # »î¶¯×é±ê¼Ç  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetResetType(self): return self.ResetType # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖã»2-5µã¿ªÊ¼0µã½áÊø  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetLVLimit(self): return self.LVLimit # ÏÞÖÆµÈ¼¶ | 
|   | 
| # ÏɽçÊ¢µä-¾ø°æ½µÁÙ±í | 
| class IPY_UniquenessArrive(): | 
|      | 
|     def __init__(self): | 
|         self.WorldLvNum = 0  | 
|         self.Rank = 0  | 
|         self.Award = {} | 
|         return | 
|          | 
|     def GetWorldLvNum(self): return self.WorldLvNum # ÊÀ½çµÈ¼¶µµ  | 
|     def GetRank(self): return self.Rank # ÅÅÃû  | 
|     def GetAward(self): return self.Award # ½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨],...], ...} | 
|   | 
| # ¶à±¶ÐÞÐеã»î¶¯Ê±¼ä±í | 
| class IPY_ActRealmPoint(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActMark = ""  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.ResetType = 0  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.Multiple = 0  | 
|         self.LVLimit = 0  | 
|         self.PointLimit = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActMark(self): return self.ActMark # »î¶¯×é±ê¼Ç  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetResetType(self): return self.ResetType # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetMultiple(self): return self.Multiple # ±¶Êý  | 
|     def GetLVLimit(self): return self.LVLimit # ÏÞÖÆµÈ¼¶  | 
|     def GetPointLimit(self): return self.PointLimit # ÏÞÖÆ¶îÍâÐÞÐеã | 
|   | 
| # ÏÞʱÇÀ¹º±í | 
| class IPY_ActFlashSale(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.ActNum = 0  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.StartTimeList = []  | 
|         self.EndTimeList = []  | 
|         self.AdvanceMinutes = 0  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.LVLimit = 0  | 
|         self.IsDayReset = 0  | 
|         self.ShopTypeList = [] | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetActNum(self): return self.ActNum # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetStartTimeList(self): return self.StartTimeList # ¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     def GetEndTimeList(self): return self.EndTimeList # ½áÊøÊ±¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     def GetAdvanceMinutes(self): return self.AdvanceMinutes # Ç°¶ËÌáǰX·ÖÖÓչʾ»î¶¯  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key]  | 
|     def GetLVLimit(self): return self.LVLimit # ÏÞÖÆµÈ¼¶  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà  | 
|     def GetShopTypeList(self): return self.ShopTypeList # É̵êÀàÐÍÁбí | 
|   | 
| # É̳DZí | 
| class IPY_Store(): | 
|      | 
|     def __init__(self): | 
|         self.ID = 0  | 
|         self.ShopType = 0  | 
|         self.RefreshType = 0  | 
|         self.ServerLimitCnt = 0 | 
|         return | 
|          | 
|     def GetID(self): return self.ID # ID  | 
|     def GetShopType(self): return self.ShopType # É̵êÀàÐÍ  | 
|     def GetRefreshType(self): return self.RefreshType # Ë¢ÐÂÀàÐÍ 0-²»ÖØÖÃ,1-onWeek0µã,2-onWeek5µã,3-OnDay0µã,4-OnDay5µã  | 
|     def GetServerLimitCnt(self): return self.ServerLimitCnt # È«·þÏÞÖÆÊýÁ¿ | 
|   | 
| # ÐíÔ¸³Ø»î¶¯Ê±¼ä±í | 
| class IPY_ActWishingWell(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ServerGroupIDList = []  | 
|         self.ServerGroupIDListExcept = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.IsDayReset = 0  | 
|         self.ResetType = 0  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.LVLimit = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷×éIDÁÐ±í  | 
|     def GetServerGroupIDListExcept(self): return self.ServerGroupIDListExcept # ÅųýµÄ·þÎñÆ÷×éIDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà  | 
|     def GetResetType(self): return self.ResetType # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key]  | 
|     def GetLVLimit(self): return self.LVLimit # ÏÞÖÆµÈ¼¶ | 
|   | 
| # ³äÖµ·µÀû»î¶¯±í | 
| class IPY_ActRechargePrize(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActMark = ""  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.IsDayReset = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActMark(self): return self.ActMark # »î¶¯×é±ê¼Ç  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key]  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà | 
|   | 
| # ÀۼƳäÖµ·µÀûÏÉÓñ»î¶¯±í | 
| class IPY_ActRechargeRebateGold(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActMark = ""  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.IsDayReset = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActMark(self): return self.ActMark # »î¶¯×é±ê¼Ç  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key]  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà | 
|   | 
| # ³É³¤±ØÂò»î¶¯±í | 
| class IPY_ActGrowupBuy(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActMark = ""  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = [] | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActMark(self): return self.ActMark # »î¶¯×é±ê¼Ç  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] | 
|   | 
| # µ¥±ÊÀÛ³ä»î¶¯±í | 
| class IPY_ActSingleRecharge(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.ActNum = 0  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.IsDayReset = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetActNum(self): return self.ActNum # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key]  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà | 
|   | 
| # ×ªÅ̻±í | 
| class IPY_ActTurntable(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.ActNum = 0  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.IsDayReset = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetActNum(self): return self.ActNum # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà | 
|   | 
| # ¶àÈÕÁ¬³ä»î¶¯±í | 
| class IPY_ActManyDayRecharge(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.ActNum = 0  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = [] | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetActNum(self): return self.ActNum # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] | 
|   | 
| # ÀۼƳäÖµ»î¶¯±í | 
| class IPY_ActTotalRecharge(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.ActNum = 0  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.IsDayReset = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetActNum(self): return self.ActNum # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key]  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà | 
|   | 
| # ¿ç·þ·ÖÇø±íͨÓà | 
| class IPY_CrossZoneComm(): | 
|      | 
|     def __init__(self): | 
|         self.CrossZoneName = ""  | 
|         self.ZoneID = 0  | 
|         self.ServerGroupIDList = [] | 
|         return | 
|          | 
|     def GetCrossZoneName(self): return self.CrossZoneName # ¿ç·þ·ÖÇøÃû  | 
|     def GetZoneID(self): return self.ZoneID # ÈüÇøID  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ÈüÇø·þÎñÆ÷×éIDÁбí | 
|   | 
| # ¿ç·þ·ÖÇø±í¾º¼¼³¡ | 
| class IPY_CrossZonePK(): | 
|      | 
|     def __init__(self): | 
|         self.CrossZoneName = ""  | 
|         self.ZoneID = 0  | 
|         self.ZoneName = ""  | 
|         self.ServerGroupIDList = [] | 
|         return | 
|          | 
|     def GetCrossZoneName(self): return self.CrossZoneName # ¿ç·þ·ÖÇøÃû  | 
|     def GetZoneID(self): return self.ZoneID # ÈüÇøID  | 
|     def GetZoneName(self): return self.ZoneName # ÈüÇøÃû×Ö  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ÈüÇø·þÎñÆ÷×éIDÁбí | 
|   | 
| # ¿ç·þÅÅλÈüÁ÷³Ì±í | 
| class IPY_ChampionshipTime(): | 
|      | 
|     def __init__(self): | 
|         self.ID = 0  | 
|         self.StartDay = 0  | 
|         self.StartHour = 0  | 
|         self.StartMinute = 0  | 
|         self.EndDay = 0  | 
|         self.EndHour = 0  | 
|         self.EndMinute = 0  | 
|         self.StateValue = 0  | 
|         self.NotifyInfo = {} | 
|         return | 
|          | 
|     def GetID(self): return self.ID  | 
|     def GetStartDay(self): return self.StartDay # ¿ªÊ¼Ìì  | 
|     def GetStartHour(self): return self.StartHour # ¿ªÊ¼Ê±  | 
|     def GetStartMinute(self): return self.StartMinute # ¿ªÊ¼·Ö  | 
|     def GetEndDay(self): return self.EndDay # ½áÊøÌì  | 
|     def GetEndHour(self): return self.EndHour # ½áÊøÊ±  | 
|     def GetEndMinute(self): return self.EndMinute # ½áÊø·Ö  | 
|     def GetStateValue(self): return self.StateValue # ×´Ì¬Öµ  | 
|     def GetNotifyInfo(self): return self.NotifyInfo # ¹ã²¥ÌáʾÐÅÏ¢ | 
|   | 
| # ¿ç·þÅÅλ½±Àø±í | 
| class IPY_ChampionshipRank(): | 
|      | 
|     def __init__(self): | 
|         self.Rank = 0  | 
|         self.RankAwardItemList = []  | 
|         self.MainOfficialID = 0 | 
|         return | 
|          | 
|     def GetRank(self): return self.Rank #  Ãû´Î  | 
|     def GetRankAwardItemList(self): return self.RankAwardItemList # Ãû´Î½±ÀøÎïÆ·ÁÐ±í  | 
|     def GetMainOfficialID(self): return self.MainOfficialID # Ö÷¹ÙÖ°ID | 
|   | 
| # ¿ç·þÅÅλ¹ÙÖ°±í | 
| class IPY_ChampionshipOfficial(): | 
|      | 
|     def __init__(self): | 
|         self.OfficialID = 0  | 
|         self.JuniorOfficialIDList = []  | 
|         self.DailyAwardItemList = []  | 
|         self.CanBeReplace = 0 | 
|         return | 
|          | 
|     def GetOfficialID(self): return self.OfficialID #  ¹ÙÖ°ID  | 
|     def GetJuniorOfficialIDList(self): return self.JuniorOfficialIDList # Ï¼¶¹ÙÖ°IDÁÐ±í  | 
|     def GetDailyAwardItemList(self): return self.DailyAwardItemList # ¹ÙְÿÈÕÓʼþ½±ÀøÎïÆ·ÁÐ±í  | 
|     def GetCanBeReplace(self): return self.CanBeReplace # ÊÇ·ñ¿É±»ÌôÕ½Ìæ»» | 
|   | 
| # ¿ç·þ¾º¼¼³¡Èü¼¾±í | 
| class IPY_CrossRealmPKSeason(): | 
|      | 
|     def __init__(self): | 
|         self.CrossZoneName = ""  | 
|         self.ZoneID = 0  | 
|         self.SeasonID = 0  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.EndTime = "" | 
|         return | 
|          | 
|     def GetCrossZoneName(self): return self.CrossZoneName # ¿ç·þ·ÖÇøÃû  | 
|     def GetZoneID(self): return self.ZoneID # ÈüÇøID  | 
|     def GetSeasonID(self): return self.SeasonID # Èü¼¾ID  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÊ¼ÈÕÆÚ    yyyy-MM-dd  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ    yyyy-MM-dd  | 
|     def GetEndTime(self): return self.EndTime # ½áËãʱ¼ä    hh:mm | 
|   | 
| # ¿ç·þ¾º¼¼³¡¶Îλ±í | 
| class IPY_CrossRealmPKDan(): | 
|      | 
|     def __init__(self): | 
|         self.DanLV = 0  | 
|         self.LVUpScore = 0  | 
|         self.MatchRobotRate = 0  | 
|         self.MatchRobotRateEx = 0 | 
|         return | 
|          | 
|     def GetDanLV(self): return self.DanLV # ¶ÎλµÈ¼¶  | 
|     def GetLVUpScore(self): return self.LVUpScore # Éý¶ÎλËùÐè»ý·Ö  | 
|     def GetMatchRobotRate(self): return self.MatchRobotRate # Æ¥Åä»úÆ÷ÈË»ù´¡¸ÅÂÊ£¬°Ù·ÖÂÊ  | 
|     def GetMatchRobotRateEx(self): return self.MatchRobotRateEx # Æ¥Åä»úÆ÷ÈËʧ°Ü´ÎÊý¸½¼Ó¸ÅÂÊ£¬°Ù·ÖÂÊ | 
|   | 
| # ¿ç·þBossÅîÀ³Ïɾ³·ÖÇøµØÍ¼±í | 
| class IPY_CrossPenglaiZoneMap(): | 
|      | 
|     def __init__(self): | 
|         self.ZoneID = 0  | 
|         self.MapID = 0  | 
|         self.DataMapID = 0  | 
|         self.CopyMapID = 0 | 
|         return | 
|          | 
|     def GetZoneID(self): return self.ZoneID # ·ÖÇøID  | 
|     def GetMapID(self): return self.MapID # ³¡¾°µØÍ¼ID  | 
|     def GetDataMapID(self): return self.DataMapID # Êý¾ÝµØÍ¼ID  | 
|     def GetCopyMapID(self): return self.CopyMapID # ÐéÄâÏß·ID | 
|   | 
| # ¿ç·þBossħ»¯Ö®µØ·ÖÇøµØÍ¼±í | 
| class IPY_CrossDemonLandZoneMap(): | 
|      | 
|     def __init__(self): | 
|         self.ZoneID = 0  | 
|         self.MapID = 0  | 
|         self.DataMapID = 0  | 
|         self.CopyMapID = 0 | 
|         return | 
|          | 
|     def GetZoneID(self): return self.ZoneID # ·ÖÇøID  | 
|     def GetMapID(self): return self.MapID # ³¡¾°µØÍ¼ID  | 
|     def GetDataMapID(self): return self.DataMapID # Êý¾ÝµØÍ¼ID  | 
|     def GetCopyMapID(self): return self.CopyMapID # ÐéÄâÏß·ID | 
|   | 
| # ÖÜ¿ñ»¶»î¶¯Ê±¼ä±í | 
| class IPY_ActWeekParty(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActMark = ""  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.AdvanceMinutes = 0  | 
|         self.IsDayReset = 0  | 
|         self.ResetType = 0  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.LVLimit = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActMark(self): return self.ActMark # »î¶¯×é±ê¼Ç  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetAdvanceMinutes(self): return self.AdvanceMinutes # Ç°¶ËÌáǰX·ÖÖÓչʾ»î¶¯  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà  | 
|     def GetResetType(self): return self.ResetType # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetLVLimit(self): return self.LVLimit # ÏÞÖÆµÈ¼¶ | 
|   | 
| # µÇ¼½±ÀøÊ±¼ä±í | 
| class IPY_ActLoginAward(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActMark = ""  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.AdvanceMinutes = 0  | 
|         self.IsDayReset = 0  | 
|         self.ResetType = 0  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.LVLimit = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActMark(self): return self.ActMark # »î¶¯×é±ê¼Ç  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetAdvanceMinutes(self): return self.AdvanceMinutes # Ç°¶ËÌáǰX·ÖÖÓչʾ»î¶¯  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà  | 
|     def GetResetType(self): return self.ResetType # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key]  | 
|     def GetLVLimit(self): return self.LVLimit # ÏÞÖÆµÈ¼¶ | 
|   | 
| # ½ÚÈÕѲÀñ»î¶¯Ê±¼ä±í | 
| class IPY_ActFeastWeekParty(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActMark = ""  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.AdvanceMinutes = 0  | 
|         self.IsDayReset = 0  | 
|         self.ResetType = 0  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.LVLimit = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActMark(self): return self.ActMark # »î¶¯×é±ê¼Ç  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetAdvanceMinutes(self): return self.AdvanceMinutes # Ç°¶ËÌáǰX·ÖÖÓչʾ»î¶¯  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà  | 
|     def GetResetType(self): return self.ResetType # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetLVLimit(self): return self.LVLimit # ÏÞÖÆµÈ¼¶ | 
|   | 
| # ÐÂÏɽçÊ¢µä»î¶¯Ê±¼ä±í | 
| class IPY_ActNewFairyCeremony(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActMark = ""  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.ResetType = 0  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.LVLimit = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActMark(self): return self.ActMark # »î¶¯×é±ê¼Ç  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetResetType(self): return self.ResetType # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖã»2-5µã¿ªÊ¼0µã½áÊø  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetLVLimit(self): return self.LVLimit # ÏÞÖÆµÈ¼¶ | 
|   | 
| # ÐÂÏɽçÊ¢µä-¾ø°æ½µÁÙ±í | 
| class IPY_NewUniquenessArrive(): | 
|      | 
|     def __init__(self): | 
|         self.WorldLvNum = 0  | 
|         self.Rank = 0  | 
|         self.Award = {} | 
|         return | 
|          | 
|     def GetWorldLvNum(self): return self.WorldLvNum # ÊÀ½çµÈ¼¶µµ  | 
|     def GetRank(self): return self.Rank # ÅÅÃû  | 
|     def GetAward(self): return self.Award # ½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨],...], ...} | 
|   | 
| # ÇéÔµÀñÎï±í | 
| class IPY_LoveGift(): | 
|      | 
|     def __init__(self): | 
|         self.GiftNum = 0  | 
|         self.AddCharmSelf = 0.0  | 
|         self.AddCharmTag = 0.0  | 
|         self.AddIntimacy = 0  | 
|         self.WorldNotifyKey = "" | 
|         return | 
|          | 
|     def GetGiftNum(self): return self.GiftNum # Æ¸ÀñID  | 
|     def GetAddCharmSelf(self): return self.AddCharmSelf # µ¥¸öÔö¼Ó×ÔÉí÷ÈÁ¦  | 
|     def GetAddCharmTag(self): return self.AddCharmTag # µ¥¸öÔö¼Ó¶Ô·½÷ÈÁ¦  | 
|     def GetAddIntimacy(self): return self.AddIntimacy # µ¥¸öÔö¼ÓË«·½Ç×ÃÜ¶È  | 
|     def GetWorldNotifyKey(self): return self.WorldNotifyKey # ¹ã²¥key | 
|   | 
| # ÇéÔµÌáÇ×±í | 
| class IPY_Marry(): | 
|      | 
|     def __init__(self): | 
|         self.BridePriceID = 0  | 
|         self.CanBuyCount = 0  | 
|         self.IsDayReset = 0  | 
|         self.Prosperity = 0  | 
|         self.CandyTimes = 0  | 
|         self.CandyItemWeightInfo = []  | 
|         self.CandyNotifyItemInfo = []  | 
|         self.BrideGiftItemInfo = []  | 
|         self.WorldNotifyKey = "" | 
|         return | 
|          | 
|     def GetBridePriceID(self): return self.BridePriceID # Æ¸ÀñID  | 
|     def GetCanBuyCount(self): return self.CanBuyCount # ¿É¹ºÂò´ÎÊý  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÈÕÖØÖà  | 
|     def GetProsperity(self): return self.Prosperity # ³õʼ·±ÈÙ¶È  | 
|     def GetCandyTimes(self): return self.CandyTimes # Ï²ÌdzÖÐøÊ±¼äÃë  | 
|     def GetCandyItemWeightInfo(self): return self.CandyItemWeightInfo # Ï²ÌÇÎïÆ·¿âÈ¨ÖØÁбí[[È¨ÖØ, ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...]  | 
|     def GetCandyNotifyItemInfo(self): return self.CandyNotifyItemInfo # Ï²ÌÇÐèÒª¹ã²¥µÄÎïÆ·IDÁÐ±í  | 
|     def GetBrideGiftItemInfo(self): return self.BrideGiftItemInfo # Æ¸ÀñÎïÆ·Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...]  | 
|     def GetWorldNotifyKey(self): return self.WorldNotifyKey # ¹ã²¥key | 
|   | 
| # ÐÒÔ˼ø±¦»î¶¯Ê±¼ä±í | 
| class IPY_ActLuckyTreasure(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActMark = ""  | 
|         self.PlatformList = []  | 
|         self.ServerGroupIDList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.ResetType = 0  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.LVLimit = 0 | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActMark(self): return self.ActMark # »î¶¯×é±ê¼Ç  | 
|     def GetPlatformList(self): return self.PlatformList # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ  | 
|     def GetServerGroupIDList(self): return self.ServerGroupIDList # ·þÎñÆ÷IDÁÐ±í  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetResetType(self): return self.ResetType # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key]  | 
|     def GetLVLimit(self): return self.LVLimit # ÏÞÖÆµÈ¼¶ | 
|   | 
| # ¿ç·þÐÒÔËÔÆ¹º±í | 
| class IPY_CrossActLuckyCloudBuy(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActGroupName = ""  | 
|         self.ZoneID = 0  | 
|         self.ServerIDRangeList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.StartTimeList = []  | 
|         self.EndTimeList = []  | 
|         self.RoundMaxList = []  | 
|         self.LVLimit = 0  | 
|         self.TemplateIDList = [] | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActGroupName(self): return self.ActGroupName # »î¶¯×éÃû£¨Í¬×é»î¶¯µÄÃû×ÖÐèÏàͬ£©  | 
|     def GetZoneID(self): return self.ZoneID # ×éÄÚ·Ö×é±àºÅ  | 
|     def GetServerIDRangeList(self): return self.ServerIDRangeList # »î¶¯µÄÕ˺ŷþÎñÆ÷ID·¶Î§Áбí [[serverIDA, serverIDB], ...]  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetStartTimeList(self): return self.StartTimeList # ¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     def GetEndTimeList(self): return self.EndTimeList # ½áÊøÊ±¼äÁбí, Ö§³Ö¶à¸öʱ¶Î  | 
|     def GetRoundMaxList(self): return self.RoundMaxList # ¿ªÆôÂÖ´ÎÁÐ±í  | 
|     def GetLVLimit(self): return self.LVLimit # ÏÞÖÆµÈ¼¶  | 
|     def GetTemplateIDList(self): return self.TemplateIDList # Ä£°åIDÁбí | 
|   | 
| # ¿ç·þÐÒÔËÔÆ¹ºÄ£°å±í | 
| class IPY_CrossActLuckyCloudBuyTemplate(): | 
|      | 
|     def __init__(self): | 
|         self.TemplateID = 0  | 
|         self.BaseAwardInfo = []  | 
|         self.RandAwardWeightInfo = []  | 
|         self.SuperItemWeightInfo = [] | 
|         return | 
|          | 
|     def GetTemplateID(self): return self.TemplateID # Ä£°åID  | 
|     def GetBaseAwardInfo(self): return self.BaseAwardInfo # Ã¿´Î¹ºÂò¹Ì¶¨½±Àø [[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...]  | 
|     def GetRandAwardWeightInfo(self): return self.RandAwardWeightInfo # Ã¿´Î¹ºÂòËæ»ú½±ÀøÈ¨ÖØÐÅÏ¢ [[È¨ÖØ,ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...]  | 
|     def GetSuperItemWeightInfo(self): return self.SuperItemWeightInfo # ´ó½±Ëæ»úÈ¨ÖØÐÅÏ¢  [[È¨ÖØ,ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·,¼ÛÖµ»õ±ÒÀàÐÍ,»õ±ÒÖµ], ...] | 
|   | 
| # ¿ç·þÈ«Ãñ³äֵʱ¼ä±í | 
| class IPY_CrossActAllRecharge(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActGroupName = ""  | 
|         self.ZoneID = 0  | 
|         self.ServerIDRangeList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.TemplateIDList = [] | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActGroupName(self): return self.ActGroupName # »î¶¯×éÃû£¨Í¬×é»î¶¯µÄÃû×ÖÐèÏàͬ£©  | 
|     def GetZoneID(self): return self.ZoneID # ×éÄÚ·Ö×é±àºÅ  | 
|     def GetServerIDRangeList(self): return self.ServerIDRangeList # »î¶¯µÄÕ˺ŷþÎñÆ÷ID·¶Î§Áбí [[serverIDA, serverIDB], ...]  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[Ñ»··ÖÖÓ, ¹ã²¥key, [¹ã²¥²ÎÊýÁбí¿ÉÑ¡]]  | 
|     def GetTemplateIDList(self): return self.TemplateIDList # Ä£°åIDÁбí | 
|   | 
| # ¿ç·þÈ«Ãñ³äֵģ°å±í | 
| class IPY_CrossActAllRechargeTemplate(): | 
|      | 
|     def __init__(self): | 
|         self.TemplateID = 0  | 
|         self.CTGNeed = 0  | 
|         self.NeedPlayerCount = 0  | 
|         self.AwardIndex = 0  | 
|         self.AwardItemList = [] | 
|         return | 
|          | 
|     def GetTemplateID(self): return self.TemplateID # Ä£°åID  | 
|     def GetCTGNeed(self): return self.CTGNeed # È«Ãñ³äÖµRMB  | 
|     def GetNeedPlayerCount(self): return self.NeedPlayerCount # ËùÐè³äÖµ´ïµ½¸ÃµµÍæ¼ÒÊý  | 
|     def GetAwardIndex(self): return self.AwardIndex # ½±Àø¼Ç¼Ë÷Òý£¬´Ó0¿ªÊ¼£¬Í¬¸öÄ£°å²»¿ÉÖØ¸´£¬²»¿É±ä¸ü  | 
|     def GetAwardItemList(self): return self.AwardItemList # ½±ÀøÎïÆ·Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...] | 
|   | 
| # ¿ç·þ³äÖµÅÅÐлʱ¼ä±í | 
| class IPY_CrossActCTGBillboard(): | 
|      | 
|     def __init__(self): | 
|         self.CfgID = 0  | 
|         self.ActGroupName = ""  | 
|         self.ZoneID = 0  | 
|         self.ServerIDRangeList = []  | 
|         self.StartDate = ""  | 
|         self.EndDate = ""  | 
|         self.NotifyInfoStart = {}  | 
|         self.NotifyInfoEnd = {}  | 
|         self.NotifyInfoLoop = []  | 
|         self.IsDayReset = 0  | 
|         self.TemplateIDList = [] | 
|         return | 
|          | 
|     def GetCfgID(self): return self.CfgID # ÅäÖÃID  | 
|     def GetActGroupName(self): return self.ActGroupName # »î¶¯×éÃû£¨Í¬×é»î¶¯µÄÃû×ÖÐèÏàͬ£©  | 
|     def GetZoneID(self): return self.ZoneID # ×éÄÚ·Ö×é±àºÅ  | 
|     def GetServerIDRangeList(self): return self.ServerIDRangeList # »î¶¯µÄÕ˺ŷþÎñÆ÷ID·¶Î§Áбí [[serverIDA, serverIDB], ...]  | 
|     def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ  | 
|     def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ  | 
|     def GetNotifyInfoStart(self): return self.NotifyInfoStart # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä  | 
|     def GetNotifyInfoEnd(self): return self.NotifyInfoEnd # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøÊ±¼ä  | 
|     def GetNotifyInfoLoop(self): return self.NotifyInfoLoop # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[Ñ»··ÖÖÓ, ¹ã²¥key, [¹ã²¥²ÎÊýÁбí¿ÉÑ¡]]  | 
|     def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà  | 
|     def GetTemplateIDList(self): return self.TemplateIDList # Ä£°åIDÁбí | 
|   | 
| # ¿ç·þ³äÖµÅÅÐÐÄ£°åÃû´Î½±Àø±í | 
| class IPY_CrossActCTGBillboardOrder(): | 
|      | 
|     def __init__(self): | 
|         self.TemplateID = 0  | 
|         self.OrderA = 0  | 
|         self.OrderB = 0  | 
|         self.CTGAtleast = 0.0  | 
|         self.AwardItemList = [] | 
|         return | 
|          | 
|     def GetTemplateID(self): return self.TemplateID # Ä£°åID  | 
|     def GetOrderA(self): return self.OrderA # Ãû´ÎA  | 
|     def GetOrderB(self): return self.OrderB # ÖÁÃû´ÎB  | 
|     def GetCTGAtleast(self): return self.CTGAtleast # ÖÁÉÙ³äÖµRMB  | 
|     def GetAwardItemList(self): return self.AwardItemList # ½±ÀøÎïÆ·Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...] | 
|   | 
| # ×°±¸ÉýÐDZí | 
| class IPY_EquipStarUp(): | 
|      | 
|     def __init__(self): | 
|         self.ClassLV = 0  | 
|         self.EquipPlace = 0  | 
|         self.Star = 0  | 
|         self.CostEquipPlace = []  | 
|         self.IsJobLimit = 0  | 
|         self.CostEquipColor = []  | 
|         self.UnSuitRate = 0 | 
|         return | 
|          | 
|     def GetClassLV(self): return self.ClassLV # ½×¼¶  | 
|     def GetEquipPlace(self): return self.EquipPlace # ×°±¸Î»  | 
|     def GetStar(self): return self.Star # ÐÇÊý  | 
|     def GetCostEquipPlace(self): return self.CostEquipPlace # ¿ÉÓÃ×°±¸²¿Î»  | 
|     def GetIsJobLimit(self): return self.IsJobLimit # ÊÇ·ñÖ»Óñ¾Ö°Òµ×°±¸²ÄÁÏ  | 
|     def GetCostEquipColor(self): return self.CostEquipColor # ¿ÉÓÃ×°±¸Æ·ÖÊ  | 
|     def GetUnSuitRate(self): return self.UnSuitRate # µ¥¼þ·ÇÌ××°¼Ó³É¸ÅÂÊ | 
|   | 
| # ÏÉÃËÁªÈüÅÅÃû½±Àø±í | 
| class IPY_FamilyWarRankAward(): | 
|      | 
|     def __init__(self): | 
|         self.WarWorldLV = 0  | 
|         self.WarRank = 0  | 
|         self.RankAuctionItem = [] | 
|         return | 
|          | 
|     def GetWarWorldLV(self): return self.WarWorldLV # ÁªÈüÊÀ½çµÈ¼¶  | 
|     def GetWarRank(self): return self.WarRank # ÁªÈüÅÅÃû  | 
|     def GetRankAuctionItem(self): return self.RankAuctionItem # ÅÄÆ·½±Àø[[ÅÄÆ·ID,¸öÊý], ...] | 
|   | 
| # ÐÖú¸ÐлÀñºÐ±í | 
| class IPY_AssistThanksGift(): | 
|      | 
|     def __init__(self): | 
|         self.GiftID = 0  | 
|         self.AssistAwardCount = 0 | 
|         return | 
|          | 
|     def GetGiftID(self): return self.GiftID # ÀñºÐÎïÆ·ID  | 
|     def GetAssistAwardCount(self): return self.AssistAwardCount #  ÐÖú½±ÀøÃ¿ÈÕ´ÎÊý | 
|   | 
| # çÎç¿ÏÉÓò±í | 
| class IPY_FairyDomain(): | 
|      | 
|     def __init__(self): | 
|         self.ID = 0  | 
|         self.HourCntPubLimit = 0  | 
|         self.DayCntPubLimit = 0 | 
|         return | 
|          | 
|     def GetID(self): return self.ID # Ê¼þ±àºÅ  | 
|     def GetHourCntPubLimit(self): return self.HourCntPubLimit # È«·þÿСʱ´ÎÊýÏÞÖÆ  | 
|     def GetDayCntPubLimit(self): return self.DayCntPubLimit # È«·þÿÌì´ÎÊýÏÞÖÆ | 
|   | 
|   | 
| def Log(msg, playerID=0, par=0):  | 
|     LogUI.Msg("%s\t%s\t%s" % (par, playerID, msg))  | 
|     return  | 
|       | 
| def ErrLog(msg, playerID=0, par=0):  | 
|     LogUI.Msg("%s\t%s\t###Error:%s" % (par, playerID, msg))  | 
|     return  | 
|       | 
| ## PY±íÊý¾Ý¹ÜÀíÀà  | 
| class IPY_DataMgr():  | 
|       | 
|     def __init__(self):  | 
|         self.fileMD5Dict = {} # Êý¾Ý±íÎļþmd5×Öµä, ÓÃÓÚ¶Ô±ÈÎļþ²îÒìÅжÏÊÇ·ñÖØ¶Á {dtName:md5, ...}  | 
|         self.ipyConfigEx = {} # ×Ô¶¨ÒåÊý¾Ý»º´æ {key:configData, ...}  | 
|         self.ipyDataIndexMap = {} # Êý¾Ý±íË÷Òý²éѯ»º´æ {dtName:{args:[index, ...], ...}, ...}  | 
|         self.ipyDataIndexMapEx = {} # Êý¾Ý±í×Ô¶¨Òå²éѯÌõ¼þ²éѯ»º´æ {dtName_(findKey,...):{(findKeyValue, ...):[index, ...], ...}, ...}  | 
|         self.ipyFuncConfigDict = {} # ¹¦ÄÜÅäÖÃ±í»º´æ {key:IPY_FuncConfig, ...}  | 
|         self.IpyDataClear()  | 
|         return  | 
|       | 
|     def IpyDataClear(self):  | 
|         Log("IPY_DataMgr Init...")  | 
|         self.ipyConfigEx = {}  | 
|         self.ipyFuncConfigCache = self.__LoadFileData("FuncConfig", IPY_FuncConfig)  | 
|         self.ipyFuncConfigLen = len(self.ipyFuncConfigCache)  | 
|         self.ipyCreateRoleCache = self.__LoadFileData("CreateRole", IPY_CreateRole)  | 
|         self.ipyCreateRoleLen = len(self.ipyCreateRoleCache)  | 
|         self.ipyCreateRoleLimitServerCache = self.__LoadFileData("CreateRoleLimitServer", IPY_CreateRoleLimitServer)  | 
|         self.ipyCreateRoleLimitServerLen = len(self.ipyCreateRoleLimitServerCache)  | 
|         self.ipyWorldLVCache = self.__LoadFileData("WorldLV", IPY_WorldLV)  | 
|         self.ipyWorldLVLen = len(self.ipyWorldLVCache)  | 
|         self.ipyFamilyCache = self.__LoadFileData("Family", IPY_Family)  | 
|         self.ipyFamilyLen = len(self.ipyFamilyCache)  | 
|         self.ipyFamilyBossHurtAwardCache = self.__LoadFileData("FamilyBossHurtAward", IPY_FamilyBossHurtAward)  | 
|         self.ipyFamilyBossHurtAwardLen = len(self.ipyFamilyBossHurtAwardCache)  | 
|         self.ipyFamilyZhenfaCache = self.__LoadFileData("FamilyZhenfa", IPY_FamilyZhenfa)  | 
|         self.ipyFamilyZhenfaLen = len(self.ipyFamilyZhenfaCache)  | 
|         self.ipyMarketQueryCache = self.__LoadFileData("MarketQuery", IPY_MarketQuery)  | 
|         self.ipyMarketQueryLen = len(self.ipyMarketQueryCache)  | 
|         self.ipyAuctionItemCache = self.__LoadFileData("AuctionItem", IPY_AuctionItem)  | 
|         self.ipyAuctionItemLen = len(self.ipyAuctionItemCache)  | 
|         self.ipyAuctionSystemItemCache = self.__LoadFileData("AuctionSystemItem", IPY_AuctionSystemItem)  | 
|         self.ipyAuctionSystemItemLen = len(self.ipyAuctionSystemItemCache)  | 
|         self.ipyCrossDailyActionCache = self.__LoadFileData("CrossDailyAction", IPY_CrossDailyAction)  | 
|         self.ipyCrossDailyActionLen = len(self.ipyCrossDailyActionCache)  | 
|         self.ipyDailyActionCache = self.__LoadFileData("DailyAction", IPY_DailyAction)  | 
|         self.ipyDailyActionLen = len(self.ipyDailyActionCache)  | 
|         self.ipyDailyActionCustomCache = self.__LoadFileData("DailyActionCustom", IPY_DailyActionCustom)  | 
|         self.ipyDailyActionCustomLen = len(self.ipyDailyActionCustomCache)  | 
|         self.ipyDailyActionCustomMixCache = self.__LoadFileData("DailyActionCustomMix", IPY_DailyActionCustomMix)  | 
|         self.ipyDailyActionCustomMixLen = len(self.ipyDailyActionCustomMixCache)  | 
|         self.ipyFBStateTimeCache = self.__LoadFileData("FBStateTime", IPY_FBStateTime)  | 
|         self.ipyFBStateTimeLen = len(self.ipyFBStateTimeCache)  | 
|         self.ipyFBStateTimeCustomCache = self.__LoadFileData("FBStateTimeCustom", IPY_FBStateTimeCustom)  | 
|         self.ipyFBStateTimeCustomLen = len(self.ipyFBStateTimeCustomCache)  | 
|         self.ipyFBStateTimeCustomMixCache = self.__LoadFileData("FBStateTimeCustomMix", IPY_FBStateTimeCustomMix)  | 
|         self.ipyFBStateTimeCustomMixLen = len(self.ipyFBStateTimeCustomMixCache)  | 
|         self.ipyFBFuncCache = self.__LoadFileData("FBFunc", IPY_FBFunc)  | 
|         self.ipyFBFuncLen = len(self.ipyFBFuncCache)  | 
|         self.ipyFBLineCache = self.__LoadFileData("FBLine", IPY_FBLine)  | 
|         self.ipyFBLineLen = len(self.ipyFBLineCache)  | 
|         self.ipyFBHelpBattleCache = self.__LoadFileData("FBHelpBattle", IPY_FBHelpBattle)  | 
|         self.ipyFBHelpBattleLen = len(self.ipyFBHelpBattleCache)  | 
|         self.ipyChinMapCache = self.__LoadFileData("ChinMap", IPY_ChinMap)  | 
|         self.ipyChinMapLen = len(self.ipyChinMapCache)  | 
|         self.ipyBOSSInfoCache = self.__LoadFileData("BOSSInfo", IPY_BOSSInfo)  | 
|         self.ipyBOSSInfoLen = len(self.ipyBOSSInfoCache)  | 
|         self.ipyBOSSFirstKillCache = self.__LoadFileData("BOSSFirstKill", IPY_BOSSFirstKill)  | 
|         self.ipyBOSSFirstKillLen = len(self.ipyBOSSFirstKillCache)  | 
|         self.ipyOSCBillRankAwardCache = self.__LoadFileData("OSCBillRankAward", IPY_OSCBillRankAward)  | 
|         self.ipyOSCBillRankAwardLen = len(self.ipyOSCBillRankAwardCache)  | 
|         self.ipyQuestionBankCache = self.__LoadFileData("QuestionBank", IPY_QuestionBank)  | 
|         self.ipyQuestionBankLen = len(self.ipyQuestionBankCache)  | 
|         self.ipyFamilyRedPackCache = self.__LoadFileData("FamilyRedPack", IPY_FamilyRedPack)  | 
|         self.ipyFamilyRedPackLen = len(self.ipyFamilyRedPackCache)  | 
|         self.ipyActFeastRedPacketCache = self.__LoadFileData("ActFeastRedPacket", IPY_ActFeastRedPacket)  | 
|         self.ipyActFeastRedPacketLen = len(self.ipyActFeastRedPacketCache)  | 
|         self.ipyActFeastLoginCache = self.__LoadFileData("ActFeastLogin", IPY_ActFeastLogin)  | 
|         self.ipyActFeastLoginLen = len(self.ipyActFeastLoginCache)  | 
|         self.ipyActFeastWishCache = self.__LoadFileData("ActFeastWish", IPY_ActFeastWish)  | 
|         self.ipyActFeastWishLen = len(self.ipyActFeastWishCache)  | 
|         self.ipyActFeastTravelCache = self.__LoadFileData("ActFeastTravel", IPY_ActFeastTravel)  | 
|         self.ipyActFeastTravelLen = len(self.ipyActFeastTravelCache)  | 
|         self.ipyFuncOpenLVCache = self.__LoadFileData("FuncOpenLV", IPY_FuncOpenLV)  | 
|         self.ipyFuncOpenLVLen = len(self.ipyFuncOpenLVCache)  | 
|         self.ipyChinNPCCache = self.__LoadFileData("ChinNPC", IPY_ChinNPC)  | 
|         self.ipyChinNPCLen = len(self.ipyChinNPCCache)  | 
|         self.ipyPlayerLVCache = self.__LoadFileData("PlayerLV", IPY_PlayerLV)  | 
|         self.ipyPlayerLVLen = len(self.ipyPlayerLVCache)  | 
|         self.ipyVipPrivilegeCache = self.__LoadFileData("VipPrivilege", IPY_VipPrivilege)  | 
|         self.ipyVipPrivilegeLen = len(self.ipyVipPrivilegeCache)  | 
|         self.ipyActSpringSaleCache = self.__LoadFileData("ActSpringSale", IPY_ActSpringSale)  | 
|         self.ipyActSpringSaleLen = len(self.ipyActSpringSaleCache)  | 
|         self.ipyActFlashGiftbagCache = self.__LoadFileData("ActFlashGiftbag", IPY_ActFlashGiftbag)  | 
|         self.ipyActFlashGiftbagLen = len(self.ipyActFlashGiftbagCache)  | 
|         self.ipyActDailyGiftbagCache = self.__LoadFileData("ActDailyGiftbag", IPY_ActDailyGiftbag)  | 
|         self.ipyActDailyGiftbagLen = len(self.ipyActDailyGiftbagCache)  | 
|         self.ipyActExpRateCache = self.__LoadFileData("ActExpRate", IPY_ActExpRate)  | 
|         self.ipyActExpRateLen = len(self.ipyActExpRateCache)  | 
|         self.ipyActCostRebateCache = self.__LoadFileData("ActCostRebate", IPY_ActCostRebate)  | 
|         self.ipyActCostRebateLen = len(self.ipyActCostRebateCache)  | 
|         self.ipyActBuyOneCache = self.__LoadFileData("ActBuyOne", IPY_ActBuyOne)  | 
|         self.ipyActBuyOneLen = len(self.ipyActBuyOneCache)  | 
|         self.ipyActCollectWordsCache = self.__LoadFileData("ActCollectWords", IPY_ActCollectWords)  | 
|         self.ipyActCollectWordsLen = len(self.ipyActCollectWordsCache)  | 
|         self.ipyActGarbageSortingCache = self.__LoadFileData("ActGarbageSorting", IPY_ActGarbageSorting)  | 
|         self.ipyActGarbageSortingLen = len(self.ipyActGarbageSortingCache)  | 
|         self.ipyActBossTrialCache = self.__LoadFileData("ActBossTrial", IPY_ActBossTrial)  | 
|         self.ipyActBossTrialLen = len(self.ipyActBossTrialCache)  | 
|         self.ipyActBossTrialTemplateCache = self.__LoadFileData("ActBossTrialTemplate", IPY_ActBossTrialTemplate)  | 
|         self.ipyActBossTrialTemplateLen = len(self.ipyActBossTrialTemplateCache)  | 
|         self.ipyActXianXiaMJCache = self.__LoadFileData("ActXianXiaMJ", IPY_ActXianXiaMJ)  | 
|         self.ipyActXianXiaMJLen = len(self.ipyActXianXiaMJCache)  | 
|         self.ipyActGodGiftCache = self.__LoadFileData("ActGodGift", IPY_ActGodGift)  | 
|         self.ipyActGodGiftLen = len(self.ipyActGodGiftCache)  | 
|         self.ipyActHorsePetFeastCache = self.__LoadFileData("ActHorsePetFeast", IPY_ActHorsePetFeast)  | 
|         self.ipyActHorsePetFeastLen = len(self.ipyActHorsePetFeastCache)  | 
|         self.ipyActBossRebornCache = self.__LoadFileData("ActBossReborn", IPY_ActBossReborn)  | 
|         self.ipyActBossRebornLen = len(self.ipyActBossRebornCache)  | 
|         self.ipyActFairyCeremonyCache = self.__LoadFileData("ActFairyCeremony", IPY_ActFairyCeremony)  | 
|         self.ipyActFairyCeremonyLen = len(self.ipyActFairyCeremonyCache)  | 
|         self.ipyUniquenessArriveCache = self.__LoadFileData("UniquenessArrive", IPY_UniquenessArrive)  | 
|         self.ipyUniquenessArriveLen = len(self.ipyUniquenessArriveCache)  | 
|         self.ipyActRealmPointCache = self.__LoadFileData("ActRealmPoint", IPY_ActRealmPoint)  | 
|         self.ipyActRealmPointLen = len(self.ipyActRealmPointCache)  | 
|         self.ipyActFlashSaleCache = self.__LoadFileData("ActFlashSale", IPY_ActFlashSale)  | 
|         self.ipyActFlashSaleLen = len(self.ipyActFlashSaleCache)  | 
|         self.ipyStoreCache = self.__LoadFileData("Store", IPY_Store)  | 
|         self.ipyStoreLen = len(self.ipyStoreCache)  | 
|         self.ipyActWishingWellCache = self.__LoadFileData("ActWishingWell", IPY_ActWishingWell)  | 
|         self.ipyActWishingWellLen = len(self.ipyActWishingWellCache)  | 
|         self.ipyActRechargePrizeCache = self.__LoadFileData("ActRechargePrize", IPY_ActRechargePrize)  | 
|         self.ipyActRechargePrizeLen = len(self.ipyActRechargePrizeCache)  | 
|         self.ipyActRechargeRebateGoldCache = self.__LoadFileData("ActRechargeRebateGold", IPY_ActRechargeRebateGold)  | 
|         self.ipyActRechargeRebateGoldLen = len(self.ipyActRechargeRebateGoldCache)  | 
|         self.ipyActGrowupBuyCache = self.__LoadFileData("ActGrowupBuy", IPY_ActGrowupBuy)  | 
|         self.ipyActGrowupBuyLen = len(self.ipyActGrowupBuyCache)  | 
|         self.ipyActSingleRechargeCache = self.__LoadFileData("ActSingleRecharge", IPY_ActSingleRecharge)  | 
|         self.ipyActSingleRechargeLen = len(self.ipyActSingleRechargeCache)  | 
|         self.ipyActTurntableCache = self.__LoadFileData("ActTurntable", IPY_ActTurntable)  | 
|         self.ipyActTurntableLen = len(self.ipyActTurntableCache)  | 
|         self.ipyActManyDayRechargeCache = self.__LoadFileData("ActManyDayRecharge", IPY_ActManyDayRecharge)  | 
|         self.ipyActManyDayRechargeLen = len(self.ipyActManyDayRechargeCache)  | 
|         self.ipyActTotalRechargeCache = self.__LoadFileData("ActTotalRecharge", IPY_ActTotalRecharge)  | 
|         self.ipyActTotalRechargeLen = len(self.ipyActTotalRechargeCache)  | 
|         self.ipyCrossZoneCommCache = self.__LoadFileData("CrossZoneComm", IPY_CrossZoneComm)  | 
|         self.ipyCrossZoneCommLen = len(self.ipyCrossZoneCommCache)  | 
|         self.ipyCrossZonePKCache = self.__LoadFileData("CrossZonePK", IPY_CrossZonePK)  | 
|         self.ipyCrossZonePKLen = len(self.ipyCrossZonePKCache)  | 
|         self.ipyChampionshipTimeCache = self.__LoadFileData("ChampionshipTime", IPY_ChampionshipTime)  | 
|         self.ipyChampionshipTimeLen = len(self.ipyChampionshipTimeCache)  | 
|         self.ipyChampionshipRankCache = self.__LoadFileData("ChampionshipRank", IPY_ChampionshipRank)  | 
|         self.ipyChampionshipRankLen = len(self.ipyChampionshipRankCache)  | 
|         self.ipyChampionshipOfficialCache = self.__LoadFileData("ChampionshipOfficial", IPY_ChampionshipOfficial)  | 
|         self.ipyChampionshipOfficialLen = len(self.ipyChampionshipOfficialCache)  | 
|         self.ipyCrossRealmPKSeasonCache = self.__LoadFileData("CrossRealmPKSeason", IPY_CrossRealmPKSeason)  | 
|         self.ipyCrossRealmPKSeasonLen = len(self.ipyCrossRealmPKSeasonCache)  | 
|         self.ipyCrossRealmPKDanCache = self.__LoadFileData("CrossRealmPKDan", IPY_CrossRealmPKDan)  | 
|         self.ipyCrossRealmPKDanLen = len(self.ipyCrossRealmPKDanCache)  | 
|         self.ipyCrossPenglaiZoneMapCache = self.__LoadFileData("CrossPenglaiZoneMap", IPY_CrossPenglaiZoneMap)  | 
|         self.ipyCrossPenglaiZoneMapLen = len(self.ipyCrossPenglaiZoneMapCache)  | 
|         self.ipyCrossDemonLandZoneMapCache = self.__LoadFileData("CrossDemonLandZoneMap", IPY_CrossDemonLandZoneMap)  | 
|         self.ipyCrossDemonLandZoneMapLen = len(self.ipyCrossDemonLandZoneMapCache)  | 
|         self.ipyActWeekPartyCache = self.__LoadFileData("ActWeekParty", IPY_ActWeekParty)  | 
|         self.ipyActWeekPartyLen = len(self.ipyActWeekPartyCache)  | 
|         self.ipyActLoginAwardCache = self.__LoadFileData("ActLoginAward", IPY_ActLoginAward)  | 
|         self.ipyActLoginAwardLen = len(self.ipyActLoginAwardCache)  | 
|         self.ipyActFeastWeekPartyCache = self.__LoadFileData("ActFeastWeekParty", IPY_ActFeastWeekParty)  | 
|         self.ipyActFeastWeekPartyLen = len(self.ipyActFeastWeekPartyCache)  | 
|         self.ipyActNewFairyCeremonyCache = self.__LoadFileData("ActNewFairyCeremony", IPY_ActNewFairyCeremony)  | 
|         self.ipyActNewFairyCeremonyLen = len(self.ipyActNewFairyCeremonyCache)  | 
|         self.ipyNewUniquenessArriveCache = self.__LoadFileData("NewUniquenessArrive", IPY_NewUniquenessArrive)  | 
|         self.ipyNewUniquenessArriveLen = len(self.ipyNewUniquenessArriveCache)  | 
|         self.ipyLoveGiftCache = self.__LoadFileData("LoveGift", IPY_LoveGift)  | 
|         self.ipyLoveGiftLen = len(self.ipyLoveGiftCache)  | 
|         self.ipyMarryCache = self.__LoadFileData("Marry", IPY_Marry)  | 
|         self.ipyMarryLen = len(self.ipyMarryCache)  | 
|         self.ipyActLuckyTreasureCache = self.__LoadFileData("ActLuckyTreasure", IPY_ActLuckyTreasure)  | 
|         self.ipyActLuckyTreasureLen = len(self.ipyActLuckyTreasureCache)  | 
|         self.ipyCrossActLuckyCloudBuyCache = self.__LoadFileData("CrossActLuckyCloudBuy", IPY_CrossActLuckyCloudBuy)  | 
|         self.ipyCrossActLuckyCloudBuyLen = len(self.ipyCrossActLuckyCloudBuyCache)  | 
|         self.ipyCrossActLuckyCloudBuyTemplateCache = self.__LoadFileData("CrossActLuckyCloudBuyTemplate", IPY_CrossActLuckyCloudBuyTemplate)  | 
|         self.ipyCrossActLuckyCloudBuyTemplateLen = len(self.ipyCrossActLuckyCloudBuyTemplateCache)  | 
|         self.ipyCrossActAllRechargeCache = self.__LoadFileData("CrossActAllRecharge", IPY_CrossActAllRecharge)  | 
|         self.ipyCrossActAllRechargeLen = len(self.ipyCrossActAllRechargeCache)  | 
|         self.ipyCrossActAllRechargeTemplateCache = self.__LoadFileData("CrossActAllRechargeTemplate", IPY_CrossActAllRechargeTemplate)  | 
|         self.ipyCrossActAllRechargeTemplateLen = len(self.ipyCrossActAllRechargeTemplateCache)  | 
|         self.ipyCrossActCTGBillboardCache = self.__LoadFileData("CrossActCTGBillboard", IPY_CrossActCTGBillboard)  | 
|         self.ipyCrossActCTGBillboardLen = len(self.ipyCrossActCTGBillboardCache)  | 
|         self.ipyCrossActCTGBillboardOrderCache = self.__LoadFileData("CrossActCTGBillboardOrder", IPY_CrossActCTGBillboardOrder)  | 
|         self.ipyCrossActCTGBillboardOrderLen = len(self.ipyCrossActCTGBillboardOrderCache)  | 
|         self.ipyEquipStarUpCache = self.__LoadFileData("EquipStarUp", IPY_EquipStarUp)  | 
|         self.ipyEquipStarUpLen = len(self.ipyEquipStarUpCache)  | 
|         self.ipyFamilyWarRankAwardCache = self.__LoadFileData("FamilyWarRankAward", IPY_FamilyWarRankAward)  | 
|         self.ipyFamilyWarRankAwardLen = len(self.ipyFamilyWarRankAwardCache)  | 
|         self.ipyAssistThanksGiftCache = self.__LoadFileData("AssistThanksGift", IPY_AssistThanksGift)  | 
|         self.ipyAssistThanksGiftLen = len(self.ipyAssistThanksGiftCache)  | 
|         self.ipyFairyDomainCache = self.__LoadFileData("FairyDomain", IPY_FairyDomain)  | 
|         self.ipyFairyDomainLen = len(self.ipyFairyDomainCache)  | 
|         Log("IPY_FuncConfig count=%s" % len(self.ipyFuncConfigDict))  | 
|         Log("IPY_DataMgr InitOK!")  | 
|         return  | 
|       | 
|     def __LoadFileData(self, tableName, Class):  | 
|         curPath = ChConfig.GetAppPath() + "\\PySysDB\\tag" + tableName + ".txt"  | 
|         if not os.path.isfile(curPath):  | 
|             ErrLog("can not find file = %s,%s" % (tableName, curPath))  | 
|             raise Exception("can not find file = %s,%s" % (tableName, curPath))  | 
|           | 
|         fileObj = open(curPath, 'rb')  | 
|         content = fileObj.read()  | 
|         fileObj.close()  | 
|           | 
|         md5_obj = hashlib.md5()  | 
|         md5_obj.update(content)  | 
|         newMD5Code = md5_obj.hexdigest()  | 
|         if tableName in self.fileMD5Dict:  | 
|             oldMD5Code = self.fileMD5Dict[tableName]  | 
|             if newMD5Code == oldMD5Code:  | 
|                 return getattr(self, "ipy%sCache" % tableName)  | 
|               | 
|             if tableName in self.ipyDataIndexMap:  | 
|                 self.ipyDataIndexMap.pop(tableName)  | 
|             for dtName_Findkey in self.ipyDataIndexMapEx.keys():  | 
|                 findStr = "%s_" % tableName  | 
|                 if findStr in dtName_Findkey:  | 
|                     self.ipyDataIndexMapEx.pop(dtName_Findkey)  | 
|             if tableName == "FuncConfig":  | 
|                 self.ipyFuncConfigDict = {}  | 
|         self.fileMD5Dict[tableName] = newMD5Code  | 
|           | 
|         dataIndex = 0  | 
|         indexDict = {}  | 
|         cacheList = []  | 
|         fieldList = Def_IpyTable[tableName]  | 
|         infoList = content.split('\r\n')  | 
|         for line in xrange(len(infoList)):  | 
|             if line == 0:  | 
|                 continue  | 
|             if not infoList[line]:  | 
|                 #ErrLog("line not content! %s, line=%s" % (tableName, line))  | 
|                 continue  | 
|             rowList = infoList[line].split('\t')  | 
|             if len(fieldList) != len(rowList):  | 
|                 ErrLog("field count error!, %s, line=%s, len=%s,rowCount=%s" % (tableName, line, len(fieldList), len(rowList)))  | 
|                 raise Exception("field count error!, %s, line=%s, len=%s,rowCount=%s" % (tableName, line,len(fieldList), len(rowList)))  | 
|               | 
|             try:  | 
|                 indexKey = []  | 
|                 classObj = Class()  | 
|                 for j, value in enumerate(rowList):  | 
|                     fieldType, fieldName, isIndex = fieldList[j]  | 
|                     if fieldType == "char":  | 
|                         attrValue = value  | 
|                     elif fieldType == "dict":  | 
|                         attrValue = self.__StrToDict(value)  | 
|                     elif fieldType == "list":  | 
|                         attrValue = self.__StrToList(value)  | 
|                     elif fieldType == "eval":  | 
|                         attrValue = self.__StrToEval(value)  | 
|                     elif fieldType == "float":  | 
|                         attrValue = float(value)  | 
|                     else:  | 
|                         attrValue = 0 if not value.isdigit() else int(value)  | 
|                     setattr(classObj, "%s" % fieldName, attrValue)  | 
|                     if isIndex:  | 
|                         indexKey.append(attrValue)  | 
|                 cacheList.append(classObj)  | 
|                 indexKey = tuple(indexKey)  | 
|                 indexList = indexDict.get(indexKey, [])  | 
|                 indexList.append(dataIndex)  | 
|                 indexDict[indexKey] = indexList  | 
|                 dataIndex += 1  | 
|             except BaseException:  | 
|                 ErrLog("SetIpyDataError: tableName=%s,line=%s,fieldName=%s,fieldType=%s,value=%s" % (tableName, line, fieldName, fieldType, value))  | 
|                 raise  | 
|             if tableName == "FuncConfig":  | 
|                 self.__LoadFuncConfigData(fieldList, rowList)  | 
|         if tableName != "FuncConfig":  | 
|             self.ipyDataIndexMap[tableName] = indexDict  | 
|         Log("LoadIpydata: %s, content count=%s" % (tableName, len(cacheList)))  | 
|         return cacheList  | 
|       | 
|     def __LoadFuncConfigData(self, fieldList, rowList):  | 
|         funcConfigObj = IPY_FuncConfig()  | 
|         key = rowList[0]  | 
|         funcConfigObj.Key = key  | 
|         for i, strValue in enumerate(rowList):  | 
|             if i == 0:  | 
|                 continue  | 
|             try:  | 
|                 fieldName = fieldList[i][1]  | 
|                 strValue = strValue.lstrip().rstrip()  | 
|                 if strValue.isdigit():  | 
|                     configValue = int(strValue)  | 
|                 elif (strValue.startswith("{") and strValue.endswith("}")) \  | 
|                     or (strValue.startswith("[") and strValue.endswith("]")) \  | 
|                     or (strValue.startswith("(") and strValue.endswith(")")):  | 
|                     configValue = eval(strValue)  | 
|                 elif "_" in strValue and type(self.__StrToDict(strValue)) == dict:  | 
|                     configValue = self.__StrToDict(strValue)  | 
|                 elif ChConfig.Def_Str_Montant in strValue:  | 
|                     configValue = eval("(%s,)" % strValue.replace(ChConfig.Def_Str_Montant, ","))  | 
|                 elif strValue in ["-", ""]:  | 
|                     configValue = ""  | 
|                 else:  | 
|                     configValue = self.__ToFloat(strValue)  | 
|             except BaseException:  | 
|                 ErrLog("SetIpyDataError: tableName=%s,key=%s,i=%s,value=%s" % ("FuncConfig", key, i, strValue))  | 
|                 raise  | 
|             setattr(funcConfigObj, fieldName, configValue)  | 
|         self.ipyFuncConfigDict[key] = funcConfigObj  | 
|         return  | 
|       | 
|     def __ToFloat(self, strValue):  | 
|         try:  | 
|             value = float(strValue)  | 
|         except:  | 
|             return strValue  | 
|         return value  | 
|       | 
|     def __StrToEval(self, strValue):  | 
|         if not strValue or strValue in ["0", "-", ""]:  | 
|             return  | 
|         return eval(strValue)  | 
|       | 
|     def __StrToDict(self, strValue):  | 
|         setDict = {}  | 
|         if "{" in strValue and "}" in strValue:  | 
|             setDict = eval(strValue)  | 
|         elif strValue in ["0", "-", ""]:  | 
|             pass  | 
|         else:  | 
|             keyValueList = strValue.split(ChConfig.Def_Str_Montant)  | 
|             for keyValue in keyValueList:  | 
|                 if "_" not in keyValue:  | 
|                     continue  | 
|                 kv = keyValue.split("_")  | 
|                 if len(kv) != 2:  | 
|                     return  | 
|                 key, value = kv  | 
|                 if key.isdigit():  | 
|                     key = int(key)  | 
|                 if value.isdigit():  | 
|                     value = int(value)  | 
|                 setDict[key] = value  | 
|         return setDict  | 
|       | 
|     def __StrToList(self, strValue):  | 
|         setList = []  | 
|         if ("[" in strValue and "]" in strValue) or ("(" in strValue and ")" in strValue):  | 
|             setList = eval(strValue)  | 
|         elif strValue in ["0", "-", ""]:  | 
|             pass  | 
|         elif strValue.isdigit():  | 
|             setList = (int(strValue),)  | 
|         else:  | 
|             for value in strValue.split(ChConfig.Def_Str_Montant):  | 
|                 if value.isdigit():  | 
|                     value = int(value)  | 
|                 setList.append(value)  | 
|             if setList:  | 
|                 setList = tuple(setList)  | 
|         return setList  | 
|       | 
|     def GetFuncConfigCount(self): return self.ipyFuncConfigLen  | 
|     def GetFuncConfigByIndex(self, index): return self.ipyFuncConfigCache[index]  | 
|     def GetCreateRoleCount(self): return self.ipyCreateRoleLen  | 
|     def GetCreateRoleByIndex(self, index): return self.ipyCreateRoleCache[index]  | 
|     def GetCreateRoleLimitServerCount(self): return self.ipyCreateRoleLimitServerLen  | 
|     def GetCreateRoleLimitServerByIndex(self, index): return self.ipyCreateRoleLimitServerCache[index]  | 
|     def GetWorldLVCount(self): return self.ipyWorldLVLen  | 
|     def GetWorldLVByIndex(self, index): return self.ipyWorldLVCache[index]  | 
|     def GetFamilyCount(self): return self.ipyFamilyLen  | 
|     def GetFamilyByIndex(self, index): return self.ipyFamilyCache[index]  | 
|     def GetFamilyBossHurtAwardCount(self): return self.ipyFamilyBossHurtAwardLen  | 
|     def GetFamilyBossHurtAwardByIndex(self, index): return self.ipyFamilyBossHurtAwardCache[index]  | 
|     def GetFamilyZhenfaCount(self): return self.ipyFamilyZhenfaLen  | 
|     def GetFamilyZhenfaByIndex(self, index): return self.ipyFamilyZhenfaCache[index]  | 
|     def GetMarketQueryCount(self): return self.ipyMarketQueryLen  | 
|     def GetMarketQueryByIndex(self, index): return self.ipyMarketQueryCache[index]  | 
|     def GetAuctionItemCount(self): return self.ipyAuctionItemLen  | 
|     def GetAuctionItemByIndex(self, index): return self.ipyAuctionItemCache[index]  | 
|     def GetAuctionSystemItemCount(self): return self.ipyAuctionSystemItemLen  | 
|     def GetAuctionSystemItemByIndex(self, index): return self.ipyAuctionSystemItemCache[index]  | 
|     def GetCrossDailyActionCount(self): return self.ipyCrossDailyActionLen  | 
|     def GetCrossDailyActionByIndex(self, index): return self.ipyCrossDailyActionCache[index]  | 
|     def GetDailyActionCount(self): return self.ipyDailyActionLen  | 
|     def GetDailyActionByIndex(self, index): return self.ipyDailyActionCache[index]  | 
|     def GetDailyActionCustomCount(self): return self.ipyDailyActionCustomLen  | 
|     def GetDailyActionCustomByIndex(self, index): return self.ipyDailyActionCustomCache[index]  | 
|     def GetDailyActionCustomMixCount(self): return self.ipyDailyActionCustomMixLen  | 
|     def GetDailyActionCustomMixByIndex(self, index): return self.ipyDailyActionCustomMixCache[index]  | 
|     def GetFBStateTimeCount(self): return self.ipyFBStateTimeLen  | 
|     def GetFBStateTimeByIndex(self, index): return self.ipyFBStateTimeCache[index]  | 
|     def GetFBStateTimeCustomCount(self): return self.ipyFBStateTimeCustomLen  | 
|     def GetFBStateTimeCustomByIndex(self, index): return self.ipyFBStateTimeCustomCache[index]  | 
|     def GetFBStateTimeCustomMixCount(self): return self.ipyFBStateTimeCustomMixLen  | 
|     def GetFBStateTimeCustomMixByIndex(self, index): return self.ipyFBStateTimeCustomMixCache[index]  | 
|     def GetFBFuncCount(self): return self.ipyFBFuncLen  | 
|     def GetFBFuncByIndex(self, index): return self.ipyFBFuncCache[index]  | 
|     def GetFBLineCount(self): return self.ipyFBLineLen  | 
|     def GetFBLineByIndex(self, index): return self.ipyFBLineCache[index]  | 
|     def GetFBHelpBattleCount(self): return self.ipyFBHelpBattleLen  | 
|     def GetFBHelpBattleByIndex(self, index): return self.ipyFBHelpBattleCache[index]  | 
|     def GetChinMapCount(self): return self.ipyChinMapLen  | 
|     def GetChinMapByIndex(self, index): return self.ipyChinMapCache[index]  | 
|     def GetBOSSInfoCount(self): return self.ipyBOSSInfoLen  | 
|     def GetBOSSInfoByIndex(self, index): return self.ipyBOSSInfoCache[index]  | 
|     def GetBOSSFirstKillCount(self): return self.ipyBOSSFirstKillLen  | 
|     def GetBOSSFirstKillByIndex(self, index): return self.ipyBOSSFirstKillCache[index]  | 
|     def GetOSCBillRankAwardCount(self): return self.ipyOSCBillRankAwardLen  | 
|     def GetOSCBillRankAwardByIndex(self, index): return self.ipyOSCBillRankAwardCache[index]  | 
|     def GetQuestionBankCount(self): return self.ipyQuestionBankLen  | 
|     def GetQuestionBankByIndex(self, index): return self.ipyQuestionBankCache[index]  | 
|     def GetFamilyRedPackCount(self): return self.ipyFamilyRedPackLen  | 
|     def GetFamilyRedPackByIndex(self, index): return self.ipyFamilyRedPackCache[index]  | 
|     def GetActFeastRedPacketCount(self): return self.ipyActFeastRedPacketLen  | 
|     def GetActFeastRedPacketByIndex(self, index): return self.ipyActFeastRedPacketCache[index]  | 
|     def GetActFeastLoginCount(self): return self.ipyActFeastLoginLen  | 
|     def GetActFeastLoginByIndex(self, index): return self.ipyActFeastLoginCache[index]  | 
|     def GetActFeastWishCount(self): return self.ipyActFeastWishLen  | 
|     def GetActFeastWishByIndex(self, index): return self.ipyActFeastWishCache[index]  | 
|     def GetActFeastTravelCount(self): return self.ipyActFeastTravelLen  | 
|     def GetActFeastTravelByIndex(self, index): return self.ipyActFeastTravelCache[index]  | 
|     def GetFuncOpenLVCount(self): return self.ipyFuncOpenLVLen  | 
|     def GetFuncOpenLVByIndex(self, index): return self.ipyFuncOpenLVCache[index]  | 
|     def GetChinNPCCount(self): return self.ipyChinNPCLen  | 
|     def GetChinNPCByIndex(self, index): return self.ipyChinNPCCache[index]  | 
|     def GetPlayerLVCount(self): return self.ipyPlayerLVLen  | 
|     def GetPlayerLVByIndex(self, index): return self.ipyPlayerLVCache[index]  | 
|     def GetVipPrivilegeCount(self): return self.ipyVipPrivilegeLen  | 
|     def GetVipPrivilegeByIndex(self, index): return self.ipyVipPrivilegeCache[index]  | 
|     def GetActSpringSaleCount(self): return self.ipyActSpringSaleLen  | 
|     def GetActSpringSaleByIndex(self, index): return self.ipyActSpringSaleCache[index]  | 
|     def GetActFlashGiftbagCount(self): return self.ipyActFlashGiftbagLen  | 
|     def GetActFlashGiftbagByIndex(self, index): return self.ipyActFlashGiftbagCache[index]  | 
|     def GetActDailyGiftbagCount(self): return self.ipyActDailyGiftbagLen  | 
|     def GetActDailyGiftbagByIndex(self, index): return self.ipyActDailyGiftbagCache[index]  | 
|     def GetActExpRateCount(self): return self.ipyActExpRateLen  | 
|     def GetActExpRateByIndex(self, index): return self.ipyActExpRateCache[index]  | 
|     def GetActCostRebateCount(self): return self.ipyActCostRebateLen  | 
|     def GetActCostRebateByIndex(self, index): return self.ipyActCostRebateCache[index]  | 
|     def GetActBuyOneCount(self): return self.ipyActBuyOneLen  | 
|     def GetActBuyOneByIndex(self, index): return self.ipyActBuyOneCache[index]  | 
|     def GetActCollectWordsCount(self): return self.ipyActCollectWordsLen  | 
|     def GetActCollectWordsByIndex(self, index): return self.ipyActCollectWordsCache[index]  | 
|     def GetActGarbageSortingCount(self): return self.ipyActGarbageSortingLen  | 
|     def GetActGarbageSortingByIndex(self, index): return self.ipyActGarbageSortingCache[index]  | 
|     def GetActBossTrialCount(self): return self.ipyActBossTrialLen  | 
|     def GetActBossTrialByIndex(self, index): return self.ipyActBossTrialCache[index]  | 
|     def GetActBossTrialTemplateCount(self): return self.ipyActBossTrialTemplateLen  | 
|     def GetActBossTrialTemplateByIndex(self, index): return self.ipyActBossTrialTemplateCache[index]  | 
|     def GetActXianXiaMJCount(self): return self.ipyActXianXiaMJLen  | 
|     def GetActXianXiaMJByIndex(self, index): return self.ipyActXianXiaMJCache[index]  | 
|     def GetActGodGiftCount(self): return self.ipyActGodGiftLen  | 
|     def GetActGodGiftByIndex(self, index): return self.ipyActGodGiftCache[index]  | 
|     def GetActHorsePetFeastCount(self): return self.ipyActHorsePetFeastLen  | 
|     def GetActHorsePetFeastByIndex(self, index): return self.ipyActHorsePetFeastCache[index]  | 
|     def GetActBossRebornCount(self): return self.ipyActBossRebornLen  | 
|     def GetActBossRebornByIndex(self, index): return self.ipyActBossRebornCache[index]  | 
|     def GetActFairyCeremonyCount(self): return self.ipyActFairyCeremonyLen  | 
|     def GetActFairyCeremonyByIndex(self, index): return self.ipyActFairyCeremonyCache[index]  | 
|     def GetUniquenessArriveCount(self): return self.ipyUniquenessArriveLen  | 
|     def GetUniquenessArriveByIndex(self, index): return self.ipyUniquenessArriveCache[index]  | 
|     def GetActRealmPointCount(self): return self.ipyActRealmPointLen  | 
|     def GetActRealmPointByIndex(self, index): return self.ipyActRealmPointCache[index]  | 
|     def GetActFlashSaleCount(self): return self.ipyActFlashSaleLen  | 
|     def GetActFlashSaleByIndex(self, index): return self.ipyActFlashSaleCache[index]  | 
|     def GetStoreCount(self): return self.ipyStoreLen  | 
|     def GetStoreByIndex(self, index): return self.ipyStoreCache[index]  | 
|     def GetActWishingWellCount(self): return self.ipyActWishingWellLen  | 
|     def GetActWishingWellByIndex(self, index): return self.ipyActWishingWellCache[index]  | 
|     def GetActRechargePrizeCount(self): return self.ipyActRechargePrizeLen  | 
|     def GetActRechargePrizeByIndex(self, index): return self.ipyActRechargePrizeCache[index]  | 
|     def GetActRechargeRebateGoldCount(self): return self.ipyActRechargeRebateGoldLen  | 
|     def GetActRechargeRebateGoldByIndex(self, index): return self.ipyActRechargeRebateGoldCache[index]  | 
|     def GetActGrowupBuyCount(self): return self.ipyActGrowupBuyLen  | 
|     def GetActGrowupBuyByIndex(self, index): return self.ipyActGrowupBuyCache[index]  | 
|     def GetActSingleRechargeCount(self): return self.ipyActSingleRechargeLen  | 
|     def GetActSingleRechargeByIndex(self, index): return self.ipyActSingleRechargeCache[index]  | 
|     def GetActTurntableCount(self): return self.ipyActTurntableLen  | 
|     def GetActTurntableByIndex(self, index): return self.ipyActTurntableCache[index]  | 
|     def GetActManyDayRechargeCount(self): return self.ipyActManyDayRechargeLen  | 
|     def GetActManyDayRechargeByIndex(self, index): return self.ipyActManyDayRechargeCache[index]  | 
|     def GetActTotalRechargeCount(self): return self.ipyActTotalRechargeLen  | 
|     def GetActTotalRechargeByIndex(self, index): return self.ipyActTotalRechargeCache[index]  | 
|     def GetCrossZoneCommCount(self): return self.ipyCrossZoneCommLen  | 
|     def GetCrossZoneCommByIndex(self, index): return self.ipyCrossZoneCommCache[index]  | 
|     def GetCrossZonePKCount(self): return self.ipyCrossZonePKLen  | 
|     def GetCrossZonePKByIndex(self, index): return self.ipyCrossZonePKCache[index]  | 
|     def GetChampionshipTimeCount(self): return self.ipyChampionshipTimeLen  | 
|     def GetChampionshipTimeByIndex(self, index): return self.ipyChampionshipTimeCache[index]  | 
|     def GetChampionshipRankCount(self): return self.ipyChampionshipRankLen  | 
|     def GetChampionshipRankByIndex(self, index): return self.ipyChampionshipRankCache[index]  | 
|     def GetChampionshipOfficialCount(self): return self.ipyChampionshipOfficialLen  | 
|     def GetChampionshipOfficialByIndex(self, index): return self.ipyChampionshipOfficialCache[index]  | 
|     def GetCrossRealmPKSeasonCount(self): return self.ipyCrossRealmPKSeasonLen  | 
|     def GetCrossRealmPKSeasonByIndex(self, index): return self.ipyCrossRealmPKSeasonCache[index]  | 
|     def GetCrossRealmPKDanCount(self): return self.ipyCrossRealmPKDanLen  | 
|     def GetCrossRealmPKDanByIndex(self, index): return self.ipyCrossRealmPKDanCache[index]  | 
|     def GetCrossPenglaiZoneMapCount(self): return self.ipyCrossPenglaiZoneMapLen  | 
|     def GetCrossPenglaiZoneMapByIndex(self, index): return self.ipyCrossPenglaiZoneMapCache[index]  | 
|     def GetCrossDemonLandZoneMapCount(self): return self.ipyCrossDemonLandZoneMapLen  | 
|     def GetCrossDemonLandZoneMapByIndex(self, index): return self.ipyCrossDemonLandZoneMapCache[index]  | 
|     def GetActWeekPartyCount(self): return self.ipyActWeekPartyLen  | 
|     def GetActWeekPartyByIndex(self, index): return self.ipyActWeekPartyCache[index]  | 
|     def GetActLoginAwardCount(self): return self.ipyActLoginAwardLen  | 
|     def GetActLoginAwardByIndex(self, index): return self.ipyActLoginAwardCache[index]  | 
|     def GetActFeastWeekPartyCount(self): return self.ipyActFeastWeekPartyLen  | 
|     def GetActFeastWeekPartyByIndex(self, index): return self.ipyActFeastWeekPartyCache[index]  | 
|     def GetActNewFairyCeremonyCount(self): return self.ipyActNewFairyCeremonyLen  | 
|     def GetActNewFairyCeremonyByIndex(self, index): return self.ipyActNewFairyCeremonyCache[index]  | 
|     def GetNewUniquenessArriveCount(self): return self.ipyNewUniquenessArriveLen  | 
|     def GetNewUniquenessArriveByIndex(self, index): return self.ipyNewUniquenessArriveCache[index]  | 
|     def GetLoveGiftCount(self): return self.ipyLoveGiftLen  | 
|     def GetLoveGiftByIndex(self, index): return self.ipyLoveGiftCache[index]  | 
|     def GetMarryCount(self): return self.ipyMarryLen  | 
|     def GetMarryByIndex(self, index): return self.ipyMarryCache[index]  | 
|     def GetActLuckyTreasureCount(self): return self.ipyActLuckyTreasureLen  | 
|     def GetActLuckyTreasureByIndex(self, index): return self.ipyActLuckyTreasureCache[index]  | 
|     def GetCrossActLuckyCloudBuyCount(self): return self.ipyCrossActLuckyCloudBuyLen  | 
|     def GetCrossActLuckyCloudBuyByIndex(self, index): return self.ipyCrossActLuckyCloudBuyCache[index]  | 
|     def GetCrossActLuckyCloudBuyTemplateCount(self): return self.ipyCrossActLuckyCloudBuyTemplateLen  | 
|     def GetCrossActLuckyCloudBuyTemplateByIndex(self, index): return self.ipyCrossActLuckyCloudBuyTemplateCache[index]  | 
|     def GetCrossActAllRechargeCount(self): return self.ipyCrossActAllRechargeLen  | 
|     def GetCrossActAllRechargeByIndex(self, index): return self.ipyCrossActAllRechargeCache[index]  | 
|     def GetCrossActAllRechargeTemplateCount(self): return self.ipyCrossActAllRechargeTemplateLen  | 
|     def GetCrossActAllRechargeTemplateByIndex(self, index): return self.ipyCrossActAllRechargeTemplateCache[index]  | 
|     def GetCrossActCTGBillboardCount(self): return self.ipyCrossActCTGBillboardLen  | 
|     def GetCrossActCTGBillboardByIndex(self, index): return self.ipyCrossActCTGBillboardCache[index]  | 
|     def GetCrossActCTGBillboardOrderCount(self): return self.ipyCrossActCTGBillboardOrderLen  | 
|     def GetCrossActCTGBillboardOrderByIndex(self, index): return self.ipyCrossActCTGBillboardOrderCache[index]  | 
|     def GetEquipStarUpCount(self): return self.ipyEquipStarUpLen  | 
|     def GetEquipStarUpByIndex(self, index): return self.ipyEquipStarUpCache[index]  | 
|     def GetFamilyWarRankAwardCount(self): return self.ipyFamilyWarRankAwardLen  | 
|     def GetFamilyWarRankAwardByIndex(self, index): return self.ipyFamilyWarRankAwardCache[index]  | 
|     def GetAssistThanksGiftCount(self): return self.ipyAssistThanksGiftLen  | 
|     def GetAssistThanksGiftByIndex(self, index): return self.ipyAssistThanksGiftCache[index]  | 
|     def GetFairyDomainCount(self): return self.ipyFairyDomainLen  | 
|     def GetFairyDomainByIndex(self, index): return self.ipyFairyDomainCache[index]  | 
|   | 
| IPYData = IPY_DataMgr()  | 
| def IPY_Data(): return IPYData  | 
|   | 
| def GetConfigEx(key):  | 
|     '''»ñÈ¡×Ô¶¨Òåkey»º´æÊý¾Ý  | 
|     '''  | 
|     if key in IPYData.ipyConfigEx:  | 
|         return IPYData.ipyConfigEx[key]  | 
|     return  | 
| def SetConfigEx(key, configData):  | 
|     '''ÉèÖÃ×Ô¶¨Òåkey»º´æÊý¾Ý  | 
|     ÓÐЩ±íµÄÅäÖÃÄÚÈÝ¿ÉÄÜÔÚʵ¼Ê¹¦ÄÜʹÓÃÖÐÖ±½ÓʹÓñíÊý¾ÝµÄ»°»á±È½ÏÂé·³£¬±ÈÈçÿ´Î¶¼Òª±éÀú»ñȡһЩ±íÊý¾Ý  | 
|     Èç¹û¾¹ýÒ»²ãÊý¾Ýת»»ºóÔÙÀ´Ê¹ÓøÃÊý¾ÝµÄ»°»á¼ò»¯¹¦ÄÜÂß¼»òÌá¸ßЧÂÊ£¬Ôò¿ÉÒÔͨ¹ýº¯Êý±£´æÒ»Ð©×Ô¶¨ÒåµÄ»º´æÄÚÈÝ£¬·½±ã¹¦ÄÜʹÓà  | 
|     Ò²¿ÉÒÔÊÊÓÃÓÚÆäËû×Ô¶¨Ò建´æ´æ´¢  | 
|     '''  | 
|     IPYData.ipyConfigEx[key] = configData  | 
|     return configData  | 
|   | 
| def GetIpyGameData(dtName, *args):  | 
|     '''»ñÈ¡±íÊý¾Ý£¬ÊÊÓÃÓÚÊý¾ÝΨһµÄ£¬·µ»Øµ¥ÌõÊý¾ÝʵÀý  | 
|     @param dtName: ±íÃû£¬²»º¬tag  | 
|     @param args: ½¨±íʱÉèÖõÄË÷Òý×Ö¶Î˳Ðò¶ÔÓ¦µÄ²éѯֵ  | 
|     @return: ¶ÔÓ¦²éѯÌõ¼þµÄ ipyData Êý¾ÝʵÀý£¬Ö»·µ»Øµ¥¸öʵÀý  | 
|     @ʹÓÃ˵Ã÷: IpyGameDataPY.GetIpyGameData(±íÃû, Ë÷Òý1²éѯֵ, Ë÷Òý2²éѯֵ, ¡ )  | 
|     '''  | 
|     if dtName not in IPYData.ipyDataIndexMap:  | 
|         ErrLog("Can not found ipyData dtName=%s" % (dtName))  | 
|         return  | 
|     indexDict = IPYData.ipyDataIndexMap[dtName]  | 
|     if args not in indexDict:  | 
|         ErrLog("Can not found ipyData dtName=%s,indexValue=%s" % (dtName, args))  | 
|         return  | 
|     indexList = indexDict[args]  | 
|     return getattr(IPYData, "ipy%sCache" % dtName)[indexList[0]]  | 
|   | 
| def GetIpyGameDataList(dtName, *args):  | 
|     '''»ñÈ¡±íÊý¾Ý£¬ÊÊÓÃÓÚ²éѯ½á¹ûÓжàÌõÊý¾ÝµÄ  | 
|     @param dtName: ±íÃû£¬²»º¬tag  | 
|     @param args: ½¨±íʱÉèÖõÄË÷Òý×Ö¶Î˳Ðò¶ÔÓ¦µÄ²éѯֵ  | 
|     @return: ¶ÔÓ¦²éѯÌõ¼þµÄ ipyData Êý¾ÝʵÀýÁÐ±í  | 
|     @ʹÓÃ˵Ã÷: Óë GetIpyGameData º¯ÊýÏàͬ  | 
|     '''  | 
|     if dtName not in IPYData.ipyDataIndexMap:  | 
|         ErrLog("Can not found ipyDataList dtName=%s" % (dtName))  | 
|         return  | 
|     indexDict = IPYData.ipyDataIndexMap[dtName]  | 
|     if args not in indexDict:  | 
|         ErrLog("Can not found ipyDataList dtName=%s,indexValue=%s" % (dtName, args))  | 
|         return  | 
|     indexList = indexDict[args]  | 
|     dataCache = getattr(IPYData, "ipy%sCache" % dtName)  | 
|     return [dataCache[i] for i in indexList]  | 
|   | 
| def GetIpyGameDataNotLog(dtName, *args):  | 
|     '''Óë GetIpyGameData º¯ÊýÏàͬ, Ö»ÊÇÕÒ²»µ½Êý¾Ýʱ²»»áÊä³öÈÕÖ¾  | 
|     '''  | 
|     if dtName not in IPYData.ipyDataIndexMap:  | 
|         #ErrLog("Can not found ipyData dtName=%s" % (dtName))  | 
|         return  | 
|     indexDict = IPYData.ipyDataIndexMap[dtName]  | 
|     if args not in indexDict:  | 
|         #ErrLog("Can not found ipyData dtName=%s,indexValue=%s" % (dtName, args))  | 
|         return  | 
|     indexList = indexDict[args]  | 
|     return getattr(IPYData, "ipy%sCache" % dtName)[indexList[0]]  | 
|   | 
| def GetIpyGameDataListNotLog(dtName, *args):  | 
|     '''Óë GetIpyGameDataList º¯ÊýÏàͬ, Ö»ÊÇÕÒ²»µ½Êý¾Ýʱ²»»áÊä³öÈÕÖ¾  | 
|     '''  | 
|     if dtName not in IPYData.ipyDataIndexMap:  | 
|         #ErrLog("Can not found ipyDataList dtName=%s" % (dtName))  | 
|         return  | 
|     indexDict = IPYData.ipyDataIndexMap[dtName]  | 
|     if args not in indexDict:  | 
|         #ErrLog("Can not found ipyDataList dtName=%s,indexValue=%s" % (dtName, args))  | 
|         return  | 
|     indexList = indexDict[args]  | 
|     dataCache = getattr(IPYData, "ipy%sCache" % dtName)  | 
|     return [dataCache[i] for i in indexList]  | 
|   | 
| def GetIpyGameDataByCondition(dtName, keyDict={}, returnList=False, isLogNone=True):  | 
|     '''¸ù¾Ý×Ô¶¨Òå²éѯÌõ¼þ²éѯ±íÊý¾Ý£¬ÓÉÓÚĿǰֻ֧³Ö½¨Á¢Ò»×é²éѯË÷Òý£¬ËùÒÔʹÓÃÆäËû²éѯÌõ¼þ²é±íʱֻÄÜͨ¹ý¸Ãº¯Êý²éÕÒ  | 
|     @param dtName: ±íÃû£¬²»º¬tag  | 
|     @param keyDict: ²éѯÌõ¼þ×Öµä {²éѯ×Ö¶ÎÃû:²éѯֵ, ...}  | 
|     @param returnList: ÊÇ·ñÒÔÁбíµÄÐÎʽ·µ»Ø²éѯÊý¾Ý£¬Ä¬ÈÏ·ñ  | 
|     @param isLogNone: ÕÒ²»µ½Êý¾ÝʱÊÇ·ñÊý¾ÝÈÕÖ¾£¬Ä¬ÈÏÊÇ  | 
|     @return: ÕÒ²»µ½Êý¾Ýʱ·µ»Ø None£¬ÓÐÊý¾Ýʱ¸ù¾Ý²ÎÊýÊÇ·ñ·µ»ØÁÐ±í·µ»Ø¶ÔÓ¦µÄÊý¾ÝʵÀý»òÊý¾ÝʵÀýÁÐ±í  | 
|     '''  | 
|     fieldList = keyDict.keys()  | 
|     valueList = keyDict.values()  | 
|     findFieldKey = "%s_%s" % (dtName, fieldList)  | 
|     findValueKey = tuple(valueList)  | 
|       | 
|     cacheList = getattr(IPYData, "ipy%sCache" % dtName)  | 
|     if findFieldKey not in IPYData.ipyDataIndexMapEx:  | 
|         indexMapDict = {}  | 
|         for index, iData in enumerate(cacheList):  | 
|             valuekey = tuple([getattr(iData, "%s" % field) for field in fieldList])  | 
|             indexList = indexMapDict.get(valuekey, [])  | 
|             indexList.append(index)  | 
|             indexMapDict[valuekey] = indexList          | 
|         IPYData.ipyDataIndexMapEx[findFieldKey] = indexMapDict  | 
|           | 
|     indexMapDict = IPYData.ipyDataIndexMapEx[findFieldKey]  | 
|     if findValueKey not in indexMapDict:  | 
|         if isLogNone:  | 
|             ErrLog("GetIpyGameDataByCondition can not found data! %s %s" % (dtName, keyDict))  | 
|         return  | 
|     indexList = indexMapDict[findValueKey]  | 
|     if not returnList:  | 
|         return cacheList[indexList[0]]  | 
|     return [cacheList[index] for index in indexList]  | 
|   | 
| def GetFuncCfgIpyData(key):  | 
|     '''¶Á¹¦ÄÜÅäÖñíÅäÖÃʵÀý  | 
|     @param key: ÅäÖÃkey  | 
|     @return: Ö±½Ó·µ»Ø¸ÃÅäÖÃkey¶ÔÓ¦µÄÅäÖÃipyDataʵÀý  | 
|     '''  | 
|     if key not in IPYData.ipyFuncConfigDict:  | 
|         ErrLog("Can not found ipyData FuncConfig key=%s!" % key)  | 
|         return ""  | 
|     return IPYData.ipyFuncConfigDict[key]  | 
|   | 
| def GetFuncCfg(key, index=1):  | 
|     '''¶Á¹¦ÄÜÅäÖñíÅäÖÃרÓú¯Êý  | 
|     @param key: ÅäÖÃkey  | 
|     @param index: µÚ¼¸¸öÅäÖÃÖµ£¬Ö§³Ö1~5  | 
|     @return: Ö±½Ó·µ»Ø¶ÔÓ¦µÄÊý¾ÝÀàÐÍ int¡¢str£¬²»ÓÃÔÙÊÖ¶¯×ªint  | 
|     '''  | 
|     if key not in IPYData.ipyFuncConfigDict:  | 
|         ErrLog("Can not found ipyData FuncConfig key=%s!" % key)  | 
|         return ""  | 
|     cfgObj = IPYData.ipyFuncConfigDict[key]  | 
|     if index == 1:  | 
|         return cfgObj.Numerical1  | 
|     if index == 2:  | 
|         return cfgObj.Numerical2  | 
|     if index == 3:  | 
|         return cfgObj.Numerical3  | 
|     if index == 4:  | 
|         return cfgObj.Numerical4  | 
|     if index == 5:  | 
|         return cfgObj.Numerical5  | 
|     ErrLog("Can not found ipyData FuncConfig key=%s,index=%s!" % (key, index))  | 
|     return ""  | 
|   | 
| def GetFuncEvalCfg(key, index=1, defaultValue=[]):  | 
|     '''¶ÁÈ¡¹¦ÄÜÅäÖñíÅäÖÃÁÐ±í¡¢×Öµä¸ñʽרÓú¯Êý  | 
|     @param key: ÅäÖÃkey  | 
|     @param index: µÚ¼¸¸öÅäÖÃÖµ£¬Ö§³Ö1~5  | 
|     @return: Ö±½Ó·µ»Ø¶ÔÓ¦µÄÊý¾ÝÀàÐÍ list¡¢dict¡¢tuple£¬²»ÓÃÔÙeval  | 
|       | 
|     ÓÉÓڲ߻®ÓÐ×Ô¶¨ÒåµÄÁбí½á¹¹ obj|¡ , µ±¸ÃÁбíÅäÖÃÖ»ÓÐÒ»¸öÔªËØÊ±£¬´ËʱÅäÖõÄÄÚÈÝΪµ¥¸öÊýÖµ£¬¼ÓÔØµÄÅäÖõÄʱºò´ËÌõÊý¾Ý»á±»×ªÎªintÐÍ  | 
|     ¹ÊʹÓøÃרÓú¯Êý·µ»ØÁбí½á¹¹£¬·½±ã¹¦ÄÜ¿ª·¢Ê±²»ÓÃÔÙ¿¼ÂÇÁбíΪintʱµÄÇé¿ö£»  | 
|     µ±È»Èç¹ûÅäÖõÄÄÚÈݱ¾Éí¾ÍΪpythonµÄÁÐ±í¡¢×Öµä½á¹¹µÄ»°¿ÉʹÓÃÉÏÃæµÄº¯Êý  | 
|     ²»¹ýΪÁËͳһ£¬½¨Ò鹦ÄÜÅäÖñí¶ÁÁÐ±í¡¢×Öµäʱ¶¼Ê¹Óøú¯Êý  | 
|     '''  | 
|     if key not in IPYData.ipyFuncConfigDict:  | 
|         ErrLog("Can not found ipyData FuncConfig key=%s!" % key)  | 
|         return defaultValue  | 
|     cfgObj = IPYData.ipyFuncConfigDict[key]  | 
|     if index == 1:  | 
|         curConfig = cfgObj.Numerical1  | 
|     elif index == 2:  | 
|         curConfig = cfgObj.Numerical2  | 
|     elif index == 3:  | 
|         curConfig = cfgObj.Numerical3  | 
|     elif index == 4:  | 
|         curConfig = cfgObj.Numerical4  | 
|     elif index == 5:  | 
|         curConfig = cfgObj.Numerical5  | 
|     else:  | 
|         ErrLog("Can not found ipyData FuncConfig key=%s,index=%s!" % (key, index))  | 
|         return defaultValue  | 
|     curType = type(curConfig)  | 
|     if curType in [list, tuple, dict]:  | 
|         return curConfig  | 
|     if curType == int:  | 
|         return [curConfig]  | 
|     return defaultValue  | 
|   | 
| def GetFuncCompileCfg(key, index=1):  | 
|     '''»ñÈ¡¹¦ÄÜÅäÖñíÒѱàÒë¹ýµÄ¹«Ê½  | 
|     @param key: ÅäÖÃkey  | 
|     @param index: µÚ¼¸¸öÅäÖÃÖµ£¬Ö§³Ö1~5  | 
|     @return: ·µ»ØÒѱàÒë¹ýµÄ¹«Ê½  | 
|     '''  | 
|     return FormulaControl.GetCompileFormula(key + str(index), str(GetFuncCfg(key, index)))  | 
|   | 
| def InterpolationSearch(dtName, keyName, keyValue, conditionDict={}):  | 
|     '''²éѯÌõ¼þÏÂÓë¶ÔÓ¦²éѯ×ֶβο¼ÖµÏà½üµÄÊý¾ÝʵÀý£»²Î¿¼ÖµÐ¡ÓÚÅäÖñí×îСֵʱ·µ»Ønone£¬´óÓÚ×î´óֵʱ·µ»Ø×î´óÖµ¶ÔÓ¦µÄʵÀý  | 
|     @param dtName: ±íÃû£¬²»º¬tag  | 
|     @param keyName: ²Î¿¼×Ö¶ÎÃû  | 
|     @param keyValue: ²Î¿¼×Ö¶ÎÖµ£¬´óÓÚµÈÓÚ×Ö¶Îֵʱ·µ»Ø¶ÔÓ¦Êý¾Ý  | 
|     @param conditionDict: ²éѯÌõ¼þ£¬{²éѯ×Ö¶ÎÃû:×Ö¶ÎÖµ, ...}  | 
|     @return: ÕÒ²»µ½Êý¾Ý·µ»Ø None £¬ ·ñÔò·µ»Ø¶ÔÓ¦µÄ ipyData Êý¾ÝʵÀý  | 
|     '''  | 
|     if not conditionDict:  | 
|         dataList = getattr(IPYData, "ipy%sCache" % dtName)  | 
|     else:  | 
|         dataList = GetIpyGameDataByCondition(dtName, conditionDict, True)  | 
|     if not dataList:  | 
|         return  | 
|       | 
|     low = 0  | 
|     lowData = dataList[0]  | 
|     lowValue = getattr(lowData, "%s" % keyName)  | 
|     if keyValue < lowValue:  | 
|         return  | 
|       | 
|     high = len(dataList) - 1  | 
|     highData = dataList[high]  | 
|     highValue = getattr(highData, "%s" % keyName)  | 
|     if keyValue >= highValue:  | 
|         return highData  | 
|       | 
|     near = low + int((high - low) * (keyValue - lowValue)/(highValue - lowValue))  | 
|       | 
|     nearData = dataList[near]  | 
|     nearValue = getattr(nearData, "%s" % keyName)  | 
|       | 
|     if keyValue < nearValue:  | 
|         for i in xrange(near - 1, low - 1, -1):  | 
|             nearData = dataList[i]  | 
|             nearValue = getattr(nearData, "%s" % keyName)  | 
|             if nearValue <= keyValue:  | 
|                 return nearData  | 
|               | 
|     elif keyValue > nearValue:  | 
|         for i in xrange(near + 1, high + 1):  | 
|             nearData = dataList[i]  | 
|             nearValue = getattr(nearData, "%s" % keyName)  | 
|             if nearValue > keyValue:  | 
|                 return dataList[i - 1]  | 
|               | 
|     return nearData  | 
|   |