From 83fb126a34c08f737b94c694524a701828901617 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 25 十二月 2018 10:54:37 +0800
Subject: [PATCH] 5424 【后端】【1.4】跨服竞技场开发(赛季信息封包删除下赛季时间信息)

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

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGreatMaster.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGreatMaster.py
index 6ba891d..aee55dc 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGreatMaster.py
+++ b/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
 

--
Gitblit v1.8.0