我已经为我的代码浏览了很多解决方案,但是没有一个适用于我一直尝试添加的解决方案。自从我修改游戏以来,我一直在通过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'不能分配给它-这是只读的”错误?