From b49ad3d0dca73df86fcfeb276e5b45567c71e1ed Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 14 五月 2019 19:43:01 +0800
Subject: [PATCH] 6778 【后端】【2.0】任务接口开发(技能专精升级改为指定专精类型,判断专精技能个数及设置专精技能个数增加支持指定专精类型)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py | 10 ++++++----
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py | 13 +++++++++++--
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py | 6 +++---
3 files changed, 20 insertions(+), 9 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
index a6ed4ea..604f7a8 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
@@ -1914,9 +1914,9 @@
RunQuestEvent(curPlayer, "thinkfabao", 'thinkfabao', Def_RunQuestType_Normal)
return
-def EventRespons_ElementSkill(curPlayer, mainSkillID, updSelectSkillLV):
- #激活五行专精 主技能ID_激活等级.xml
- RunQuestEvent(curPlayer, "elementskill", '%s_%s'%(mainSkillID, updSelectSkillLV), Def_RunQuestType_Normal)
+def EventRespons_ElementSkill(curPlayer, mainSkillID, skillElementType, updSelectSkillLV):
+ #激活五行专精 主技能ID_专精类型_激活等级.xml
+ RunQuestEvent(curPlayer, "elementskill", '%s_%s_%s'%(mainSkillID, skillElementType, updSelectSkillLV), Def_RunQuestType_Normal)
return
def EventRespons_EquipStarUp(curPlayer):
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
index 947d3a0..62ce360 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
@@ -7094,20 +7094,21 @@
##某主技能对应专精技能达到激活X等级的数量是否达到
# @param None
-# @return None <Elementskillcnt value="cnt" mainskill="[]" activelv=""/>
+# @return None <Elementskillcnt value="cnt" mainskill="[]" activelv="" elementtype="专精类型"/>
def ConditionType_Elementskillcnt(curPlayer, curMission, curActionNode):
cnt = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0)
mainskill = curActionNode.GetAttribute("mainskill")
mainSkillIDList = eval(mainskill) if mainskill else []
activeLV = GameWorld.ToIntDef(curActionNode.GetAttribute("activelv"), 1)
- return SkillShell.GetElementSkillCnt(curPlayer, mainSkillIDList, activeLV) >= cnt
+ elementType = GameWorld.ToIntDef(curActionNode.GetAttribute("elementtype"), 0)
+ return SkillShell.GetElementSkillCnt(curPlayer, mainSkillIDList, activeLV, elementType) >= cnt
##设置已选择的专精技能数量
# @param curPlayer 玩家实例
# @param curMission 任务实例
# @param curActionNode节点信息
# @return 返回值无意义
-# @remarks <Set_Elementskillcnt key="" mainskill="[]" activelv=""/>
+# @remarks <Set_Elementskillcnt key="" mainskill="[]" activelv="" elementtype="专精类型"/>
def DoType_Set_Elementskillcnt(curPlayer, curMission, curActionNode):
key = curActionNode.GetAttribute("key")
questID = GameWorld.ToIntDef(curActionNode.GetAttribute("id"), 0)
@@ -7116,7 +7117,8 @@
activeLV = GameWorld.ToIntDef(curActionNode.GetAttribute("activelv"), 1)
if questID != 0:
curMission = curPlayer.FindMission(questID)
- curMission.SetProperty(key, SkillShell.GetElementSkillCnt(curPlayer, mainSkillIDList, activeLV))
+ elementType = GameWorld.ToIntDef(curActionNode.GetAttribute("elementtype"), 0)
+ curMission.SetProperty(key, SkillShell.GetElementSkillCnt(curPlayer, mainSkillIDList, activeLV, elementType))
return
##设置符合条件的已穿基础装备数量
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 ca70991..1b2f8a6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -2060,6 +2060,8 @@
## 获取技能升级属性需求 rutrun attrID, attrvalue
def GetSkillUpNeedAttr(stateSkillLV):return stateSkillLV /100000, stateSkillLV%100000
+## 获取技能专精类型
+def GetSkillElementType(curSkill): return curSkill.GetStateSkillLV() /100000
#// A5 16 选择技能五行专精 #tagCMSelectSkillElement
#
@@ -2092,10 +2094,11 @@
if nextSkill:
if CheckLearnSkillNeedAttr(curPlayer, nextSkill):
updSelectSkillLV = activeSkillLV + 1
+ skillElementType = GetSkillElementType(nextSkill)
isChangeSkill = False #是否变更生效的技能
if updSelectSkillLV != activeSkillLV:
#可升级则激活升一级
- EventShell.EventRespons_ElementSkill(curPlayer, mainSkillID, updSelectSkillLV)
+ EventShell.EventRespons_ElementSkill(curPlayer, mainSkillID, skillElementType, updSelectSkillLV)
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SkillElementLV % selectSkillID, updSelectSkillLV)
if curElementSkillID == selectSkillID:
#正在使用的专精技能,则立即生效
@@ -2209,8 +2212,10 @@
NotifyElementSkillInfo(curPlayer)
return
-def GetElementSkillCnt(curPlayer, mainSkillIDList, activeLV):
+def GetElementSkillCnt(curPlayer, mainSkillIDList, activeLV, elementType=0):
##获取已选择的专精技能数量
+ # @param elementType: 专精类型,对应灵根ID
+ gameData = GameWorld.GetGameData()
cnt = 0
skillManager = curPlayer.GetSkillManager()
for i in xrange(skillManager.GetSkillCount()):
@@ -2223,6 +2228,10 @@
continue
for ipyData in ipyDataList:
elementSkillID = ipyData.GetElementSkillID()
+ if elementType:
+ elementSkillData = gameData.GetSkillBySkillID(elementSkillID)
+ if GetSkillElementType(elementSkillData) != elementType:
+ continue
curActiveLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SkillElementLV % elementSkillID)
if curActiveLV >= activeLV:
cnt += 1
--
Gitblit v1.8.0