xdh
2019-03-20 8a5a4dc89554504aa6f106744498319b8ce4f2b8
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -43,16 +43,13 @@
                "Realm":(
                        ("WORD", "Lv", 1),
                        ("BYTE", "IsBigRealm", 0),
                        ("DWORD", "NeedPoint", 0),
                        ("DWORD", "NeedLV", 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),
                        ("DWORD", "BuffID", 0),
                        ),
                "GodWeapon":(
@@ -133,16 +130,12 @@
                        ("BYTE", "ItemType", 1),
                        ("BYTE", "ItemColor", 1),
                        ("BYTE", "IsSuit", 1),
                        ("BYTE", "FixedLegendAttrCount", 0),
                        ("BYTE", "GoodLegendAttrCount", 0),
                        ("BYTE", "OtherLegendAttrCount", 0),
                        ("list", "LegendAttrCountInfo", 0),
                        ),
                "EquipLegendAttrType":(
                        ("BYTE", "ItemType", 1),
                        ("list", "FixedLegendAttrList", 0),
                        ("list", "GoodLegendAttrList", 0),
                        ("list", "CommLegendAttrList", 0),
                        ("dict", "LegendAttrTypeLib", 0),
                        ),
                "EquipLegendAttrLib":(
@@ -416,10 +409,10 @@
                        ("BYTE", "PieRateDoCnt", 0),
                        ("dict", "IndepRateDrop", 0),
                        ("BYTE", "IndepRateDoCnt", 0),
                        ("dict", "IndepRateMaxDropCount", 0),
                        ("dict", "EquipStarInfo", 0),
                        ("list", "KillCountDropEquipEx", 0),
                        ("list", "KillCountDropEquipEx2", 0),
                        ("dict", "EquipColorMaxDropCount", 0),
                        ("dict", "EquipColorSuitInfo", 0),
                        ("dict", "EquipPartKeyRateInfo", 0),
                        ("dict", "KillCountDropEquipPub", 0),
                        ("dict", "ItemIDDropRate", 0),
                        ("dict", "ItemIDMaxDropCount", 0),
                        ("dict", "ItemKeyDropRate", 0),
@@ -429,8 +422,10 @@
                        ("WORD", "DropMoneyRate", 0),
                        ("WORD", "DropMoneyMin", 0),
                        ("WORD", "DropMoneyMax", 0),
                        ("list", "KillCountDrop", 0),
                        ("dict", "KillCountDropPub", 0),
                        ("list", "KillCountDropPri", 0),
                        ("list", "PriItemIDDrop", 0),
                        ("BYTE", "AucionItemCanSell", 0),
                        ),
                "RuneTower":(
@@ -469,7 +464,6 @@
                        ("DWORD", "MapID", 0),
                        ("WORD", "LVLimitMin", 0),
                        ("WORD", "LVLimitMax", 0),
                        ("BYTE", "JobRankLimit", 0),
                        ("DWORD", "TicketID", 0),
                        ("list", "TicketCostCnt", 0),
                        ("WORD", "TicketPrice", 0),
@@ -1165,14 +1159,6 @@
                        ("list", "ItemList", 0),
                        ),
                "GodWeaponEffect":(
                        ("BYTE", "GWType", 0),
                        ("WORD", "Level", 0),
                        ("char", "NotifyCode", 0),
                        ("DWORD", "FightPower", 0),
                        ("dict", "Attr", 0),
                        ),
                "CrossRealmPKDan":(
                        ("BYTE", "DanLV", 1),
                        ("WORD", "LVUpScore", 0),
@@ -1411,6 +1397,18 @@
                        ("dict", "CostItem", 0),
                        ("dict", "Attr", 0),
                        ),
                "FamilyBossAward":(
                        ("list", "WorldLV", 0),
                        ("list", "Rank", 0),
                        ("list", "Award", 0),
                        ),
                "ItemWashMax":(
                        ("BYTE", "Type", 1),
                        ("BYTE", "Star", 1),
                        ("WORD", "LevelMax", 0),
                        ),
                }
