《双点医院》★★★★★★★★★★内置Debug控制台开启方法★★★★★★★★★★
本帖最后由 tempa 于 2018-9-6 19:30 编辑不算原创,但是好像看某个贴子,有个哥们贴了张控制台的图,google了一下找到了CE版本。
http://fearlessrevolution.com/viewtopic.php?t=7780
但是我比较喜欢直接用C#高级语言处理,所以直接改了个dnSpy版,无需CE。
简单说下方法,理论上此修改方法应该全版本通用,但是我只下载了最初的版本,因为第1版我玩着没什么问题,现在二周目,所以就没更新。
另外也不知道这哥们发的是哪个版本的Assembly-CSharp-firstpass.dll文件,版本不同,直接覆盖肯定会出问题。还是按自己当前的版本,自己改最靠谱。
首先备份2个文件
TwoPointHospital\TPH_Data\Managed\Assembly-CSharp.dll
和
TwoPointHospital\TPH_Data\Managed\Assembly-CSharp-firstpass.dll
这次要多备份1个Assembly-CSharp-firstpass.dll,因为我们要修改这个文件。
Assembly-CSharp.dll改多了,没想到这次会在Assembly-CSharp-firstpass.dll里。
1.首先选中Assembly-CSharp-firstpass.dll依次展开
UnityConsole >> ConsoleCommandsDatabase >> RegisterCommand 函数,如图
你看到的这个函数应该是空的,而我这里是改好的,编辑函数,加入下面这句话,重新编译即可。
ConsoleCommandsDatabase.Database = new ConsoleCommand(command, description, usage, callback);
新手可以参考我之前的dnSpy入门贴子。
http://bbs.3dmgame.com/thread-5782890-1-1.html
如果编译没出任何错误,那么保存他就可以了。
2.接下来Assembly-CSharp.dll依此展开
TH20 >> App >> .ctor
如图,点击编辑方法
去掉图中所示的这行代码
base..ctor();
并且在函数参数末尾加入
: base()
如图
这句函数参数尾加: base似乎不写也行,但是按照C#的写法应该是写上的。
如果你的版本没有base..ctor();这句代码就不用管,继续看下面。
接下来按Ctrl + F搜索字符串
consoleController.ToggleKey
来到如图
把这句的KeyCode.None改为
KeyCode.BackQuote
如图
这是1前面的那个~那个键,是许多自带控制台调式游戏的默认键,当然你也可以改成其他任何你喜欢的快捷键。
全部搞定后点右下角的编译按钮,如果没有任何错误,保存,再进游戏,按~键即可调出控制台。
最后附上控制台命令。
可以测试一下命令,我只试了一个命令
SpawnGhost
生成鬼魂
为了不破坏游戏进度,新开一个存档,第1关先生成一屋子鬼玩玩,看起来可以正常使用。
很好,有了控制台,可以彻底消除角色了,对于编辑建筑都复原不了而卡死的员工和病人有奇效,真是好消息。
DebugDestroyCharacter
删除选中角色
ClearQualifications
选中角色属性槽设为白板,洗属性神技,保留槽位,只去掉属性
SpawnRequiredStaff
补全当前状态下AI认为所缺少的员工,还有这种操作......我感觉不是我玩游戏,而是游戏玩我......{:2_29:}
版主不要加隐藏了,加了隐藏我自己都编辑不了贴子了{:3_124:}
感谢分享
开启命令控制台 应该都是按照 tempa的方法改2个文件。
newman55的mod采用另一个办法,改一个文件也是2处。
Assembly-CSharp-firstpass.dll
UnityConsole.ConsoleController.Update最后追加面加
// UnityConsole.ConsoleController
// Token: 0x060000DA RID: 218
private void Update()
if (Input.GetKeyDown(KeyCode.BackQuote))
{
this.UI.ToggleConsole();
}
UnityConsole.ConsoleCommandsDatabase.RegisterCommand里面加命令,这个和以前一样
// UnityConsole.ConsoleCommandsDatabase
// Token: 0x060000CA RID: 202
public static void RegisterCommand(string command, string description, string usage, ConsoleCommandCallback callback)
{
ConsoleCommandsDatabase.Database = new ConsoleCommand(command, description, usage, callback);
}
//可选 也许应该加个判断!
// UnityConsole.ConsoleCommandsDatabase
// Token: 0x060000E9 RID: 233 RVA: 0x00006DBA File Offset: 0x00004FBA
public static void RegisterCommand(string command, string description, string usage, ConsoleCommandCallback callback)
{
if (!ConsoleCommandsDatabase.Database.ContainsKey(command))
{
ConsoleCommandsDatabase.Database.Add(command, new ConsoleCommand(command, description, usage, callback));
}
}
出处:https://bbs.3dmgame.com/thread-5988702-1-1.html
1.25.69431测试可用 新版的,搜尋 consoleController.ToggleKey
要改成搜尋 UnityEngine.Object.FindObjectOfType<ConsoleController>().ToggleKey 奇了怪了 我的.cctor打开是空的~ 受受肉肉 发表于 2021-9-10 15:15
奇了怪了 我的.cctor打开是空的~
选下面的那个.app
然后查找ConsoleController,修改None为BackQuote.
但是我编译的时候会报错。。。(1.25版)
删除技能怎么删?一直说没有员工被选中,怎么才算被选中? 老哥有些控制台命令失效了麻烦有空重新弄一下~~
1.29版本的dll文件模块改了 不知道怎么修改了.
zwj_325200 发表于 2021-10-3 10:32
选下面的那个.app
然后查找ConsoleController,修改None为BackQuote.
但是我编译的时候会报错。。。(1.2 ...
我是1.29.52版本的照你说的和对照教程没有出现编译错误提示.
页:
[1]