| | |
| | | import PlayerControl
|
| | | import PyDataManager
|
| | | import NetPackCommon
|
| | | import GameXiangong
|
| | | import GameWorship
|
| | | import PyGameData
|
| | | import ChConfig
|
| | |
| | | 跨服排位争霸赛最终排名官职信息
|
| | | ShareDefine.Def_UniversalGameRecType_CrossChampionshipOfficial
|
| | | time:time 上一次辞退下级仙官时间
|
| | | value1:zoneID官职ID 官职ID*10 + 分区ID
|
| | | value1:官职ID 官职ID
|
| | | value2:playerID 玩家ID,可能为0
|
| | | value3:worshipValue 被膜拜次数*10 + 是否双倍
|
| | | value4:rank 排名
|
| | | value5:zoneID 分区ID
|
| | | StrValue3: [申请该官职玩家ID,...]
|
| | | '''
|
| | |
|
| | |
| | | '''
|
| | | 跨服排位争霸赛官职挑战信息
|
| | | ShareDefine.Def_UniversalGameRecType_CrossChampionshipOffChallenge
|
| | | value1:zoneID官职ID 官职ID*10 + 分区ID
|
| | | value1:官职ID 官职ID
|
| | | value2:zoneID 分区ID
|
| | | StrValue3: {挑战玩家信息key:value, ...}
|
| | | '''
|
| | |
|
| | |
| | | self.lv = 0
|
| | | self.fightPower = 0
|
| | | self.realmLV = 0
|
| | | self.face = 0
|
| | | self.facePic = 0
|
| | | return
|
| | |
|
| | | def GetString(self):
|
| | |
| | | playerShortInfo["LV"] = cacheDict.get("LV", 1)
|
| | | playerShortInfo["FightPower"] = cacheDict.get("FightPower", 0)
|
| | | playerShortInfo["RealmLV"] = cacheDict.get("RealmLV", 0)
|
| | | playerShortInfo["Face"] = cacheDict.get("Face", 0)
|
| | | playerShortInfo["FacePic"] = cacheDict.get("FacePic", 0)
|
| | | self.applyPlayerInfo[applyPlayerID] = playerShortInfo
|
| | | return {"zoneID":self.zoneID, "officialID":self.officialID, "lastDismissJuniorTime":self.lastDismissJuniorTime,
|
| | | "accID":self.accID, "playerID":self.playerID, "playerName":self.playerName,
|
| | | "accID":self.accID, "playerID":self.playerID, "playerName":self.playerName, "face":self.face, "facePic":self.facePic,
|
| | | "job":self.job, "lv":self.lv, "fightPower":self.fightPower, "realmLV":self.realmLV, "rank":self.rank,
|
| | | "worshipCount":self.worshipCount, "applyPlayerInfo":self.applyPlayerInfo, "challengeList":self.challengeList,
|
| | | "worshipDouble":self.worshipDouble
|
| | |
| | | self.lv = 0
|
| | | self.fightPower = 0
|
| | | self.realmLV = 0
|
| | | self.face = 0
|
| | | self.facePic = 0
|
| | | return
|
| | |
|
| | | def GetString(self):
|
| | | return {"zoneID":self.zoneID, "accID":self.accID, "playerID":self.playerID, "playerName":self.playerName,
|
| | | "job":self.job, "lv":self.lv, "fightPower":self.fightPower, "realmLV":self.realmLV}
|
| | | "job":self.job, "lv":self.lv, "fightPower":self.fightPower, "realmLV":self.realmLV, "face":self.face, "facePic":self.facePic}
|
| | |
|
| | | def SetAttr(self, attrDict):
|
| | | for k, v in attrDict.items():
|
| | |
| | | obj.lv = cacheDict.get("LV", obj.lv)
|
| | | obj.fightPower = cacheDict.get("FightPower", obj.fightPower)
|
| | | obj.realmLV = cacheDict.get("RealmLV", obj.realmLV)
|
| | | obj.face = cacheDict.get("Face", obj.face)
|
| | | obj.facePic = cacheDict.get("FacePic", obj.facePic)
|
| | |
|
| | | return
|
| | |
|
| | |
| | | for index in xrange(officialRecDataList.Count()):
|
| | | recData = officialRecDataList.At(index)
|
| | | lastDismissJuniorTime = recData.GetTime()
|
| | | value1 = recData.GetValue1()
|
| | | officialID = value1 / 10
|
| | | zoneID = value1 % 10
|
| | | officialID = recData.GetValue1()
|
| | | zoneID = recData.GetValue5()
|
| | | playerID = recData.GetValue2()
|
| | | worshipValue = recData.GetValue3()
|
| | | worshipCount = worshipValue / 10
|
| | |
| | | GameWorld.Log("加载跨服排位官职挑战记录信息! %s" % challengeRecDataList.Count())
|
| | | for index in xrange(challengeRecDataList.Count()):
|
| | | recData = challengeRecDataList.At(index)
|
| | | value1 = recData.GetValue1()
|
| | | officialID = value1 / 10
|
| | | zoneID = value1 % 10
|
| | | officialID = recData.GetValue1()
|
| | | zoneID = recData.GetValue2()
|
| | | strValue3 = recData.GetStrValue3()
|
| | | if not strValue3:
|
| | | continue
|
| | |
| | | offObj = offZoneMgr.GetOfficialObj(officialID)
|
| | | if not offObj:
|
| | | continue
|
| | | value1 = offObj.officialID * 10 + zoneID
|
| | | recData = officialRecDataList.AddRec()
|
| | | recData.SetTime(offObj.lastDismissJuniorTime)
|
| | | recData.SetValue1(value1)
|
| | | recData.SetValue1(officialID)
|
| | | recData.SetValue2(offObj.playerID)
|
| | | recData.SetValue3(offObj.worshipCount * 10 + offObj.worshipDouble)
|
| | | recData.SetValue4(offObj.rank)
|
| | | recData.SetValue5(zoneID)
|
| | | strValue3 = "%s" % offObj.applyPlayerInfo.keys()
|
| | | strValue3 = strValue3.replace(" ", "")
|
| | | recData.SetStrValue3(strValue3)
|
| | |
|
| | | #GameWorld.Log(" zoneID=%s,officialID=%s,playerID=%s,rank=%s,challengeCount=%s" |
| | | # % (zoneID, officialID, offObj.playerID, offObj.rank, len(offObj.challengeList)))
|
| | | GameWorld.Log(" zoneID=%s,officialID=%s,playerID=%s,rank=%s,challengeCount=%s" |
| | | % (zoneID, officialID, offObj.playerID, offObj.rank, len(offObj.challengeList)))
|
| | | for challengeDict in offObj.challengeList:
|
| | | challRecData = challengeRecDataList.AddRec()
|
| | | challRecData.SetValue1(value1)
|
| | | challRecData.SetValue1(officialID)
|
| | | challRecData.SetValue2(zoneID)
|
| | | strValue3 = str(challengeDict)
|
| | | strValue3 = strValue3.replace(" ", "")
|
| | | challRecData.SetStrValue3(strValue3)
|
| | |
| | |
|
| | | # 添加开启分线数据
|
| | | realMapID = mapID
|
| | | copyMapObj = PlayerFB.CrossCopyMapInfo(zoneID, 0)
|
| | | copyMapObj = PlayerFB.CrossCopyMapInfo(zoneID, ChConfig.Def_FBMapID_CrossChampionship, 0)
|
| | | copyMapObj.realMapID = realMapID
|
| | | copyMapObj.copyMapID = copyMapID
|
| | | key = (realMapID, copyMapID)
|
| | |
| | | pkZoneIDList = champMgr.GetChampPKZoneIDList()
|
| | | GameWorld.Log("pkZoneIDList=%s" % pkZoneIDList)
|
| | |
|
| | | worshipList = []
|
| | | syncNewWorshipList = []
|
| | | syncNewXiangongDict = {}
|
| | | crossZoneName = GameWorld.GetCrossZoneName()
|
| | | for zoneID in pkZoneIDList:
|
| | | GameWorld.Log("=== 结算排位分区: zoneID=%s ===" % zoneID, zoneID)
|
| | | zoneIpyData = IpyGameDataPY.GetIpyGameData("CrossZonePK", crossZoneName, zoneID)
|
| | | serverIDRangeList = zoneIpyData.GetServerGroupIDList() if zoneIpyData else []
|
| | | |
| | | finalPlayerIDList = []
|
| | | pkZoneMgr = champMgr.GetChampPKZoneMgr(zoneID)
|
| | | if not pkZoneMgr:
|
| | |
| | | rankIpyData = IpyGameDataPY.GetIpyGameData("ChampionshipRank", rank)
|
| | | officialID = rankIpyData.GetMainOfficialID() if rankIpyData else 0
|
| | | rankAwardItemList = rankIpyData.GetRankAwardItemList() if rankIpyData else []
|
| | | GameWorld.Log(" 最终排名: zoneID=%s,rank=%s,playerID=%s,officialID=%s,rankAwardItemList=%s,accID=%s,fightPower=%s" |
| | | % (zoneID, rank, playerID, officialID, rankAwardItemList, accID, fightPower), zoneID)
|
| | | xiangongID = rankIpyData.GetXiangongID() if rankIpyData else 0
|
| | | GameWorld.Log(" 最终排名: zoneID=%s,rank=%s,playerID=%s,officialID=%s,xiangongID=%s,rankAwardItemList=%s,accID=%s,fightPower=%s" |
| | | % (zoneID, rank, playerID, officialID, xiangongID, rankAwardItemList, accID, fightPower), zoneID)
|
| | |
|
| | | if officialID:
|
| | | offObj = ChampionshipOfficial()
|
| | |
| | |
|
| | | offZoneMgr.officialInfo[officialID] = offObj
|
| | |
|
| | | worshipValue = rank
|
| | | if GameWorship.GetWorshipIpyData(worshipType, worshipValue):
|
| | | worshipData = GameWorship.AddWorshipPlayer(playerID, worshipType, worshipValue, zoneID=zoneID, isNotify=False)
|
| | | worshipList.append(worshipData)
|
| | | |
| | | |
| | | # 名次奖励
|
| | | paramList = [rank]
|
| | | PlayerCompensation.SendMailByKey("CrossChampionshipPKRank", [playerID], rankAwardItemList, paramList, crossMail=True)
|
| | | |
| | | GameXiangong.AddXiangongPlayer(xiangongID, playerID, serverIDRangeList, rank, syncNewXiangongDict)
|
| | | GameWorship.AddWorshipPlayer(worshipType, rank, playerID, serverIDRangeList, syncNewWorshipList)
|
| | |
|
| | | # 处理4强竞猜发奖励
|
| | | guessType = 4
|
| | |
| | | PlayerControl.WorldNotifyCross(serverGroupIDList, 0, "ChampionshipOver")
|
| | |
|
| | | # 通知新添加的膜拜
|
| | | GameWorship.SyncAddCrossWorship(worshipList)
|
| | | GameWorship.SendNewWorshipPlayer(syncNewWorshipList)
|
| | | GameXiangong.SendNewXiangongPlayerToClientServer(syncNewXiangongDict)
|
| | | GameWorld.Log("===================================================================")
|
| | | return
|
| | |
|
| | |
| | | playerPack.FightPower = batPlayer.fightPower % ShareDefine.Def_PerPointValue
|
| | | playerPack.FightPowerEx = batPlayer.fightPower / ShareDefine.Def_PerPointValue
|
| | | playerPack.RealmLV = batPlayer.realmLV
|
| | | playerPack.Face = batPlayer.face
|
| | | playerPack.FacePic = batPlayer.facePic
|
| | | clientPack.PlayerList.append(playerPack)
|
| | | clientPack.PlayerCount = len(clientPack.PlayerList)
|
| | |
|
| | |
| | | offPlayer.FightPower = offObj.fightPower % ShareDefine.Def_PerPointValue
|
| | | offPlayer.FightPowerEx = offObj.fightPower / ShareDefine.Def_PerPointValue
|
| | | offPlayer.RealmLV = offObj.realmLV
|
| | | offPlayer.Face = offObj.face
|
| | | offPlayer.FacePic = offObj.facePic
|
| | |
|
| | | offPack = ChPyNetSendPack.tagGCChampionshipOfficial()
|
| | | offPack.OfficialID = officialID
|
| | |
| | | applyPlayer.FightPower = fightPower % ShareDefine.Def_PerPointValue
|
| | | applyPlayer.FightPowerEx = fightPower / ShareDefine.Def_PerPointValue
|
| | | applyPlayer.RealmLV = playerInfo.get("RealmLV", 1)
|
| | | applyPlayer.Face = playerInfo.get("Face", 0)
|
| | | applyPlayer.FacePic = playerInfo.get("FacePic", 0)
|
| | |
|
| | | offPack.ApplyPlayerList.append(applyPlayer)
|
| | | offPack.ApplyPlayerCount = len(offPack.ApplyPlayerList)
|