@@ -1438,29 +1436,23 @@
    
    def __init__(self):
        self.Lv = 0
        self.IsBigRealm = 0
        self.NeedPoint = 0
        self.NeedLV = 0
        self.NeedItemID = 0
        self.NeedItemCnt = 0
        self.NeedActiveTreasure = {}
        self.AddAttrType = []
        self.AddAttrNum = []
        self.BossID = 0
        self.SitTime = {}
        self.TeamAward = {}
        self.BuffID = 0
        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 GetNeedLV(self): return self.NeedLV # 需要等级
    def GetNeedItemID(self): return self.NeedItemID # 需要道具ID
    def GetNeedItemCnt(self): return self.NeedItemCnt # 消耗的道具数量
    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 # 组队帮打的人的奖励
    def GetBuffID(self): return self.BuffID # 给全服在线玩家增加buff
# 神兵表
class IPY_GodWeapon():
@@ -1625,32 +1617,24 @@
        self.ItemType = 0
        self.ItemColor = 0
        self.IsSuit = 0
        self.FixedLegendAttrCount = 0
        self.GoodLegendAttrCount = 0
        self.OtherLegendAttrCount = 0
        self.LegendAttrCountInfo = []
        return
        
    def GetItemType(self): return self.ItemType # 物品类型
    def GetItemColor(self): return self.ItemColor # 物品颜色
    def GetIsSuit(self): return self.IsSuit # 是否套装
    def GetFixedLegendAttrCount(self): return self.FixedLegendAttrCount # 固定传奇属性条数
    def GetGoodLegendAttrCount(self): return self.GoodLegendAttrCount # 追求传奇属性保底条数
    def GetOtherLegendAttrCount(self): return self.OtherLegendAttrCount # 其他随机传奇属性条数
    def GetLegendAttrCountInfo(self): return self.LegendAttrCountInfo # 传奇属性条数信息 [[条数, [属性类型库编号, ...]], ...]
# 装备传奇属性类型表
class IPY_EquipLegendAttrType():
    
    def __init__(self):
        self.ItemType = 0
        self.FixedLegendAttrList = []
        self.GoodLegendAttrList = []
        self.CommLegendAttrList = []
        self.LegendAttrTypeLib = {}
        return
        
    def GetItemType(self): return self.ItemType # 物品类型
    def GetFixedLegendAttrList(self): return self.FixedLegendAttrList # 固定传奇属性列表
    def GetGoodLegendAttrList(self): return self.GoodLegendAttrList # 追求传奇属性列表
    def GetCommLegendAttrList(self): return self.CommLegendAttrList # 一般传奇属性列表
    def GetLegendAttrTypeLib(self): return self.LegendAttrTypeLib # 传奇属性类型库 {属性类型库编号:[属性ID,...], ...}
# 装备传奇属性值库表
class IPY_EquipLegendAttrLib():
@@ -2209,10 +2193,10 @@
        self.PieRateDoCnt = 0
        self.IndepRateDrop = {}
        self.IndepRateDoCnt = 0
        self.IndepRateMaxDropCount = {}
        self.EquipStarInfo = {}
        self.KillCountDropEquipEx = []
        self.KillCountDropEquipEx2 = []
        self.EquipColorMaxDropCount = {}
        self.EquipColorSuitInfo = {}
        self.EquipPartKeyRateInfo = {}
        self.KillCountDropEquipPub = {}
        self.ItemIDDropRate = {}
        self.ItemIDMaxDropCount = {}
        self.ItemKeyDropRate = {}
@@ -2222,8 +2206,10 @@
        self.DropMoneyRate = 0
        self.DropMoneyMin = 0
        self.DropMoneyMax = 0
        self.KillCountDrop = []
        self.PriItemIDDrop = []
        self.KillCountDropPub = {}
        self.KillCountDropPri = []
        self.PriItemIDDrop = []
        self.AucionItemCanSell = 0
        return
        
    def GetNPCID(self): return self.NPCID # NPCID
