操作和规则快速入门

PlayStream 规则允许您实时响应一种类型的 PlayStream 事件的子集。

要求

相关术语一览表:

  • PlayStream:构成 PlayFab 事件管道的一组功能。

    • PlayStream 事件是一个 JSON 格式的字符串,用于描述有关玩家或游戏的事件。
    • PlayStream 事件具有基于自动化功能层的最大大小。
  • 规则:执行额外的逻辑,以实时响应某种类型的 PlayStream 事件。

    • 事件触发器、可选的条件列表以及可选的操作列表的总和。
  • 触发器:激活此规则的事件的名称。

  • 条件:规则和其他 PlayStream 功能的内容筛选器。

    • 对 PlayStream 事件 JSON 对象执行非常轻量级的评估,并跳过与要求不匹配的事件。
  • 操作:要在适当实体上完成的上下文作业。

规则包含触发器(仅一个)、可选的条件列表以及通常至少一个操作(不是必需的,如果没有,则只是一条无用的规则)。

触发器、条件和操作也是其他系统的一部分:批量操作锦标赛排行榜

示例案例:从客户端计算自定义事件

在下面给出的示例中,我们从客户端发布以下自定义事件。

public void WriteEvent() {
    PlayFabClientAPI.WritePlayerEvent(new WriteClientPlayerEventRequest {
        EventName = "ForumPostEvent",
        Body = new Dictionary<string, object> {
            { "Subject", "My First Post" },
            { "Body", "My awesome Post." }
        }
    }, LogSuccess, LogFailure);
}

在本示例中,客户端手动报告自定义 ForumPostEvent(这当前不对应于 PlayFab 或支持的合作伙伴中的任何自动事件)

我们将使用 PlayStream 规则计算玩家以这种方式报告论坛文章的次数。

要求:游戏必须已经 在发布此类事件,Game Manager GUI 才允许您创建基于其触发的规则。

转到 Game Manager

  • 导航到您的游戏
  • 选择 Automation
  • 转到 Rules
  • 选择 New Rule

Game Manager - automation - new rule

下面,我们逐步评估此示例中的 New Rule

  • title.6195.ForumPostEvent
    • 6195 是本教程中使用的游戏。 您的 titleId 将与您自己的游戏相匹配。
    • ForumPostEvent 是此示例案例代码中使用的事件名称。
    • 仅当您的游戏最近已发布至少一个 ForumPostEvent 时,才可以使用此行。
  • 本例中使用了最少的 Conditions
    • 但是,它确实 演示了筛选自定义事件的方法(Body 键是否映射到 Body 字典中的 Invalid string)。
    • 筛选器是可选的,并且应该从规则中删除不相关的玩家。
  • 在本例中,选择的 Actions 将统计计数器递增 1。
    • 要求:必须在 Game Manager 的排行榜下定义 Forum Posts 统计数据。

在 Game Manager 的 PlayStream Debugger(如下所示)中,可以看到触发器已生效。

Game Manager - PlayStream - debugger - event trigger

可以看到,自定义的 ForumPostEvent 会自动触发我们在 Actions 下为新规则设置的统计数据。

高级:CloudScript 操作

PlayFab 中的许多内置操作都非常简单,可能无法为您提供所需的全部功能。 这就是我们允许您使用 CloudScript 完全自定义操作逻辑的原因。

下面,编辑 Rule

  • 删除 Condition
  • Action 设置为 Execute CloudScript
  • 选择 Save Action 按钮。

Game Manager - automation - edit rule

现在,如果我们发布新的 ForumPostEvent,将看到 CloudScript 执行。

Game Manager - PlayStream - debugger - CloudScript 执行

编写 CloudScript 以响应 PlayStream 规则是我们的将 CloudScript 操作与 PlayStream 配合使用教程中介绍的一个高级主题。