ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventShell.py
@@ -1907,6 +1907,11 @@ #感应法宝 RunQuestEvent(curPlayer, "thinkfabao", 'thinkfabao', Def_RunQuestType_Normal) return def EventRespons_ElementSkill(curPlayer): #选择五行专精 RunQuestEvent(curPlayer, "elementskill", 'elementskill', Def_RunQuestType_Normal) return #--------------------------------------------------------------------- #================================================================================ ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/QuestRunner.py
@@ -7069,7 +7069,26 @@ totallv = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0) return PlayerHorse.GetHorseSumLV(curPlayer) >= totallv ##已选择的专精技能数量是否达到 # @param None # @return None <Elementskillcnt value="cnt"/> def ConditionType_Elementskillcnt(curPlayer, curMission, curActionNode): cnt = GameWorld.ToIntDef(curActionNode.GetAttribute("value"), 0) return SkillShell.GetElementSkillCnt(curPlayer) >= cnt ##设置已选择的专精技能数量 # @param curPlayer 玩家实例 # @param curMission 任务实例 # @param curActionNode节点信息 # @return 返回值无意义 # @remarks <Set_Elementskillcnt key="" /> def DoType_Set_Elementskillcnt(curPlayer, curMission, curActionNode): key = curActionNode.GetAttribute("key") questID = GameWorld.ToIntDef(curActionNode.GetAttribute("id"), 0) if questID != 0: curMission = curPlayer.FindMission(questID) curMission.SetProperty(key, SkillShell.GetElementSkillCnt(curPlayer)) return ##法宝激活个数 # @param None ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Skill/SkillShell.py
@@ -46,6 +46,7 @@ import FBCommon import IpyGameDataPY import PyGameData import EventShell #import EquipZhuXian #--------------------------------------------------------------------- GameWorld.ImportAll("Script\\Skill\\" , "GameSkills") @@ -2061,8 +2062,11 @@ GameWorld.DebugLog('主技能未学习,无法选专精mainSkillID=%s'%mainSkillID) return PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_SkillElementID % mainSkillID, selectSkillID) #原技能删除 skillManager.DeleteSkillBySkillTypeID(curElementSkillID) if curElementSkillID: #原技能删除 skillManager.DeleteSkillBySkillTypeID(curElementSkillID) else: EventShell.EventRespons_ElementSkill(curPlayer) #更新新技能 RefreshElementSkill(curPlayer, selectSkillID) # 重刷被动技能 @@ -2137,6 +2141,22 @@ PlayerControl.PlayerControl(curPlayer).RefreshAllSkill() return def GetElementSkillCnt(curPlayer): ##获取已选择的专精技能数量 cnt = 0 skillManager = curPlayer.GetSkillManager() for i in xrange(skillManager.GetSkillCount()): hasSkill = skillManager.GetSkillByIndex(i) hasSkillID = hasSkill.GetSkillID() ipyData = IpyGameDataPY.GetIpyGameDataByCondition('SkillElement', {'MainSkillID':hasSkillID}, False, False) if not ipyData: continue curElementSkillID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_SkillElementID % hasSkillID) if not curElementSkillID: continue cnt +=1 return cnt def __InitElementSkillInfo(): #缓存技能专精信息{skillID:[attrID*10000+needValue,..]} if not PyGameData.g_elemntSkillDict: