更改

跳到导航 跳到搜索
建立内容为“←模组:制作指南/APIs SMAPI 可以将自定义命令添加到 SMAPI 控制台,玩家可以键入这些命令来执行某些操作。使用 {{nexus mo…”的新页面
←[[模组:制作指南/APIs]]

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

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

[[File:smapi-console-window.png|thumb|none|SMAPI 控制台示例(非开发者模式)]]

==添加自定义命令==
每个控制台命令必须具有:
* 玩家键入以调用命令的名称
* 玩家使用 <samp>help</samp> 命令时显示的描述,这应该解释该命令的作用、如何使用它以及它接受哪些参数,下面有一个示例
* 输入命令时调用的方法

此代码创建了一个简单易懂的 <samp>player_setmoney</samp> 命令:
<syntaxhighlight lang="C#">
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);
}
}
</syntaxhighlight>

这里展示了玩家如何使用它:
<pre>
help player_setmoney
> player_setmoney: 设置玩家的金币数量
>
> Usage: player_setmoney <value>
> - value: 整数值

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

==也看看==
* [[模组:制作指南/APIs/Integrations|集成接口]]
* [[模组:制作指南/APIs/Logging|日志接口]]

[[Category:模组]]
[[en:Modding:Modder_Guide/APIs/Console]]
203

个编辑

导航菜单