鉴于必须具有一组特定的角色并且必须没有指定的合作伙伴,因此很难找到最接近蠕变的蠕变。
这是为了建立专门的矿工和专用能源载体(必须找到最近的矿工或收割机并携带能量)。
我已经尝试过(其中creep变量是运行脚本的蠕变):
var nearestMinerCreep = creep.pos.findNearest(Game.MY_CREEPS, {
filter: function(creep) {
return (creep.memory.role == "miner"
|| creep.memory.role == "harvester")
&& !creep.memory.partner;
}
});
但是findNearest()似乎已经被删除了。用findClosestByPath()和findClosestByRange()的变体替换它也不起作用。我能做的最好的就是获得了这个位置:
var nearestPos = (creep.pos.findfindClosestByPath(FIND_MY_CREEPS)).pos;
但由于需要转移能量,这是未经过滤的而且不够具体。在此先感谢您的帮助!
答案 0 :(得分:1)
Game.MY_CREEPS不是一个正确的常量,所以我认为这可能是问题的一部分。
正如API pos.findClosestByPath
中所写,接受其他参数,包括过滤功能。所以正确的代码可能是
let nMCreep = creep.pos.findClosestByPath(FIND_MY_CREEPS, {
filter: function(creep) {
return (creep.memory.role == "miner"
|| creep.memory.role == "harvester")
&& !creep.memory.partner;
}
});