From c3df46d41e1e2db96343c856e44f516495eef90f Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 20 十月 2020 09:43:00 +0800
Subject: [PATCH] 4805 【BT】日常活动邮件内容都是天降宝箱 需要优化(屏蔽邮件)
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py | 62 ++++++++++++++++++++----------
1 files changed, 41 insertions(+), 21 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
index 135c987..039f07e 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
@@ -57,7 +57,7 @@
ShareDefine.Def_UniversalGameRecType_BossFirstKill
value1:bossID
StrValue2:killedTimeStr
-StrValue3:playerName|playerName|...
+StrValue3:playerName,playerName,...
'''
@@ -391,6 +391,9 @@
# % (bossInfoObj.BossID, bossInfoObj.IsAlive, bossInfoObj.KillRecord,
# killedTime, bossInfoObj.RefreshSecond))
+ if not bossInfo.BossInfoList:
+ return
+
bossInfo.BossCnt = len(bossInfo.BossInfoList)
if not curPlayer:
# 全服广播在线玩家
@@ -429,6 +432,9 @@
if mapID in ChConfig.Def_CrossMapIDList:
continue
bossPrizeRec = __GetBossRecDataByID(bossID)
+ refreshTimeStr = ipyData.GetRefreshTime()
+ if not refreshTimeStr or refreshTimeStr == "0":
+ continue
killedTime = bossPrizeRec.GetValue2()
refreshTime = __GetBossRefreshTime(bossID)
PyGameData.g_sortBOSSRefreshList.append([bossID, killedTime, refreshTime])
@@ -450,7 +456,7 @@
break
#此处只处理复活的
- PlayerGeTui.GeTuiBossReborn(bossID)
+ #PlayerGeTui.GeTuiBossReborn(bossID)
__SetIsAlive(bossID, 1)
syncBOSSIDList.append(bossID)
@@ -465,24 +471,25 @@
#BOSS个推提前倒计时通知处理, 复活由DoCheckWorldBossReborn处理
def ProcessBossGeTui(tick):
- if not GameWorld.SetWorldDictKey(ChConfig.TYPE_WorldBossGeTuiTick, tick):
- #间隔未到
- return
- if GameWorld.IsCrossServer():
- return
- curTime = int(time.time())
- for bossInfo in PyGameData.g_sortBOSSRefreshList:
- bossID, killedTime, refreshTime = bossInfo
- isAlive = __GetIsAlive(bossID)
- if isAlive:
- #GameWorld.DebugLog(" bossID=%s,未被击杀!" % bossID)
- continue
- rebornSecond = max(0, refreshTime - (curTime - killedTime))
- if not rebornSecond:
- #不处理复活BOSS
- continue
-
- PlayerGeTui.GeTuiBoss(bossID, rebornSecond)
+ return
+# if not GameWorld.SetWorldDictKey(ChConfig.TYPE_WorldBossGeTuiTick, tick):
+# #间隔未到
+# return
+# if GameWorld.IsCrossServer():
+# return
+# curTime = int(time.time())
+# for bossInfo in PyGameData.g_sortBOSSRefreshList:
+# bossID, killedTime, refreshTime = bossInfo
+# isAlive = __GetIsAlive(bossID)
+# if isAlive:
+# #GameWorld.DebugLog(" bossID=%s,未被击杀!" % bossID)
+# continue
+# rebornSecond = max(0, refreshTime - (curTime - killedTime))
+# if not rebornSecond:
+# #不处理复活BOSS
+# continue
+#
+# PlayerGeTui.GeTuiBoss(bossID, rebornSecond)
def GetBossIsAliveOrCanReborn(bossID):
@@ -980,6 +987,11 @@
NetPackCommon.SendFakePack(curPlayer, bossShuntLineInfo)
return
+def BossRebornOnDayEx():
+ ## boss复活过天
+ PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_BossRebornCnt, 0)
+ Sync_BossRebornPoint()
+ return
def AddBossRebornPoint(addPoint):
## 增加boss复活点
@@ -995,13 +1007,18 @@
if not totalPoint:
GameWorld.Log(' 增加boss复活点 没有总点数!!!!')
return
+ rebornCnt = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_BossRebornCnt)
+ maxRebornCnt = IpyGameDataPY.GetFuncCfg('BossRebornTotalPoint', 3)
+ if maxRebornCnt and rebornCnt >= maxRebornCnt:
+ GameWorld.DebugLog(' boss复活已达到最大次数! maxRebornCnt=%s' % maxRebornCnt)
+ return
+
curPoint = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_BossRebornPoint)
updPoint = (curPoint+addPoint)%totalPoint
PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_BossRebornPoint, updPoint)
if curPoint+addPoint >= totalPoint:
#重生boss
- rebornCnt = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_BossRebornCnt)
PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_BossRebornCnt, rebornCnt+1)
killBossCntLimitDict = IpyGameDataPY.GetFuncEvalCfg('KillBossCntLimit', 1, {})
@@ -1027,6 +1044,8 @@
PyGameData.g_sortBOSSRefreshList.sort(key=lambda asd:max(0, asd[2] - (curTime - asd[1])))
GameWorld.Log(' boss复活活动 重生boss bossIDList=%s'%bossIDList)
g_lastBossRebornTime = curTime
+
+ GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_ActionBossRebornSign % ShareDefine.OperationActionName_BossReborn, int(time.time()))
else:
#广播
needNotifyPointPerList = IpyGameDataPY.GetFuncEvalCfg('BossRebornNotify')
@@ -1097,6 +1116,7 @@
totalPoint = SetBossRebornNeedPoint()
packData.TotalPoint = totalPoint
packData.RebornCnt = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_BossRebornCnt)
+ packData.TotalRebornCnt = IpyGameDataPY.GetFuncCfg('BossRebornTotalPoint', 3)
playerManager = GameWorld.GetPlayerManager()
if not curPlayer:
for i in xrange(playerManager.GetActivePlayerCount()):
--
Gitblit v1.8.0