| | |
| | | import operator
|
| | | import random
|
| | | import time
|
| | | import cPickle
|
| | |
|
| | | class CrossPKPlayer():
|
| | | ## 跨服PK玩家类
|
| | |
| | |
|
| | | sendMapOverInfo = [roomID, zoneID, seasonID, timeStr, overType, winnerID, roundWinnerIDList, pkScore, danLV, cWinCount, addScore, tagPlayerID, tagPlayerName, notifyState]
|
| | | player = GameWorld.GetPlayerManager().FindPlayerByID(playerID)
|
| | | if not player:
|
| | | CrossRealmPlayer.DoOfflinePlayerExitCrossServer(playerID)
|
| | | if not player or PlayerControl.GetIsTJG(player):
|
| | | GameWorld.DebugLog(" 玩家不在线 或脱机中,先缓存,玩家上线后再同步,playerID=%s" % (playerID))
|
| | | overInfoData = PyGameDataStruct.tagDBCrossPKUnNotifyOverInfo()
|
| | |
| | | overInfoData.OverType = overType
|
| | | overInfoData.PlayerID = playerID
|
| | | overInfoData.WinnerID = winnerID
|
| | | overInfoData.RoundWinnerInfo = cPickle.dumps(roundWinnerIDList, 2)
|
| | | overInfoData.RoundWinnerInfo = str(roundWinnerIDList)
|
| | | overInfoData.RoundWinnerLen = len(overInfoData.RoundWinnerInfo)
|
| | | overInfoData.PKScore = pkScore
|
| | | overInfoData.DanLV = danLV
|
| | |
| | | winnerID = overInfoData.WinnerID
|
| | | roundWinnerIDList = []
|
| | | try:
|
| | | roundWinnerIDList = cPickle.loads(overInfoData.RoundWinnerInfo)
|
| | | roundWinnerIDList = eval(overInfoData.RoundWinnerInfo)
|
| | | except:
|
| | | GameWorld.ErrLog("__OnLoginNotifyPKOverInfo roundWinnerIDList eval error! RoundWinnerInfo=%s" % overInfoData.RoundWinnerInfo, playerID)
|
| | | pkScore = overInfoData.PKScore
|