From 702c1b73d1294e1e09354a821b83623dcc5492a3 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期二, 25 六月 2019 02:39:42 +0800
Subject: [PATCH] 860312 野外不额外加印记

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDienstgrad.py |   34 +++++++++++++++++++++++++++++++++-
 1 files changed, 33 insertions(+), 1 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDienstgrad.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDienstgrad.py
index 5e1c60e..5eda731 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerDienstgrad.py
+++ b/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, [])

--
Gitblit v1.8.0