【问题标题】:How to build construction sites in another room in Screeps?如何在 Screeps 的另一个房间建造建筑工地?
【发布时间】:2022-03-24 09:28:41
【问题描述】:

我最近才开始攻击一些用于一次控制 2 个房间的代码。我要求另一个房间,并且一直坐在里面。我用它来确定所有房间的建筑工地:

for(let i = 0; i < numberOfRooms; i++)
    amountOfConstructionSites[i] = Game.rooms[roomName[i].name].find(FIND_CONSTRUCTION_SITES);

amountOfConstructionSites[0] 包含来自不同房间的生成,并且在使用 console.log() 时可见,但每当我尝试使用 console.log(amountOfConstructionSites[0].room.name) 之类的东西时,它都会返回未定义。另一个要补充的是,房间确实出现在Game.rooms,所以我确实在房间里有视觉。真的需要一些帮助,以便我可以继续扩展到其他房间

【问题讨论】:

    标签: javascript screeps


    【解决方案1】:

    我写了与此非常相似的代码后找到了答案。 Game.rooms[roomName[i].name].find(FIND_CONSTRUCTION_SITES) 返回一组建筑工地。我写的是在另一个数组的一个元素中存储一个数组,而不是遍历那个新数组。它返回 undefined 的方式与不遍历普通一维数组的方式相同。我的补救措施就这么简单:

    for(let i = 0; i < numberOfRooms; i++)
    {
            amountOfConstructionSites = Game.rooms[roomName[i].name].find(FIND_CONSTRUCTION_SITES);
    }
    

    这解决了我在编写代码的另一部分时遇到的两个问题。游戏使用 CPU 限制来限制您的代码,因此通过为您可以控制的每个房间存储一系列建筑工地,您将大量使用此限制,而不是在其他地方使用它。

    【讨论】:

      猜你喜欢
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多