4

有没有办法从控制台调用模块或函数?例如一个创建工人爬行的模块,从控制台调用 my_module.add_creep?

4

5 回答 5

4

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

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

Game.creepManager = require('CreepManager');

您现在可以通过键入来使用控制台

Game.creepManager.yourFunctionHere();
于 2014-11-26T01:51:07.677 回答
4

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

@cho: require 不必返回函数。它宁可返回一个函数,因为该模块包含一个函数。如果模块分配如下module.export = {test: 'test'},后续片段require('that_module')将返回{test: 'test'}等...

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

于 2014-11-23T19:34:40.117 回答
1

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

主循环:

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

然后从控制台:

rebuildMemory();
Commands.printRoomReport('W3N4');
于 2020-08-23T22:20:34.477 回答
0

我已经设法通过这样调用它从控制台调用 lodash 模块require('lodash').pluck(characters, 'name')。不确定它是否适用于用户创建的模块。

于 2014-11-22T07:12:39.257 回答
0

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

require('harvester')(Game.creeps.harvester1);
于 2014-11-22T15:20:04.130 回答