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