返回值 0
OK
调用成功。
- 常见原因
- 动作已经被接受。
- 处理方法
- 不需要修复,但仍应在后续 tick 核对状态是否按预期变化。
ERROR CODES
Screeps 的多数动作不会抛出异常,而是返回一个数字。先保存返回值,再根据错误码决定移动、等待、换目标或修正参数。
找到 16 个返回值
调用成功。
目标不属于你,或当前对象不能由你控制。
没有找到可到达目标的路径。
准备创建的名称已经存在。
const name = `Harvester${Game.time}`;
Game.spawns.Spawn1.spawnCreep([WORK, CARRY, MOVE], name);对象当前正忙,无法接受新的操作。
没有找到要求的对象或目标。
执行动作所需的资源不足。
transfer()build()repair()processPower()Game.cpu.generatePixel()旧代码中常见的 Energy 不足名称,与 -6 返回值有关。
目标不适用于当前动作。
目标已经装满,或没有剩余容量。
目标距离当前对象太远,这一次动作没有被安排。
harvest()transfer()upgradeController()build()repair()recycleCreep()transferEnergy()launchNuke()// 只调用动作,没有处理距离不足
const result = creep.harvest(source);
console.log(result); // 可能得到 -9const result = creep.harvest(source);
if (result === ERR_NOT_IN_RANGE) {
const moveResult = creep.moveTo(source);
if (moveResult !== OK) {
console.log(creep.name + ' 移动失败:' + moveResult);
}
}传入参数的类型、数量或内容不正确。
对象仍在冷却或 Creep 当前疲劳。
Creep 缺少执行动作所需的有效身体部件。
当前房间控制等级不足,或结构在当前 RCL 不可用。
全局控制等级不足。