取消了对 原版食物右键吃的拦截 把裹粉变成不可食用 回复的饱食度数值增加4点 没干:布艺旗帜等配方没搞

This commit is contained in:
wenhe committed 2026-09-29 02:55:09 +08:00
1 parent cc97fe0d66
commit 7341517121
8 files changed
+241 -232

No files matched your search

@@ -29,7 +29,8 @@ from ...BlueFoxTools.SpecialFunciton.BlueFoxSystem import BlueFoxClientSystem
from .InterceptData import (ITEM_USE_ON_CANCEL, ITEM_USE_ON_CANCEL_BY_ITEM,
SUSHI_BLOCKS, SUSHI_CANCEL, COATING_ITEMS,
TAKEOUT_CANCEL, GAI_FAN_CANCEL, BLOCKUSE_CANCEL,
BLOCKUSE_CANCEL_ITEMS)
BLOCKUSE_CANCEL_ITEMS,
PLACE_ITEMS, EAT_ITEMS)
# 自定义事件: 客户端拦(碗/盘,汤锅/炒锅/油锅成品)放置预览后, 显式通知服务端执行盛出
# 服务端在 FeatureDispatcher 用同一事件名监听(见 service/FeatureDispatcher.py)
@@ -145,8 +146,12 @@ class ClientFeatureDispatcher(BlueFoxClientSystem):
# ret=True 会吞掉 ServerItemUseOnEvent, 故必须显式通知服务端补齐(盖饭同款机制)。
# 【注意】此分支为"相邻格放置/装盘", 被点【表面坐标】不变, 不能设 _afterCd,
# 否则会误吞同一表面 1.5s 内的连续放置. 去重交给服务端 handleItemUseOn 自带冷却。
# 同时打玩家级短标记(_blockCdPlayer): 同一右键配套的吃(ClientItemTryUseEvent)
# 在 0.2s 窗口内被取消 —— 只取消"对着方块右键放置"伴随的那次吃, 空中正常吃原版食物
# (胡萝卜/土豆/干海带/生肉鱼)不受影响。
if itemName in ITEM_USE_ON_CANCEL_BY_ITEM:
args["ret"] = True
self._blockCdPlayer[pId] = time.time()
self.NotifyToServer(ITEM_USE_ON_REQUEST, {
"playerId": pId,
"x": args.get("x"), "y": args.get("y"), "z": args.get("z"),
@@ -240,8 +245,14 @@ class ClientFeatureDispatcher(BlueFoxClientSystem):
if _pc and (time.time() - _pc) < 0.2 and itemName in BLOCKUSE_CANCEL_ITEMS:
args["cancel"] = True
return
# 饭团/水煮蛋/豆腐 在 ITEM_USE_ON_CANCEL_BY_ITEM 里(EAT_ITEMS)
if itemName in ITEM_USE_ON_CANCEL_BY_ITEM:
# 相邻放置窗口(0.2s): 手持原版食物右键方块表面(胡萝卜/土豆/干海带/生肉鱼/青菜/葱)
# 放置时, 取消同一右键伴随的那次吃/用 —— 只在此窗口内生效。
# 空中/不对着方块右键 -> 没有 ItemUseOn 拦截 -> 没有标记 -> 正常吃原版食物。
if _pc and (time.time() - _pc) < 0.2 and itemName in PLACE_ITEMS:
args["cancel"] = True
return
# 自定义直接吃物品(饭团/水煮蛋/豆腐, EAT_ITEMS): 永远取消默认吃, 走服务端自定义吃
if itemName in EAT_ITEMS:
args["cancel"] = True
# 注: 客户端系统需在客户端进程被实例化。modMain 只能在服务端 import 服务端