From 128dce390be21ef3253856a21f3c3c4e25eca40b Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 27 六月 2019 23:27:06 +0800
Subject: [PATCH] 4278 【主干】【2.0.0】仙盟联赛非冠军排名奖励错误
---
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