5424 【后端】【1.4】跨服竞技场开发(位置编号信息改为在匹配成功包通知)
| | |
| | | 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
|
| | |
| | | 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()
|
| | |
| | | self.RoomID = 0
|
| | | self.NameLen = 0
|
| | | self.PlayerName = ""
|
| | | self.Number = 0
|
| | | self.MatchPlayerCount = 0
|
| | | self.MatchPlayer = list()
|
| | | return
|
| | |
| | | length += 2
|
| | | length += 1
|
| | | length += len(self.PlayerName)
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.MatchPlayerCount):
|
| | | length += self.MatchPlayer[i].GetLength()
|
| | |
| | | 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())
|
| | |
| | | RoomID:%d,
|
| | | NameLen:%d,
|
| | | PlayerName:%s,
|
| | | Number:%d,
|
| | | MatchPlayerCount:%d,
|
| | | MatchPlayer:%s
|
| | | '''\
|
| | |
| | | self.RoomID,
|
| | | self.NameLen,
|
| | | self.PlayerName,
|
| | | self.Number,
|
| | | self.MatchPlayerCount,
|
| | | "..."
|
| | | )
|
| | |
| | | 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:
|
| | |
| | | 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))
|
| | |
| | | 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)
|
| | |
| | | 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
|
| | |
| | | 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()
|
| | |
| | | self.RoomID = 0
|
| | | self.NameLen = 0
|
| | | self.PlayerName = ""
|
| | | self.Number = 0
|
| | | self.MatchPlayerCount = 0
|
| | | self.MatchPlayer = list()
|
| | | return
|
| | |
| | | length += 2
|
| | | length += 1
|
| | | length += len(self.PlayerName)
|
| | | length += 1
|
| | | length += 1
|
| | | for i in range(self.MatchPlayerCount):
|
| | | length += self.MatchPlayer[i].GetLength()
|
| | |
| | | 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())
|
| | |
| | | RoomID:%d,
|
| | | NameLen:%d,
|
| | | PlayerName:%s,
|
| | | Number:%d,
|
| | | MatchPlayerCount:%d,
|
| | | MatchPlayer:%s
|
| | | '''\
|
| | |
| | | self.RoomID,
|
| | | self.NameLen,
|
| | | self.PlayerName,
|
| | | self.Number,
|
| | | self.MatchPlayerCount,
|
| | | "..."
|
| | | )
|
| | |
| | | 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())
|
| | |
| | | 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())
|