From 6f2c8b0e79e4963cc6aceda674847d04d23e02b2 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期三, 24 十二月 2025 18:25:40 +0800
Subject: [PATCH] 16 卡牌服务端(MainLevelPass流向增加祝福树等级信息;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py | 35 +++++++++++++++++++++++++++++------
1 files changed, 29 insertions(+), 6 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py
index 907551c..c494c7c 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHero.py
@@ -43,6 +43,7 @@
Sync_PlayerHeroInfo(curPlayer)
Sync_LineupRecommendInfo(curPlayer)
Sync_HeroFatesInfo(curPlayer)
+ __CheckOSAHeroStar(curPlayer)
return
def OnPlayerFirstLogin(curPlayer):
@@ -605,6 +606,28 @@
break
singleItem.AddUserAttr(ShareDefine.Def_IudetHeroTalentID, talentID)
singleItem.AddUserAttr(ShareDefine.Def_IudetHeroTalentIDLV, lvList[index])
+ return
+
+def GetHeroStarTotal(curPlayer):
+ ## 武将总星级
+ totalStar = 0
+ curPack = curPlayer.GetItemManager().GetPack(ShareDefine.rptHero)
+ for index in range(curPack.GetCount()):
+ heroItem = curPack.GetAt(index)
+ if not heroItem or heroItem.IsEmpty():
+ continue
+ totalStar += heroItem.GetUserAttr(ShareDefine.Def_IudetHeroStar)
+ return totalStar
+
+def __CheckOSAHeroStar(curPlayer):
+ ## 线上bug临时处理
+ osaHeroStar = PlayerSuccess.GetSuccValue(curPlayer, ShareDefine.SuccType_OSAHeroStarUP, [])
+ starTotal = GetHeroStarTotal(curPlayer)
+ addStar = starTotal - osaHeroStar
+ if addStar <= 0:
+ return
+ GameWorld.Log("上线修正庆典武将升星成就进度! addStar=%s,starTotal=%s" % (addStar, starTotal))
+ PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_OSAHeroStarUP, addStar)
return
#// B2 32 武将突破 #tagCSHeroBreak
@@ -1263,13 +1286,13 @@
qualityBreakIpyData = IpyGameDataPY.GetIpyGameData("HeroQualityBreak", quality, retBreakLV)
if not qualityBreakIpyData:
continue
- costItemInfo = qualityBreakIpyData.GetUPCostItem()
- if not costItemInfo:
+ costItemList = qualityBreakIpyData.GetUPCostItemList()
+ if not costItemList:
continue
- costItemID, costItemCount = costItemInfo
- costItemCount = max(1, int(costItemCount * ratio / 100.0))
- returnItemDict[costItemID] = returnItemDict.get(costItemID, 0) + costItemCount
- returnDict[costItemID] = returnDict.get(costItemID, 0) + costItemCount
+ for costItemID, costItemCount in costItemList:
+ costItemCount = max(1, int(costItemCount * ratio / 100.0))
+ returnItemDict[costItemID] = returnItemDict.get(costItemID, 0) + costItemCount
+ returnDict[costItemID] = returnDict.get(costItemID, 0) + costItemCount
GameWorld.DebugLog(" 突破返还: quality=%s,breakLV=%s,ratio=%s,%s,总%s" % (quality, breakLV, ratio, returnDict, returnItemDict))
return
--
Gitblit v1.8.0