Game Screeps - creep.room.find(Game.CONSTRUCTION_SITES); не работает

У меня есть следующий код из учебника, за исключением того, что в режиме моделирования он не работает..

if(creep.memory.role == 'builder') {

    if(creep.energy === 0) {
        creep.moveTo(Game.spawns.Spawn1);
        Game.spawns.Spawn1.transferEnergy(creep);
    }
    else {
        var targets = creep.room.find(Game.CONSTRUCTION_SITES);
        if(targets.length) {
            creep.moveTo(targets[0]);
            creep.build(targets[0]);
        }
    }
}

Вывод результата "целей" в консоль, ответ не определен. Кто-нибудь может объяснить, как работает константа "CONSTRUCTION_SITES" и как найти их в комнате?

Заранее спасибо!

3 ответа

Решение

Код выглядит правильно для меня, кажется, что на самом деле у вас нет заданных конструкций для сборки. Например, вы использовали меню "Построить" слева, чтобы построить дорогу?

Я не знаю, ответили ли на это еще, или просто изменился синтаксис из игры, поэтому вы изначально написали это так, но этот код работает для того, что вы делаете:

var targets = creep.room.find(FIND_CONSTRUCTION_SITES);

Скрипы console.log() всегда печатает неопределенный. В строке перед undefined вы можете найти напечатанное значение:

> console.log(Game)
[hh:mm:ss] [object Object]
< undefined
Другие вопросы по тегам