From d234a98ab0ad9f728165c766fa6d098a4fb0c537 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期二, 18 六月 2019 17:24:16 +0800 Subject: [PATCH] 7354 【后端】【2.0】仙盟boss每个人可鼓舞次数从1次修改为3次 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py | 42 ++++++++++++++++++++++++++++-------------- 1 files changed, 28 insertions(+), 14 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py index 0fe4931..c645db3 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py @@ -1358,6 +1358,10 @@ if curPlayer.GetHP() <= 0: return + if curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_ClientCustomScene): + #GameWorld.DebugLog("自定义场景中,不检查!") + return True + #=========================================================================== # if curPlayer.IsMoving(): # GameWorld.DebugLog("移动中不可使用技能") @@ -2069,6 +2073,7 @@ #{ # tagHead Head; # DWORD SkillTypeID; // 专精技能ID +# BYTE DoType; // 0-激活升级 1-使用 #}; def OnSelectSkillElement(index, clientData, tick): curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) @@ -2086,26 +2091,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: #正在使用的专精技能,则立即生效 isChangeSkill = True - elif selectSkillID != curElementSkillID: + else: # 使用 + if not activeSkillLV: + #未激活不能使用 + return + if selectSkillID == curElementSkillID: + return isChangeSkill = True - + if isChangeSkill: #更换专精 if not RefreshElementSkill(curPlayer, selectSkillID)[1]: @@ -2113,10 +2128,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) # 重刷被动技能 -- Gitblit v1.8.0