@@ -2231,14 +2217,14 @@
    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 GetPieRateDrop(self): return self.PieRateDrop # 饼图概率掉落信息 [(概率,0),(概率,(阶,颜色)),...]
    def GetPieRateDoCnt(self): return self.PieRateDoCnt # 饼图概率执行次数
    def GetIndepRateDrop(self): return self.IndepRateDrop # 独立概率掉落信息 {(阶,颜色,部位集合key):概率,...}
    def GetIndepRateDrop(self): return self.IndepRateDrop # 独立概率掉落信息 {(阶,颜色):概率,...}
    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 GetEquipColorMaxDropCount(self): return self.EquipColorMaxDropCount # 装备颜色最大掉落物品数 {颜色:上限数量,...}
    def GetEquipColorSuitInfo(self): return self.EquipColorSuitInfo # 装备颜色对应套装概率 {颜色:套装概率, ...}
    def GetEquipPartKeyRateInfo(self): return self.EquipPartKeyRateInfo # 装备部位集合信息 {(颜色,是否套装):部位集合key, ...}
    def GetKillCountDropEquipPub(self): return self.KillCountDropEquipPub # 第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:概率, ...}
@@ -2248,8 +2234,10 @@
    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, ...]
    def GetKillCountDropPub(self): return self.KillCountDropPub # 击杀次数必掉(公共){击杀次数:[[物品ID, ...], [随机物品ID, ...]], ...}
    def GetKillCountDropPri(self): return self.KillCountDropPri # 击杀次数必掉(私有)[击杀次数,[物品ID,...],是否直接放入背包]
    def GetPriItemIDDrop(self): return self.PriItemIDDrop # 所有归属者私有掉落物品ID列表,每人一份,默认绑定,没有职业区分[物品ID, ...]
    def GetAucionItemCanSell(self): return self.AucionItemCanSell # 掉落拍品可否上架集市
# 符印塔表
class IPY_RuneTower():
@@ -2322,7 +2310,6 @@
        self.MapID = 0
        self.LVLimitMin = 0
        self.LVLimitMax = 0
        self.JobRankLimit = 0
        self.TicketID = 0
        self.TicketCostCnt = []
        self.TicketPrice = 0
@@ -2341,7 +2328,6 @@
    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)
@@ -3789,23 +3775,6 @@
    def GetLVLimit(self): return self.LVLimit # 等级范围
    def GetItemList(self): return self.ItemList # 奖励
# 神兵特效表
class IPY_GodWeaponEffect():
    def __init__(self):
        self.GWType = 0
        self.Level = 0
        self.NotifyCode = ""
        self.FightPower = 0
        self.Attr = {}
        return
    def GetGWType(self): return self.GWType # 神兵类型
    def GetLevel(self): return self.Level # 神兵等级
    def GetNotifyCode(self): return self.NotifyCode # 广播
    def GetFightPower(self): return self.FightPower # 增加战力
    def GetAttr(self): return self.Attr # 属性加成
# 跨服竞技场段位表
class IPY_CrossRealmPKDan():
    
@@ -4313,6 +4282,32 @@
    def GetNeedPlusLV(self): return self.NeedPlusLV # 需要强化等级
    def GetCostItem(self): return self.CostItem # 消耗材料
    def GetAttr(self): return self.Attr # 属性
# 仙盟Boss奖励表
class IPY_FamilyBossAward():
    def __init__(self):
        self.WorldLV = []
        self.Rank = []
        self.Award = []
        return
    def GetWorldLV(self): return self.WorldLV # 世界等级
    def GetRank(self): return self.Rank # 排名
    def GetAward(self): return self.Award # 奖励 [[独立概率万分率,[物品ID,数量,拍品分组]],..]
