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 |   24 ++++++++++++++++++------
 1 files changed, 18 insertions(+), 6 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 50ce377..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
 
 ## 游戏服务器刷新队伍(封包参数)
@@ -240,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)
@@ -255,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:
@@ -283,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):
@@ -302,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