คู่มือใช้งานโหนดสถานะ

โหนดสถานะทำให้ Social Stream Ninja มีความจำ ใช้สร้างคูลดาวน์ สวิตช์ ตัวนับ ตัวจำกัดอัตรา รายชื่อผู้เข้าร่วม และการสุ่มรางวัล เพื่อให้ระบบอัตโนมัติทำงานอย่างคาดการณ์ได้

01 · ภาพรวมเริ่มต้น

เครื่องมือสถานะมีออบเจ็กต์ที่เก็บค่า และการดำเนินการที่อ่านหรือเปลี่ยนค่านั้น:

โหนดสถานะ

  • อยู่บนแคนวาส
  • เก็บค่า (ON/OFF จำนวน เวลา หรือผู้ใช้)
  • Gate, Counter และ Rate Limiter ทำงานในเส้นทางเหตุการณ์ปกติได้
  • User Memory เป็นศูนย์กลางร่วมที่โหนดอื่นอ้างอิง

แอ็กชันสถานะ

  • วางไว้ในลำดับถัดไป
  • อ่านหรือเปลี่ยนค่าที่เก็บไว้ (ตั้ง ON เพิ่ม +1 จดจำ สุ่ม รีเซ็ต ฯลฯ)
  • อยู่ที่ใดก็ได้ในโฟลว์ เพียงเลือกชื่อโหนดที่ตรงกัน
จำไว้: เพิ่มโหนดสถานะก่อน ตั้งชื่อไม่ซ้ำ แล้วเลือกจากการดำเนินการที่เกี่ยวข้องแต่ละรายการ หากไม่มีโหนดหลัก แอ็กชันสถานะจะไม่มีสิ่งให้อัปเดต

02 · สวิตช์เปิด/ปิด (Gate)

สวิตช์เป็นตัวกั้นแบบบูลีน เมื่อ ON ข้อความจะผ่าน เมื่อ OFF โฟลว์จะหยุดที่โหนดนี้

เหมาะกับ

  • คูลดาวน์สำหรับคำสั่งแชต
  • สวิตช์ด้วยตนเอง (เปิด/ปิดโอเวอร์เลย์)
  • ช่วงพักการทำงาน (หยุดฟีเจอร์ระหว่างฉาก BRB)

แอ็กชันหลัก

  • Set Gate State— สลับ ON หรือ OFF
  • Reset State Node— กลับสู่ค่าเริ่มต้น (โดยปกติคือ ON)

ตัวอย่าง: คูลดาวน์ 15 วินาที

!hello ──▶ สวิตช์ (ON?) ─▶ ส่งคำตอบ ─▶ Set Gate: OFF ─▶ หน่วง 15s ─▶ Set Gate: ON

ขั้นตอนการสร้าง

  1. วางโหนดสวิตช์ ตั้งชื่อ “helloCooldown” และตั้งค่าเริ่มต้นเป็น ON
  2. เชื่อมทริกเกอร์ → สวิตช์ → แอ็กชัน
  3. หลังแอ็กชันของคุณ ให้เพิ่ม ตั้งสถานะเกต (Set Gate State) (OFF) ที่อ้างอิง “helloCooldown”
  4. เพิ่ม หน่วงเวลา (Delay) โหนด (15 วินาที)
  5. เพิ่มอีกหนึ่ง ตั้งสถานะเกต (Set Gate State) (ON) สำหรับ “helloCooldown”

03 · ตัวนับ

ตัวนับติดตามค่าตัวเลขข้ามข้อความ โดยเพิ่มอัตโนมัติเมื่อข้อความผ่าน และคุณปรับค่าด้วยแอ็กชันได้เอง

เพิ่มอัตโนมัติ: ทุกครั้งที่เพย์โหลดผ่านโหนด Counter จะเพิ่ม 1 (เว้นแต่คุณหยุดไว้ด้วยตัวเลือก “Only count when gate is true”)

กรณีใช้งาน

  • ผู้ส่งแชตทุกคนที่ N จะกระตุ้นรางวัล
  • ติดตามความคืบหน้าไปยังเป้าหมายชุมชน
  • เก็บคะแนนที่ใช้ผ่านคำสั่ง

แอ็กชัน

  • Increment Counter— เพิ่มหรือลดจำนวนที่กำหนดเอง
  • Set Counter Value— เปลี่ยนไปยังตัวเลขที่ระบุ
  • Reset State Node— กลับสู่ค่าเริ่มต้นของตัวนับ

