3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 10482|回复: 7
打印 上一主题 下一主题

[讨论] 【控制台复活计划】-有请众大佬共同参与x

[复制链接]

62

主题

586

帖子

4314

积分

游戏精英

Rank: 8Rank: 8

贡献度
706
金元
14398
积分
4314
精华
5
注册时间
2012-10-6
跳转到指定楼层
主题
发表于 2020-4-23 22:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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[MenuNotepad.MenuNotepadTab.MapTab];
                                if (mapTab == null)
                                {
                                        return;
                                }
                                mapTab.UnlockAll();
                        }
                }
        }
}

回复

使用道具 举报

0

主题

29

帖子

35

积分

初级玩家

Rank: 2

贡献度
0
金元
347
积分
35
精华
0
注册时间
2018-8-22
舒服的沙发
发表于 2020-4-23 22:54 | 只看该作者
6666666666666666666666666666666666666666
回复 支持 反对

使用道具 举报

0

主题

29

帖子

35

积分

初级玩家

Rank: 2

贡献度
0
金元
347
积分
35
精华
0
注册时间
2018-8-22
硬硬的板凳
发表于 2020-4-23 22:55 | 只看该作者
F8我刚试完 完全可以用
回复 支持 反对

使用道具 举报

0

主题

70

帖子

76

积分

初级玩家

Rank: 2

贡献度
0
金元
756
积分
76
精华
0
注册时间
2019-8-13
冰凉的地板
发表于 2020-4-23 23:32 | 只看该作者
楼主你好,我在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里正常使用
回复 支持 反对

使用道具 举报

62

主题

586

帖子

4314

积分

游戏精英

Rank: 8Rank: 8

贡献度
706
金元
14398
积分
4314
精华
5
注册时间
2012-10-6
5#
 楼主| 发表于 2020-4-23 23:42 | 只看该作者
本帖最后由 一只双眼皮 于 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实现功能。
回复 支持 反对

使用道具 举报

18

主题

276

帖子

715

积分

超级玩家

Rank: 5Rank: 5

贡献度
36
金元
5712
积分
715
精华
0
注册时间
2020-1-10
6#
发表于 2020-4-24 09:46 | 只看该作者
大佬牛逼
回复 支持 反对

使用道具 举报

1

主题

34

帖子

124

积分

中级玩家

Rank: 3Rank: 3

贡献度
4
金元
980
积分
124
精华
1
注册时间
2017-2-19
7#
发表于 2020-4-24 21:06 | 只看该作者
大佬,控制台汉化咋做。
回复 支持 反对

使用道具 举报

62

主题

586

帖子

4314

积分

游戏精英

Rank: 8Rank: 8

贡献度
706
金元
14398
积分
4314
精华
5
注册时间
2012-10-6
8#
 楼主| 发表于 2020-4-24 22:44 | 只看该作者
楠箐丶 发表于 2020-4-24 21:06
大佬,控制台汉化咋做。

控制台汉化? 以前的老版本不存的这个问题吧。就一个刷物品,那对照着表就可以了啊。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2025-2-26 20:09 , Processed in 0.138952 second(s), 14 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表