#!/usr/bin/python  
 | 
# -*- coding: GBK -*-  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
#-------------------------------------------------------------------------------  
 | 
#  
 | 
##@package GameWorldLogic.FBProcess.GameLogic_FairyTreasure  
 | 
#  
 | 
# @todo:çÎ翱¦²Ø  
 | 
# @author xdh  
 | 
# @date 2019-04-09  
 | 
# @version 1.0  
 | 
# ÏêϸÃèÊö: çÎ翱¦²Ø  
 | 
# ±¾¸±±¾×öǰ¶Ë×Ô¶¨Ò峡¾°´¦Àí£¬ºó¶ËÎÞʵ¼ÊµØÍ¼  
 | 
#  
 | 
#---------------------------------------------------------------------  
 | 
#"""Version = 2019-04-09 11:00"""  
 | 
#---------------------------------------------------------------------  
 | 
  
 | 
import FBCommon  
 | 
import GameWorld  
 | 
import IpyGameDataPY  
 | 
import PlayerFairyDomain  
 | 
import PlayerControl  
 | 
import ItemCommon  
 | 
import NPCCommon  
 | 
import ChConfig  
 | 
  
 | 
  
 | 
## ÊÇ·ñ¿É½øÈë  
 | 
def OnEnterFBEvent(curPlayer, mapID, lineId, tick):  
 | 
    ipyData = IpyGameDataPY.GetIpyGameDataByCondition('FairyDomain', {'MapID':mapID, 'LineID':lineId})  
 | 
    if not ipyData:  
 | 
        return  
 | 
    fdeventID = ipyData.GetID()  
 | 
    if not PlayerFairyDomain.SetFairyDomainEventState(curPlayer, fdeventID, PlayerFairyDomain.FDEventState_Visiting):  
 | 
        return  
 | 
    return True  
 | 
  
 | 
## ×Ô¶¨Ò峡¾°²É¼¯OK£¬Ðè×Ô´øÊÇ·ñÔÊÐí²É¼¯µÄÅÐ¶Ï  
 | 
def OnCustomSceneCollectOK(curPlayer, mapID, lineID, npcID):  
 | 
      
 | 
    curState = PlayerFairyDomain.GetFairyDomainFBEventState(curPlayer, mapID, lineID)  
 | 
    if curState != PlayerFairyDomain.FDEventState_Visiting:  
 | 
        GameWorld.DebugLog("·ÇѰ·ÃÖУ¬²»ÄܽáËãçÎ翱¦²Ø²É¼¯£¡", curPlayer.GetPlayerID())  
 | 
        return  
 | 
    ipyData = IpyGameDataPY.GetIpyGameDataByCondition('FairyDomain', {'MapID':ChConfig.Def_FBMapID_FairyTreasure, 'LineID':lineID})  
 | 
    fdeventID = ipyData.GetID()  
 | 
    PlayerFairyDomain.SetFairyDomainEventState(curPlayer, fdeventID, PlayerFairyDomain.FDEventState_Visited)  
 | 
    PlayerControl.SetCustomMap(curPlayer, 0, 0)  
 | 
      
 | 
    giveItemList = PlayerFairyDomain.GetFairyAppointAward(curPlayer, fdeventID)  
 | 
    if not giveItemList:  
 | 
        awardCfg = FBCommon.GetFBLineReward(ChConfig.Def_FBMapID_FairyTreasure, lineID)  
 | 
        giveItemList = []  
 | 
        for awardRateList in awardCfg:  
 | 
            realWeightList = ItemCommon.GetWeightItemListByAlchemyDiffLV(curPlayer, awardRateList, 1)  
 | 
            if not realWeightList:  
 | 
                continue  
 | 
            randomitem = GameWorld.GetResultByWeightList(realWeightList)  
 | 
            if not randomitem[0]:  
 | 
                continue  
 | 
            giveItemList.append(randomitem)  
 | 
              
 | 
    if giveItemList:  
 | 
        NPCCommon.DoGiveItemByVirtualDrop(curPlayer, giveItemList, npcID)  
 | 
          
 | 
    overDict = {FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(giveItemList)}  
 | 
    FBCommon.NotifyFBOver(curPlayer, ChConfig.Def_FBMapID_FairyTreasure, lineID, 1, overDict)  
 | 
    return True  
 | 
  
 | 
  
 |