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