From 2a6bacedea0c4d6d49efcca5d0c56b7aa6e33adc Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期一, 19 十一月 2018 14:45:39 +0800
Subject: [PATCH] 2397 【BUG】【1.2】【1.3】符印背包满的情况下合成符印,扣除符印融合石没合成符印,双属性符印升级后分解没返还符印融合石
---
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py | 43 ++++++++++++++++++++++++++++++++++---------
1 files changed, 34 insertions(+), 9 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py
index cfcf366..819bdaf 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerTeam.py
@@ -913,6 +913,26 @@
DR_Team(eventName, teamID, drDict)
return
+def SyncMapServerPlayerNoTeam(curPlayer):
+ ## 同步地图玩家没有队伍,切图时调用
+ teamInfo = ChGameToMapPyPack.tagGMTeamInfo()
+ teamInfo.PlayerID = curPlayer.GetPlayerID()
+ teamInfo.TeamID = 0
+ teamInfo.TeamLV = 0
+ teamInfo.MemInfoList = []
+ teamInfo.MemCnt = len(teamInfo.MemInfoList)
+ NetPackCommon.SendPyPackToMapServer(curPlayer.GetLineNO(), curPlayer.GetRealMapID(), teamInfo)
+ return
+
+def SyncMapServerPlayerLeaveTeam(curPlayer, teamID):
+ ## 同步地图玩家离开队伍
+ leavePack = ChGameToMapPyPack.tagGMPlayerLeaveTeam()
+ leavePack.PlayerID = curPlayer.GetPlayerID()
+ leavePack.CopyMapID = curPlayer.GetFBID()
+ leavePack.TeamID = teamID
+ NetPackCommon.SendPyPackToMapServer(curPlayer.GetLineNO(), curPlayer.GetRealMapID(), leavePack)
+ return
+
#---------------------------------------------------------------------
#// B9 03 修改队伍信息 #tagCGChangeTeamInfo
@@ -1339,7 +1359,8 @@
#GameServer清除玩家队伍ID为空
delPlayer.SetTeam(None)
#通知MapServerd队伍变更, 在mapserver构建目前队伍
- delPlayer.MapServer_Sync_Team(0)
+ #delPlayer.MapServer_Sync_Team(0)
+ SyncMapServerPlayerLeaveTeam(delPlayer, curTeam.GetTeamID())
#玩家离开副本
delPlayer.MapServer_LeaveFB()
if IsTeamMatchingPlayer(curTeam.GetTeamID()):
@@ -1393,7 +1414,8 @@
#GameServer玩家队伍为空
curPlayer.SetTeam(None)
#通知MapServerd队伍变更
- curPlayer.MapServer_Sync_Team(0)
+ #curPlayer.MapServer_Sync_Team(0)
+ SyncMapServerPlayerLeaveTeam(curPlayer, curTeam.GetTeamID())
__DoLogic_PlayerTeamChange(curPlayer)
if curMember.GetTeamLV() != IPY_GameServer.tmlLeader:
@@ -1793,11 +1815,12 @@
if curTeam == None:
return
- if curTeam.GetTeamPlayerCount() <= 1:
- #补救完毕, 队伍中只有一个人, 删除这个队伍
- GameWorld.Log('玩家(%s)仍然有队伍(%s), 补救完毕, 队伍中只有一个人, 删除这个队伍' % (playerID, curTeamID))
- DeleteTeam(curTeam, tick)
- return
+ #允许存在单人队伍,暂屏蔽该逻辑
+# if curTeam.GetTeamPlayerCount() <= 1:
+# #补救完毕, 队伍中只有一个人, 删除这个队伍
+# GameWorld.Log('玩家(%s)仍然有队伍(%s), 补救完毕, 队伍中只有一个人, 删除这个队伍' % (playerID, curTeamID))
+# DeleteTeam(curTeam, tick)
+# return
GameWorld.Log('玩家(%s)仍然有队伍(%s), 补救' % (playerID, curTeamID))
curPlayer.SetTeamID(curTeamID)
@@ -1808,7 +1831,8 @@
curPlayer.SetTeam(None)
curPlayer.Sync_LeaveTeam(1)
#通知MapServer, 玩家已经队伍了, 刷新玩家的TeamID
- curPlayer.MapServer_Sync_Team(0)
+ #curPlayer.MapServer_Sync_Team(0)
+ SyncMapServerPlayerLeaveTeam(curPlayer, curTeamID)
gameMap = GameWorld.GetMap(curPlayer.GetMapID())
if gameMap and gameMap.GetMapFBType() == ChConfig.fbtTeam:
curPlayer.MapServer_LeaveFB()
@@ -1929,7 +1953,8 @@
# 玩家进入组队副本,则停止匹配
if gameMap.GetMapFBType() == ChConfig.fbtTeam:
DelPlayerIDFromMatchingList(curPlayer)
-
+ SyncMapServerPlayerNoTeam(curPlayer) # 没有队伍的时候切图也通知地图
+
return
def PlayerTeamMemberRefresh(curPlayer, refreshType, value, tick):
--
Gitblit v1.8.0