| | |
| | | value4 已分配到的连胜次数
|
| | | value5 终结连胜的奖励次数, 只能获得这一次的连胜奖励,有值才显示,分配后设置为0, 优先分配
|
| | | strValue1 仙盟名
|
| | | strValue2 仙盟徽章
|
| | | '''
|
| | | def GetFWChampionFamilyID(championRecData): return championRecData.GetValue1()
|
| | | def SetFWChampionFamilyID(championRecData, familyID): return championRecData.SetValue1(familyID)
|
| | |
| | | def SetFWChampionEndWinCount(championRecData, endWinCount): return championRecData.SetValue5(endWinCount)
|
| | | def GetFWChampionFamilyName(championRecData): return championRecData.GetStrValue1()
|
| | | def SetFWChampionFamilyName(championRecData, familyName): return championRecData.SetStrValue1(familyName)
|
| | | def SetFWChampionFamilyEmblemID(championRecData, emblemID): return championRecData.SetStrValue2(str(emblemID))
|
| | |
|
| | | ''' 参赛人员 Def_UniversalGameRecType_FamilyWarMember
|
| | | value1 玩家ID
|
| | |
| | | PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_FamilyWar_AllOver, 0) # 新一轮开始,重置状态
|
| | | PlayerFamily.DoFamilySort() # 首轮分组前需要强制刷新一次仙盟排行
|
| | |
|
| | | lastFamilyWarMemDict = copy.deepcopy(PyGameData.g_familyWarMemDict)
|
| | | lastFamilyWarMemDict = {}
|
| | | for warPlayerID, recData in PyGameData.g_familyWarMemDict.items():
|
| | | lastFamilyWarMemDict[warPlayerID] = GetFWMemFamilyID(recData)
|
| | | PyGameData.g_familyWarMemDict = {}
|
| | | PyGameData.g_familyWarFamilyIDList = []
|
| | | universalRecMgr = GameWorld.GetUniversalRecMgr()
|
| | |
| | | championFamilyName = family.GetName()
|
| | | SetFWChampionLeaderID(championRecData, family.GetLeaderID())
|
| | | SetFWChampionFamilyName(championRecData, championFamilyName)
|
| | | SetFWChampionFamilyEmblemID(championRecData, PlayerFamily.GetFamilyEmblemID(family))
|
| | | else:
|
| | | GameWorld.Log(" 冠军仙盟不存在或已经解散了!")
|
| | |
|
| | |
| | | if not family:
|
| | | return
|
| | |
|
| | | familyAllPlayerIDList = []
|
| | | familyPlayerIDList = []
|
| | | for i in xrange(family.GetCount()):
|
| | | member = family.GetAt(i)
|
| | | memPlayerID = member.GetPlayerID()
|
| | | if memPlayerID not in PyGameData.g_familyWarMemDict:
|
| | | continue
|
| | | familyAllPlayerIDList.append(memPlayerID)
|
| | | recData = PyGameData.g_familyWarMemDict[memPlayerID]
|
| | | if GetFWMemFamilyID(recData) != familyID:
|
| | | continue
|
| | | if not GetFWMemIsJoin(recData):
|
| | | continue
|
| | | familyPlayerIDList.append(memPlayerID)
|
| | | if not familyPlayerIDList:
|
| | | familyPlayerIDList = familyAllPlayerIDList
|
| | | GameWorld.Log("连胜没有人参赛,收益算仙盟所有人的!familyID=%s,familyAllPlayerIDList=%s" % (familyID, familyAllPlayerIDList))
|
| | |
|
| | | familyAuctionItemDict = {} # {仙盟ID:[[享受收益的成员ID, ...], [[拍品ID,个数], [拍品ID,个数,是否拍品], ...]], ...}
|
| | | familyAuctionItemDict[familyID] = [familyPlayerIDList, familyAuctionItemList]
|
| | |
| | | ## 给仙盟排名仙盟拍品奖励
|
| | |
|
| | | warWorldLV = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_FamilyWar_StartWorldLV)
|
| | | GameWorld.Log("发放排名仙盟拍品奖励: warWorldLV=%s, familyWarIDRankList=%s" % (warWorldLV, familyWarIDRankList))
|
| | | |
| | | cfgRankKey = 1
|
| | | cfgRankAuctionItemDict = {}
|
| | | rewardWorldLV = 0
|
| | | ipyDataMgr = IpyGameDataPY.IPY_Data()
|
| | | for index in xrange(ipyDataMgr.GetFamilyWarRankAwardCount()):
|
| | | ipyData = ipyDataMgr.GetFamilyWarRankAwardByIndex(index)
|
| | | if warWorldLV > ipyData.GetWarWorldLV() and cfgRankAuctionItemDict:
|
| | | cfgWorldLV = ipyData.GetWarWorldLV()
|
| | | if warWorldLV <= cfgWorldLV:
|
| | | rewardWorldLV = cfgWorldLV
|
| | | break
|
| | | elif warWorldLV > cfgWorldLV:
|
| | | rewardWorldLV = cfgWorldLV
|
| | | GameWorld.Log("发放排名仙盟拍品奖励: warWorldLV=%s, rewardWorldLV=%s, familyWarIDRankList=%s" % (warWorldLV, rewardWorldLV, familyWarIDRankList))
|
| | | |
| | | rewardIpyDataList = IpyGameDataPY.GetIpyGameDataList("FamilyWarRankAward", rewardWorldLV)
|
| | | if not rewardIpyDataList:
|
| | | GameWorld.ErrLog("找不到仙盟排名对应世界等级奖励!")
|
| | | return
|
| | | |
| | | cfgRankKey = 1
|
| | | cfgRankAuctionItemDict = {}
|
| | | for ipyData in rewardIpyDataList:
|
| | | warRank = ipyData.GetWarRank()
|
| | | auctionItemList = ipyData.GetRankAuctionItem()
|
| | | for rank in range(cfgRankKey, warRank + 1):
|
| | | cfgRankAuctionItemDict[rank] = auctionItemList
|
| | | cfgRankKey = warRank + 1
|
| | | |
| | | GameWorld.Log("对应世界等级奖励: rewardWorldLV=%s, %s" % (rewardWorldLV, cfgRankAuctionItemDict))
|
| | |
|
| | | familyAuctionItemDict = {} # {仙盟ID:[[享受收益的成员ID, ...], [[拍品ID,个数], [拍品ID,个数,是否拍品], ...]], ...}
|
| | | for rank, familyID in enumerate(familyWarIDRankList, 1):
|
| | |
| | | GameWorld.Log(" rank=%s,familyID=%s,仙盟不存在!" % (rank, familyID))
|
| | | continue
|
| | |
|
| | | familyAllPlayerIDList = []
|
| | | familyPlayerIDList = []
|
| | | for i in xrange(family.GetCount()):
|
| | | member = family.GetAt(i)
|
| | | memPlayerID = member.GetPlayerID()
|
| | | if memPlayerID not in PyGameData.g_familyWarMemDict:
|
| | | continue
|
| | | familyAllPlayerIDList.append(memPlayerID)
|
| | | recData = PyGameData.g_familyWarMemDict[memPlayerID]
|
| | | if GetFWMemFamilyID(recData) != familyID:
|
| | | continue
|
| | | if not GetFWMemIsJoin(recData):
|
| | | continue
|
| | | familyPlayerIDList.append(memPlayerID)
|
| | | if not familyPlayerIDList:
|
| | | familyPlayerIDList = familyAllPlayerIDList
|
| | | GameWorld.Log(" 排名没有人参赛,收益算仙盟所有人的!familyID=%s,familyAllPlayerIDList=%s" % (familyID, familyAllPlayerIDList))
|
| | |
|
| | | familyAuctionItemList = cfgRankAuctionItemDict[rank]
|
| | | familyAuctionItemDict[familyID] = [familyPlayerIDList, familyAuctionItemList]
|