# 装备洗练等级上限
class IPY_ItemWashMax():
    def __init__(self):
        self.Type = 0
        self.Star = 0
        self.LevelMax = 0
        return
    def GetType(self): return self.Type # 按装备位对应类型查找
    def GetStar(self): return self.Star #  装备星数
    def GetLevelMax(self): return self.LevelMax # 洗练等级上限
def Log(msg, playerID=0, par=0):
@@ -4556,8 +4551,6 @@
        self.ipyMagicWeaponFBLen = len(self.ipyMagicWeaponFBCache)
        self.ipyIceLodeStarAwardCache = self.__LoadFileData("IceLodeStarAward", IPY_IceLodeStarAward)
        self.ipyIceLodeStarAwardLen = len(self.ipyIceLodeStarAwardCache)
        self.ipyGodWeaponEffectCache = self.__LoadFileData("GodWeaponEffect", IPY_GodWeaponEffect)
        self.ipyGodWeaponEffectLen = len(self.ipyGodWeaponEffectCache)
        self.ipyCrossRealmPKDanCache = self.__LoadFileData("CrossRealmPKDan", IPY_CrossRealmPKDan)
        self.ipyCrossRealmPKDanLen = len(self.ipyCrossRealmPKDanCache)
        self.ipyCrossRealmPKDanAwardCache = self.__LoadFileData("CrossRealmPKDanAward", IPY_CrossRealmPKDanAward)
@@ -4618,6 +4611,10 @@
        self.ipyEquipStarUpLen = len(self.ipyEquipStarUpCache)
        self.ipyEquipPlusEvolveCache = self.__LoadFileData("EquipPlusEvolve", IPY_EquipPlusEvolve)
        self.ipyEquipPlusEvolveLen = len(self.ipyEquipPlusEvolveCache)
        self.ipyFamilyBossAwardCache = self.__LoadFileData("FamilyBossAward", IPY_FamilyBossAward)
        self.ipyFamilyBossAwardLen = len(self.ipyFamilyBossAwardCache)
        self.ipyItemWashMaxCache = self.__LoadFileData("ItemWashMax", IPY_ItemWashMax)
        self.ipyItemWashMaxLen = len(self.ipyItemWashMaxCache)
        Log("IPY_FuncConfig count=%s" % len(self.ipyFuncConfigDict))
        Log("IPY_DataMgr InitOK!")
        return
@@ -5002,8 +4999,6 @@
    def GetMagicWeaponFBByIndex(self, index): return self.ipyMagicWeaponFBCache[index]
    def GetIceLodeStarAwardCount(self): return self.ipyIceLodeStarAwardLen
    def GetIceLodeStarAwardByIndex(self, index): return self.ipyIceLodeStarAwardCache[index]
    def GetGodWeaponEffectCount(self): return self.ipyGodWeaponEffectLen
    def GetGodWeaponEffectByIndex(self, index): return self.ipyGodWeaponEffectCache[index]
    def GetCrossRealmPKDanCount(self): return self.ipyCrossRealmPKDanLen
    def GetCrossRealmPKDanByIndex(self, index): return self.ipyCrossRealmPKDanCache[index]
    def GetCrossRealmPKDanAwardCount(self): return self.ipyCrossRealmPKDanAwardLen
@@ -5064,6 +5059,10 @@
    def GetEquipStarUpByIndex(self, index): return self.ipyEquipStarUpCache[index]
    def GetEquipPlusEvolveCount(self): return self.ipyEquipPlusEvolveLen
    def GetEquipPlusEvolveByIndex(self, index): return self.ipyEquipPlusEvolveCache[index]
    def GetFamilyBossAwardCount(self): return self.ipyFamilyBossAwardLen
    def GetFamilyBossAwardByIndex(self, index): return self.ipyFamilyBossAwardCache[index]
    def GetItemWashMaxCount(self): return self.ipyItemWashMaxLen
    def GetItemWashMaxByIndex(self, index): return self.ipyItemWashMaxCache[index]
IPYData = IPY_DataMgr()
def IPY_Data(): return IPYData