一个命名记忆,多种工具
一个 用户记忆(User Memory) 状态节点拥有一组隔离的人员。每个 Remember、Forget、Check、Draw 或 Clear 节点都选择该状态节点。需要单独列表时,再创建一个 User Memory 节点,例如,一个用于“点赞过直播”,另一个用于“参加了赠品抽奖”。
青绿色实线:接下来运行此事件
紫色虚线:此节点使用该记忆
将紫色小侧边菱形拖到 User Memory 节点上,或在节点属性中按名称选择记忆。操作在内部存储状态节点的 ID。选择记忆会高亮所有链接操作,删除它会在断开这些链接前发出警告。
进行设置
- 拖动 状态节点 → 用户记忆(State Nodes → User Memory) 到画布上。
- 根据其管理的列表为它命名,例如 Heart Me 合格用户(Heart Me Eligible), 点赞过直播(Liked Stream),或 抽奖参与者(Prize Draw Entrants).
- 选择 此次应用会话 或 跨重启保存(Save across restarts).
- 添加所需的检查和操作,然后使用侧面的菱形或下拉菜单,将每个节点链接到命名记忆。
- 使用青绿色连线连接普通事件路径,并使用 测试流程(Test Flow) 在开播前使用两个不同的用户名。
可用操作
| 节点 | 功能 |
|---|---|
| 记住用户(Remember User) | 仅添加当前事件的用户一次。重复参与会增加该用户的参与次数,不会添加重复抽奖条目。 |
| 用户已被记住(User Is Remembered) | 当当前消息属于所选记忆中的某人时,返回 true 的触发器/检查。 |
| 忘记用户(Forget User) | 仅移除当前事件的用户。 |
| 随机选择用户(Pick Random User) | 选择一名不重复的已记忆用户。可以选择移除获奖者,使其无法再次获奖。 |
| 清除所有用户(Clear All Users) | 仅清空所选的 User Memory 对象。 |
| 重置状态节点(Reset State Node) | 当 User Memory 是所选重置目标时,也会清空该记忆。 |
身份规则: 用户以平台加用户 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 会禁用不活跃重置。
跨重启
会话记忆在应用启动时为空。保存的记忆会重新加载,直到该特定记忆被清除。
“清除全部”有范围限制: 它指所选记忆内的所有用户,而不是全部 Event Flow 状态、所有抽奖或 Social Stream Ninja 中的每项记忆。
使用抽奖和参与输出
记忆操作向消息添加字段,以便下游 Show Text、Send Message、webhook 或自定义操作使用。
| 字段 | 含义 |
|---|---|
userMemoryName | 所选记忆的名称。 |
userMemoryCount | 当前记住的不重复用户。 |
userMemoryAdded | 仅当 Remember User 添加了新的不重复用户时为 true。 |
userMemoryEntryCount | 该人参与了多少次。 |
selectedUser | 抽中用户的显示名称。 |
selectedUserId, selectedUserSource | 抽中用户的稳定 ID 和平台。 |
selectedUserParticipationCount | 获奖者记录的参与次数。 |
selectedUserReason | Remember User 保存的最新原因模板。 |
selectedUserRemoved | 抽奖是否移除了选中的获奖者。 |
故障排除
| 缺少虚线 | 选择操作并选取一个 User Memory 目标,或将其紫色侧边菱形拖到记忆中心。 |
|---|---|
| 同一个人出现两次 | 检查事件是否来自不同平台。平台 + 用户 ID 会有意创建不同身份。 |
| 点赞没有添加任何人 | 该事件可能没有用户身份。检查事件载荷;汇总计数无法成为具名参与者。 |
| 保存的记忆又回来了 | 对该记忆使用 Clear All Users。更改流程或清除另一个记忆不会擦除它。 |
| 任何人都能运行抽奖/重置命令 | 在操作之前的 AND 门中加入 User Role: moderator/admin(或精确的主持用户检查)。 |