Screeps InterShardMemory 怎么用:跨 Shard 状态同步、版本校验与过期数据
使用 InterShardMemory 在多个 Screeps shard 之间交换版本化状态:安全解析本地和远端字符串、控制 UTF-8 容量、识别 writerEpoch 重启与 revision 回退,并用接收方自己的观察窗口判断远端 channel 是否停滞。
TAG
当前共有 9 篇文章使用这个长期主题标签。
使用 InterShardMemory 在多个 Screeps shard 之间交换版本化状态:安全解析本地和远端字符串、控制 UTF-8 容量、识别 writerEpoch 重启与 revision 回退,并用接收方自己的观察窗口判断远端 channel 是否停滞。
使用 RawMemory.setPublicSegments、setDefaultPublicSegment 和 setActiveForeignSegment 安全发布与读取其他玩家的公开 Segment:处理下一 tick 时序、一次一个 Foreign Segment、覆盖式配置、版本校验、轮询调度和不可信 JSON。
比较Game.creeps与Memory.creeps,删除已不存在Creep的残留数据,并同步清理受控任务索引、限制日志频率和避免误删其他模块状态。
用 Creep.store 边界和 memory.working 建立稳定两阶段状态:空载取能、满载工作、中间值保持,并正确区分 Store 状态与 harvest() 返回值。
把对象ID和目标房间写入Memory,每个tick重新取得实时对象,并区分目标消失、ID损坏和远程房间暂时没有视野。
解释模块顶层缓存与 Memory 的区别,使用按房间 Map、版本号和过期时间缓存 Source ID,并在全局重置、缓存过期或对象失效后安全重建。
解释Game对象、模块全局变量和Memory的生命周期差异,演示Creep角色状态、版本迁移、对象ID保存和Memory体积控制。
解释 RawMemory.setActiveSegments 的下一 tick 时序、0–99 ID 与同时激活上限,并提供空内容、损坏 JSON、版本字段和安全写回的完整示例。
安全创建并控制 Upgrader1,让它在 Source 与 Controller 之间往返,认识 upgradeController()、Memory 状态切换和返回结果。