From 50cabbbc229d1adc0e427df765cab2dc0889cdf1 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 15 一月 2020 15:58:20 +0800
Subject: [PATCH] 8369 境界修改(升级境界给技能格式改为json字典)

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py |   36 +++++++++++++++++++++++++-----------
 1 files changed, 25 insertions(+), 11 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py
index 1c4a5e3..fba8e63 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py
@@ -229,7 +229,10 @@
     if not playerMap:
         return
     if playerMap.GetMapFBType() != ChConfig.fbtNull:
-        playerLineID = curPlayer.GetFBID()
+        if mapID == ChConfig.Def_FBMapID_SealDemon:
+            playerLineID = PlayerControl.GetFBFuncLineID(curPlayer)
+        else:
+            playerLineID = curPlayer.GetFBID()
         if playerMapID != mapID or playerLineID != lineID:
             #副本中无法协助
             PlayerControl.NotifyCode(curPlayer, "AssistFBLimit")
@@ -335,13 +338,6 @@
     NetPackCommon.SendFakePack(assistPlayer, assistPack)
     return
 
-def SetPlayerStartAssistTeamFB(curPlayer, queryData):
-    ## 开始协助组队副本 - 玩家进入副本后才真正进入协助状态
-    
-    #mapID, lineID, tagPlayerID = queryData
-    
-    return
-
 def MapServer_PlayerAssistLogic(curPlayer, msgList, tick):
     ## 地图同步的协助信息逻辑处理
     
@@ -403,7 +399,18 @@
     
     # 开始协助组队副本
     elif queryType == "OnStartAssistTeamFB":
-        SetPlayerStartAssistTeamFB(curPlayer, queryData)
+        mapID, lineID, tagPlayerID = queryData
+        GameWorld.DebugLog("    开始协助副本: mapID=%s,lineID=%s,tagPlayerID=%s" % (mapID, lineID, tagPlayerID), playerID)
+        # 副本协助暂时只处理设置协助目标ID
+        PlayerControl.SetAssistTagPlayerID(curPlayer, tagPlayerID)
+        return
+    
+    # 取消协助组队副本
+    elif queryType == "OnCancelAssistTeamFB":
+        mapID, lineID, reason = queryData
+        GameWorld.DebugLog("    开始协助副本: mapID=%s,lineID=%s,reason=%s" % (mapID, lineID, reason), playerID)
+        # 副本协助暂时只处理设置协助目标ID
+        PlayerControl.SetAssistTagPlayerID(curPlayer, 0)
         return
     
     #QueryPlayerResult_PlayerAssist(curPlayer, queryType, queryData, result)
@@ -606,8 +613,6 @@
         if assistObj in playerAssistList:
             playerAssistList.remove(assistObj)
             
-    SyncFamilyClearAssist(familyID, assistGUID)
-    
     # 取消boss协助
     if assistType == AssistType_Boss:
         
@@ -628,6 +633,8 @@
         # 暂不需要处理
         pass
     
+    # 放最后    
+    SyncFamilyClearAssist(familyID, assistGUID)
     return
 
 def OnCancelPlayerAssist(cancelPlayer, cancelPlayerID, assistObj, reason, isGameServer, isNotify=True):
@@ -663,7 +670,14 @@
         assistObj.AssistPlayerIDList.remove(cancelPlayerID)
         
     if cancelPlayer:
+        isTagPlayerReason = reason.startswith("RequestPlayerCancel_")
         PlayerControl.SetAssistTagPlayerID(cancelPlayer, 0)
+        overPack = ChPyNetSendPack.tagGCAssistOver()
+        overPack.IsTagPlayerReason = isTagPlayerReason
+        overPack.Reason = reason[len("RequestPlayerCancel_"):] if isTagPlayerReason else reason 
+        overPack.ReasonLen = len(overPack.Reason)
+        overPack.AssistGUID = assistGUID
+        NetPackCommon.SendFakePack(cancelPlayer, overPack)
         
     # 取消boss协助
     if assistObj.AssistType == AssistType_Boss:

--
Gitblit v1.8.0