2016-12-17 11 views
0

私はmainの以前の変数に設定した設定数の制限に基づいてmainに自動生成スクリプトを設定しようとしています。ただし、何らかの理由でスクリプトの実行が異常に実行されています。Spawnerはハーベスタの産卵を停止しません

スクリプト:

var roleHarvester = require('role.harvester'); 
var roleUpgrader = require('role.upgrader'); 
var roleSpawner = require('role.spawner'); 
var trashHandler = require('helper.trashHandler'); 

module.exports.loop = function() { 
    //Start by cleaning memory 
    trashHandler.run(Memory); 

    //Default Number of Creeps 
    var max_harvesters = 2; 
    var max_upgraders = 3; 

    for(var name in Game.creeps) { 
     var creep = Game.creeps[name]; 

     if (creep.memory.role == 'harvester'){ 
      roleHarvester.run(creep); 
     } else if (creep.memory.role == 'upgrader'){ 
      roleUpgrader.run(creep); 
     } 
    } 

    var harvesters = _.filter(Game.creeps,(creep)=>creep.memory.role == 'harvester'); 
    var upgraders = _.filter(Game.creeps,(creep)=>creep.memory.role == 'upgrader'); 

    for (var name in Game.spawns){ 
     var spawner = Game.spawns[name]; 

     console.log(harvesters.length < max_harvesters); 
     console.log(max_harvesters); 
     console.log(harvesters.length); 


     if (harvesters.length < max_harvesters){ 
      roleSpawner.spawnHarvester(spawner); 
     } else if (upgraders.length < max_upgraders){ 
      roleSpawner.spawnHarvester(spawner); 
     } 
    } 
} 

最後のコンソール出力はその作業は、そのが、スクリプトの実行は、if文がfalseに実行されているという事実を無視しているしていることsuppoedとすることを示しています。

[8時17分20秒PM]偽

[8時17分20秒PM] 2

[8時17分20秒PM] 9

[8:17: 20 PM]ハーベスタスポーンはfalied:-6

[8時17分23秒PM]偽

[8時17分23秒PM] 2

[8:17:23 PM] 10

+1

Game.creepsを使用しないでください。これは、2番目の部屋のコロニー化を開始すると混乱するためです。代わりに、Game.roomsを繰り返し、 'room.find(FIND_MY_CREEPS、{filter:c => c.memory.role === 'harvester'})'を使用して各部屋のコードを実行します。 – Toolmaker

答えて

2

ああ私の神.....ちょうど私は両方のspawnHarvester関数を呼び出していた。笑。

+0

私はあなたがより多くの収穫業者を造るべきだと思う、あなたがお金をより速く作ることができ、あなたが構築しようとしているすべてのタンクをサポートすることができる健康的な経済を維持する... – Mzn

関連する問題