#!/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