#!/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
|
import gc
|
|
'''±í½á¹¹¶¨Òå×Öµä
|
{
|
±íÃû:(
|
(×Ö¶ÎÀàÐÍ, ×Ö¶ÎÃû, ÊÇ·ñ²éѯË÷Òý),
|
...
|
),
|
...
|
}
|
'''
|
Def_IpyTable = {
|
"FuncConfig":(
|
("char", "Key", 1),
|
("char", "Numerical1", 0),
|
("char", "Numerical2", 0),
|
("char", "Numerical3", 0),
|
("char", "Numerical4", 0),
|
("char", "Numerical5", 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),
|
),
|
|
"FuncTeamSet":(
|
("DWORD", "FuncMapID", 1),
|
("BYTE", "NeedName", 0),
|
("BYTE", "MemberMax", 0),
|
("BYTE", "ApplyMax", 0),
|
("BYTE", "ReqApplyMax", 0),
|
("BYTE", "SortType", 0),
|
("BYTE", "SortReverse", 0),
|
("BYTE", "OPLimitInAct", 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),
|
),
|
|
"ActFamilyCTGAssist":(
|
("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),
|
("char", "JoinStartTime", 0),
|
("char", "JoinEndTime", 0),
|
("dict", "NotifyInfoStart", 0),
|
("dict", "NotifyInfoEnd", 0),
|
("list", "NotifyInfoLoop", 0),
|
("BYTE", "IsDayReset", 0),
|
("BYTE", "ResetType", 0),
|
("list", "TemplateIDList", 0),
|
("list", "FamilyTemplateIDList", 0),
|
),
|
|
"ActBossTrialTemplate":(
|
("DWORD", "TemplateID", 1),
|
("BYTE", "Rank", 0),
|
("list", "AwardItemList", 0),
|
("list", "MemAwardItemList", 0),
|
),
|
|
"CrossActBossTrial":(
|
("DWORD", "CfgID", 1),
|
("char", "ActGroupName", 0),
|
("BYTE", "ZoneID", 0),
|
("list", "ServerIDRangeList", 0),
|
("char", "StartDate", 0),
|
("char", "EndDate", 0),
|
("char", "JoinStartTime", 0),
|
("char", "JoinEndTime", 0),
|
("dict", "NotifyInfoStart", 0),
|
("dict", "NotifyInfoEnd", 0),
|
("list", "NotifyInfoLoop", 0),
|
("BYTE", "IsDayReset", 0),
|
("BYTE", "ResetType", 0),
|
("list", "RankLimitList", 0),
|
("WORD", "PersonalTemplateID", 0),
|
("WORD", "FamilyTemplateID", 0),
|
),
|
|
"ActXianXiaMJ":(
|
("DWORD", "CfgID", 1),
|
("list", "PlatformList", 0),
|
("list", "ServerGroupIDList", 0),
|
("BYTE", "ActNum", 0),
|
("char", "StartDate", 0),
|
("char", "EndDate", 0),
|
("char", "JoinStartTime", 0),
|
("char", "JoinEndTime", 0),
|
("BYTE", "IsDayReset", 0),
|
("WORD", "PersonalTemplateID", 0),
|
),
|
|
"CrossActXianXiaMJ":(
|
("DWORD", "CfgID", 1),
|
("char", "ActGroupName", 0),
|
("BYTE", "ZoneID", 0),
|
("list", "ServerIDRangeList", 0),
|
("char", "StartDate", 0),
|
("char", "EndDate", 0),
|
("char", "JoinStartTime", 0),
|
("char", "JoinEndTime", 0),
|
("BYTE", "IsDayReset", 0),
|
("WORD", "RankLimitPersonal", 0),
|
("WORD", "PersonalTemplateID", 0),
|
),
|
|
"ActXianXiaMJBillTemp":(
|
("DWORD", "TemplateID", 1),
|
("BYTE", "Rank", 0),
|
("list", "AwardItemList", 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),
|
),
|
|
"CrossZoneBattlefield":(
|
("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),
|
),
|
|
"CrossFamilyFlagwarZoneMap":(
|
("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),
|
),
|
|
"ActBuyCountGift":(
|
("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),
|
),
|
|
"ActTask":(
|
("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),
|
),
|
|
"ActLoginNew":(
|
("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),
|
),
|
|
"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),
|
),
|
|
"MineAreaItem":(
|
("BYTE", "MineID", 1),
|
("WORD", "LimitLV", 0),
|
("DWORD", "ItemID", 0),
|
("BYTE", "ItemLV", 0),
|
("DWORD", "ItemCount", 0),
|
("float", "ItemWeight", 0),
|
("DWORD", "RefreshWeightSys", 0),
|
("DWORD", "RefreshWeight", 0),
|
("DWORD", "RefreshWeightSuper", 0),
|
),
|
|
"FamilyWarRankAward":(
|
("WORD", "WarWorldLV", 1),
|
("BYTE", "WarRank", 0),
|
("list", "RankAuctionItem", 0),
|
),
|
|
"AssistThanksGift":(
|
("DWORD", "GiftID", 1),
|
("BYTE", "AssistAwardCount", 0),
|
),
|
|
"Worship":(
|
("BYTE", "WorshipType", 1),
|
("DWORD", "WorshipValue", 1),
|
("BYTE", "WorshipDays", 0),
|
("BYTE", "MoneyType", 0),
|
("list", "MoneyRange", 0),
|
),
|
|
"FairyDomain":(
|
("WORD", "ID", 1),
|
("DWORD", "HourCntPubLimit", 0),
|
("DWORD", "DayCntPubLimit", 0),
|
),
|
}
|
|
|
# ¹¦ÄÜÅäÖñí¸ñ
|
class IPY_FuncConfig():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetKey(self): return self.attrTuple[0] # ±êʶ char
|
def GetNumerical1(self): return self.attrTuple[1] # Êý¾Ý1 char
|
def GetNumerical2(self): return self.attrTuple[2] # Êý¾Ý2 char
|
def GetNumerical3(self): return self.attrTuple[3] # Êý¾Ý3 char
|
def GetNumerical4(self): return self.attrTuple[4] # Êý¾Ý4 char
|
def GetNumerical5(self): return self.attrTuple[5] # Êý¾Ý5 char
|
|
# ´´½ÇÏÞÖÆ·þÎñÆ÷ÅäÖñí
|
class IPY_CreateRoleLimitServer():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetLimitServerGroupIDRangeList(self): return self.attrTuple[0] # ÏÞÖÆ´´½ÇµÄ·þÎñÆ÷×éID·¶Î§Áбí list
|
def GetLimitServerGroupIDList(self): return self.attrTuple[1] # ÏÞÖÆ´´½ÇµÄ·þÎñÆ÷×éIDÁбí list
|
|
# ÊÀ½çµÈ¼¶±í¸ñ
|
class IPY_WorldLV():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetWorldLV(self): return self.attrTuple[0] # ÊÀ½çµÈ¼¶ WORD
|
def GetOpenServerSecond(self): return self.attrTuple[1] # ¿ª·þʱ¼äÃë DWORD
|
|
# ÏÉÃ˱í¸ñ
|
class IPY_Family():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetFamilyLV(self): return self.attrTuple[0] # ÏÉÃ˵ȼ¶ BYTE
|
def GetMemberCnt(self): return self.attrTuple[1] # ³ÉÔ±ÊýÁ¿ WORD
|
def GetDeputyLeaderCnt(self): return self.attrTuple[2] # ¸±ÃËÖ÷ÊýÁ¿ BYTE
|
def GetEliteCnt(self): return self.attrTuple[3] # ¾«Ó¢ÊýÁ¿ BYTE
|
def GetNeedMoney(self): return self.attrTuple[4] # Éý¼¶ÐèÒª×ʽð DWORD
|
def GetWeekMissionMoneyMax(self): return self.attrTuple[5] # ÿÖÜÈÎÎñ×î´ó¿É»ñµÃÏÉÃË×ʽð DWORD
|
def GetBossFBCnt(self): return self.attrTuple[6] # BOSS¸±±¾´ÎÊý BYTE
|
|
# ÏÉÃËÊÔÁ¶ÉËѪ½±Àø±í
|
class IPY_FamilyBossHurtAward():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetAwardType(self): return self.attrTuple[0] # ½±ÀøÀàÐÍ 1-¸öÈË£»2-ÏÉÃË BYTE
|
def GetRecordIndex(self): return self.attrTuple[1] # ½±Àø¼Ç¼Ë÷Òý£¬Í¬½±ÀøÀàÐÍʱ¼Ç¼Ë÷Òý²»¿ÉÖظ´ BYTE
|
def GetNeedHurtTotal(self): return self.attrTuple[2] # ËùÐè×ÜÉËѪ DWORD
|
def GetAwardItemList(self): return self.attrTuple[3] # ½±ÀøÎïÆ·Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...] list
|
|
# ÏÉÃËÕ󷨱í
|
class IPY_FamilyZhenfa():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetZhenfaType(self): return self.attrTuple[0] # Õó·¨ÀàÐÍ BYTE
|
def GetZhenfaLV(self): return self.attrTuple[1] # Õ󷨵ȼ¶ WORD
|
def GetLVUpNeedExp(self): return self.attrTuple[2] # ÉýÏÂÒ»¼¶ËùÐè¾Ñé DWORD
|
|
# ¼¯Êвéѯ±í
|
class IPY_MarketQuery():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetQueryType(self): return self.attrTuple[0] # ²éѯÀàÐÍ WORD
|
def GetLimitInfo(self): return self.attrTuple[1] # ÏÞÖÆÌõ¼þ dict
|
|
# ÅÄÂôÎïÆ·±í
|
class IPY_AuctionItem():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetAuctionItemID(self): return self.attrTuple[0] # DWORD
|
def GetNoticeSaleMinutes(self): return self.attrTuple[1] # Ô¤¸æÅÄÂô·ÖÖÓ BYTE
|
def GetFamilySaleMinutes(self): return self.attrTuple[2] # ÏÉÃËÅÄÂô·ÖÖÓ WORD
|
def GetWorldSaleMinutes(self): return self.attrTuple[3] # È«·þÅÄÂô·ÖÖÓ WORD
|
def GetBasePrice(self): return self.attrTuple[4] # ÆðÅÄ¼Û WORD
|
def GetBuyoutPrice(self): return self.attrTuple[5] # Ò»¿Ú¼Û WORD
|
def GetBiddingAdd(self): return self.attrTuple[6] # ¾º¼ÛÔö¼Ó WORD
|
def GetNeedWorldNotify(self): return self.attrTuple[7] # ÊÇ·ñÐèÒª¹ã²¥ BYTE
|
def GetSortpriority(self): return self.attrTuple[8] # ÅÅÐòÓÅÏȼ¶¹é×é BYTE
|
|
# ÅÄÂôÐÐϵͳÅÄÆ·±í
|
class IPY_AuctionSystemItem():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # DWORD
|
def GetStartDate(self): return self.attrTuple[1] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[2] # ½áÊøÈÕÆÚ char
|
def GetStartTime(self): return self.attrTuple[3] # ¿ªÆôʱ¼ä char
|
def GetEndTime(self): return self.attrTuple[4] # ½áÊøʱ¼ä char
|
def GetWorldLVRange(self): return self.attrTuple[5] # ÊÀ½çµÈ¼¶·¶Î§ÏÞÖÆ list
|
def GetAddRandSecondRange(self): return self.attrTuple[6] # ÿ¼þÅÄÆ·Ëæ»ú¼ä¸ôÉϼÜÃëÊý ÉÏÏÞ|ÏÂÏÞ list
|
def GetReplenishCDMinutes(self): return self.attrTuple[7] # ¶¯Ì¬²¹³äÅÄÆ·¼ä¸ô·ÖÖÓ WORD
|
def GetReplenishAuctionCount(self): return self.attrTuple[8] # ¶¯Ì¬²¹³äÅÄÆ·±£µ×Êý BYTE
|
def GetReplenishItemID(self): return self.attrTuple[9] # ¶¯Ì¬²¹³äÎïÆ·ID DWORD
|
def GetReplenishEquipInfo(self): return self.attrTuple[10] # ¶¯Ì¬²¹³ä×°±¸ÐÅÏ¢ [½×,ÑÕÉ«,ÊÇ·ñÌ××°] list
|
def GetReplenishEquipPlaces(self): return self.attrTuple[11] # ¶¯Ì¬²¹³äÉϼÜ×°±¸Î»Áбí list
|
def GetAuctionCount(self): return self.attrTuple[12] # Ö¸¶¨ÉϼܴÎÊý BYTE
|
def GetRandMinuteRange(self): return self.attrTuple[13] # Ö¸¶¨ÉϼÜËæ»ú¼ä¸ô·ÖÖÓÏÂÏÞ|ÉÏÏÞ list
|
def GetItemCountWeightList(self): return self.attrTuple[14] # Ö¸¶¨ÉϼÜËæ»ú¼þÊýȨÖØÁбí, [[ȨÖØ, ¼þÊý], ...] list
|
def GetAuctionItemWeightList(self): return self.attrTuple[15] # Ö¸¶¨ÉϼÜÎïÆ·Ëæ»úȨÖØ, [[ȨÖØ, ÎïÆ·ID],[ȨÖØ, [½×,ÑÕÉ«,²¿Î»¼¯ºÏ,ÊÇ·ñÌ××°,ÐǼ¶]] ...] list
|
def GetRandMailKeyList(self): return self.attrTuple[16] # Ö¸¶¨ÉϼÜËæ»úÓʼþÁÐ±í£¬ÓÐÅäÖÃʱÉϼܵÄʱºòÔÚÏßÍæ¼Ò»áÊÕµ½Ò»·âÉϼÜÓʼþÌáÐÑ list
|
|
# ¿ç·þÈÕ³£»î¶¯±í
|
class IPY_CrossDailyAction():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetDailyID(self): return self.attrTuple[0] # »î¶¯ID DWORD
|
def GetOpenTimeDict(self): return self.attrTuple[1] # ¿ªÆôʱ¼ä dict
|
def GetDuration(self): return self.attrTuple[2] # ³ÖÐøʱ¼ä, 0Ϊ²»ÏÞÖÆ DWORD
|
def GetNotifyInfo(self): return self.attrTuple[3] # ¹ã²¥ÌáʾÐÅÏ¢ dict
|
|
# ÈÕ³£»î¶¯±í
|
class IPY_DailyAction():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetDailyID(self): return self.attrTuple[0] # »î¶¯ID DWORD
|
def GetOpenTimeDict(self): return self.attrTuple[1] # ¿ªÆôʱ¼ä dict
|
def GetDuration(self): return self.attrTuple[2] # ³ÖÐøʱ¼ä, 0Ϊ²»ÏÞÖÆ DWORD
|
def GetNotifyInfo(self): return self.attrTuple[3] # ¹ã²¥ÌáʾÐÅÏ¢ dict
|
|
# ÈÕ³£»î¶¯±í¶¨ÖƱí
|
class IPY_DailyActionCustom():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetID(self): return self.attrTuple[0] # ID DWORD
|
def GetOpenServerWeek(self): return self.attrTuple[1] # ¿ª·þÊÇÖܼ¸ BYTE
|
def GetOpenServerDay(self): return self.attrTuple[2] # ¿ª·þµÚ¼¸Ìì DWORD
|
def GetDailyID(self): return self.attrTuple[3] # ÈÕ³£»î¶¯ID BYTE
|
def GetOpenTimeList(self): return self.attrTuple[4] # ¿ªÆôʱ¼äÁбí list
|
def GetDuration(self): return self.attrTuple[5] # ³ÖÐøʱ¼ä, 0Ϊ²»ÏÞÖÆ DWORD
|
def GetNotifyInfo(self): return self.attrTuple[6] # ¹ã²¥ÌáʾÐÅÏ¢ dict
|
|
# ÈÕ³£»î¶¯±í¶¨ÖƱíºÏ·þ
|
class IPY_DailyActionCustomMix():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetID(self): return self.attrTuple[0] # ID DWORD
|
def GetMixServerDay(self): return self.attrTuple[1] # ºÏ·þµÚ¼¸Ìì DWORD
|
def GetDailyID(self): return self.attrTuple[2] # ÈÕ³£»î¶¯ID BYTE
|
def GetOpenTimeList(self): return self.attrTuple[3] # ¿ªÆôʱ¼äÁбí list
|
def GetDuration(self): return self.attrTuple[4] # ³ÖÐøʱ¼ä, 0Ϊ²»ÏÞÖÆ DWORD
|
def GetNotifyInfo(self): return self.attrTuple[5] # ¹ã²¥ÌáʾÐÅÏ¢ dict
|
|
# ¸±±¾×´Ì¬Ê±¼ä±í
|
class IPY_FBStateTime():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetID(self): return self.attrTuple[0] # ID DWORD
|
def GetDataMapID(self): return self.attrTuple[1] # ËùÊôµÄÍæ·¨Êý¾ÝµØͼID DWORD
|
def GetStartWeekday(self): return self.attrTuple[2] # ¿ªÊ¼ÐÇÆÚ BYTE
|
def GetStartHour(self): return self.attrTuple[3] # ¿ªÊ¼Ê± BYTE
|
def GetStartMinute(self): return self.attrTuple[4] # ¿ªÊ¼·Ö BYTE
|
def GetEndHour(self): return self.attrTuple[5] # ½áÊøʱ BYTE
|
def GetEndMinute(self): return self.attrTuple[6] # ½áÊø·Ö BYTE
|
def GetCanEnter(self): return self.attrTuple[7] # ÊÇ·ñ¿É½øÈ븱±¾ BYTE
|
def GetStateValue(self): return self.attrTuple[8] # ״ֵ̬ BYTE
|
def GetNotifyInfoDict(self): return self.attrTuple[9] # ¹ã²¥ÌáʾÐÅÏ¢ dict
|
|
# ¸±±¾×´Ì¬Ê±¼ä¶¨ÖƱí
|
class IPY_FBStateTimeCustom():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetID(self): return self.attrTuple[0] # ID DWORD
|
def GetOpenServerWeek(self): return self.attrTuple[1] # ¿ª·þÊÇÖܼ¸ BYTE
|
def GetOpenServerDay(self): return self.attrTuple[2] # ¿ª·þµÚ¼¸Ìì DWORD
|
def GetDataMapID(self): return self.attrTuple[3] # ËùÊôµÄÍæ·¨Êý¾ÝµØͼID DWORD
|
def GetStartHour(self): return self.attrTuple[4] # ¿ªÊ¼Ê± BYTE
|
def GetStartMinute(self): return self.attrTuple[5] # ¿ªÊ¼·Ö BYTE
|
def GetEndHour(self): return self.attrTuple[6] # ½áÊøʱ BYTE
|
def GetEndMinute(self): return self.attrTuple[7] # ½áÊø·Ö BYTE
|
def GetCanEnter(self): return self.attrTuple[8] # ÊÇ·ñ¿É½øÈ븱±¾ BYTE
|
def GetStateValue(self): return self.attrTuple[9] # ״ֵ̬ BYTE
|
def GetNotifyInfoDict(self): return self.attrTuple[10] # ¹ã²¥ÌáʾÐÅÏ¢ dict
|
|
# ¸±±¾×´Ì¬Ê±¼ä¶¨ÖƱíºÏ·þ
|
class IPY_FBStateTimeCustomMix():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetID(self): return self.attrTuple[0] # ID DWORD
|
def GetMixServerDay(self): return self.attrTuple[1] # ºÏ·þµÚ¼¸Ìì DWORD
|
def GetDataMapID(self): return self.attrTuple[2] # ËùÊôµÄÍæ·¨Êý¾ÝµØͼID DWORD
|
def GetStartHour(self): return self.attrTuple[3] # ¿ªÊ¼Ê± BYTE
|
def GetStartMinute(self): return self.attrTuple[4] # ¿ªÊ¼·Ö BYTE
|
def GetEndHour(self): return self.attrTuple[5] # ½áÊøʱ BYTE
|
def GetEndMinute(self): return self.attrTuple[6] # ½áÊø·Ö BYTE
|
def GetCanEnter(self): return self.attrTuple[7] # ÊÇ·ñ¿É½øÈ븱±¾ BYTE
|
def GetStateValue(self): return self.attrTuple[8] # ״ֵ̬ BYTE
|
def GetNotifyInfoDict(self): return self.attrTuple[9] # ¹ã²¥ÌáʾÐÅÏ¢ dict
|
|
# ¸±±¾×ܱí
|
class IPY_FBFunc():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetDataMapID(self): return self.attrTuple[0] # Êý¾ÝµØͼID DWORD
|
def GetHelpPoint(self): return self.attrTuple[1] # ÖúÕ½ÏÉÔµ±Ò(0´ú±í²»¿ÉÖúÕ½) WORD
|
|
# ¸±±¾¹¦ÄÜÏß·±í
|
class IPY_FBLine():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetDataMapID(self): return self.attrTuple[0] # Êý¾ÝµØͼID DWORD
|
def GetLineID(self): return self.attrTuple[1] # ¹¦ÄÜÏß·ID BYTE
|
def GetMapID(self): return self.attrTuple[2] # ³¡¾°µØͼID DWORD
|
|
# ¸±±¾ÖúÕ½±í
|
class IPY_FBHelpBattle():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetDataMapID(self): return self.attrTuple[0] # Êý¾ÝµØͼID DWORD
|
def GetLineID(self): return self.attrTuple[1] # ¹¦ÄÜÏß·ID BYTE
|
def GetFightPowerMin(self): return self.attrTuple[2] # ÖúÕ½×îµÍÕ½Á¦£¬Ò²ÊǸ±±¾Õ½Á¦ DWORD
|
def GetFightPowerMax(self): return self.attrTuple[3] # ÖúÕ½×î¸ßÕ½Á¦£¬0Ϊ²»ÏÞÖÆ DWORD
|
def GetLVLimit(self): return self.attrTuple[4] # ÖúÕ½µÈ¼¶ÏÞÖÆ, 0Ϊ²»ÏÞÖÆ WORD
|
def GetDayFreeHelpCount(self): return self.attrTuple[5] # ÿÈÕÃâ·ÑÖúÕ½´ÎÊý£¬[ÿÈÕÃâ·ÑÖúÕ½´ÎÊý, ÊÇ·ñËùÓвãͨÓÃ] list
|
|
# ¹¦ÄܶÓÎéÉ趨±í
|
class IPY_FuncTeamSet():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetFuncMapID(self): return self.attrTuple[0] # ¹¦ÄܵØͼID DWORD
|
def GetNeedName(self): return self.attrTuple[1] # ÐèÒª¶ÓÎéÃû BYTE
|
def GetMemberMax(self): return self.attrTuple[2] # ×î´óÈËÔ±Êý BYTE
|
def GetApplyMax(self): return self.attrTuple[3] # ×î´ó½ÓÊÜÉêÇëÊý BYTE
|
def GetReqApplyMax(self): return self.attrTuple[4] # ×î´óÉêÇëÊý BYTE
|
def GetSortType(self): return self.attrTuple[5] # ¶ÓÎéÁбíÅÅÐò·½°¸ BYTE
|
def GetSortReverse(self): return self.attrTuple[6] # ÊÇ·ñµ¹Ðò BYTE
|
def GetOPLimitInAct(self): return self.attrTuple[7] # »î¶¯ÆÚ¼äÏÞÖƶÓÎé²Ù×÷ BYTE
|
|
# µØͼ±í
|
class IPY_ChinMap():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetMapID(self): return self.attrTuple[0] # µØͼID DWORD
|
def GetMapName(self): return self.attrTuple[1] # µØͼÃû char
|
def GetMapFBType(self): return self.attrTuple[2] # µØͼÀàÐÍ BYTE
|
def GetTeamLimit(self): return self.attrTuple[3] # ¶ÓÎéÏÞÖÆÀàÐÍ£»0²»ÏÞ£¬1-²»¿É±ä¸ü£¬2-²»¿É´æÔÚ¶ÓÎé BYTE
|
|
# BOSSÐÅÏ¢±í
|
class IPY_BOSSInfo():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetNPCID(self): return self.attrTuple[0] # ID DWORD
|
def GetMapID(self): return self.attrTuple[1] # µØͼID DWORD
|
def GetRefreshTime(self): return self.attrTuple[2] # Ë¢ÐÂʱ¼ä ²ÎÊý onlineCnt char
|
def GetLVLimit(self): return self.attrTuple[3] # ÔÚÏßÈËÎïµÈ¼¶·¶Î§ list
|
def GetDiffPer(self): return self.attrTuple[4] # °Ù·Ö±ÈÓë֮ǰµÄÎó²îСÓÚX%,Ôò¸üÐÂʵʱÔÚÏßÊýÁ¿ BYTE
|
def GetNoUpdataCnt(self): return self.attrTuple[5] # ¶àÉÙ´Îδ¸üÐÂʵʱÔÚÏßÊýÁ¿×Ö¶ÎʱǿÖƸüРBYTE
|
def GetStoneNPCID(self): return self.attrTuple[6] # ű®NPCID DWORD
|
def GetRebornPreNotifyTime(self): return self.attrTuple[7] # ¸´»îÇ°XÃë֪ͨ WORD
|
def GetSourceName(self): return self.attrTuple[8] # BOSSÀ´Ô´ char
|
def GetCanAssist(self): return self.attrTuple[9] # ÊÇ·ñ¿ÉÐÖú BYTE
|
|
# BossÊ×ɱ
|
class IPY_BOSSFirstKill():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetNPCID(self): return self.attrTuple[0] # ID DWORD
|
def GetServerFirstKillPlayerAward(self): return self.attrTuple[1] # È«·þÊ×ɱÍæ¼Ò½±Àø [[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...] list
|
|
# È«Ãñ³å°ñÅÅÐн±Àø±í
|
class IPY_OSCBillRankAward():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetOSCBillType(self): return self.attrTuple[0] # ³å°ñÀàÐÍ BYTE
|
def GetRankA(self): return self.attrTuple[1] # ÅÅÃûA BYTE
|
def GetRankB(self): return self.attrTuple[2] # ÖÁÅÅÃûB BYTE
|
def GetRankAward(self): return self.attrTuple[3] # ÅÅÃû½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý],...], ...} dict
|
|
# Ñç»áÌâ¿â±í
|
class IPY_QuestionBank():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetID(self): return self.attrTuple[0] # ID DWORD
|
def GetAnswer(self): return self.attrTuple[1] # ´ð°¸ char
|
|
# ÏÉÃ˺ì°ü±í
|
class IPY_FamilyRedPack():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetID(self): return self.attrTuple[0] # ID WORD
|
def GetGetType(self): return self.attrTuple[1] # »ñµÃ;¾¶ WORD
|
def GetMoneyNum(self): return self.attrTuple[2] # ºì°ü¶î¶È WORD
|
def GetMoneyType(self): return self.attrTuple[3] # ½ðÇ®ÀàÐÍ BYTE
|
def GetPacketCnt(self): return self.attrTuple[4] # ºì°ü¸öÊý BYTE
|
def GetLeaderOwn(self): return self.attrTuple[5] # ÊÇ·ñ¹éÊôÃËÖ÷ BYTE
|
def GetPacketOpenTime(self): return self.attrTuple[6] # ·¢·Åºì°üʱ¼äyyyy-MM-dd hh:mm char
|
def GetValidMinutes(self): return self.attrTuple[7] # ºì°üÓÐЧʱ³¤£¨·Ö£© BYTE
|
|
# ½ÚÈÕºì°üʱ¼ä±í
|
class IPY_ActFeastRedPacket():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActMark(self): return self.attrTuple[1] # »î¶¯×é±ê¼Ç char
|
def GetPlatformList(self): return self.attrTuple[2] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[3] # ·þÎñÆ÷IDÁбí list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetIsDayReset(self): return self.attrTuple[6] # ÊÇ·ñÿÌìÖØÖà BYTE
|
def GetResetType(self): return self.attrTuple[7] # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà BYTE
|
def GetRedPacketIDList(self): return self.attrTuple[8] # ÿÈÕ¶ÔÓ¦ºì°üIDÁбí[[µÚÒ»Ììºì°üIDÁбí], ...] list
|
def GetLVLimit(self): return self.attrTuple[9] # ÏÞÖƵȼ¶ WORD
|
|
# ½ÚÈյǼ½±Àøʱ¼ä±í
|
class IPY_ActFeastLogin():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActMark(self): return self.attrTuple[1] # »î¶¯×é±ê¼Ç char
|
def GetPlatformList(self): return self.attrTuple[2] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[3] # ·þÎñÆ÷IDÁбí list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
|
# ½ÚÈÕ×£¸£Ê±¼ä±í
|
class IPY_ActFeastWish():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActMark(self): return self.attrTuple[1] # »î¶¯×é±ê¼Ç char
|
def GetPlatformList(self): return self.attrTuple[2] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[3] # ·þÎñÆ÷IDÁбí list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetResetType(self): return self.attrTuple[6] # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà BYTE
|
def GetNotifyInfoStart(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[9] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
|
# ½ÚÈÕÓÎÀúʱ¼ä±í
|
class IPY_ActFeastTravel():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActMark(self): return self.attrTuple[1] # »î¶¯×é±ê¼Ç char
|
def GetPlatformList(self): return self.attrTuple[2] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[3] # ·þÎñÆ÷IDÁбí list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetResetType(self): return self.attrTuple[6] # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà BYTE
|
def GetNotifyInfoStart(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[9] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
|
# µÈ¼¶¿ªÆô¹¦ÄÜ
|
class IPY_FuncOpenLV():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetFuncId(self): return self.attrTuple[0] # ¹¦Äܱêʶ DWORD
|
def GetLimitLV(self): return self.attrTuple[1] # ¿ªÆôµÈ¼¶ DWORD
|
def GetLimitMagicWeapon(self): return self.attrTuple[2] # ÐèÒª½âËø·¨±¦ID DWORD
|
def GetLimiRealmLV(self): return self.attrTuple[3] # ÐèÒª¾³½çµÈ¼¶ WORD
|
def GetLimitVIPLV(self): return self.attrTuple[4] # ÐèÒªVIPµÈ¼¶ BYTE
|
|
# NPC±í
|
class IPY_ChinNPC():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetNPCID(self): return self.attrTuple[0] # DWORD
|
def GetNPCName(self): return self.attrTuple[1] # char
|
def GetLV(self): return self.attrTuple[2] # WORD
|
|
# Íæ¼ÒµÈ¼¶±í
|
class IPY_PlayerLV():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetLV(self): return self.attrTuple[0] # Íæ¼ÒµÈ¼¶ WORD
|
def GetReFightPower(self): return self.attrTuple[1] # Õ½¶·Á¦ DWORD
|
|
# VIPÌØȨ±í
|
class IPY_VipPrivilege():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetVIPPriID(self): return self.attrTuple[0] # ÌØȨID DWORD
|
def GetVIP0(self): return self.attrTuple[1] # VIP0¶ÔÓ¦µÄÌØȨֵ DWORD
|
def GetVIP1(self): return self.attrTuple[2] # VIP1¶ÔÓ¦µÄÌØȨֵ DWORD
|
def GetVIP2(self): return self.attrTuple[3] # VIP2¶ÔÓ¦µÄÌØȨֵ DWORD
|
def GetVIP3(self): return self.attrTuple[4] # VIP3¶ÔÓ¦µÄÌØȨֵ DWORD
|
def GetVIP4(self): return self.attrTuple[5] # VIP4¶ÔÓ¦µÄÌØȨֵ DWORD
|
def GetVIP5(self): return self.attrTuple[6] # VIP5¶ÔÓ¦µÄÌØȨֵ DWORD
|
def GetVIP6(self): return self.attrTuple[7] # VIP6¶ÔÓ¦µÄÌØȨֵ DWORD
|
def GetVIP7(self): return self.attrTuple[8] # VIP7¶ÔÓ¦µÄÌØȨֵ DWORD
|
def GetVIP8(self): return self.attrTuple[9] # VIP8¶ÔÓ¦µÄÌØȨֵ DWORD
|
def GetVIP9(self): return self.attrTuple[10] # VIP9¶ÔÓ¦µÄÌØȨֵ DWORD
|
def GetVIP10(self): return self.attrTuple[11] # VIP10¶ÔÓ¦µÄÌØȨֵ DWORD
|
def GetVIP11(self): return self.attrTuple[12] # VIP11¶ÔÓ¦µÄÌØȨֵ DWORD
|
def GetVIP12(self): return self.attrTuple[13] # VIP12¶ÔÓ¦µÄÌØȨֵ DWORD
|
def GetVIP13(self): return self.attrTuple[14] # VIP13¶ÔÓ¦µÄÌØȨֵ DWORD
|
def GetVIP14(self): return self.attrTuple[15] # VIP14¶ÔÓ¦µÄÌØȨֵ DWORD
|
def GetVIP15(self): return self.attrTuple[16] # VIP15¶ÔÓ¦µÄÌØȨֵ DWORD
|
|
# ÏÞʱÌػݱí
|
class IPY_ActSpringSale():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetStartTimeList(self): return self.attrTuple[6] # ¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î list
|
def GetEndTimeList(self): return self.attrTuple[7] # ½áÊøʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î list
|
def GetAdvanceMinutes(self): return self.attrTuple[8] # Ç°¶ËÌáÇ°X·ÖÖÓչʾ»î¶¯ WORD
|
def GetNotifyInfoStart(self): return self.attrTuple[9] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[10] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[11] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetLVLimit(self): return self.attrTuple[12] # ÏÞÖƵȼ¶ WORD
|
def GetIsDayReset(self): return self.attrTuple[13] # ÊÇ·ñÿÌìÖØÖà BYTE
|
|
# ÏÞʱÀñ°ü±í
|
class IPY_ActFlashGiftbag():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetStartTimeList(self): return self.attrTuple[6] # ¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î list
|
def GetEndTimeList(self): return self.attrTuple[7] # ½áÊøʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î list
|
def GetAdvanceMinutes(self): return self.attrTuple[8] # Ç°¶ËÌáÇ°X·ÖÖÓչʾ»î¶¯ WORD
|
def GetNotifyInfoStart(self): return self.attrTuple[9] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[10] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[11] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetLimitWorldLV(self): return self.attrTuple[12] # ÏÞÖÆ¿ªÆôµÄ×îµÍÊÀ½çµÈ¼¶ WORD
|
def GetLVLimit(self): return self.attrTuple[13] # ÏÞÖƵȼ¶ WORD
|
def GetIsDayReset(self): return self.attrTuple[14] # ÊÇ·ñÿÌìÖØÖà BYTE
|
|
# ÿÈÕÀñ°ü±í
|
class IPY_ActDailyGiftbag():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActMark(self): return self.attrTuple[1] # »î¶¯×é±ê¼Ç char
|
def GetPlatformList(self): return self.attrTuple[2] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[3] # ·þÎñÆ÷IDÁбí list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
|
# Ë«±¶¾Ñé»î¶¯±í
|
class IPY_ActExpRate():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetServerGroupIDList(self): return self.attrTuple[1] # ·þÎñÆ÷×éIDÁбí list
|
def GetServerGroupIDListExcept(self): return self.attrTuple[2] # ÅųýµÄ·þÎñÆ÷×éIDÁбí list
|
def GetStartDate(self): return self.attrTuple[3] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[4] # ½áÊøÈÕÆÚ char
|
def GetStartTimeList(self): return self.attrTuple[5] # ¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î list
|
def GetEndTimeList(self): return self.attrTuple[6] # ½áÊøʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î list
|
def GetNotifyInfoStart(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[9] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key, [¿ÉÑ¡²ÎÊý1, ...]] list
|
def GetLVLimit(self): return self.attrTuple[10] # ÏÞÖƵȼ¶ WORD
|
def GetAddExpRate(self): return self.attrTuple[11] # ¾Ñ鱶Âʼӳɣ¬Íò·ÖÂÊ DWORD
|
|
# Ïû·Ñ·µÀû»î¶¯±í
|
class IPY_ActCostRebate():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetIsDayReset(self): return self.attrTuple[9] # ÊÇ·ñÿÌìÖØÖà BYTE
|
|
# ÂòÒ»ËͶà»î¶¯±í
|
class IPY_ActBuyOne():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetIsDayReset(self): return self.attrTuple[9] # ÊÇ·ñÿÌìÖØÖà BYTE
|
|
# ÏÉÃ˳äÖµÐÖú»î¶¯±í
|
class IPY_ActFamilyCTGAssist():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetIsDayReset(self): return self.attrTuple[9] # ÊÇ·ñÿÌìÖØÖà BYTE
|
|
# ¼¯×ֻʱ¼ä±í
|
class IPY_ActCollectWords():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
|
# À¬»ø·ÖÀà»î¶¯Ê±¼ä±í
|
class IPY_ActGarbageSorting():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetResetType(self): return self.attrTuple[9] # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà BYTE
|
|
# BossÀúÁ·»î¶¯±í
|
class IPY_ActBossTrial():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetJoinStartTime(self): return self.attrTuple[6] # ²ÎÓ뿪ʼʱ¼äµã char
|
def GetJoinEndTime(self): return self.attrTuple[7] # ²ÎÓë½áÊøʱ¼äµã char
|
def GetNotifyInfoStart(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[9] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[10] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetIsDayReset(self): return self.attrTuple[11] # ÊÇ·ñÿÌìÖØÖà BYTE
|
def GetResetType(self): return self.attrTuple[12] # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà BYTE
|
def GetTemplateIDList(self): return self.attrTuple[13] # °ñµ¥Ä£°å±àºÅÁбí list
|
def GetFamilyTemplateIDList(self): return self.attrTuple[14] # ÏÉÃË°ñµ¥Ä£°å±àºÅÁбí list
|
|
# BossÀúÁ·°ñµ¥Ä£°æ±í
|
class IPY_ActBossTrialTemplate():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetTemplateID(self): return self.attrTuple[0] # Ä£°å±àºÅ DWORD
|
def GetRank(self): return self.attrTuple[1] # Ãû´Î BYTE
|
def GetAwardItemList(self): return self.attrTuple[2] # ½±ÀøÎïÆ·Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...] ÏÉÃË°ñʱΪÃËÖ÷½±Àø£¬Èç¹ûûÓÐÅäÖã¬Ôòͳһȡ³ÉÔ±½±Àø list
|
def GetMemAwardItemList(self): return self.attrTuple[3] # ÏÉÃË°ñ³ÉÔ±½±ÀøÎïÆ·ÐÅÏ¢Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...] list
|
|
# BossÀúÁ·¿ç·þ»î¶¯±í
|
class IPY_CrossActBossTrial():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActGroupName(self): return self.attrTuple[1] # »î¶¯×éÃû£¨Í¬×é»î¶¯µÄÃû×ÖÐèÏàͬ£© char
|
def GetZoneID(self): return self.attrTuple[2] # ×éÄÚ·Ö×é±àºÅ BYTE
|
def GetServerIDRangeList(self): return self.attrTuple[3] # »î¶¯µÄÕ˺ŷþÎñÆ÷ID·¶Î§Áбí [[serverIDA, serverIDB], ...] list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetJoinStartTime(self): return self.attrTuple[6] # ²ÎÓ뿪ʼʱ¼äµã char
|
def GetJoinEndTime(self): return self.attrTuple[7] # ²ÎÓë½áÊøʱ¼äµã char
|
def GetNotifyInfoStart(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[9] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[10] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[Ñ»··ÖÖÓ, ¹ã²¥key, [¹ã²¥²ÎÊýÁбí¿ÉÑ¡]] list
|
def GetIsDayReset(self): return self.attrTuple[11] # ÊÇ·ñÿÌìÖØÖà BYTE
|
def GetResetType(self): return self.attrTuple[12] # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà BYTE
|
def GetRankLimitList(self): return self.attrTuple[13] # ÉÏ°ñ¸öÊýÏÞÖÆ ¸öÈË|ÏÉÃË list
|
def GetPersonalTemplateID(self): return self.attrTuple[14] # ¸öÈËÅÅÐÐÄ£°å±àºÅ WORD
|
def GetFamilyTemplateID(self): return self.attrTuple[15] # ÏÉÃËÅÅÐÐÄ£°å±àºÅ WORD
|
|
# ÏÉÏ»Ãؾ³»î¶¯Ê±¼ä±í
|
class IPY_ActXianXiaMJ():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetJoinStartTime(self): return self.attrTuple[6] # ²ÎÓ뿪ʼʱ¼äµã char
|
def GetJoinEndTime(self): return self.attrTuple[7] # ²ÎÓë½áÊøʱ¼äµã char
|
def GetIsDayReset(self): return self.attrTuple[8] # ÊÇ·ñÿÌìÖØÖà BYTE
|
def GetPersonalTemplateID(self): return self.attrTuple[9] # ¸öÈËÅÅÐÐÄ£°å±àºÅ WORD
|
|
# ÏÉÏ»Ãؾ³»î¶¯¿ç·þ±í
|
class IPY_CrossActXianXiaMJ():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActGroupName(self): return self.attrTuple[1] # »î¶¯×éÃû£¨Í¬×é»î¶¯µÄÃû×ÖÐèÏàͬ£© char
|
def GetZoneID(self): return self.attrTuple[2] # ×éÄÚ·Ö×é±àºÅ BYTE
|
def GetServerIDRangeList(self): return self.attrTuple[3] # »î¶¯µÄÕ˺ŷþÎñÆ÷ID·¶Î§Áбí [[serverIDA, serverIDB], ...] list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetJoinStartTime(self): return self.attrTuple[6] # ²ÎÓ뿪ʼʱ¼äµã char
|
def GetJoinEndTime(self): return self.attrTuple[7] # ²ÎÓë½áÊøʱ¼äµã char
|
def GetIsDayReset(self): return self.attrTuple[8] # ÊÇ·ñÿÌìÖØÖà BYTE
|
def GetRankLimitPersonal(self): return self.attrTuple[9] # ¸öÈËÉÏ°ñ»ý·ÖÏÞÖÆ WORD
|
def GetPersonalTemplateID(self): return self.attrTuple[10] # ¸öÈËÅÅÐÐÄ£°å±àºÅ WORD
|
|
# ÏÉÏ»Ãؾ³°ñµ¥Ä£°æ±í
|
class IPY_ActXianXiaMJBillTemp():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetTemplateID(self): return self.attrTuple[0] # Ä£°å±àºÅ DWORD
|
def GetRank(self): return self.attrTuple[1] # Ãû´Î BYTE
|
def GetAwardItemList(self): return self.attrTuple[2] # ½±ÀøÎïÆ·Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...] list
|
|
# ÌìµÛÀñ°ü»î¶¯Ê±¼ä±í
|
class IPY_ActGodGift():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetIsDayReset(self): return self.attrTuple[9] # ÊÇ·ñÿÌìÖØÖà BYTE
|
|
# Æï³èÊ¢Ñç»î¶¯
|
class IPY_ActHorsePetFeast():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetStartTimeList(self): return self.attrTuple[6] # ¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î list
|
def GetEndTimeList(self): return self.attrTuple[7] # ½áÊøʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î list
|
def GetNotifyInfoStart(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[9] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetIsDayReset(self): return self.attrTuple[10] # ÊÇ·ñÿÌìÖØÖà BYTE
|
|
# BOSS¸´»î»î¶¯Ê±¼ä±í
|
class IPY_ActBossReborn():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetServerGroupIDList(self): return self.attrTuple[1] # ·þÎñÆ÷×éIDÁбí list
|
def GetServerGroupIDListExcept(self): return self.attrTuple[2] # ÅųýµÄ·þÎñÆ÷×éIDÁбí list
|
def GetStartDate(self): return self.attrTuple[3] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[4] # ½áÊøÈÕÆÚ char
|
def GetResetType(self): return self.attrTuple[5] # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà BYTE
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetLVLimit(self): return self.attrTuple[8] # ÏÞÖƵȼ¶ WORD
|
def GetTemplateID(self): return self.attrTuple[9] # Ä£°å±àºÅ BYTE
|
|
# ÏɽçÊ¢µä»î¶¯Ê±¼ä±í
|
class IPY_ActFairyCeremony():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActMark(self): return self.attrTuple[1] # »î¶¯×é±ê¼Ç char
|
def GetPlatformList(self): return self.attrTuple[2] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[3] # ·þÎñÆ÷IDÁбí list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetResetType(self): return self.attrTuple[6] # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖã»2-5µã¿ªÊ¼0µã½áÊø BYTE
|
def GetNotifyInfoStart(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetLVLimit(self): return self.attrTuple[9] # ÏÞÖƵȼ¶ WORD
|
|
# ÏɽçÊ¢µä-¾ø°æ½µÁÙ±í
|
class IPY_UniquenessArrive():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetWorldLvNum(self): return self.attrTuple[0] # ÊÀ½çµÈ¼¶µµ BYTE
|
def GetRank(self): return self.attrTuple[1] # ÅÅÃû DWORD
|
def GetAward(self): return self.attrTuple[2] # ½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨],...], ...} dict
|
|
# ¶à±¶ÐÞÐеã»î¶¯Ê±¼ä±í
|
class IPY_ActRealmPoint():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActMark(self): return self.attrTuple[1] # »î¶¯×é±ê¼Ç char
|
def GetPlatformList(self): return self.attrTuple[2] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[3] # ·þÎñÆ÷IDÁбí list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetResetType(self): return self.attrTuple[6] # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà BYTE
|
def GetNotifyInfoStart(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetMultiple(self): return self.attrTuple[9] # ±¶Êý WORD
|
def GetLVLimit(self): return self.attrTuple[10] # ÏÞÖƵȼ¶ WORD
|
def GetPointLimit(self): return self.attrTuple[11] # ÏÞÖƶîÍâÐÞÐеã DWORD
|
|
# ÏÞʱÇÀ¹º±í
|
class IPY_ActFlashSale():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetStartTimeList(self): return self.attrTuple[6] # ¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î list
|
def GetEndTimeList(self): return self.attrTuple[7] # ½áÊøʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î list
|
def GetAdvanceMinutes(self): return self.attrTuple[8] # Ç°¶ËÌáÇ°X·ÖÖÓչʾ»î¶¯ WORD
|
def GetNotifyInfoStart(self): return self.attrTuple[9] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[10] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[11] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetLVLimit(self): return self.attrTuple[12] # ÏÞÖƵȼ¶ WORD
|
def GetIsDayReset(self): return self.attrTuple[13] # ÊÇ·ñÿÌìÖØÖà BYTE
|
def GetShopTypeList(self): return self.attrTuple[14] # É̵êÀàÐÍÁбí list
|
|
# É̳DZí
|
class IPY_Store():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetID(self): return self.attrTuple[0] # ID DWORD
|
def GetShopType(self): return self.attrTuple[1] # É̵êÀàÐÍ DWORD
|
def GetRefreshType(self): return self.attrTuple[2] # Ë¢ÐÂÀàÐÍ 0-²»ÖØÖÃ,1-onWeek0µã,2-onWeek5µã,3-OnDay0µã,4-OnDay5µã BYTE
|
def GetServerLimitCnt(self): return self.attrTuple[3] # È«·þÏÞÖÆÊýÁ¿ DWORD
|
|
# ÐíÔ¸³Ø»î¶¯Ê±¼ä±í
|
class IPY_ActWishingWell():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetServerGroupIDList(self): return self.attrTuple[1] # ·þÎñÆ÷×éIDÁбí list
|
def GetServerGroupIDListExcept(self): return self.attrTuple[2] # ÅųýµÄ·þÎñÆ÷×éIDÁбí list
|
def GetStartDate(self): return self.attrTuple[3] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[4] # ½áÊøÈÕÆÚ char
|
def GetIsDayReset(self): return self.attrTuple[5] # ÊÇ·ñÿÌìÖØÖà BYTE
|
def GetResetType(self): return self.attrTuple[6] # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà BYTE
|
def GetNotifyInfoStart(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[9] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetLVLimit(self): return self.attrTuple[10] # ÏÞÖƵȼ¶ WORD
|
|
# ³äÖµ·µÀû»î¶¯±í
|
class IPY_ActRechargePrize():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActMark(self): return self.attrTuple[1] # »î¶¯×é±ê¼Ç char
|
def GetPlatformList(self): return self.attrTuple[2] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[3] # ·þÎñÆ÷IDÁбí list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetIsDayReset(self): return self.attrTuple[9] # ÊÇ·ñÿÌìÖØÖà BYTE
|
|
# ÀۼƳäÖµ·µÀûÏÉÓñ»î¶¯±í
|
class IPY_ActRechargeRebateGold():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActMark(self): return self.attrTuple[1] # »î¶¯×é±ê¼Ç char
|
def GetPlatformList(self): return self.attrTuple[2] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[3] # ·þÎñÆ÷IDÁбí list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetIsDayReset(self): return self.attrTuple[9] # ÊÇ·ñÿÌìÖØÖà BYTE
|
|
# ³É³¤±ØÂò»î¶¯±í
|
class IPY_ActGrowupBuy():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActMark(self): return self.attrTuple[1] # »î¶¯×é±ê¼Ç char
|
def GetPlatformList(self): return self.attrTuple[2] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[3] # ·þÎñÆ÷IDÁбí list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
|
# µ¥±ÊÀÛ³ä»î¶¯±í
|
class IPY_ActSingleRecharge():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetIsDayReset(self): return self.attrTuple[9] # ÊÇ·ñÿÌìÖØÖà BYTE
|
|
# תÅ̻±í
|
class IPY_ActTurntable():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetIsDayReset(self): return self.attrTuple[6] # ÊÇ·ñÿÌìÖØÖà BYTE
|
|
# ¶àÈÕÁ¬³ä»î¶¯±í
|
class IPY_ActManyDayRecharge():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
|
# ÀۼƳäÖµ»î¶¯±í
|
class IPY_ActTotalRecharge():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetIsDayReset(self): return self.attrTuple[9] # ÊÇ·ñÿÌìÖØÖà BYTE
|
|
# ¿ç·þ·ÖÇø±íͨÓÃ
|
class IPY_CrossZoneComm():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCrossZoneName(self): return self.attrTuple[0] # ¿ç·þ·ÖÇøÃû char
|
def GetZoneID(self): return self.attrTuple[1] # ÈüÇøID BYTE
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ÈüÇø·þÎñÆ÷×éIDÁбí list
|
|
# ¿ç·þ·ÖÇø±í¹ÅÉñÕ½³¡
|
class IPY_CrossZoneBattlefield():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCrossZoneName(self): return self.attrTuple[0] # ¿ç·þ·ÖÇøÃû char
|
def GetZoneID(self): return self.attrTuple[1] # ÈüÇøID BYTE
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ÈüÇø·þÎñÆ÷×éIDÁбí list
|
|
# ¿ç·þ·ÖÇø±í¾º¼¼³¡
|
class IPY_CrossZonePK():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCrossZoneName(self): return self.attrTuple[0] # ¿ç·þ·ÖÇøÃû char
|
def GetZoneID(self): return self.attrTuple[1] # ÈüÇøID BYTE
|
def GetZoneName(self): return self.attrTuple[2] # ÈüÇøÃû×Ö char
|
def GetServerGroupIDList(self): return self.attrTuple[3] # ÈüÇø·þÎñÆ÷×éIDÁбí list
|
|
# ¿ç·þÅÅλÈüÁ÷³Ì±í
|
class IPY_ChampionshipTime():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetID(self): return self.attrTuple[0] # DWORD
|
def GetStartDay(self): return self.attrTuple[1] # ¿ªÊ¼Ìì BYTE
|
def GetStartHour(self): return self.attrTuple[2] # ¿ªÊ¼Ê± BYTE
|
def GetStartMinute(self): return self.attrTuple[3] # ¿ªÊ¼·Ö BYTE
|
def GetEndDay(self): return self.attrTuple[4] # ½áÊøÌì BYTE
|
def GetEndHour(self): return self.attrTuple[5] # ½áÊøʱ BYTE
|
def GetEndMinute(self): return self.attrTuple[6] # ½áÊø·Ö BYTE
|
def GetStateValue(self): return self.attrTuple[7] # ״ֵ̬ WORD
|
def GetNotifyInfo(self): return self.attrTuple[8] # ¹ã²¥ÌáʾÐÅÏ¢ dict
|
|
# ¿ç·þÅÅλ½±Àø±í
|
class IPY_ChampionshipRank():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetRank(self): return self.attrTuple[0] # Ãû´Î BYTE
|
def GetRankAwardItemList(self): return self.attrTuple[1] # Ãû´Î½±ÀøÎïÆ·Áбí list
|
def GetMainOfficialID(self): return self.attrTuple[2] # Ö÷¹ÙÖ°ID WORD
|
|
# ¿ç·þÅÅλ¹ÙÖ°±í
|
class IPY_ChampionshipOfficial():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetOfficialID(self): return self.attrTuple[0] # ¹ÙÖ°ID WORD
|
def GetJuniorOfficialIDList(self): return self.attrTuple[1] # ϼ¶¹ÙÖ°IDÁбí list
|
def GetDailyAwardItemList(self): return self.attrTuple[2] # ¹ÙְÿÈÕÓʼþ½±ÀøÎïÆ·Áбí list
|
def GetCanBeReplace(self): return self.attrTuple[3] # ÊÇ·ñ¿É±»ÌôÕ½Ìæ»» BYTE
|
|
# ¿ç·þ¾º¼¼³¡Èü¼¾±í
|
class IPY_CrossRealmPKSeason():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCrossZoneName(self): return self.attrTuple[0] # ¿ç·þ·ÖÇøÃû char
|
def GetZoneID(self): return self.attrTuple[1] # ÈüÇøID BYTE
|
def GetSeasonID(self): return self.attrTuple[2] # Èü¼¾ID WORD
|
def GetStartDate(self): return self.attrTuple[3] # ¿ªÊ¼ÈÕÆÚ yyyy-MM-dd char
|
def GetEndDate(self): return self.attrTuple[4] # ½áÊøÈÕÆÚ yyyy-MM-dd char
|
def GetEndTime(self): return self.attrTuple[5] # ½áËãʱ¼ä hh:mm char
|
|
# ¿ç·þ¾º¼¼³¡¶Îλ±í
|
class IPY_CrossRealmPKDan():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetDanLV(self): return self.attrTuple[0] # ¶ÎλµÈ¼¶ BYTE
|
def GetLVUpScore(self): return self.attrTuple[1] # Éý¶ÎλËùÐè»ý·Ö WORD
|
def GetMatchRobotRate(self): return self.attrTuple[2] # Æ¥Åä»úÆ÷ÈË»ù´¡¸ÅÂÊ£¬°Ù·ÖÂÊ BYTE
|
def GetMatchRobotRateEx(self): return self.attrTuple[3] # Æ¥Åä»úÆ÷ÈËʧ°Ü´ÎÊý¸½¼Ó¸ÅÂÊ£¬°Ù·ÖÂÊ BYTE
|
|
# ¿ç·þBossÅîÀ³Ïɾ³·ÖÇøµØͼ±í
|
class IPY_CrossPenglaiZoneMap():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetZoneID(self): return self.attrTuple[0] # ·ÖÇøID BYTE
|
def GetMapID(self): return self.attrTuple[1] # ³¡¾°µØͼID DWORD
|
def GetDataMapID(self): return self.attrTuple[2] # Êý¾ÝµØͼID DWORD
|
def GetCopyMapID(self): return self.attrTuple[3] # ÐéÄâÏß·ID BYTE
|
|
# ¿ç·þBossħ»¯Ö®µØ·ÖÇøµØͼ±í
|
class IPY_CrossDemonLandZoneMap():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetZoneID(self): return self.attrTuple[0] # ·ÖÇøID BYTE
|
def GetMapID(self): return self.attrTuple[1] # ³¡¾°µØͼID DWORD
|
def GetDataMapID(self): return self.attrTuple[2] # Êý¾ÝµØͼID DWORD
|
def GetCopyMapID(self): return self.attrTuple[3] # ÐéÄâÏß·ID BYTE
|
|
# ¿ç·þ·ÖÇøµØͼÖð¹Íò½ç
|
class IPY_CrossFamilyFlagwarZoneMap():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetZoneID(self): return self.attrTuple[0] # ·ÖÇøID BYTE
|
def GetMapID(self): return self.attrTuple[1] # ³¡¾°µØͼID DWORD
|
def GetDataMapID(self): return self.attrTuple[2] # Êý¾ÝµØͼID DWORD
|
def GetCopyMapID(self): return self.attrTuple[3] # ÐéÄâÏß·ID BYTE
|
|
# ÖÜ¿ñ»¶»î¶¯Ê±¼ä±í
|
class IPY_ActWeekParty():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActMark(self): return self.attrTuple[1] # »î¶¯×é±ê¼Ç char
|
def GetPlatformList(self): return self.attrTuple[2] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[3] # ·þÎñÆ÷IDÁбí list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetAdvanceMinutes(self): return self.attrTuple[6] # Ç°¶ËÌáÇ°X·ÖÖÓչʾ»î¶¯ WORD
|
def GetIsDayReset(self): return self.attrTuple[7] # ÊÇ·ñÿÌìÖØÖà BYTE
|
def GetResetType(self): return self.attrTuple[8] # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà BYTE
|
def GetNotifyInfoStart(self): return self.attrTuple[9] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[10] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetLVLimit(self): return self.attrTuple[11] # ÏÞÖƵȼ¶ WORD
|
|
# ¹ºÂò´ÎÊýÀñ°ü»î¶¯Ê±¼ä±í
|
class IPY_ActBuyCountGift():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetIsDayReset(self): return self.attrTuple[9] # ÊÇ·ñÿÌìÖØÖà BYTE
|
def GetResetType(self): return self.attrTuple[10] # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà BYTE
|
|
# ÈÎÎñ»î¶¯Ê±¼ä±í
|
class IPY_ActTask():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetIsDayReset(self): return self.attrTuple[9] # ÊÇ·ñÿÌìÖØÖà BYTE
|
def GetResetType(self): return self.attrTuple[10] # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà BYTE
|
|
# µÇ¼»î¶¯½±Àøʱ¼ä±íÐÂ
|
class IPY_ActLoginNew():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetPlatformList(self): return self.attrTuple[1] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[2] # ·þÎñÆ÷IDÁбí list
|
def GetActNum(self): return self.attrTuple[3] # »î¶¯·Ö×é±àºÅ, »î¶¯ÀàÐÍ * 10 + ²»Í¬½çÃæ±àºÅ BYTE
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
|
# µÇ¼½±Àøʱ¼ä±í
|
class IPY_ActLoginAward():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActMark(self): return self.attrTuple[1] # »î¶¯×é±ê¼Ç char
|
def GetPlatformList(self): return self.attrTuple[2] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[3] # ·þÎñÆ÷IDÁбí list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetAdvanceMinutes(self): return self.attrTuple[6] # Ç°¶ËÌáÇ°X·ÖÖÓչʾ»î¶¯ WORD
|
def GetIsDayReset(self): return self.attrTuple[7] # ÊÇ·ñÿÌìÖØÖà BYTE
|
def GetResetType(self): return self.attrTuple[8] # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà BYTE
|
def GetNotifyInfoStart(self): return self.attrTuple[9] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[10] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[11] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetLVLimit(self): return self.attrTuple[12] # ÏÞÖƵȼ¶ WORD
|
|
# ½ÚÈÕѲÀñ»î¶¯Ê±¼ä±í
|
class IPY_ActFeastWeekParty():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActMark(self): return self.attrTuple[1] # »î¶¯×é±ê¼Ç char
|
def GetPlatformList(self): return self.attrTuple[2] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[3] # ·þÎñÆ÷IDÁбí list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetAdvanceMinutes(self): return self.attrTuple[6] # Ç°¶ËÌáÇ°X·ÖÖÓչʾ»î¶¯ WORD
|
def GetIsDayReset(self): return self.attrTuple[7] # ÊÇ·ñÿÌìÖØÖà BYTE
|
def GetResetType(self): return self.attrTuple[8] # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà BYTE
|
def GetNotifyInfoStart(self): return self.attrTuple[9] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[10] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetLVLimit(self): return self.attrTuple[11] # ÏÞÖƵȼ¶ WORD
|
|
# ÐÂÏɽçÊ¢µä»î¶¯Ê±¼ä±í
|
class IPY_ActNewFairyCeremony():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActMark(self): return self.attrTuple[1] # »î¶¯×é±ê¼Ç char
|
def GetPlatformList(self): return self.attrTuple[2] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[3] # ·þÎñÆ÷IDÁбí list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetResetType(self): return self.attrTuple[6] # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖã»2-5µã¿ªÊ¼0µã½áÊø BYTE
|
def GetNotifyInfoStart(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetLVLimit(self): return self.attrTuple[9] # ÏÞÖƵȼ¶ WORD
|
|
# ÐÂÏɽçÊ¢µä-¾ø°æ½µÁÙ±í
|
class IPY_NewUniquenessArrive():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetWorldLvNum(self): return self.attrTuple[0] # ÊÀ½çµÈ¼¶µµ BYTE
|
def GetRank(self): return self.attrTuple[1] # ÅÅÃû DWORD
|
def GetAward(self): return self.attrTuple[2] # ½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨],...], ...} dict
|
|
# ÇéÔµÀñÎï±í
|
class IPY_LoveGift():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetGiftNum(self): return self.attrTuple[0] # ƸÀñID BYTE
|
def GetAddCharmSelf(self): return self.attrTuple[1] # µ¥¸öÔö¼Ó×ÔÉí÷ÈÁ¦ float
|
def GetAddCharmTag(self): return self.attrTuple[2] # µ¥¸öÔö¼Ó¶Ô·½÷ÈÁ¦ float
|
def GetAddIntimacy(self): return self.attrTuple[3] # µ¥¸öÔö¼ÓË«·½Ç×ÃÜ¶È DWORD
|
def GetWorldNotifyKey(self): return self.attrTuple[4] # ¹ã²¥key char
|
|
# ÇéÔµÌáÇ×±í
|
class IPY_Marry():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetBridePriceID(self): return self.attrTuple[0] # ƸÀñID BYTE
|
def GetCanBuyCount(self): return self.attrTuple[1] # ¿É¹ºÂò´ÎÊý BYTE
|
def GetIsDayReset(self): return self.attrTuple[2] # ÊÇ·ñÿÈÕÖØÖà BYTE
|
def GetProsperity(self): return self.attrTuple[3] # ³õʼ·±ÈÙ¶È DWORD
|
def GetCandyTimes(self): return self.attrTuple[4] # ϲÌdzÖÐøʱ¼äÃë WORD
|
def GetCandyItemWeightInfo(self): return self.attrTuple[5] # ϲÌÇÎïÆ·¿âȨÖØÁбí[[ȨÖØ, ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...] list
|
def GetCandyNotifyItemInfo(self): return self.attrTuple[6] # ϲÌÇÐèÒª¹ã²¥µÄÎïÆ·IDÁбí list
|
def GetBrideGiftItemInfo(self): return self.attrTuple[7] # ƸÀñÎïÆ·Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...] list
|
def GetWorldNotifyKey(self): return self.attrTuple[8] # ¹ã²¥key char
|
|
# ÐÒÔ˼ø±¦»î¶¯Ê±¼ä±í
|
class IPY_ActLuckyTreasure():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActMark(self): return self.attrTuple[1] # »î¶¯×é±ê¼Ç char
|
def GetPlatformList(self): return self.attrTuple[2] # »î¶¯Æ½Ì¨Áбí["ƽ̨A", "ƽ̨A", ...],Åä[]´ú±íËùÓÐ list
|
def GetServerGroupIDList(self): return self.attrTuple[3] # ·þÎñÆ÷IDÁбí list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetResetType(self): return self.attrTuple[6] # ÖØÖÃÀàÐÍ£¬0-0µãÖØÖã»1-5µãÖØÖà BYTE
|
def GetNotifyInfoStart(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[9] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[¼ä¸ô·ÖÖÓ, ¹ã²¥key] list
|
def GetLVLimit(self): return self.attrTuple[10] # ÏÞÖƵȼ¶ WORD
|
|
# ¿ç·þÐÒÔËÔƹº±í
|
class IPY_CrossActLuckyCloudBuy():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActGroupName(self): return self.attrTuple[1] # »î¶¯×éÃû£¨Í¬×é»î¶¯µÄÃû×ÖÐèÏàͬ£© char
|
def GetZoneID(self): return self.attrTuple[2] # ×éÄÚ·Ö×é±àºÅ BYTE
|
def GetServerIDRangeList(self): return self.attrTuple[3] # »î¶¯µÄÕ˺ŷþÎñÆ÷ID·¶Î§Áбí [[serverIDA, serverIDB], ...] list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetStartTimeList(self): return self.attrTuple[6] # ¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î list
|
def GetEndTimeList(self): return self.attrTuple[7] # ½áÊøʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î list
|
def GetRoundMaxList(self): return self.attrTuple[8] # ¿ªÆôÂÖ´ÎÁбí list
|
def GetLVLimit(self): return self.attrTuple[9] # ÏÞÖƵȼ¶ WORD
|
def GetTemplateIDList(self): return self.attrTuple[10] # Ä£°åIDÁбí list
|
|
# ¿ç·þÐÒÔËÔƹºÄ£°å±í
|
class IPY_CrossActLuckyCloudBuyTemplate():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetTemplateID(self): return self.attrTuple[0] # Ä£°åID DWORD
|
def GetBaseAwardInfo(self): return self.attrTuple[1] # ÿ´Î¹ºÂò¹Ì¶¨½±Àø [[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...] list
|
def GetRandAwardWeightInfo(self): return self.attrTuple[2] # ÿ´Î¹ºÂòËæ»ú½±ÀøȨÖØÐÅÏ¢ [[ȨÖØ,ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...] list
|
def GetSuperItemWeightInfo(self): return self.attrTuple[3] # ´ó½±Ëæ»úȨÖØÐÅÏ¢ [[ȨÖØ,ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·,¼ÛÖµ»õ±ÒÀàÐÍ,»õ±ÒÖµ], ...] list
|
|
# ¿ç·þÈ«Ãñ³äֵʱ¼ä±í
|
class IPY_CrossActAllRecharge():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActGroupName(self): return self.attrTuple[1] # »î¶¯×éÃû£¨Í¬×é»î¶¯µÄÃû×ÖÐèÏàͬ£© char
|
def GetZoneID(self): return self.attrTuple[2] # ×éÄÚ·Ö×é±àºÅ BYTE
|
def GetServerIDRangeList(self): return self.attrTuple[3] # »î¶¯µÄÕ˺ŷþÎñÆ÷ID·¶Î§Áбí [[serverIDA, serverIDB], ...] list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[Ñ»··ÖÖÓ, ¹ã²¥key, [¹ã²¥²ÎÊýÁбí¿ÉÑ¡]] list
|
def GetTemplateIDList(self): return self.attrTuple[9] # Ä£°åIDÁбí list
|
|
# ¿ç·þÈ«Ãñ³äֵģ°å±í
|
class IPY_CrossActAllRechargeTemplate():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetTemplateID(self): return self.attrTuple[0] # Ä£°åID DWORD
|
def GetCTGNeed(self): return self.attrTuple[1] # È«Ãñ³äÖµRMB DWORD
|
def GetNeedPlayerCount(self): return self.attrTuple[2] # ËùÐè³äÖµ´ïµ½¸ÃµµÍæ¼ÒÊý WORD
|
def GetAwardIndex(self): return self.attrTuple[3] # ½±Àø¼Ç¼Ë÷Òý£¬´Ó0¿ªÊ¼£¬Í¬¸öÄ£°å²»¿ÉÖظ´£¬²»¿É±ä¸ü BYTE
|
def GetAwardItemList(self): return self.attrTuple[4] # ½±ÀøÎïÆ·Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...] list
|
|
# ¿ç·þ³äÖµÅÅÐлʱ¼ä±í
|
class IPY_CrossActCTGBillboard():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetCfgID(self): return self.attrTuple[0] # ÅäÖÃID DWORD
|
def GetActGroupName(self): return self.attrTuple[1] # »î¶¯×éÃû£¨Í¬×é»î¶¯µÄÃû×ÖÐèÏàͬ£© char
|
def GetZoneID(self): return self.attrTuple[2] # ×éÄÚ·Ö×é±àºÅ BYTE
|
def GetServerIDRangeList(self): return self.attrTuple[3] # »î¶¯µÄÕ˺ŷþÎñÆ÷ID·¶Î§Áбí [[serverIDA, serverIDB], ...] list
|
def GetStartDate(self): return self.attrTuple[4] # ¿ªÆôÈÕÆÚ char
|
def GetEndDate(self): return self.attrTuple[5] # ½áÊøÈÕÆÚ char
|
def GetNotifyInfoStart(self): return self.attrTuple[6] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô¿ªÊ¼Ê±¼ä dict
|
def GetNotifyInfoEnd(self): return self.attrTuple[7] # È«·þÌáʾÐÅÏ¢ - Ïà¶Ô½áÊøʱ¼ä dict
|
def GetNotifyInfoLoop(self): return self.attrTuple[8] # È«·þÌáʾÐÅÏ¢ - Ñ»·¹ã²¥[Ñ»··ÖÖÓ, ¹ã²¥key, [¹ã²¥²ÎÊýÁбí¿ÉÑ¡]] list
|
def GetIsDayReset(self): return self.attrTuple[9] # ÊÇ·ñÿÌìÖØÖà BYTE
|
def GetTemplateIDList(self): return self.attrTuple[10] # Ä£°åIDÁбí list
|
|
# ¿ç·þ³äÖµÅÅÐÐÄ£°åÃû´Î½±Àø±í
|
class IPY_CrossActCTGBillboardOrder():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetTemplateID(self): return self.attrTuple[0] # Ä£°åID DWORD
|
def GetOrderA(self): return self.attrTuple[1] # Ãû´ÎA WORD
|
def GetOrderB(self): return self.attrTuple[2] # ÖÁÃû´ÎB WORD
|
def GetCTGAtleast(self): return self.attrTuple[3] # ÖÁÉÙ³äÖµRMB float
|
def GetAwardItemList(self): return self.attrTuple[4] # ½±ÀøÎïÆ·Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñÅÄÆ·], ...] list
|
|
# ×°±¸ÉýÐDZí
|
class IPY_EquipStarUp():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetClassLV(self): return self.attrTuple[0] # ½×¼¶ BYTE
|
def GetEquipPlace(self): return self.attrTuple[1] # ×°±¸Î» BYTE
|
def GetStar(self): return self.attrTuple[2] # ÐÇÊý BYTE
|
def GetCostEquipPlace(self): return self.attrTuple[3] # ¿ÉÓÃ×°±¸²¿Î» list
|
def GetIsJobLimit(self): return self.attrTuple[4] # ÊÇ·ñÖ»Óñ¾Ö°Òµ×°±¸²ÄÁÏ BYTE
|
def GetCostEquipColor(self): return self.attrTuple[5] # ¿ÉÓÃ×°±¸Æ·ÖÊ list
|
def GetUnSuitRate(self): return self.attrTuple[6] # µ¥¼þ·ÇÌ××°¼Ó³É¸ÅÂÊ BYTE
|
|
# ¸£µØÎïÆ·±í
|
class IPY_MineAreaItem():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetMineID(self): return self.attrTuple[0] # ¿óÎïID BYTE
|
def GetLimitLV(self): return self.attrTuple[1] # ½âËøµÈ¼¶ WORD
|
def GetItemID(self): return self.attrTuple[2] # ÎïÆ·ID DWORD
|
def GetItemLV(self): return self.attrTuple[3] # ÎïÆ·µÈ¼¶ BYTE
|
def GetItemCount(self): return self.attrTuple[4] # ÎïÆ·¸öÊý DWORD
|
def GetItemWeight(self): return self.attrTuple[5] # ÎïÆ·×ÜÖØÁ¿ float
|
def GetRefreshWeightSys(self): return self.attrTuple[6] # ϵͳˢÐÂȨÖØ DWORD
|
def GetRefreshWeight(self): return self.attrTuple[7] # ³£¹æË¢ÐÂȨÖØ DWORD
|
def GetRefreshWeightSuper(self): return self.attrTuple[8] # ³¬¼¶Ë¢ÐÂȨÖØ DWORD
|
|
# ÏÉÃËÁªÈüÅÅÃû½±Àø±í
|
class IPY_FamilyWarRankAward():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetWarWorldLV(self): return self.attrTuple[0] # ÁªÈüÊÀ½çµÈ¼¶ WORD
|
def GetWarRank(self): return self.attrTuple[1] # ÁªÈüÅÅÃû BYTE
|
def GetRankAuctionItem(self): return self.attrTuple[2] # ÅÄÆ·½±Àø[[ÅÄÆ·ID,¸öÊý], ...] list
|
|
# ÐÖú¸ÐлÀñºÐ±í
|
class IPY_AssistThanksGift():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetGiftID(self): return self.attrTuple[0] # ÀñºÐÎïÆ·ID DWORD
|
def GetAssistAwardCount(self): return self.attrTuple[1] # ÐÖú½±ÀøÿÈÕ´ÎÊý BYTE
|
|
# Ĥ°Ý±í
|
class IPY_Worship():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetWorshipType(self): return self.attrTuple[0] # Ĥ°ÝÀàÐÍ BYTE
|
def GetWorshipValue(self): return self.attrTuple[1] # Ĥ°ÝÖµ DWORD
|
def GetWorshipDays(self): return self.attrTuple[2] # Ĥ°ÝÌìÊý BYTE
|
def GetMoneyType(self): return self.attrTuple[3] # Ĥ°Ý»õ±ÒÀàÐÍ BYTE
|
def GetMoneyRange(self): return self.attrTuple[4] # »õ±ÒÖµ·¶Î§ list
|
|
# çÎç¿ÏÉÓò±í
|
class IPY_FairyDomain():
|
|
def __init__(self):
|
self.attrTuple = None
|
return
|
|
def GetID(self): return self.attrTuple[0] # ʼþ±àºÅ WORD
|
def GetHourCntPubLimit(self): return self.attrTuple[1] # È«·þÿСʱ´ÎÊýÏÞÖÆ DWORD
|
def GetDayCntPubLimit(self): return self.attrTuple[2] # È«·þÿÌì´ÎÊýÏÞÖÆ DWORD
|
|
|
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):
|
Log("IPY_DataMgr Init...")
|
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.classSizeDict = {} # Êý¾Ý±íÀà¶ÔÏóÕ¼ÓÃÄÚ´æ´óС {dtName:size, ...}
|
self.IpyDataClear(True)
|
return
|
|
def Recycle(self):
|
Log("IPY_DataMgr Recycle")
|
for tableName in Def_IpyTable.keys():
|
if not hasattr(self, "ipy%sLen" % tableName):
|
continue
|
cacheList = getattr(self, "ipy%sCache" % tableName)
|
del cacheList
|
delattr(self, "ipy%sLen" % tableName)
|
delattr(self, "ipy%sCache" % tableName)
|
Log("Recycle IPY_%s" % tableName)
|
|
del self.fileMD5Dict, self.ipyConfigEx, self.ipyDataIndexMap, self.ipyDataIndexMapEx, self.ipyFuncConfigDict, self.classSizeDict
|
self.fileMD5Dict = {}
|
self.ipyConfigEx = {}
|
self.ipyDataIndexMap = {}
|
self.ipyDataIndexMapEx = {}
|
self.ipyFuncConfigDict = {}
|
self.classSizeDict = {}
|
gc.collect()
|
return
|
|
def LoadAll(self):
|
## ¼ÓÔØÈ«²¿Êý¾Ý£¬²âÊÔÄÚ´æÓã¬Êµ¼ÊÓ¦ÓÃÖв»µ÷ÓÃ
|
for tableName in Def_IpyTable.keys():
|
setattr(self, "ipy%sLen" % tableName, 0)
|
self.IpyDataClear()
|
return
|
|
def IpyDataClear(self, onlyCheck=False):
|
Log("IPY_DataMgr Reload... onlyCheck=%s" % onlyCheck)
|
if not onlyCheck:
|
self.ipyConfigEx = {}
|
self.__LoadFileData("FuncConfig", onlyCheck)
|
self.__LoadFileData("CreateRoleLimitServer", onlyCheck)
|
self.__LoadFileData("WorldLV", onlyCheck)
|
self.__LoadFileData("Family", onlyCheck)
|
self.__LoadFileData("FamilyBossHurtAward", onlyCheck)
|
self.__LoadFileData("FamilyZhenfa", onlyCheck)
|
self.__LoadFileData("MarketQuery", onlyCheck)
|
self.__LoadFileData("AuctionItem", onlyCheck)
|
self.__LoadFileData("AuctionSystemItem", onlyCheck)
|
self.__LoadFileData("CrossDailyAction", onlyCheck)
|
self.__LoadFileData("DailyAction", onlyCheck)
|
self.__LoadFileData("DailyActionCustom", onlyCheck)
|
self.__LoadFileData("DailyActionCustomMix", onlyCheck)
|
self.__LoadFileData("FBStateTime", onlyCheck)
|
self.__LoadFileData("FBStateTimeCustom", onlyCheck)
|
self.__LoadFileData("FBStateTimeCustomMix", onlyCheck)
|
self.__LoadFileData("FBFunc", onlyCheck)
|
self.__LoadFileData("FBLine", onlyCheck)
|
self.__LoadFileData("FBHelpBattle", onlyCheck)
|
self.__LoadFileData("FuncTeamSet", onlyCheck)
|
self.__LoadFileData("ChinMap", onlyCheck)
|
self.__LoadFileData("BOSSInfo", onlyCheck)
|
self.__LoadFileData("BOSSFirstKill", onlyCheck)
|
self.__LoadFileData("OSCBillRankAward", onlyCheck)
|
self.__LoadFileData("QuestionBank", onlyCheck)
|
self.__LoadFileData("FamilyRedPack", onlyCheck)
|
self.__LoadFileData("ActFeastRedPacket", onlyCheck)
|
self.__LoadFileData("ActFeastLogin", onlyCheck)
|
self.__LoadFileData("ActFeastWish", onlyCheck)
|
self.__LoadFileData("ActFeastTravel", onlyCheck)
|
self.__LoadFileData("FuncOpenLV", onlyCheck)
|
self.__LoadFileData("ChinNPC", onlyCheck)
|
self.__LoadFileData("PlayerLV", onlyCheck)
|
self.__LoadFileData("VipPrivilege", onlyCheck)
|
self.__LoadFileData("ActSpringSale", onlyCheck)
|
self.__LoadFileData("ActFlashGiftbag", onlyCheck)
|
self.__LoadFileData("ActDailyGiftbag", onlyCheck)
|
self.__LoadFileData("ActExpRate", onlyCheck)
|
self.__LoadFileData("ActCostRebate", onlyCheck)
|
self.__LoadFileData("ActBuyOne", onlyCheck)
|
self.__LoadFileData("ActFamilyCTGAssist", onlyCheck)
|
self.__LoadFileData("ActCollectWords", onlyCheck)
|
self.__LoadFileData("ActGarbageSorting", onlyCheck)
|
self.__LoadFileData("ActBossTrial", onlyCheck)
|
self.__LoadFileData("ActBossTrialTemplate", onlyCheck)
|
self.__LoadFileData("CrossActBossTrial", onlyCheck)
|
self.__LoadFileData("ActXianXiaMJ", onlyCheck)
|
self.__LoadFileData("CrossActXianXiaMJ", onlyCheck)
|
self.__LoadFileData("ActXianXiaMJBillTemp", onlyCheck)
|
self.__LoadFileData("ActGodGift", onlyCheck)
|
self.__LoadFileData("ActHorsePetFeast", onlyCheck)
|
self.__LoadFileData("ActBossReborn", onlyCheck)
|
self.__LoadFileData("ActFairyCeremony", onlyCheck)
|
self.__LoadFileData("UniquenessArrive", onlyCheck)
|
self.__LoadFileData("ActRealmPoint", onlyCheck)
|
self.__LoadFileData("ActFlashSale", onlyCheck)
|
self.__LoadFileData("Store", onlyCheck)
|
self.__LoadFileData("ActWishingWell", onlyCheck)
|
self.__LoadFileData("ActRechargePrize", onlyCheck)
|
self.__LoadFileData("ActRechargeRebateGold", onlyCheck)
|
self.__LoadFileData("ActGrowupBuy", onlyCheck)
|
self.__LoadFileData("ActSingleRecharge", onlyCheck)
|
self.__LoadFileData("ActTurntable", onlyCheck)
|
self.__LoadFileData("ActManyDayRecharge", onlyCheck)
|
self.__LoadFileData("ActTotalRecharge", onlyCheck)
|
self.__LoadFileData("CrossZoneComm", onlyCheck)
|
self.__LoadFileData("CrossZoneBattlefield", onlyCheck)
|
self.__LoadFileData("CrossZonePK", onlyCheck)
|
self.__LoadFileData("ChampionshipTime", onlyCheck)
|
self.__LoadFileData("ChampionshipRank", onlyCheck)
|
self.__LoadFileData("ChampionshipOfficial", onlyCheck)
|
self.__LoadFileData("CrossRealmPKSeason", onlyCheck)
|
self.__LoadFileData("CrossRealmPKDan", onlyCheck)
|
self.__LoadFileData("CrossPenglaiZoneMap", onlyCheck)
|
self.__LoadFileData("CrossDemonLandZoneMap", onlyCheck)
|
self.__LoadFileData("CrossFamilyFlagwarZoneMap", onlyCheck)
|
self.__LoadFileData("ActWeekParty", onlyCheck)
|
self.__LoadFileData("ActBuyCountGift", onlyCheck)
|
self.__LoadFileData("ActTask", onlyCheck)
|
self.__LoadFileData("ActLoginNew", onlyCheck)
|
self.__LoadFileData("ActLoginAward", onlyCheck)
|
self.__LoadFileData("ActFeastWeekParty", onlyCheck)
|
self.__LoadFileData("ActNewFairyCeremony", onlyCheck)
|
self.__LoadFileData("NewUniquenessArrive", onlyCheck)
|
self.__LoadFileData("LoveGift", onlyCheck)
|
self.__LoadFileData("Marry", onlyCheck)
|
self.__LoadFileData("ActLuckyTreasure", onlyCheck)
|
self.__LoadFileData("CrossActLuckyCloudBuy", onlyCheck)
|
self.__LoadFileData("CrossActLuckyCloudBuyTemplate", onlyCheck)
|
self.__LoadFileData("CrossActAllRecharge", onlyCheck)
|
self.__LoadFileData("CrossActAllRechargeTemplate", onlyCheck)
|
self.__LoadFileData("CrossActCTGBillboard", onlyCheck)
|
self.__LoadFileData("CrossActCTGBillboardOrder", onlyCheck)
|
self.__LoadFileData("EquipStarUp", onlyCheck)
|
self.__LoadFileData("MineAreaItem", onlyCheck)
|
self.__LoadFileData("FamilyWarRankAward", onlyCheck)
|
self.__LoadFileData("AssistThanksGift", onlyCheck)
|
self.__LoadFileData("Worship", onlyCheck)
|
self.__LoadFileData("FairyDomain", onlyCheck)
|
Log("IPY_DataMgr ReloadOK! onlyCheck=%s" % onlyCheck)
|
return
|
|
def CheckLoadData(self, dtName):
|
if hasattr(self, "ipy%sLen" % dtName):
|
return
|
setattr(self, "ipy%sLen" % dtName, 0) # ÉèÖøÃÊôÐÔ£¬Í¨¹ýÅжÏÊÇ·ñÓиÃÊôÐÔ¾ö¶¨ÊÇ·ñ¼ÓÔØ
|
self.__LoadFileData(dtName)
|
return
|
|
def __LoadFileData(self, tableName, onlyCheck=False):
|
# @param onlyCheck: ÊÇ·ñ½ö¼ì²é¸ñʽ£¬Ò»°ãÆô¶¯Ê±ÓÃ
|
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))
|
|
if not onlyCheck:
|
if not hasattr(self, "ipy%sLen" % tableName):
|
# ûÓиÃÊôÐԵIJ»¼ÓÔØ
|
return
|
|
fileObj = open(curPath, 'rb')
|
content = fileObj.read()
|
fileObj.close()
|
|
if not onlyCheck:
|
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')
|
curClassSizeTotal = 0
|
dataCount = 0
|
Class = eval("IPY_%s" % tableName)
|
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)))
|
if tableName == "FuncConfig":
|
classObj = self.__LoadFuncConfigData(fieldList, rowList, onlyCheck)
|
dataCount += 1
|
if onlyCheck:
|
continue
|
curClassSizeTotal += ChConfig.GetSizeof(classObj)
|
continue
|
try:
|
indexKey = []
|
valueList = []
|
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)
|
valueList.append(attrValue)
|
if isIndex:
|
indexKey.append(attrValue)
|
dataCount += 1
|
if onlyCheck:
|
continue
|
classObj = Class()
|
setattr(classObj, "attrTuple", tuple(valueList))
|
curClassSizeTotal += ChConfig.GetSizeof(classObj)
|
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 onlyCheck:
|
Log("CheckIpydata: %s, dataCount=%s OK" % (tableName, dataCount))
|
return
|
if tableName != "FuncConfig":
|
self.ipyDataIndexMap[tableName] = indexDict
|
self.classSizeDict[tableName] = curClassSizeTotal
|
classSizeTotal = sum(self.classSizeDict.values())
|
alreadyLoad = len(self.classSizeDict)
|
setattr(self, "ipy%sCache" % tableName, cacheList)
|
setattr(self, "ipy%sLen" % tableName, len(cacheList))
|
Log("LoadIpydata: %s, dataCount=%s, alreadyLoad=%s" % (tableName, dataCount, alreadyLoad), curClassSizeTotal, classSizeTotal)
|
return
|
|
def __LoadFuncConfigData(self, fieldList, rowList, onlyCheck):
|
key = rowList[0]
|
valueList = [key]
|
for i, strValue in enumerate(rowList):
|
if i == 0:
|
continue
|
try:
|
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
|
if onlyCheck:
|
continue
|
valueList.append(configValue)
|
if onlyCheck:
|
return
|
funcConfigObj = IPY_FuncConfig()
|
setattr(funcConfigObj, "attrTuple", tuple(valueList))
|
self.ipyFuncConfigDict[key] = funcConfigObj
|
return funcConfigObj
|
|
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):
|
self.CheckLoadData("FuncConfig")
|
return self.ipyFuncConfigLen
|
def GetFuncConfigByIndex(self, index):
|
self.CheckLoadData("FuncConfig")
|
return self.ipyFuncConfigCache[index]
|
|
def GetCreateRoleLimitServerCount(self):
|
self.CheckLoadData("CreateRoleLimitServer")
|
return self.ipyCreateRoleLimitServerLen
|
def GetCreateRoleLimitServerByIndex(self, index):
|
self.CheckLoadData("CreateRoleLimitServer")
|
return self.ipyCreateRoleLimitServerCache[index]
|
|
def GetWorldLVCount(self):
|
self.CheckLoadData("WorldLV")
|
return self.ipyWorldLVLen
|
def GetWorldLVByIndex(self, index):
|
self.CheckLoadData("WorldLV")
|
return self.ipyWorldLVCache[index]
|
|
def GetFamilyCount(self):
|
self.CheckLoadData("Family")
|
return self.ipyFamilyLen
|
def GetFamilyByIndex(self, index):
|
self.CheckLoadData("Family")
|
return self.ipyFamilyCache[index]
|
|
def GetFamilyBossHurtAwardCount(self):
|
self.CheckLoadData("FamilyBossHurtAward")
|
return self.ipyFamilyBossHurtAwardLen
|
def GetFamilyBossHurtAwardByIndex(self, index):
|
self.CheckLoadData("FamilyBossHurtAward")
|
return self.ipyFamilyBossHurtAwardCache[index]
|
|
def GetFamilyZhenfaCount(self):
|
self.CheckLoadData("FamilyZhenfa")
|
return self.ipyFamilyZhenfaLen
|
def GetFamilyZhenfaByIndex(self, index):
|
self.CheckLoadData("FamilyZhenfa")
|
return self.ipyFamilyZhenfaCache[index]
|
|
def GetMarketQueryCount(self):
|
self.CheckLoadData("MarketQuery")
|
return self.ipyMarketQueryLen
|
def GetMarketQueryByIndex(self, index):
|
self.CheckLoadData("MarketQuery")
|
return self.ipyMarketQueryCache[index]
|
|
def GetAuctionItemCount(self):
|
self.CheckLoadData("AuctionItem")
|
return self.ipyAuctionItemLen
|
def GetAuctionItemByIndex(self, index):
|
self.CheckLoadData("AuctionItem")
|
return self.ipyAuctionItemCache[index]
|
|
def GetAuctionSystemItemCount(self):
|
self.CheckLoadData("AuctionSystemItem")
|
return self.ipyAuctionSystemItemLen
|
def GetAuctionSystemItemByIndex(self, index):
|
self.CheckLoadData("AuctionSystemItem")
|
return self.ipyAuctionSystemItemCache[index]
|
|
def GetCrossDailyActionCount(self):
|
self.CheckLoadData("CrossDailyAction")
|
return self.ipyCrossDailyActionLen
|
def GetCrossDailyActionByIndex(self, index):
|
self.CheckLoadData("CrossDailyAction")
|
return self.ipyCrossDailyActionCache[index]
|
|
def GetDailyActionCount(self):
|
self.CheckLoadData("DailyAction")
|
return self.ipyDailyActionLen
|
def GetDailyActionByIndex(self, index):
|
self.CheckLoadData("DailyAction")
|
return self.ipyDailyActionCache[index]
|
|
def GetDailyActionCustomCount(self):
|
self.CheckLoadData("DailyActionCustom")
|
return self.ipyDailyActionCustomLen
|
def GetDailyActionCustomByIndex(self, index):
|
self.CheckLoadData("DailyActionCustom")
|
return self.ipyDailyActionCustomCache[index]
|
|
def GetDailyActionCustomMixCount(self):
|
self.CheckLoadData("DailyActionCustomMix")
|
return self.ipyDailyActionCustomMixLen
|
def GetDailyActionCustomMixByIndex(self, index):
|
self.CheckLoadData("DailyActionCustomMix")
|
return self.ipyDailyActionCustomMixCache[index]
|
|
def GetFBStateTimeCount(self):
|
self.CheckLoadData("FBStateTime")
|
return self.ipyFBStateTimeLen
|
def GetFBStateTimeByIndex(self, index):
|
self.CheckLoadData("FBStateTime")
|
return self.ipyFBStateTimeCache[index]
|
|
def GetFBStateTimeCustomCount(self):
|
self.CheckLoadData("FBStateTimeCustom")
|
return self.ipyFBStateTimeCustomLen
|
def GetFBStateTimeCustomByIndex(self, index):
|
self.CheckLoadData("FBStateTimeCustom")
|
return self.ipyFBStateTimeCustomCache[index]
|
|
def GetFBStateTimeCustomMixCount(self):
|
self.CheckLoadData("FBStateTimeCustomMix")
|
return self.ipyFBStateTimeCustomMixLen
|
def GetFBStateTimeCustomMixByIndex(self, index):
|
self.CheckLoadData("FBStateTimeCustomMix")
|
return self.ipyFBStateTimeCustomMixCache[index]
|
|
def GetFBFuncCount(self):
|
self.CheckLoadData("FBFunc")
|
return self.ipyFBFuncLen
|
def GetFBFuncByIndex(self, index):
|
self.CheckLoadData("FBFunc")
|
return self.ipyFBFuncCache[index]
|
|
def GetFBLineCount(self):
|
self.CheckLoadData("FBLine")
|
return self.ipyFBLineLen
|
def GetFBLineByIndex(self, index):
|
self.CheckLoadData("FBLine")
|
return self.ipyFBLineCache[index]
|
|
def GetFBHelpBattleCount(self):
|
self.CheckLoadData("FBHelpBattle")
|
return self.ipyFBHelpBattleLen
|
def GetFBHelpBattleByIndex(self, index):
|
self.CheckLoadData("FBHelpBattle")
|
return self.ipyFBHelpBattleCache[index]
|
|
def GetFuncTeamSetCount(self):
|
self.CheckLoadData("FuncTeamSet")
|
return self.ipyFuncTeamSetLen
|
def GetFuncTeamSetByIndex(self, index):
|
self.CheckLoadData("FuncTeamSet")
|
return self.ipyFuncTeamSetCache[index]
|
|
def GetChinMapCount(self):
|
self.CheckLoadData("ChinMap")
|
return self.ipyChinMapLen
|
def GetChinMapByIndex(self, index):
|
self.CheckLoadData("ChinMap")
|
return self.ipyChinMapCache[index]
|
|
def GetBOSSInfoCount(self):
|
self.CheckLoadData("BOSSInfo")
|
return self.ipyBOSSInfoLen
|
def GetBOSSInfoByIndex(self, index):
|
self.CheckLoadData("BOSSInfo")
|
return self.ipyBOSSInfoCache[index]
|
|
def GetBOSSFirstKillCount(self):
|
self.CheckLoadData("BOSSFirstKill")
|
return self.ipyBOSSFirstKillLen
|
def GetBOSSFirstKillByIndex(self, index):
|
self.CheckLoadData("BOSSFirstKill")
|
return self.ipyBOSSFirstKillCache[index]
|
|
def GetOSCBillRankAwardCount(self):
|
self.CheckLoadData("OSCBillRankAward")
|
return self.ipyOSCBillRankAwardLen
|
def GetOSCBillRankAwardByIndex(self, index):
|
self.CheckLoadData("OSCBillRankAward")
|
return self.ipyOSCBillRankAwardCache[index]
|
|
def GetQuestionBankCount(self):
|
self.CheckLoadData("QuestionBank")
|
return self.ipyQuestionBankLen
|
def GetQuestionBankByIndex(self, index):
|
self.CheckLoadData("QuestionBank")
|
return self.ipyQuestionBankCache[index]
|
|
def GetFamilyRedPackCount(self):
|
self.CheckLoadData("FamilyRedPack")
|
return self.ipyFamilyRedPackLen
|
def GetFamilyRedPackByIndex(self, index):
|
self.CheckLoadData("FamilyRedPack")
|
return self.ipyFamilyRedPackCache[index]
|
|
def GetActFeastRedPacketCount(self):
|
self.CheckLoadData("ActFeastRedPacket")
|
return self.ipyActFeastRedPacketLen
|
def GetActFeastRedPacketByIndex(self, index):
|
self.CheckLoadData("ActFeastRedPacket")
|
return self.ipyActFeastRedPacketCache[index]
|
|
def GetActFeastLoginCount(self):
|
self.CheckLoadData("ActFeastLogin")
|
return self.ipyActFeastLoginLen
|
def GetActFeastLoginByIndex(self, index):
|
self.CheckLoadData("ActFeastLogin")
|
return self.ipyActFeastLoginCache[index]
|
|
def GetActFeastWishCount(self):
|
self.CheckLoadData("ActFeastWish")
|
return self.ipyActFeastWishLen
|
def GetActFeastWishByIndex(self, index):
|
self.CheckLoadData("ActFeastWish")
|
return self.ipyActFeastWishCache[index]
|
|
def GetActFeastTravelCount(self):
|
self.CheckLoadData("ActFeastTravel")
|
return self.ipyActFeastTravelLen
|
def GetActFeastTravelByIndex(self, index):
|
self.CheckLoadData("ActFeastTravel")
|
return self.ipyActFeastTravelCache[index]
|
|
def GetFuncOpenLVCount(self):
|
self.CheckLoadData("FuncOpenLV")
|
return self.ipyFuncOpenLVLen
|
def GetFuncOpenLVByIndex(self, index):
|
self.CheckLoadData("FuncOpenLV")
|
return self.ipyFuncOpenLVCache[index]
|
|
def GetChinNPCCount(self):
|
self.CheckLoadData("ChinNPC")
|
return self.ipyChinNPCLen
|
def GetChinNPCByIndex(self, index):
|
self.CheckLoadData("ChinNPC")
|
return self.ipyChinNPCCache[index]
|
|
def GetPlayerLVCount(self):
|
self.CheckLoadData("PlayerLV")
|
return self.ipyPlayerLVLen
|
def GetPlayerLVByIndex(self, index):
|
self.CheckLoadData("PlayerLV")
|
return self.ipyPlayerLVCache[index]
|
|
def GetVipPrivilegeCount(self):
|
self.CheckLoadData("VipPrivilege")
|
return self.ipyVipPrivilegeLen
|
def GetVipPrivilegeByIndex(self, index):
|
self.CheckLoadData("VipPrivilege")
|
return self.ipyVipPrivilegeCache[index]
|
|
def GetActSpringSaleCount(self):
|
self.CheckLoadData("ActSpringSale")
|
return self.ipyActSpringSaleLen
|
def GetActSpringSaleByIndex(self, index):
|
self.CheckLoadData("ActSpringSale")
|
return self.ipyActSpringSaleCache[index]
|
|
def GetActFlashGiftbagCount(self):
|
self.CheckLoadData("ActFlashGiftbag")
|
return self.ipyActFlashGiftbagLen
|
def GetActFlashGiftbagByIndex(self, index):
|
self.CheckLoadData("ActFlashGiftbag")
|
return self.ipyActFlashGiftbagCache[index]
|
|
def GetActDailyGiftbagCount(self):
|
self.CheckLoadData("ActDailyGiftbag")
|
return self.ipyActDailyGiftbagLen
|
def GetActDailyGiftbagByIndex(self, index):
|
self.CheckLoadData("ActDailyGiftbag")
|
return self.ipyActDailyGiftbagCache[index]
|
|
def GetActExpRateCount(self):
|
self.CheckLoadData("ActExpRate")
|
return self.ipyActExpRateLen
|
def GetActExpRateByIndex(self, index):
|
self.CheckLoadData("ActExpRate")
|
return self.ipyActExpRateCache[index]
|
|
def GetActCostRebateCount(self):
|
self.CheckLoadData("ActCostRebate")
|
return self.ipyActCostRebateLen
|
def GetActCostRebateByIndex(self, index):
|
self.CheckLoadData("ActCostRebate")
|
return self.ipyActCostRebateCache[index]
|
|
def GetActBuyOneCount(self):
|
self.CheckLoadData("ActBuyOne")
|
return self.ipyActBuyOneLen
|
def GetActBuyOneByIndex(self, index):
|
self.CheckLoadData("ActBuyOne")
|
return self.ipyActBuyOneCache[index]
|
|
def GetActFamilyCTGAssistCount(self):
|
self.CheckLoadData("ActFamilyCTGAssist")
|
return self.ipyActFamilyCTGAssistLen
|
def GetActFamilyCTGAssistByIndex(self, index):
|
self.CheckLoadData("ActFamilyCTGAssist")
|
return self.ipyActFamilyCTGAssistCache[index]
|
|
def GetActCollectWordsCount(self):
|
self.CheckLoadData("ActCollectWords")
|
return self.ipyActCollectWordsLen
|
def GetActCollectWordsByIndex(self, index):
|
self.CheckLoadData("ActCollectWords")
|
return self.ipyActCollectWordsCache[index]
|
|
def GetActGarbageSortingCount(self):
|
self.CheckLoadData("ActGarbageSorting")
|
return self.ipyActGarbageSortingLen
|
def GetActGarbageSortingByIndex(self, index):
|
self.CheckLoadData("ActGarbageSorting")
|
return self.ipyActGarbageSortingCache[index]
|
|
def GetActBossTrialCount(self):
|
self.CheckLoadData("ActBossTrial")
|
return self.ipyActBossTrialLen
|
def GetActBossTrialByIndex(self, index):
|
self.CheckLoadData("ActBossTrial")
|
return self.ipyActBossTrialCache[index]
|
|
def GetActBossTrialTemplateCount(self):
|
self.CheckLoadData("ActBossTrialTemplate")
|
return self.ipyActBossTrialTemplateLen
|
def GetActBossTrialTemplateByIndex(self, index):
|
self.CheckLoadData("ActBossTrialTemplate")
|
return self.ipyActBossTrialTemplateCache[index]
|
|
def GetCrossActBossTrialCount(self):
|
self.CheckLoadData("CrossActBossTrial")
|
return self.ipyCrossActBossTrialLen
|
def GetCrossActBossTrialByIndex(self, index):
|
self.CheckLoadData("CrossActBossTrial")
|
return self.ipyCrossActBossTrialCache[index]
|
|
def GetActXianXiaMJCount(self):
|
self.CheckLoadData("ActXianXiaMJ")
|
return self.ipyActXianXiaMJLen
|
def GetActXianXiaMJByIndex(self, index):
|
self.CheckLoadData("ActXianXiaMJ")
|
return self.ipyActXianXiaMJCache[index]
|
|
def GetCrossActXianXiaMJCount(self):
|
self.CheckLoadData("CrossActXianXiaMJ")
|
return self.ipyCrossActXianXiaMJLen
|
def GetCrossActXianXiaMJByIndex(self, index):
|
self.CheckLoadData("CrossActXianXiaMJ")
|
return self.ipyCrossActXianXiaMJCache[index]
|
|
def GetActXianXiaMJBillTempCount(self):
|
self.CheckLoadData("ActXianXiaMJBillTemp")
|
return self.ipyActXianXiaMJBillTempLen
|
def GetActXianXiaMJBillTempByIndex(self, index):
|
self.CheckLoadData("ActXianXiaMJBillTemp")
|
return self.ipyActXianXiaMJBillTempCache[index]
|
|
def GetActGodGiftCount(self):
|
self.CheckLoadData("ActGodGift")
|
return self.ipyActGodGiftLen
|
def GetActGodGiftByIndex(self, index):
|
self.CheckLoadData("ActGodGift")
|
return self.ipyActGodGiftCache[index]
|
|
def GetActHorsePetFeastCount(self):
|
self.CheckLoadData("ActHorsePetFeast")
|
return self.ipyActHorsePetFeastLen
|
def GetActHorsePetFeastByIndex(self, index):
|
self.CheckLoadData("ActHorsePetFeast")
|
return self.ipyActHorsePetFeastCache[index]
|
|
def GetActBossRebornCount(self):
|
self.CheckLoadData("ActBossReborn")
|
return self.ipyActBossRebornLen
|
def GetActBossRebornByIndex(self, index):
|
self.CheckLoadData("ActBossReborn")
|
return self.ipyActBossRebornCache[index]
|
|
def GetActFairyCeremonyCount(self):
|
self.CheckLoadData("ActFairyCeremony")
|
return self.ipyActFairyCeremonyLen
|
def GetActFairyCeremonyByIndex(self, index):
|
self.CheckLoadData("ActFairyCeremony")
|
return self.ipyActFairyCeremonyCache[index]
|
|
def GetUniquenessArriveCount(self):
|
self.CheckLoadData("UniquenessArrive")
|
return self.ipyUniquenessArriveLen
|
def GetUniquenessArriveByIndex(self, index):
|
self.CheckLoadData("UniquenessArrive")
|
return self.ipyUniquenessArriveCache[index]
|
|
def GetActRealmPointCount(self):
|
self.CheckLoadData("ActRealmPoint")
|
return self.ipyActRealmPointLen
|
def GetActRealmPointByIndex(self, index):
|
self.CheckLoadData("ActRealmPoint")
|
return self.ipyActRealmPointCache[index]
|
|
def GetActFlashSaleCount(self):
|
self.CheckLoadData("ActFlashSale")
|
return self.ipyActFlashSaleLen
|
def GetActFlashSaleByIndex(self, index):
|
self.CheckLoadData("ActFlashSale")
|
return self.ipyActFlashSaleCache[index]
|
|
def GetStoreCount(self):
|
self.CheckLoadData("Store")
|
return self.ipyStoreLen
|
def GetStoreByIndex(self, index):
|
self.CheckLoadData("Store")
|
return self.ipyStoreCache[index]
|
|
def GetActWishingWellCount(self):
|
self.CheckLoadData("ActWishingWell")
|
return self.ipyActWishingWellLen
|
def GetActWishingWellByIndex(self, index):
|
self.CheckLoadData("ActWishingWell")
|
return self.ipyActWishingWellCache[index]
|
|
def GetActRechargePrizeCount(self):
|
self.CheckLoadData("ActRechargePrize")
|
return self.ipyActRechargePrizeLen
|
def GetActRechargePrizeByIndex(self, index):
|
self.CheckLoadData("ActRechargePrize")
|
return self.ipyActRechargePrizeCache[index]
|
|
def GetActRechargeRebateGoldCount(self):
|
self.CheckLoadData("ActRechargeRebateGold")
|
return self.ipyActRechargeRebateGoldLen
|
def GetActRechargeRebateGoldByIndex(self, index):
|
self.CheckLoadData("ActRechargeRebateGold")
|
return self.ipyActRechargeRebateGoldCache[index]
|
|
def GetActGrowupBuyCount(self):
|
self.CheckLoadData("ActGrowupBuy")
|
return self.ipyActGrowupBuyLen
|
def GetActGrowupBuyByIndex(self, index):
|
self.CheckLoadData("ActGrowupBuy")
|
return self.ipyActGrowupBuyCache[index]
|
|
def GetActSingleRechargeCount(self):
|
self.CheckLoadData("ActSingleRecharge")
|
return self.ipyActSingleRechargeLen
|
def GetActSingleRechargeByIndex(self, index):
|
self.CheckLoadData("ActSingleRecharge")
|
return self.ipyActSingleRechargeCache[index]
|
|
def GetActTurntableCount(self):
|
self.CheckLoadData("ActTurntable")
|
return self.ipyActTurntableLen
|
def GetActTurntableByIndex(self, index):
|
self.CheckLoadData("ActTurntable")
|
return self.ipyActTurntableCache[index]
|
|
def GetActManyDayRechargeCount(self):
|
self.CheckLoadData("ActManyDayRecharge")
|
return self.ipyActManyDayRechargeLen
|
def GetActManyDayRechargeByIndex(self, index):
|
self.CheckLoadData("ActManyDayRecharge")
|
return self.ipyActManyDayRechargeCache[index]
|
|
def GetActTotalRechargeCount(self):
|
self.CheckLoadData("ActTotalRecharge")
|
return self.ipyActTotalRechargeLen
|
def GetActTotalRechargeByIndex(self, index):
|
self.CheckLoadData("ActTotalRecharge")
|
return self.ipyActTotalRechargeCache[index]
|
|
def GetCrossZoneCommCount(self):
|
self.CheckLoadData("CrossZoneComm")
|
return self.ipyCrossZoneCommLen
|
def GetCrossZoneCommByIndex(self, index):
|
self.CheckLoadData("CrossZoneComm")
|
return self.ipyCrossZoneCommCache[index]
|
|
def GetCrossZoneBattlefieldCount(self):
|
self.CheckLoadData("CrossZoneBattlefield")
|
return self.ipyCrossZoneBattlefieldLen
|
def GetCrossZoneBattlefieldByIndex(self, index):
|
self.CheckLoadData("CrossZoneBattlefield")
|
return self.ipyCrossZoneBattlefieldCache[index]
|
|
def GetCrossZonePKCount(self):
|
self.CheckLoadData("CrossZonePK")
|
return self.ipyCrossZonePKLen
|
def GetCrossZonePKByIndex(self, index):
|
self.CheckLoadData("CrossZonePK")
|
return self.ipyCrossZonePKCache[index]
|
|
def GetChampionshipTimeCount(self):
|
self.CheckLoadData("ChampionshipTime")
|
return self.ipyChampionshipTimeLen
|
def GetChampionshipTimeByIndex(self, index):
|
self.CheckLoadData("ChampionshipTime")
|
return self.ipyChampionshipTimeCache[index]
|
|
def GetChampionshipRankCount(self):
|
self.CheckLoadData("ChampionshipRank")
|
return self.ipyChampionshipRankLen
|
def GetChampionshipRankByIndex(self, index):
|
self.CheckLoadData("ChampionshipRank")
|
return self.ipyChampionshipRankCache[index]
|
|
def GetChampionshipOfficialCount(self):
|
self.CheckLoadData("ChampionshipOfficial")
|
return self.ipyChampionshipOfficialLen
|
def GetChampionshipOfficialByIndex(self, index):
|
self.CheckLoadData("ChampionshipOfficial")
|
return self.ipyChampionshipOfficialCache[index]
|
|
def GetCrossRealmPKSeasonCount(self):
|
self.CheckLoadData("CrossRealmPKSeason")
|
return self.ipyCrossRealmPKSeasonLen
|
def GetCrossRealmPKSeasonByIndex(self, index):
|
self.CheckLoadData("CrossRealmPKSeason")
|
return self.ipyCrossRealmPKSeasonCache[index]
|
|
def GetCrossRealmPKDanCount(self):
|
self.CheckLoadData("CrossRealmPKDan")
|
return self.ipyCrossRealmPKDanLen
|
def GetCrossRealmPKDanByIndex(self, index):
|
self.CheckLoadData("CrossRealmPKDan")
|
return self.ipyCrossRealmPKDanCache[index]
|
|
def GetCrossPenglaiZoneMapCount(self):
|
self.CheckLoadData("CrossPenglaiZoneMap")
|
return self.ipyCrossPenglaiZoneMapLen
|
def GetCrossPenglaiZoneMapByIndex(self, index):
|
self.CheckLoadData("CrossPenglaiZoneMap")
|
return self.ipyCrossPenglaiZoneMapCache[index]
|
|
def GetCrossDemonLandZoneMapCount(self):
|
self.CheckLoadData("CrossDemonLandZoneMap")
|
return self.ipyCrossDemonLandZoneMapLen
|
def GetCrossDemonLandZoneMapByIndex(self, index):
|
self.CheckLoadData("CrossDemonLandZoneMap")
|
return self.ipyCrossDemonLandZoneMapCache[index]
|
|
def GetCrossFamilyFlagwarZoneMapCount(self):
|
self.CheckLoadData("CrossFamilyFlagwarZoneMap")
|
return self.ipyCrossFamilyFlagwarZoneMapLen
|
def GetCrossFamilyFlagwarZoneMapByIndex(self, index):
|
self.CheckLoadData("CrossFamilyFlagwarZoneMap")
|
return self.ipyCrossFamilyFlagwarZoneMapCache[index]
|
|
def GetActWeekPartyCount(self):
|
self.CheckLoadData("ActWeekParty")
|
return self.ipyActWeekPartyLen
|
def GetActWeekPartyByIndex(self, index):
|
self.CheckLoadData("ActWeekParty")
|
return self.ipyActWeekPartyCache[index]
|
|
def GetActBuyCountGiftCount(self):
|
self.CheckLoadData("ActBuyCountGift")
|
return self.ipyActBuyCountGiftLen
|
def GetActBuyCountGiftByIndex(self, index):
|
self.CheckLoadData("ActBuyCountGift")
|
return self.ipyActBuyCountGiftCache[index]
|
|
def GetActTaskCount(self):
|
self.CheckLoadData("ActTask")
|
return self.ipyActTaskLen
|
def GetActTaskByIndex(self, index):
|
self.CheckLoadData("ActTask")
|
return self.ipyActTaskCache[index]
|
|
def GetActLoginNewCount(self):
|
self.CheckLoadData("ActLoginNew")
|
return self.ipyActLoginNewLen
|
def GetActLoginNewByIndex(self, index):
|
self.CheckLoadData("ActLoginNew")
|
return self.ipyActLoginNewCache[index]
|
|
def GetActLoginAwardCount(self):
|
self.CheckLoadData("ActLoginAward")
|
return self.ipyActLoginAwardLen
|
def GetActLoginAwardByIndex(self, index):
|
self.CheckLoadData("ActLoginAward")
|
return self.ipyActLoginAwardCache[index]
|
|
def GetActFeastWeekPartyCount(self):
|
self.CheckLoadData("ActFeastWeekParty")
|
return self.ipyActFeastWeekPartyLen
|
def GetActFeastWeekPartyByIndex(self, index):
|
self.CheckLoadData("ActFeastWeekParty")
|
return self.ipyActFeastWeekPartyCache[index]
|
|
def GetActNewFairyCeremonyCount(self):
|
self.CheckLoadData("ActNewFairyCeremony")
|
return self.ipyActNewFairyCeremonyLen
|
def GetActNewFairyCeremonyByIndex(self, index):
|
self.CheckLoadData("ActNewFairyCeremony")
|
return self.ipyActNewFairyCeremonyCache[index]
|
|
def GetNewUniquenessArriveCount(self):
|
self.CheckLoadData("NewUniquenessArrive")
|
return self.ipyNewUniquenessArriveLen
|
def GetNewUniquenessArriveByIndex(self, index):
|
self.CheckLoadData("NewUniquenessArrive")
|
return self.ipyNewUniquenessArriveCache[index]
|
|
def GetLoveGiftCount(self):
|
self.CheckLoadData("LoveGift")
|
return self.ipyLoveGiftLen
|
def GetLoveGiftByIndex(self, index):
|
self.CheckLoadData("LoveGift")
|
return self.ipyLoveGiftCache[index]
|
|
def GetMarryCount(self):
|
self.CheckLoadData("Marry")
|
return self.ipyMarryLen
|
def GetMarryByIndex(self, index):
|
self.CheckLoadData("Marry")
|
return self.ipyMarryCache[index]
|
|
def GetActLuckyTreasureCount(self):
|
self.CheckLoadData("ActLuckyTreasure")
|
return self.ipyActLuckyTreasureLen
|
def GetActLuckyTreasureByIndex(self, index):
|
self.CheckLoadData("ActLuckyTreasure")
|
return self.ipyActLuckyTreasureCache[index]
|
|
def GetCrossActLuckyCloudBuyCount(self):
|
self.CheckLoadData("CrossActLuckyCloudBuy")
|
return self.ipyCrossActLuckyCloudBuyLen
|
def GetCrossActLuckyCloudBuyByIndex(self, index):
|
self.CheckLoadData("CrossActLuckyCloudBuy")
|
return self.ipyCrossActLuckyCloudBuyCache[index]
|
|
def GetCrossActLuckyCloudBuyTemplateCount(self):
|
self.CheckLoadData("CrossActLuckyCloudBuyTemplate")
|
return self.ipyCrossActLuckyCloudBuyTemplateLen
|
def GetCrossActLuckyCloudBuyTemplateByIndex(self, index):
|
self.CheckLoadData("CrossActLuckyCloudBuyTemplate")
|
return self.ipyCrossActLuckyCloudBuyTemplateCache[index]
|
|
def GetCrossActAllRechargeCount(self):
|
self.CheckLoadData("CrossActAllRecharge")
|
return self.ipyCrossActAllRechargeLen
|
def GetCrossActAllRechargeByIndex(self, index):
|
self.CheckLoadData("CrossActAllRecharge")
|
return self.ipyCrossActAllRechargeCache[index]
|
|
def GetCrossActAllRechargeTemplateCount(self):
|
self.CheckLoadData("CrossActAllRechargeTemplate")
|
return self.ipyCrossActAllRechargeTemplateLen
|
def GetCrossActAllRechargeTemplateByIndex(self, index):
|
self.CheckLoadData("CrossActAllRechargeTemplate")
|
return self.ipyCrossActAllRechargeTemplateCache[index]
|
|
def GetCrossActCTGBillboardCount(self):
|
self.CheckLoadData("CrossActCTGBillboard")
|
return self.ipyCrossActCTGBillboardLen
|
def GetCrossActCTGBillboardByIndex(self, index):
|
self.CheckLoadData("CrossActCTGBillboard")
|
return self.ipyCrossActCTGBillboardCache[index]
|
|
def GetCrossActCTGBillboardOrderCount(self):
|
self.CheckLoadData("CrossActCTGBillboardOrder")
|
return self.ipyCrossActCTGBillboardOrderLen
|
def GetCrossActCTGBillboardOrderByIndex(self, index):
|
self.CheckLoadData("CrossActCTGBillboardOrder")
|
return self.ipyCrossActCTGBillboardOrderCache[index]
|
|
def GetEquipStarUpCount(self):
|
self.CheckLoadData("EquipStarUp")
|
return self.ipyEquipStarUpLen
|
def GetEquipStarUpByIndex(self, index):
|
self.CheckLoadData("EquipStarUp")
|
return self.ipyEquipStarUpCache[index]
|
|
def GetMineAreaItemCount(self):
|
self.CheckLoadData("MineAreaItem")
|
return self.ipyMineAreaItemLen
|
def GetMineAreaItemByIndex(self, index):
|
self.CheckLoadData("MineAreaItem")
|
return self.ipyMineAreaItemCache[index]
|
|
def GetFamilyWarRankAwardCount(self):
|
self.CheckLoadData("FamilyWarRankAward")
|
return self.ipyFamilyWarRankAwardLen
|
def GetFamilyWarRankAwardByIndex(self, index):
|
self.CheckLoadData("FamilyWarRankAward")
|
return self.ipyFamilyWarRankAwardCache[index]
|
|
def GetAssistThanksGiftCount(self):
|
self.CheckLoadData("AssistThanksGift")
|
return self.ipyAssistThanksGiftLen
|
def GetAssistThanksGiftByIndex(self, index):
|
self.CheckLoadData("AssistThanksGift")
|
return self.ipyAssistThanksGiftCache[index]
|
|
def GetWorshipCount(self):
|
self.CheckLoadData("Worship")
|
return self.ipyWorshipLen
|
def GetWorshipByIndex(self, index):
|
self.CheckLoadData("Worship")
|
return self.ipyWorshipCache[index]
|
|
def GetFairyDomainCount(self):
|
self.CheckLoadData("FairyDomain")
|
return self.ipyFairyDomainLen
|
def GetFairyDomainByIndex(self, index):
|
self.CheckLoadData("FairyDomain")
|
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²éѯֵ, ¡ )
|
'''
|
IPYData.CheckLoadData(dtName)
|
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 º¯ÊýÏàͬ
|
'''
|
IPYData.CheckLoadData(dtName)
|
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 º¯ÊýÏàͬ, Ö»ÊÇÕÒ²»µ½Êý¾Ýʱ²»»áÊä³öÈÕÖ¾
|
'''
|
IPYData.CheckLoadData(dtName)
|
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 º¯ÊýÏàͬ, Ö»ÊÇÕÒ²»µ½Êý¾Ýʱ²»»áÊä³öÈÕÖ¾
|
'''
|
IPYData.CheckLoadData(dtName)
|
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£¬ÓÐÊý¾Ýʱ¸ù¾Ý²ÎÊýÊÇ·ñ·µ»ØÁÐ±í·µ»Ø¶ÔÓ¦µÄÊý¾ÝʵÀý»òÊý¾ÝʵÀýÁбí
|
'''
|
IPYData.CheckLoadData(dtName)
|
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, "Get%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ʵÀý
|
'''
|
IPYData.CheckLoadData("FuncConfig")
|
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
|
'''
|
IPYData.CheckLoadData("FuncConfig")
|
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.attrTuple[1]
|
if index == 2:
|
return cfgObj.attrTuple[2]
|
if index == 3:
|
return cfgObj.attrTuple[3]
|
if index == 4:
|
return cfgObj.attrTuple[4]
|
if index == 5:
|
return cfgObj.attrTuple[5]
|
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µÄÁÐ±í¡¢×Öµä½á¹¹µÄ»°¿ÉʹÓÃÉÏÃæµÄº¯Êý
|
²»¹ýΪÁËͳһ£¬½¨Ò鹦ÄÜÅäÖñí¶ÁÁÐ±í¡¢×Öµäʱ¶¼Ê¹Óøú¯Êý
|
'''
|
IPYData.CheckLoadData("FuncConfig")
|
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.attrTuple[1]
|
elif index == 2:
|
curConfig = cfgObj.attrTuple[2]
|
elif index == 3:
|
curConfig = cfgObj.attrTuple[3]
|
elif index == 4:
|
curConfig = cfgObj.attrTuple[4]
|
elif index == 5:
|
curConfig = cfgObj.attrTuple[5]
|
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 Êý¾ÝʵÀý
|
'''
|
IPYData.CheckLoadData(dtName)
|
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, "Get%s" % keyName)()
|
if keyValue < lowValue:
|
return
|
|
high = len(dataList) - 1
|
highData = dataList[high]
|
highValue = getattr(highData, "Get%s" % keyName)()
|
if keyValue >= highValue:
|
return highData
|
|
near = low + int((high - low) * (keyValue - lowValue)/(highValue - lowValue))
|
|
nearData = dataList[near]
|
nearValue = getattr(nearData, "Get%s" % keyName)()
|
|
if keyValue < nearValue:
|
for i in xrange(near - 1, low - 1, -1):
|
nearData = dataList[i]
|
nearValue = getattr(nearData, "Get%s" % keyName)()
|
if nearValue <= keyValue:
|
return nearData
|
|
elif keyValue > nearValue:
|
for i in xrange(near + 1, high + 1):
|
nearData = dataList[i]
|
nearValue = getattr(nearData, "Get%s" % keyName)()
|
if nearValue > keyValue:
|
return dataList[i - 1]
|
|
return nearData
|
|
#if __name__ == "__main__":
|
# IPYDataTotalSize = ChConfig.GetSizeof(IPYData)
|
# classSizeSum = sum(IPYData.classSizeDict.values())
|
# Log("Êý¾ÝÀàÄÚ´æ: %s b = %s M" % (classSizeSum, str(classSizeSum/float(1024*1024))))
|
# Log("×ÜÕ¼ÓÃÄÚ´æ: %s b = %s M" % (IPYDataTotalSize, str(IPYDataTotalSize/float(1024*1024))))
|
# for key in ["OpenBagItem", "RuneUnlock", "IceLodeNeedPoint", "RealmDifficulty", "TongTianLing", "TongTianLingaaa"]:
|
# for i in range(1, 6):
|
# v = GetFuncCfg(key, i)
|
# Log("key:%s,i=%s,value=%s\t%s" % (key, i, type(v), str(v)))
|
#
|
# ipyData = GetIpyGameData("FlashGiftbag", 303)
|
# giftbagIpyDataList = GetIpyGameDataByCondition("FlashGiftbag", {"GiftbagType":1002}, True, True)
|
# for ipyData in giftbagIpyDataList:
|
# print
|
# print type(ipyData.GetGiftbagID()), ipyData.GetGiftbagID()
|
# print type(ipyData.GetGiftbagType()), ipyData.GetGiftbagType()
|
# print type(ipyData.GetOriginalRMB()), ipyData.GetOriginalRMB()
|
# print type(ipyData.GetBuyCountLimit()), ipyData.GetBuyCountLimit()
|
# print type(ipyData.GetGiftItemList()), ipyData.GetGiftItemList()
|
# print type(ipyData.GetMainItemID()), ipyData.GetMainItemID()
|
# print type(ipyData.GetNotifyKey()), ipyData.GetNotifyKey()
|
#
|
# collNPCIpyDataList = GetIpyGameDataListNotLog("MapRefreshNPC", 32050)
|
# if collNPCIpyDataList:
|
# npcIDList = []
|
# for ipyData in collNPCIpyDataList:
|
# print
|
# print type(ipyData.GetMapID()), ipyData.GetMapID()
|
# print type(ipyData.GetNPCIDList()), ipyData.GetNPCIDList()
|
# print type(ipyData.GetRefreshMarkList()), ipyData.GetRefreshMarkList()
|
# npcIDList += ipyData.GetNPCIDList()
|
# print "npcIDList", npcIDList
|
# else:
|
# print "None"
|
#
|
# ipyData = GetIpyGameData("RuneCompound", 4415)
|
# if ipyData:
|
# print
|
# print type(ipyData.GetTagItemID()), ipyData.GetTagItemID()
|
# print type(ipyData.GetNeedItem()), ipyData.GetNeedItem()
|
# print type(ipyData.GetNeedMJ()), ipyData.GetNeedMJ()
|
# else:
|
# print "None"
|
#
|
# ipyData = GetIpyGameData("DailyGiftbag", 703, 105)
|
# if ipyData:
|
# print
|
# print type(ipyData.GetGiftbagType()), ipyData.GetGiftbagType()
|
# print type(ipyData.GetGiftbagID()), ipyData.GetGiftbagID()
|
# print type(ipyData.GetBuyCountLimit()), ipyData.GetBuyCountLimit()
|
# print type(ipyData.GetGiftItemList()), ipyData.GetGiftItemList()
|
# else:
|
# print "None"
|
|