From d5e9bbcf96cf98d767ba073774b1ee287569659d Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期六, 24 十一月 2018 18:20:13 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/SnxxServerCode --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGreatMaster.py | 34 ++++++++++++++++++++++++++++------ 1 files changed, 28 insertions(+), 6 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGreatMaster.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGreatMaster.py index 6ba891d..5c08e81 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGreatMaster.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGreatMaster.py @@ -27,14 +27,31 @@ import GameFuncComm import IpyGameDataPY import ItemCommon +import PassiveBuffEffMng ## 大师功能是否开启 # @param curPlayer # @return def IsGreatMasterOpen(curPlayer): - if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_GreatMaster): + if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Talent): return False return True + +def DoTalentOpen(curPlayer): + '''天赋功能开启处理天赋点 ''' + curLV = curPlayer.GetLV() + openLV = GameFuncComm.GetFuncLimitLV(ShareDefine.GameFuncID_Talent) + setTalentPoint = 0 + for lv in xrange(openLV, curLV+1): + lvIpyData = PlayerControl.GetPlayerLVIpyData(lv) + addTalentPoint = lvIpyData.GetTalentPoint() if lvIpyData else 0 + setTalentPoint += addTalentPoint + curFreeSkillPoint = GetGreatMasterFreeSkillPoint(curPlayer) + if setTalentPoint != curFreeSkillPoint: + SetGreatMasterFreeSkillPoint(curPlayer, setTalentPoint) + Sync_GreatMasterFreeSkillPoint(curPlayer) + GameWorld.Log(' 天赋功能开启处理天赋点 beforeTalentPoint=%s,setTalentPoint=%s, curLV=%s'%(curFreeSkillPoint, setTalentPoint, curLV), curPlayer.GetID()) + return ## 登录处理 # @param curPlayer @@ -54,7 +71,7 @@ if not addPoint: return curFreeSkillPoint = GetGreatMasterFreeSkillPoint(curPlayer) - #GameWorld.DebugLog("大师天赋点!curFreeSkillPoint = %s"%curFreeSkillPoint) + GameWorld.DebugLog("大师天赋点!curFreeSkillPoint = %s"%curFreeSkillPoint) SetGreatMasterFreeSkillPoint(curPlayer, curFreeSkillPoint + addPoint) Sync_GreatMasterFreeSkillPoint(curPlayer) return @@ -309,8 +326,10 @@ skillManager = curPlayer.GetSkillManager() isRefreshAttr = False + delCnt = 0 for i in range(0, skillManager.GetSkillCount()): - skill = skillManager.GetSkillByIndex(i) + dataIndex = i-delCnt + skill = skillManager.GetSkillByIndex(dataIndex) if skill == None: continue skillTypeID = skill.GetSkillTypeID() @@ -322,8 +341,8 @@ isRefreshAttr = True resetPoint += curSkillLV - skillManager.DeleteSkillBySkillTypeID(skillTypeID) + delCnt +=1 if resetPoint <= 0: GameWorld.DebugLog("不需要重置技能天赋!") @@ -332,9 +351,12 @@ SetGreatMasterFreeSkillPoint(curPlayer, freeSkillPoint + resetPoint) Sync_GreatMasterFreeSkillPoint(curPlayer) + # 重新刷新被动技能 + passiveEff = PassiveBuffEffMng.GetPassiveEffManager().InitObjPassiveEff(curPlayer) + passiveEff.RefreshPassiveSkill() + if isRefreshAttr: curControl = PlayerControl.PlayerControl(curPlayer) - #curControl.CalcPassiveBuffAttr() - curControl.RefreshPlayerAttrByBuff() + curControl.RefreshPlayerAttrState() return True -- Gitblit v1.8.0