5424 【后端】【1.4】跨服竞技场开发(位置编号信息改为在匹配成功包通知)
4个文件已修改
22 ■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/ChPyNetSendPack.py 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/CrossRealmPK.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ChPyNetSendPack.py 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_CrossRealmPK.py 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,
                                "..."
                                )
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)
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,
                                "..."
                                )
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())