我玩一个游戏,我有一个c#书面来源,我正在尝试发一个命令。说我有这些常数:
public class Flags {
public const ulong
Normal = 0x0,
FlashingName = 0x1,
Dizzy = 1UL << 58,
DivineShield = 1UL << 57,
Poisoned = 0x2
}
我想尝试这样的命令:
case "addflag":{
client.Entity.AddTopStatus(Update.Flags.(Data[1]), DateTime.Now.AddDays(1), false);
break;
}
在游戏中我会在常量中输入@addflag Dizzy(代替(data [1])的头晕),有点像命令是:
client.Entity.AddTopStatus(Update.Flags.Dizzy, DateTime.Now.AddDays(1), false);
但由于(data [1])存在,我可以通过命令来完成,而不是直接调用它。我可以选择任何常数,而不是单独调出每一个。
此代码我收到错误,但这是预料之中的。有什么事我能做到吗? (我希望你们了解我,我对c#不是很好,所以如果这令人困惑,那就很抱歉)
答案 0 :(得分:0)
将Flags
设为enum
,然后使用Enum.Parse将data[1]
转换为相应的标记。
public enum Flags : ulong
{
Normal = 0x0,
FlashingName = 0x1,
Dizzy = 1UL << 58,
DivineShield = 1UL << 57,
Poisoned = 0x2
}