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