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