发光 垃圾桶问题

This commit is contained in:
wenhe committed 2026-09-30 12:38:46 +08:00
1 parent 61c7c71016
commit 14e5057d58
7 files changed
+81 -2

No files matched your search

+18 -1
View File
@@ -197,4 +197,21 @@ ServerItemUseOnEvent 重复触发也会被冷却拦截, 不双重消耗。
- 十、总食用 手持直接吃(饭团/水煮蛋/豆腐, 右键表面吃) [已统一]
【注意】"相邻放置/装盘"分支(ITEM_USE_ON_CANCEL_BY_ITEM)因被点【表面坐标】不变,
不设 _afterCd(避免误吞同一表面 1.5s 内连续放置), 去重交给服务端 handleItemUseOn 冷却。
"盖饭/蛋炒饭"(GAI_FAN_CANCEL)、"盛出/出锅"(TAKEOUT_CANCEL) 仍用各自专用事件, 不变。
"盖饭/蛋炒饭"(GAI_FAN_CANCEL)、"盛出/出锅"(TAKEOUT_CANCEL) 仍用各自专用事件, 不变。
========================================
十四、"任意物品"功能方块的整块拦截 (InterceptData.BLOCKUSE_CANCEL_ANY_BLOCKS, 2026-09-30)
========================================
问题: 垃圾桶规则是 item="*any"(任意非空物品), 不在 (item, block) 精确派生范围内
(BLOCKUSE_CANCEL 派生时显式跳过通配 item) -> 客户端不拦:
- 手持葡萄等食物右键垃圾桶(打开): 原版先"吃", 服务端再取消已晚 -> "一边吃一边清空";
- 手持胡萝卜等方块物品右键垃圾桶: 原版先"放置" -> 垃圾桶旁直接多放一块。
方案: 新增按【被点方块】整块拦截的集合 BLOCKUSE_CANCEL_ANY_BLOCKS:
客户端 OnItemUseOn 命中该方块(手持任意非空物品) -> ret=True(消闪) + NotifyToServer
('BlockUseRequest') 走服务端 handleBlockUse; 并在 OnItemTryUse 用玩家级 0.2s 窗口
(_anyBlockPlayer)取消同一右键伴随的那次"吃/用"。
派生: 各 _BLOCK_USE_TABLES 中 item=="*any" 且【无 below 前置条件】的规则的 source 方块。
- 垃圾桶三态: rtdd:storage_buckets(关) / rtdd:rubbish_bin_2(打开,掉垃圾清空主手) / rtdd:b_160(有垃圾)
【排除】带 below 的"任意物品"规则(如丸子机 meatballmaker_2 需下方有炉灶)不纳入:
客户端无法判断 below 条件, 无条件拦会吞掉条件不满足时玩家正常的吃/放置。