From 70fe334d936167077012fb8bda9a937eebc7cf97 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期四, 11 七月 2019 11:38:56 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/SnxxServerCode
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmMsg.py | 3 +
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFB.py | 4 ++
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py | 52 ++++++++++++++++++++++----
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py | 4 ++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py | 1
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py | 1
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossRealmPK.py | 46 ++++++++++++----------
7 files changed, 82 insertions(+), 29 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmMsg.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmMsg.py
index c6afb53..ad2bbf7 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmMsg.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmMsg.py
@@ -68,6 +68,9 @@
if msgType == ShareDefine.ClientServerMsg_PKMatch:
CrossRealmPK.ClientServerMsg_PKMatch(serverGroupID, msgData, tick)
+ elif msgType == ShareDefine.ClientServerMsg_PKScore:
+ CrossRealmPK.ClientServerMsg_PKScore(serverGroupID, msgData, tick)
+
elif msgType == ShareDefine.ClientServerMsg_PKCancel:
CrossRealmPK.ClientServerMsg_PKCancel(msgData, tick)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py
index b15218c..39ea210 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py
@@ -241,14 +241,16 @@
return
maxCount = min(2000, maxCount)
upBillboardList = []
- if winner.danLV >= danLVLimit:
- upBillboardList.append(winner)
- else:
- GameWorld.DebugLog(" 段位不足,无法上榜! winnerDanLV=%s < danLVLimit=%s" % (winner.danLV, danLVLimit), winner.playerID)
- if loser.danLV >= danLVLimit:
- upBillboardList.append(loser)
- else:
- GameWorld.DebugLog(" 段位不足,无法上榜! loserDanLV=%s < danLVLimit=%s" % (loser.danLV, danLVLimit), loser.playerID)
+ if winner:
+ if winner.danLV >= danLVLimit:
+ upBillboardList.append(winner)
+ else:
+ GameWorld.DebugLog(" 段位不足,无法上榜! winnerDanLV=%s < danLVLimit=%s" % (winner.danLV, danLVLimit), winner.playerID)
+ if loser:
+ if loser.danLV >= danLVLimit:
+ upBillboardList.append(loser)
+ else:
+ GameWorld.DebugLog(" 段位不足,无法上榜! loserDanLV=%s < danLVLimit=%s" % (loser.danLV, danLVLimit), loser.playerID)
if not upBillboardList:
return
@@ -315,6 +317,40 @@
return
+def ClientServerMsg_PKScore(serverGroupID, playerInfoDict, tick):
+ ## 收到子服同步的PK积分信息,子服可能直接更新积分,比如与机器人PK等
+
+ if not GameWorld.IsCrossServer():
+ GameWorld.ErrLog("非跨服服务器不处理跨服PK匹配请求!")
+ return
+
+ seasonID = playerInfoDict["seasonID"] # 赛季ID
+ pkZoneID = playerInfoDict["pkZoneID"] # 所属赛区
+ accID = playerInfoDict["accID"] # 角色账号
+ playerID = playerInfoDict["playerID"] # 角色ID
+ playerName = playerInfoDict["playerName"] # 玩家名
+ job = playerInfoDict["playerJob"] # 职业
+ fightPower = playerInfoDict["fightPower"] # 战斗力
+ realmLV = playerInfoDict["realmLV"] # 境界
+ pkScore = playerInfoDict["pkScore"] # 当前积分
+ danLV = playerInfoDict["danLV"] # 当前段位
+
+ pkPlayer = CrossPKPlayer()
+ pkPlayer.accID = accID
+ pkPlayer.playerID = playerID
+ pkPlayer.playerName = playerName
+ pkPlayer.playerJob = job
+ pkPlayer.pkScore = pkScore
+ pkPlayer.danLV = danLV
+ pkPlayer.fightPower = fightPower
+ pkPlayer.realmLV = realmLV
+ pkPlayer.serverGroupID = serverGroupID
+ pkPlayer.pkZoneID = pkZoneID
+ pkPlayer.seasonID = seasonID
+
+ UpdateCrossPKBillboard(pkZoneID, seasonID, pkPlayer, None)
+ return
+
#// C0 01 查看跨服竞技场赛季排行榜 #tagCGViewCrossPKBillboard
#
#struct tagCGViewCrossPKBillboard
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
index b1c286d..bb724e6 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -1207,6 +1207,7 @@
ClientServerMsg_GMCMD = "GMCMD" # GM命令
ClientServerMsg_ViewPlayerCache = "ViewPlayerCache" # 查看跨服玩家信息
ClientServerMsg_PKMatch = "PKMatch" # 跨服PK匹配
+ClientServerMsg_PKScore = "PKScore" # 跨服PK同步积分到跨服服务器(某些情况会在本服加积分,如与机器人PK)
ClientServerMsg_PKCancel = "PKCancel" # 跨服PK取消匹配
ClientServerMsg_PKPrepareOK = "PKPrepareOK" # 跨服PK准备完毕
ClientServerMsg_PKBillboard = "PKBillboard" # 跨服PK排行榜
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py
index f761133..65974e4 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py
@@ -538,6 +538,10 @@
if gameMap.GetMapFBType() == IPY_GameWorld.fbtNull:
return
+ #进入副本默认回满血
+ if curPlayer.GetHP() < curPlayer.GetMaxHP():
+ curPlayer.SetHP(curPlayer.GetMaxHP())
+
#副本管理器
gameFBMgr = GameWorld.GetGameFB()
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossRealmPK.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossRealmPK.py
index 16cdb27..85b32c2 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossRealmPK.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerCrossRealmPK.py
@@ -412,6 +412,16 @@
danLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CrossPK_DanLV)
cWinCount = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CrossPK_CWinCount)
+ if GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKSeasonState) != 1:
+ GameWorld.Log("OnCrossRealmPKRobotOver 跨服赛季未开启,不可进行机器人结算!", playerID)
+ overPack = ChPyNetSendPack.tagGCCrossRealmPKOverInfo()
+ overPack.AddScore = 0
+ overPack.Score = pkScore
+ overPack.DanLV = danLV
+ overPack.CWinCnt = cWinCount
+ NetPackCommon.SendFakePack(curPlayer, overPack)
+ return
+
ondayScore = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CrossPK_OnDayScore)
dayScore = max(0, pkScore - ondayScore) # 今日已获得积分,正积分
@@ -452,29 +462,23 @@
overPack.CWinCnt = cWinCount
NetPackCommon.SendFakePack(curPlayer, overPack)
- # 通知跨服更新榜单积分数据
+ # 如果能上榜的,则通知跨服更新榜单积分数据
billboardCfg = IpyGameDataPY.GetFuncEvalCfg("CrossRealmPKCfg", 1, [])
if billboardCfg and len(billboardCfg) > 1 or danLV >= billboardCfg[1]:
- pass
-# dataMsg = {
-# "seasonID":seasonID,
-# "pkZoneID":zoneID,
-# "accID":curPlayer.GetAccID(),
-# "playerID":playerID,
-# "playerName":CrossRealmPlayer.GetCrossPlayerName(curPlayer),
-# "playerJob":curPlayer.GetJob(),
-# "playerLV":curPlayer.GetLV(),
-# "maxHP":curPlayer.GetMaxHP(),
-# "maxProDef":PlayerControl.GetMaxProDef(curPlayer),
-# "fightPower":curPlayer.GetFightPower(),
-# "realmLV":curPlayer.GetOfficialRank(),
-# "pkScore":pkScore,
-# "danLV":danLV,
-# "cWinCount":cWinCount,
-# "ondayScore":curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CrossPK_OnDayScore), # 过天时的积分
-# }
-# GameWorld.SendMsgToCrossServer(ShareDefine.ClientServerMsg_PKMatch, dataMsg)
-# GameWorld.Log(" 更新积分到跨服服务器 dataMsg=%s" % str(dataMsg), playerID)
+ dataMsg = {
+ "seasonID":seasonID,
+ "pkZoneID":zoneID,
+ "accID":curPlayer.GetAccID(),
+ "playerID":playerID,
+ "playerName":CrossRealmPlayer.GetCrossPlayerName(curPlayer),
+ "playerJob":curPlayer.GetJob(),
+ "fightPower":curPlayer.GetFightPower(),
+ "realmLV":curPlayer.GetOfficialRank(),
+ "pkScore":pkScore,
+ "danLV":danLV,
+ }
+ GameWorld.SendMsgToCrossServer(ShareDefine.ClientServerMsg_PKScore, dataMsg)
+ GameWorld.Log(" 更新积分到跨服服务器 dataMsg=%s" % str(dataMsg), playerID)
return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFB.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFB.py
index db95c3c..7fa19a7 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFB.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFB.py
@@ -515,6 +515,10 @@
PetControl.DoLogic_PetLoadMapOK(curPlayer)
FBLogic.OnEnterCustomScene(curPlayer, mapID, lineID)
+ #默认回满血
+ if curPlayer.GetHP() < curPlayer.GetMaxHP():
+ curPlayer.SetHP(curPlayer.GetMaxHP())
+
#通知进入状态
StartCustomSceneResult(curPlayer, mapID, lineID, 1)
return
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
index b1c286d..bb724e6 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -1207,6 +1207,7 @@
ClientServerMsg_GMCMD = "GMCMD" # GM命令
ClientServerMsg_ViewPlayerCache = "ViewPlayerCache" # 查看跨服玩家信息
ClientServerMsg_PKMatch = "PKMatch" # 跨服PK匹配
+ClientServerMsg_PKScore = "PKScore" # 跨服PK同步积分到跨服服务器(某些情况会在本服加积分,如与机器人PK)
ClientServerMsg_PKCancel = "PKCancel" # 跨服PK取消匹配
ClientServerMsg_PKPrepareOK = "PKPrepareOK" # 跨服PK准备完毕
ClientServerMsg_PKBillboard = "PKBillboard" # 跨服PK排行榜
--
Gitblit v1.8.0