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