器官与器官直连信道
昨天 20:33综合
食物处理是一条 流水线,不是星形拓扑:
口腔(嚼碎) → 胃(消化) → 小肠(吸收) → 大肠(排泄)
每个器官的输出就是下一个器官的输入,大脑是监控者而非中转者。这确实需要器官↔器官直连信道。
实现方案
在现有 RelayMessage 基础设施上,只需增加两件事:
1. 器官角色注册表(共享状态)
玩家进入某器官关卡时,注册自己:
lua
复制
-- shared serverCloud (uid=0)
organ_roles = {
oral = "uid_123", -- 谁在玩口腔
stomach = "uid_456", -- 谁在玩胃
small_intestine = "uid_789",
large_intestine = "uid_012",
}
2. 管道流转信道
lua
复制
-- 口腔玩家完成关卡后:
CrossPlayerChannel.SendPipelineData(nextOrganUid, {
foodId = "apple",
chewed = true, -- 口腔处理结果
fragments = 12, -- 嚼成几块
enzymeMixed = 0.8, -- 唾液酶混合度
})
-- 胃玩家收到:
CrossPlayerChannel.OnPipelineData(function(fromUid, data)
-- data.foodId, data.chewed, data.fragments ...
-- 作为本关卡的输入条件
end)
改动范围
文件 改动
Settings.lua +2 常量(事件 + msgKey)
Server.lua +1 handler(复制 RelayMessage 模式)+ 角色注册 RMW
Client.lua +2 API(RegisterOrganRole / SendPipelineData)
CrossPlayerChannel.lua +1 对 Send/On(管道流转)+ 角色查询辅助
架构上完全复用现有 RelayMessage 管线,零耦合风险。



