From f13182e5fbfb4782d53d70274528b933bb5e9b95 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期三, 26 二月 2025 01:28:51 +0800 Subject: [PATCH] 10385 【越南】【英语】【BT】【GM】【砍树】福地新增鼠管及优化-服务端(修复疲劳满后还允许拉物品bug) --- ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py | 30 ++++++++++++++++++++++++------ 1 files changed, 24 insertions(+), 6 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py index 3d1480f..baaae80 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldFamilyWar.py @@ -90,6 +90,7 @@ value4 已分配到的连胜次数 value5 终结连胜的奖励次数, 只能获得这一次的连胜奖励,有值才显示,分配后设置为0, 优先分配 strValue1 仙盟名 +strValue2 仙盟徽章 ''' def GetFWChampionFamilyID(championRecData): return championRecData.GetValue1() def SetFWChampionFamilyID(championRecData, familyID): return championRecData.SetValue1(familyID) @@ -103,6 +104,7 @@ 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 @@ -420,7 +422,9 @@ 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() @@ -988,6 +992,7 @@ championFamilyName = family.GetName() SetFWChampionLeaderID(championRecData, family.GetLeaderID()) SetFWChampionFamilyName(championRecData, championFamilyName) + SetFWChampionFamilyEmblemID(championRecData, PlayerFamily.GetFamilyEmblemID(family)) else: GameWorld.Log(" 冠军仙盟不存在或已经解散了!") @@ -1063,21 +1068,34 @@ ## 给仙盟排名仙盟拍品奖励 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): if rank not in cfgRankAuctionItemDict: -- Gitblit v1.8.0