xdh
2019-05-21 c75ed6ee971145d2ebab03b6c1c5bb3bfada0400
6883 【2.0】【后端】灵根激活界面优化
3个文件已修改
56 ■■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetPack.py
@@ -11065,6 +11065,7 @@
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("SkillTypeID", c_int),    # 专精技能ID
                  ("DoType", c_ubyte),    # 0-激活 1-使用
                  ]
    def __init__(self):
@@ -11082,6 +11083,7 @@
        self.Cmd = 0xA5
        self.SubCmd = 0x16
        self.SkillTypeID = 0
        self.DoType = 0
        return
    def GetLength(self):
@@ -11094,12 +11096,14 @@
        DumpString = '''// A5 16 选择技能五行专精 //tagCMSelectSkillElement:
                                Cmd:%s,
                                SubCmd:%s,
                                SkillTypeID:%d
                                SkillTypeID:%d,
                                DoType:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.SkillTypeID
                                self.SkillTypeID,
                                self.DoType
                                )
        return DumpString
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetPack.py
@@ -11065,6 +11065,7 @@
                  ("Cmd", c_ubyte),
                  ("SubCmd", c_ubyte),
                  ("SkillTypeID", c_int),    # 专精技能ID
                  ("DoType", c_ubyte),    # 0-激活 1-使用
                  ]
    def __init__(self):
@@ -11082,6 +11083,7 @@
        self.Cmd = 0xA5
        self.SubCmd = 0x16
        self.SkillTypeID = 0
        self.DoType = 0
        return
    def GetLength(self):
@@ -11094,12 +11096,14 @@
        DumpString = '''// A5 16 选择技能五行专精 //tagCMSelectSkillElement:
                                Cmd:%s,
                                SubCmd:%s,
                                SkillTypeID:%d
                                SkillTypeID:%d,
                                DoType:%d
                                '''\
                                %(
                                self.Cmd,
                                self.SubCmd,
                                self.SkillTypeID
                                self.SkillTypeID,
                                self.DoType
                                )
        return DumpString
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -2071,6 +2071,7 @@
#{
#    tagHead        Head;
#    DWORD    SkillTypeID;    // 专精技能ID
#    BYTE    DoType;    // 0-激活升级 1-使用
#};
def OnSelectSkillElement(index, clientData, tick):
    curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
@@ -2088,26 +2089,36 @@
    if not mainSkill:
        GameWorld.DebugLog('主技能未学习,无法选专精mainSkillID=%s'%mainSkillID)
        return
    doType = clientData.DoType
    curElementSkillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SkillElementID % mainSkillID)
    activeSkillLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SkillElementLV % selectSkillID)
    #先判断是否可升级
    updSelectSkillLV = activeSkillLV
    nextSkill = GameWorld.GetGameData().FindSkillByType(selectSkillID, activeSkillLV + 1)
    if nextSkill:
        if CheckLearnSkillNeedAttr(curPlayer, nextSkill):
            updSelectSkillLV = activeSkillLV + 1
            skillElementType = GetSkillElementType(nextSkill)
    isChangeSkill = False #是否变更生效的技能
    if updSelectSkillLV != activeSkillLV:
    updSelectSkillLV = activeSkillLV
    #先判断是否可升级
    if doType is 0:
        nextSkill = GameWorld.GetGameData().FindSkillByType(selectSkillID, activeSkillLV + 1)
        if not nextSkill:
            return
        if not CheckLearnSkillNeedAttr(curPlayer, nextSkill):
            return
        updSelectSkillLV = activeSkillLV + 1
        skillElementType = GetSkillElementType(nextSkill)
        #可升级则激活升一级
        EventShell.EventRespons_ElementSkill(curPlayer, mainSkillID, skillElementType, updSelectSkillLV)
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SkillElementLV % selectSkillID, updSelectSkillLV)
        if curElementSkillID == selectSkillID:
        if not curElementSkillID or curElementSkillID == selectSkillID:
            #正在使用的专精技能,则立即生效
            isChangeSkill = True
    elif selectSkillID != curElementSkillID:
    else: # 使用
        if not activeSkillLV:
            #未激活不能使用
            return
        if selectSkillID == curElementSkillID:
            return
        isChangeSkill = True
    if isChangeSkill:
        #更换专精
        if not RefreshElementSkill(curPlayer, selectSkillID)[1]:
@@ -2115,10 +2126,9 @@
            return
        
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SkillElementID % mainSkillID, selectSkillID)
        if curElementSkillID:
            if curElementSkillID != selectSkillID:
                #原技能删除
                skillManager.DeleteSkillBySkillTypeID(curElementSkillID)
        if curElementSkillID and curElementSkillID != selectSkillID:
            #原技能删除
            skillManager.DeleteSkillBySkillTypeID(curElementSkillID)
        
    
        # 重刷被动技能