From 65a4c2029af3f70ce484a2eec167c50f227d7a5c Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期一, 27 五月 2019 14:08:22 +0800
Subject: [PATCH] 6805 【后端】【2.0】副本前端化(封魔坛前期本)

---
 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFairyDomain.py |   38 ++++++++++++++++++++++++++------------
 1 files changed, 26 insertions(+), 12 deletions(-)

diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFairyDomain.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFairyDomain.py
index 5e52bb1..a181345 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFairyDomain.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFairyDomain.py
@@ -19,6 +19,7 @@
 import ChConfig
 import ChPyNetSendPack
 import NetPackCommon
+import PlayerBossReborn
 import ShareDefine
 import GameWorld
 import GameLogic_CrossGrassland
@@ -29,10 +30,11 @@
 import ItemCommon
 import PyGameData
 import EventShell
+import FBCommon
+import NPCCommon
 
 import copy
 import random
-import FBCommon
 
 #0-奇遇 1-宝藏 2-仙草 3-妖王 4-灵草
 (
@@ -58,6 +60,12 @@
 AdventuresType4,
 ) = range(1, 5)
 
+#事件副本类型
+(
+FDEventFBType_Client, #前端本0
+FDEventFBType_Server, #本服本1
+FDEventFBType_CrossServer, #跨服本2
+) = range(3)
 
 def OnLogin(curPlayer):
     NotifyVisitFairyDomainInfo(curPlayer)
@@ -131,7 +139,7 @@
     if fairyDomainState != 2 and not PlayerActivity.AddDailyActionFinishCnt(curPlayer, dailyID):
         GameWorld.DebugLog("    寻访仙域次数不足!")
         return
-    
+
     #随机事件 重置事件状态
     visitCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FairyDomainVisitCnt)
     appointIpyDataList = IpyGameDataPY.GetIpyGameDataListNotLog('FairyDomainAppoint', visitCnt + 1)
@@ -141,10 +149,11 @@
             fdEventIDList.append(appointIpyData.GetEventID()) 
     else:
         fdEventTypeDict = {}
-        #先随机奇遇事件
-        fortuitousEventRate = IpyGameDataPY.GetFuncCfg('ImmortalDomain')
-        if GameWorld.CanHappen(fortuitousEventRate):
-            fdEventTypeDict[FDEventType0] = 1
+        #先随机独立事件
+        singleEventRateDict = IpyGameDataPY.GetFuncCfg('ImmortalDomain')
+        for eventType, rate in singleEventRateDict.items():
+            if GameWorld.CanHappen(rate):
+                fdEventTypeDict[eventType] = 1
         
         otherCnt = GameWorld.GetResultByRandomList(otherCntRateList, 0)
         if otherCnt:
@@ -213,10 +222,13 @@
     #通知
     NotifyVisitFairyDomainInfo(curPlayer, fdEventIDList)
     NotifyFairyAdventuresInfo(curPlayer)
+
+    PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_FairyDomain, 1)
     return
 
 
 def EndFairyDomain(curPlayer):
+    GameWorld.DebugLog("EndFairyDomain", curPlayer.GetID())
     ##结束寻访
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FairyDomainState, 0)
     otherCntRateList = IpyGameDataPY.GetFuncEvalCfg('ImmortalDomain', 2)
@@ -302,14 +314,14 @@
         return
     if curState == state:
         return True
-    
+    ipyData = IpyGameDataPY.GetIpyGameData('FairyDomain', fdeventID)
+    if not ipyData:
+        return
     if state == FDEventState_Visiting:
         if curState != FDEventState_CanVisit:
             GameWorld.DebugLog('缥缈仙域事件状态设置错误,fdeventID=%s, state=%s, curState=%s' % (fdeventID, state, curState))
             return
-        ipyData = IpyGameDataPY.GetIpyGameData('FairyDomain', fdeventID)
-        if not ipyData:
-            return
+        
         costEnergy = ipyData.GetCostEnergy()
         curEnergy = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FairyDomainEnergy)
         if curEnergy < costEnergy:
@@ -326,13 +338,13 @@
 #        if curState != FDEventState_Visiting:
 #            GameWorld.Log('缥缈仙域事件状态设置错误,fdeventID=%s, state=%s, curState=%s' % (fdeventID, state, curState))
 #            return
-        EventShell.EventRespons_FairyDomain(curPlayer)
+        EventShell.EventRespons_FairyDomain(curPlayer, ipyData.GetEventType())
     PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FairyDomainEventState % fdeventID, state)
     NotifyVisitFairyDomainInfo(curPlayer, [fdeventID], 0)
     return True
 
 
-def NotifyVisitFairyDomainInfo(curPlayer, fdEventList=[], isAll=1):
+def NotifyVisitFairyDomainInfo(curPlayer, fdEventList=None, isAll=1):
     if not fdEventList:
         syncFDEventList = []
         otherCntRateList = IpyGameDataPY.GetFuncEvalCfg('ImmortalDomain', 2)
@@ -439,6 +451,8 @@
                 giveItemList = [ipyData.GetBasicAward()]
                 
         ItemControler.GivePlayerItemOrMail(curPlayer, giveItemList)
+        for itemInfo in giveItemList:
+            NPCCommon.SendVirtualItemDrop(curPlayer, itemInfo[0], 0, 0, '')
         msgDict = {FBCommon.Over_itemInfo:FBCommon.GetJsonItemList(giveItemList)}
         FBCommon.Notify_FB_Over(curPlayer, msgDict)
         GameWorld.DebugLog('缥缈奇遇领奖 msgDict=%s, fdeventID=%s' % (msgDict, fdeventID))

--
Gitblit v1.8.0