01 · ภาพรวมเริ่มต้น
เครื่องมือสถานะมีออบเจ็กต์ที่เก็บค่า และการดำเนินการที่อ่านหรือเปลี่ยนค่านั้น:
โหนดสถานะ
- อยู่บนแคนวาส
- เก็บค่า (ON/OFF จำนวน เวลา หรือผู้ใช้)
- Gate, Counter และ Rate Limiter ทำงานในเส้นทางเหตุการณ์ปกติได้
- User Memory เป็นศูนย์กลางร่วมที่โหนดอื่นอ้างอิง
แอ็กชันสถานะ
- วางไว้ในลำดับถัดไป
- อ่านหรือเปลี่ยนค่าที่เก็บไว้ (ตั้ง ON เพิ่ม +1 จดจำ สุ่ม รีเซ็ต ฯลฯ)
- อยู่ที่ใดก็ได้ในโฟลว์ เพียงเลือกชื่อโหนดที่ตรงกัน
02 · สวิตช์เปิด/ปิด (Gate)
สวิตช์เป็นตัวกั้นแบบบูลีน เมื่อ ON ข้อความจะผ่าน เมื่อ OFF โฟลว์จะหยุดที่โหนดนี้
เหมาะกับ
- คูลดาวน์สำหรับคำสั่งแชต
- สวิตช์ด้วยตนเอง (เปิด/ปิดโอเวอร์เลย์)
- ช่วงพักการทำงาน (หยุดฟีเจอร์ระหว่างฉาก BRB)
แอ็กชันหลัก
Set Gate State— สลับ ON หรือ OFFReset State Node— กลับสู่ค่าเริ่มต้น (โดยปกติคือ ON)
ตัวอย่าง: คูลดาวน์ 15 วินาที
ขั้นตอนการสร้าง
- วางโหนดสวิตช์ ตั้งชื่อ “helloCooldown” และตั้งค่าเริ่มต้นเป็น ON
- เชื่อมทริกเกอร์ → สวิตช์ → แอ็กชัน
- หลังแอ็กชันของคุณ ให้เพิ่ม ตั้งสถานะเกต (Set Gate State) (OFF) ที่อ้างอิง “helloCooldown”
- เพิ่ม หน่วงเวลา (Delay) โหนด (15 วินาที)
- เพิ่มอีกหนึ่ง ตั้งสถานะเกต (Set Gate State) (ON) สำหรับ “helloCooldown”
03 · ตัวนับ
ตัวนับติดตามค่าตัวเลขข้ามข้อความ โดยเพิ่มอัตโนมัติเมื่อข้อความผ่าน และคุณปรับค่าด้วยแอ็กชันได้เอง
กรณีใช้งาน
- ผู้ส่งแชตทุกคนที่ N จะกระตุ้นรางวัล
- ติดตามความคืบหน้าไปยังเป้าหมายชุมชน
- เก็บคะแนนที่ใช้ผ่านคำสั่ง
แอ็กชัน
Increment Counter— เพิ่มหรือลดจำนวนที่กำหนดเองSet Counter Value— เปลี่ยนไปยังตัวเลขที่ระบุReset State Node— กลับสู่ค่าเริ่มต้นของตัวนับ
ตัวอย่าง: ฉลองทุก 5 ข้อความ
ภายในโหนด 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.
เส้นทึบสีเขียวอมฟ้าส่งเหตุการณ์ เส้นประสีม่วงแสดงว่าการดำเนินการใช้หน่วยความจำร่วมใด User Memory แต่ละอันมีจำนวน โหมดเก็บถาวร และนโยบายรีเซ็ตของตัวเอง การล้างรายการหนึ่งจึงไม่กระทบอีกอัน
06 · ชุดตัวอย่างแก้โจทย์
เลือกสถานการณ์แล้วทำตามขั้นตอน
คูลดาวน์คำสั่ง
- โหนดสวิตช์ชื่อ “commandCooldown”
- ทริกเกอร์ → สวิตช์ → ตอบกลับ
- Set Gate OFF → หน่วงเวลา → Set Gate ON
- เพิ่มข้อความแชต “อยู่ระหว่างคูลดาวน์” ที่เอาต์พุต false หากต้องการ
ของแจกจำนวนจำกัด
- ตัวนับเริ่มต้น 0 เป้าหมาย 3
- เพิ่มหลังการใช้รางวัลแต่ละครั้ง
- เมื่อ value ≥ 3 ให้แยกไปที่ “ขออภัย หมดแล้ว”
- ใช้แอ็กชัน Reset เมื่อจบสตรีม
สวิตช์สำหรับผู้ชม
- สวิตช์ชื่อ “overlayToggle”
!overlay onคำสั่ง → Set Gate ON!overlay offคำสั่ง → Set Gate OFF- ทริกเกอร์โอเวอร์เลย์ทั้งหมดผ่านสวิตช์
ตัวอย่างแผนผังโฟลว์
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เพื่อให้โอเวอร์เลย์ทราบว่าเหตุใดสาขาจึงทำงาน - ส่งออกรูปแบบที่ใช้งานได้เป็นเทมเพลต เพื่อให้ทีมของคุณนำเข้าซ้ำภายหลัง