与来自控制台的脚本交互

时间:2014-11-22 05:28:44

标签: screeps

有没有办法从控制台调用模块或功能?例如,一个创建工人小兵的模块,从控制台调用my_module.add_creep?

5 个答案:

答案 0 :(得分:3)

对于给定的示例,请使用require('my_module').add_creep(); require函数返回分配给该模块中module.exports的任何内容。

@cho:require不必返回一个函数。它返回一个函数,因为该模块包含一个函数。如果模块指定为关注module.export = {test: 'test'},请关注代码段require('that_module')将返回{test: 'test'}等...

注意:不确定其他人是否有此问题,但有时控制台根本没有返回结果... 在这种情况下,请尝试重新加载页面。确保游戏不是执行命令时暂停...

答案 1 :(得分:2)

我今天才想到这一点。但是有一种很好的方法可以从控制台访问你的方法

只需将您的方法导入Game对象(在您的脚本中)

Game.creepManager = require('CreepManager');

现在可以通过输入

来使用控制台
Game.creepManager.yourfunctionhere();

答案 2 :(得分:0)

我设法通过调用它来调用lodash模块,就像这个require('lodash').pluck(characters, 'name')一样。不确定它是否适用于用户创建的模块。

答案 3 :(得分:0)

require函数返回一个函数,因此您可以直接在控制台中调用它,如下所示:

require('harvester')(Game.creeps.harvester1);

答案 4 :(得分:0)

其他人提到使用require和分配给Game,但是您也可以通过分配给global来创建新的顶级命令和对象。

主循环:

global.rebuildMemory = () => console.log('Memory rebuilt.');
global.Commands = require('consoleCommands');

然后从控制台:

rebuildMemory();
Commands.printRoomReport('W3N4');
相关问题