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,16 @@
    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