2014-11-21 3 views
2

Я играю в Screeps (http://screeps.com), и я пытаюсь использовать модуль lodash для фильтрации моих комбайнов от остальной части крипов. Код ниже должен работать, но когда я его запускаю, я получаю ReferenceError: _ is not defined at <main>:6:18. Любая идея, что не так?Игра Screeps - Использование модуля lodash

var harvesters = _.filter(Game.creeps, {memory: 'harvester'}); 
if(_.size(harvesters) < 3 && Memory.creep_queue.length===0) { 
    Memory.creep_queue.push('harvester') 
} 

ответ

7

При использовании модуля lodash, необходимо требовать его в вар, как показано ниже в самом начале модуля, а затем он должен работать:

var _ = require('lodash'); 
+0

Lodash уже импортирован в [симуляция] (https://screeps.com/a/#!/sim). – Basilevs

+0

Это больше не требуется для этого. lodash включен по умолчанию. – jfren484

0

ОБНОВЛЕНО

Вы может написать свой код также следующим образом:

var harvesters = room.find(Game.creeps, { 
    filter: {memory: 'harvester'} 
}); 

if(harvesters.length < 3 && Memory.creep_queue.length === 0) { 
    Memory.creep_queue.push('harvester'); 
} 

С 2014-12-01 нет необходимости находить room взломанным способом. Теперь есть глобальная функция Game.getRoom().

OLD ФРАГМЕНТ: Единственная проблема, чтобы иметь room значение, но вы можете получить его, например, от. Game.spawns.Spawn1.room.

Смежные вопросы