ทำความเข้าใจส่วนประกอบตรรกะใน Workshop
Eggy Party Workshop ใช้ Eggy Code สำหรับการเขียนสคริปต์ ช่วยให้สามารถสร้างแผนที่แบบโต้ตอบพร้อมระบบตรรกะที่ซับซ้อนได้ ต่างจากเครื่องมือแก้ไขแบบลากวางทั่วไป Eggy Code มอบการเขียนโปรแกรมที่แท้จริงผ่านตัวแปร (Variables), ตัวจุดชนวน (Triggers) และบล็อกตรรกะที่ขับเคลื่อนด้วยเหตุการณ์ (Event-driven logic blocks)
Workshop รองรับตัวแปร 6 ประเภท ได้แก่: integer (จำนวนเต็ม เช่น ค่าการนับถอยหลัง), float (ทศนิยม), boolean (สถานะจริง/เท็จ), string (ข้อมูลข้อความ), vector3 (พิกัด 3 มิติ) และ position (การอ้างอิงพื้นที่) ตัวแปรประเภท Integer มีความสำคัญอย่างยิ่งสำหรับกลไกการนับถอยหลัง
สำหรับไอเทมพรีเมียมและของตกแต่ง การเติมเหรียญ Eggy Party ผ่าน BitTopup ช่วยให้คุณเข้าถึง Eggy Coins ได้อย่างรวดเร็ว ปลอดภัย พร้อมราคาที่คุ้มค่า
ข้อกำหนดในการตั้งชื่อตัวแปร:
- ใช้ได้เฉพาะตัวอักษร ตัวเลข และเครื่องหมายขีดล่าง (underscore) เท่านั้น
- ห้ามมีตัวอักษรพิเศษหรือเว้นวรรค
- ห้ามเริ่มต้นด้วยตัวเลขหรือเครื่องหมายขีดล่าง
- ต้องไม่ซ้ำกันภายในขอบเขตของแต่ละตัวจุดชนวนหรือองค์ประกอบนั้นๆ
ส่วนประกอบสำคัญสำหรับการสร้างตัวนับเวลา
การสร้างตัวนับเวลาถอยหลังต้องใช้ส่วนประกอบหลัก 3 ส่วน ได้แก่: ตัวแปรสำหรับเก็บค่าเวลา, ตัวจุดชนวนเพื่อรันตรรกะตามช่วงเวลา และวิดเจ็ตข้อความเพื่อแสดงผลการนับถอยหลัง
Event Trigger Volumes (พื้นที่จุดชนวนเหตุการณ์) จะตรวจจับการปรากฏตัวของผู้เล่นและเริ่มเหตุการณ์ต่างๆ พื้นที่จุดชนวนรูปทรงกรวย (Cone) และครึ่งวงกลม (Half Sphere) ให้ผลลัพธ์ดีที่สุด ควรตั้งค่าขอบเขตการตรวจจับ (Detection Scope) เป็นประเภทเอนทิตีผู้เล่น (Player entity type) และวางตำแหน่งศูนย์กลางตัวจุดชนวนไว้เหนือพื้นดิน 1 หน่วย Eggy เพื่อการเปิดใช้งานที่แม่นยำ

