From 84ede803777ff10b5cbe93b1ec0168af08f55d5e Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 13 一月 2021 18:11:26 +0800
Subject: [PATCH] 8677 【BT】【后端】跨服冲榜活动; 新增跨服活动时间管理模块、跨服榜单;跨服邮件;跨服广播优化;相关GM命令、后台工具;

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTeam.py |   29 ++++++++++++++++++++++-------
 1 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTeam.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTeam.py
index 2c13dd3..0c59fe1 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTeam.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTeam.py
@@ -26,6 +26,7 @@
 import SkillCommon
 import IPY_GameWorld
 import DataRecordPack
+import NPCHurtManager
 #import PlayerTruck
 import ShareDefine
 import SkillShell
@@ -66,6 +67,15 @@
 def PlayerLoginSetTeam(curPlayer, tick):
     ## 玩家登录服务器设置队伍 
     #玩家刚登录, 什么也不做, 等待GameServer刷新自己
+    return
+
+def OnPlayerLoginCrossServer(curPlayer):
+    ## 登录跨服服务器处理
+    
+    if curPlayer.GetTeamID():
+        curPlayer.SetTeamID(0)
+        GameWorld.DebugLog("登录跨服服务器重置队伍ID!")
+        
     return
 
 ## 游戏服务器刷新队伍(封包参数)
@@ -121,9 +131,10 @@
     playerID = curPackData.PlayerID
     teamID = curPackData.TeamID
     teamLV = curPackData.TeamLV
+    memCnt = curPackData.MemCnt
     dataDict = {"playerID":playerID, "teamLV":teamLV}
     
-    GameWorld.DebugLog("GameServer_TeamInfo playerID=%s,teamID=%s,teamLV=%s" % (playerID, teamID, teamLV), playerID)
+    GameWorld.DebugLog("GameServer_TeamInfo playerID=%s,teamID=%s,teamLV=%s,memCnt=%s" % (playerID, teamID, teamLV, memCnt), playerID)
     curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
     if not curPlayer or curPlayer.IsEmpty():
         DR_Team("TeamInfo", teamID, dataDict, "curPlayer is None or empty")
@@ -137,6 +148,8 @@
         return
     
     RefreshPlayerTeamID(curPlayer, teamID, teamLV, tick)
+    
+    curPlayer.SetDict(ChConfig.Def_PlayerKey_TeamMemCount, memCnt)
     
     sameMapMemCount = 0 # 同地图队员数
     sameMapVIPLV = 0 # 同地图VIP加成等级
@@ -237,10 +250,10 @@
         #curMapTeam.SetTeamType(recvPack.GetTeamType())
         DR_Team("RefreshPlayerTeamID_Create", teamID, dataDict)
             
-    if playerTeamID != teamID or not curTeam:
-        isNewTeam = playerTeamID != teamID # 切地图/上线时teamID可能不变,但是team为None
+    if (playerTeamID != teamID or not curTeam) and curMapTeam:
+        #isNewTeam = playerTeamID != teamID # 切地图/上线时teamID可能不变,但是team为None
         #GameWorld.DebugLog("    玩家当前无队伍,处理玩家进队!isNewTeam=%s" % isNewTeam, playerID)
-        __OnEnterTeam(curPlayer, curMapTeam, isNewTeam, tick, dataDict)
+        __OnEnterTeam(curPlayer, curMapTeam, playerTeamID, tick, dataDict)
     else:
         dataDict["MemberCount"] = 0 if not curMapTeam else curMapTeam.GetMemberCount()
         DR_Team("RefreshPlayerTeamID_Update", teamID, dataDict)
@@ -252,7 +265,7 @@
 #  @param tick 当前时间
 #  @return None
 #  @remarks 函数详细说明.
-def __OnEnterTeam(curPlayer, curMapTeam, isNewTeam, tick, dataDict):
+def __OnEnterTeam(curPlayer, curMapTeam, playerTeamID, tick, dataDict):
     teamID = curMapTeam.GetTeamID()
     memCount = curMapTeam.GetMemberCount()
     if memCount >= ShareDefine.Def_Team_MaxPlayerCount:
@@ -280,8 +293,8 @@
     #PlayerTruck.ChangeTruckNoteInfo(curPlayer)
     
     #以下为进入一个新的队伍额外处理
-    if not isNewTeam:
-        return
+    if playerTeamID != teamID:
+        NPCHurtManager.OnNPCHurtPlayerEnterTeam(playerID, curPlayer.GetPlayerName(), playerTeamID, curMapTeam, tick)
     return
  
 def __OnPlayerLeaveTeam(copyMapID, playerID, leaveTeamID, tick):
@@ -299,6 +312,8 @@
             
     __DelPlayerIDFromTeamPlayer(playerID, False)
     
+    NPCHurtManager.OnNPCHurtPlayerLeaveTeam(playerID, leaveTeamID, tick)
+    
     dataDict = {"playerID":playerID, "copyMapID":copyMapID}
     ### =========================== 以下逻辑是玩家存在时才需要处理的 =================================
     curPlayer = GameWorld.GetPlayerManager().FindPlayerByID(playerID)

--
Gitblit v1.8.0