2017-02-07 10 views
0

与えられたクリープに最も近いクリープを見つけるのは非常に困難です。特定のロールセットを持たなければなりません。指定されたクリープに最も近いクリープを見つける

これは、専用鉱山業者と専用エネルギーキャリア(最も近い鉱山会社または収穫業者を見つけてエネルギーを運ぶ必要がある)を設定するためのものです。

(クリープ変数は、スクリプトを実行しているクリープです)私が試した:

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; 

しかし、これは、エネルギーを転送する必要に十分な固有のフィルタリングされていないではありません。助けをあらかじめありがとう!

答えて

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; 
    } 
}); 
+0

さて、それはすべての問題だった、ありがとう – Mir

関連する問題