แนวทางปฏิบัติที่ดีที่สุดในการกำหนดขนาดตัวจุดชนวน:
- ตัวจุดชนวนบนพื้น: เส้นผ่านศูนย์กลาง 2-3 หน่วย Eggy
- ตัวจุดชนวนบนผนัง: เส้นผ่านศูนย์กลาง 1.5-2 หน่วย Eggy
- ควรเว้นระยะห่างระหว่างตัวจุดชนวนอย่างน้อย 2 หน่วย Eggy เพื่อป้องกันความขัดแย้งจากการซ้อนทับกัน
ตัวแปรส่วนกลาง (Global variables) จะสามารถใช้งานได้ในทุกตัวจุดชนวนทั่วทั้งแผนที่ ซึ่งเหมาะสำหรับตัวนับถอยหลังที่หลายองค์ประกอบต้องอ้างอิงถึง ส่วนตัวแปรเฉพาะที่ (Local variables) จะมีอยู่เฉพาะในกลุ่มตัวจุดชนวนของตัวเองเท่านั้น มีประโยชน์สำหรับการคำนวณชั่วคราว
การสร้างสคริปต์ตัวนับเวลาถอยหลัง
เข้าถึง Eggy Code ผ่านเมนู "เพิ่มเติม" (More) > เลือกยูนิตเป้าหมาย > แก้ไข Eggy Code (Edit Eggy Code) ซึ่งจะเปิดหน้าจอการเขียนสคริปต์แบบภาพ (Visual Scripting)
การสร้างตัวแปรตัวนับเวลา:
- สร้างตัวแปรประเภท integer ชื่อ
timeRemainingโดยกำหนดค่าเริ่มต้นเป็น 30 - กำหนดขอบเขตเป็นแบบส่วนกลาง (Global) เพื่อให้เข้าถึงได้ทั่วทั้งแผนที่

- เพิ่มบล็อก "กำหนดเนื้อหาข้อความ" (Sets Text Content) ให้กับวิดเจ็ตข้อความเพื่อแสดงผล
- ใช้บล็อก "แปลงเป็นข้อความ" (Converts to String) เพื่อเปลี่ยนค่าจำนวนเต็มให้เป็นข้อความที่แสดงผลได้
การปรับใช้ตรรกะการนับถอยหลัง:
- สร้างตัวจุดชนวนเหตุการณ์แบบทำซ้ำ (Repeating event trigger) โดยกำหนดช่วงเวลาทุกๆ 1 วินาที
- เพิ่มบล็อกลดค่า (Decrement) ที่ลบค่า 1 ออกจาก
timeRemaining - เชื่อมต่อค่าที่อัปเดตแล้วเข้ากับวิดเจ็ตข้อความโดยใช้บล็อก "แปลงเป็นข้อความ" (Converts to String)
- ตั้งค่าการตรวจสอบเงื่อนไขเมื่อ
timeRemainingมีค่าเท่ากับศูนย์ - สั่งให้แสดงเอฟเฟกต์เฉลิมฉลองเมื่อการนับถอยหลังสิ้นสุดลง
อ้างอิงตัวแปรจากหมวดหมู่ "ตัวแปร" (Variables) ในเมนูบล็อก โดยคุณสามารถลากบล็อกตัวแปรแต่ละตัวไปวางในลำดับตรรกะ การดำเนินการทางคณิตศาสตร์ หรือฟังก์ชันการแสดงผลได้
การกำหนดค่าส่วนประกอบการแสดงผล
วิดเจ็ตข้อความจะทำหน้าที่แสดงค่าการนับถอยหลัง หลังจากเพิ่มบล็อก "กำหนดเนื้อหาข้อความ" (Sets Text Content) แล้ว ให้เชื่อมต่อกับ timeRemaining ผ่านบล็อก "แปลงเป็นข้อความ" (Converts to String) ซึ่งจำเป็นอย่างยิ่งเนื่องจากวิดเจ็ตข้อความไม่สามารถแสดงค่าจำนวนเต็มได้โดยตรง

