xdh
2018-08-14 7ce2afc5904cb5cde834afc018c42234c7e33ca6
fix:2519【优化】坐骑、灵宠、神兵的信息提示优化
5个文件已修改
60 ■■■■ 已修改文件
PySysDB/PySysDBPY.h 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGodWeapon.py 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
PySysDB/PySysDBPY.h
@@ -37,6 +37,7 @@
    list        AttrType;    //属性类型
    list        AttrNum;    //属性值
    DWORD        SkillID;    //激活技能ID
    char        SysMark;    //系统提示
};
//功能配置表格 #tagFuncConfig
@@ -190,6 +191,7 @@
{
    DWORD        _ID;    //灵兽NPCID
    BYTE        Quality;    //品质
    char        UnlockSys;    //解锁广播提示
    DWORD        UnLockNeedItemID;    //解锁灵兽物品ID
    BYTE        UnLockNeedItemCnt;    //解锁所需物品数量
    DWORD        DecomposeExp;    //分解单个解锁物品可获得升阶经验
@@ -198,6 +200,7 @@
    WORD        UseNeedRank;    //多少阶可切换外观
    list        SkillID;    //灵兽技能ID
    list        SkillUnLock;    //灵兽技能解锁需要阶数
    list        SkillUnLockSys;    //灵兽技能解锁提示
    DWORD        InitFightPower;    //初始战力
};
@@ -247,6 +250,7 @@
    BYTE        UseNeedRank;    //多少阶可切换外观
    BYTE        Quality;        //坐骑品质
    DWORD        InitFightPower;    //初始战力
    char        UnlockSys;    //解锁广播提示
};
@@ -260,6 +264,7 @@
    list        AttrType;    //激活加成属性类型
    list        AttrValue;    //激活加成属性值
    list        SkillID;    //可获得的技能ID
    char        SysMark;    //广播提示
};
//玩家等级表
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/IpyGameDataPY.py
@@ -62,6 +62,7 @@
                        ("list", "AttrType", 0),
                        ("list", "AttrNum", 0),
                        ("DWORD", "SkillID", 0),
                        ("char", "SysMark", 0),
                        ),
                "FuncConfig":(
@@ -169,6 +170,7 @@
                "PetInfo":(
                        ("DWORD", "ID", 1),
                        ("BYTE", "Quality", 0),
                        ("char", "UnlockSys", 0),
                        ("DWORD", "UnLockNeedItemID", 0),
                        ("BYTE", "UnLockNeedItemCnt", 0),
                        ("DWORD", "DecomposeExp", 0),
@@ -177,6 +179,7 @@
                        ("WORD", "UseNeedRank", 0),
                        ("list", "SkillID", 0),
                        ("list", "SkillUnLock", 0),
                        ("list", "SkillUnLockSys", 0),
                        ("DWORD", "InitFightPower", 0),
                        ),
@@ -210,6 +213,7 @@
                        ("BYTE", "UseNeedRank", 0),
                        ("BYTE", "Quality", 0),
                        ("DWORD", "InitFightPower", 0),
                        ("char", "UnlockSys", 0),
                        ),
                "HorseUp":(
@@ -219,6 +223,7 @@
                        ("list", "AttrType", 0),
                        ("list", "AttrValue", 0),
                        ("list", "SkillID", 0),
                        ("char", "SysMark", 0),
                        ),
                "PlayerLV":(
@@ -987,7 +992,8 @@
        self.Exp = 0
        self.AttrType = []
        self.AttrNum = []
        self.SkillID = 0
        self.SkillID = 0
        self.SysMark = ""
        return
        
    def GetType(self): return self.Type # 神兵类型
@@ -995,7 +1001,8 @@
    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 GetSkillID(self): return self.SkillID # 激活技能ID
    def GetSysMark(self): return self.SysMark # 系统提示
# 功能配置表格
class IPY_FuncConfig():
@@ -1218,6 +1225,7 @@
    def __init__(self):
        self.ID = 0
        self.Quality = 0
        self.UnlockSys = ""
        self.UnLockNeedItemID = 0
        self.UnLockNeedItemCnt = 0
        self.DecomposeExp = 0
@@ -1226,11 +1234,13 @@
        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 # 分解单个解锁物品可获得升阶经验
@@ -1239,6 +1249,7 @@
    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 # 初始战力
# 装备分解属性表
@@ -1296,7 +1307,8 @@
        self.MaxLV = 0
        self.UseNeedRank = 0
        self.Quality = 0
        self.InitFightPower = 0
        self.InitFightPower = 0
        self.UnlockSys = ""
        return
        
    def GetHorseID(self): return self.HorseID # 坐骑编号ID
@@ -1307,7 +1319,8 @@
    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 GetInitFightPower(self): return self.InitFightPower # 初始战力
    def GetUnlockSys(self): return self.UnlockSys # 解锁广播提示
# 坐骑升级表
class IPY_HorseUp():
@@ -1318,7 +1331,8 @@
        self.NeedExp = 0
        self.AttrType = []
        self.AttrValue = []
        self.SkillID = []
        self.SkillID = []
        self.SysMark = ""
        return
        
    def GetHorseID(self): return self.HorseID # 坐骑编号ID
@@ -1326,7 +1340,8 @@
    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 GetSkillID(self): return self.SkillID # 可获得的技能ID
    def GetSysMark(self): return self.SysMark # 广播提示
# 玩家等级表
class IPY_PlayerLV():
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGodWeapon.py
@@ -163,7 +163,7 @@
        curExp = curExp - totalExp
        attrLV += 1
        isLVUP = True
        GodWeaponLVUP(curPlayer, godWeaponData)
        GodWeaponLVUP(curPlayer, godWeaponData, attrLV)
        
        totalExp = godWeaponData.GetExp()
        if totalExp == 0:
@@ -180,7 +180,8 @@
        PlayerSuccess.UptateSuccessProgress(curPlayer, ShareDefine.SuccType_GodWeapon, attrLV, [weaponType])
        if beforeAttrLV == 0:
            # 解封通知
            PlayerControl.WorldNotify(0, 'GetGodWeapon', [curPlayer.GetName(), weaponType])
            sysMark = IpyGameDataPY.GetFuncEvalCfg('GodWeaponSys', 1, {}).get(weaponType, 'GetGodWeapon')
            PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), weaponType])
            
        #{1:[100,200,300,400],2:[100,200,300,400],3:[100,200,300,400]}
        notifyDict = IpyGameDataPY.GetFuncEvalCfg('GodLv', 1, {})
