Вы можете сделать что-то вроде этого:
if(Number(Harvesters.name.slice(-1)) < 3)
Game.spawns.Spawn1.createCreep([Game.WORK, Game.CARRY, Game.MOVE],'Harvester'+ Harvesters.length, 'Harvester');
вещь, чтобы отметить здесь, что index не является свойством, а свойство обманчивого идентификатора уникально и, следовательно, не то, что вы ищете. Этот код вместо этого смотрит на имя текущего ползучести и получает последний символ, затем превращает его в число и сравнивает его с 3.
То, как вы назначаете память, в порядке. Вы могли бы сделать объект там, если хотите, но это кажется ненужным с тем, как вы его настроили прямо сейчас. Это будет выглядеть следующим образом:
Game.spawns.Spawn1.createCreep([Game.WORK, Game.CARRY, Game.MOVE],'Harvester'+ Harvesters.length, {role: 'Harvester'});
И вы должны быть уверены, чтобы изменить memory
чеки memory.role
.
Перечитывая, и я думаю, что я сделал, это не то, что вы просили. Если я правильно понимаю, это должно работать лучше (не очень хотя)
module.exports = function() {
var totalHarv = 0;
for(var q in Game.creeps)
if (Game.creeps[q].memory == 'Harvester')
totalHarv++;
for(var i in Game.creeps) {
if(Game.creeps[i].memory == 'Harvester') {
while(totalHarv < 3) {
Game.spawns.Spawn1.createCreep([Game.WORK, Game.CARRY, Game.MOVE], 'Harvester'+ totalHarv, 'Harvester');
totalHarv++;
}
}
}
}
Это перебирает ползает и увеличивает счетчик, если он находит харвестер, а потом, когда вы пытаетесь икра и прочего, он может проверить чтобы убедиться, что их достаточно, и при необходимости добавьте больше.
сделать вы хотите назначить роли в памяти к уже существующим крипам или порождениям нереста с уже назначенными ролями? – dlkulp
Spawn creeps с ролями, которые уже назначены так, что если кто-то умрет, другой появится. – Axenth