Creep 不移动
Creep 看起来停在原地时,先区分命令没有被接受、没有可用路径、fatigue 阻塞,还是目标与距离逻辑有问题。
快速排查
- 保存 moveTo() 或原始动作的真实返回值,不要只观察坐标有没有变化。
- 检查 creep.fatigue、目标对象与目标房间是否仍然有效。
- 如果返回 ERR_NO_PATH,继续检查地形、出口、CostMatrix 与 callback 约束。
- 下一 tick 再核对位置和返回值,确认这是持续故障还是单 tick 状态。
SCREEPS DIAGNOSTIC CENTER
这里不是另一份错误码字典。它从你能直接观察到的症状开始,把排查过程连接到真实返回值、API、对象 Hub、专题教程、浏览器本地工具与已接受的 Runtime Verification。
SYMPTOM-FIRST DIAGNOSTICS
不需要先记住错误码。先选择可见症状,执行快速排查,再进入最相关的返回码、API、专题教程、工具与已接受 Runtime Verification;次要关系按需展开。
Creep 看起来停在原地时,先区分命令没有被接受、没有可用路径、fatigue 阻塞,还是目标与距离逻辑有问题。
harvest() 没有效果时,优先确认返回码、目标类型、距离、WORK 部件与资源是否可采,而不是直接重写角色逻辑。
Spawn 队列没有产出时,先判断是 busy、Energy、body/name 参数还是 RCL 能力边界,不要把所有失败都归因于队列。
Controller 风险通常不是单一 API 问题,需要把 ticksToDowngrade、Upgrader 能量、距离、运输与实际升级返回值放在同一条诊断链里。
Link 没有传能时,把 cooldown、发送方库存、接收方容量、目标对象和实际 transferEnergy() 返回值一起检查。
Market deal/createOrder 失败时,需要同时检查订单参数、Credits、资源、Terminal 与交易 Energy 成本,不能只看目标价格。
CPU 过高通常没有单一错误码。先测量实际热点、bucket 与 tick 负载,再决定是减少扫描、缓存结果还是拆分跨 tick 工作。
这个症状没有单一返回码可以定义,应直接测量运行时状态。
资源物流停滞时,要区分取出、携带、移动、转移和目标容量中的哪一段断了,并逐段保存返回值。
build() 或 repair() 没有产生预期效果时,先检查真实返回值、目标类型、距离、WORK 部件、Creep Energy 与目标状态。
Tower 没有产生预期动作时,先确认目标、Energy、所有权与真实动作返回值,再判断距离衰减和多塔输出是否满足预期。