这个代码可能吗?

本文关键字:代码 | 更新日期: 2023-09-27 18:07:20

我玩一个游戏,我有一个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#所以抱歉,如果这是混乱的)

这个代码可能吗?

选择Flagsenum,然后使用Enum。解析将data[1]转换为相应的标志

public enum Flags : ulong 
{
        Normal = 0x0,
        FlashingName = 0x1,
        Dizzy = 1UL << 58,
        DivineShield = 1UL << 57,
        Poisoned = 0x2
}