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