hxp
5 天以前 256fb6df5072850105da4b381f8ce1896c168ac1
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerBeauty.py
@@ -23,6 +23,7 @@
import IpyGameDataPY
import ChPyNetSendPack
import OpenServerActivity
import GameLogic_Dingjunge
import PlayerGoldRush
import NetPackCommon
import ItemControler
@@ -39,7 +40,8 @@
UnlockWay_FBZhanchui, # 白骨盈野过关 5
UnlockWay_OfficialRank, # 官职达到 6
UnlockWay_TravelCnt, # 游历次数 7
) = range(1, 1 + 7)
UnlockWay_FBDingjunge, # 定军阁通关层 8
) = range(1, 1 + 8)
# 皮肤解锁方式
UnlockWaySkin_Default = 1 # 默认解锁 1
@@ -51,7 +53,8 @@
EffType_ArenaItemEx, # 2. 演武场挑战胜利,概率额外获得1个物品的概率    TypeValue:物品ID  Value:概率
EffType_TravelEnergy, # 3.游历体力上限增加     Value:增加上限
EffType_FBZhanchuiItemEx, # 4.白骨盈野扫荡额外物品奖励      TypeValue:物品ID  Value:数量
) = range(1, 1 + 4)
EffType_HeroItemExPer, # 5.遣散/吞噬武将额外返还      Value:百分比
) = range(1, 1 + 5)
def OnPlayerLogin(curPlayer):
    SyncBeautyInfo(curPlayer)
@@ -180,6 +183,13 @@
        isPass = FBCommon.IsFBPass(curPlayer, mapID, funcLineID)
        if not isPass:
            GameWorld.DebugLog("激活红颜所需副本未过关! beautyID=%s,mapID=%s,funcLineID=%s" % (beautyID, mapID, funcLineID), playerID)
            return
    elif unlockWay == UnlockWay_FBDingjunge:
        passLayer = GameLogic_Dingjunge.GetPassLayerMax(curPlayer)
        needLayer = unlockValue
        if passLayer < needLayer:
            GameWorld.DebugLog("激活红颜所需定军阁通关层不足! beautyID=%s,passLayer=%s < %s" % (beautyID, passLayer, needLayer), playerID)
            return
        
    elif unlockWay == UnlockWay_OfficialRank:
@@ -580,14 +590,13 @@
    # 保存计算值
    GameWorld.DebugLog("红颜属性: %s" % attrDict, playerID)
    GameWorld.DebugLog("红颜效果: %s" % effTypeDict, playerID)
    PyGameData.g_beautyEffTypeDict[playerID] = effTypeDict
    PlayerOnline.GetOnlinePlayer(curPlayer).SetCalcAttr(ChConfig.Def_CalcAttr_Beauty, attrDict)
    PlayerOnline.GetOnlinePlayer(curPlayer).SetCalcAttr(ChConfig.Def_CalcAttr_Beauty, attrDict, effTypeDict)
    return
def GetBeautyEffInfo(curPlayer, effType):
    ## 获取红颜特殊效果信息
    # @return: effValue, effTypeValue
    effTypeDict = PyGameData.g_beautyEffTypeDict.get(curPlayer.GetPlayerID(), {})
    effTypeDict = PlayerOnline.GetOnlinePlayer(curPlayer).GetCalcSpecInfo(ChConfig.Def_CalcAttr_Beauty)
    return effTypeDict.get(effType, [0, 0])
def SyncBeautyInfo(curPlayer, beautyIDList=None, skinIDList=None):