ตัวอย่าง: ฉลองทุก 5 ข้อความ

ข้อความใดก็ได้ ─▶ Counter (ชื่อ: hype5) ─▶ Condition (value % 5 === 0?) ─▶ เล่นการฉลอง

ภายในโหนด Condition ให้เปรียบเทียบ state.hype5.value หรือใช้ตัวเลือกในตัว “Trigger when value matches Target” จากคุณสมบัติโหนด Counter

04 · ตัวจำกัดอัตรา (Throttle)

ตัวจำกัดอัตราจดจำเวลาและปฏิเสธเหตุการณ์ใหม่ จนกว่าจะเป็นไปตามอัตราที่คุณกำหนด

เหมาะเมื่อคุณต้องการ

  • “รับผู้เข้าร่วมจับรางวัลเพียงห้ารายการต่อนาที”
  • “เรียก API หนึ่งครั้งต่อ 10 วินาที”
  • “ทิ้งการแจ้งเตือนหากโอเวอร์เลย์ยังทำงานอยู่”

การตั้งค่า

  • ตั้งจำนวนเหตุการณ์สูงสุดที่อนุญาต
  • เลือกช่วงเวลา (วินาที)
  • ตัดสินใจว่าจะเข้าคิวหรือทิ้งเหตุการณ์ที่เกินจำนวน
ข้อควรทราบ: ตัวจำกัดอัตราไม่รีเซ็ตอัตโนมัติเมื่อคุณแก้โฟลว์ ใช้ Reset State Node หากต้องการเริ่มจากสถานะว่างระหว่างทดสอบ

05 · หน่วยความจำผู้ใช้

User Memory เก็บรายชื่อบุคคลไม่ซ้ำหนึ่งรายการที่มีชื่อ จดจำผู้ใช้เมื่อเข้าร่วม ตรวจสอบรายการเมื่อมีข้อความภายหลัง ลบบุคคล เลือกผู้ชนะสุ่ม หรือล้างเฉพาะรายการนั้น

เหมาะกับ

  • สิทธิ์เข้าร่วมตามของขวัญหรือป้าย
  • จดจำผู้ชมที่กดถูกใจ ลงชื่อ หรือเข้าร่วม
  • สุ่มรางวัลจากรายชื่อไม่ซ้ำ
  • ใช้รายการแยกสำหรับแต่ละแคมเปญ

การดำเนินการ

  • Remember User และ Forget User.
  • User Is Remembered.
  • Pick Random User.
  • Clear All Users หรือ Reset State Node.
ทริกเกอร์เข้าร่วม ──▶ Remember User ······▶ User Memory: Entrants คำสั่งสุ่ม ───────────▶ Pick Random User ···▶ User Memory: Entrants คำสั่งรีเซ็ต ──────────▶ Clear All Users ·····▶ User Memory: Entrants

เส้นทึบสีเขียวอมฟ้าส่งเหตุการณ์ เส้นประสีม่วงแสดงว่าการดำเนินการใช้หน่วยความจำร่วมใด User Memory แต่ละอันมีจำนวน โหมดเก็บถาวร และนโยบายรีเซ็ตของตัวเอง การล้างรายการหนึ่งจึงไม่กระทบอีกอัน

ดูคู่มือเฉพาะเรื่อง คู่มือ User Memory เพื่อดูภาพหน้าจอที่ตรวจสอบแล้ว โฟลว์สุ่มที่ดาวน์โหลดได้ สิทธิ์เข้าร่วม TikTok ตัวอย่างการเข้าร่วม และรายละเอียดรีเซ็ต

06 · ชุดตัวอย่างแก้โจทย์

เลือกสถานการณ์แล้วทำตามขั้นตอน

คูลดาวน์คำสั่ง

  1. โหนดสวิตช์ชื่อ “commandCooldown”
  2. ทริกเกอร์ → สวิตช์ → ตอบกลับ
  3. Set Gate OFF → หน่วงเวลา → Set Gate ON
  4. เพิ่มข้อความแชต “อยู่ระหว่างคูลดาวน์” ที่เอาต์พุต false หากต้องการ

