From d7203ff6c31fdb3518b98f773046571eaf45f354 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 21 一月 2025 14:15:19 +0800
Subject: [PATCH] 10263 【越南】【英文】【BT】【砍树】后端支持NPC仿真实玩家战斗和快速战斗(快速战斗后退出副本优化buff通知)
---
ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py | 35 ++++++++---------------------------
1 files changed, 8 insertions(+), 27 deletions(-)
diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
index ca9a2d2..08e1c29 100644
--- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
+++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py
@@ -45,7 +45,6 @@
import CrossRealmMsg
import CommFunc
import PyGameData
-import PlayerGeTui
import IPY_GameServer
import PlayerTeam
import CrossBoss
@@ -391,6 +390,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 +431,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 +455,6 @@
break
#此处只处理复活的
- PlayerGeTui.GeTuiBossReborn(bossID)
__SetIsAlive(bossID, 1)
syncBOSSIDList.append(bossID)
@@ -461,29 +465,6 @@
if syncBOSSIDList:
Sync_BossInfo(None, syncBOSSIDList)
return
-
-
-#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)
-
def GetBossIsAliveOrCanReborn(bossID):
##BOSS是否活着或者可重生
@@ -799,7 +780,7 @@
cnt += 1
savaData += attentionData.getBuffer()
- GameWorld.Log("SaveBossAttention cnt :%s" % cnt)
+ GameWorld.Log("SaveBossAttention cnt :%s len=%s" % (cnt, len(savaData)))
return CommFunc.WriteDWORD(cntData, cnt) + savaData
# 从数据库载入数据
@@ -1002,7 +983,7 @@
return
rebornCnt = PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_BossRebornCnt)
maxRebornCnt = IpyGameDataPY.GetFuncCfg('BossRebornTotalPoint', 3)
- if rebornCnt >= maxRebornCnt:
+ if maxRebornCnt and rebornCnt >= maxRebornCnt:
GameWorld.DebugLog(' boss复活已达到最大次数! maxRebornCnt=%s' % maxRebornCnt)
return
--
Gitblit v1.8.0