@@ -195,10 +196,14 @@
    return
#神兵升级触发其他功能:技能
def GodWeaponLVUP(curPlayer, godWeaponData):
def GodWeaponLVUP(curPlayer, godWeaponData, attrLV):
    skillID = godWeaponData.GetSkillID()
    if skillID:
        __GiveGodWeaponSkill(curPlayer, skillID)
        if __GiveGodWeaponSkill(curPlayer, skillID):
            sysMark = godWeaponData.GetSysMark()
            if sysMark:
                PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), attrLV, skillID])
@@ -266,5 +271,5 @@
    #    BuffSkill.DoAddBuff(curPlayer, buffType, skillData, GameWorld.GetGameWorld().GetTick(), [], curPlayer)
    PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEff(curPlayer, skillResId)
    PlayerControl.PlayerControl(curPlayer).RefreshSkillFightPowerEx(skillResId, 0)
    return
    return True
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py
@@ -631,9 +631,10 @@
        
        skillIDList = upIpyData.GetSkillID()
        if skillIDList:
            sysMark = upIpyData.GetSysMark() or 'MountUpLv'
            for skillID in skillIDList:
                __GiveSkill(curPlayer, skillID, tick)
                PlayerControl.WorldNotify(0, 'MountUpLv', [playerName, horseID, updClassLV, skillID])
                PlayerControl.WorldNotify(0, sysMark, [playerName, horseID, updClassLV, skillID])
        if not skillIDList and updClassLV == maxLV:
            PlayerControl.WorldNotify(0, 'MountUpLvMax', [playerName, horseID])
        
@@ -850,7 +851,8 @@
    # 刷属性,更新排行榜
    RefreshHorseAttr(curPlayer)
    PlayerControl.WorldNotify(0, 'GetMount', [curPlayer.GetName(), ipyData.GetItemID()])
    sysMark = ipyData.GetUnlockSys() or 'GetMount'
    PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), ipyData.GetItemID()])
#    
#    HorseSkinNotifyDict = ReadChConfig.GetEvalChConfig("HorseSkinNotify")
#    if horseSkinID in HorseSkinNotifyDict:
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerPet.py
@@ -455,7 +455,8 @@
    ItemCommon.ReduceItem(curPlayer, itemPack, itemList, needItemCnt, False, ChConfig.ItemDel_Pet)
        
    EventShell.EventRespons_OnActivatePet(curPlayer, petNPCID)
    PlayerControl.WorldNotify(0, 'GetPet', [curPlayer.GetName(), petNPCID])
    sysMark = ipyData.GetUnlockSys() or 'GetPet'
    PlayerControl.WorldNotify(0, sysMark, [curPlayer.GetName(), petNPCID])
    rolePet = curPlayer.GetPetMgr().GetFightPet()
    if not rolePet:
        petItemIndex = GetPetDataItemIndexByNPCID(curPlayer, petNPCID)
@@ -653,6 +654,7 @@
        petIpyData = GetPetIpydata(petNPCID)
        petSkillList = petIpyData.GetSkillID()
        petSkillUnLockList = petIpyData.GetSkillUnLock()
        sysMarkList = petIpyData.GetSkillUnLockSys()
        learnSkillList = []
        for i, skillid in enumerate(petSkillList):
            limitPetClassLV = petSkillUnLockList[i] # 学习此技能所需宠物阶级
@@ -668,7 +670,8 @@
                #被动技能不学
                learnSkillList.append(skillid)
            #广播
            PlayerControl.WorldNotify(0, 'PetUpLv', [playerName, petNPCID, limitPetClassLV, skillid])
            sysMark = sysMarkList[i] if i < len(sysMarkList) else 'PetUpLv'
            PlayerControl.WorldNotify(0, sysMark, [playerName, petNPCID, limitPetClassLV, skillid])
        if not learnSkillList and updClassLV + 1 == maxClassLV:
            PlayerControl.WorldNotify(0, 'PetUpLvMax', [playerName, petNPCID])