2017-01-17 2 views
1

In Screeps ich diesen Code nicht funktioniert:Wie man screep Quellen finden?

var sources = creep.room.find(Game.FIND_SOURCES_ACTIVE); 

Es sagt dies:

Cannot read property 'find' of undefined 

ich herum haben suchen und andere Art und Weise nicht finden kann, Quellen zu finden.

Auch ich habe bemerkt, dass die meisten anderen Völker Code nicht funktioniert und sogar der Code des Tutorials nicht mehr funktioniert, wenn in das echte Spiel.

+3

Können Sie mehr Kontext bereitstellen? Es ist möglich, dass "Kriechen" gar nicht einmal ein "Kriechen" ist, weshalb "Kriechen" undefiniert ist. –

Antwort

0

Ich denke, was Sie suchen ist:

var sources = creep.pos.findClosestByRange(Game.SOURCES); 

oder

var sources = creep.pos.findClosestByPath(Game.SOURCES); 
+0

Ich bekomme es nur: TypeError: Kann die Eigenschaft 'findClosesByPath' von undefined nicht lesen –

1

ich nicht ganz sicher über Ihr Problem sein kann, da ich Ihren vollständigen Code nicht weg zu gehen von nur einem Problem könnte sein, dass creep nicht definiert ist.

Sie müssen irgendwo in Ihrem Code creep wie eine for-Schleife definieren, um über jedes Ihrer Creeps im Spiel oder im Raum zu schleifen.

var roleMiner = require('role.miner') // role.miner being the module name for miner actions 
for(var name in Game.creeps) { 
    var creep = Game.creeps[name]; 
    // 
    // do whatever you wish with the current selected creep. 
    // 
    // most of the time you will call a module similar to what the tutorials suggest and put your actions for it in there 
    // 
    if(creep.memory.role == 'miner'){ 
     roleMiner.run(creep); // passes the current selected creep to the run function in the module 
    } 
} 

Also, in Ihrem Roleminer Modul haben Sie etwas, das Ihre Bergarbeiter Aktionen definiert.

var roleMiner = { 
    run: function(creep) { 
     // this one returns an array of the sources that are in the room with the creep 
     var sourcesRoom = creep.room.find(FIND_SOURCES); 

     // this one returns the source object which is closest to the creeps positon 
     var sourcesClose = creep.pos.findClosestByRange(FIND_SOURCES); 
    } 
} 
module.exports = roleMiner; 

Hoffe das hilft.

0

im einen neuen Spieler, nicht sicher, ob mein Code effizient ist, denke ich, die find-Methode wird so sein:

var sources = creep.room.find(FIND_SOURCES_ACTIVE)

Kriechen auf die aktive Ressource gehen werden Harvester.

Verwandte Themen