| | |
| | | import PlayerControl
|
| | | import IpyGameDataPY
|
| | | import ChPyNetSendPack
|
| | | import OpenServerActivity
|
| | | import GameLogic_Dingjunge
|
| | | import PlayerGoldRush
|
| | | import NetPackCommon
|
| | | import ItemControler
|
| | |
| | | UnlockWay_FBZhanchui, # 白骨盈野过关 5
|
| | | UnlockWay_OfficialRank, # 官职达到 6
|
| | | UnlockWay_TravelCnt, # 游历次数 7
|
| | | ) = range(1, 1 + 7)
|
| | | UnlockWay_FBDingjunge, # 定军阁通关层 8
|
| | | ) = range(1, 1 + 8)
|
| | |
|
| | | # 皮肤解锁方式
|
| | | UnlockWaySkin_Default = 1 # 默认解锁 1
|
| | |
| | | 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)
|
| | |
| | | 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:
|
| | | realmLV = curPlayer.GetOfficialRank()
|
| | | needRealmLV = unlockValue
|
| | |
| | | continue
|
| | | actCnt += 1
|
| | | return actCnt
|
| | |
|
| | | def GetBeautyLVTotal(curPlayer):
|
| | | ## 红颜总等级
|
| | | lvTotal = 0
|
| | | ipyDataMgr = IpyGameDataPY.IPY_Data()
|
| | | for index in range(ipyDataMgr.GetBeautyCount()):
|
| | | ipyData = ipyDataMgr.GetBeautyByIndex(index)
|
| | | beautyID = ipyData.GetBeautyID()
|
| | | if not GetBeautyState(curPlayer, beautyID):
|
| | | continue
|
| | | curLV = GetBeautyLVInfo(curPlayer, beautyID)[0]
|
| | | lvTotal += curLV
|
| | | return lvTotal
|
| | |
|
| | | #// B2 20 红颜好感度升级 #tagCSBeautyLVUP
|
| | | #
|
| | |
| | | # 有升级额外处理
|
| | | if updLV > curLV:
|
| | | RefreshBeautyAttr(curPlayer)
|
| | | OpenServerActivity.UpdOSA_BeautyTrainBillboard(curPlayer)
|
| | |
|
| | | return
|
| | |
|
| | |
| | | # 保存计算值
|
| | | 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):
|