地图暂停

创作者: aiTookMyJob
已更新:2024-03-03 13:27:53
2KB

关于此 MOD

在地图开启时,将游戏速度降低20倍,让标记地点等操作更轻松、更安全。
在地图打开时,游戏速度降低至20倍,让你更轻松、更安全地标记位置等操作。

using BepInEx;
using BepInEx.Configuration;
using HarmonyLib;
using System.Reflection;
```json ["using UnityEngine;"] ```

命名空间 MapPause
{
    [BepInPlugin("innocreator.mappause", "MapPause", "1.0")]
    [BepInProcess("valheim.exe")]
    public class MapPause : BaseUnityPlugin
    {
        public static ConfigEntry<bool> showDebugMessages;
        public static ConfigEntry<float> gameTimeScale;
        public static ConfigEntry<float> mapTimeScale;
        public static ConfigEntry<float> gamepadMapSpeed;
        private static readonly FieldInfo gameTimeScaleField = typeof(Game).GetField("m_timeScale", BindingFlags.NonPublic | BindingFlags.Static);
        private static readonly FieldInfo gamepadMapSpeedField = typeof(Minimap).GetField("m_gamepadMoveSpeed", BindingFlags.NonPublic | BindingFlags.Instance);
        private readonly Harmony harmony = new Harmony("innocreator.mappause");

        void Awake()
        {
            showDebugMessages = Config.Bind<bool>("General", "showDebugMessages", false, "显示脚本调试信息。");
            gameTimeScale = Config.Bind<float>("Options", "gameTimeScale", 1f, "设置基础游戏时间倍率。");
            mapTimeScale = Config.Bind<float>("Options", "mapTimeScale", .05f, "设置打开地图时的时间倍率。");
            gamepadMapSpeed = Config.Bind<float>("Options", "gamepadMapSpeed", 5f, "设置你的手柄地图灵敏度。");
            harmony.PatchAll();
        }

        [HarmonyPatch(typeof(Minimap), nameof(Minimap.SetMapMode))]
        public static class MapPause_SetMapMode
        {
            static void Prefix(Minimap.MapMode mode)
            {
                Minimap minimapInstance = Minimap.instance;

                if (showDebugMessages.Value)
                    Debug.Log("innoCreator地图模式:" + mode);
                if (mode == Minimap.MapMode.Large)
                {
                    gameTimeScaleField.SetValue(null, mapTimeScale.Value);
                    gamepadMapSpeedField.SetValue(minimapInstance, gamepadMapSpeed.Value);
                    if (showDebugMessages.Value)
                        Debug.Log("innoCreator 大地图感应: " + gamepadMapSpeedField.GetValue(minimapInstance) + " 时间缩放: " + gameTimeScaleField.GetValue(null));
                    返回;
                }
                gameTimeScaleField.SetValue(null, gameTimeScale.Value);
                gamepadMapSpeedField.SetValue(minimapInstance, .33f);
                if (showDebugMessages.Value)
                    Debug.Log("innoCreator小地图感应:" + gamepadMapSpeedField.GetValue(minimapInstance) + " 时间缩放:" + gameTimeScaleField.GetValue(null));
                返回;
            }
        }
    }
}

Valheim: 英灵神殿 的热门 MOD

探索适用于 Valheim: 英灵神殿 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

使用 Xmod 解锁 Valheim: 英灵神殿 的全部潜力 — 今天就探索这些顶级 MOD!