From 03f617028885a2e8840500bb520f3418d54eb791 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 30 一月 2019 18:09:20 +0800
Subject: [PATCH] 2968 【1.6】本服打boss,中途传送到跨服,未清空本服归属
---
ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py | 79 ++++++++++++++++-----------------------
1 files changed, 32 insertions(+), 47 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
index 148aff8..adbb5c7 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/Player/ChPlayer.py
@@ -39,15 +39,12 @@
import PlayerFamilyBoss
#import PlayerManorWar
import PlayerBourse
-import GameWorldActionTeHui
+import PlayerZhuXianBoss
import PlayerXMZZ
import GameWorldShopItem
-import MergeChildMsg
import PlayerTruck
-import PlayerMergeEvent
import HighLadder
import EventReport
-import MergePlayer
import PlayerCompensation
import PlayerFamilyRedPacket
import PlayerFamilyStore
@@ -73,6 +70,15 @@
#---------------------------------------------------------------------
#---------------------------------------------------------------------
+
+def DoRefreshMainServerRole(curPlayer):
+ ## 刷新本服角色信息
+
+ curTeam = curPlayer.GetTeam()
+ if curTeam:
+ PlayerTeam.Sync_TeamMemberInfo(curTeam)
+ return
+
## 玩家登录初始化(封包参数)
# @param index 玩家索引
# @param tick 当前时间
@@ -106,6 +112,20 @@
InitPlayerOnLineReply(curPlayer, tick)
# 统计登入人数
GameDataRecord.PlayerLoginRecord(curPlayer, tick)
+ __DoPlayerLoginServer(curPlayer, tick)
+
+ #通知地图服务器自己初始化成功
+ curPlayer.MapServer_InitOK()
+ return
+
+def __DoPlayerLoginServer(curPlayer, tick):
+ ''' 玩家登录需要处理的内容,本服及跨服服务器分开
+ '''
+ if GameWorld.IsCrossServer():
+ #跨服PK
+ CrossRealmPK.OnPlayerLoginCrossServer(curPlayer)
+ return
+
#玩家家族刷新
#家族任务需要刷新 FamilyLV, 地图服务器需要知道FamilyLV来通知玩家家族任务次数
PlayerFamily.PlayerLoginRefreshFamily(curPlayer, tick)
@@ -126,21 +146,12 @@
# 通知广播信息
GMCommon.SendBroadCastToClient(curPlayer)
-
- # 在非跨服服务器上线时,在跨服PK赛期间如果roomID不为0则重置
- #if not GameWorld.IsMergeServer() and GameWorldMergePK.IsMergePKMatchOpen() \
- # and curPlayer.GetVsRoomId() != 0:
- # PlayerControl.SetVsRoomId(curPlayer, 0)
-
PlayerTruck.SyncPlayerTruckStartTime(curPlayer)
#通知玩家交易所挂单情况
PlayerBourse.OnPlayerLogin(curPlayer)
#上线广播
__CheckWorldNotifyOnLogin(curPlayer, tick)
- #上线奖励处理
- #PlayerMergeEvent.MergeEventOnPlayerLogin(curPlayer)
- #MergePlayer.OnPlayerLogin(curPlayer)
#仙盟红包
PlayerFamilyRedPacket.OnPlayerLogin(curPlayer)
@@ -174,12 +185,10 @@
PlayerFBHelpBattle.OnHelpPlayerLogin(curPlayer)
#跨服PK
CrossRealmPK.OnPlayerLogin(curPlayer)
+ #诛仙BOSS
+ PlayerZhuXianBoss.OnPlayerLogin(curPlayer)
- GMShell.OnPlayerLogin(curPlayer)
GMT_CTG.OnPlayerLogin(curPlayer)
-
- #通知地图服务器自己初始化成功
- curPlayer.MapServer_InitOK()
return
## 增加高手玩家上线广播
@@ -187,7 +196,7 @@
# @return None
def __CheckWorldNotifyOnLogin(curPlayer, tick):
# 跨服服务器不广播
- if GameWorld.IsMergeServer():
+ if GameWorld.IsCrossServer():
return
limitLV = IpyGameDataPY.GetFuncCfg("BillBoardPlayerLoginNotify", 2) # 最低等级限制
@@ -261,31 +270,6 @@
diff_Time = loginTime - logoffTime
#天数 * 24小时 * 60 分钟 + 秒
return diff_Time.days * 24 * 60 * 60 + diff_Time.seconds
-
-## 统计客户端跨服赛激活时间
-# @param index 玩家索引
-# @return None
-def SendMergeWarOpen(curPlayer):
- # 发送跨服赛服务器信息
- mapConfig = GameConfig.GetConfig()
- mergeServerIP = mapConfig.get("MergeServerIP")
- mergeServerPort = mapConfig.get("MergeServerPort")
- if not mergeServerIP:
- return
- mergeServerInfo = ChPyNetSendPack.tagMergeServerInfo()
- mergeServerInfo.ServerIPLen = len(mergeServerIP)
- mergeServerInfo.ServerIP = mergeServerIP
- mergeServerInfo.Port = mergeServerPort
- mergeServerInfo.IsMergeServer = GameWorld.IsMergeServer()
- NetPackCommon.SendFakePack(curPlayer, mergeServerInfo)
- return
-
-## 跨服赛通知奖励
-# @param curPlayer: 玩家实例
-# @return: None
-def MSGetReward(curPlayer):
- #PlayerCanGetReward.SynClient_CanGetRewardList(curPlayer)
- return
## 运营登陆信息处理
# @param curPlayer
@@ -529,7 +513,6 @@
# 设置家族成员离线时间
SetPlayerOfflineTime(curPlayer)
- #MergePlayer.OnPlayerLeaveGotoMergeServer(curPlayer, tick)
#------------镖车逻辑
#TruckPlayerDisconnectProcess(curPlayer, tick)
return
@@ -791,7 +774,7 @@
#===============================================================================
#自己已经初始化成功
curPlayer.SetInitOK(True)
-
+ GMShell.OnPlayerLogin(curPlayer)
#发送请求至目标地图(任务需要登陆家族长触发事件)
__RefreshFamilyToMapServer(curPlayer)
return
@@ -917,11 +900,13 @@
fblinePack = ChPyNetSendPack.tagGCFBLinePlayerCnt()
fblinePack.MapID = tagMapID
fblinePack.FBLineInfoList = []
- for lineID, playerCnt in fbLinePlayerCntDict.items():
+ for lineID, infoList in fbLinePlayerCntDict.items():
mapLineState = ChPyNetSendPack.tagGCFBLineInfo()
mapLineState.Clear()
mapLineState.FBLineID = lineID
- mapLineState.PlayerCnt = playerCnt
+ mapLineState.PlayerCnt = infoList[0] if infoList else 0
+ mapLineState.ExtraStr = infoList[1] if len(infoList) > 1 else ''
+ mapLineState.ExtraStrLen = len(mapLineState.ExtraStr)
fblinePack.FBLineInfoList.append(mapLineState)
fblinePack.Count = len(fblinePack.FBLineInfoList)
--
Gitblit v1.8.0