Event Flow 共享状态

用户记忆(User Memory)

记住不重复的参与者,在后续消息中检查他们,随机抽出获奖者,并准确重置您想清除的列表,而不会将平台角色变成永久全局状态。

简体中文

一个命名记忆,多种工具

一个 用户记忆(User Memory) 状态节点拥有一组隔离的人员。每个 Remember、Forget、Check、Draw 或 Clear 节点都选择该状态节点。需要单独列表时,再创建一个 User Memory 节点,例如,一个用于“点赞过直播”,另一个用于“参加了赠品抽奖”。
青绿色实线:接下来运行此事件 紫色虚线:此节点使用该记忆

将紫色小侧边菱形拖到 User Memory 节点上,或在节点属性中按名称选择记忆。操作在内部存储状态节点的 ID。选择记忆会高亮所有链接操作,删除它会在断开这些链接前发出警告。

Event Flow 画布,显示 Remember User 和 User Is Remembered 通过紫色虚线链接到 Prize Draw Entrants 记忆
一个真实的 SSApp 流程,包含两名已记忆的参与者。事件路径保持青绿色;共享状态引用为紫色虚线。

进行设置

  1. 拖动 状态节点 → 用户记忆(State Nodes → User Memory) 到画布上。
  2. 根据其管理的列表为它命名,例如 Heart Me 合格用户(Heart Me Eligible), 点赞过直播(Liked Stream),或 抽奖参与者(Prize Draw Entrants).
  3. 选择 此次应用会话 或 跨重启保存(Save across restarts).
  4. 添加所需的检查和操作,然后使用侧面的菱形或下拉菜单,将每个节点链接到命名记忆。
  5. 使用青绿色连线连接普通事件路径,并使用 测试流程(Test Flow) 在开播前使用两个不同的用户名。

可用操作

节点功能
记住用户(Remember User)仅添加当前事件的用户一次。重复参与会增加该用户的参与次数,不会添加重复抽奖条目。
用户已被记住(User Is Remembered)当当前消息属于所选记忆中的某人时,返回 true 的触发器/检查。
忘记用户(Forget User)仅移除当前事件的用户。
随机选择用户(Pick Random User)选择一名不重复的已记忆用户。可以选择移除获奖者,使其无法再次获奖。
清除所有用户(Clear All Users)仅清空所选的 User Memory 对象。
重置状态节点(Reset State Node)当 User Memory 是所选重置目标时,也会清空该记忆。
User Memory 节点属性,显示当前两名用户和 Save across restarts
中心报告当前不重复用户数量,并管理持久化/重置设置。
身份规则: 用户以平台加用户 ID 为键。显示的用户名仅作为回退值。没有用户身份的匿名或汇总事件会被安全地忽略。

实用方案

TikTok Heart Me 或 Team Member → ? TTS

使用礼物事件记住发送者;不要试图将单个礼物行变成永久“会员”角色。

TikTok gift event + “Heart Me” match → AND → Remember User ···→ [Heart Me Eligible]
? command + TikTok source + (TikTok Team Member OR User Is Remembered) → AND → Speak Text ? command + NOT TikTok source → AND ────────────────────────────────→ Speak Text
  • 对于 TikTok Team/Fan 状态,选择 User Role → TikTok Team Member。它直接读取传入的 TikTok 徽章/等级数据;不需要 Main Chat Overlay 的“treat as members”显示设置。
  • 礼物载荷因捕获模式而异。一种常见设置为 Event Type → Other: gift 加上 Message Contains: Heart Me。在 Test Flow/Event Reference 中确认捕获的行,并匹配来源提供的最明确字段。
  • 两个分支仍然都要求开头的 ?,这样其他平台允许所有人发声,而 TikTok 仍受限制。

记住点赞或参与过的人

Event Type → Other: liked → Remember User ···→ [Liked Stream]

当捕获的点赞/参与事件指明某个用户时,此功能有效。汇总点赞数量更新不能识别个人,因此无法记忆。若要独立检查或抽奖,请为每种参与类型使用单独的记忆。

每人一份资格的抽奖

Message Starts With !enter → Remember User ···→ [Prize Draw Entrants] Moderator + Message Starts With !draw → AND → Pick Random User ···→ [Prize Draw Entrants] Moderator + Message Starts With !resetdraw → AND → Clear All Users ···→ [Prize Draw Entrants]

启用 移除选中的用户(Remove selected user) 当获奖者不应被重复抽中时。在公开直播中,请使用版主、管理员或精确用户检查来保护抽奖/重置命令。

下载参与和抽奖示例流程

重置和持久化

手动

使用 立即清除所有用户(Clear All Users Now) 在构建/测试期间,在记忆属性中使用。

从流程中

使用 清除所有用户(Clear All Users) 或通用的 重置状态节点(Reset State Node),选择确切的记忆。

自动

在不活跃、直播开始或直播停止时清除。值为 0 会禁用不活跃重置。

跨重启

会话记忆在应用启动时为空。保存的记忆会重新加载,直到该特定记忆被清除。

User Memory 重置属性,包含不活跃、直播开始、直播停止和 Clear All Users Now
每个重置选项都属于这一项命名记忆。其他 User Memory 节点不受影响。
“清除全部”有范围限制: 它指所选记忆内的所有用户,而不是全部 Event Flow 状态、所有抽奖或 Social Stream Ninja 中的每项记忆。

使用抽奖和参与输出

记忆操作向消息添加字段,以便下游 Show Text、Send Message、webhook 或自定义操作使用。

字段含义
userMemoryName所选记忆的名称。
userMemoryCount当前记住的不重复用户。
userMemoryAdded仅当 Remember User 添加了新的不重复用户时为 true。
userMemoryEntryCount该人参与了多少次。
selectedUser抽中用户的显示名称。
selectedUserId, selectedUserSource抽中用户的稳定 ID 和平台。
selectedUserParticipationCount获奖者记录的参与次数。
selectedUserReasonRemember User 保存的最新原因模板。
selectedUserRemoved抽奖是否移除了选中的获奖者。
Test Flow 结果,显示选中的抽奖用户和一名剩余参与者
实际 Test Flow 输出:Alice 被选中,且因为启用了“remove selected”,记忆计数降为一。

故障排除

缺少虚线选择操作并选取一个 User Memory 目标,或将其紫色侧边菱形拖到记忆中心。
同一个人出现两次检查事件是否来自不同平台。平台 + 用户 ID 会有意创建不同身份。
点赞没有添加任何人该事件可能没有用户身份。检查事件载荷;汇总计数无法成为具名参与者。
保存的记忆又回来了对该记忆使用 Clear All Users。更改流程或清除另一个记忆不会擦除它。
任何人都能运行抽奖/重置命令在操作之前的 AND 门中加入 User Role: moderator/admin(或精确的主持用户检查)。