xdh
2019-04-19 8fcbc76b6acb09d6a940e2ea374cceb270b4e4da
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FairyTreasure.py
@@ -30,6 +30,7 @@
import ChPlayer
import EventReport
import ChNPC
import ItemCommon
FBPlayerDict_CurStep = 'FBPlayerDict_CurStep'   # 当前阶段
@@ -335,28 +336,32 @@
    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 < ItemCommon.GetItemClassLV(itemData) - 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 xrange(randomitem[1]):
                dropItemList.append([randomitem[0],1,randomitem[2]])
        
    if giveItemList:
        NPCCommon.DoVirtualItemDrop(curPlayer, dropItemList, dropPosX, dropPosY)
@@ -365,8 +370,7 @@
        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