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