From d0e23ebc20cea58bdaa8c6a39ed95d7a6156e6fc Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期一, 28 九月 2020 16:25:19 +0800
Subject: [PATCH] 1111 媒体卡发放邮件物品支持配置是否拍品,默认0非拍品;

---
 ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py |   58 +++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 41 insertions(+), 17 deletions(-)

diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py
index d8d046f..390f82b 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerAssist.py
@@ -145,6 +145,25 @@
         
     return
 
+def OnPlayerTeamChange(curPlayer):
+    ## 玩家队伍变更
+    
+    if curPlayer.GetTeamID():
+        return
+    playerID = curPlayer.GetPlayerID()
+    
+    assistMgr = PyDataManager.GetPlayerAssistPyManager()
+    if playerID not in assistMgr.playerNoSaveDBAssistDict:
+        return
+    playerAssistList = assistMgr.playerNoSaveDBAssistDict[playerID]
+    
+    for assistObj in playerAssistList[::-1]:
+        gameMap = GameWorld.GetMap(assistObj.MapID)
+        if gameMap and gameMap.GetMapFBType() == ChConfig.fbtTeam:
+            OnCancelPlayerRequestAssist(assistObj, "LeaveTeam", True)
+            
+    return
+
 def OnInitAssistData(dbData, isSaveDB):
     ## 加载协助数据额外处理
     setattr(dbData, "IsSaveDB", isSaveDB) # 是否保存数据库,离线可协助的需要存库,如挖矿类
@@ -229,7 +248,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")
@@ -431,8 +453,8 @@
     
     playerID = curPlayer.GetPlayerID()
     
-    assistObj = None
-    addNewAssist = True
+    reqAssistObj = None
+    addNewAssist = False
     assistMgr = PyDataManager.GetPlayerAssistPyManager()
     if playerID in assistMgr.playerNoSaveDBAssistDict:
         playerAssistList = assistMgr.playerNoSaveDBAssistDict[playerID]
@@ -442,17 +464,18 @@
             if npcID != assistObj.NPCID or lineID != assistObj.LineID or objID != assistObj.ObjID:
                 OnCancelPlayerRequestAssist(assistObj, "RequestNewAssistBoss", True)
             else:
-                addNewAssist = False
+                reqAssistObj = assistObj
             break
         
-    if addNewAssist:
-        assistObj = __AddNewAssist(assistMgr, curPlayer, mapID, lineID, npcID, objID)
+    if not reqAssistObj:
+        addNewAssist = True
+        reqAssistObj = __AddNewAssist(assistMgr, curPlayer, mapID, lineID, npcID, objID)
         
-    if not assistObj:
+    if not reqAssistObj:
         return
     
     # 通知本仙盟玩家
-    PlayerFamily.SendFamilyFakePack(familyID, GetAssistInfoListPack([assistObj]))
+    PlayerFamily.SendFamilyFakePack(familyID, GetAssistInfoListPack([reqAssistObj]))
     # 求助信息已发送,请等待盟友支援
     PlayerControl.NotifyCode(curPlayer, "AssistRequestOK")
     
@@ -475,7 +498,7 @@
     
     playerID = curPlayer.GetPlayerID()
     
-    assistObj = None
+    reqAssistObj = None
     addNewAssist = False
     assistMgr = PyDataManager.GetPlayerAssistPyManager()
     if playerID in assistMgr.playerNoSaveDBAssistDict:
@@ -485,19 +508,19 @@
                 continue
             if mapID != assistObj.MapID or lineID != assistObj.LineID:
                 OnCancelPlayerRequestAssist(assistObj, "RequestNewAssistTeamFB", True)
-                addNewAssist = True
-                break
-    else:
+            else:
+                reqAssistObj = assistObj
+            break
+        
+    if not reqAssistObj:
         addNewAssist = True
+        reqAssistObj = __AddNewAssist(assistMgr, curPlayer, mapID, lineID)
         
-    if addNewAssist:
-        assistObj = __AddNewAssist(assistMgr, curPlayer, mapID, lineID)
-        
-    if not assistObj:
+    if not reqAssistObj:
         return
     
     # 通知本仙盟玩家
-    PlayerFamily.SendFamilyFakePack(familyID, GetAssistInfoListPack([assistObj]))
+    PlayerFamily.SendFamilyFakePack(familyID, GetAssistInfoListPack([reqAssistObj]))
     # 求助信息已发送,请等待盟友支援
     PlayerControl.NotifyCode(curPlayer, "AssistRequestOK")
     # 广播仙盟请求
@@ -555,6 +578,7 @@
     for assistObj in familyAssistList:
         assistInfo = ChPyNetSendPack.tagGCAssistInfo()
         assistInfo.AssistGUID = assistObj.GUID
+        assistInfo.PlayerID = assistObj.PlayerID
         assistInfo.PlayerName = assistObj.PlayerName
         assistInfo.Job = assistObj.Job
         assistInfo.LV = assistObj.LV

--
Gitblit v1.8.0