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