0

我已经为我的代码查看了一堆解决方案,但没有一个适用于我一直在尝试添加的内容。由于我正在修改游戏,因此我一直在通过 dnSpy 进行编码,并且我的问题不断出现只读错误。

就像我说的那样,我已经查看了许多其他关于“无法将属性或索引器分配给 - 它是只读的”错误的线程,但据我所知,它们都没有真正帮助我的代码。

        // Token: 0x06000B48 RID: 2888 RVA: 0x00045EA0 File Offset: 0x000440A0
        public static bool ConsoleCommandModifier(string command_arguments)
        {
            if (!string.IsNullOrEmpty(command_arguments))
            {
                string[] array = command_arguments.Split(new char[]
                {
                    ' '
                });
                if (array.Length > 0 && State.LocalPlayer != null && State.LocalPlayer != null)
                {
                    string text = array[0].ToLower();
                    if (text != null)
                    {
                        if (text == "rocketjump")
                        {
                            State.LocalPlayer.Modifier = (PlayerControllerModifier)ScriptableObject.CreateInstance(typeof(RocketJumpModifier));
                            State.LocalPlayer.Modifier.AddModifier(State.LocalPlayer);
                            return true;
                        }
                    }
                }
            }
            return false;
        }

预期的结果是,我在游戏聊天中输入“/modifier [modifier] 并将该修饰符应用到我的角色。此代码早在 2018 年初就在游戏中,我想重新添加代码。

实际结果只不过是一个错误,描述“不能将属性或索引器'PlayerController.Modifier'分配给--它是只读的。通常不止1个修饰符,但对于这个例子,我使用的是“rocketjump” . 当有更多的修饰符时,每个

State.LocalPlayer.Modifier = (PlayerControllerModifier)ScriptableObject.CreateInstance(typeof(RocketJumpModifier));

行做同样的错误,所以我怀疑这个错误与这一行有关。

最后,如何修复“无法将属性或索引器‘PlayerController.Modifier’分配给——它是只读的”错误?

4

0 回答 0