From c06d47322d2892a440dc11b94f06950da762e5bd Mon Sep 17 00:00:00 2001
From: xdh <xiefantasy@qq.com>
Date: 星期五, 21 六月 2019 19:41:43 +0800
Subject: [PATCH] 7413 宗门试炼评级通知
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFairyDomain.py | 38 +++++++++++++++++++++-----------------
1 files changed, 21 insertions(+), 17 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 e9a74cc..c9634b4 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFairyDomain.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFairyDomain.py
@@ -114,7 +114,7 @@
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
otherCntRateList = IpyGameDataPY.GetFuncEvalCfg('ImmortalDomain', 2)
- maxEventCnt = max([info[1] for info in otherCntRateList]) + 1 #最大可出现事件个数
+ maxEventCnt = GetMaxEventCnt() #最大可出现事件个数
fairyDomainState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FairyDomainState) #是否寻访中 0未寻访 1寻访中 2任务标记可寻访
if clientData.Type == 1: #结束寻访
if fairyDomainState != 1:
@@ -136,7 +136,7 @@
GameWorld.DebugLog(" 正在寻访仙域中!请先退出寻访")
return
costPoint = IpyGameDataPY.GetFuncCfg('ImmortalDomainActivePoint', 2)
- if not PlayerActivity.CostActivityPoint(curPlayer, costPoint):
+ if not PlayerActivity.CostActivityPoint(curPlayer, costPoint, True):
GameWorld.DebugLog(" 寻访仙域需要活跃点不足!costPoint=%s"%costPoint)
return
@@ -150,18 +150,18 @@
else:
fdEventTypeDict = {}
#先随机独立事件
- singleEventRateDict = IpyGameDataPY.GetFuncCfg('ImmortalDomain')
+ singleEventRateDict = IpyGameDataPY.GetFuncEvalCfg('ImmortalDomain', 1, {})
for eventType, rate in singleEventRateDict.items():
if GameWorld.CanHappen(rate):
fdEventTypeDict[eventType] = 1
-
+
otherCnt = GameWorld.GetResultByRandomList(otherCntRateList, 0)
if otherCnt:
otherEventRateList = copy.deepcopy(IpyGameDataPY.GetFuncEvalCfg('ImmortalDomain', 3))
unRepeatTypeList = IpyGameDataPY.GetFuncEvalCfg('ImmortalDomain', 4)
for _ in xrange(otherCnt):
- otherEventType = GameWorld.GetResultByRandomList(otherEventRateList, 0)
- if not otherEventType:
+ otherEventType = GameWorld.GetResultByRandomList(otherEventRateList)
+ if otherEventType is None:
continue
if otherEventType in unRepeatTypeList:
for index, info in enumerate(otherEventRateList):
@@ -185,6 +185,12 @@
#更新全服出现次数
msgStr = str(fdEventIDList)
GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(0, 0, 0, 'AddFairyDomainEvent', msgStr, len(msgStr))
+ if not fdEventIDList:
+ fdEventIDList = IpyGameDataPY.GetFuncEvalCfg('ImmortalDomain', 5)
+ GameWorld.Log('寻访仙域, 没有随机出事件,使用默认事件!! playerLV=%s,visitCnt=%s,默认fdEventIDList=%s'%(curPlayer.GetLV(), visitCnt, fdEventIDList), curPlayer.GetID())
+ if not fdEventIDList:
+ return
+ PlayerActivity.CostActivityPoint(curPlayer, costPoint)
#奇遇事件 随机档位数据
openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) + 1
for fdEventID in fdEventIDList:
@@ -201,11 +207,7 @@
condition = random.choice(conditionList)
index = conditionList.index(condition)
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FairyAdventuresData % fdEventID, ipyData.GetID() * 100 + index)
-
- if not fdEventIDList:
- GameWorld.Log('寻访仙域, 没有随机出事件!!')
- return
-
+
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FairyDomainVisitCnt, min(visitCnt + 1, ChConfig.Def_UpperLimit_DWord))
#设置事件
for i in xrange(maxEventCnt):
@@ -231,8 +233,7 @@
GameWorld.DebugLog("EndFairyDomain", curPlayer.GetID())
##结束寻访
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FairyDomainState, 0)
- otherCntRateList = IpyGameDataPY.GetFuncEvalCfg('ImmortalDomain', 2)
- maxEventCnt = max([info[1] for info in otherCntRateList]) + 1 #最大可出现事件个数
+ maxEventCnt = GetMaxEventCnt() #最大可出现事件个数
for i in xrange(maxEventCnt):
fdEventID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FairyDomainEventID % i)
if fdEventID:
@@ -347,8 +348,7 @@
def NotifyVisitFairyDomainInfo(curPlayer, fdEventList=None, isAll=1):
if not fdEventList:
syncFDEventList = []
- otherCntRateList = IpyGameDataPY.GetFuncEvalCfg('ImmortalDomain', 2)
- maxEventCnt = max([info[1] for info in otherCntRateList]) + 1 #最大可出现事件个数
+ maxEventCnt = GetMaxEventCnt() #最大可出现事件个数
for i in xrange(maxEventCnt):
fdEventID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FairyDomainEventID % i)
if fdEventID:
@@ -371,6 +371,11 @@
NetPackCommon.SendFakePack(curPlayer, packData)
return
+def GetMaxEventCnt():
+ # 最大可出现事件个数
+ otherCntRateList = IpyGameDataPY.GetFuncEvalCfg('ImmortalDomain', 2)
+ maxEventCnt = max([info[1] for info in otherCntRateList]) + len(IpyGameDataPY.GetFuncEvalCfg('ImmortalDomain'))
+ return maxEventCnt
###=========================奇遇===============================
def NotifyFairyAdventuresInfo(curPlayer):
@@ -379,8 +384,7 @@
packData = ChPyNetSendPack.tagMCFairyAdventuresInfo()
packData.InfoList = []
- otherCntRateList = IpyGameDataPY.GetFuncEvalCfg('ImmortalDomain', 2)
- maxEventCnt = max([info[1] for info in otherCntRateList]) + 1 #最大可出现事件个数
+ maxEventCnt = GetMaxEventCnt() #最大可出现事件个数
for i in xrange(maxEventCnt):
fdEventID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FairyDomainEventID % i)
if fdEventID not in AdventuresTypeList:
--
Gitblit v1.8.0