Ich habe ein bisschen von meiner Rolle.builders.js Datei geändert, um meine Creeps zuerst überprüfen zu sehen, ob der Spawn Energie hat, wenn es nicht geht Ernteenergie zu bauen, sonst bekomme es von der laichen. Hier ist, was ich habe:Screeps Builders Keine Energie sammeln
var roleBuilder = {
/** @param {Creep} creep **/
run: function(creep) {
if(creep.memory.building && creep.carry.energy == 0) {
creep.memory.building = false;
creep.say('harvesting');
}
if(!creep.memory.building && creep.carry.energy == creep.carryCapacity) {
creep.memory.building = true;
creep.say('building');
}
if(creep.memory.building) {
var targets = creep.room.find(FIND_CONSTRUCTION_SITES);
if(targets.length) {
if(creep.build(targets[0]) == ERR_NOT_IN_RANGE) {
creep.moveTo(targets[0]);
}
}
}
else
{
if(!Game.spawns['MySpawn'].energy)
{
var sources = creep.room.find(FIND_SOURCES);
if(creep.harvest(sources[0]) == ERR_NOT_IN_RANGE)
{
creep.moveTo(sources[0]);
}
}
else
{
if(creep.withdraw(Game.spawns['MySpawn'],RESOURCE_ENERGY) == ERR_NOT_IN_RANGE)
{
creep.moveTo(Game.spawns['MySpawn']);
}
}
}
}
};
module.exports = roleBuilder;
Irgendwelche Vorschläge, was ich vermisse? Die Erbauer sind an Ort und Stelle eingefroren, obwohl sie sagen, dass sie zum Spawn ziehen.
Ok, also habe ich meinen Fix gefunden: '\t var spns = creep.room.find (FIND_MY_SPAWNS); \t if (creep.withdraw (SPN [0], RESOURCE_ENERGY) == ERR_NOT_IN_RANGE) \t { \t creep.moveTo (SPN [0]); \t} \t sonst \t { \t creep.withdraw (SPN [0], RESOURCE_ENERGY); \t} ' – user1971240