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

注册 登录

QQ登录

只需一步,快速开始

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

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

[复制链接]

62

主题

597

帖子

4378

积分

游戏精英

Rank: 8Rank: 8

贡献度
712
金元
14804
积分
4378
精华
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();
                        }
                }
        }
}

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-22 05:34 , Processed in 0.023453 second(s), 15 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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