Ich versuche, ein Auto-Lawinenskript in Haupt basierend auf einer festgelegten Anzahl Grenze, die ich in einer Variable zuvor in Main festgelegt haben. Aus irgendeinem Grund wird die Skriptausführung jedoch abnormal ausgeführt.Spawner wird nicht aufhören zu labern Erntemaschinen
Script:
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);
}
}
}
Die Konsole Ausgänge am Ende zeigen, dass seine Arbeits als suppoed, sondern dass die Skriptausführung wird die Tatsache ignoriert, dass die if-Anweisung zu falsch ausgeführt wird.
[08.17.20] falsch
[20.17.20] 2
[20.17.20] 9
[08.17: 20 PM] Mähdrescher Laich falied: -6
[08.17.23] falsch
[20.17.23] 2
[8:17:23 PM] 10
Verwenden Sie Game.creeps nicht für diesen Zweck, da es nach dem Kolonisieren eines zweiten Raums versaut wird. Stattdessen iteriere über Game.rooms und führe den Code für jeden Raum mit 'room.find (FIND_MY_CREEPS, {filter: c => c.memory.role === 'harvester'})' aus. – Toolmaker