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