From 02f8c83ffab335d63d18bdde30e61bd2233f1f87 Mon Sep 17 00:00:00 2001 From: xdh <xiefantasy@qq.com> Date: 星期四, 09 五月 2019 16:58:57 +0800 Subject: [PATCH] 6501 【后端】【2.0】仙盟任务(增加多个任务接口) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py | 33 ++++++++++++++++++--------------- 1 files changed, 18 insertions(+), 15 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 5478a20..de1bdf3 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py @@ -1866,7 +1866,7 @@ #获得技能等级 curSkillLV = curSkill.GetSkillLV() DataRecordPack.DR_LearnORUPSkill(curPlayer, curSkillID, curSkillLV) - EventShell.EventRespons_SkillUp(curPlayer, curSkill.GetFuncType()) + EventShell.EventRespons_SkillUp(curPlayer, curSkill.GetFuncType(), curSkillLV) GameWorld.Log("升级技能名 = %s 成功, 当前等级 = %s"%(curSkill.GetSkillName(), curSkill.GetSkillLV()), curPlayer.GetPlayerID()) return True @@ -2095,6 +2095,7 @@ isChangeSkill = False #是否变更生效的技能 if updSelectSkillLV != activeSkillLV: #可升级则激活升一级 + EventShell.EventRespons_ElementSkill(curPlayer, mainSkillID, updSelectSkillLV) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SkillElementLV % selectSkillID, updSelectSkillLV) if curElementSkillID == selectSkillID: #正在使用的专精技能,则立即生效 @@ -2113,8 +2114,7 @@ if curElementSkillID != selectSkillID: #原技能删除 skillManager.DeleteSkillBySkillTypeID(curElementSkillID) - else: - EventShell.EventRespons_ElementSkill(curPlayer) + # 重刷被动技能 PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEff(curPlayer) @@ -2201,20 +2201,23 @@ NotifyElementSkillInfo(curPlayer) return -def GetElementSkillCnt(curPlayer): +def GetElementSkillCnt(curPlayer, mainSkillIDList, activeLV): ##获取已选择的专精技能数量 cnt = 0 skillManager = curPlayer.GetSkillManager() for i in xrange(skillManager.GetSkillCount()): hasSkill = skillManager.GetSkillByIndex(i) hasSkillID = hasSkill.GetSkillTypeID() - ipyData = IpyGameDataPY.GetIpyGameDataByCondition('SkillElement', {'MainSkillID':hasSkillID}, False, False) - if not ipyData: + if hasSkillID not in mainSkillIDList: continue - curElementSkillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SkillElementID % hasSkillID) - if not curElementSkillID: + ipyDataList = IpyGameDataPY.GetIpyGameDataByCondition('SkillElement', {'MainSkillID':hasSkillID}, True, False) + if not ipyDataList: continue - cnt +=1 + for ipyData in ipyDataList: + elementSkillID = ipyData.GetElementSkillID() + curActiveLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SkillElementLV % elementSkillID) + if curActiveLV >= activeLV: + cnt += 1 return cnt def __InitElementSkillInfo(): @@ -3770,11 +3773,11 @@ -## 获取技能总等级 +## 获取某类型技能达到X等级的个数 # @param curPlayer # @return allSkillLV:总技能等级 -def GetAllSkillLV(curPlayer, funcType): - allSkillLV = 0 +def GetSkillCntByFunc(curPlayer, funcType, skilllv=0): + allSkillCnt = 0 skillManager = curPlayer.GetSkillManager() for i in xrange(skillManager.GetSkillCount()): curPlayerSkill = skillManager.GetSkillByIndex(i) @@ -3782,9 +3785,9 @@ continue if curPlayerSkill.GetFuncType() != funcType: continue - skillLV = curPlayerSkill.GetSkillLV() - allSkillLV += skillLV + if curPlayerSkill.GetSkillLV() >= skilllv: + allSkillCnt += 1 - return allSkillLV + return allSkillCnt -- Gitblit v1.8.0