健康问诊模拟icon
健康问诊模拟
西米
问题确认了。NpcEditor 的 refreshNpcIndex 优先从云端加载 "npc_index",如果云端不可用则从本地 npc_sprites/index.json 读取。而 NpcPickerPanel 只读本地文件,如果本地 index 文件不存在就直接返回空。修复方案:给 NpcPickerPanel 添加云端 fallback,异步加载 index 后再打开弹窗。同时增加扫描本地 npc_sprites/ 目录作为兜底。
西米
流程跑通情况:3/5 已实现,2 个关键环节缺失已跑通的部分环节 代码位置 状态processedLevel 门控 Tower.lua:624-625 — noProcessMul=0.2 / preProcessMul=5.0 已实现物理击杀 → Split 触发 Tower.HandleKillProducts() → Enemy.Split() (Tower.lua:591-592) 已实现子体继承 processedLevel+1 Enemy.Split() 第 387 行 processedLevel = enemy.processedLevel + 1 已实现酶粒子随机剥像素 + VFX EnzymeParticle.StripPixel() → Enemy.StripPixel() → 随机移除 key → pixelStrip VFX 已实现渲染优先 instancePixels Render.lua:1333-1335 — instancePixels 优先于 npcSpriteCache_ 已实现所以你图中的主干流程(入场 → 酶打不动 → 牙齿咬碎 Split → 子体酶×5.0 → 像素剥落)是通的。
西米
NPC 的配图数据(像素精灵文件)目前没有通过 CrossPlayerChannel 共享。levels.json 的 npcBindings 只存了 { [organId] = { [enemyType] = npcName } } 这种映射关系,但实际的 NPC 精灵数据(像素帧等)并没有被打包进去。这是一个独立于 LevelManager 的问题。你看到的现象是:根本原因:NpcPickerPanel 在多人模式下从 cloud(个人 CloudProxy)读取 npc_index,但 NPC 数据是管理员个人云存储里的,普通玩家云端没有这些数据。有两个方案可以解决:快速方案:在 PublishAllMaps 时把 NPC 精灵数据也一并发布到 serverCloud uid=0,然后 NpcPickerPanel 的云端加载路径改为走 CrossPlayerChannel轻量方案:如果菜品配图只是展示用,在投喂流程中不需要让玩家选配图,可以在非管理员时隐藏配图按钮
西米
引擎内置的 cloud API 能力比你想象的强,但有前提条件一、clientCloud vs serverCloud —— 能力差距巨大能力 clientCloud serverCloud自身数据读写 有 有排行榜 有 有跨玩家消息(邮箱) 没有 有 message:Send/Get/MarkRead跨玩家数据查询 没有 有 BatchGet():Player(uid1):Player(uid2)货币系统 没有 有 money:Add/Cost结构化列表(背包) 没有 有 list:Add/Get/Modify/Delete消耗品 没有 有 item:Add/Use配额(每日限次) 没有 有 quota:Add/Reset跨域原子事务 没有 有 BatchCommit关键判断:你提出的"信道互通"需求(器官间消息传递、跨玩家数据交换),clientCloud 做不到,必须用 serverCloud。二、serverCloud 的 Message 子系统可以实现你要的信道互通引擎已经内置了邮箱系统,API 如下:serverCloud.message:Send(senderUid, key, targetUid, value, events)serverCloud.message:Get(uid, key, read, events)serverCloud.message:MarkRead(messageId, events)serverCloud.message:Delete(messageId, events)这意味着你方案中提到的消息类型全部可以用这套 API 实现:消息类型 key 设计 value 内容器官 → 大脑 闯关报告 "organ_report" { organId, health, score, ... }大脑 → 器官 控制指令 "brain_signal" { command, params, ... }投喂者 → 目标 食物投喂 "food_gift" { foodType, nutrients, ... }胃 → 口腔 返流事件 "reflux" { entities, acidLevel, ... }三、但有一个前提条件:必须启用多人模式serverCloud 只在 multiplayer.enabled = true 的服务端环境中可用。你当前的状态是:multiplayer 模式下 clientCloud 为 nil —— 这说明配置或初始化有问题单机模式下没有 serverCloud所以你面临的真正问题不是"用什么方案",而是"多人模式下 clientCloud 为 nil"这个 bug 需要先解决。