#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package # # @todo:¶ÁÈ¡PY±í # @author hxp # @date 2018-05-10 # @version 1.0 # # ÏêϸÃèÊö: ¶ÁÈ¡PY±í # #------------------------------------------------------------------------------- #"""Version = 2018-05-10 12:00""" #------------------------------------------------------------------------------- import FormulaControl import ChConfig import LogUI import hashlib import os '''±í½á¹¹¶¨Òå×Öµä { ±íÃû:( (×Ö¶ÎÀàÐÍ, ×Ö¶ÎÃû, ÊÇ·ñ²éѯË÷Òý), ... ), ... } ''' Def_IpyTable = { "Dienstgrad":( ("DWORD", "ID", 1), ("WORD", "Type", 0), ("DWORD", "ExpireTime", 0), ("list", "LightType", 0), ("list", "LightAttribute", 0), ("list", "Skills", 0), ), "Realm":( ("WORD", "Lv", 1), ("BYTE", "IsBigRealm", 0), ("DWORD", "NeedPoint", 0), ("DWORD", "NeedItemID", 0), ("WORD", "NeedItemCnt", 0), ("dict", "NeedActiveTreasure", 0), ("list", "AddAttrType", 0), ("list", "AddAttrNum", 0), ("DWORD", "BossID", 0), ("dict", "SitTime", 0), ("dict", "TeamAward", 0), ), "GodWeapon":( ("WORD", "Type", 1), ("WORD", "LV", 1), ("DWORD", "Exp", 0), ("list", "AttrType", 0), ("list", "AttrNum", 0), ("DWORD", "SkillID", 0), ("char", "SysMark", 0), ), "FuncConfig":( ("char", "Key", 1), ("char", "Numerical1", 0), ("char", "Numerical2", 0), ("char", "Numerical3", 0), ("char", "Numerical4", 0), ("char", "Numerical5", 0), ), "FuncOpenLV":( ("DWORD", "FuncId", 1), ("DWORD", "LimitLV", 0), ("DWORD", "LimitMagicWeapon", 0), ("WORD", "LimiRealmLV", 0), ("DWORD", "LimitMissionID", 0), ), "ItemCompound":( ("WORD", "ID", 1), ("list", "MakeID", 0), ("list", "UnfixedItemID", 0), ("BYTE", "UnfixedItemCount", 0), ("list", "FixedItemID", 0), ("list", "FixedItemCount", 0), ("DWORD", "NeedMoney", 0), ("WORD", "SuccessRate", 0), ("WORD", "SuccessRateMax", 0), ("BYTE", "AddonsCountMax", 0), ("char", "SysMark", 0), ), "ItemPlus":( ("BYTE", "Type", 1), ("WORD", "LV", 1), ("list", "AttrType", 0), ("list", "AttrValue", 0), ("DWORD", "CostCount", 0), ("DWORD", "AddExp", 0), ("DWORD", "TotalExp", 0), ), "ItemPlusMax":( ("BYTE", "Type", 1), ("BYTE", "ItemRank", 1), ("BYTE", "ItemColor", 1), ("WORD", "LevelMax", 0), ), "ItemPlusSumAttr":( ("WORD", "PlusCntNeed", 1), ("list", "AttrType", 0), ("list", "AttrValue", 0), ), "RoleEquipStars":( ("BYTE", "StarsNeed", 1), ("list", "AttrType", 0), ("list", "AttrValue", 0), ), "Dogz":( ("BYTE", "DogzID", 1), ("list", "BaseAttrTypes", 0), ("list", "BaseAttrValues", 0), ("list", "HelpBattleSkills", 0), ("list", "EquipPlaceColorList", 0), ), "DogzEquipPlus":( ("BYTE", "EquipPlace", 1), ("BYTE", "PlusLV", 1), ("list", "PlusAttrTypes", 0), ("list", "PlusAttrValues", 0), ("DWORD", "PlusLVUPTotalExp", 0), ), "Rune":( ("DWORD", "ID", 1), ("list", "AttrType", 0), ), "EquipWash":( ("BYTE", "WashType", 1), ("BYTE", "WashLV", 1), ("BYTE", "AttrType1", 0), ("DWORD", "AttrMax1", 0), ("dict", "AttrRandDict1", 0), ("DWORD", "AttrCostGoldMin1", 0), ("DWORD", "AttrCostGoldMax1", 0), ("BYTE", "AttrType2", 0), ("DWORD", "AttrMax2", 0), ("dict", "AttrRandDict2", 0), ("DWORD", "AttrCostGoldMin2", 0), ("DWORD", "AttrCostGoldMax2", 0), ("BYTE", "AttrType3", 0), ("DWORD", "AttrMax3", 0), ("dict", "AttrRandDict3", 0), ("DWORD", "AttrCostGoldMin3", 0), ("DWORD", "AttrCostGoldMax3", 0), ("DWORD", "CostItemID", 0), ("BYTE", "CostItemCount", 0), ("list", "GoldWashCostList", 0), ), "EquipWashSpec":( ("BYTE", "WashTypeNeed", 1), ("BYTE", "WashLVNeed", 1), ("list", "AddAttrType", 0), ("list", "AddAttrValue", 0), ), "AttrFruit":( ("DWORD", "ID", 1), ("BYTE", "FuncID", 0), ("WORD", "MaxUseCnt", 0), ("WORD", "RecycleMoney", 0), ), "PetInfo":( ("DWORD", "ID", 1), ("BYTE", "Quality", 0), ("char", "UnlockSys", 0), ("DWORD", "UnLockNeedItemID", 0), ("BYTE", "UnLockNeedItemCnt", 0), ("DWORD", "DecomposeExp", 0), ("BYTE", "InitRank", 0), ("WORD", "MaxRank", 0), ("WORD", "UseNeedRank", 0), ("list", "SkillID", 0), ("list", "SkillUnLock", 0), ("list", "SkillUnLockSys", 0), ("DWORD", "InitFightPower", 0), ), "EquipDecompose":( ("WORD", "LV", 1), ("DWORD", "UpNeedExp", 0), ("dict", "Attr", 0), ), "PetClassCost":( ("DWORD", "PetID", 1), ("DWORD", "Class", 1), ("DWORD", "UpNeedExp", 0), ("DWORD", "AtkAdd", 0), ), "PetEatEquip":( ("BYTE", "EquipColor", 1), ("BYTE", "EquipClass", 1), ("DWORD", "Exp", 0), ("DWORD", "FamilyStoreItemScore", 0), ), "Horse":( ("DWORD", "HorseID", 1), ("DWORD", "ItemID", 0), ("DWORD", "UnlockItemID", 0), ("BYTE", "UnlockItemCnt", 0), ("BYTE", "InitLV", 0), ("BYTE", "MaxLV", 0), ("BYTE", "UseNeedRank", 0), ("BYTE", "Quality", 0), ("DWORD", "InitFightPower", 0), ("char", "UnlockSys", 0), ), "HorseUp":( ("DWORD", "HorseID", 1), ("BYTE", "LV", 1), ("DWORD", "NeedExp", 0), ("list", "AttrType", 0), ("list", "AttrValue", 0), ("list", "SkillID", 0), ("char", "SysMark", 0), ), "PlayerLV":( ("WORD", "LV", 1), ("DWORD", "ExpPoint", 0), ("DWORD", "Exp", 0), ("BYTE", "TalentPoint", 0), ("DWORD", "ReExp", 0), ("DWORD", "ReMaxHP", 0), ("DWORD", "ReAtk", 0), ("DWORD", "ReDef", 0), ("DWORD", "ReHit", 0), ("DWORD", "ReMiss", 0), ("DWORD", "ReAtkSpeed", 0), ("DWORD", "ReSkillAtkRate", 0), ("DWORD", "ReDamagePer", 0), ("DWORD", "ReDamReduce", 0), ("DWORD", "ReIgnoreDefRate", 0), ("DWORD", "ReLuckyHitRate", 0), ("DWORD", "ReLuckyHit", 0), ("DWORD", "ReBleedDamage", 0), ("DWORD", "ReIceAtk", 0), ("DWORD", "ReIceDef", 0), ("DWORD", "RePetAtk", 0), ("DWORD", "RePetSkillAtkRate", 0), ("DWORD", "RePetDamPer", 0), ("DWORD", "ReFinalHurt", 0), ("DWORD", "ReFinalHurtReduce", 0), ("DWORD", "RePotionReply", 0), ("DWORD", "RePotionCD", 0), ("DWORD", "AttackEff", 0), ("DWORD", "ReFightPower", 0), ), "GMAttr":( ("DWORD", "GMAttrID", 1), ("BYTE", "IsValid", 0), ("char", "GMAccID", 0), ("WORD", "GMMaxLV", 0), ("WORD", "AttrLV", 0), ("float", "AttrPer", 0), ("dict", "AttrSpecDict", 0), ("dict", "AttrExDict", 0), ), "NPCStrengthen":( ("DWORD", "NPCID", 1), ("BYTE", "IsStrengthenByPlayerCount", 0), ("BYTE", "LVStrengthenType", 0), ("DWORD", "HitTime", 0), ("DWORD", "DefCoefficient", 0), ("DWORD", "AtkCoefficient", 0), ("DWORD", "AdjustCoefficient", 0), ("DWORD", "AtkInterval", 0), ("DWORD", "HitRate", 0), ("DWORD", "MissRate", 0), ("DWORD", "MonterNum", 0), ("DWORD", "IceAtkCoefficient", 0), ("DWORD", "IceDefCoefficient", 0), ("DWORD", "MaxEnduranceTime", 0), ("DWORD", "FightPowerCoefficient", 0), ), "EquipSuitAttr":( ("BYTE", "GroupType", 1), ("BYTE", "SuiteType", 1), ("WORD", "SuiteLV", 1), ("BYTE", "Job", 1), ("BYTE", "Count1", 0), ("list", "AttrType1", 0), ("list", "AttrValue1", 0), ("BYTE", "Count2", 0), ("list", "AttrType2", 0), ("list", "AttrValue2", 0), ("BYTE", "Count3", 0), ("list", "AttrType3", 0), ("list", "AttrValue3", 0), ), "EquipSuitCompound":( ("BYTE", "SuiteType", 1), ("BYTE", "EquipPlace", 1), ("WORD", "SuiteLV", 1), ("BYTE", "Job", 1), ("list", "CostItemID", 0), ("list", "CostItemCnt", 0), ), "WingRefineAttr":( ("BYTE", "WingClassLV", 1), ("dict", "AttrInfo", 0), ("dict", "ItemColorInfo", 0), ("DWORD", "MaxRefineExp", 0), ), "WingRefineExp":( ("DWORD", "ItemID", 1), ("DWORD", "RandExpMin", 0), ("DWORD", "RandExpMax", 0), ("dict", "ExpMaterial", 0), ), "FamilyTech":( ("DWORD", "TechID", 1), ("BYTE", "AttrType", 0), ("DWORD", "AttrValue", 0), ("DWORD", "Contribution", 0), ("DWORD", "PowerEx", 0), ), "FightPowerParam":( ("WORD", "LV", 1), ("DWORD", "CftHit", 0), ("DWORD", "CftMiss", 0), ("DWORD", "CftDamagePer", 0), ("DWORD", "CftDamReduce", 0), ("DWORD", "CftIgnoreDefRate", 0), ("DWORD", "CftDamChanceDef", 0), ("DWORD", "CftBleedDamage", 0), ("DWORD", "CftFaintRate", 0), ("DWORD", "CftSuperHitReduce", 0), ("DWORD", "CftLuckyHitRateReduce", 0), ("DWORD", "CftSkillAtkRate", 0), ("DWORD", "CftSkillAtkRateReduce", 0), ("DWORD", "CftDamagePerPVP", 0), ("DWORD", "CftDamagePerPVPReduce", 0), ("DWORD", "CftDamBackPer", 0), ("DWORD", "CftIgnoreDefRateReduce", 0), ("DWORD", "CftFaintDefRate", 0), ("DWORD", "CftAtkSpeed", 0), ("DWORD", "CftLuckyHit", 0), ), "NPCDropItem":( ("DWORD", "NPCID", 1), ("WORD", "MaxWorldLV", 0), ("WORD", "MaxDropLV", 0), ("BYTE", "CanDropRatePlus", 0), ("BYTE", "IsDropJobSelf", 0), ("list", "PieRateDrop", 0), ("BYTE", "PieRateDoCnt", 0), ("dict", "IndepRateDrop", 0), ("BYTE", "IndepRateDoCnt", 0), ("dict", "IndepRateMaxDropCount", 0), ("dict", "EquipStarInfo", 0), ("list", "KillCountDropEquipEx", 0), ("list", "KillCountDropEquipEx2", 0), ("dict", "ItemIDDropRate", 0), ("dict", "ItemIDMaxDropCount", 0), ("dict", "ItemKeyDropRate", 0), ("dict", "ItemKeyDropRateJob", 0), ("dict", "ItemKeyMaxDropCount", 0), ("BYTE", "DropMoneyDoCnt", 0), ("WORD", "DropMoneyRate", 0), ("WORD", "DropMoneyMin", 0), ("WORD", "DropMoneyMax", 0), ("list", "KillCountDrop", 0), ("list", "PriItemIDDrop", 0), ), "RuneTower":( ("DWORD", "ID", 1), ("DWORD", "RunePoint", 0), ("DWORD", "Ysog", 0), ("DWORD", "NPCID", 0), ("BYTE", "IsNotify", 0), ("list", "FixEndAward", 0), ("dict", "GoodDrop", 0), ("DWORD", "SweepRunePoint", 0), ("DWORD", "SweepYsog", 0), ("dict", "SweepGoodDrop", 0), ), "FBFunc":( ("DWORD", "DataMapID", 1), ("BYTE", "DayTimes", 0), ("BYTE", "DayResetType", 0), ("BYTE", "WeekTimes", 0), ("BYTE", "WeekResetType", 0), ("list", "RewardRate", 0), ("DWORD", "BuyTimesVIPPriID", 0), ("DWORD", "ExtraTimesVIPPriID", 0), ("DWORD", "ExtraTimesMWPriID", 0), ("BYTE", "GuardPick", 0), ("WORD", "OfflineTime", 0), ("WORD", "HelpPoint", 0), ), "FBLine":( ("DWORD", "DataMapID", 1), ("BYTE", "LineID", 1), ("DWORD", "MapID", 0), ("WORD", "LVLimitMin", 0), ("WORD", "LVLimitMax", 0), ("BYTE", "JobRankLimit", 0), ("DWORD", "TicketID", 0), ("list", "TicketCostCnt", 0), ("WORD", "TicketPrice", 0), ("WORD", "SweepLVLimit", 0), ("DWORD", "SweepItemID", 0), ("BYTE", "SweepCostCnt", 0), ("eval", "EnterPosInfo", 0), ("eval", "StepTime", 0), ("eval", "RefreshNPC", 0), ("eval", "GradeInfo", 0), ("eval", "RewardInfo", 0), ), "NPCCustomRefresh":( ("DWORD", "ID", 1), ("list", "RefreshMarkInfo", 0), ("DWORD", "RefreshNPCID", 0), ("list", "RandNPCIDList", 0), ("list", "NPCIDCountList", 0), ("WORD", "MaxCount", 0), ("WORD", "TotalMaxCount", 0), ("BYTE", "IsLineOneOnly", 0), ("DWORD", "RefreshTick", 0), ("BYTE", "IsRepeat", 0), ), "DailyAction":( ("DWORD", "DailyID", 1), ("DWORD", "DayTimes", 0), ("BYTE", "DayResetType", 0), ("DWORD", "WeekTimes", 0), ("BYTE", "WeekResetType", 0), ), "EquipGSParam":( ("BYTE", "ClassLV", 1), ("BYTE", "EquipColor", 1), ("BYTE", "EquipQualityLV", 1), ("DWORD", "AtkPerC", 0), ("DWORD", "DamagePerC", 0), ("DWORD", "SuperHitRateC", 0), ("DWORD", "SuperHitPerC", 0), ("DWORD", "DamReducePerC", 0), ("DWORD", "MaxHPPerC", 0), ("DWORD", "DefPerC", 0), ("DWORD", "LuckyHitRateC", 0), ("DWORD", "PetDamPerC", 0), ("DWORD", "PerLVAtkC", 0), ("DWORD", "MissRateC", 0), ("DWORD", "HitRateC", 0), ("DWORD", "DamBackPerC", 0), ("DWORD", "PerLVMaxHPC", 0), ("DWORD", "DropEquipPerC", 0), ("DWORD", "DropMoneyPerC", 0), ("DWORD", "IgnoreDefRateReduceC", 0), ("DWORD", "DamChanceDefC", 0), ("DWORD", "SuperHitReduceC", 0), ("DWORD", "SkillAtkRateC", 0), ("DWORD", "SpeedPerC", 0), ("DWORD", "AtkSpeedC", 0), ), "Success":( ("DWORD", "ID", 1), ("WORD", "Type", 0), ("DWORD", "NeedCnt", 0), ("list", "Condition", 0), ("list", "PreSuccess", 0), ("dict", "AwardItem", 0), ("dict", "Money", 0), ("DWORD", "Exp", 0), ("dict", "AwardAttr", 0), ("DWORD", "RedPacketID", 0), ("DWORD", "MagicWeaponID", 0), ("DWORD", "MagicWeaponExp", 0), ), "Treasure":( ("DWORD", "ID", 1), ("BYTE", "TreasureType", 0), ("DWORD", "PreTreasure", 0), ("list", "SuccID", 0), ("list", "Potentials", 0), ("dict", "NeedItem", 0), ), "TreasureUp":( ("DWORD", "MWID", 1), ("BYTE", "LV", 1), ("DWORD", "NeedExp", 0), ("dict", "AddAttr", 0), ("list", "UnLockSkill", 0), ("DWORD", "ActiveMWID", 0), ("list", "ItemAward", 0), ), "TreasurePrivilege":( ("DWORD", "PrivilegeID", 1), ("eval", "EffectValue", 0), ("DWORD", "SingleValue", 0), ("DWORD", "MaxValue", 0), ("dict", "AddAttr", 0), ("list", "ItemAward", 0), ("list", "SuccessList", 0), ), "TreasureSkill":( ("BYTE", "SkillUpType", 1), ("BYTE", "SkillLV", 1), ("DWORD", "NeedPoint", 0), ("WORD", "InitRate", 0), ("list", "NeedItemID", 0), ("list", "NeedItemCnt", 0), ("list", "MaxRate", 0), ), "ContineSignAward":( ("BYTE", "ContineDay", 1), ("list", "ItemID", 0), ("BYTE", "IsBind", 0), ("list", "ItemNum", 0), ("list", "JobItemList", 0), ), "SignAward":( ("BYTE", "RewardID", 1), ("list", "ItemID", 0), ("BYTE", "IsBind", 0), ("BYTE", "VipLv", 0), ("list", "OrdinaryNum", 0), ("BYTE", "VipMultiple", 0), ), "VIPAward":( ("BYTE", "VIPLV", 1), ("dict", "ItemID", 0), ("WORD", "Price", 0), ("WORD", "OldPrice", 0), ), "AppointItem":( ("DWORD", "ID", 1), ("BYTE", "SuiteLV", 0), ("BYTE", "CancelUseLimit", 0), ("list", "LegendAttrID", 0), ("list", "LegendAttrValue", 0), ("list", "OutOfPrintAttr", 0), ("list", "OutOfPrintAttrValue", 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), ), "Store":( ("DWORD", "ID", 1), ("DWORD", "ShopType", 0), ("BYTE", "OperationActionShop", 0), ("DWORD", "ItemID", 0), ("WORD", "ItemCnt", 0), ("BYTE", "IsBind", 0), ("list", "ItemListEx", 0), ("DWORD", "MainItemID", 0), ("list", "JobItem", 0), ("BYTE", "RefreshType", 0), ("list", "LimitVIPLV", 0), ("DWORD", "LimitLV", 0), ("list", "LimitCnt", 0), ("BYTE", "MoneyType", 0), ("DWORD", "MoneyNum", 0), ("DWORD", "MoneyOriginal", 0), ("DWORD", "LimitValue", 0), ("char", "NotifyMark", 0), ), "ActSpringSale":( ("DWORD", "CfgID", 1), ("char", "StartDate", 0), ("char", "EndDate", 0), ("list", "StartTimeList", 0), ("list", "EndTimeList", 0), ("WORD", "LVLimit", 0), ("BYTE", "IsDayReset", 0), ("list", "ShopTypeList", 0), ), "DailyQuest":( ("DWORD", "ID", 1), ("BYTE", "RelatedType", 0), ("DWORD", "RelatedID", 0), ("WORD", "UnLockFuncID", 0), ("BYTE", "OnceActivityTime", 0), ("BYTE", "OnceActivity", 0), ("WORD", "TotalActiveValue", 0), ), "DailyLivenessReward":( ("BYTE", "ID", 1), ("WORD", "Liveness", 0), ("list", "StageLV", 0), ("list", "ItemID", 0), ("list", "ItemCount", 0), ("list", "ItemBind", 0), ), "TreasureRefine":( ("WORD", "TreasureID", 1), ("BYTE", "TreasureLV", 1), ("dict", "TreasureAttr", 0), ("dict", "Material", 0), ("WORD", "SuccessRate", 0), ("DWORD", "OpenSkill", 0), ("BYTE", "NeedAlchemyLV", 0), ("BYTE", "NeedAllTreasureLV", 0), ), "RefineStove":( ("BYTE", "StoveLV", 1), ("DWORD", "UpNeedExp", 0), ("list", "AddAttrType", 0), ("list", "AddAttrNum", 0), ), "Alchemy":( ("WORD", "AlchemyID", 1), ("dict", "Material", 0), ("WORD", "AlchemyExp", 0), ("list", "AlchemyItem", 0), ("list", "SpecAlchemyID", 0), ("list", "AlchemyUp", 0), ("BYTE", "NeedAlchemyLV", 0), ), "AlchemySpec":( ("WORD", "SpecAlchemyID", 1), ("DWORD", "MaterialID", 0), ("BYTE", "MaterialCnt", 0), ("WORD", "AlchemyExp", 0), ("list", "AlchemyItem", 0), ("BYTE", "NeedAlchemyLV", 0), ), "BOSSInfo":( ("DWORD", "NPCID", 1), ("DWORD", "MapID", 0), ("BYTE", "RefreshMark", 0), ("BYTE", "IsNeedShunt", 0), ("BYTE", "RelatedType", 0), ("WORD", "RelatedID", 0), ("DWORD", "StoneNPCID", 0), ), "ElderGodArea":( ("DWORD", "NPCID", 1), ("BYTE", "MonsterAnger", 0), ), "PersonalBoss":( ("DWORD", "NPCID", 1), ("DWORD", "ChanllengeLv", 0), ), "FamilyActivity":( ("DWORD", "ID", 1), ("WORD", "UnLockFuncID", 0), ("BYTE", "TotalActivityTime", 0), ("WORD", "SingleTimes", 0), ("WORD", "SingleActiveValue", 0), ), "FamilyRedPack":( ("WORD", "ID", 1), ("WORD", "GetType", 0), ("WORD", "MoneyNum", 0), ("BYTE", "MoneyType", 0), ("BYTE", "PacketCnt", 0), ), "NPCShow":( ("DWORD", "NPCID", 1), ("DWORD", "MapID", 1), ("BYTE", "LineID", 0), ("DWORD", "ProtectTime", 0), ("DWORD", "BindMissionID", 0), ("BYTE", "ShowType", 0), ), "SealDemon":( ("DWORD", "NPCID", 1), ("BYTE", "LineID", 0), ("WORD", "KillTime", 0), ), "FbEncourage":( ("DWORD", "DataMapID", 1), ("BYTE", "InspireType", 1), ("WORD", "InspireMaxLV", 0), ("DWORD", "MoneyCount", 0), ), "RuneCompound":( ("DWORD", "TagItemID", 1), ("list", "NeedItem", 0), ("WORD", "NeedMJ", 0), ), "ResourcesBack":( ("BYTE", "ID", 1), ("DWORD", "RelatedID", 0), ("BYTE", "CanBackTimes", 0), ("BYTE", "NormalCostJade", 0), ("WORD", "VipCostJade", 0), ("dict", "JadeReward", 0), ("DWORD", "CostCopper", 0), ("dict", "CopperReward", 0), ), "Chests":( ("DWORD", "ChestsItemID", 1), ("DWORD", "CostItemID", 0), ("BYTE", "CostItemCount", 0), ("WORD", "CostGold", 0), ("BYTE", "ShowType", 0), ("BYTE", "IsBind", 0), ), "ChestsAward":( ("DWORD", "ChestsItemID", 1), ("WORD", "AwardLV", 0), ("dict", "SelectItemDict", 0), ("dict", "FixedItemDict", 0), ("list", "RandItemList1", 0), ("list", "RandTimeList1", 0), ("list", "RandItemList2", 0), ("list", "RandTimeList2", 0), ("list", "JobItemList", 0), ("BYTE", "MoneyType", 0), ("DWORD", "MoneyCount", 0), ("list", "NeedNotifyItemList", 0), ), "VIPKillNPC":( ("WORD", "KillLV", 1), ("DWORD", "LVExpPoint", 0), ("DWORD", "LVExp", 0), ("DWORD", "AddMinAtk", 0), ("DWORD", "AddMaxAtk", 0), ), "OSCBillRankAward":( ("BYTE", "OSCBillType", 1), ("BYTE", "RankA", 0), ("BYTE", "RankB", 0), ("dict", "RankAward", 0), ), "OSCBillTagAward":( ("BYTE", "OSCBillType", 1), ("WORD", "TagCondition", 0), ("dict", "TagAward", 0), ), "LoginDayAward":( ("BYTE", "DayID", 1), ("dict", "Reward", 0), ), "OnlineAward":( ("BYTE", "DayID", 1), ("list", "StageTime", 0), ("dict", "Reward", 0), ), "SpringSale":( ("BYTE", "GiftID", 1), ("BYTE", "SellDay", 0), ("BYTE", "BuyNumLimit", 0), ("WORD", "GiftPrice", 0), ("list", "GiftItemList", 0), ), "OrderInfo":( ("char", "OrderInfo", 1), ("char", "AppID", 1), ("float", "PayRMBNum", 0), ("DWORD", "CTGID", 0), ("DWORD", "GiftbagID", 0), ), "CTG":( ("BYTE", "RecordID", 1), ("BYTE", "DailyBuyCount", 0), ("WORD", "GainGold", 0), ("WORD", "GainGoldPrize", 0), ("WORD", "FirstGoldPrize", 0), ("list", "GainItemList", 0), ), "LVAward":( ("BYTE", "AwardID", 1), ("WORD", "LV", 0), ("WORD", "LimitCnt", 0), ("dict", "Reward", 0), ("BYTE", "VIPLimit", 0), ("list", "VIPAward", 0), ), "Invest":( ("WORD", "ID", 1), ("BYTE", "Type", 0), ("BYTE", "NeedDay", 0), ("WORD", "NeedLV", 0), ("dict", "Reward", 0), ), "XBXZ":( ("DWORD", "ID", 1), ("BYTE", "Type", 0), ("DWORD", "NeedCnt", 0), ("list", "Condition", 0), ("WORD", "MWID", 0), ("list", "AwardItem", 0), ("list", "Money", 0), ), "TreasureHouse":( ("BYTE", "TreasureType", 1), ("WORD", "MinLV", 0), ("dict", "GridItemInfo", 0), ("list", "JobItemList", 0), ("list", "GridItemRateListFree", 0), ("list", "FreeGridItemRateList2", 0), ("dict", "FreeGridItemRateList3", 0), ("list", "GridItemRateList1", 0), ("list", "GridItemRateList2", 0), ("dict", "GridItemRateList3", 0), ("BYTE", "LuckyGridNum", 0), ), "FreeGoods":( ("BYTE", "ID", 1), ("dict", "AwardItem", 0), ("WORD", "NeedMoney", 0), ("DWORD", "ReturnTime", 0), ), "ActFlashGiftbag":( ("DWORD", "CfgID", 1), ("char", "StartDate", 0), ("char", "EndDate", 0), ("list", "StartTimeList", 0), ("list", "EndTimeList", 0), ("WORD", "LVLimit", 0), ("BYTE", "IsDayReset", 0), ("list", "GiftbagList", 0), ), "FlashGiftbag":( ("DWORD", "GiftbagID", 1), ("WORD", "GiftbagType", 0), ("DWORD", "OriginalRMB", 0), ("WORD", "BuyCountLimit", 0), ("list", "GiftItemList", 0), ("DWORD", "MainItemID", 0), ("char", "NotifyKey", 0), ), "CostRebateTemplate":( ("DWORD", "TemplateID", 1), ("DWORD", "NeedCostGold", 0), ("BYTE", "AwardIndex", 0), ("list", "AwardItemList", 0), ("char", "NotifyKey", 0), ), "BossReborn":( ("BYTE", "TemplateID", 1), ("BYTE", "ID", 1), ("DWORD", "TotalTimes", 0), ("WORD", "SingleTimes", 0), ("list", "Reward", 0), ), "TrialExchange":( ("DWORD", "ID", 1), ("list", "ExchangeItemIDList", 0), ("DWORD", "ExchangeItemCount", 0), ("DWORD", "ExchangeItemIsBind", 0), ("DWORD", "CostItemID", 0), ("DWORD", "CostItemCount", 0), ), "AllPeopleParty":( ("BYTE", "ID", 1), ("WORD", "TotalTimes", 0), ("WORD", "AddPoint", 0), ), "AllPeoplePartyAward":( ("BYTE", "WorldLvNum", 1), ("DWORD", "Index", 1), ("DWORD", "NeedPoint", 0), ("dict", "Award", 0), ), "MapEventPoint":( ("DWORD", "MapID", 1), ("DWORD", "NPCID", 1), ("WORD", "LowLV", 0), ("WORD", "HighestLV", 0), ("DWORD", "Defense", 0), ), } # ³ÆºÅ±í class IPY_Dienstgrad(): def __init__(self): self.ID = 0 self.Type = 0 self.ExpireTime = 0 self.LightType = [] self.LightAttribute = [] self.Skills = [] return def GetID(self): return self.ID # Í·ÏÎid def GetType(self): return self.Type # Í·ÏÎÀàÐÍ def GetExpireTime(self): return self.ExpireTime # ÓÐЧʱ¼ä def GetLightType(self): return self.LightType # µãÁÁÊôÐÔÀàÐÍ def GetLightAttribute(self): return self.LightAttribute # µãÁÁÊôÐÔÖµ def GetSkills(self): return self.Skills # ±»¶¯¼¼ÄÜ # ¾³½ç±í class IPY_Realm(): def __init__(self): self.Lv = 0 self.IsBigRealm = 0 self.NeedPoint = 0 self.NeedItemID = 0 self.NeedItemCnt = 0 self.NeedActiveTreasure = {} self.AddAttrType = [] self.AddAttrNum = [] self.BossID = 0 self.SitTime = {} self.TeamAward = {} return def GetLv(self): return self.Lv # ¾³½çµÈ¼¶ def GetIsBigRealm(self): return self.IsBigRealm # ÊÇ·ñ´ó¾³½ç def GetNeedPoint(self): return self.NeedPoint # ¿ªÆô¶É½ÙÐèÒªÐÞÁ¶µã def GetNeedItemID(self): return self.NeedItemID # ¿ªÆô¶É½ÙÐèÒªµÀ¾ßID def GetNeedItemCnt(self): return self.NeedItemCnt # ¿ªÆô¶É½ÙÏûºÄµÄµÀ¾ßÊýÁ¿ def GetNeedActiveTreasure(self): return self.NeedActiveTreasure # ¿ªÆô¶É½ÙÐèÒª¼¤»î·¨±¦Ìõ¼þ def GetAddAttrType(self): return self.AddAttrType # ¾³½ç¼Ó³ÉÊôÐÔÀàÐÍ def GetAddAttrNum(self): return self.AddAttrNum # ¾³½ç¼Ó³ÉÊôÐÔÖµ def GetBossID(self): return self.BossID # ¶É½Ùbossid def GetSitTime(self): return self.SitTime # ´ò×øÊ±¼ä def GetTeamAward(self): return self.TeamAward # ×é¶Ó°ï´òµÄÈ˵Ľ±Àø # Éñ±ø±í class IPY_GodWeapon(): def __init__(self): self.Type = 0 self.LV = 0 self.Exp = 0 self.AttrType = [] self.AttrNum = [] self.SkillID = 0 self.SysMark = "" return def GetType(self): return self.Type # Éñ±øÀàÐÍ def GetLV(self): return self.LV # µÈ¼¶ def GetExp(self): return self.Exp def GetAttrType(self): return self.AttrType # ÊôÐÔÀàÐÍ def GetAttrNum(self): return self.AttrNum # ÊôÐÔÖµ def GetSkillID(self): return self.SkillID # ¼¤»î¼¼ÄÜID def GetSysMark(self): return self.SysMark # ϵͳÌáʾ # ¹¦ÄÜÅäÖñí¸ñ class IPY_FuncConfig(): def __init__(self): self.Key = "" self.Numerical1 = "" self.Numerical2 = "" self.Numerical3 = "" self.Numerical4 = "" self.Numerical5 = "" return def GetKey(self): return self.Key # ±êʶ def GetNumerical1(self): return self.Numerical1 # Êý¾Ý1 def GetNumerical2(self): return self.Numerical2 # Êý¾Ý2 def GetNumerical3(self): return self.Numerical3 # Êý¾Ý3 def GetNumerical4(self): return self.Numerical4 # Êý¾Ý4 def GetNumerical5(self): return self.Numerical5 # Êý¾Ý5 # µÈ¼¶¿ªÆô¹¦ÄÜ class IPY_FuncOpenLV(): def __init__(self): self.FuncId = 0 self.LimitLV = 0 self.LimitMagicWeapon = 0 self.LimiRealmLV = 0 self.LimitMissionID = 0 return def GetFuncId(self): return self.FuncId # ¹¦Äܱêʶ def GetLimitLV(self): return self.LimitLV # ¿ªÆôµÈ¼¶ def GetLimitMagicWeapon(self): return self.LimitMagicWeapon # ÐèÒª½âËø·¨±¦ID def GetLimiRealmLV(self): return self.LimiRealmLV # ÐèÒª¾³½çµÈ¼¶ def GetLimitMissionID(self): return self.LimitMissionID # ÐèÒªÍê³ÉµÄÈÎÎñID # ºÏ³É±í class IPY_ItemCompound(): def __init__(self): self.ID = 0 self.MakeID = [] self.UnfixedItemID = [] self.UnfixedItemCount = 0 self.FixedItemID = [] self.FixedItemCount = [] self.NeedMoney = 0 self.SuccessRate = 0 self.SuccessRateMax = 0 self.AddonsCountMax = 0 self.SysMark = "" return def GetID(self): return self.ID # ºÏ³ÉÅäÖñàºÅID def GetMakeID(self): return self.MakeID # ¿ÉºÏ³ÉµÄµÀ¾ßID£¬¶à¸öÔòËæ»úÒ»¸ö def GetUnfixedItemID(self): return self.UnfixedItemID # ²»¹Ì¶¨µÀ¾ßID, ¶à¸öIDʱÔòÈÎÒâÒ»ÖÖ¾ù¿É def GetUnfixedItemCount(self): return self.UnfixedItemCount # ²»¹Ì¶¨µÀ¾ßÏûºÄÊýÁ¿ def GetFixedItemID(self): return self.FixedItemID # ÏûºÄ¹Ì¶¨µÀ¾ßID, ¶à¸öIDʱ´ú±íÿ¸öID¾ùÐèÏûºÄ def GetFixedItemCount(self): return self.FixedItemCount # ÏûºÄ¹Ì¶¨µÀ¾ßÊýÁ¿£¬Ã¿¸öID¶ÔÓ¦ÊýÁ¿ def GetNeedMoney(self): return self.NeedMoney # ÏûºÄÍ­Ç® def GetSuccessRate(self): return self.SuccessRate # ³É¹¦ÂÊÍò·ÖÂÊ def GetSuccessRateMax(self): return self.SuccessRateMax # ×î´ó³É¹¦ÂÊÍò·ÖÂÊ def GetAddonsCountMax(self): return self.AddonsCountMax # ×î´ó¿É¸½¼Ó²ÄÁÏÊý, Ôö¼Ó¸ÅÂÊÓÃ, ·Ç±ØÐë, 0´ú±í²»¿É¸½¼Ó²ÄÁÏ def GetSysMark(self): return self.SysMark # Ìáʾmark # ÎïÆ·Ç¿»¯Ð§¹û±í class IPY_ItemPlus(): def __init__(self): self.Type = 0 self.LV = 0 self.AttrType = [] self.AttrValue = [] self.CostCount = 0 self.AddExp = 0 self.TotalExp = 0 return def GetType(self): return self.Type # Ç¿»¯ÀàÐÍ def GetLV(self): return self.LV # Ç¿»¯µÈ¼¶ def GetAttrType(self): return self.AttrType # ÊôÐÔÀàÐÍ def GetAttrValue(self): return self.AttrValue # ÊôÐÔÖµ def GetCostCount(self): return self.CostCount # ÏûºÄÍ­Ç® def GetAddExp(self): return self.AddExp # ÌáÉýÊìÁ·¶ÈÖµ def GetTotalExp(self): return self.TotalExp # Éý¼¶ËùÐèÊìÁ·¶È×ÜÖµ # ×°±¸Ç¿»¯µÈ¼¶ÉÏÏÞ class IPY_ItemPlusMax(): def __init__(self): self.Type = 0 self.ItemRank = 0 self.ItemColor = 0 self.LevelMax = 0 return def GetType(self): return self.Type # °´×°±¸Î»¶ÔÓ¦ÀàÐͲéÕÒ def GetItemRank(self): return self.ItemRank # ×°±¸½×Êý def GetItemColor(self): return self.ItemColor # ×°±¸ÑÕÉ« Èç³È×° def GetLevelMax(self): return self.LevelMax # Ç¿»¯µÈ¼¶ÉÏÏÞ # ×°±¸È«ÉíÇ¿»¯ÊôÐÔ class IPY_ItemPlusSumAttr(): def __init__(self): self.PlusCntNeed = 0 self.AttrType = [] self.AttrValue = [] return def GetPlusCntNeed(self): return self.PlusCntNeed # È«ÉíÇ¿»¯µÈ¼¶ def GetAttrType(self): return self.AttrType # È«ÉíÇ¿»¯¼¤»îÊôÐÔÀàÐÍ def GetAttrValue(self): return self.AttrValue # È«ÉíÇ¿»¯¼¤»îÊôÐÔÖµ # ×°±¸È«ÉíÐÇÊýÊôÐÔ class IPY_RoleEquipStars(): def __init__(self): self.StarsNeed = 0 self.AttrType = [] self.AttrValue = [] return def GetStarsNeed(self): return self.StarsNeed # È«ÉíÐÇÊý def GetAttrType(self): return self.AttrType # ÊôÐÔÀàÐÍ def GetAttrValue(self): return self.AttrValue # ÊôÐÔÖµ # ÉñÊÞ±í class IPY_Dogz(): def __init__(self): self.DogzID = 0 self.BaseAttrTypes = [] self.BaseAttrValues = [] self.HelpBattleSkills = [] self.EquipPlaceColorList = [] return def GetDogzID(self): return self.DogzID # ÉñÊÞID def GetBaseAttrTypes(self): return self.BaseAttrTypes # »ù´¡ÊôÐÔÀàÐÍÁбí def GetBaseAttrValues(self): return self.BaseAttrValues # »ù´¡ÊôÐÔÖµÁбí def GetHelpBattleSkills(self): return self.HelpBattleSkills # ÖúÕ½¼¼ÄÜIDÁбí def GetEquipPlaceColorList(self): return self.EquipPlaceColorList # ´©´÷×°±¸ÑÕÉ«ÏÞÖÆ # ÉñÊÞÇ¿»¯±í class IPY_DogzEquipPlus(): def __init__(self): self.EquipPlace = 0 self.PlusLV = 0 self.PlusAttrTypes = [] self.PlusAttrValues = [] self.PlusLVUPTotalExp = 0 return def GetEquipPlace(self): return self.EquipPlace # ×°±¸Î» def GetPlusLV(self): return self.PlusLV # Ç¿»¯µÈ¼¶ def GetPlusAttrTypes(self): return self.PlusAttrTypes # Ç¿»¯ÊôÐÔÀàÐÍÁбí def GetPlusAttrValues(self): return self.PlusAttrValues # Ç¿»¯ÊôÐÔÖµÁбí def GetPlusLVUPTotalExp(self): return self.PlusLVUPTotalExp # Éý¼¶ËùÐèÀÛ¼ÆÊìÁ·¶È×ÜÖµ # ·ûÓ¡±í class IPY_Rune(): def __init__(self): self.ID = 0 self.AttrType = [] return def GetID(self): return self.ID # ±àºÅID def GetAttrType(self): return self.AttrType # È«ÉíÇ¿»¯¼¤»îÊôÐÔÀàÐÍ # Ï´Á·±í class IPY_EquipWash(): def __init__(self): self.WashType = 0 self.WashLV = 0 self.AttrType1 = 0 self.AttrMax1 = 0 self.AttrRandDict1 = {} self.AttrCostGoldMin1 = 0 self.AttrCostGoldMax1 = 0 self.AttrType2 = 0 self.AttrMax2 = 0 self.AttrRandDict2 = {} self.AttrCostGoldMin2 = 0 self.AttrCostGoldMax2 = 0 self.AttrType3 = 0 self.AttrMax3 = 0 self.AttrRandDict3 = {} self.AttrCostGoldMin3 = 0 self.AttrCostGoldMax3 = 0 self.CostItemID = 0 self.CostItemCount = 0 self.GoldWashCostList = [] return def GetWashType(self): return self.WashType # ×°±¸¹é×éÀàÐÍ def GetWashLV(self): return self.WashLV # Ï´Á·µÈ¼¶ def GetAttrType1(self): return self.AttrType1 # ÊôÐÔ1ÀàÐÍ def GetAttrMax1(self): return self.AttrMax1 # ÊôÐÔ1µ±Ç°µÈ¼¶Ï´Á·ÉÏÏÞ def GetAttrRandDict1(self): return self.AttrRandDict1 # ÊôÐÔ1Ëæ»ú·¶Î§ def GetAttrCostGoldMin1(self): return self.AttrCostGoldMin1 # ÊôÐÔ1ÏÉÓñÏ´Á·ÏÂÏÞÖµ def GetAttrCostGoldMax1(self): return self.AttrCostGoldMax1 # ÊôÐÔ1ÏÉÓñÏ´Á·ÉÏÏÞÖµ def GetAttrType2(self): return self.AttrType2 # ÊôÐÔ2ÀàÐÍ def GetAttrMax2(self): return self.AttrMax2 # ÊôÐÔ2µ±Ç°µÈ¼¶Ï´Á·ÉÏÏÞ def GetAttrRandDict2(self): return self.AttrRandDict2 # ÊôÐÔ2Ëæ»ú·¶Î§ def GetAttrCostGoldMin2(self): return self.AttrCostGoldMin2 # ÊôÐÔ2ÏÉÓñÏ´Á·ÏÂÏÞÖµ def GetAttrCostGoldMax2(self): return self.AttrCostGoldMax2 # ÊôÐÔ2ÏÉÓñÏ´Á·ÉÏÏÞÖµ def GetAttrType3(self): return self.AttrType3 # ÊôÐÔ3ÀàÐÍ def GetAttrMax3(self): return self.AttrMax3 # ÊôÐÔ3µ±Ç°µÈ¼¶Ï´Á·ÉÏÏÞ def GetAttrRandDict3(self): return self.AttrRandDict3 # ÊôÐÔ3Ëæ»ú·¶Î§ def GetAttrCostGoldMin3(self): return self.AttrCostGoldMin3 # ÊôÐÔ3ÏÉÓñÏ´Á·ÏÂÏÞÖµ def GetAttrCostGoldMax3(self): return self.AttrCostGoldMax3 # ÊôÐÔ3ÏÉÓñÏ´Á·ÉÏÏÞÖµ def GetCostItemID(self): return self.CostItemID # ¹Ì¶¨ÏûºÄÎïÆ·ID def GetCostItemCount(self): return self.CostItemCount # ¹Ì¶¨ÏûºÄÎïÆ·¸öÊý def GetGoldWashCostList(self): return self.GoldWashCostList # ÏÉÓñÏ´Á·ÌõÊý¶ÔÓ¦ÏûºÄ # Ï´Á·ÌØÊâÊôÐÔ±í class IPY_EquipWashSpec(): def __init__(self): self.WashTypeNeed = 0 self.WashLVNeed = 0 self.AddAttrType = [] self.AddAttrValue = [] return def GetWashTypeNeed(self): return self.WashTypeNeed # ËùÐè×°±¸¹é×éÀàÐÍ def GetWashLVNeed(self): return self.WashLVNeed # ËùÐèÏ´Á·µÈ¼¶ def GetAddAttrType(self): return self.AddAttrType # ¼¤»î¼Ó³ÉÊôÐÔÀàÐÍ def GetAddAttrValue(self): return self.AddAttrValue # ¼¤»î¼Ó³ÉÊôÐÔÖµ # ÊôÐÔ¹ûʵ±í class IPY_AttrFruit(): def __init__(self): self.ID = 0 self.FuncID = 0 self.MaxUseCnt = 0 self.RecycleMoney = 0 return def GetID(self): return self.ID # ÎïÆ·ID def GetFuncID(self): return self.FuncID # ËùÊô¹¦ÄÜID def GetMaxUseCnt(self): return self.MaxUseCnt # ×î´ó¿ÉʹÓÃÊýÁ¿ def GetRecycleMoney(self): return self.RecycleMoney # »ØÊÕ»õ±ÒÖµ # ÁéÊÞ±í class IPY_PetInfo(): def __init__(self): self.ID = 0 self.Quality = 0 self.UnlockSys = "" self.UnLockNeedItemID = 0 self.UnLockNeedItemCnt = 0 self.DecomposeExp = 0 self.InitRank = 0 self.MaxRank = 0 self.UseNeedRank = 0 self.SkillID = [] self.SkillUnLock = [] self.SkillUnLockSys = [] self.InitFightPower = 0 return def GetID(self): return self.ID # ÁéÊÞNPCID def GetQuality(self): return self.Quality # Æ·ÖÊ def GetUnlockSys(self): return self.UnlockSys # ½âËø¹ã²¥Ìáʾ def GetUnLockNeedItemID(self): return self.UnLockNeedItemID # ½âËøÁéÊÞÎïÆ·ID def GetUnLockNeedItemCnt(self): return self.UnLockNeedItemCnt # ½âËøËùÐèÎïÆ·ÊýÁ¿ def GetDecomposeExp(self): return self.DecomposeExp # ·Ö½âµ¥¸ö½âËøÎïÆ·¿É»ñµÃÉý½×¾­Ñé def GetInitRank(self): return self.InitRank # ÁéÊÞ³õʼ½×Êý def GetMaxRank(self): return self.MaxRank # ÁéÊÞ×î¸ß½×Êý def GetUseNeedRank(self): return self.UseNeedRank # ¶àÉٽ׿ÉÇл»Íâ¹Û def GetSkillID(self): return self.SkillID # ÁéÊÞ¼¼ÄÜID def GetSkillUnLock(self): return self.SkillUnLock # ÁéÊÞ¼¼ÄܽâËøÐèÒª½×Êý def GetSkillUnLockSys(self): return self.SkillUnLockSys # ÁéÊÞ¼¼ÄܽâËøÌáʾ def GetInitFightPower(self): return self.InitFightPower # ³õʼսÁ¦ # ×°±¸·Ö½âÊôÐÔ±í class IPY_EquipDecompose(): def __init__(self): self.LV = 0 self.UpNeedExp = 0 self.Attr = {} return def GetLV(self): return self.LV # µÈ¼¶ def GetUpNeedExp(self): return self.UpNeedExp # Éý¼¶ËùÐè¾­ÑéÊý def GetAttr(self): return self.Attr # ÊôÐÔ¼Ó³É # ÁéÊÞÉý½×ÏûºÄ±í class IPY_PetClassCost(): def __init__(self): self.PetID = 0 self.Class = 0 self.UpNeedExp = 0 self.AtkAdd = 0 return def GetPetID(self): return self.PetID # ÁéÊÞNPCID def GetClass(self): return self.Class # ÁéÊÞ½×Êý def GetUpNeedExp(self): return self.UpNeedExp # ÁéÊÞÉý½×ËùÐè¾­ÑéÊý def GetAtkAdd(self): return self.AtkAdd # ÿ½×¹¥»÷Á¦¼Ó³É # ÁéÊÞÎüÊÕ×°±¸±í class IPY_PetEatEquip(): def __init__(self): self.EquipColor = 0 self.EquipClass = 0 self.Exp = 0 self.FamilyStoreItemScore = 0 return def GetEquipColor(self): return self.EquipColor # ×°±¸Æ·ÖÊ def GetEquipClass(self): return self.EquipClass # ×°±¸½×Êý def GetExp(self): return self.Exp # »ñµÃÁéÊÞÉý¼¶¾­Ñé def GetFamilyStoreItemScore(self): return self.FamilyStoreItemScore # ÏÉÃ˱¦¿â»ý·Ö # ×øÆï±í class IPY_Horse(): def __init__(self): self.HorseID = 0 self.ItemID = 0 self.UnlockItemID = 0 self.UnlockItemCnt = 0 self.InitLV = 0 self.MaxLV = 0 self.UseNeedRank = 0 self.Quality = 0 self.InitFightPower = 0 self.UnlockSys = "" return def GetHorseID(self): return self.HorseID # ×øÆï±àºÅID def GetItemID(self): return self.ItemID # ×øÆïÎïÆ·ID def GetUnlockItemID(self): return self.UnlockItemID # ½âËø×øÆïÎïÆ·±àºÅ def GetUnlockItemCnt(self): return self.UnlockItemCnt # ½âËøËùÐèÎïÆ·ÊýÁ¿ def GetInitLV(self): return self.InitLV # ×øÆï³õʼµÈ¼¶ def GetMaxLV(self): return self.MaxLV # ×øÆï×î¸ßµÈ¼¶ def GetUseNeedRank(self): return self.UseNeedRank # ¶àÉٽ׿ÉÇл»Íâ¹Û def GetQuality(self): return self.Quality # ×øÆïÆ·ÖÊ def GetInitFightPower(self): return self.InitFightPower # ³õʼսÁ¦ def GetUnlockSys(self): return self.UnlockSys # ½âËø¹ã²¥Ìáʾ # ×øÆïÉý¼¶±í class IPY_HorseUp(): def __init__(self): self.HorseID = 0 self.LV = 0 self.NeedExp = 0 self.AttrType = [] self.AttrValue = [] self.SkillID = [] self.SysMark = "" return def GetHorseID(self): return self.HorseID # ×øÆï±àºÅID def GetLV(self): return self.LV # ×øÆïµÈ¼¶ def GetNeedExp(self): return self.NeedExp # Éý¼¶ËùÐè¾­Ñé def GetAttrType(self): return self.AttrType # ¼¤»î¼Ó³ÉÊôÐÔÀàÐÍ def GetAttrValue(self): return self.AttrValue # ¼¤»î¼Ó³ÉÊôÐÔÖµ def GetSkillID(self): return self.SkillID # ¿É»ñµÃµÄ¼¼ÄÜID def GetSysMark(self): return self.SysMark # ¹ã²¥Ìáʾ # Íæ¼ÒµÈ¼¶±í class IPY_PlayerLV(): def __init__(self): self.LV = 0 self.ExpPoint = 0 self.Exp = 0 self.TalentPoint = 0 self.ReExp = 0 self.ReMaxHP = 0 self.ReAtk = 0 self.ReDef = 0 self.ReHit = 0 self.ReMiss = 0 self.ReAtkSpeed = 0 self.ReSkillAtkRate = 0 self.ReDamagePer = 0 self.ReDamReduce = 0 self.ReIgnoreDefRate = 0 self.ReLuckyHitRate = 0 self.ReLuckyHit = 0 self.ReBleedDamage = 0 self.ReIceAtk = 0 self.ReIceDef = 0 self.RePetAtk = 0 self.RePetSkillAtkRate = 0 self.RePetDamPer = 0 self.ReFinalHurt = 0 self.ReFinalHurtReduce = 0 self.RePotionReply = 0 self.RePotionCD = 0 self.AttackEff = 0 self.ReFightPower = 0 return def GetLV(self): return self.LV # Íæ¼ÒµÈ¼¶ def GetExpPoint(self): return self.ExpPoint # Éý¼¶ËùÐè¾­Ñéµã,ÿ¸ö¾­Ñéµã´ú±íµÄ¾­ÑéÓÉÏîÄ¿¾ö¶¨ def GetExp(self): return self.Exp # ³ý¾­Ñéµã×ܾ­ÑéÍâÉý¼¶»¹ÐèµÄ¾­Ñé def GetTalentPoint(self): return self.TalentPoint # µÈ¼¶»ñµÃµÄÌ츳µã def GetReExp(self): return self.ReExp # µÈ¼¶¾­ÑéЧÂÊ(second) def GetReMaxHP(self): return self.ReMaxHP # ÉúÃü def GetReAtk(self): return self.ReAtk # ¹¥»÷ def GetReDef(self): return self.ReDef # ·ÀÓù def GetReHit(self): return self.ReHit # ÃüÖÐ def GetReMiss(self): return self.ReMiss # ÉÁ±Ü def GetReAtkSpeed(self): return self.ReAtkSpeed # ¹¥ËÙ def GetReSkillAtkRate(self): return self.ReSkillAtkRate # ¼¼ÄÜÉ˺¦±ÈÀý def GetReDamagePer(self): return self.ReDamagePer # Ôö¼ÓÉ˺¦ def GetReDamReduce(self): return self.ReDamReduce # ¼õÉÙÉ˺¦ def GetReIgnoreDefRate(self): return self.ReIgnoreDefRate # ÎÞÊÓ·ÀÓù±ÈÀý def GetReLuckyHitRate(self): return self.ReLuckyHitRate # »áÐÄÒ»»÷ÂÊ def GetReLuckyHit(self): return self.ReLuckyHit # »áÐÄÒ»»÷É˺¦ def GetReBleedDamage(self): return self.ReBleedDamage # Á÷ѪÉ˺¦Ôö¼Ó def GetReIceAtk(self): return self.ReIceAtk # ÕæÊµÉ˺¦ def GetReIceDef(self): return self.ReIceDef # ÕæÊµµÖÓù def GetRePetAtk(self): return self.RePetAtk # Áé³è¹¥»÷ def GetRePetSkillAtkRate(self): return self.RePetSkillAtkRate # Áé³è¼¼ÄÜ def GetRePetDamPer(self): return self.RePetDamPer # Áé³èÉ˺¦Ôö¼Ó def GetReFinalHurt(self): return self.ReFinalHurt # ¹Ì¶¨É˺¦Ôö¼Ó def GetReFinalHurtReduce(self): return self.ReFinalHurtReduce # ¹Ì¶¨É˺¦¼õÉÙ def GetRePotionReply(self): return self.RePotionReply # Ѫƿ»Ö¸´Á¿ def GetRePotionCD(self): return self.RePotionCD # ѪƿCD def GetAttackEff(self): return self.AttackEff # ¹Ò»úЧÂÊ def GetReFightPower(self): return self.ReFightPower # Õ½¶·Á¦ # GM²âÊÔÊôÐÔ±í class IPY_GMAttr(): def __init__(self): self.GMAttrID = 0 self.IsValid = 0 self.GMAccID = "" self.GMMaxLV = 0 self.AttrLV = 0 self.AttrPer = 0.0 self.AttrSpecDict = {} self.AttrExDict = {} return def GetGMAttrID(self): return self.GMAttrID # Êý¾ÝID def GetIsValid(self): return self.IsValid # ÊÇ·ñÓÐЧµÄ def GetGMAccID(self): return self.GMAccID # GMÍæ¼ÒÕ˺Šdef GetGMMaxLV(self): return self.GMMaxLV # ÓÐЧµÄ×î´óµÈ¼¶ def GetAttrLV(self): return self.AttrLV # ¶ÔÓ¦µÈ¼¶±íÖеÄÊôÐÔ def GetAttrPer(self): return self.AttrPer # ¶ÔÓ¦µÈ¼¶±íÖеıÈÀý def GetAttrSpecDict(self): return self.AttrSpecDict # ÌØÊâÊôÐÔÖµ×Öµä {attrKey:value, ...} def GetAttrExDict(self): return self.AttrExDict # ÌØÊâÊôÐÔÖµ×Öµä {attrKey:value, ...} # ³É³¤Ð͹ÖÎï²ÎÊý¹«Ê½±í class IPY_NPCStrengthen(): def __init__(self): self.NPCID = 0 self.IsStrengthenByPlayerCount = 0 self.LVStrengthenType = 0 self.HitTime = 0 self.DefCoefficient = 0 self.AtkCoefficient = 0 self.AdjustCoefficient = 0 self.AtkInterval = 0 self.HitRate = 0 self.MissRate = 0 self.MonterNum = 0 self.IceAtkCoefficient = 0 self.IceDefCoefficient = 0 self.MaxEnduranceTime = 0 self.FightPowerCoefficient = 0 return def GetNPCID(self): return self.NPCID # NPCID def GetIsStrengthenByPlayerCount(self): return self.IsStrengthenByPlayerCount # ÊÇ·ñ¸ù¾ÝÈËÊý³É³¤ def GetLVStrengthenType(self): return self.LVStrengthenType # µÈ¼¶³É³¤ÀàÐÍ, 0-²»°´µÈ¼¶³É³¤£»1-°´Íæ¼Òƽ¾ùµÈ¼¶£»2-°´Íæ¼Ò×î´óµÈ¼¶£»3-°´ÊÀ½çµÈ¼¶£» def GetHitTime(self): return self.HitTime # ÊÜ»÷´ÎÊý def GetDefCoefficient(self): return self.DefCoefficient # ÈËÎï·ÀÓùϵÊý def GetAtkCoefficient(self): return self.AtkCoefficient # ÈËÎï¹¥»÷ϵÊý def GetAdjustCoefficient(self): return self.AdjustCoefficient # µ÷ÕûϵÊý±ÈÀý def GetAtkInterval(self): return self.AtkInterval # ¹ÖÎï¹¥»÷¼ä¸ô def GetHitRate(self): return self.HitRate # ¶ÔÈËÎïµÄÃüÖÐÂÊ def GetMissRate(self): return self.MissRate # ¶ÔÈËÎïµÄÉÁ±ÜÂÊ def GetMonterNum(self): return self.MonterNum # ¹ÖÎïÊý def GetIceAtkCoefficient(self): return self.IceAtkCoefficient # ÔªËØ¹¥»÷±ÈÀý def GetIceDefCoefficient(self): return self.IceDefCoefficient # ÔªËØ¿¹ÐÔ±ÈÀý def GetMaxEnduranceTime(self): return self.MaxEnduranceTime # Íæ¼Ò×î´ó³ÐÊÜÉ˺¦Ê±¼ä def GetFightPowerCoefficient(self): return self.FightPowerCoefficient # Ñ¹ÖÆÕ½¶·Á¦ÏµÊý # ×°±¸Ì××°ÊôÐÔ±í class IPY_EquipSuitAttr(): def __init__(self): self.GroupType = 0 self.SuiteType = 0 self.SuiteLV = 0 self.Job = 0 self.Count1 = 0 self.AttrType1 = [] self.AttrValue1 = [] self.Count2 = 0 self.AttrType2 = [] self.AttrValue2 = [] self.Count3 = 0 self.AttrType3 = [] self.AttrValue3 = [] return def GetGroupType(self): return self.GroupType # Ì××°×éºÏÀàÐÍ def GetSuiteType(self): return self.SuiteType # Ì××°ÀàÐÍ def GetSuiteLV(self): return self.SuiteLV # Ì××°µÈ¼¶ def GetJob(self): return self.Job # Ö°Òµ def GetCount1(self): return self.Count1 # ½×¶Î1ËùÐèÊýÁ¿ def GetAttrType1(self): return self.AttrType1 # ½×¶Î1ÊôÐÔÀàÐÍ def GetAttrValue1(self): return self.AttrValue1 # ½×¶Î1ÊôÐÔÖµ def GetCount2(self): return self.Count2 # ½×¶Î2ËùÐèÊýÁ¿ def GetAttrType2(self): return self.AttrType2 # ½×¶Î2ÊôÐÔÀàÐÍ def GetAttrValue2(self): return self.AttrValue2 # ½×¶Î2ÊôÐÔÖµ def GetCount3(self): return self.Count3 # ½×¶Î2ËùÐèÊýÁ¿ def GetAttrType3(self): return self.AttrType3 # ½×¶Î2ÊôÐÔÀàÐÍ def GetAttrValue3(self): return self.AttrValue3 # ½×¶Î2ÊôÐÔÖµ # Ì××°ºÏ³É±í class IPY_EquipSuitCompound(): def __init__(self): self.SuiteType = 0 self.EquipPlace = 0 self.SuiteLV = 0 self.Job = 0 self.CostItemID = [] self.CostItemCnt = [] return def GetSuiteType(self): return self.SuiteType # Ì××°ÀàÐÍ def GetEquipPlace(self): return self.EquipPlace # ×°±¸²¿Î» def GetSuiteLV(self): return self.SuiteLV # Ì××°µÈ¼¶ def GetJob(self): return self.Job # Ö°Òµ def GetCostItemID(self): return self.CostItemID # ²ÄÁÏID def GetCostItemCnt(self): return self.CostItemCnt # ²ÄÁÏÊýÁ¿ # ÓðÒí¾«Á¶ÊôÐÔ±í class IPY_WingRefineAttr(): def __init__(self): self.WingClassLV = 0 self.AttrInfo = {} self.ItemColorInfo = {} self.MaxRefineExp = 0 return def GetWingClassLV(self): return self.WingClassLV # ³á°ò½×¼¶ def GetAttrInfo(self): return self.AttrInfo # ¾«Á¶ÊôÐÔÐÅÏ¢ def GetItemColorInfo(self): return self.ItemColorInfo # ¾«Á¶¾­Ñé¶ÔÓ¦ÑÕÉ«ÐÅÏ¢ def GetMaxRefineExp(self): return self.MaxRefineExp # ±¾½××î´ó¾«Á¶Öµ # ÓðÒí¾«Á¶¾­Ñé±í class IPY_WingRefineExp(): def __init__(self): self.ItemID = 0 self.RandExpMin = 0 self.RandExpMax = 0 self.ExpMaterial = {} return def GetItemID(self): return self.ItemID # ¾«Á¶ÎïÆ·ID def GetRandExpMin(self): return self.RandExpMin # ×îÐ¡Ëæ»ú¾«Á¶Öµ def GetRandExpMax(self): return self.RandExpMax # ×î´óËæ»ú¾«Á¶Öµ def GetExpMaterial(self): return self.ExpMaterial # ³á°ò´úÊý¶ÔÓ¦¾«Á¶Öµ # ÏÉÃ˿Ƽ¼±í class IPY_FamilyTech(): def __init__(self): self.TechID = 0 self.AttrType = 0 self.AttrValue = 0 self.Contribution = 0 self.PowerEx = 0 return def GetTechID(self): return self.TechID # ¿Æ¼¼ID*1000+µÈ¼¶ def GetAttrType(self): return self.AttrType # ÊôÐÔÀàÐÍ def GetAttrValue(self): return self.AttrValue # ÊôÐÔÖµ def GetContribution(self): return self.Contribution # ÐèÒª¹±Ï×¶È def GetPowerEx(self): return self.PowerEx # ¶îÍâÕ½Á¦ # Õ½¶·Á¦²ÎÊýµÈ¼¶ÏµÊý±í class IPY_FightPowerParam(): def __init__(self): self.LV = 0 self.CftHit = 0 self.CftMiss = 0 self.CftDamagePer = 0 self.CftDamReduce = 0 self.CftIgnoreDefRate = 0 self.CftDamChanceDef = 0 self.CftBleedDamage = 0 self.CftFaintRate = 0 self.CftSuperHitReduce = 0 self.CftLuckyHitRateReduce = 0 self.CftSkillAtkRate = 0 self.CftSkillAtkRateReduce = 0 self.CftDamagePerPVP = 0 self.CftDamagePerPVPReduce = 0 self.CftDamBackPer = 0 self.CftIgnoreDefRateReduce = 0 self.CftFaintDefRate = 0 self.CftAtkSpeed = 0 self.CftLuckyHit = 0 return def GetLV(self): return self.LV # µÈ¼¶ def GetCftHit(self): return self.CftHit # ÃüÖÐϵÊý def GetCftMiss(self): return self.CftMiss # ÉÁ±ÜϵÊý def GetCftDamagePer(self): return self.CftDamagePer # Ôö¼ÓÉ˺¦ÏµÊý def GetCftDamReduce(self): return self.CftDamReduce # ¼õÉÙÉ˺¦ÏµÊý def GetCftIgnoreDefRate(self): return self.CftIgnoreDefRate # ÎÞÊÓ·ÀÓùϵÊý def GetCftDamChanceDef(self): return self.CftDamChanceDef # µÖÓùϵÊý def GetCftBleedDamage(self): return self.CftBleedDamage # Á÷ѪÉ˺¦ÏµÊý def GetCftFaintRate(self): return self.CftFaintRate # »÷ÔÎϵÊý def GetCftSuperHitReduce(self): return self.CftSuperHitReduce # ±©»÷¿¹ÐÔϵÊý def GetCftLuckyHitRateReduce(self): return self.CftLuckyHitRateReduce # »áÐÄÒ»»÷¿¹ÐÔϵÊý def GetCftSkillAtkRate(self): return self.CftSkillAtkRate # ¼¼ÄÜÉ˺¦ÏµÊý def GetCftSkillAtkRateReduce(self): return self.CftSkillAtkRateReduce # ¼¼ÄܼõÉËϵÊý def GetCftDamagePerPVP(self): return self.CftDamagePerPVP # PVPÉ˺¦Ôö¼¡ÏµÊý def GetCftDamagePerPVPReduce(self): return self.CftDamagePerPVPReduce # PVPÉ˺¦¼õÉÙϵÊý def GetCftDamBackPer(self): return self.CftDamBackPer # É˺¦·´ÉäϵÊý def GetCftIgnoreDefRateReduce(self): return self.CftIgnoreDefRateReduce # ÎÞÊÓ·ÀÓù¿¹ÐÔϵÊý def GetCftFaintDefRate(self): return self.CftFaintDefRate # ¿ØÖƵֿ¹ÏµÊý def GetCftAtkSpeed(self): return self.CftAtkSpeed # ¹¥ËÙϵÊý def GetCftLuckyHit(self): return self.CftLuckyHit # »áÐÄÒ»»÷ϵÊý # NPCµôÂä±í class IPY_NPCDropItem(): def __init__(self): self.NPCID = 0 self.MaxWorldLV = 0 self.MaxDropLV = 0 self.CanDropRatePlus = 0 self.IsDropJobSelf = 0 self.PieRateDrop = [] self.PieRateDoCnt = 0 self.IndepRateDrop = {} self.IndepRateDoCnt = 0 self.IndepRateMaxDropCount = {} self.EquipStarInfo = {} self.KillCountDropEquipEx = [] self.KillCountDropEquipEx2 = [] self.ItemIDDropRate = {} self.ItemIDMaxDropCount = {} self.ItemKeyDropRate = {} self.ItemKeyDropRateJob = {} self.ItemKeyMaxDropCount = {} self.DropMoneyDoCnt = 0 self.DropMoneyRate = 0 self.DropMoneyMin = 0 self.DropMoneyMax = 0 self.KillCountDrop = [] self.PriItemIDDrop = [] return def GetNPCID(self): return self.NPCID # NPCID def GetMaxWorldLV(self): return self.MaxWorldLV # ×î´óÊÀ½çµÈ¼¶£¬0Ϊ²»ÏÞÖÆ£¬²»ÊÜ×î´óµôÂäµÈ¼¶Ó°Ïì def GetMaxDropLV(self): return self.MaxDropLV # ×î´ó¿ÉµôÂäµÄÍæ¼ÒµÈ¼¶, ²»Ó°ÏìÊÀ½çµÈ¼¶ def GetCanDropRatePlus(self): return self.CanDropRatePlus # ¶îÍâÌáÉýµôÂʵÄÊÇ·ñÓÐЧ def GetIsDropJobSelf(self): return self.IsDropJobSelf # ÊÇ·ñÖ»µôÂä±¾Ö°Òµ def GetPieRateDrop(self): return self.PieRateDrop # ±ýͼ¸ÅÂʵôÂäÐÅÏ¢ [(¸ÅÂÊ,0),(¸ÅÂÊ,(½×,ÑÕÉ«,²¿Î»¼¯ºÏkey)),...] def GetPieRateDoCnt(self): return self.PieRateDoCnt # ±ýͼ¸ÅÂÊÖ´ÐдÎÊý def GetIndepRateDrop(self): return self.IndepRateDrop # ¶ÀÁ¢¸ÅÂʵôÂäÐÅÏ¢ {(½×,ÑÕÉ«,²¿Î»¼¯ºÏkey):¸ÅÂÊ,...} def GetIndepRateDoCnt(self): return self.IndepRateDoCnt # ¶ÀÁ¢¸ÅÂÊÖ´ÐдÎÊý def GetIndepRateMaxDropCount(self): return self.IndepRateMaxDropCount # ¶ÀÁ¢¸ÅÂÊ×°±¸ÑÕÉ«×î´óµôÂäÎïÆ·Êý {ÑÕÉ«:ÉÏÏÞÊýÁ¿,...} def GetEquipStarInfo(self): return self.EquipStarInfo # ×°±¸ÑÕÉ«¶ÔÓ¦ÐǼ¶²ú³ö¹æÔò {ÑÕÉ«:[(¸ÅÂÊ, ÐǼ¶),...], ...} def GetKillCountDropEquipEx(self): return self.KillCountDropEquipEx # µÚx´Î»÷ɱ¸½¼Ó±Øµô×°±¸ [´ÎÊý,½×,ÑÕÉ«,[(¸ÅÂÊ,ÐǼ¶),...],²¿Î»¼¯ºÏkey] def GetKillCountDropEquipEx2(self): return self.KillCountDropEquipEx2 # ǰx´Î»÷ɱ¸½¼Ó±Øµô×°±¸ [´ÎÊý,½×,ÑÕÉ«,[(¸ÅÂÊ,ÐǼ¶),...],²¿Î»¼¯ºÏkey] def GetItemIDDropRate(self): return self.ItemIDDropRate # Ö¸¶¨ÎïÆ·IDµôÂÊÐÅÏ¢ {ÎïÆ·ID:¸ÅÂÊ, ...} def GetItemIDMaxDropCount(self): return self.ItemIDMaxDropCount # Ö¸¶¨ÎïÆ·ID×î´óµôÂä¸öÊý,ûÅäĬÈÏ1´Î {ÎïÆ·ID:Ëæ»ú´ÎÊý,...} def GetItemKeyDropRate(self): return self.ItemKeyDropRate # ÎïÆ·ID¼¯ºÏKey¸ÅÂÊ, Ëæ»úÒ»¸ö, ÓÅÏȼ¶µÍ {ÎïÆ·ID¼¯ºÏkey:¸ÅÂÊ, ...} def GetItemKeyDropRateJob(self): return self.ItemKeyDropRateJob # ÎïÆ·ID¼¯ºÏKey¸ÅÂÊ, ×ÔÉíÖ°Òµ, ÓÅÏȼ¶¸ß {ÎïÆ·ID¼¯ºÏkey:¸ÅÂÊ, ...} def GetItemKeyMaxDropCount(self): return self.ItemKeyMaxDropCount # ÎïÆ·ID¼¯ºÏKeyËæ»ú´ÎÊý,ûÅäĬÈÏ1´Î {ÎïÆ·ID¼¯ºÏkey:Ëæ»ú´ÎÊý,...} def GetDropMoneyDoCnt(self): return self.DropMoneyDoCnt # µôÂä½ð±ÒÖ´ÐдÎÊý def GetDropMoneyRate(self): return self.DropMoneyRate # µôÂä½ð±Ò¸ÅÂÊ def GetDropMoneyMin(self): return self.DropMoneyMin # µôÂä½ð±Ò×îСֵ def GetDropMoneyMax(self): return self.DropMoneyMax # µôÂä½ð±Ò×î´óÖµ def GetKillCountDrop(self): return self.KillCountDrop # »÷ɱ´ÎÊý±Øµô,·ÀÖ¹°æ±¾±ä¸üÖØ¸´µô,Ö»Ö§³ÖÒ»´Î»ú»á [»÷ɱ´ÎÊý,ÊÇ·ñÖ±½Ó·ÅÈë±³°ü,[ÎïÆ·ID,...]] def GetPriItemIDDrop(self): return self.PriItemIDDrop # ËùÓйéÊôÕß˽ÓеôÂäÎïÆ·IDÁбí,ÿÈËÒ»·Ý,ĬÈϰó¶¨,ûÓÐÖ°ÒµÇø·Ö[ÎïÆ·ID, ...] # ·ûÓ¡Ëþ±í class IPY_RuneTower(): def __init__(self): self.ID = 0 self.RunePoint = 0 self.Ysog = 0 self.NPCID = 0 self.IsNotify = 0 self.FixEndAward = [] self.GoodDrop = {} self.SweepRunePoint = 0 self.SweepYsog = 0 self.SweepGoodDrop = {} return def GetID(self): return self.ID # Ëþ±àºÅ def GetRunePoint(self): return self.RunePoint # ¹ý¹Ø¸ø·ûÓ¡¾«»ª def GetYsog(self): return self.Ysog # ¹ý¹Ø¸øÄ§¾« def GetNPCID(self): return self.NPCID # npcid def GetIsNotify(self): return self.IsNotify # ÊÇ·ñ¹ã²¥ def GetFixEndAward(self): return self.FixEndAward # ¹Ì¶¨½áËã½±Àø def GetGoodDrop(self): return self.GoodDrop # ÕäÏ¡·ûӡͨ¹ØµôÂä¸ÅÂÊ def GetSweepRunePoint(self): return self.SweepRunePoint # ɨµ´·ûÓ¡¾«»ª def GetSweepYsog(self): return self.SweepYsog # ɨµ´Ä§¾« def GetSweepGoodDrop(self): return self.SweepGoodDrop # ɨµ´ÕäÏ¡·ûÓ¡ # ¸±±¾×ܱí class IPY_FBFunc(): def __init__(self): self.DataMapID = 0 self.DayTimes = 0 self.DayResetType = 0 self.WeekTimes = 0 self.WeekResetType = 0 self.RewardRate = [] self.BuyTimesVIPPriID = 0 self.ExtraTimesVIPPriID = 0 self.ExtraTimesMWPriID = 0 self.GuardPick = 0 self.OfflineTime = 0 self.HelpPoint = 0 return def GetDataMapID(self): return self.DataMapID # Êý¾ÝµØÍ¼ID def GetDayTimes(self): return self.DayTimes # ÿÈÕ¿ÉÌôÕ½´ÎÊý, 0Ϊ²»ÏÞÖÆ def GetDayResetType(self): return self.DayResetType # ÿÈÕ´ÎÊýÖØÖÃÀàÐÍ; 0-²»ÖØÖÃ,1-0µã,2-5µã def GetWeekTimes(self): return self.WeekTimes # ÿÖÜ¿ÉÌôÕ½´ÎÊý, 0Ϊ²»ÏÞÖÆ def GetWeekResetType(self): return self.WeekResetType # ÿÖÜ´ÎÊýÖØÖÃÀàÐÍ; 0-²»ÖØÖÃ,1-0µã,2-5µã def GetRewardRate(self): return self.RewardRate # ÆÀ¼¶½±Àø±ÈÀý def GetBuyTimesVIPPriID(self): return self.BuyTimesVIPPriID # ¹ºÂò´ÎÊýVIPȨÏÞID def GetExtraTimesVIPPriID(self): return self.ExtraTimesVIPPriID # ¶îÍâ´ÎÊýVIPȨÏÞID def GetExtraTimesMWPriID(self): return self.ExtraTimesMWPriID # ¶îÍâ´ÎÊý·¨±¦È¨ÏÞID def GetGuardPick(self): return self.GuardPick # ¸ÃµØÍ¼ÊØ»¤ÊÇ·ñÄÜʰȡ def GetOfflineTime(self): return self.OfflineTime # ÀëÏß¶à¾ÃÍ˳ö¸±±¾(Ãë) def GetHelpPoint(self): return self.HelpPoint # ÖúÕ½»ý·Ö(0´ú±í²»¿ÉÖúÕ½) # ¸±±¾¹¦ÄÜÏß·±í class IPY_FBLine(): def __init__(self): self.DataMapID = 0 self.LineID = 0 self.MapID = 0 self.LVLimitMin = 0 self.LVLimitMax = 0 self.JobRankLimit = 0 self.TicketID = 0 self.TicketCostCnt = [] self.TicketPrice = 0 self.SweepLVLimit = 0 self.SweepItemID = 0 self.SweepCostCnt = 0 self.EnterPosInfo = 0 self.StepTime = 0 self.RefreshNPC = 0 self.GradeInfo = 0 self.RewardInfo = 0 return def GetDataMapID(self): return self.DataMapID # Êý¾ÝµØÍ¼ID def GetLineID(self): return self.LineID # ¹¦ÄÜÏß·ID def GetMapID(self): return self.MapID # ³¡¾°µØÍ¼ID def GetLVLimitMin(self): return self.LVLimitMin # ×îµÍµÈ¼¶ÏÞÖÆ, 0Ϊ²»ÏÞÖÆ def GetLVLimitMax(self): return self.LVLimitMax # ×î¸ßµÈ¼¶ÏÞÖÆ, 0Ϊ²»ÏÞÖÆ def GetJobRankLimit(self): return self.JobRankLimit # ËùÐèÖ°Òµ½× def GetTicketID(self): return self.TicketID # ÃÅÆ±ID def GetTicketCostCnt(self): return self.TicketCostCnt # ÃÅÆ±ÏûºÄÊýÐÅÏ¢ def GetTicketPrice(self): return self.TicketPrice # ÃÅÆ±µ¥¼Û(²»ÄÜÓÃÇ®µÖµÄÅä0) def GetSweepLVLimit(self): return self.SweepLVLimit # ɨµ´µÈ¼¶ÏÞÖÆ, 0Ϊ²»ÏÞÖÆ def GetSweepItemID(self): return self.SweepItemID # ɨµ´ËùÐèµÀ¾ßID def GetSweepCostCnt(self): return self.SweepCostCnt # ɨµ´ËùÐèµÀ¾ß¸öÊý def GetEnterPosInfo(self): return self.EnterPosInfo # ½øÈë×ø±êÐÅÏ¢ def GetStepTime(self): return self.StepTime # ½×¶Îʱ¼ä def GetRefreshNPC(self): return self.RefreshNPC # ±êÊÔµãË¢¹ÖÅäÖà def GetGradeInfo(self): return self.GradeInfo # ÆÀ¼¶¹æÔò def GetRewardInfo(self): return self.RewardInfo # ½±ÀøÐÅÏ¢ # ¸±±¾Ë¢¹Ö±êʶµã±í class IPY_NPCCustomRefresh(): def __init__(self): self.ID = 0 self.RefreshMarkInfo = [] self.RefreshNPCID = 0 self.RandNPCIDList = [] self.NPCIDCountList = [] self.MaxCount = 0 self.TotalMaxCount = 0 self.IsLineOneOnly = 0 self.RefreshTick = 0 self.IsRepeat = 0 return def GetID(self): return self.ID # Ë¢¹Ö¹æÔòID def GetRefreshMarkInfo(self): return self.RefreshMarkInfo # ±êÊÔµã, µ±ÅäÖöà¸öÊ±ÎªËæ»ú±êÊÔµã, ²»Öظ´ def GetRefreshNPCID(self): return self.RefreshNPCID # Ö¸¶¨NPCID def GetRandNPCIDList(self): return self.RandNPCIDList # µ¥´ÎËæ»úË¢¹ÖNPCID def GetNPCIDCountList(self): return self.NPCIDCountList # µ¥´ÎÖ¸¶¨Ë¢¹ÖNPC def GetMaxCount(self): return self.MaxCount # µ¥¸öµã×î´ó´æÔÚ¹ÖÎïÊý def GetTotalMaxCount(self): return self.TotalMaxCount # Ïàͬ±êÊÔµã×ÜË¢¹ÖÎïÊý def GetIsLineOneOnly(self): return self.IsLineOneOnly # ÊÇ·ñ½öÔÚ1ÏßË¢¹Ö def GetRefreshTick(self): return self.RefreshTick # Ë¢¹Ö¼ä¸ôÃë def GetIsRepeat(self): return self.IsRepeat # ÊÇ·ñÑ­»·Ë¢¹Ö # ÈÕ³£»î¶¯±í class IPY_DailyAction(): def __init__(self): self.DailyID = 0 self.DayTimes = 0 self.DayResetType = 0 self.WeekTimes = 0 self.WeekResetType = 0 return def GetDailyID(self): return self.DailyID # »î¶¯ID def GetDayTimes(self): return self.DayTimes # ÿÈÕ´ÎÊý, 0Ϊ²»ÏÞÖÆ def GetDayResetType(self): return self.DayResetType # ÿÈÕ´ÎÊýÖØÖÃÀàÐÍ; 0-²»ÖØÖÃ,1-0µã,2-5µã def GetWeekTimes(self): return self.WeekTimes # ÿÖÜ´ÎÊý, 0Ϊ²»ÏÞÖÆ def GetWeekResetType(self): return self.WeekResetType # ÿÖÜ´ÎÊýÖØÖÃÀàÐÍ; 0-²»ÖØÖÃ,1-0µã,2-5µã # ×°±¸ÆÀ·ÖÊôÐÔϵÊý±í class IPY_EquipGSParam(): def __init__(self): self.ClassLV = 0 self.EquipColor = 0 self.EquipQualityLV = 0 self.AtkPerC = 0 self.DamagePerC = 0 self.SuperHitRateC = 0 self.SuperHitPerC = 0 self.DamReducePerC = 0 self.MaxHPPerC = 0 self.DefPerC = 0 self.LuckyHitRateC = 0 self.PetDamPerC = 0 self.PerLVAtkC = 0 self.MissRateC = 0 self.HitRateC = 0 self.DamBackPerC = 0 self.PerLVMaxHPC = 0 self.DropEquipPerC = 0 self.DropMoneyPerC = 0 self.IgnoreDefRateReduceC = 0 self.DamChanceDefC = 0 self.SuperHitReduceC = 0 self.SkillAtkRateC = 0 self.SpeedPerC = 0 self.AtkSpeedC = 0 return def GetClassLV(self): return self.ClassLV # ×°±¸½×¼¶ def GetEquipColor(self): return self.EquipColor # ×°±¸ÑÕÉ« def GetEquipQualityLV(self): return self.EquipQualityLV # ×°±¸ÐǼ¶ def GetAtkPerC(self): return self.AtkPerC # ¹¥»÷°Ù·Ö±ÈϵÊý def GetDamagePerC(self): return self.DamagePerC # Ôö¼ÓÉ˺¦ÏµÊý def GetSuperHitRateC(self): return self.SuperHitRateC # ±©»÷ÂÊϵÊý def GetSuperHitPerC(self): return self.SuperHitPerC # ±©»÷Öµ°Ù·Ö±ÈϵÊý def GetDamReducePerC(self): return self.DamReducePerC # ¼õÉÙÉ˺¦ÏµÊý def GetMaxHPPerC(self): return self.MaxHPPerC # ÉúÃüÉÏÏÞ°Ù·Ö±ÈϵÊý def GetDefPerC(self): return self.DefPerC # ·ÀÓùÁ¦°Ù·Ö±ÈϵÊý def GetLuckyHitRateC(self): return self.LuckyHitRateC # »áÐÄÒ»»÷ÂÊϵÊý def GetPetDamPerC(self): return self.PetDamPerC # Áé³èÉ˺¦Ôö¼Ó°Ù·Ö±ÈϵÊý def GetPerLVAtkC(self): return self.PerLVAtkC # ÿ¼¶Ôö¼Ó¹¥»÷Á¦ÏµÊý def GetMissRateC(self): return self.MissRateC # ÉÁ±ÜÖµ°Ù·Ö±ÈϵÊý def GetHitRateC(self): return self.HitRateC # ÃüÖÐÁ¦°Ù·Ö±ÈϵÊý def GetDamBackPerC(self): return self.DamBackPerC # É˺¦·´Éä°Ù·Ö±ÈϵÊý def GetPerLVMaxHPC(self): return self.PerLVMaxHPC # ÿ¼¶Ôö¼ÓÉúÃüֵϵÊý def GetDropEquipPerC(self): return self.DropEquipPerC # Ôö¼Ó×°±¸µôÂ伸ÂÊϵÊý def GetDropMoneyPerC(self): return self.DropMoneyPerC # Ôö¼ÓµôÂä½ð±ÒÁ¿°Ù·Ö±ÈϵÊý def GetIgnoreDefRateReduceC(self): return self.IgnoreDefRateReduceC # ÎÞÊÓ·ÀÓù¿¹ÐÔ°Ù·Ö±ÈϵÊý def GetDamChanceDefC(self): return self.DamChanceDefC # µÖÓù°Ù·Ö±ÈϵÊý def GetSuperHitReduceC(self): return self.SuperHitReduceC # ±©»÷¿¹ÐÔ°Ù·Ö±ÈϵÊý def GetSkillAtkRateC(self): return self.SkillAtkRateC # ¼¼ÄÜÉ˺¦°Ù·Ö±ÈϵÊý def GetSpeedPerC(self): return self.SpeedPerC # ÒÆ¶¯ËٶȰٷֱÈϵÊý def GetAtkSpeedC(self): return self.AtkSpeedC # ¹¥»÷ËÙ¶ÈϵÊý # ³É¾Í±í class IPY_Success(): def __init__(self): self.ID = 0 self.Type = 0 self.NeedCnt = 0 self.Condition = [] self.PreSuccess = [] self.AwardItem = {} self.Money = {} self.Exp = 0 self.AwardAttr = {} self.RedPacketID = 0 self.MagicWeaponID = 0 self.MagicWeaponExp = 0 return def GetID(self): return self.ID # ³É¾ÍID def GetType(self): return self.Type # ³É¾ÍÀàÐÍ def GetNeedCnt(self): return self.NeedCnt # ÐèÒªÊýÁ¿ def GetCondition(self): return self.Condition # ¸¨ÖúÌõ¼þ def GetPreSuccess(self): return self.PreSuccess # ÐèÒª´ï³ÉǰÖÃ³É¾Í def GetAwardItem(self): return self.AwardItem # ½±ÀøÎïÆ·Áбí def GetMoney(self): return self.Money # ½ðÇ® def GetExp(self): return self.Exp # ¾­Ñé def GetAwardAttr(self): return self.AwardAttr # ½±ÀøÊôÐÔ def GetRedPacketID(self): return self.RedPacketID # ºì°üID def GetMagicWeaponID(self): return self.MagicWeaponID # ·¨±¦ID def GetMagicWeaponExp(self): return self.MagicWeaponExp # ·¨±¦Éý¼¶¾­Ñé # ·¨±¦±í class IPY_Treasure(): def __init__(self): self.ID = 0 self.TreasureType = 0 self.PreTreasure = 0 self.SuccID = [] self.Potentials = [] self.NeedItem = {} return def GetID(self): return self.ID # ID def GetTreasureType(self): return self.TreasureType # ·¨±¦ÀàÐÍ def GetPreTreasure(self): return self.PreTreasure # ǰÖ÷¨±¦ def GetSuccID(self): return self.SuccID # ³É¾ÍID def GetPotentials(self): return self.Potentials # ¼¼ÄÜDZÁ¦Éý¼¶ def GetNeedItem(self): return self.NeedItem # ÐèÒªÏûºÄÎïÆ· # ·¨±¦Éý¼¶±í class IPY_TreasureUp(): def __init__(self): self.MWID = 0 self.LV = 0 self.NeedExp = 0 self.AddAttr = {} self.UnLockSkill = [] self.ActiveMWID = 0 self.ItemAward = [] return def GetMWID(self): return self.MWID # ·¨±¦ID def GetLV(self): return self.LV # ·¨±¦µÈ¼¶ def GetNeedExp(self): return self.NeedExp # ÐèÒª¾­Ñé def GetAddAttr(self): return self.AddAttr # ÊôÐÔ def GetUnLockSkill(self): return self.UnLockSkill # ½âËøµÄ¼¼ÄÜ def GetActiveMWID(self): return self.ActiveMWID # ¼¤»î·¨±¦ID def GetItemAward(self): return self.ItemAward # ÎïÆ·½±Àø[itemID,cnt,isbind] # ·¨±¦ÌØÈ¨±í class IPY_TreasurePrivilege(): def __init__(self): self.PrivilegeID = 0 self.EffectValue = 0 self.SingleValue = 0 self.MaxValue = 0 self.AddAttr = {} self.ItemAward = [] self.SuccessList = [] return def GetPrivilegeID(self): return self.PrivilegeID # ÌØÈ¨ID def GetEffectValue(self): return self.EffectValue # ÌØÊâЧ¹û def GetSingleValue(self): return self.SingleValue # ½ø¶È def GetMaxValue(self): return self.MaxValue # ×î´ó½ø¶È def GetAddAttr(self): return self.AddAttr # ÊôÐÔ def GetItemAward(self): return self.ItemAward # ÎïÆ·½±Àø def GetSuccessList(self): return self.SuccessList # ÐèÒªÍê³É³É¾Í # ·¨±¦¼¼ÄÜÉý¼¶±í class IPY_TreasureSkill(): def __init__(self): self.SkillUpType = 0 self.SkillLV = 0 self.NeedPoint = 0 self.InitRate = 0 self.NeedItemID = [] self.NeedItemCnt = [] self.MaxRate = [] return def GetSkillUpType(self): return self.SkillUpType # ¼¼ÄÜÉý¼¶ÀàÐÍ def GetSkillLV(self): return self.SkillLV # ¼¼Äܵȼ¶ def GetNeedPoint(self): return self.NeedPoint # Éýµ½µ±Ç°¼¶ÏûºÄÌìʯ¾«»ª def GetInitRate(self): return self.InitRate # ³õʼ¸ÅÂÊ def GetNeedItemID(self): return self.NeedItemID # Éýµ½µ±Ç°¼¶ÈܲÊʯID def GetNeedItemCnt(self): return self.NeedItemCnt # Éýµ½µ±Ç°¼¶ÈܲÊʯÊýÁ¿ def GetMaxRate(self): return self.MaxRate # Éýµ½µ±Ç°¼¶¸ÅÂÊ # Á¬ÐøÇ©µ½½±Àø±í class IPY_ContineSignAward(): def __init__(self): self.ContineDay = 0 self.ItemID = [] self.IsBind = 0 self.ItemNum = [] self.JobItemList = [] return def GetContineDay(self): return self.ContineDay # Á¬ÐøÇ©µ½ÌìÊý def GetItemID(self): return self.ItemID # ½±ÀøÎïÆ·ID def GetIsBind(self): return self.IsBind # ÎïÆ·ÊÇ·ñ°ó¶¨ def GetItemNum(self): return self.ItemNum # ÎïÆ·½±Àø×îСֵ def GetJobItemList(self): return self.JobItemList # Ö°ÒµÎïÆ·Áбí # Ç©µ½½±Àø±í class IPY_SignAward(): def __init__(self): self.RewardID = 0 self.ItemID = [] self.IsBind = 0 self.VipLv = 0 self.OrdinaryNum = [] self.VipMultiple = 0 return def GetRewardID(self): return self.RewardID # ½±ÀøID def GetItemID(self): return self.ItemID # ½±ÀøÎïÆ·ID def GetIsBind(self): return self.IsBind # ÎïÆ·ÊÇ·ñ°ó¶¨ def GetVipLv(self): return self.VipLv # vipµÈ¼¶ def GetOrdinaryNum(self): return self.OrdinaryNum # ½±ÀøÎïÆ·ÊýÁ¿ def GetVipMultiple(self): return self.VipMultiple # ½±Àø±¶ÂÊ # VIPÀñ°ü±í class IPY_VIPAward(): def __init__(self): self.VIPLV = 0 self.ItemID = {} self.Price = 0 self.OldPrice = 0 return def GetVIPLV(self): return self.VIPLV # VIPµÈ¼¶ def GetItemID(self): return self.ItemID # ½±ÀøÎïÆ·ÐÅÏ¢ def GetPrice(self): return self.Price # Àñ°üÏÖ¼Û def GetOldPrice(self): return self.OldPrice # Àñ°üÔ­¼Û # ¶¨ÖÆÎïÆ·±í class IPY_AppointItem(): def __init__(self): self.ID = 0 self.SuiteLV = 0 self.CancelUseLimit = 0 self.LegendAttrID = [] self.LegendAttrValue = [] self.OutOfPrintAttr = [] self.OutOfPrintAttrValue = [] return def GetID(self): return self.ID # ¶¨ÖÆÎïÆ·ID def GetSuiteLV(self): return self.SuiteLV # Ì××°µÈ¼¶ def GetCancelUseLimit(self): return self.CancelUseLimit # ´©´÷ÏÞÖÆ(³ýÖ°Òµ) def GetLegendAttrID(self): return self.LegendAttrID # ´«ÆæÊôÐÔID def GetLegendAttrValue(self): return self.LegendAttrValue # ´«ÆæÊôÐÔÖµ def GetOutOfPrintAttr(self): return self.OutOfPrintAttr # ¾ø°æÊôÐÔID def GetOutOfPrintAttrValue(self): return self.OutOfPrintAttrValue # ¾ø°æÊôÐÔ×î´óÖµ # VIPÌØÈ¨±í class IPY_VipPrivilege(): def __init__(self): self.VIPPriID = 0 self.VIP0 = 0 self.VIP1 = 0 self.VIP2 = 0 self.VIP3 = 0 self.VIP4 = 0 self.VIP5 = 0 self.VIP6 = 0 self.VIP7 = 0 self.VIP8 = 0 self.VIP9 = 0 self.VIP10 = 0 self.VIP11 = 0 self.VIP12 = 0 self.VIP13 = 0 self.VIP14 = 0 self.VIP15 = 0 return def GetVIPPriID(self): return self.VIPPriID # ÌØÈ¨ID def GetVIP0(self): return self.VIP0 # VIP0¶ÔÓ¦µÄÌØÈ¨Öµ def GetVIP1(self): return self.VIP1 # VIP1¶ÔÓ¦µÄÌØÈ¨Öµ def GetVIP2(self): return self.VIP2 # VIP2¶ÔÓ¦µÄÌØÈ¨Öµ def GetVIP3(self): return self.VIP3 # VIP3¶ÔÓ¦µÄÌØÈ¨Öµ def GetVIP4(self): return self.VIP4 # VIP4¶ÔÓ¦µÄÌØÈ¨Öµ def GetVIP5(self): return self.VIP5 # VIP5¶ÔÓ¦µÄÌØÈ¨Öµ def GetVIP6(self): return self.VIP6 # VIP6¶ÔÓ¦µÄÌØÈ¨Öµ def GetVIP7(self): return self.VIP7 # VIP7¶ÔÓ¦µÄÌØÈ¨Öµ def GetVIP8(self): return self.VIP8 # VIP8¶ÔÓ¦µÄÌØÈ¨Öµ def GetVIP9(self): return self.VIP9 # VIP9¶ÔÓ¦µÄÌØÈ¨Öµ def GetVIP10(self): return self.VIP10 # VIP10¶ÔÓ¦µÄÌØÈ¨Öµ def GetVIP11(self): return self.VIP11 # VIP11¶ÔÓ¦µÄÌØÈ¨Öµ def GetVIP12(self): return self.VIP12 # VIP12¶ÔÓ¦µÄÌØÈ¨Öµ def GetVIP13(self): return self.VIP13 # VIP13¶ÔÓ¦µÄÌØÈ¨Öµ def GetVIP14(self): return self.VIP14 # VIP14¶ÔÓ¦µÄÌØÈ¨Öµ def GetVIP15(self): return self.VIP15 # VIP15¶ÔÓ¦µÄÌØÈ¨Öµ # É̳DZí class IPY_Store(): def __init__(self): self.ID = 0 self.ShopType = 0 self.OperationActionShop = 0 self.ItemID = 0 self.ItemCnt = 0 self.IsBind = 0 self.ItemListEx = [] self.MainItemID = 0 self.JobItem = [] self.RefreshType = 0 self.LimitVIPLV = [] self.LimitLV = 0 self.LimitCnt = [] self.MoneyType = 0 self.MoneyNum = 0 self.MoneyOriginal = 0 self.LimitValue = 0 self.NotifyMark = "" return def GetID(self): return self.ID # ID def GetShopType(self): return self.ShopType # É̵êÀàÐÍ def GetOperationActionShop(self): return self.OperationActionShop # ÊÇ·ñÔËÓª»î¶¯É̵ê def GetItemID(self): return self.ItemID # ÎïÆ·ID def GetItemCnt(self): return self.ItemCnt # ÎïÆ·ÊýÁ¿ def GetIsBind(self): return self.IsBind # ÊÇ·ñ°ó¶¨ def GetItemListEx(self): return self.ItemListEx # À©Õ¹ÎïÆ·Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨],...] def GetMainItemID(self): return self.MainItemID # ±êµÄÎïÆ·ID def GetJobItem(self): return self.JobItem # Ö°ÒµÌæ»»ÎïÆ· def GetRefreshType(self): return self.RefreshType # Ë¢ÐÂÀàÐÍ 0-²»ÖØÖÃ,1-onWeek0µã,2-onWeek5µã,3-OnDay0µã,4-OnDay5µã def GetLimitVIPLV(self): return self.LimitVIPLV # VIPÏÞÖÆ def GetLimitLV(self): return self.LimitLV # µÈ¼¶ÏÞÖÆ def GetLimitCnt(self): return self.LimitCnt # ÏÞÖÆÊýÁ¿ def GetMoneyType(self): return self.MoneyType # ½ðÇ®ÀàÐÍ def GetMoneyNum(self): return self.MoneyNum # ½ðÇ®ÊýÁ¿ def GetMoneyOriginal(self): return self.MoneyOriginal # Ô­¼Û def GetLimitValue(self): return self.LimitValue # ÏÞÖÆÌõ¼þ def GetNotifyMark(self): return self.NotifyMark # ¹ã²¥Ìáʾ # ÏÞÊ±ÌØ»Ý±í class IPY_ActSpringSale(): def __init__(self): self.CfgID = 0 self.StartDate = "" self.EndDate = "" self.StartTimeList = [] self.EndTimeList = [] self.LVLimit = 0 self.IsDayReset = 0 self.ShopTypeList = [] return def GetCfgID(self): return self.CfgID # ÅäÖÃID def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ def GetStartTimeList(self): return self.StartTimeList # ¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î def GetEndTimeList(self): return self.EndTimeList # ½áÊøÊ±¼äÁбí, Ö§³Ö¶à¸öʱ¶Î def GetLVLimit(self): return self.LVLimit # ÏÞÖÆµÈ¼¶ def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà def GetShopTypeList(self): return self.ShopTypeList # É̵êÀàÐÍÁбí # ÈÕ³£ÈÎÎñ±í class IPY_DailyQuest(): def __init__(self): self.ID = 0 self.RelatedType = 0 self.RelatedID = 0 self.UnLockFuncID = 0 self.OnceActivityTime = 0 self.OnceActivity = 0 self.TotalActiveValue = 0 return def GetID(self): return self.ID # ID def GetRelatedType(self): return self.RelatedType # ¹ØÁªÀàÐÍ def GetRelatedID(self): return self.RelatedID # ¹ØÁªID def GetUnLockFuncID(self): return self.UnLockFuncID # ½âËø¹¦ÄÜID def GetOnceActivityTime(self): return self.OnceActivityTime # Ôö¼Ó»îÔ¾ËùÐè´ÎÊý def GetOnceActivity(self): return self.OnceActivity # µ¥´Î»îÔ¾Öµ def GetTotalActiveValue(self): return self.TotalActiveValue # ×Ü»îÔ¾ # ÈÕ³£»îÔ¾½±Àø±í class IPY_DailyLivenessReward(): def __init__(self): self.ID = 0 self.Liveness = 0 self.StageLV = [] self.ItemID = [] self.ItemCount = [] self.ItemBind = [] return def GetID(self): return self.ID # ID def GetLiveness(self): return self.Liveness # ËùÐè»îÔ¾¶È def GetStageLV(self): return self.StageLV # ½×¶ÎµÈ¼¶ def GetItemID(self): return self.ItemID # ÎïÆ·ID def GetItemCount(self): return self.ItemCount # ÎïÆ·ÊýÁ¿ def GetItemBind(self): return self.ItemBind # ÊÇ·ñ°ó¶¨ # ·¨±¦ÖýÁ¶±í class IPY_TreasureRefine(): def __init__(self): self.TreasureID = 0 self.TreasureLV = 0 self.TreasureAttr = {} self.Material = {} self.SuccessRate = 0 self.OpenSkill = 0 self.NeedAlchemyLV = 0 self.NeedAllTreasureLV = 0 return def GetTreasureID(self): return self.TreasureID # ·¨±¦id def GetTreasureLV(self): return self.TreasureLV # ·¨±¦½×Êý def GetTreasureAttr(self): return self.TreasureAttr # ÊôÐÔ£¨×î¶à3Ìõ£© def GetMaterial(self): return self.Material # ÖýÁ¶²ÄÁÏ def GetSuccessRate(self): return self.SuccessRate # ³É¹¦ÂÊ def GetOpenSkill(self): return self.OpenSkill # ½âËø¼¼ÄÜ def GetNeedAlchemyLV(self): return self.NeedAlchemyLV # ËùÐèÁ¶µ¤µÈ¼¶ def GetNeedAllTreasureLV(self): return self.NeedAllTreasureLV # ËùÐèËùÓз¨±¦µÈ¼¶ # Á¶µ¤Â¯µÈ¼¶±í class IPY_RefineStove(): def __init__(self): self.StoveLV = 0 self.UpNeedExp = 0 self.AddAttrType = [] self.AddAttrNum = [] return def GetStoveLV(self): return self.StoveLV # Á¶µ¤Â¯µÈ¼¶ def GetUpNeedExp(self): return self.UpNeedExp # ÉýÏÂÒ»¼¶ËùÐè¾­Ñé def GetAddAttrType(self): return self.AddAttrType # µÈ¼¶¼Ó³ÉÊôÐÔÀàÐÍ def GetAddAttrNum(self): return self.AddAttrNum # µÈ¼¶¼Ó³ÉÊôÐÔÖµ # Á¶µ¤±í class IPY_Alchemy(): def __init__(self): self.AlchemyID = 0 self.Material = {} self.AlchemyExp = 0 self.AlchemyItem = [] self.SpecAlchemyID = [] self.AlchemyUp = [] self.NeedAlchemyLV = 0 return def GetAlchemyID(self): return self.AlchemyID # Á¶µ¤±àºÅ def GetMaterial(self): return self.Material # ËùÐèËùÓвÄÁϺÍÊýÁ¿ def GetAlchemyExp(self): return self.AlchemyExp # Á¶µ¤»ñµÃ¾­ÑéÖµ def GetAlchemyItem(self): return self.AlchemyItem # ²ú³öÎïÆ·¼°ÊýÁ¿¼°È¨ÖØ def GetSpecAlchemyID(self): return self.SpecAlchemyID # ÌØÊâÁ¶µ¤ID×é def GetAlchemyUp(self): return self.AlchemyUp # ²ú³ö°üº¬µÄ½ø½×µ¤Ò© def GetNeedAlchemyLV(self): return self.NeedAlchemyLV # ËùÐèÁ¶µ¤µÈ¼¶ # Á¶µ¤ÌØÊâ²ú³ö±í class IPY_AlchemySpec(): def __init__(self): self.SpecAlchemyID = 0 self.MaterialID = 0 self.MaterialCnt = 0 self.AlchemyExp = 0 self.AlchemyItem = [] self.NeedAlchemyLV = 0 return def GetSpecAlchemyID(self): return self.SpecAlchemyID # ÌØÊâÁ¶µ¤ID def GetMaterialID(self): return self.MaterialID # ÌØÊâ²ÄÁÏID def GetMaterialCnt(self): return self.MaterialCnt # ÌØÊâ²ÄÁÏIDÏûºÄ¸öÊý def GetAlchemyExp(self): return self.AlchemyExp # ÌØÊâ²ÄÁϾ­Ñé def GetAlchemyItem(self): return self.AlchemyItem # ²ú³öÎïÆ·¼°ÊýÁ¿¼°È¨ÖØ def GetNeedAlchemyLV(self): return self.NeedAlchemyLV # ËùÐèÁ¶µ¤µÈ¼¶ # BOSSÐÅÏ¢±í class IPY_BOSSInfo(): def __init__(self): self.NPCID = 0 self.MapID = 0 self.RefreshMark = 0 self.IsNeedShunt = 0 self.RelatedType = 0 self.RelatedID = 0 self.StoneNPCID = 0 return def GetNPCID(self): return self.NPCID # ID def GetMapID(self): return self.MapID # µØÍ¼ID def GetRefreshMark(self): return self.RefreshMark # ˢбêʶµã def GetIsNeedShunt(self): return self.IsNeedShunt # ÊÇ·ñÐèÒª·ÖÁ÷ def GetRelatedType(self): return self.RelatedType # Ë¢¹Ö¹ØÁªÀàÐÍ def GetRelatedID(self): return self.RelatedID # ¹ØÁªID def GetStoneNPCID(self): return self.StoneNPCID # ű®NPCID # ¹ÅÉñ½ûµØ±í class IPY_ElderGodArea(): def __init__(self): self.NPCID = 0 self.MonsterAnger = 0 return def GetNPCID(self): return self.NPCID # ID def GetMonsterAnger(self): return self.MonsterAnger # ¹ÖÎïÅ­ÆøÖµ # ¸öÈËBOSS±í class IPY_PersonalBoss(): def __init__(self): self.NPCID = 0 self.ChanllengeLv = 0 return def GetNPCID(self): return self.NPCID # ID def GetChanllengeLv(self): return self.ChanllengeLv # ¿ÉÌôÕ½µÈ¼¶ # ÏÉÃË»îÔ¾±í class IPY_FamilyActivity(): def __init__(self): self.ID = 0 self.UnLockFuncID = 0 self.TotalActivityTime = 0 self.SingleTimes = 0 self.SingleActiveValue = 0 return def GetID(self): return self.ID # ID def GetUnLockFuncID(self): return self.UnLockFuncID # ½âËø¹¦ÄÜID def GetTotalActivityTime(self): return self.TotalActivityTime # ×Ü´ÎÊý def GetSingleTimes(self): return self.SingleTimes # Ôö¼Ó»îÔ¾ÐèÒª´ÎÊý def GetSingleActiveValue(self): return self.SingleActiveValue # ÿÂÖÔö¼Ó»îÔ¾»ý·Ö # ÏÉÃ˺ì°ü±í class IPY_FamilyRedPack(): def __init__(self): self.ID = 0 self.GetType = 0 self.MoneyNum = 0 self.MoneyType = 0 self.PacketCnt = 0 return def GetID(self): return self.ID # ID def GetGetType(self): return self.GetType # »ñµÃ;¾¶ def GetMoneyNum(self): return self.MoneyNum # ºì°ü¶î¶È def GetMoneyType(self): return self.MoneyType # ½ðÇ®ÀàÐÍ def GetPacketCnt(self): return self.PacketCnt # ºì°ü¸öÊý # NPCÐã±í class IPY_NPCShow(): def __init__(self): self.NPCID = 0 self.MapID = 0 self.LineID = 0 self.ProtectTime = 0 self.BindMissionID = 0 self.ShowType = 0 return def GetNPCID(self): return self.NPCID def GetMapID(self): return self.MapID def GetLineID(self): return self.LineID def GetProtectTime(self): return self.ProtectTime # ±£»¤Ê±¼ä, ºÁÃë def GetBindMissionID(self): return self.BindMissionID # °ó¶¨µÄÈÎÎñID def GetShowType(self): return self.ShowType # 0-·þÎñ¶Ë֪ͨ,>0ǰ¶Ë´¦Àí # ·âħ̳BOSS±í class IPY_SealDemon(): def __init__(self): self.NPCID = 0 self.LineID = 0 self.KillTime = 0 return def GetNPCID(self): return self.NPCID # ID def GetLineID(self): return self.LineID def GetKillTime(self): return self.KillTime # »÷ɱ×Üʱ¼äÃë # ¸±±¾¹ÄÎè±í class IPY_FbEncourage(): def __init__(self): self.DataMapID = 0 self.InspireType = 0 self.InspireMaxLV = 0 self.MoneyCount = 0 return def GetDataMapID(self): return self.DataMapID # µØÍ¼ID def GetInspireType(self): return self.InspireType # ¹ÄÎèÀàÐÍ def GetInspireMaxLV(self): return self.InspireMaxLV # ¹ÄÎèµÈ¼¶ÏÞÖÆ def GetMoneyCount(self): return self.MoneyCount # µ¥´ÎÏûºÄ½ðÇ®ÊýÁ¿ # ·ûÓ¡ºÏ³É±í class IPY_RuneCompound(): def __init__(self): self.TagItemID = 0 self.NeedItem = [] self.NeedMJ = 0 return def GetTagItemID(self): return self.TagItemID # ºÏ³ÉµÄ·ûÓ¡ÎïÆ·ID def GetNeedItem(self): return self.NeedItem # ÐèÒªµÄÎïÆ·ID def GetNeedMJ(self): return self.NeedMJ # ÐèÒªµÄħ¾«ÊýÁ¿ # ×ÊÔ´Õһرí class IPY_ResourcesBack(): def __init__(self): self.ID = 0 self.RelatedID = 0 self.CanBackTimes = 0 self.NormalCostJade = 0 self.VipCostJade = 0 self.JadeReward = {} self.CostCopper = 0 self.CopperReward = {} return def GetID(self): return self.ID # ID def GetRelatedID(self): return self.RelatedID # ¹ØÁªÈÕ³£ÈÎÎñ±íID def GetCanBackTimes(self): return self.CanBackTimes # ÄÜ·ñÕһشÎÊý def GetNormalCostJade(self): return self.NormalCostJade # °óÓñÕÒ»ØÆÕͨ´ÎÊý¼Û¸ñ def GetVipCostJade(self): return self.VipCostJade # °óÓñÕÒ»ØVIP´ÎÊýÕһؼ۸ñ def GetJadeReward(self): return self.JadeReward # °óÓñÕһؽ±Àø def GetCostCopper(self): return self.CostCopper # Í­Ç®ÕÒ»ØÍ­Ç®ÏûºÄ def GetCopperReward(self): return self.CopperReward # Í­Ç®Õһؽ±Àø # ±¦Ïä±í¿ªÆô class IPY_Chests(): def __init__(self): self.ChestsItemID = 0 self.CostItemID = 0 self.CostItemCount = 0 self.CostGold = 0 self.ShowType = 0 self.IsBind = 0 return def GetChestsItemID(self): return self.ChestsItemID # ±¦ÏäÎïÆ·ID def GetCostItemID(self): return self.CostItemID # ÏûºÄÎïÆ·ID def GetCostItemCount(self): return self.CostItemCount # ÏûºÄÎïÆ·¸öÊý def GetCostGold(self): return self.CostGold # ÏûºÄÏÉÓñ def GetShowType(self): return self.ShowType # ǰ¶Ë±íÏÖÀàÐÍ0-ÎÞ±íÏÖ, >0ÓбíÏÖÐèͬ²½½á¹û£¬¾ßÌåÀàÐÍǰ¶Ë×Ô¶¨Òå def GetIsBind(self): return self.IsBind # ¿ª³öÎïÆ·ÊÇ·ñ°ó¶¨ # ±¦Ïä±í²ú³ö±í class IPY_ChestsAward(): def __init__(self): self.ChestsItemID = 0 self.AwardLV = 0 self.SelectItemDict = {} self.FixedItemDict = {} self.RandItemList1 = [] self.RandTimeList1 = [] self.RandItemList2 = [] self.RandTimeList2 = [] self.JobItemList = [] self.MoneyType = 0 self.MoneyCount = 0 self.NeedNotifyItemList = [] return def GetChestsItemID(self): return self.ChestsItemID # ±¦ÏäÎïÆ·ID def GetAwardLV(self): return self.AwardLV # ±¦Ïä½±ÀøµÈ¼¶ def GetSelectItemDict(self): return self.SelectItemDict # Ñ¡ÔñÎïÆ·ID¶ÔÓ¦¸öÊý×ֵ䣬¹æ¶¨Ö»ÄÜѡһ¸ö def GetFixedItemDict(self): return self.FixedItemDict # ¹Ì¶¨²ú³öÎïÆ·ID¶ÔÓ¦¸öÊý×Öµä def GetRandItemList1(self): return self.RandItemList1 # Ëæ»úÎïÆ·±ýͼÁбí1 def GetRandTimeList1(self): return self.RandTimeList1 # Ëæ»ú´ÎÊý±ýͼÁбí1 def GetRandItemList2(self): return self.RandItemList2 # Ëæ»úÎïÆ·±ýͼÁбí2 def GetRandTimeList2(self): return self.RandTimeList2 # Ëæ»ú´ÎÊý±ýͼÁбí2 def GetJobItemList(self): return self.JobItemList # Ö°ÒµÎïÆ·Áбí def GetMoneyType(self): return self.MoneyType # »õ±ÒÀàÐÍ def GetMoneyCount(self): return self.MoneyCount # »õ±ÒÊýÁ¿ def GetNeedNotifyItemList(self): return self.NeedNotifyItemList # ÐèÒª¹ã²¥µÄÎïÆ·IDÁбí # VIPɱ¹Ö¼Ó¹¥»÷±í class IPY_VIPKillNPC(): def __init__(self): self.KillLV = 0 self.LVExpPoint = 0 self.LVExp = 0 self.AddMinAtk = 0 self.AddMaxAtk = 0 return def GetKillLV(self): return self.KillLV # ɱ¹Ö³É³¤µÈ¼¶ def GetLVExpPoint(self): return self.LVExpPoint # Éý¼¶ËùÐè¾­Ñéµã,ÿ¸ö¾­Ñéµã´ú±íµÄ¾­ÑéÓÉÏîÄ¿¾ö¶¨ def GetLVExp(self): return self.LVExp # ³ý¾­Ñéµã×ܾ­ÑéÍâÉý¼¶»¹ÐèµÄ¾­Ñé def GetAddMinAtk(self): return self.AddMinAtk # Ôö¼Ó×îС¹¥»÷ def GetAddMaxAtk(self): return self.AddMaxAtk # Ôö¼Ó×î´ó¹¥»÷ # È«Ãñ³å°ñÅÅÐн±Àø±í class IPY_OSCBillRankAward(): def __init__(self): self.OSCBillType = 0 self.RankA = 0 self.RankB = 0 self.RankAward = {} return def GetOSCBillType(self): return self.OSCBillType # ³å°ñÀàÐÍ def GetRankA(self): return self.RankA # ÅÅÃûA def GetRankB(self): return self.RankB # ÖÁÅÅÃûB def GetRankAward(self): return self.RankAward # ÅÅÃû½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý],...], ...} # È«Ãñ³å°ñ´ï³É½±Àø±í class IPY_OSCBillTagAward(): def __init__(self): self.OSCBillType = 0 self.TagCondition = 0 self.TagAward = {} return def GetOSCBillType(self): return self.OSCBillType # ³å°ñÀàÐÍ def GetTagCondition(self): return self.TagCondition # Ä¿±êÌõ¼þÖµ def GetTagAward(self): return self.TagAward # Ä¿±ê½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý],...], ...} # ÆßÌìµÇ¼½±Àø±í class IPY_LoginDayAward(): def __init__(self): self.DayID = 0 self.Reward = {} return def GetDayID(self): return self.DayID # ÌìÊý def GetReward(self): return self.Reward # ½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý],...], ...} # ÆßÌìÔÚÏß½±Àø±í class IPY_OnlineAward(): def __init__(self): self.DayID = 0 self.StageTime = [] self.Reward = {} return def GetDayID(self): return self.DayID # ÌìÊý def GetStageTime(self): return self.StageTime # ½×¶ÎËùÐèʱ¼ä(·ÖÖÓ) def GetReward(self): return self.Reward # ½±Àø {"Ë÷Òý":[[ÎïÆ·ID,¸öÊý],...], ...} # ÆßÌìÏÞÊ±ÌØ»Ý±í class IPY_SpringSale(): def __init__(self): self.GiftID = 0 self.SellDay = 0 self.BuyNumLimit = 0 self.GiftPrice = 0 self.GiftItemList = [] return def GetGiftID(self): return self.GiftID # Àñ°üID def GetSellDay(self): return self.SellDay # ´´½ÇµÚ¼¸ÌìÉÏ¼Ü def GetBuyNumLimit(self): return self.BuyNumLimit # ÿÈËÏÞ¹ºÊýÁ¿ def GetGiftPrice(self): return self.GiftPrice # Àñ°ü¼Û¸ñ£¬ÏÉÓñ def GetGiftItemList(self): return self.GiftItemList # Àñ°üÎïÆ·ÐÅÏ¢Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨], ...] # ³äÖµÉÌÆ·±àºÅ±í class IPY_OrderInfo(): def __init__(self): self.OrderInfo = "" self.AppID = "" self.PayRMBNum = 0.0 self.CTGID = 0 self.GiftbagID = 0 return def GetOrderInfo(self): return self.OrderInfo # ÉÌÆ·±àºÅ def GetAppID(self): return self.AppID # appID def GetPayRMBNum(self): return self.PayRMBNum # ¸¶·Ñ¶î¶È£¬Ôª def GetCTGID(self): return self.CTGID # ¶ÔÓ¦³äÖµID def GetGiftbagID(self): return self.GiftbagID # ¶ÔÓ¦ÏÞʱÀñ°ü±àºÅ # ³äÖµ±í class IPY_CTG(): def __init__(self): self.RecordID = 0 self.DailyBuyCount = 0 self.GainGold = 0 self.GainGoldPrize = 0 self.FirstGoldPrize = 0 self.GainItemList = [] return def GetRecordID(self): return self.RecordID # ¼Ç¼ID def GetDailyBuyCount(self): return self.DailyBuyCount # ÿÈÕÏÞ¹º´ÎÊý def GetGainGold(self): return self.GainGold # »ñµÃÏÉÓñÊý def GetGainGoldPrize(self): return self.GainGoldPrize # ÔùËÍÏÉÓñÊý def GetFirstGoldPrize(self): return self.FirstGoldPrize # Ê״γäÖµ¸ÃµµÎ»ÔùËÍÏÉÓñ def GetGainItemList(self): return self.GainItemList # »ñµÃÎïÆ·Áбí[[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨], ...] # µÈ¼¶½±Àø±í class IPY_LVAward(): def __init__(self): self.AwardID = 0 self.LV = 0 self.LimitCnt = 0 self.Reward = {} self.VIPLimit = 0 self.VIPAward = [] return def GetAwardID(self): return self.AwardID # ½±ÀøID def GetLV(self): return self.LV # µÈ¼¶ def GetLimitCnt(self): return self.LimitCnt # È«·þÏÞÖÆÊýÁ¿ def GetReward(self): return self.Reward # ½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý],...], ...} def GetVIPLimit(self): return self.VIPLimit # ÐèÒªVIP¼¸ def GetVIPAward(self): return self.VIPAward # vip½±Àø[[ÎïÆ·ID,¸öÊý],...] # Ͷ×ʱí class IPY_Invest(): def __init__(self): self.ID = 0 self.Type = 0 self.NeedDay = 0 self.NeedLV = 0 self.Reward = {} return def GetID(self): return self.ID # ID def GetType(self): return self.Type # Ͷ×ÊÀàÐÍ def GetNeedDay(self): return self.NeedDay # ÐèÒªÌìÊý def GetNeedLV(self): return self.NeedLV # ÐèÒªµÈ¼¶ def GetReward(self): return self.Reward # ½±Àø {"key":[[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨],...], ...} # Ïɱ¦Ñ°Ö÷±í class IPY_XBXZ(): def __init__(self): self.ID = 0 self.Type = 0 self.NeedCnt = 0 self.Condition = [] self.MWID = 0 self.AwardItem = [] self.Money = [] return def GetID(self): return self.ID # ID def GetType(self): return self.Type # ÀàÐÍ def GetNeedCnt(self): return self.NeedCnt # ÐèÒªÊýÁ¿ def GetCondition(self): return self.Condition # Ìõ¼þ def GetMWID(self): return self.MWID # ·¨±¦ID def GetAwardItem(self): return self.AwardItem # ½±ÀøÎïÆ·Áбí def GetMoney(self): return self.Money # ½ðÇ® # Ѱ±¦²ú³ö¿â±í class IPY_TreasureHouse(): def __init__(self): self.TreasureType = 0 self.MinLV = 0 self.GridItemInfo = {} self.JobItemList = [] self.GridItemRateListFree = [] self.FreeGridItemRateList2 = [] self.FreeGridItemRateList3 = {} self.GridItemRateList1 = [] self.GridItemRateList2 = [] self.GridItemRateList3 = {} self.LuckyGridNum = 0 return def GetTreasureType(self): return self.TreasureType # Ѱ±¦ÀàÐÍ def GetMinLV(self): return self.MinLV # ×îСµÈ¼¶ def GetGridItemInfo(self): return self.GridItemInfo # ¸ñ×Ó±àºÅ¶ÔÓ¦ÎïÆ·ÐÅÏ¢ {"±àºÅ":[ÎïÆ·ID, ¸öÊý], ...} def GetJobItemList(self): return self.JobItemList # Ö°ÒµÎïÆ·×éÁбí [[Ö°Òµ1ÎïÆ·, Ö°Òµ2ÎïÆ·, ...], ...] def GetGridItemRateListFree(self): return self.GridItemRateListFree # Ãâ·Ñ²ú³ö¸ñ×Ó±àºÅ±ýͼ [[¸ÅÂÊ, ¸ñ×Ó±àºÅ], ...] def GetFreeGridItemRateList2(self): return self.FreeGridItemRateList2 # Ãâ·ÑÿÂúx´Î±£µ×²ú³ö¸ñ×Ó±àºÅ±ýͼ [[¸ÅÂÊ, ¸ñ×Ó±àºÅ], ...] def GetFreeGridItemRateList3(self): return self.FreeGridItemRateList3 # Ãâ·ÑµÚx´Î±Ø³ö²ú³ö¸ñ×Ó±àºÅ±ýͼ {´ÎÊý:[[¸ÅÂÊ, ¸ñ×Ó±àºÅ], ...], ...} def GetGridItemRateList1(self): return self.GridItemRateList1 # ³£¹æ²ú³ö¸ñ×Ó±àºÅ±ýͼ [[¸ÅÂÊ, ¸ñ×Ó±àºÅ], ...] def GetGridItemRateList2(self): return self.GridItemRateList2 # ÿÂúx´Î±£µ×²ú³ö¸ñ×Ó±àºÅ±ýͼ [[¸ÅÂÊ, ¸ñ×Ó±àºÅ], ...] def GetGridItemRateList3(self): return self.GridItemRateList3 # µÚx´Î±Ø³ö²ú³ö¸ñ×Ó±àºÅ±ýͼ {´ÎÊý:[[¸ÅÂÊ, ¸ñ×Ó±àºÅ], ...], ...} def GetLuckyGridNum(self): return self.LuckyGridNum # ÐÒÔ˼ӳɸñ×Ó±àºÅ # ¼«Æ·°×Äñí class IPY_FreeGoods(): def __init__(self): self.ID = 0 self.AwardItem = {} self.NeedMoney = 0 self.ReturnTime = 0 return def GetID(self): return self.ID # ID def GetAwardItem(self): return self.AwardItem # ½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý],...], ...} def GetNeedMoney(self): return self.NeedMoney # ÐèÒªÏÉÓñ def GetReturnTime(self): return self.ReturnTime # ·µ»¹Ê±¼ä(s) # ÏÞʱÀñ°ü»î¶¯±í class IPY_ActFlashGiftbag(): def __init__(self): self.CfgID = 0 self.StartDate = "" self.EndDate = "" self.StartTimeList = [] self.EndTimeList = [] self.LVLimit = 0 self.IsDayReset = 0 self.GiftbagList = [] return def GetCfgID(self): return self.CfgID # ÅäÖÃID def GetStartDate(self): return self.StartDate # ¿ªÆôÈÕÆÚ def GetEndDate(self): return self.EndDate # ½áÊøÈÕÆÚ def GetStartTimeList(self): return self.StartTimeList # ¿ªÆôʱ¼äÁбí, Ö§³Ö¶à¸öʱ¶Î def GetEndTimeList(self): return self.EndTimeList # ½áÊøÊ±¼äÁбí, Ö§³Ö¶à¸öʱ¶Î def GetLVLimit(self): return self.LVLimit # ÏÞÖÆµÈ¼¶ def GetIsDayReset(self): return self.IsDayReset # ÊÇ·ñÿÌìÖØÖà def GetGiftbagList(self): return self.GiftbagList # Àñ°üÄ£°åÀàÐÍÁбí # ÏÞʱÀñ°üÄ£°å±í class IPY_FlashGiftbag(): def __init__(self): self.GiftbagID = 0 self.GiftbagType = 0 self.OriginalRMB = 0 self.BuyCountLimit = 0 self.GiftItemList = [] self.MainItemID = 0 self.NotifyKey = "" return def GetGiftbagID(self): return self.GiftbagID # Àñ°ü±àºÅ def GetGiftbagType(self): return self.GiftbagType # Àñ°üÀàÐÍ def GetOriginalRMB(self): return self.OriginalRMB # Ô­¼Û£¨RMB£© def GetBuyCountLimit(self): return self.BuyCountLimit # ÏÞ¹º´ÎÊý,0²»ÏÞ¹º def GetGiftItemList(self): return self.GiftItemList # Àñ°üÎïÆ·ÐÅÏ¢Áбí [(ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨),...] def GetMainItemID(self): return self.MainItemID # ±êµÄÎïÆ·ID def GetNotifyKey(self): return self.NotifyKey # È«·þ¹ã²¥key£¬Ä¬ÈÏÁ½¸ö²ÎÊý(Íæ¼ÒÃû, µµÎ»¶î¶È) # Ïû·Ñ·µÀûÄ£°å±í class IPY_CostRebateTemplate(): def __init__(self): self.TemplateID = 0 self.NeedCostGold = 0 self.AwardIndex = 0 self.AwardItemList = [] self.NotifyKey = "" return def GetTemplateID(self): return self.TemplateID # Ä£°åID def GetNeedCostGold(self): return self.NeedCostGold # ÐèÒªÏû·ÑÏÉÓñÊý def GetAwardIndex(self): return self.AwardIndex # ·µÀû½±ÀøË÷Òý0~31,ͬ¸öÄ£°åÖв»Öظ´ def GetAwardItemList(self): return self.AwardItemList # ·µÀûÎïÆ·ÐÅÏ¢Áбí [(ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨),...] def GetNotifyKey(self): return self.NotifyKey # È«·þ¹ã²¥key£¬Ä¬ÈÏÁ½¸ö²ÎÊý(Íæ¼ÒÃû, µµÎ»¶î¶È) # BOSS¸´»î±í class IPY_BossReborn(): def __init__(self): self.TemplateID = 0 self.ID = 0 self.TotalTimes = 0 self.SingleTimes = 0 self.Reward = [] return def GetTemplateID(self): return self.TemplateID # Ä£°åID def GetID(self): return self.ID # »î¶¯ÌõÄ¿ID def GetTotalTimes(self): return self.TotalTimes # ¿ÉÍê³ÉµÄ×Ü´ÎÊý£¬0±íʾ²»ÏÞ´ÎÊý def GetSingleTimes(self): return self.SingleTimes # µ¥´ÎÁì½±ÐèÒªµÄ´ÎÊý def GetReward(self): return self.Reward # ½±ÀøÎïÆ·ID1 # ×ÚÃÅÊÔÁ¶¶Ò»»±í class IPY_TrialExchange(): def __init__(self): self.ID = 0 self.ExchangeItemIDList = [] self.ExchangeItemCount = 0 self.ExchangeItemIsBind = 0 self.CostItemID = 0 self.CostItemCount = 0 return def GetID(self): return self.ID # ¶Ò»»ID def GetExchangeItemIDList(self): return self.ExchangeItemIDList # ¶Ò»»ÎïÆ·ID def GetExchangeItemCount(self): return self.ExchangeItemCount # ¶Ò»»ÎïÆ·¸öÊý def GetExchangeItemIsBind(self): return self.ExchangeItemIsBind # ¶Ò»»ÎïÆ·ÊÇ·ñ°ó¶¨ def GetCostItemID(self): return self.CostItemID # ÏûºÄÎïÆ·ID def GetCostItemCount(self): return self.CostItemCount # ÏûºÄÎïÆ·¸öÊý # ÏɽçÊ¢µä-È«ÃñÀ´à˱í class IPY_AllPeopleParty(): def __init__(self): self.ID = 0 self.TotalTimes = 0 self.AddPoint = 0 return def GetID(self): return self.ID # ID def GetTotalTimes(self): return self.TotalTimes # ×Ü´ÎÊý def GetAddPoint(self): return self.AddPoint # ÿÍê³É´ÎÊý»ñµÃà˵ã # ÏɽçÊ¢µä-È«ÃñÀ´à˽±Àø±í class IPY_AllPeoplePartyAward(): def __init__(self): self.WorldLvNum = 0 self.Index = 0 self.NeedPoint = 0 self.Award = {} return def GetWorldLvNum(self): return self.WorldLvNum # ÊÀ½çµÈ¼¶µµ def GetIndex(self): return self.Index # Ë÷Òý def GetNeedPoint(self): return self.NeedPoint # ÐèÒªµãÊý def GetAward(self): return self.Award # ½±Àø {"Ö°Òµ":[[ÎïÆ·ID,¸öÊý,ÊÇ·ñ°ó¶¨],...], ...} # µØÍ¼NPCÅäÖñí-¹Ò»úµã class IPY_MapEventPoint(): def __init__(self): self.MapID = 0 self.NPCID = 0 self.LowLV = 0 self.HighestLV = 0 self.Defense = 0 return def GetMapID(self): return self.MapID def GetNPCID(self): return self.NPCID def GetLowLV(self): return self.LowLV # ÍÆ¼ö×îµÍµÈ¼¶ def GetHighestLV(self): return self.HighestLV # ÍÆ¼ö×î¸ßµÈ¼¶ def GetDefense(self): return self.Defense # ÍÆ¼ö·ÀÓù def Log(msg, playerID=0, par=0): LogUI.Msg("%s\t%s\t%s" % (par, playerID, msg)) return def ErrLog(msg, playerID=0, par=0): LogUI.Msg("%s\t%s\t###Error:%s" % (par, playerID, msg)) return ## PY±íÊý¾Ý¹ÜÀíÀà class IPY_DataMgr(): def __init__(self): self.fileMD5Dict = {} # Êý¾Ý±íÎļþmd5×Öµä, ÓÃÓÚ¶Ô±ÈÎļþ²îÒìÅжÏÊÇ·ñÖØ¶Á {dtName:md5, ...} self.ipyConfigEx = {} # ×Ô¶¨ÒåÊý¾Ý»º´æ {key:configData, ...} self.ipyDataIndexMap = {} # Êý¾Ý±íË÷Òý²éѯ»º´æ {dtName:{args:[index, ...], ...}, ...} self.ipyDataIndexMapEx = {} # Êý¾Ý±í×Ô¶¨Òå²éѯÌõ¼þ²éѯ»º´æ {dtName_(findKey,...):{(findKeyValue, ...):[index, ...], ...}, ...} self.ipyFuncConfigDict = {} # ¹¦ÄÜÅäÖÃ±í»º´æ {key:IPY_FuncConfig, ...} self.IpyDataClear() return def IpyDataClear(self): Log("IPY_DataMgr Init...") self.ipyConfigEx = {} self.ipyDienstgradCache = self.__LoadFileData("Dienstgrad", IPY_Dienstgrad) self.ipyDienstgradLen = len(self.ipyDienstgradCache) self.ipyRealmCache = self.__LoadFileData("Realm", IPY_Realm) self.ipyRealmLen = len(self.ipyRealmCache) self.ipyGodWeaponCache = self.__LoadFileData("GodWeapon", IPY_GodWeapon) self.ipyGodWeaponLen = len(self.ipyGodWeaponCache) self.ipyFuncConfigCache = self.__LoadFileData("FuncConfig", IPY_FuncConfig) self.ipyFuncConfigLen = len(self.ipyFuncConfigCache) self.ipyFuncOpenLVCache = self.__LoadFileData("FuncOpenLV", IPY_FuncOpenLV) self.ipyFuncOpenLVLen = len(self.ipyFuncOpenLVCache) self.ipyItemCompoundCache = self.__LoadFileData("ItemCompound", IPY_ItemCompound) self.ipyItemCompoundLen = len(self.ipyItemCompoundCache) self.ipyItemPlusCache = self.__LoadFileData("ItemPlus", IPY_ItemPlus) self.ipyItemPlusLen = len(self.ipyItemPlusCache) self.ipyItemPlusMaxCache = self.__LoadFileData("ItemPlusMax", IPY_ItemPlusMax) self.ipyItemPlusMaxLen = len(self.ipyItemPlusMaxCache) self.ipyItemPlusSumAttrCache = self.__LoadFileData("ItemPlusSumAttr", IPY_ItemPlusSumAttr) self.ipyItemPlusSumAttrLen = len(self.ipyItemPlusSumAttrCache) self.ipyRoleEquipStarsCache = self.__LoadFileData("RoleEquipStars", IPY_RoleEquipStars) self.ipyRoleEquipStarsLen = len(self.ipyRoleEquipStarsCache) self.ipyDogzCache = self.__LoadFileData("Dogz", IPY_Dogz) self.ipyDogzLen = len(self.ipyDogzCache) self.ipyDogzEquipPlusCache = self.__LoadFileData("DogzEquipPlus", IPY_DogzEquipPlus) self.ipyDogzEquipPlusLen = len(self.ipyDogzEquipPlusCache) self.ipyRuneCache = self.__LoadFileData("Rune", IPY_Rune) self.ipyRuneLen = len(self.ipyRuneCache) self.ipyEquipWashCache = self.__LoadFileData("EquipWash", IPY_EquipWash) self.ipyEquipWashLen = len(self.ipyEquipWashCache) self.ipyEquipWashSpecCache = self.__LoadFileData("EquipWashSpec", IPY_EquipWashSpec) self.ipyEquipWashSpecLen = len(self.ipyEquipWashSpecCache) self.ipyAttrFruitCache = self.__LoadFileData("AttrFruit", IPY_AttrFruit) self.ipyAttrFruitLen = len(self.ipyAttrFruitCache) self.ipyPetInfoCache = self.__LoadFileData("PetInfo", IPY_PetInfo) self.ipyPetInfoLen = len(self.ipyPetInfoCache) self.ipyEquipDecomposeCache = self.__LoadFileData("EquipDecompose", IPY_EquipDecompose) self.ipyEquipDecomposeLen = len(self.ipyEquipDecomposeCache) self.ipyPetClassCostCache = self.__LoadFileData("PetClassCost", IPY_PetClassCost) self.ipyPetClassCostLen = len(self.ipyPetClassCostCache) self.ipyPetEatEquipCache = self.__LoadFileData("PetEatEquip", IPY_PetEatEquip) self.ipyPetEatEquipLen = len(self.ipyPetEatEquipCache) self.ipyHorseCache = self.__LoadFileData("Horse", IPY_Horse) self.ipyHorseLen = len(self.ipyHorseCache) self.ipyHorseUpCache = self.__LoadFileData("HorseUp", IPY_HorseUp) self.ipyHorseUpLen = len(self.ipyHorseUpCache) self.ipyPlayerLVCache = self.__LoadFileData("PlayerLV", IPY_PlayerLV) self.ipyPlayerLVLen = len(self.ipyPlayerLVCache) self.ipyGMAttrCache = self.__LoadFileData("GMAttr", IPY_GMAttr) self.ipyGMAttrLen = len(self.ipyGMAttrCache) self.ipyNPCStrengthenCache = self.__LoadFileData("NPCStrengthen", IPY_NPCStrengthen) self.ipyNPCStrengthenLen = len(self.ipyNPCStrengthenCache) self.ipyEquipSuitAttrCache = self.__LoadFileData("EquipSuitAttr", IPY_EquipSuitAttr) self.ipyEquipSuitAttrLen = len(self.ipyEquipSuitAttrCache) self.ipyEquipSuitCompoundCache = self.__LoadFileData("EquipSuitCompound", IPY_EquipSuitCompound) self.ipyEquipSuitCompoundLen = len(self.ipyEquipSuitCompoundCache) self.ipyWingRefineAttrCache = self.__LoadFileData("WingRefineAttr", IPY_WingRefineAttr) self.ipyWingRefineAttrLen = len(self.ipyWingRefineAttrCache) self.ipyWingRefineExpCache = self.__LoadFileData("WingRefineExp", IPY_WingRefineExp) self.ipyWingRefineExpLen = len(self.ipyWingRefineExpCache) self.ipyFamilyTechCache = self.__LoadFileData("FamilyTech", IPY_FamilyTech) self.ipyFamilyTechLen = len(self.ipyFamilyTechCache) self.ipyFightPowerParamCache = self.__LoadFileData("FightPowerParam", IPY_FightPowerParam) self.ipyFightPowerParamLen = len(self.ipyFightPowerParamCache) self.ipyNPCDropItemCache = self.__LoadFileData("NPCDropItem", IPY_NPCDropItem) self.ipyNPCDropItemLen = len(self.ipyNPCDropItemCache) self.ipyRuneTowerCache = self.__LoadFileData("RuneTower", IPY_RuneTower) self.ipyRuneTowerLen = len(self.ipyRuneTowerCache) self.ipyFBFuncCache = self.__LoadFileData("FBFunc", IPY_FBFunc) self.ipyFBFuncLen = len(self.ipyFBFuncCache) self.ipyFBLineCache = self.__LoadFileData("FBLine", IPY_FBLine) self.ipyFBLineLen = len(self.ipyFBLineCache) self.ipyNPCCustomRefreshCache = self.__LoadFileData("NPCCustomRefresh", IPY_NPCCustomRefresh) self.ipyNPCCustomRefreshLen = len(self.ipyNPCCustomRefreshCache) self.ipyDailyActionCache = self.__LoadFileData("DailyAction", IPY_DailyAction) self.ipyDailyActionLen = len(self.ipyDailyActionCache) self.ipyEquipGSParamCache = self.__LoadFileData("EquipGSParam", IPY_EquipGSParam) self.ipyEquipGSParamLen = len(self.ipyEquipGSParamCache) self.ipySuccessCache = self.__LoadFileData("Success", IPY_Success) self.ipySuccessLen = len(self.ipySuccessCache) self.ipyTreasureCache = self.__LoadFileData("Treasure", IPY_Treasure) self.ipyTreasureLen = len(self.ipyTreasureCache) self.ipyTreasureUpCache = self.__LoadFileData("TreasureUp", IPY_TreasureUp) self.ipyTreasureUpLen = len(self.ipyTreasureUpCache) self.ipyTreasurePrivilegeCache = self.__LoadFileData("TreasurePrivilege", IPY_TreasurePrivilege) self.ipyTreasurePrivilegeLen = len(self.ipyTreasurePrivilegeCache) self.ipyTreasureSkillCache = self.__LoadFileData("TreasureSkill", IPY_TreasureSkill) self.ipyTreasureSkillLen = len(self.ipyTreasureSkillCache) self.ipyContineSignAwardCache = self.__LoadFileData("ContineSignAward", IPY_ContineSignAward) self.ipyContineSignAwardLen = len(self.ipyContineSignAwardCache) self.ipySignAwardCache = self.__LoadFileData("SignAward", IPY_SignAward) self.ipySignAwardLen = len(self.ipySignAwardCache) self.ipyVIPAwardCache = self.__LoadFileData("VIPAward", IPY_VIPAward) self.ipyVIPAwardLen = len(self.ipyVIPAwardCache) self.ipyAppointItemCache = self.__LoadFileData("AppointItem", IPY_AppointItem) self.ipyAppointItemLen = len(self.ipyAppointItemCache) self.ipyVipPrivilegeCache = self.__LoadFileData("VipPrivilege", IPY_VipPrivilege) self.ipyVipPrivilegeLen = len(self.ipyVipPrivilegeCache) self.ipyStoreCache = self.__LoadFileData("Store", IPY_Store) self.ipyStoreLen = len(self.ipyStoreCache) self.ipyActSpringSaleCache = self.__LoadFileData("ActSpringSale", IPY_ActSpringSale) self.ipyActSpringSaleLen = len(self.ipyActSpringSaleCache) self.ipyDailyQuestCache = self.__LoadFileData("DailyQuest", IPY_DailyQuest) self.ipyDailyQuestLen = len(self.ipyDailyQuestCache) self.ipyDailyLivenessRewardCache = self.__LoadFileData("DailyLivenessReward", IPY_DailyLivenessReward) self.ipyDailyLivenessRewardLen = len(self.ipyDailyLivenessRewardCache) self.ipyTreasureRefineCache = self.__LoadFileData("TreasureRefine", IPY_TreasureRefine) self.ipyTreasureRefineLen = len(self.ipyTreasureRefineCache) self.ipyRefineStoveCache = self.__LoadFileData("RefineStove", IPY_RefineStove) self.ipyRefineStoveLen = len(self.ipyRefineStoveCache) self.ipyAlchemyCache = self.__LoadFileData("Alchemy", IPY_Alchemy) self.ipyAlchemyLen = len(self.ipyAlchemyCache) self.ipyAlchemySpecCache = self.__LoadFileData("AlchemySpec", IPY_AlchemySpec) self.ipyAlchemySpecLen = len(self.ipyAlchemySpecCache) self.ipyBOSSInfoCache = self.__LoadFileData("BOSSInfo", IPY_BOSSInfo) self.ipyBOSSInfoLen = len(self.ipyBOSSInfoCache) self.ipyElderGodAreaCache = self.__LoadFileData("ElderGodArea", IPY_ElderGodArea) self.ipyElderGodAreaLen = len(self.ipyElderGodAreaCache) self.ipyPersonalBossCache = self.__LoadFileData("PersonalBoss", IPY_PersonalBoss) self.ipyPersonalBossLen = len(self.ipyPersonalBossCache) self.ipyFamilyActivityCache = self.__LoadFileData("FamilyActivity", IPY_FamilyActivity) self.ipyFamilyActivityLen = len(self.ipyFamilyActivityCache) self.ipyFamilyRedPackCache = self.__LoadFileData("FamilyRedPack", IPY_FamilyRedPack) self.ipyFamilyRedPackLen = len(self.ipyFamilyRedPackCache) self.ipyNPCShowCache = self.__LoadFileData("NPCShow", IPY_NPCShow) self.ipyNPCShowLen = len(self.ipyNPCShowCache) self.ipySealDemonCache = self.__LoadFileData("SealDemon", IPY_SealDemon) self.ipySealDemonLen = len(self.ipySealDemonCache) self.ipyFbEncourageCache = self.__LoadFileData("FbEncourage", IPY_FbEncourage) self.ipyFbEncourageLen = len(self.ipyFbEncourageCache) self.ipyRuneCompoundCache = self.__LoadFileData("RuneCompound", IPY_RuneCompound) self.ipyRuneCompoundLen = len(self.ipyRuneCompoundCache) self.ipyResourcesBackCache = self.__LoadFileData("ResourcesBack", IPY_ResourcesBack) self.ipyResourcesBackLen = len(self.ipyResourcesBackCache) self.ipyChestsCache = self.__LoadFileData("Chests", IPY_Chests) self.ipyChestsLen = len(self.ipyChestsCache) self.ipyChestsAwardCache = self.__LoadFileData("ChestsAward", IPY_ChestsAward) self.ipyChestsAwardLen = len(self.ipyChestsAwardCache) self.ipyVIPKillNPCCache = self.__LoadFileData("VIPKillNPC", IPY_VIPKillNPC) self.ipyVIPKillNPCLen = len(self.ipyVIPKillNPCCache) self.ipyOSCBillRankAwardCache = self.__LoadFileData("OSCBillRankAward", IPY_OSCBillRankAward) self.ipyOSCBillRankAwardLen = len(self.ipyOSCBillRankAwardCache) self.ipyOSCBillTagAwardCache = self.__LoadFileData("OSCBillTagAward", IPY_OSCBillTagAward) self.ipyOSCBillTagAwardLen = len(self.ipyOSCBillTagAwardCache) self.ipyLoginDayAwardCache = self.__LoadFileData("LoginDayAward", IPY_LoginDayAward) self.ipyLoginDayAwardLen = len(self.ipyLoginDayAwardCache) self.ipyOnlineAwardCache = self.__LoadFileData("OnlineAward", IPY_OnlineAward) self.ipyOnlineAwardLen = len(self.ipyOnlineAwardCache) self.ipySpringSaleCache = self.__LoadFileData("SpringSale", IPY_SpringSale) self.ipySpringSaleLen = len(self.ipySpringSaleCache) self.ipyOrderInfoCache = self.__LoadFileData("OrderInfo", IPY_OrderInfo) self.ipyOrderInfoLen = len(self.ipyOrderInfoCache) self.ipyCTGCache = self.__LoadFileData("CTG", IPY_CTG) self.ipyCTGLen = len(self.ipyCTGCache) self.ipyLVAwardCache = self.__LoadFileData("LVAward", IPY_LVAward) self.ipyLVAwardLen = len(self.ipyLVAwardCache) self.ipyInvestCache = self.__LoadFileData("Invest", IPY_Invest) self.ipyInvestLen = len(self.ipyInvestCache) self.ipyXBXZCache = self.__LoadFileData("XBXZ", IPY_XBXZ) self.ipyXBXZLen = len(self.ipyXBXZCache) self.ipyTreasureHouseCache = self.__LoadFileData("TreasureHouse", IPY_TreasureHouse) self.ipyTreasureHouseLen = len(self.ipyTreasureHouseCache) self.ipyFreeGoodsCache = self.__LoadFileData("FreeGoods", IPY_FreeGoods) self.ipyFreeGoodsLen = len(self.ipyFreeGoodsCache) self.ipyActFlashGiftbagCache = self.__LoadFileData("ActFlashGiftbag", IPY_ActFlashGiftbag) self.ipyActFlashGiftbagLen = len(self.ipyActFlashGiftbagCache) self.ipyFlashGiftbagCache = self.__LoadFileData("FlashGiftbag", IPY_FlashGiftbag) self.ipyFlashGiftbagLen = len(self.ipyFlashGiftbagCache) self.ipyCostRebateTemplateCache = self.__LoadFileData("CostRebateTemplate", IPY_CostRebateTemplate) self.ipyCostRebateTemplateLen = len(self.ipyCostRebateTemplateCache) self.ipyBossRebornCache = self.__LoadFileData("BossReborn", IPY_BossReborn) self.ipyBossRebornLen = len(self.ipyBossRebornCache) self.ipyTrialExchangeCache = self.__LoadFileData("TrialExchange", IPY_TrialExchange) self.ipyTrialExchangeLen = len(self.ipyTrialExchangeCache) self.ipyAllPeoplePartyCache = self.__LoadFileData("AllPeopleParty", IPY_AllPeopleParty) self.ipyAllPeoplePartyLen = len(self.ipyAllPeoplePartyCache) self.ipyAllPeoplePartyAwardCache = self.__LoadFileData("AllPeoplePartyAward", IPY_AllPeoplePartyAward) self.ipyAllPeoplePartyAwardLen = len(self.ipyAllPeoplePartyAwardCache) self.ipyMapEventPointCache = self.__LoadFileData("MapEventPoint", IPY_MapEventPoint) self.ipyMapEventPointLen = len(self.ipyMapEventPointCache) Log("IPY_FuncConfig count=%s" % len(self.ipyFuncConfigDict)) Log("IPY_DataMgr InitOK!") return def __LoadFileData(self, tableName, Class): curPath = ChConfig.GetDBPath() + "\\PySysDB\\tag" + tableName + ".txt" if not os.path.isfile(curPath): ErrLog("can not find file = %s,%s" % (tableName, curPath)) raise Exception("can not find file = %s,%s" % (tableName, curPath)) fileObj = open(curPath, 'rb') content = fileObj.read() fileObj.close() md5_obj = hashlib.md5() md5_obj.update(content) newMD5Code = md5_obj.hexdigest() if tableName in self.fileMD5Dict: oldMD5Code = self.fileMD5Dict[tableName] if newMD5Code == oldMD5Code: return getattr(self, "ipy%sCache" % tableName) if tableName in self.ipyDataIndexMap: self.ipyDataIndexMap.pop(tableName) for dtName_Findkey in self.ipyDataIndexMapEx.keys(): findStr = "%s_" % tableName if findStr in dtName_Findkey: self.ipyDataIndexMapEx.pop(dtName_Findkey) if tableName == "FuncConfig": self.ipyFuncConfigDict = {} self.fileMD5Dict[tableName] = newMD5Code dataIndex = 0 indexDict = {} cacheList = [] fieldList = Def_IpyTable[tableName] infoList = content.split('\r\n') for line in xrange(len(infoList)): if line == 0: continue if not infoList[line]: #ErrLog("line not content! %s, line=%s" % (tableName, line)) continue rowList = infoList[line].split('\t') if len(fieldList) != len(rowList): ErrLog("field count error!, %s, line=%s, len=%s,rowCount=%s" % (tableName, line, len(fieldList), len(rowList))) raise Exception("field count error!, %s, line=%s, len=%s,rowCount=%s" % (tableName, line,len(fieldList), len(rowList))) try: indexKey = [] classObj = Class() for j, value in enumerate(rowList): fieldType, fieldName, isIndex = fieldList[j] if fieldType == "char": attrValue = value elif fieldType == "dict": attrValue = self.__StrToDict(value) elif fieldType == "list": attrValue = self.__StrToList(value) elif fieldType == "eval": attrValue = self.__StrToEval(value) elif fieldType == "float": attrValue = float(value) else: attrValue = 0 if not value.isdigit() else int(value) setattr(classObj, "%s" % fieldName, attrValue) if isIndex: indexKey.append(attrValue) cacheList.append(classObj) indexKey = tuple(indexKey) indexList = indexDict.get(indexKey, []) indexList.append(dataIndex) indexDict[indexKey] = indexList dataIndex += 1 except BaseException: ErrLog("SetIpyDataError: tableName=%s,line=%s,fieldName=%s,fieldType=%s,value=%s" % (tableName, line, fieldName, fieldType, value)) raise if tableName == "FuncConfig": self.__LoadFuncConfigData(fieldList, rowList) if tableName != "FuncConfig": self.ipyDataIndexMap[tableName] = indexDict Log("LoadIpydata: %s, content count=%s" % (tableName, len(cacheList))) return cacheList def __LoadFuncConfigData(self, fieldList, rowList): funcConfigObj = IPY_FuncConfig() key = rowList[0] funcConfigObj.Key = key for i, strValue in enumerate(rowList): if i == 0: continue try: fieldName = fieldList[i][1] strValue = strValue.lstrip().rstrip() if strValue.isdigit(): configValue = int(strValue) elif (strValue.startswith("{") and strValue.endswith("}")) \ or (strValue.startswith("[") and strValue.endswith("]")) \ or (strValue.startswith("(") and strValue.endswith(")")): configValue = eval(strValue) elif "_" in strValue and type(self.__StrToDict(strValue)) == dict: configValue = self.__StrToDict(strValue) elif ChConfig.Def_Str_Montant in strValue: configValue = eval("(%s,)" % strValue.replace(ChConfig.Def_Str_Montant, ",")) elif strValue in ["-", ""]: configValue = "" else: configValue = self.__ToFloat(strValue) except BaseException: ErrLog("SetIpyDataError: tableName=%s,key=%s,i=%s,value=%s" % ("FuncConfig", key, i, strValue)) raise setattr(funcConfigObj, fieldName, configValue) self.ipyFuncConfigDict[key] = funcConfigObj return def __ToFloat(self, strValue): try: value = float(strValue) except: return strValue return value def __StrToEval(self, strValue): if not strValue or strValue in ["0", "-", ""]: return return eval(strValue) def __StrToDict(self, strValue): setDict = {} if "{" in strValue and "}" in strValue: setDict = eval(strValue) elif strValue in ["0", "-", ""]: pass else: keyValueList = strValue.split(ChConfig.Def_Str_Montant) for keyValue in keyValueList: if "_" not in keyValue: continue kv = keyValue.split("_") if len(kv) != 2: return key, value = kv if key.isdigit(): key = int(key) if value.isdigit(): value = int(value) setDict[key] = value return setDict def __StrToList(self, strValue): setList = [] if ("[" in strValue and "]" in strValue) or ("(" in strValue and ")" in strValue): setList = eval(strValue) elif strValue in ["0", "-", ""]: pass elif strValue.isdigit(): setList = (int(strValue),) else: for value in strValue.split(ChConfig.Def_Str_Montant): if value.isdigit(): value = int(value) setList.append(value) if setList: setList = tuple(setList) return setList def GetDienstgradCount(self): return self.ipyDienstgradLen def GetDienstgradByIndex(self, index): return self.ipyDienstgradCache[index] def GetRealmCount(self): return self.ipyRealmLen def GetRealmByIndex(self, index): return self.ipyRealmCache[index] def GetGodWeaponCount(self): return self.ipyGodWeaponLen def GetGodWeaponByIndex(self, index): return self.ipyGodWeaponCache[index] def GetFuncConfigCount(self): return self.ipyFuncConfigLen def GetFuncConfigByIndex(self, index): return self.ipyFuncConfigCache[index] def GetFuncOpenLVCount(self): return self.ipyFuncOpenLVLen def GetFuncOpenLVByIndex(self, index): return self.ipyFuncOpenLVCache[index] def GetItemCompoundCount(self): return self.ipyItemCompoundLen def GetItemCompoundByIndex(self, index): return self.ipyItemCompoundCache[index] def GetItemPlusCount(self): return self.ipyItemPlusLen def GetItemPlusByIndex(self, index): return self.ipyItemPlusCache[index] def GetItemPlusMaxCount(self): return self.ipyItemPlusMaxLen def GetItemPlusMaxByIndex(self, index): return self.ipyItemPlusMaxCache[index] def GetItemPlusSumAttrCount(self): return self.ipyItemPlusSumAttrLen def GetItemPlusSumAttrByIndex(self, index): return self.ipyItemPlusSumAttrCache[index] def GetRoleEquipStarsCount(self): return self.ipyRoleEquipStarsLen def GetRoleEquipStarsByIndex(self, index): return self.ipyRoleEquipStarsCache[index] def GetDogzCount(self): return self.ipyDogzLen def GetDogzByIndex(self, index): return self.ipyDogzCache[index] def GetDogzEquipPlusCount(self): return self.ipyDogzEquipPlusLen def GetDogzEquipPlusByIndex(self, index): return self.ipyDogzEquipPlusCache[index] def GetRuneCount(self): return self.ipyRuneLen def GetRuneByIndex(self, index): return self.ipyRuneCache[index] def GetEquipWashCount(self): return self.ipyEquipWashLen def GetEquipWashByIndex(self, index): return self.ipyEquipWashCache[index] def GetEquipWashSpecCount(self): return self.ipyEquipWashSpecLen def GetEquipWashSpecByIndex(self, index): return self.ipyEquipWashSpecCache[index] def GetAttrFruitCount(self): return self.ipyAttrFruitLen def GetAttrFruitByIndex(self, index): return self.ipyAttrFruitCache[index] def GetPetInfoCount(self): return self.ipyPetInfoLen def GetPetInfoByIndex(self, index): return self.ipyPetInfoCache[index] def GetEquipDecomposeCount(self): return self.ipyEquipDecomposeLen def GetEquipDecomposeByIndex(self, index): return self.ipyEquipDecomposeCache[index] def GetPetClassCostCount(self): return self.ipyPetClassCostLen def GetPetClassCostByIndex(self, index): return self.ipyPetClassCostCache[index] def GetPetEatEquipCount(self): return self.ipyPetEatEquipLen def GetPetEatEquipByIndex(self, index): return self.ipyPetEatEquipCache[index] def GetHorseCount(self): return self.ipyHorseLen def GetHorseByIndex(self, index): return self.ipyHorseCache[index] def GetHorseUpCount(self): return self.ipyHorseUpLen def GetHorseUpByIndex(self, index): return self.ipyHorseUpCache[index] def GetPlayerLVCount(self): return self.ipyPlayerLVLen def GetPlayerLVByIndex(self, index): return self.ipyPlayerLVCache[index] def GetGMAttrCount(self): return self.ipyGMAttrLen def GetGMAttrByIndex(self, index): return self.ipyGMAttrCache[index] def GetNPCStrengthenCount(self): return self.ipyNPCStrengthenLen def GetNPCStrengthenByIndex(self, index): return self.ipyNPCStrengthenCache[index] def GetEquipSuitAttrCount(self): return self.ipyEquipSuitAttrLen def GetEquipSuitAttrByIndex(self, index): return self.ipyEquipSuitAttrCache[index] def GetEquipSuitCompoundCount(self): return self.ipyEquipSuitCompoundLen def GetEquipSuitCompoundByIndex(self, index): return self.ipyEquipSuitCompoundCache[index] def GetWingRefineAttrCount(self): return self.ipyWingRefineAttrLen def GetWingRefineAttrByIndex(self, index): return self.ipyWingRefineAttrCache[index] def GetWingRefineExpCount(self): return self.ipyWingRefineExpLen def GetWingRefineExpByIndex(self, index): return self.ipyWingRefineExpCache[index] def GetFamilyTechCount(self): return self.ipyFamilyTechLen def GetFamilyTechByIndex(self, index): return self.ipyFamilyTechCache[index] def GetFightPowerParamCount(self): return self.ipyFightPowerParamLen def GetFightPowerParamByIndex(self, index): return self.ipyFightPowerParamCache[index] def GetNPCDropItemCount(self): return self.ipyNPCDropItemLen def GetNPCDropItemByIndex(self, index): return self.ipyNPCDropItemCache[index] def GetRuneTowerCount(self): return self.ipyRuneTowerLen def GetRuneTowerByIndex(self, index): return self.ipyRuneTowerCache[index] def GetFBFuncCount(self): return self.ipyFBFuncLen def GetFBFuncByIndex(self, index): return self.ipyFBFuncCache[index] def GetFBLineCount(self): return self.ipyFBLineLen def GetFBLineByIndex(self, index): return self.ipyFBLineCache[index] def GetNPCCustomRefreshCount(self): return self.ipyNPCCustomRefreshLen def GetNPCCustomRefreshByIndex(self, index): return self.ipyNPCCustomRefreshCache[index] def GetDailyActionCount(self): return self.ipyDailyActionLen def GetDailyActionByIndex(self, index): return self.ipyDailyActionCache[index] def GetEquipGSParamCount(self): return self.ipyEquipGSParamLen def GetEquipGSParamByIndex(self, index): return self.ipyEquipGSParamCache[index] def GetSuccessCount(self): return self.ipySuccessLen def GetSuccessByIndex(self, index): return self.ipySuccessCache[index] def GetTreasureCount(self): return self.ipyTreasureLen def GetTreasureByIndex(self, index): return self.ipyTreasureCache[index] def GetTreasureUpCount(self): return self.ipyTreasureUpLen def GetTreasureUpByIndex(self, index): return self.ipyTreasureUpCache[index] def GetTreasurePrivilegeCount(self): return self.ipyTreasurePrivilegeLen def GetTreasurePrivilegeByIndex(self, index): return self.ipyTreasurePrivilegeCache[index] def GetTreasureSkillCount(self): return self.ipyTreasureSkillLen def GetTreasureSkillByIndex(self, index): return self.ipyTreasureSkillCache[index] def GetContineSignAwardCount(self): return self.ipyContineSignAwardLen def GetContineSignAwardByIndex(self, index): return self.ipyContineSignAwardCache[index] def GetSignAwardCount(self): return self.ipySignAwardLen def GetSignAwardByIndex(self, index): return self.ipySignAwardCache[index] def GetVIPAwardCount(self): return self.ipyVIPAwardLen def GetVIPAwardByIndex(self, index): return self.ipyVIPAwardCache[index] def GetAppointItemCount(self): return self.ipyAppointItemLen def GetAppointItemByIndex(self, index): return self.ipyAppointItemCache[index] def GetVipPrivilegeCount(self): return self.ipyVipPrivilegeLen def GetVipPrivilegeByIndex(self, index): return self.ipyVipPrivilegeCache[index] def GetStoreCount(self): return self.ipyStoreLen def GetStoreByIndex(self, index): return self.ipyStoreCache[index] def GetActSpringSaleCount(self): return self.ipyActSpringSaleLen def GetActSpringSaleByIndex(self, index): return self.ipyActSpringSaleCache[index] def GetDailyQuestCount(self): return self.ipyDailyQuestLen def GetDailyQuestByIndex(self, index): return self.ipyDailyQuestCache[index] def GetDailyLivenessRewardCount(self): return self.ipyDailyLivenessRewardLen def GetDailyLivenessRewardByIndex(self, index): return self.ipyDailyLivenessRewardCache[index] def GetTreasureRefineCount(self): return self.ipyTreasureRefineLen def GetTreasureRefineByIndex(self, index): return self.ipyTreasureRefineCache[index] def GetRefineStoveCount(self): return self.ipyRefineStoveLen def GetRefineStoveByIndex(self, index): return self.ipyRefineStoveCache[index] def GetAlchemyCount(self): return self.ipyAlchemyLen def GetAlchemyByIndex(self, index): return self.ipyAlchemyCache[index] def GetAlchemySpecCount(self): return self.ipyAlchemySpecLen def GetAlchemySpecByIndex(self, index): return self.ipyAlchemySpecCache[index] def GetBOSSInfoCount(self): return self.ipyBOSSInfoLen def GetBOSSInfoByIndex(self, index): return self.ipyBOSSInfoCache[index] def GetElderGodAreaCount(self): return self.ipyElderGodAreaLen def GetElderGodAreaByIndex(self, index): return self.ipyElderGodAreaCache[index] def GetPersonalBossCount(self): return self.ipyPersonalBossLen def GetPersonalBossByIndex(self, index): return self.ipyPersonalBossCache[index] def GetFamilyActivityCount(self): return self.ipyFamilyActivityLen def GetFamilyActivityByIndex(self, index): return self.ipyFamilyActivityCache[index] def GetFamilyRedPackCount(self): return self.ipyFamilyRedPackLen def GetFamilyRedPackByIndex(self, index): return self.ipyFamilyRedPackCache[index] def GetNPCShowCount(self): return self.ipyNPCShowLen def GetNPCShowByIndex(self, index): return self.ipyNPCShowCache[index] def GetSealDemonCount(self): return self.ipySealDemonLen def GetSealDemonByIndex(self, index): return self.ipySealDemonCache[index] def GetFbEncourageCount(self): return self.ipyFbEncourageLen def GetFbEncourageByIndex(self, index): return self.ipyFbEncourageCache[index] def GetRuneCompoundCount(self): return self.ipyRuneCompoundLen def GetRuneCompoundByIndex(self, index): return self.ipyRuneCompoundCache[index] def GetResourcesBackCount(self): return self.ipyResourcesBackLen def GetResourcesBackByIndex(self, index): return self.ipyResourcesBackCache[index] def GetChestsCount(self): return self.ipyChestsLen def GetChestsByIndex(self, index): return self.ipyChestsCache[index] def GetChestsAwardCount(self): return self.ipyChestsAwardLen def GetChestsAwardByIndex(self, index): return self.ipyChestsAwardCache[index] def GetVIPKillNPCCount(self): return self.ipyVIPKillNPCLen def GetVIPKillNPCByIndex(self, index): return self.ipyVIPKillNPCCache[index] def GetOSCBillRankAwardCount(self): return self.ipyOSCBillRankAwardLen def GetOSCBillRankAwardByIndex(self, index): return self.ipyOSCBillRankAwardCache[index] def GetOSCBillTagAwardCount(self): return self.ipyOSCBillTagAwardLen def GetOSCBillTagAwardByIndex(self, index): return self.ipyOSCBillTagAwardCache[index] def GetLoginDayAwardCount(self): return self.ipyLoginDayAwardLen def GetLoginDayAwardByIndex(self, index): return self.ipyLoginDayAwardCache[index] def GetOnlineAwardCount(self): return self.ipyOnlineAwardLen def GetOnlineAwardByIndex(self, index): return self.ipyOnlineAwardCache[index] def GetSpringSaleCount(self): return self.ipySpringSaleLen def GetSpringSaleByIndex(self, index): return self.ipySpringSaleCache[index] def GetOrderInfoCount(self): return self.ipyOrderInfoLen def GetOrderInfoByIndex(self, index): return self.ipyOrderInfoCache[index] def GetCTGCount(self): return self.ipyCTGLen def GetCTGByIndex(self, index): return self.ipyCTGCache[index] def GetLVAwardCount(self): return self.ipyLVAwardLen def GetLVAwardByIndex(self, index): return self.ipyLVAwardCache[index] def GetInvestCount(self): return self.ipyInvestLen def GetInvestByIndex(self, index): return self.ipyInvestCache[index] def GetXBXZCount(self): return self.ipyXBXZLen def GetXBXZByIndex(self, index): return self.ipyXBXZCache[index] def GetTreasureHouseCount(self): return self.ipyTreasureHouseLen def GetTreasureHouseByIndex(self, index): return self.ipyTreasureHouseCache[index] def GetFreeGoodsCount(self): return self.ipyFreeGoodsLen def GetFreeGoodsByIndex(self, index): return self.ipyFreeGoodsCache[index] def GetActFlashGiftbagCount(self): return self.ipyActFlashGiftbagLen def GetActFlashGiftbagByIndex(self, index): return self.ipyActFlashGiftbagCache[index] def GetFlashGiftbagCount(self): return self.ipyFlashGiftbagLen def GetFlashGiftbagByIndex(self, index): return self.ipyFlashGiftbagCache[index] def GetCostRebateTemplateCount(self): return self.ipyCostRebateTemplateLen def GetCostRebateTemplateByIndex(self, index): return self.ipyCostRebateTemplateCache[index] def GetBossRebornCount(self): return self.ipyBossRebornLen def GetBossRebornByIndex(self, index): return self.ipyBossRebornCache[index] def GetTrialExchangeCount(self): return self.ipyTrialExchangeLen def GetTrialExchangeByIndex(self, index): return self.ipyTrialExchangeCache[index] def GetAllPeoplePartyCount(self): return self.ipyAllPeoplePartyLen def GetAllPeoplePartyByIndex(self, index): return self.ipyAllPeoplePartyCache[index] def GetAllPeoplePartyAwardCount(self): return self.ipyAllPeoplePartyAwardLen def GetAllPeoplePartyAwardByIndex(self, index): return self.ipyAllPeoplePartyAwardCache[index] def GetMapEventPointCount(self): return self.ipyMapEventPointLen def GetMapEventPointByIndex(self, index): return self.ipyMapEventPointCache[index] IPYData = IPY_DataMgr() def IPY_Data(): return IPYData def GetConfigEx(key): '''»ñÈ¡×Ô¶¨Òåkey»º´æÊý¾Ý ''' if key in IPYData.ipyConfigEx: return IPYData.ipyConfigEx[key] return def SetConfigEx(key, configData): '''ÉèÖÃ×Ô¶¨Òåkey»º´æÊý¾Ý ÓÐЩ±íµÄÅäÖÃÄÚÈÝ¿ÉÄÜÔÚʵ¼Ê¹¦ÄÜʹÓÃÖÐÖ±½ÓʹÓñíÊý¾ÝµÄ»°»á±È½ÏÂé·³£¬±ÈÈçÿ´Î¶¼Òª±éÀú»ñȡһЩ±íÊý¾Ý Èç¹û¾­¹ýÒ»²ãÊý¾Ýת»»ºóÔÙÀ´Ê¹ÓøÃÊý¾ÝµÄ»°»á¼ò»¯¹¦ÄÜÂß¼­»òÌá¸ßЧÂÊ£¬Ôò¿ÉÒÔͨ¹ýº¯Êý±£´æÒ»Ð©×Ô¶¨ÒåµÄ»º´æÄÚÈÝ£¬·½±ã¹¦ÄÜʹÓà Ҳ¿ÉÒÔÊÊÓÃÓÚÆäËû×Ô¶¨Ò建´æ´æ´¢ ''' IPYData.ipyConfigEx[key] = configData return configData def GetIpyGameData(dtName, *args): '''»ñÈ¡±íÊý¾Ý£¬ÊÊÓÃÓÚÊý¾ÝΨһµÄ£¬·µ»Øµ¥ÌõÊý¾ÝʵÀý @param dtName: ±íÃû£¬²»º¬tag @param args: ½¨±íʱÉèÖõÄË÷Òý×Ö¶Î˳Ðò¶ÔÓ¦µÄ²éѯֵ @return: ¶ÔÓ¦²éѯÌõ¼þµÄ ipyData Êý¾ÝʵÀý£¬Ö»·µ»Øµ¥¸öʵÀý @ʹÓÃ˵Ã÷: IpyGameDataPY.GetIpyGameData(±íÃû, Ë÷Òý1²éѯֵ, Ë÷Òý2²éѯֵ, ¡­ ) ''' if dtName not in IPYData.ipyDataIndexMap: ErrLog("Can not found ipyData dtName=%s" % (dtName)) return indexDict = IPYData.ipyDataIndexMap[dtName] if args not in indexDict: ErrLog("Can not found ipyData dtName=%s,indexValue=%s" % (dtName, args)) return indexList = indexDict[args] return getattr(IPYData, "ipy%sCache" % dtName)[indexList[0]] def GetIpyGameDataList(dtName, *args): '''»ñÈ¡±íÊý¾Ý£¬ÊÊÓÃÓÚ²éѯ½á¹ûÓжàÌõÊý¾ÝµÄ @param dtName: ±íÃû£¬²»º¬tag @param args: ½¨±íʱÉèÖõÄË÷Òý×Ö¶Î˳Ðò¶ÔÓ¦µÄ²éѯֵ @return: ¶ÔÓ¦²éѯÌõ¼þµÄ ipyData Êý¾ÝʵÀýÁбí @ʹÓÃ˵Ã÷: Óë GetIpyGameData º¯ÊýÏàͬ ''' if dtName not in IPYData.ipyDataIndexMap: ErrLog("Can not found ipyDataList dtName=%s" % (dtName)) return indexDict = IPYData.ipyDataIndexMap[dtName] if args not in indexDict: ErrLog("Can not found ipyDataList dtName=%s,indexValue=%s" % (dtName, args)) return indexList = indexDict[args] dataCache = getattr(IPYData, "ipy%sCache" % dtName) return [dataCache[i] for i in indexList] def GetIpyGameDataNotLog(dtName, *args): '''Óë GetIpyGameData º¯ÊýÏàͬ, Ö»ÊÇÕÒ²»µ½Êý¾Ýʱ²»»áÊä³öÈÕÖ¾ ''' if dtName not in IPYData.ipyDataIndexMap: #ErrLog("Can not found ipyData dtName=%s" % (dtName)) return indexDict = IPYData.ipyDataIndexMap[dtName] if args not in indexDict: #ErrLog("Can not found ipyData dtName=%s,indexValue=%s" % (dtName, args)) return indexList = indexDict[args] return getattr(IPYData, "ipy%sCache" % dtName)[indexList[0]] def GetIpyGameDataListNotLog(dtName, *args): '''Óë GetIpyGameDataList º¯ÊýÏàͬ, Ö»ÊÇÕÒ²»µ½Êý¾Ýʱ²»»áÊä³öÈÕÖ¾ ''' if dtName not in IPYData.ipyDataIndexMap: #ErrLog("Can not found ipyDataList dtName=%s" % (dtName)) return indexDict = IPYData.ipyDataIndexMap[dtName] if args not in indexDict: #ErrLog("Can not found ipyDataList dtName=%s,indexValue=%s" % (dtName, args)) return indexList = indexDict[args] dataCache = getattr(IPYData, "ipy%sCache" % dtName) return [dataCache[i] for i in indexList] def GetIpyGameDataByCondition(dtName, keyDict={}, returnList=False, isLogNone=True): '''¸ù¾Ý×Ô¶¨Òå²éѯÌõ¼þ²éѯ±íÊý¾Ý£¬ÓÉÓÚĿǰֻ֧³Ö½¨Á¢Ò»×é²éѯË÷Òý£¬ËùÒÔʹÓÃÆäËû²éѯÌõ¼þ²é±íʱֻÄÜͨ¹ý¸Ãº¯Êý²éÕÒ @param dtName: ±íÃû£¬²»º¬tag @param keyDict: ²éѯÌõ¼þ×Öµä {²éѯ×Ö¶ÎÃû:²éѯֵ, ...} @param returnList: ÊÇ·ñÒÔÁбíµÄÐÎʽ·µ»Ø²éѯÊý¾Ý£¬Ä¬ÈÏ·ñ @param isLogNone: ÕÒ²»µ½Êý¾ÝʱÊÇ·ñÊý¾ÝÈÕÖ¾£¬Ä¬ÈÏÊÇ @return: ÕÒ²»µ½Êý¾Ýʱ·µ»Ø None£¬ÓÐÊý¾Ýʱ¸ù¾Ý²ÎÊýÊÇ·ñ·µ»ØÁÐ±í·µ»Ø¶ÔÓ¦µÄÊý¾ÝʵÀý»òÊý¾ÝʵÀýÁбí ''' fieldList = keyDict.keys() valueList = keyDict.values() findFieldKey = "%s_%s" % (dtName, fieldList) findValueKey = tuple(valueList) cacheList = getattr(IPYData, "ipy%sCache" % dtName) if findFieldKey not in IPYData.ipyDataIndexMapEx: indexMapDict = {} for index, iData in enumerate(cacheList): valuekey = tuple([getattr(iData, "%s" % field) for field in fieldList]) indexList = indexMapDict.get(valuekey, []) indexList.append(index) indexMapDict[valuekey] = indexList IPYData.ipyDataIndexMapEx[findFieldKey] = indexMapDict indexMapDict = IPYData.ipyDataIndexMapEx[findFieldKey] if findValueKey not in indexMapDict: if isLogNone: ErrLog("GetIpyGameDataByCondition can not found data! %s %s" % (dtName, keyDict)) return indexList = indexMapDict[findValueKey] if not returnList: return cacheList[indexList[0]] return [cacheList[index] for index in indexList] def GetFuncCfgIpyData(key): '''¶Á¹¦ÄÜÅäÖñíÅäÖÃʵÀý @param key: ÅäÖÃkey @return: Ö±½Ó·µ»Ø¸ÃÅäÖÃkey¶ÔÓ¦µÄÅäÖÃipyDataʵÀý ''' if key not in IPYData.ipyFuncConfigDict: ErrLog("Can not found ipyData FuncConfig key=%s!" % key) return "" return IPYData.ipyFuncConfigDict[key] def GetFuncCfg(key, index=1): '''¶Á¹¦ÄÜÅäÖñíÅäÖÃרÓú¯Êý @param key: ÅäÖÃkey @param index: µÚ¼¸¸öÅäÖÃÖµ£¬Ö§³Ö1~5 @return: Ö±½Ó·µ»Ø¶ÔÓ¦µÄÊý¾ÝÀàÐÍ int¡¢str£¬²»ÓÃÔÙÊÖ¶¯×ªint ''' if key not in IPYData.ipyFuncConfigDict: ErrLog("Can not found ipyData FuncConfig key=%s!" % key) return "" cfgObj = IPYData.ipyFuncConfigDict[key] if index == 1: return cfgObj.Numerical1 if index == 2: return cfgObj.Numerical2 if index == 3: return cfgObj.Numerical3 if index == 4: return cfgObj.Numerical4 if index == 5: return cfgObj.Numerical5 ErrLog("Can not found ipyData FuncConfig key=%s,index=%s!" % (key, index)) return "" def GetFuncEvalCfg(key, index=1, defaultValue=[]): '''¶ÁÈ¡¹¦ÄÜÅäÖñíÅäÖÃÁÐ±í¡¢×Öµä¸ñʽרÓú¯Êý @param key: ÅäÖÃkey @param index: µÚ¼¸¸öÅäÖÃÖµ£¬Ö§³Ö1~5 @return: Ö±½Ó·µ»Ø¶ÔÓ¦µÄÊý¾ÝÀàÐÍ list¡¢dict¡¢tuple£¬²»ÓÃÔÙeval ÓÉÓڲ߻®ÓÐ×Ô¶¨ÒåµÄÁбí½á¹¹ obj|¡­ , µ±¸ÃÁбíÅäÖÃÖ»ÓÐÒ»¸öÔªËØÊ±£¬´ËʱÅäÖõÄÄÚÈÝΪµ¥¸öÊýÖµ£¬¼ÓÔØµÄÅäÖõÄʱºò´ËÌõÊý¾Ý»á±»×ªÎªintÐÍ ¹ÊʹÓøÃרÓú¯Êý·µ»ØÁбí½á¹¹£¬·½±ã¹¦ÄÜ¿ª·¢Ê±²»ÓÃÔÙ¿¼ÂÇÁбíΪintʱµÄÇé¿ö£» µ±È»Èç¹ûÅäÖõÄÄÚÈݱ¾Éí¾ÍΪpythonµÄÁÐ±í¡¢×Öµä½á¹¹µÄ»°¿ÉʹÓÃÉÏÃæµÄº¯Êý ²»¹ýΪÁËͳһ£¬½¨Ò鹦ÄÜÅäÖñí¶ÁÁÐ±í¡¢×Öµäʱ¶¼Ê¹Óøú¯Êý ''' if key not in IPYData.ipyFuncConfigDict: ErrLog("Can not found ipyData FuncConfig key=%s!" % key) return defaultValue cfgObj = IPYData.ipyFuncConfigDict[key] if index == 1: curConfig = cfgObj.Numerical1 elif index == 2: curConfig = cfgObj.Numerical2 elif index == 3: curConfig = cfgObj.Numerical3 elif index == 4: curConfig = cfgObj.Numerical4 elif index == 5: curConfig = cfgObj.Numerical5 else: ErrLog("Can not found ipyData FuncConfig key=%s,index=%s!" % (key, index)) return defaultValue curType = type(curConfig) if curType in [list, tuple, dict]: return curConfig if curType == int: return [curConfig] return defaultValue def GetFuncCompileCfg(key, index=1): '''»ñÈ¡¹¦ÄÜÅäÖñíÒѱàÒë¹ýµÄ¹«Ê½ @param key: ÅäÖÃkey @param index: µÚ¼¸¸öÅäÖÃÖµ£¬Ö§³Ö1~5 @return: ·µ»ØÒѱàÒë¹ýµÄ¹«Ê½ ''' return FormulaControl.GetCompileFormula(key + str(index), str(GetFuncCfg(key, index))) def InterpolationSearch(dtName, keyName, keyValue, conditionDict={}): '''²éѯÌõ¼þÏÂÓë¶ÔÓ¦²éѯ×ֶβο¼ÖµÏà½üµÄÊý¾ÝʵÀý£»²Î¿¼ÖµÐ¡ÓÚÅäÖñí×îСֵʱ·µ»Ønone£¬´óÓÚ×î´óֵʱ·µ»Ø×î´óÖµ¶ÔÓ¦µÄʵÀý @param dtName: ±íÃû£¬²»º¬tag @param keyName: ²Î¿¼×Ö¶ÎÃû @param keyValue: ²Î¿¼×Ö¶ÎÖµ @param conditionDict: ²éѯÌõ¼þ£¬{²éѯ×Ö¶ÎÃû:×Ö¶ÎÖµ, ...} @return: ÕÒ²»µ½Êý¾Ý·µ»Ø None £¬ ·ñÔò·µ»Ø¶ÔÓ¦µÄ ipyData Êý¾ÝʵÀý ''' if not conditionDict: dataList = getattr(IPYData, "ipy%sCache" % dtName) else: dataList = GetIpyGameDataByCondition(dtName, conditionDict, True) if not dataList: return low = 0 lowData = dataList[0] lowValue = getattr(lowData, "%s" % keyName) if keyValue < lowValue: return high = len(dataList) - 1 highData = dataList[high] highValue = getattr(highData, "%s" % keyName) if keyValue >= highValue: return highData near = low + int((high - low) * (keyValue - lowValue)/(highValue - lowValue)) nearData = dataList[near] nearValue = getattr(nearData, "%s" % keyName) if keyValue < nearValue: for i in xrange(near - 1, low - 1, -1): nearData = dataList[i] nearValue = getattr(nearData, "%s" % keyName) if nearValue < keyValue: return nearData elif keyValue > nearValue: for i in xrange(near + 1, high + 1): nearData = dataList[i] nearValue = getattr(nearData, "%s" % keyName) if nearValue > keyValue: return dataList[i - 1] return nearData