From b69e487b101766b18ed2fd5ebae934c4aa587244 Mon Sep 17 00:00:00 2001 From: wenhe <1046926120@qq.com> Date: Fri, 11 Sep 2026 16:01:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B2=B9=E9=94=85=204?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mianshi/service/MianshiTimerService.py | 24 +++++++++++++++---- .../youguo/service/YouguoTimerService.py | 18 +++++++++++--- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/mianshi/service/MianshiTimerService.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/mianshi/service/MianshiTimerService.py index ac7071b..187e9a3 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/mianshi/service/MianshiTimerService.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/mianshi/service/MianshiTimerService.py @@ -163,13 +163,23 @@ class MianshiTimerService(BlueFoxServerSystem): break if rule is None: # 蒸笼等: 暂停计时(数据保留, 炉灶回来继续) + 提示发起玩家 - self._notifyIfOnline(data.get("rtdd_tp"), "§c蒸笼下的炉灶移走了, 暂停蒸制") + tp = "" + try: + tp = data["rtdd_tp"] or "" + except Exception: + tp = "" + self._notifyIfOnline(tp, "§c蒸笼下的炉灶移走了, 暂停蒸制") return # 烤炉被打碎: 方块掉落 + 变空气 + 终止计时 + 提示 + tp = "" + try: + tp = data["rtdd_tp"] or "" + except Exception: + tp = "" self._clearTimerData(dim, pos) self._dropBlockItem(dim, pos, blockName) self._setAir(dim, pos) - self._notifyIfOnline(data.get("rtdd_tp"), BREAK_TIP) + self._notifyIfOnline(tp, BREAK_TIP) # 蒸制/烤制/发酵 完成后的"下一步"指引(按目标方块) _STEAM_DONE = {"rtdd:steamerdumplings_1", "rtdd:baozilong_2", @@ -179,6 +189,12 @@ class MianshiTimerService(BlueFoxServerSystem): def _finishTimer(self, dim, pos, rule, data): try: + # 先取出发起玩家(下方 replaceBlock/_clearTimerData 会把实体数据清掉, 必须提前读) + tp = "" + try: + tp = data["rtdd_tp"] or "" + except Exception: + tp = "" cur = comp.CreateBlockInfo(LevelId).GetBlockNew(pos, dim) if cur and cur.get("name") != rule["source"]: self._clearTimerData(dim, pos) @@ -189,8 +205,8 @@ class MianshiTimerService(BlueFoxServerSystem): tip = rule.get("doneTip", "") if tip: tip += self._nextStepTip(rule) - self._notifyIfOnline(data.get("rtdd_tp"), tip) - if not data.get("rtdd_tp"): + self._notifyIfOnline(tp, tip) + if not tp: self._notifyNearby(dim, pos, tip) except Exception: pass diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/youguo/service/YouguoTimerService.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/youguo/service/YouguoTimerService.py index ad80dd9..2fa419d 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/youguo/service/YouguoTimerService.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/youguo/service/YouguoTimerService.py @@ -147,10 +147,21 @@ class YouguoTimerService(BlueFoxServerSystem): def _handleBelowBroken(self, dim, pos, blockName, data, rules): """下方点燃炉灶被移走/熄灭: 暂停计时(数据保留, 炉灶回来继续) + 提示发起玩家""" - self._notifyIfOnline(data.get("rtdd_tp"), "§c油锅下的炉灶移走了, 暂停炸制") + tp = "" + try: + tp = data["rtdd_tp"] or "" + except Exception: + tp = "" + self._notifyIfOnline(tp, "§c油锅下的炉灶移走了, 暂停炸制") def _finishTimer(self, dim, pos, rule, data): try: + # 先取出发起玩家(下方 replaceBlock/_clearTimerData 会把实体数据清掉, 必须提前读) + tp = "" + try: + tp = data["rtdd_tp"] or "" + except Exception: + tp = "" cur = comp.CreateBlockInfo(LevelId).GetBlockNew(pos, dim) if cur and cur.get("name") != rule["source"]: self._clearTimerData(dim, pos) @@ -158,10 +169,11 @@ class YouguoTimerService(BlueFoxServerSystem): # 到点转换 self.replaceBlock(pos, dim, rule["target"], None) self._clearTimerData(dim, pos) + # 计时结束提示: 发给发起玩家; 发起者不在/未知则提示附近 tip = rule.get("doneTip", "") if tip: - self._notifyIfOnline(data.get("rtdd_tp"), tip) - if not data.get("rtdd_tp"): + self._notifyIfOnline(tp, tip) + if not tp: self._notifyNearby(dim, pos, tip) except Exception: pass