模组:制作指南/APIs/Console

来自Stardew Valley Wiki
跳到导航 跳到搜索

制作SMAPI模组 SMAPI mascot.png


模组:目录

SMAPI 可以将自定义命令添加到 SMAPI 控制台,玩家可以键入这些命令来执行某些操作。使用 Chat Commands 模组的玩家也可以在游戏内聊天中使用这些命令。

简介

SMAPI 控制台是与游戏一起打开的窗口,它以纯文本格式显示来自 SMAPI 和模组的消息。玩家可以直接在该窗口中输入命令以与模组交互。例如可以键入 help 以查看可用命令的列表。请注意大多数玩家不习惯命令行界面,因此在大多数情况下应该使用游戏内界面来实现面向玩家的功能。

SMAPI 控制台示例(非开发者模式)

添加自定义命令

每个控制台命令必须具有:

  • 玩家键入以调用命令的名称
  • 玩家使用 help 命令时显示的描述,这应该解释该命令的作用、如何使用它以及它接受哪些参数,下面有一个示例
  • 输入命令时调用的方法

此代码创建了一个简单易懂的 player_setmoney 命令:

public class ModEntry : Mod
{
    /*********
    ** 公共方法
    *********/
    /// <summary>Entry 入口</summary>
    /// <param name="helper">提供 SMAPI 的接口</param>
    public override void Entry(IModHelper helper)
    {
        helper.ConsoleCommands.Add("player_setmoney", "设置玩家的金币数量\n\nUsage: player_setmoney <value>\n- value: 整数值", this.SetMoney);
    }

    /*********
    ** 私有方法
    *********/
    /// <summary>输入 player_setmoney 命令来设置金币数量</summary>
    /// <param name="command">命令的名称</param>
    /// <param name="args">命令的参数</param>
    private void SetMoney(string command, string[] args)
    {
        Game1.player.Money = int.Parse(args[0]);
        this.Monitor.Log($"将你的金币数量设置为 {args[0]}.", LogLevel.Info);
    }
}

这里展示了玩家如何使用它:

help player_setmoney
> player_setmoney: 设置玩家的金币数量
> 
> Usage: player_setmoney <value>
> - value: 整数值

player_setmoney 5000
> 将你的金币数量设置为 5000.

也看看