命令树参数计数问题

Struggling with parameter count, command tree

本文关键字:问题 参数 命令      更新时间:2023-09-26

基本上我想在javascript中实现的,在c#中看起来像这样:

private void ilevel(CommandArgs args)
    {
        if (args.Parameters.Count < 1)
        {
            args.Player.SendInfoMessage("Info: /ilevel subcmd1");
            args.Player.SendInfoMessage("Info: /ilevel subcmd2");
        }
        switch (args.Parameters[0])
        {
            case "subcmd1":
                {
                    args.Player.SendInfoMessage("message1", Color.SkyBlue);
                    args.Player.SendInfoMessage("message2");
                    args.Player.SendInfoMessage("message3");
                }
                break;
            case "subcmd2":
                {
                    args.Player.SendInfoMessage("message1", Color.SkyBlue);
                    args.Player.SendInfoMessage("message2");
                    args.Player.SendInfoMessage("message3");
                }
                break;
        }
    }

现在javascript看起来像这样:

var plr;
var ilevelCommand = acmd_alias_create("ilevel", 0, 0, "", function(player, args) {
plr = player;
ilevelSwitch(player, args);
});
var Ilevelcolor = "250,250,47";
function trace(msg) {
tshock_msg_color(Ilevelcolor, plr, msg);
}
function ilevelSwitch(player, args) {
    if (args <1)
    {
    tshock_msg(player, "/ielvel subcmd1");
    tshock_msg(player, "/ilevel subcmd2");
    return;
}
switch (args[0]) {
    case "subcmd1":
        tshock_exec(player, "/item 6 1");
        break;
    case "subcmd2":
        tshock_exec(player, "/item 6 1");
        break;
}
}

"/illevel subcmd1"answers"/illevel subcm2"只有在玩家执行/illevel subcmd1时才会出现,但是tshock_exec(player, "/item 6 1");不会被执行。我不知道如何进一步进行,我尝试了我所知道的一切,它仍然不工作,因为它应该。如有任何帮助,不胜感激

假设args是字符串数组,在ilevelSwitch中,您要将args < 1更改为args.length < 1