下载 App
设计方案:菜品名字编辑 + 菜品配图选择
一、菜品名字可编辑
改动范围:仅 Leaderboard.lua 的做菜 UI 第三步面板
项 设计
交互 菜品预览区的名字改为 UI.TextInput,默认值 = CookingSystem.MakeDishName(...) 自动生成的名字
字数限制 1-8 个字
空值处理 提交时若为空,回退到自动生成名
数据流 用户输入的名字覆盖 dish.dishName 和 dish.name 字段
改

:
问题确认了。NpcEditor 的 refreshNpcIndex 优先从云端加载 "npc_index",如果云端不可用则从本地 npc_sprites/index.json 读取。而 NpcPickerPanel 只读本地文件,如果本地 index 文件不存在就直接返回空。修复方案:给 NpcPickerPanel 添加云端 fallback,异步加载 index 后再打开弹窗。同时增加扫描本地 npc_sprites/ 目录作为兜底。
:
一、先纠正一个关键误解你说的"单机模式有 clientCloud,多人模式无 clientCloud"并不准确。实际情况是:模式 clientCloud CloudProxy 路由单机 ✅ 直接可用 CloudProxy:Set() → clientCloud:Set()多人 ✅ 依然存在 CloudProxy:Set() → Client.CloudSave() → Server → serverCloudCloudProxy 已经做了这个透明切换(CloudProxy.lua:46-57)。所以不存在"有/无 clientCloud"的问题——两种模式下 CloudProxy 的接口完全一致,只是底层路由不同。这意味着 MapEditor 用 cloud:Set("map_xxx", data) 保存的地图,在两种模式下都能工作——但存到了不同的地方:单机:存进你自己的 clientCloud 个人空间多人:存进 serverCloud 的你的 userId 分区两种模式下,其他玩家都读不到你的地图。 这才是核心问题。











