| | |
| | | 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
|
| | |
| | | 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
|
| | |
| | | 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()
|
| | |
| | | isRefreshAttr = True
|
| | |
|
| | | resetPoint += curSkillLV
|
| | | |
| | | skillManager.DeleteSkillBySkillTypeID(skillTypeID)
|
| | | delCnt +=1
|
| | |
|
| | | if resetPoint <= 0:
|
| | | GameWorld.DebugLog("不需要重置技能天赋!")
|
| | |
| | | SetGreatMasterFreeSkillPoint(curPlayer, freeSkillPoint + resetPoint)
|
| | | Sync_GreatMasterFreeSkillPoint(curPlayer)
|
| | |
|
| | | # 重新刷新被动技能
|
| | | passiveEff = PassiveBuffEffMng.GetPassiveEffManager().InitObjPassiveEff(curPlayer)
|
| | | passiveEff.RefreshPassiveSkill()
|
| | | DataRecordPack.Cache_FightPowerChangeInfo(curPlayer, ChConfig.PowerDownType_ResetTalent, {'resetPoint':resetPoint})
|
| | | if isRefreshAttr:
|
| | | curControl = PlayerControl.PlayerControl(curPlayer)
|
| | | #curControl.CalcPassiveBuffAttr()
|
| | | curControl.RefreshPlayerAttrByBuff()
|
| | | # 重刷被动技能
|
| | | PassiveBuffEffMng.GetPassiveEffManager().RegistPassiveEff(curPlayer)
|
| | | # 重刷技能战力
|
| | | curControl = PlayerControl.PlayerControl(curPlayer)
|
| | | curControl.RefreshAllSkill()
|
| | | curControl.RefreshPlayerAttrState()
|
| | | return True
|
| | |
|