ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDienstgrad.py
@@ -24,6 +24,10 @@
import SkillCommon
import SkillShell
import PassiveBuffEffMng
import DataRecordPack
import CrossPlayerData
import GameFuncComm
import ShareDefine
import time
#-------------------------------------------------------------
@@ -129,6 +133,9 @@
    for skillID in skillList:
        __GiveSkill(curPlayer, skillID)
        
    CrossPlayerData.OnDienstgradChange(curPlayer, dienstgradID, 1)
    if dienstgradID == IpyGameDataPY.GetFuncCfg("TitleAddPoint"):
        __DoTitleAddPoint(curPlayer)
    #重新刷新角色属性
    if isRefreshAttr:
        CalcAllDienstgradAttr(curPlayer)
@@ -136,6 +143,29 @@
        playerControl.RefreshPlayerAttrState()
    return True
# 获得称号加点
def __DoTitleAddPoint(curPlayer):
    if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_AddPoint):
        # 未开启前不可加点,因为DoAddPointOpen会一次性补齐,避免意外情况多加了点数
        return
    addPointDict = IpyGameDataPY.GetFuncEvalCfg("LVUPAddPoint", 1, {})
    titleAddPoint = PlayerControl.GetTitleAddExtraPoint(curPlayer)
    if titleAddPoint <=0:
        return
    curLV = curPlayer.GetLV()
    addFreePoint = 0
    for rangLVs, point in addPointDict.items():
        if curLV < rangLVs[0]:
            continue
        addFreePoint += titleAddPoint * (min(curLV, rangLVs[1]) - rangLVs[0] + 1)
    freePoint = curPlayer.GetFreePoint()
    updFreePoint = freePoint + addFreePoint
    curPlayer.SetFreePoint(updFreePoint)
    GameWorld.DebugLog("获得称号增加自由属性点: freePoint=%s,addFreePoint=%s,curLV=%s,updFreePoint=%s"
                       % (freePoint, addFreePoint, curLV, updFreePoint))
    return
# 从称号获得技能
def __GiveSkill(curPlayer, skillResID):
@@ -219,7 +249,9 @@
    if curDienstgradData:
        # 删除对应技能
        __DelSkill(curPlayer, curDienstgradData)
    DataRecordPack.Cache_FightPowerChangeInfo(curPlayer, ChConfig.PowerDownType_Title, {'dienstgradID':dienstgradID})
    
    CrossPlayerData.OnDienstgradChange(curPlayer, dienstgradID, 0)
    #重新刷新角色属性
    if isRefreshAttr:
        CalcAllDienstgradAttr(curPlayer)
@@ -506,7 +538,7 @@
#  @return None
def GiveFirstLoginDienstgrad(curPlayer):
    dienstgradIDDict = ReadChConfig.GetEvalChConfig('FirstLogin_GiveDienstgrad')
    platFormName = GameWorld.GetPlayerPlatform(curPlayer.GetAccID())
    platFormName = GameWorld.GetPlayerPlatform(curPlayer)
    dienstgradIDList = dienstgradIDDict.get(platFormName)
    if not dienstgradIDList: #未配置的平台默认取key为0的内容
        dienstgradIDList = dienstgradIDDict.get(0, [])