| | |
| | | FBCommon.SetFBStep(FB_Step_Over, tick)
|
| | |
|
| | | lineID = FBCommon.GetFBPropertyMark()
|
| | | awardCfg = FBCommon.GetFBLineReward(ChConfig.Def_FBMapID_FairyTreasure, lineID)
|
| | | curAlchemyLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AlchemyLV)
|
| | | giveItemList = []
|
| | | dropItemList = []
|
| | | for awardRateList in awardCfg:
|
| | | newItemInfoList = []
|
| | | for itemInfo in awardRateList:
|
| | | itemID = itemInfo[1][0]
|
| | | itemData = GameWorld.GetGameData().GetItemByTypeID(itemID)
|
| | | if not itemData:
|
| | | return
|
| | | if curAlchemyLV < itemData.GetLV() - 1:
|
| | | #丹炉等级不足
|
| | | ipyData = IpyGameDataPY.GetIpyGameDataByCondition('FairyDomain', {'MapID':ChConfig.Def_FBMapID_FairyTreasure, 'LineID':lineID})
|
| | | fdeventID = ipyData.GetID()
|
| | | giveItemList = PlayerFairyDomain.GetFairyAppointAward(curPlayer, fdeventID)
|
| | | if not giveItemList:
|
| | | awardCfg = FBCommon.GetFBLineReward(ChConfig.Def_FBMapID_FairyTreasure, lineID)
|
| | | curAlchemyLV = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_AlchemyLV)
|
| | | giveItemList = []
|
| | | dropItemList = []
|
| | | for awardRateList in awardCfg:
|
| | | newItemInfoList = []
|
| | | for itemInfo in awardRateList:
|
| | | itemID = itemInfo[1][0]
|
| | | itemData = GameWorld.GetGameData().GetItemByTypeID(itemID)
|
| | | if not itemData:
|
| | | return
|
| | | if curAlchemyLV < itemData.GetLV() - 1:
|
| | | #丹炉等级不足
|
| | | continue
|
| | | |
| | | newItemInfoList.append(itemInfo)
|
| | | if not newItemInfoList:
|
| | | continue
|
| | |
|
| | | newItemInfoList.append(itemInfo)
|
| | | if not newItemInfoList:
|
| | | continue
|
| | | randomitem = GameWorld.GetResultByWeightList(newItemInfoList)
|
| | | giveItemList.append(randomitem)
|
| | | for _ in randomitem[1]:
|
| | | dropItemList.append([randomitem[0],1,randomitem[2]])
|
| | | randomitem = GameWorld.GetResultByWeightList(newItemInfoList)
|
| | | giveItemList.append(randomitem)
|
| | | for _ in randomitem[1]:
|
| | | dropItemList.append([randomitem[0],1,randomitem[2]])
|
| | |
|
| | | if giveItemList:
|
| | | NPCCommon.DoVirtualItemDrop(curPlayer, dropItemList, dropPosX, dropPosY)
|
| | |
| | | curPlayer.Sync_TimeTick(IPY_GameWorld.tttLeaveMap, 0, leaveTick, True)
|
| | | overDict = {FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(giveItemList)}
|
| | | FBCommon.NotifyFBOver(curPlayer, ChConfig.Def_FBMapID_FairyTreasure, lineID, 1, overDict)
|
| | | ipyData = IpyGameDataPY.GetIpyGameDataByCondition('FairyDomain', {'MapID':ChConfig.Def_FBMapID_FairyTreasure, 'LineID':lineID})
|
| | | fdeventID = ipyData.GetID()
|
| | | |
| | | PlayerFairyDomain.SetFairyDomainEventState(curPlayer, fdeventID, PlayerFairyDomain.FDEventState_Visited)
|
| | | return
|
| | |
|