Modding DevTool控制台(Modding DevTool Console) mod| 全面战争:战锤2

一个用于mods的mod;)该工具的目的是为您提供一个UI,使您可以在游戏运行时执行LUA代码。它有两种UI模式,一种最小化和最大化一种。两者都允许您输入任意数量的行(每行限制为150个字符),然后单击“执行”按钮以加载字符串(评估)游戏中的代码。
它受浏览器开发人员工具控制台的启发,旨在在游戏中提供基本的REPL(读取评估打印循环)。
您输入的代码可以访问全局范围,因此可以访问游戏中全局定义的任何函数定义或变量(核心,cm等)。要查看日志输出,请记住在文本框中输入的代码内添加return语句。
Mini UI本质上与最大化的UI相同,但是具有简化版本,没有全屏版本,日志输出和当前代码窗格。
最后,要访问UI,已在左上角的menu_bar中添加了一个新按钮。
loadstring(eval)
关于loadstring机制:当您点击“ Execute”按钮时,mod将把您之前输入的所有行连接到一个字符串中,并以换行符(\ n)分隔,并使用loadstring方法 [www.lua.org] 。然后使用pcall执行。
编译和运行时错误应在日志输出面板中以红色显示。
为了查看任何给定语句的结果,您必须使用return语句。 loadstring编译的代码的行为类似于一个函数。
打印
devtool控制台会稍微更改“ print()”函数(并添加一个新的“ devtool_log()”一个),供您使用和检查控制台中的变量。同样,对于复杂的结构(如表),return语句现在具有更好的输出。
选项
添加了一个选项选项卡,使您可以自定义两个值:
-代码输出路径:设置后将使控制台将文件写入磁盘的文件路径。它将包含您在控制台中执行的代码,并且每次您单击“执行”按钮时都会更新。
-日志输出路径:类似于上述选项,此文件路径将使控制台将另一个文件写入磁盘。每次单击“执行”按钮时,该输出将包含您可以看到打印在文本框下方的日志输出。
添加这些选项是为了使您可以复制和粘贴其中的内容,并可以将它们加载到首选的文本编辑器中。
已知问题
选项文件存在一个错误,名为“ devtool_options.json”。如果您遇到新的广告系列上devtool控制台损坏的状态,请检查此文件以查看其是否为空或具有无效的JSON。如果为空,请使用{}重新初始化
信用
非常感谢Vandy提供了大量有用的反馈和有价值的测试。字符大小限制和使用多行的变通方法的想法来自他。
另外,还要感谢Vanish及其之前在UIMF方面的工作。此mod的UI部分受他的工作启发很大。
感谢以下库以及各自的作者。两者均根据MIT许可获得许可。
-https://github.com/kikito/inspect.lua-一个非常有用的库,用于返回任何Lua值的人类可读的表示形式。与prints和return语句一起使用。
-https://github.com/rxi/json.lua-Lua的轻量级JSON库。用于读取和写入选项值,以便可以将其持久化到磁盘。