2016-12-17 1 views
0

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

+1

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

Antwort

2

Oh mein Gott ..... Gerade bemerkte ich die spawnHarvester-Funktion für beide aufgerufen. LOL.

+0

Ich denke, du solltest mehr Harvester-Spawner bauen, damit du schneller Geld verdienen und eine gesunde Wirtschaft aufrechterhalten kannst, die alle Panzer unterstützen kann, die du bauen wirst ... – Mzn

Verwandte Themen