ของแจกจำนวนจำกัด

  1. ตัวนับเริ่มต้น 0 เป้าหมาย 3
  2. เพิ่มหลังการใช้รางวัลแต่ละครั้ง
  3. เมื่อ value ≥ 3 ให้แยกไปที่ “ขออภัย หมดแล้ว”
  4. ใช้แอ็กชัน Reset เมื่อจบสตรีม

สวิตช์สำหรับผู้ชม

  1. สวิตช์ชื่อ “overlayToggle”
  2. !overlay on คำสั่ง → Set Gate ON
  3. !overlay off คำสั่ง → Set Gate OFF
  4. ทริกเกอร์โอเวอร์เลย์ทั้งหมดผ่านสวิตช์

ตัวอย่างแผนผังโฟลว์

ทริกเกอร์ ─▶ สวิตช์ (overlayToggle) ─▶ ถ้า ON → แสดงโอเวอร์เลย์ └─false─▶ แจ้งผู้ดูแลแชต “โอเวอร์เลย์ปิดอยู่”
ใช้รางวัล ─▶ Counter ticketsSold ├─value < 50 ─▶ อนุมัติการใช้รางวัล └─value ≥ 50 ─▶ ปฏิเสธ + คืนคะแนน

07 · การแก้ปัญหาและคำถามที่พบบ่อย

อาการ สาเหตุที่เป็นไปได้ วิธีแก้
แอ็กชัน Set Gate State บันทึกไม่ได้ ไม่มีโหนดสวิตช์ที่ตรงกัน (หรือชื่อไม่ตรงกัน) เพิ่มโหนดสวิตช์ก่อน แล้วตรวจสอบว่ารายการแบบเลื่อนลงอ้างอิงโหนดนั้น
ตัวนับไม่เพิ่มเลย โฟลว์ข้ามโหนดตัวนับ หรือเกตเป็น false ตรวจสอบว่าเส้นทริกเกอร์ผ่านตัวนับและเอาต์พุตเกตเป็น true
ตัวจำกัดอัตราบล็อกทุกอย่างไม่สิ้นสุด ช่วงเวลาเข้มงวดเกินไป หรือมีสถานะค้างจากการทดสอบ ผ่อนข้อจำกัดและวางแอ็กชัน Reset State Node ก่อนทดสอบใหม่
การดำเนินการ User Memory ไม่มีเส้นประเชื่อม ยังไม่ได้เลือกหน่วยความจำเป้าหมาย เลือกหน่วยความจำที่มีชื่อในคุณสมบัติการดำเนินการ หรือลากจุดเชื่อมสีม่วงด้านข้างไปยังหน่วยความจำ
ปุ่มคู่มือเปิดไม่ได้ กำลังทำงานในส่วนขยายที่ยังไม่ได้อัปเดตทรัพยากร web_accessible ตรวจสอบให้แน่ใจว่า actions/state-nodes-guide.html ถูกประกาศให้รวมผ่าน manifest แล้วโหลดส่วนขยายใหม่

รายการตรวจสอบการทดสอบ

  • ใช้เครื่องมือ “Send Test Event” ของ Event Flow เพื่อจำลองคำสั่ง
  • ลดคูลดาวน์ชั่วคราว (2 วินาที) หรือลดเป้าหมายตัวนับขณะตรวจสอบ
  • รีเซ็ตโหนดสถานะระหว่างการทดสอบ เพื่อไม่ให้อ่านข้อมูลเก่า
  • ตั้งชื่อสาขา (เช่น “false → อยู่ระหว่างคูลดาวน์”) เพื่อให้ไล่ดูเส้นทางได้ง่าย

08 · ขั้นตอนถัดไป

ใช้โหนดสถานะร่วมกับเครื่องมืออื่นของ Event Flow:

  • ใช้เกตตรรกะ (AND/OR/NOT) ก่อนสวิตช์ เพื่อกำหนดว่าใครสลับค่าได้
  • เก็บเมทาดาทาที่อิงสถานะไว้ภายใต้ meta เพื่อให้โอเวอร์เลย์ทราบว่าเหตุใดสาขาจึงทำงาน
  • ส่งออกรูปแบบที่ใช้งานได้เป็นเทมเพลต เพื่อให้ทีมของคุณนำเข้าซ้ำภายหลัง
ทดลองต่อไป! คู่มือใหม่ คู่มือ Event Flow ใช้คู่กับคู่มือนี้ เพื่อให้คุณเข้าใจทั้งส่วนตรรกะและส่วนสถานะ