| | |
| | | def GiveSealDemonAward(curPlayer, lineID, rank, isMail=False, isClientSend=False, dropItemMapInfo=[]):
|
| | | newbielineList = IpyGameDataPY.GetFuncEvalCfg('SealDemonNewbieLine')
|
| | | isNewbieLine = lineID in newbielineList
|
| | | sealDemonIpyData = GetSealDemonIpyData(lineID)
|
| | | if not sealDemonIpyData:
|
| | | return {}
|
| | | prizeMultiple = 1
|
| | | addCnt = 1
|
| | | if isNewbieLine:
|
| | |
| | | elif isClientSend:
|
| | | return {}
|
| | | else:
|
| | | prizeMultiple = 2 if rank == 1 else 1 # 第一名执行双倍掉落奖励,其他一次
|
| | | #prizeMultiple = 2 if rank == 1 else 1 # 第一名执行双倍掉落奖励,其他一次
|
| | | prizeMultiple = 1 # 去除第一名双倍逻辑,改为放在额外奖励产出
|
| | | isDouble = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FMTDouble)
|
| | | if isDouble:
|
| | | addCnt = 2
|
| | | equipList = []
|
| | | prizeItemDict ={}
|
| | | bossID = CurFBLineBOSSID(lineID)
|
| | | extraItemList = sealDemonIpyData.GetOwnerAwardItemEx() * addCnt if rank == 1 else []
|
| | | #for _ in xrange(addCnt):
|
| | | jsonItemList, totalExp, totalMoney = NPCCommon.GiveKillNPCDropPrize(curPlayer, ChConfig.Def_FBMapID_SealDemon, {bossID:addCnt},
|
| | | mailTypeKey="SealDemonMail", isMail=isMail, prizeMultiple=prizeMultiple, |
| | | mailTypeKey="SealDemonMail", isMail=isMail, extraItemList=extraItemList, prizeMultiple=prizeMultiple, |
| | | dropItemMapInfo=dropItemMapInfo,isVirtualDrop=isClientSend)
|
| | | for jsonItem in jsonItemList:
|
| | | if 'UserData' in jsonItem:
|
| | |
| | | bossID = ipyData.GetNPCID()
|
| | | return bossID
|
| | |
|
| | | def GetSealDemonIpyData(lineID= -1):
|
| | | #该分线刷的BOSSID
|
| | | if lineID == -1:
|
| | | lineID = GameWorld.GetGameWorld().GetPropertyID() - 1
|
| | | if lineID == -1:
|
| | | return
|
| | | return IpyGameDataPY.GetIpyGameDataByCondition('SealDemon', {'LineID':lineID})
|
| | |
|
| | | ##玩家死亡.
|
| | | # @param curPlayer:死亡的玩家
|
| | | # @param tick 时间戳
|