如何按名称搜索结构?

时间:2016-08-01 07:47:35

标签: screeps

我刚刚开始尝试按名称搜索结构。我一直在寻找API而没有运气。我似乎无法在任何结构对象上找到name属性,因此我无法遍历它们并找到我想要的那个。

如何按名称搜索结构?某处是否有可访问的名称属性?

2 个答案:

答案 0 :(得分:4)

在大多数情况下,通过id或type进行搜索更为可取,因为只有Spawns具有合法的名称。

如果是id

var someStructure = Game.getObjectById('....');

在结构类型的情况下,例如寻找扩展

var extensions = Game.rooms.W25S25.find(FIND_STRUCTURES, {filter:{structureType: STRUCTURE_EXTENSION}});

查找的过滤器部分也可以更复杂,例如寻找没有充满能量的结构。

{ filter: (s) => ((
            s.structureType == STRUCTURE_SPAWN
            || s.structureType == STRUCTURE_EXTENSION
            || s.structureType == STRUCTURE_TOWER
            ) && (s.energy < s.energyCapacity)
        )}

答案 1 :(得分:1)

大多数结构都没有名称,例外是产卵。 有关详细信息,请参阅this article

这些已经是单独的哈希,Game.spawns

你可以选择:

for(name in Game.spawns){console.log("Found spawn " + Game.spawns[name]");}

如果您正在寻找其他结构类型,则所有结构都具有id属性。