【控制台复活计划】-有请众大佬共同参与x
本帖最后由 leeahngi 于 2023-12-7 02:08 编辑圣火令最近工作挺忙。都快忙成圣焱令了。
恰巧greenhell取消了debug控制台,导致很多依赖控制台的功能失效。
因为时间不定,所以每天抽出一点点,来尝试复活部分功能。
【为避免重复劳动,欢迎各位大佬认领感兴趣的部分】本贴将持续更新。
Page1为已过测功能,Page2是在制作过程中走过的弯路(非强动手能力玩家不必看Page2)
已修复功能:【F8秒建筑】
修改原理:调整验证顺序,将Ready状态(完工)前置。并加入控制键F8
其他大佬可参考:控制键的代码实现。
需要在 ConstructionGhost.UpdateState 中修改
改后的代码:
public void UpdateState()
{
if (this.IsReady() || Input.GetKeyDown(KeyCode.F8))
{
this.SetState(ConstructionGhost.GhostState.Ready);
}
ConstructionGhost.GhostState state = this.m_State;
if (state == ConstructionGhost.GhostState.Dragging)
{
this.UpdateRotation();
this.UpdateTransform();
this.UpdateColor();
this.UpdateShaderProps();
return;
}
if (state != ConstructionGhost.GhostState.Building)
{
return;
}
this.UpdateShaderProps();
}
已修复功能:【Ctrl+0 1 2 3 】无敌、给壶、给锅、给铁斧
已修复功能:【Ctrl+U】解锁所有图纸
1、都在MainLevel.UpdateInputsDebug
2、利用 Get() 实现Instance
3、需要更改部分函数的访问权限为Public (我就不去麻烦用托管或指针了,反正这是个人性质的改动)
需要公开的函数为
UnloackAllConsumed();
UnlockAllCrafted();
UnlockAllBoiledData();
UnlockAllCollected();
改公开方法:右键点:函数名-选择:编辑方法-弹出个窗口,左下角有访问权限:下拉菜单,点选把私有改为公共。
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using AdvancedTerrainGrass;
using Enums;
using UnityEngine;
using UnityEngine.Rendering.PostProcessing;
using UnityEngine.SceneManagement;
public partial class MainLevel : MonoBehaviour, ISaveLoad
{
private void UpdateInputsDebug()
{
if (Input.GetKey(KeyCode.LeftControl))
{
if (Input.GetKeyDown(KeyCode.Keypad0))
{
Cheats.m_GodMode = !Cheats.m_GodMode;
return;
}
if (Input.GetKeyUp(KeyCode.Keypad3))
{
Player.Get().AddItemToInventory("Axe_professional");
return;
}
if (Input.GetKeyUp(KeyCode.Keypad1))
{
Player.Get().AddItemToInventory("Bidon");
return;
}
if (Input.GetKeyUp(KeyCode.Keypad2))
{
Player.Get().AddItemToInventory("Pot");
}
if (Input.GetKey(KeyCode.U))
{
ItemsManager.Get().UnlockAllItemsInNotepad();
PlayerDiseasesModule.Get().UnlockAllDiseasesInNotepad();
PlayerDiseasesModule.Get().UnlockAllDiseasesTratmentInNotepad();
PlayerDiseasesModule.Get().UnlockAllSymptomsInNotepad();
PlayerDiseasesModule.Get().UnlockAllSymptomTreatmentsInNotepad();
PlayerInjuryModule.Get().UnlockAllInjuryState();
PlayerInjuryModule.Get().UnlockAllInjuryStateTreatment();
PlayerInjuryModule.Get().UnlockAllKnownInjuries();
ItemsManager.Get().UnloackAllConsumed();
ItemsManager.Get().UnlockAllCrafted();
ItemsManager.Get().UnlockAllBoiledData();
ItemsManager.Get().UnlockAllCollected();
ItemsManager.Get().UnlockAllItemInfos();
MapTab mapTab = (MapTab)MenuNotepad.Get().m_Tabs;
if (mapTab == null)
{
return;
}
mapTab.UnlockAll();
}
}
}
}
【2020.04.23 PM 10:00 开始尝试 Ctrl+U 打开制造列表】
进展:22:22 复制原代码进入游戏后,无效。游戏不报错。开始排查
进展:22:40 移动代码到Update下,仍无效。排除某处有禁止debug运行可能。回到进展1
进展:22:53 尝试直接将旧版代码整体移植(包括刷物品列表),游戏报错退出。(有新建UIList类型字段m_List 于ItemsManager
进展:23:06 最次尝试将UnlockAllCrafted中的代码直接植入UpdateDebug,仍然无效。可能需要换一种解决思路~
因怀疑是整个ItemsManager的Update未生效,先复活 无敌等位于 MainLevel.UpdateInputsDebug的功能。已成功。
明天如有时间,尝试直接在这个方法下制作其他功能。
今晚收工
【2020.04.25 PM 20:17 继续 Ctrl+U 打开制造列表】
过测。本项结束。
可能是 ItemManager.Update及 UpdateDebug没有被加载?同样的代码放进MainLevel就可以了。这太神奇了
【2020.04.25 PM 21:18在参考了@mrh121 大佬的帖子https://bbs.3dmgame.com/thread-6037334-1-1.html后,开始尝试直接在MainLevel中复活 Ctrl+Art (打开刷物品列表)和 Ctrl+i(刷物品)】
昨晚失败。莫名错误,甚至连时间+ - 和存档9 都不能往里放,今晚如果有时间再操作。
6666666666666666666666666666666666666666 F8我刚试完 完全可以用 楼主你好,我在1.5.3刚更新的时候就发现没法用debug模式了,然后就去Twitter,reddit,YouTube上找一些路子,想看看有没有方法开启debug,然后在YouTube上找到了,在一个叫modapi的网站提供一个软件,借助那个软件开启游戏就可以再次使用debug了,不过目前那个debug mod是1.5.2版本的,作者还没更新1.5.3版本,他现在那个还未更新的版本的mod还是能用在1.5.3上面的,只不过相当于原来的debug,他的f8一键建筑的功能无法使用,其他全都可以在1.5.3里正常使用 本帖最后由 一只双眼皮 于 2020-4-23 23:47 编辑
Murphy01 发表于 2020-4-23 23:32
楼主你好,我在1.5.3刚更新的时候就发现没法用debug模式了,然后就去Twitter,reddit,YouTube上找一些路子 ...
既然有梯子,看懂代码应该不难。
看一下本贴主贴在1.5.3的修改位置,对比一下带debug的1.5.2 mod同样位置有代码还是没代码。
如果有代码,可能是向上兼容导致的。
某些版本存在向上兼容:例1.3.0制作的mod适用1.3.2
但因官方版在1.5.3删除了debug代码,以后不一定能适用。
所以求人不如求己。
如果那个modapi上的作者是通过软件注入开关(api 接口)以打开原有debug功能,以后会失效。
而当我们吃透了所有debug的代码实现机制,那就无论怎么变都可以继续制作。
当然最好那个作者是通过注入代码方式实现的debug。若如此,我就把不多的时间放在开发新功能上
(可参看https://bbs.3dmgame.com/thread-6034155-1-1.html)
这位大佬就是不借助debug实现功能。
大佬牛逼
大佬,控制台汉化咋做。 楠箐丶 发表于 2020-4-24 21:06
大佬,控制台汉化咋做。
控制台汉化? 以前的老版本不存的这个问题吧。就一个刷物品,那对照着表就可以了啊。
页:
[1]