From 066e7ecd5cbb5de21edb0a914e0946d843bb1272 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期四, 27 十二月 2018 20:33:35 +0800
Subject: [PATCH] 5424 【后端】【1.4】跨服竞技场开发(位置编号信息改为在匹配成功包通知)
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py | 6 ++++--
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py | 7 +++++++
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossRealmPK.py | 2 --
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py | 7 +++++++
4 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
index 49baa51..803fadd 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py
@@ -8297,6 +8297,7 @@
RoomID = 0 #(WORD RoomID)// 房间ID
NameLen = 0 #(BYTE NameLen)
PlayerName = "" #(String PlayerName)// 跨服名字
+ Number = 0 #(BYTE Number)// 位置编号;1-左,2-右
MatchPlayerCount = 0 #(BYTE MatchPlayerCount)
MatchPlayer = list() #(vector<tagGCCrossRealmPKMatchPlayer> MatchPlayer)// 匹配到的玩家
data = None
@@ -8313,6 +8314,7 @@
self.RoomID,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
+ self.Number,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.MatchPlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
for i in range(self.MatchPlayerCount):
temMatchPlayer = tagGCCrossRealmPKMatchPlayer()
@@ -8328,6 +8330,7 @@
self.RoomID = 0
self.NameLen = 0
self.PlayerName = ""
+ self.Number = 0
self.MatchPlayerCount = 0
self.MatchPlayer = list()
return
@@ -8338,6 +8341,7 @@
length += 2
length += 1
length += len(self.PlayerName)
+ length += 1
length += 1
for i in range(self.MatchPlayerCount):
length += self.MatchPlayer[i].GetLength()
@@ -8350,6 +8354,7 @@
data = CommFunc.WriteWORD(data, self.RoomID)
data = CommFunc.WriteBYTE(data, self.NameLen)
data = CommFunc.WriteString(data, self.NameLen, self.PlayerName)
+ data = CommFunc.WriteBYTE(data, self.Number)
data = CommFunc.WriteBYTE(data, self.MatchPlayerCount)
for i in range(self.MatchPlayerCount):
data = CommFunc.WriteString(data, self.MatchPlayer[i].GetLength(), self.MatchPlayer[i].GetBuffer())
@@ -8361,6 +8366,7 @@
RoomID:%d,
NameLen:%d,
PlayerName:%s,
+ Number:%d,
MatchPlayerCount:%d,
MatchPlayer:%s
'''\
@@ -8369,6 +8375,7 @@
self.RoomID,
self.NameLen,
self.PlayerName,
+ self.Number,
self.MatchPlayerCount,
"..."
)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py
index f560d96..238badb 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py
@@ -981,14 +981,14 @@
isAllReady = True
roomGroupIDList = []
readyMemberDict = {} # 已准备好的玩家信息
- for roomPlayerID in vsRoom.roomPlayerIDList:
+ for num, roomPlayerID in enumerate(vsRoom.roomPlayerIDList, 1):
if roomPlayerID not in vsRoom.readyPlayerIDList or roomPlayerID not in PyGameData.g_crossPKPlayerDict:
isAllReady = False
break
roomPlayer = PyGameData.g_crossPKPlayerDict[roomPlayerID]
pkZoneID = roomPlayer.pkZoneID
roomGroupIDList.append(roomPlayer.serverGroupID)
- readyMemberDict[roomPlayerID] = {"ServerGroupID":roomPlayer.serverGroupID, "Name":roomPlayer.playerName,
+ readyMemberDict[roomPlayerID] = {"ServerGroupID":roomPlayer.serverGroupID, "Name":roomPlayer.playerName, "Number":num,
"Job":roomPlayer.playerJob, "LV":roomPlayer.playerLV, "MaxHP":roomPlayer.maxHP}
if not isAllReady:
@@ -1561,6 +1561,7 @@
for playerID, playerInfo in readyMemberDict.items():
serverGroupID = playerInfo["ServerGroupID"]
playerName = playerInfo["Name"]
+ number = playerInfo["Number"]
if serverGroupID != curServerGroupID:
GameWorld.DebugLog(" 不是本服玩家,不处理!playerID=%s,serverGroupID=%s" % (playerID, serverGroupID))
@@ -1594,6 +1595,7 @@
matchOKPack.RoomID = roomID
matchOKPack.PlayerName = playerName
matchOKPack.NameLen = len(matchOKPack.PlayerName)
+ matchOKPack.Number = number
matchOKPack.MatchPlayer = [matchPlayer]
matchOKPack.MatchPlayerCount = len(matchOKPack.MatchPlayer)
NetPackCommon.SendFakePack(player, matchOKPack)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
index 49baa51..803fadd 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py
@@ -8297,6 +8297,7 @@
RoomID = 0 #(WORD RoomID)// 房间ID
NameLen = 0 #(BYTE NameLen)
PlayerName = "" #(String PlayerName)// 跨服名字
+ Number = 0 #(BYTE Number)// 位置编号;1-左,2-右
MatchPlayerCount = 0 #(BYTE MatchPlayerCount)
MatchPlayer = list() #(vector<tagGCCrossRealmPKMatchPlayer> MatchPlayer)// 匹配到的玩家
data = None
@@ -8313,6 +8314,7 @@
self.RoomID,_pos = CommFunc.ReadWORD(_lpData, _pos)
self.NameLen,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.PlayerName,_pos = CommFunc.ReadString(_lpData, _pos,self.NameLen)
+ self.Number,_pos = CommFunc.ReadBYTE(_lpData, _pos)
self.MatchPlayerCount,_pos = CommFunc.ReadBYTE(_lpData, _pos)
for i in range(self.MatchPlayerCount):
temMatchPlayer = tagGCCrossRealmPKMatchPlayer()
@@ -8328,6 +8330,7 @@
self.RoomID = 0
self.NameLen = 0
self.PlayerName = ""
+ self.Number = 0
self.MatchPlayerCount = 0
self.MatchPlayer = list()
return
@@ -8338,6 +8341,7 @@
length += 2
length += 1
length += len(self.PlayerName)
+ length += 1
length += 1
for i in range(self.MatchPlayerCount):
length += self.MatchPlayer[i].GetLength()
@@ -8350,6 +8354,7 @@
data = CommFunc.WriteWORD(data, self.RoomID)
data = CommFunc.WriteBYTE(data, self.NameLen)
data = CommFunc.WriteString(data, self.NameLen, self.PlayerName)
+ data = CommFunc.WriteBYTE(data, self.Number)
data = CommFunc.WriteBYTE(data, self.MatchPlayerCount)
for i in range(self.MatchPlayerCount):
data = CommFunc.WriteString(data, self.MatchPlayer[i].GetLength(), self.MatchPlayer[i].GetBuffer())
@@ -8361,6 +8366,7 @@
RoomID:%d,
NameLen:%d,
PlayerName:%s,
+ Number:%d,
MatchPlayerCount:%d,
MatchPlayer:%s
'''\
@@ -8369,6 +8375,7 @@
self.RoomID,
self.NameLen,
self.PlayerName,
+ self.Number,
self.MatchPlayerCount,
"..."
)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossRealmPK.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossRealmPK.py
index 85e2305..0c55f89 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossRealmPK.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossRealmPK.py
@@ -114,7 +114,6 @@
fbTimeList = IpyGameDataPY.GetFuncEvalCfg("CrossRealmPKFB", 1)
if fbStep == FB_State_Open:
- curPlayer.SetFaction(1)
gameFB.SetGameFBDict(GameFBDict_FBPlayerID % 1, playerID)
gameFB.SetPlayerGameFBDict(playerID, FBPDict_ResetPosX, curPlayer.GetPosX())
gameFB.SetPlayerGameFBDict(playerID, FBPDict_ResetPosY, curPlayer.GetPosY())
@@ -130,7 +129,6 @@
playerIDA = gameFB.GetGameFBDictByKey(GameFBDict_FBPlayerID % 1)
playerIDB = gameFB.GetGameFBDictByKey(GameFBDict_FBPlayerID % 2)
if not playerIDB and playerIDA != playerID:
- curPlayer.SetFaction(2)
gameFB.SetGameFBDict(GameFBDict_FBPlayerID % 2, playerID)
gameFB.SetPlayerGameFBDict(playerID, FBPDict_ResetPosX, curPlayer.GetPosX())
gameFB.SetPlayerGameFBDict(playerID, FBPDict_ResetPosY, curPlayer.GetPosY())
--
Gitblit v1.8.0