我试图编写治疗师蠕变程序。 简单的任务:
这是我的代码(我也试过Game.CREEPS的选项,但效果相同):
module.exports = function (creep) {
var damagedCreeps = creep.room.find(Game.MY_CREEPS, function(chr){return chr.hits < chr.hitsMax;});
if (damagedCreeps.length > 0){
creep.moveTo(damagedCreeps[0]);
creep.heal(damagedCreeps[0]);
} else {
creep.moveTo(Game.spawns.Spawn1);
}
};
这是我的小兵(按创作顺序):
收割机正在做他们的事情,警卫正在做他的事情&#34; Healer1&#34;跟随&#34; Harvester1&#34;。
我认为我拼错了点击并点击了Max并没有注意到它但是在控制台中我得到了:
> Game.creeps.Harvester1.hits
< 300
> Game.creeps.Harvester1.hitsMax
< 300
我唯一想到的是&#39; chr&#39;参数包含除creep对象之外的其他内容。
我试过了:
这是一个游戏错误还是我错过了什么?
答案 0 :(得分:5)
詹姆斯是对的。你可以使用
找到受伤的士兵var wounded = creep.room.find( Game.MY_CREEPS, {
filter: function(object) {
return ( object.hits < object.hitsMax );
} } );
现在你可以检查你是否有任何东西,然后像
那样走过清单if( wounded.length ) {
// Care for any wounded soldiers
}
和
for( var i = 0; i < wounded.length; ++i ) {
// Do something to wounded[i]
}