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