วางตำแหน่งการแสดงผลให้อยู่ในระดับสายตาของผู้เล่นที่ยืนอยู่ โดยปกติจะสูงจากพื้นประมาณ 3-4 หน่วย Eggy ในตำแหน่งส่วนกลางของแผนที่ พื้นที่ที่มีผู้เล่นหนาแน่นอย่างจุดเกิด (Spawn points) จะช่วยให้มองเห็นได้ชัดเจนที่สุด
การปรับแต่งการแสดงผล:
- วางวิดเจ็ตข้อความซ้อนกันหลายชั้นเพื่อสร้างเอฟเฟกต์เงา
- ใช้สีที่ตัดกันเพื่อให้สามารถอ่านได้ง่ายบนพื้นหลังที่หลากหลาย
- ปรับขนาดตัวอักษรตามระยะการมองเห็น
สำหรับทรัพยากรเพิ่มเติมใน Workshop การซื้อเหรียญ Eggy ราคาถูก ที่ BitTopup จะช่วยให้คุณเข้าถึงไอเทมที่จำเป็นทั้งหมดพร้อมการส่งมอบที่รวดเร็ว
กลไกตัวนับเวลาขั้นสูง
นอกเหนือจากการนับถอยหลังพื้นฐานแล้ว การปรับใช้ขั้นสูงยังรวมถึงสถานะตัวนับเวลาหลายสถานะและพฤติกรรมตามเงื่อนไข เช่น ตัวนับเวลาหยุดนิ่ง 30 วินาทีสามารถรีเซ็ตตำแหน่งผู้เล่นได้ ในขณะที่การรีเซ็ตอัตโนมัติ 60 วินาทีจะทำให้แผนที่กลับสู่สถานะเริ่มต้น
การนับถอยหลังหลายขั้นตอน:
- สร้างตัวแปร integer แยกกันสำหรับนาทีและวินาที
- ใช้การดำเนินการ Modulo เพื่อแปลงวินาทีทั้งหมดให้อยู่ในรูปแบบ MM:SS
- เปลี่ยนสีข้อความเมื่อถึงช่วงเวลาวิกฤต (เช่น 10 วินาทีสุดท้ายเป็นสีเหลือง, 5 วินาทีสุดท้ายเป็นสีแดง)
- เพิ่มเอฟเฟกต์การเต้นพัลส์โดยการสลับคุณสมบัติขนาด (Scale) ของวิดเจ็ตข้อความอย่างรวดเร็ว
ระยะเวลา inputLocked 0.5 วินาทีจะช่วยป้องกันการเปิดใช้งานตัวจุดชนวนซ้ำซ้อนที่อาจทำให้การนับถอยหลังไม่ตรงกัน การล็อคนี้ช่วยให้มั่นใจว่าแต่ละวินาทีจะถูกลดค่าลงเพียงครั้งเดียวเท่านั้น เพื่อรักษาความแม่นยำของเวลาในเซสชันผู้เล่นหลายคน
การดำเนินการเพิ่มค่า (Increment) จะทำงานในทางตรงกันข้าม โดยใช้การเพิ่มค่าตัวแปร integer ทีละ 1 เมื่อเกิดเหตุการณ์เฉพาะเพื่อสร้างนาฬิกาจับเวลา ตัวติดตามคะแนน หรือการแสดงเวลาที่ผ่านไป
การจัดการขีดจำกัดความหนาแน่น (Intensity Limits) ใน Workshop
ทุกองค์ประกอบใน Workshop จะใช้คะแนนความหนาแน่น (Intensity points) จากงบประมาณของคุณ ขีดจำกัดพื้นฐานเริ่มต้นที่ 18,000 คะแนน และจะเพิ่มเป็น 21,000 เมื่อมีคะแนนช่างฝีมือ (Craftsman Points) ถึง 1,000 และสูงสุดที่ 25,000 คะแนนเมื่อถึง 10,000 คะแนนช่างฝีมือ
การใช้ความหนาแน่นสำหรับตัวนับเวลาพื้นฐาน:
- ตัวแปร Integer: 50-100 คะแนน
- ตัวจุดชนวนแบบทำซ้ำ: 200-300 คะแนน
- วิดเจ็ตข้อความ: 150-250 คะแนน
- บล็อกตรรกะเงื่อนไข: บล็อกละ 50-100 คะแนน
เพิ่มประสิทธิภาพความหนาแน่นโดยการรวมตัวจุดชนวนเข้าด้วยกัน ใช้ตัวแปรซ้ำในหลายระบบ และลบองค์ประกอบที่ไม่ได้ใช้ออกก่อนเผยแพร่ หมั่นตรวจสอบมาตรวัดความหนาแน่นเพื่อไม่ให้เกินขีดจำกัด
การทดสอบและการแก้ไขจุดบกพร่อง
การทดสอบคนเดียวจะช่วยให้เห็นฟังก์ชันพื้นฐาน: ตัวนับถอยหลังเริ่มที่ค่าที่ถูกต้องหรือไม่? มันลดลงอย่างราบรื่นทุกวินาทีหรือไม่? มันกระตุ้นเหตุการณ์ที่ถูกต้องเมื่อถึงศูนย์หรือไม่? ควรทดสอบรอบการนับถอยหลังให้ครบถ้วนหลายๆ ครั้งเพื่อยืนยันความเสถียร
การซิงโครไนซ์ในโหมดผู้เล่นหลายคนจำเป็นต้องทดสอบกับผู้เล่นจริง ตัวนับถอยหลังต้องแสดงค่าที่เหมือนกันสำหรับผู้เล่นทุกคนในเวลาเดียวกัน
ข้อผิดพลาดของตัวนับเวลาที่พบบ่อย:
- ตัวนับข้ามตัวเลข: ช่วงเวลาของตัวจุดชนวนแบบทำซ้ำไม่ถูกต้อง ให้ตรวจสอบการตั้งค่าเวลา 1.0 วินาที
- หน้าจอแสดงคำว่า "undefined": ลืมใส่บล็อก "แปลงเป็นข้อความ" (Converts to String) ระหว่างตัวแปรและวิดเจ็ตข้อความ
- ตัวนับเวลาไม่เริ่มทำงาน: เงื่อนไขการเปิดใช้งานตัวจุดชนวนไม่ครบถ้วน ให้ตรวจสอบการตั้งค่าขอบเขตการตรวจจับ (Detection Scope)
- ตัวนับเวลาหลายตัวทำงานพร้อมกัน: ตัวนับเวลาก่อนหน้าไม่ได้ถูกรีเซ็ตอย่างถูกต้อง ให้เพิ่มตรรกะการล้างข้อมูล (Cleanup logic)
บทเรียน Eggy Code (Tutorials) มีคำแนะนำอย่างเป็นทางการ: บทเรียนที่ 02 ครอบคลุมเรื่องบล็อกค่าและประเภทข้อมูลทั่วไป, บทเรียนที่ 03 อธิบายเรื่องบล็อกควบคุมและเงื่อนไข, บทเรียนที่ 04 รายละเอียดเกี่ยวกับตัวแปร และบทเรียนที่ 05 แนะนำเรื่องตัวจุดชนวน
การเพิ่มประสิทธิภาพสำหรับโหมดผู้เล่นหลายคน
ประสิทธิภาพของเครือข่ายเป็นสิ่งสำคัญในสภาพแวดล้อมที่มีผู้เล่นหลายคน ลดการรับส่งข้อมูลเครือข่ายโดยการอัปเดตการแสดงผลเฉพาะเมื่อมีการเปลี่ยนแปลงค่าเท่านั้น แทนที่จะอัปเดตทุกเฟรม
ลดความซับซ้อนของสคริปต์โดยหลีกเลี่ยงการใช้เงื่อนไขซ้อนกันเกินสามชั้น แต่ละชั้นที่ซ้อนเพิ่มขึ้นจะเพิ่มภาระในการประมวลผล ควรปรับโครงสร้างตรรกะให้เรียบง่ายขึ้นโดยใช้การส่งคืนค่าล่วงหน้า (Early returns) หรือแยกกลุ่มตัวจุดชนวน
การจัดการหน่วยความจำ:
- ลบตัวแปรที่ไม่ได้ใช้งาน
- ลบตัวจุดชนวนที่ปิดใช้งานออกให้หมด
- รวมตรรกะที่ซ้ำกันเข้าเป็นกลุ่มตัวจุดชนวนที่ใช้ซ้ำได้
การทดสอบการรับโหลด (Load testing) ด้วยจำนวนผู้เล่นสูงสุดจะช่วยให้เห็นคอขวดของประสิทธิภาพที่มองไม่เห็นในการทดสอบคนเดียว ช่วงเวลาการสร้างสรรค์ New Year Workshop จะเริ่มตั้งแต่วันที่ 1 ม.ค. 00:00 น. ถึง 31 ม.ค. 23:59 น. (UTC+8)
รูปแบบการปรับใช้ในโลกแห่งความเป็นจริง
แผนที่นับถอยหลังปีใหม่ที่ประสบความสำเร็จมักใช้รูปแบบการออกแบบที่ผ่านการพิสูจน์แล้ว เช่น แนวทาง "ลานกลางเมือง" (Central Plaza) ที่วางจอแสดงผลการนับถอยหลังขนาดใหญ่ไว้เป็นจุดเด่นของแผนที่ เพื่อให้ผู้เล่นทุกคนมารวมตัวกันในช่วงวินาทีสุดท้าย
ระบบตัวนับเวลาแบบกระจาย (Distributed timer systems) จะวางจอแสดงผลขนาดเล็กไว้ทั่วแผนที่ เพื่อให้มั่นใจว่าผู้เล่นจะมองเห็นได้ไม่ว่าจะอยู่ตำแหน่งใด วิธีนี้เหมาะสำหรับแผนที่ขนาดใหญ่ที่ผู้เล่นกระจายตัวอยู่ในหลายโซน
องค์ประกอบการนับถอยหลังแบบโต้ตอบช่วยให้ผู้เล่นสามารถกระตุ้นเอฟเฟกต์พิเศษตามช่วงเวลาที่กำหนด เช่น พลุที่ 10 วินาทีสุดท้าย, กระดาษโปรย (Confetti) ที่ 5 วินาทีสุดท้าย และแอนิเมชันเฉลิมฉลองเมื่อถึงศูนย์ เอฟเฟกต์ที่แบ่งเป็นระยะเหล่านี้จะช่วยสร้างความตื่นเต้น
นักสร้างแผนที่ยอดนิยมมักรวมตัวนับถอยหลังเข้ากับระบบความยากที่เพิ่มขึ้นเรื่อยๆ เช่น อุปสรรคจะปรากฏขึ้นหรือหายไปตามช่วงเวลาที่กำหนด เปลี่ยนการดูเวลาแบบเดิมๆ ให้กลายเป็นกลไกการเล่นเกมที่น่าตื่นเต้น
การเผยแพร่แผนที่ตัวนับถอยหลังของคุณ
รายการตรวจสอบก่อนเผยแพร่:
- ตรวจสอบว่าตัวแปรทั้งหมดเริ่มต้นด้วยค่าเริ่มต้นที่ถูกต้อง
- ยืนยันว่าตัวจุดชนวนทำงานได้อย่างเสถียรผ่านการทดสอบหลายรอบ
- ตรวจสอบให้แน่ใจว่าข้อความแสดงผลสามารถอ่านได้ในทุกขนาดหน้าจออุปกรณ์
- ตรวจสอบว่าเหตุการณ์เมื่อนับถอยหลังถึงศูนย์ทำงานได้อย่างถูกต้อง
การส่งแผนที่ Workshop กำหนดให้ผลงานของคุณต้องทำงานภายใต้ขีดจำกัดความหนาแน่นและปฏิบัติตามแนวทางของชุมชน แผนที่ที่เกินความหนาแน่นสูงสุด 25,000 คะแนนจะไม่ผ่านการตรวจสอบ
โปรโมตผลงานของคุณผ่านการแชร์ในเกม ฟอรัมชุมชน และช่องทางโซเชียลมีเดีย การตั้งชื่อที่สื่อความหมายชัดเจนอย่าง New Year Countdown Party Plaza หรือ 2025 Celebration Timer Challenge จะช่วยให้ผู้เล่นเข้าใจจุดประสงค์ของแผนที่ได้ทันที
รวบรวมความคิดเห็นโดยการสังเกตพฤติกรรมผู้เล่นระหว่างการทดสอบ อ่านความคิดเห็นในแผนที่ที่เผยแพร่ และจดบันทึกว่าฟีเจอร์ใดที่ได้รับกระแสตอบรับที่ดี นำข้อมูลเหล่านี้มาปรับปรุงการนับถอยหลังของคุณให้ดียิ่งขึ้น
คำถามที่พบบ่อย (FAQ)
จะสร้างตัวนับเวลาถอยหลังใน Eggy Party Workshop ได้อย่างไร? สร้างตัวแปร integer ชื่อ timeRemaining โดยมีค่าเริ่มต้นเป็น 30 ตั้งค่าตัวจุดชนวนแบบทำซ้ำให้ลดค่าลงทีละ 1 ทุกวินาที และแสดงค่าโดยใช้วิดเจ็ตข้อความร่วมกับบล็อก "แปลงเป็นข้อความ" (Converts to String) เข้าถึงได้ผ่านเมนู "เพิ่มเติม" (More) > แก้ไข Eggy Code (Edit Eggy Code)
ส่วนประกอบตรรกะใดบ้างที่จำเป็นสำหรับการนับถอยหลังปีใหม่? คุณต้องมีตัวแปร integer สำหรับเก็บเวลา, ตัวจุดชนวนเหตุการณ์แบบทำซ้ำที่ตั้งค่าช่วงเวลา 1 วินาที, วิดเจ็ตข้อความสำหรับแสดงผล, บล็อก "แปลงเป็นข้อความ" (Converts to String) สำหรับแปลงค่า และตรรกะเงื่อนไขเพื่อกระตุ้นเอฟเฟกต์เฉลิมฉลองเมื่อนับถอยหลังถึงศูนย์
จะแสดงตัวเลขการนับถอยหลังใน Eggy Party Workshop ได้อย่างไร? เพิ่มบล็อก "กำหนดเนื้อหาข้อความ" (Sets Text Content) ให้กับวิดเจ็ตข้อความ จากนั้นเชื่อมต่อตัวแปร integer ของคุณผ่านบล็อก "แปลงเป็นข้อความ" (Converts to String) เนื่องจากวิดเจ็ตข้อความไม่สามารถแสดงค่าจำนวนเต็มได้โดยตรง การแปลงเป็นข้อความจึงเป็นสิ่งจำเป็น
สคริปต์ตัวนับถอยหลังต้องใช้ตัวแปรอะไรบ้าง? ตัวแปร integer เพียงตัวเดียวก็เพียงพอสำหรับการนับถอยหลังพื้นฐาน กำหนดค่าเริ่มต้นเป็นเวลาที่คุณต้องการ (ปกติคือ 30 หรือ 60 วินาที) ตั้งค่าเป็นตัวแปรส่วนกลาง (Global) เพื่อให้เข้าถึงได้ทั่วแผนที่ และอ้างอิงจากหมวดหมู่ตัวแปร
จะแก้ไขข้อผิดพลาดของตัวนับเวลาในโหมด Workshop ได้อย่างไร? ตรวจสอบว่าตัวจุดชนวนแบบทำซ้ำใช้ช่วงเวลา 1.0 วินาทีพอดี, ยืนยันว่ามีบล็อก "แปลงเป็นข้อความ" (Converts to String) เชื่อมต่อตัวแปรกับวิดเจ็ตข้อความ, ตรวจสอบว่าขอบเขตการตรวจจับ (Detection Scope) ตั้งค่าเป็นประเภทผู้เล่น และตรวจสอบว่าตำแหน่งตัวจุดชนวนอยู่สูงจากพื้น 1 หน่วย Eggy ตามมาตรฐาน
สามารถซิงค์ตัวนับถอยหลังระหว่างผู้เล่นหลายคนใน Eggy Party ได้หรือไม่? ได้ ตัวแปรส่วนกลาง (Global variables) จะซิงโครไนซ์ระหว่างผู้เล่นทุกคนในแผนที่โดยอัตโนมัติ การใช้ขอบเขตส่วนกลางสำหรับ timeRemaining จะช่วยให้ผู้เล่นทุกคนเห็นค่าการนับถอยหลังที่ตรงกัน ทำให้การฉลองปีใหม่เป็นไปอย่างพร้อมเพรียงกัน
พร้อมที่จะสร้างแผนที่ Workshop สุดเจ๋งแล้วหรือยัง? ยกระดับประสบการณ์ Eggy Party ของคุณด้วยไอเทมสุดพิเศษจาก BitTopup พันธมิตรที่ไว้วางใจได้สำหรับการเติมเกม เยี่ยมชม BitTopup วันนี้เพื่อรับข้อเสนอพิเศษ



















