hxp
2025-12-05 c80c8718c507a7e52f065eee9e35bb4f27573f48
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBeauty.py
@@ -25,10 +25,10 @@
import PlayerGoldRush
import NetPackCommon
import ItemControler
import PyGameData
import PlayerTask
import FBCommon
import ObjPool
import PyGameData
# 红颜解锁方式
(
@@ -50,7 +50,7 @@
EffType_BootyPer, # 1. 主线战利品上限提高百分比(对所有主线战利品生效)  Value:百分比
EffType_ArenaItemEx, # 2. 演武场挑战胜利,概率额外获得1个物品的概率    TypeValue:物品ID  Value:概率
EffType_TravelEnergy, # 3.游历体力上限增加     Value:增加上限
EffType_FBZhanchuiAwardPer, # 4.白骨盈野扫荡奖励增加百分比     Value:百分比
EffType_FBZhanchuiItemEx, # 4.白骨盈野扫荡额外物品奖励      TypeValue:物品ID  Value:数量
) = range(1, 1 + 4)
def OnPlayerLogin(curPlayer):
@@ -188,7 +188,7 @@
            return
        
    elif unlockWay == UnlockWay_TravelCnt:
        travelCnt = 0
        travelCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_TravelCnt)
        needTravelCnt = unlockNeedCnt
        if travelCnt < needTravelCnt:
            GameWorld.DebugLog("激活红颜所需游历次数不足! beautyID=%s,travelCnt=%s < %s" % (beautyID, travelCnt, needTravelCnt), playerID)
@@ -239,21 +239,15 @@
    quality = ipyData.GetBeautyQuality()
    curLV, curExp = GetBeautyLVInfo(curPlayer, beautyID)
    
    isCommItem = True # 是否使用的常规通用物品
    commItemIDList = IpyGameDataPY.GetFuncEvalCfg("BeautyLVUP", 1)
    commExpList = IpyGameDataPY.GetFuncEvalCfg("BeautyLVUP", 2)
    if itemID in commItemIDList:
        index = commItemIDList.index(itemID)
        perExp = commExpList[index] if len(commExpList) > index else 0
    else:
        isCommItem = False
        unlockWay = ipyData.GetUnlockWay()
        unlockValue = ipyData.GetUnlockValue()
        if unlockWay != UnlockWay_Item:
            GameWorld.DebugLog("非道具激活的不支持专属信物ID升级! beautyID=%s,unlockWay=%s" % (beautyID, unlockWay), playerID)
            return
        if itemID != unlockValue:
            GameWorld.DebugLog("非该红颜专属信物ID! beautyID=%s,itemID=%s != %s" % (beautyID, itemID, unlockValue), playerID)
        exclusiveItemID = ipyData.GetExclusiveItemID()
        if itemID != exclusiveItemID:
            GameWorld.DebugLog("非该红颜专属信物ID! beautyID=%s,itemID=%s != %s" % (beautyID, itemID, exclusiveItemID), playerID)
            return
        perExp = IpyGameDataPY.GetFuncCfg("BeautyLVUP", 3)
        
@@ -280,24 +274,16 @@
        if costItemCount < 1:
            return
        
        if isCommItem:
            costItemIndexList, bindCnt, unBindCnt = ItemCommon.GetPackItemBindStateIndexInfo(curPlayer, itemID, costItemCount)
            lackCnt = costItemCount - bindCnt - unBindCnt
            if lackCnt > 0:
                costItemCount -= lackCnt
                GameWorld.DebugLog("消耗道具不足,有多少消耗多少! itemID=%s,costItemCount=%s,bindCnt=%s,unBindCnt=%s,lackCnt=%s"
                                   % (itemID, costItemCount, bindCnt, unBindCnt, lackCnt))
            # 扣除消耗
            if costItemCount > 0:
                ItemCommon.DelCostItemByBind(curPlayer, costItemIndexList, bindCnt, unBindCnt, costItemCount, "Beauty")
        else:
            itemCount = ItemControler.GetItemCountByID(curPlayer, itemID)
            if itemCount < costItemCount:
                costItemCount = itemCount
            if costItemCount > 0:
                ItemControler.SetItemCountByID(curPlayer, itemID, itemCount - costItemCount)
        costItemIndexList, bindCnt, unBindCnt = ItemCommon.GetPackItemBindStateIndexInfo(curPlayer, itemID, costItemCount)
        lackCnt = costItemCount - bindCnt - unBindCnt
        if lackCnt > 0:
            costItemCount -= lackCnt
            GameWorld.DebugLog("消耗道具不足,有多少消耗多少! itemID=%s,costItemCount=%s,bindCnt=%s,unBindCnt=%s,lackCnt=%s"
                               % (itemID, costItemCount, bindCnt, unBindCnt, lackCnt))
        # 扣除消耗
        if costItemCount > 0:
            ItemCommon.DelCostItemByBind(curPlayer, costItemIndexList, bindCnt, unBindCnt, costItemCount, "Beauty")
    addExp = costItemCount * perExp
    updExp = curExp + addExp
    GameWorld.DebugLog("红颜加经验: beautyID=%s,quality=%s,curLV=%s,curExp=%s,addExp=%s,updExp=%s/%s,itemID=%s,costItemCount=%s,perExp=%s"