Как исправить ошибку «Свойство или индексатор PlayerController.Modifier» нельзя назначить ошибке «только для чтения»? - PullRequest
0 голосов
/ 02 мая 2019

Я просмотрел кучу решений для своего кода, но ни одно из них не относится к тому, что я пытался добавить. Поскольку я занимаюсь моддингом, я пишу через 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» нельзя присвоить - это только для чтения »?

...