เอฟเฟกต์หน้าจอและกองของรางวัล: สองครึ่งของหีบเดียวกัน
น้ำหนักในกองของรางวัลเป็นตัวกำหนดว่าอะไรจะดรอป ส่วนคำสั่ง /posteffect เป็นตัวกำหนดว่าเราจะรู้สึกอย่างไร ทั้งสองอย่างล้วนเป็นตัวเลขที่ตรวจสอบได้ก่อนเขียนดาต้าแพ็ก
กองของรางวัลแบบถ่วงน้ำหนักกับคำสั่ง /posteffect มักถูกเขียนในไฟล์ที่ต่างกันโดยคนละคน และมันล้มเหลวแบบเดียวกันเสมอ: ตัวเลขไม่เคยถูกตรวจสอบก่อนที่ดาต้าแพ็กจะถูกปล่อยออกไป ทั้งสองอย่างตรวจสอบได้ง่ายและควรทำก่อน
กองของรางวัลคือเลขคณิต ไม่ใช่ความรู้สึก
รายการในกองของรางวัลมี weight และโอกาสของแต่ละรายการคือน้ำหนักของมันหารด้วยผลรวมของน้ำหนักทั้งหมดในกองนั้น ไม่มีการปรับมาตรฐานแบบซ่อนเร้นและไม่มีค่าขั้นต่ำ — น้ำหนัก 0 หมายความว่ารายการนั้นจะไม่ถูกสุ่มเลย และกองที่มีน้ำหนักรวมเท่าใดก็ตามก็ทำงานแบบเดียวกัน กับดักอยู่ที่การผสมจำนวนครั้งที่สุ่ม: กองที่มี rolls: 2 จะสุ่มสองครั้ง ดังนั้นรายการที่มีน้ำหนักหนึ่งในสี่จะปรากฏในหีบราวครึ่งหนึ่ง ไม่ใช่หนึ่งในสี่
| รายการ | น้ำหนัก | สัดส่วนต่อการสุ่มหนึ่งครั้ง |
|---|---|---|
| แท่งเหล็ก | 20 | 20 ÷ 40 = 50% |
| แท่งทอง | 12 | 30% |
| เพชร | 8 | 20% |
เพิ่มรายการที่สี่ด้วยน้ำหนัก 40 แล้วตัวเลขทุกตัวข้างบนจะลดลงครึ่งหนึ่ง นั่นคืองานปรับสมดุลทั้งหมด และนี่คือเหตุผลว่าทำไมคำว่า "อัตราดรอปเพชรรู้สึกผิดปกติ" เกือบทุกครั้งคือน้ำหนักที่คุณลืมปรับสเกล
ตารางของรางวัลเป็นหนึ่งในตระกูลรีจิสทรีที่ใหญ่ที่สุดในเกม — ข้อมูลเวอร์ชัน 26.2 ที่เว็บไซต์นี้วัดไว้ระบุว่ามี 1355 ตาราง — ดังนั้นกองที่คุณคิดเป็นตัวเลขไม่ได้ ก็คือกองที่คุณจะไม่มีวันปรับจูนด้วยมือจนเสร็จ
/posteffect คือคำสั่งยุคสแนปช็อต
/posteffect ของ Java เป็นคำสั่งในยุคสแนปช็อตและไม่มีอยู่ในบิลด์รีลีสปัจจุบัน และไม่มีคำสั่งเทียบเท่าใน Bedrock เลย Bedrock จัดการการ tint หน้าจอผ่านรีซอร์สแพ็กและระบบสั่นกล้องแทน ดังนั้นบทเรียน Java ตรงนี้จะพอร์ตไปใช้ไม่ได้
คำสั่งนี้รับตัวระบุเอฟเฟกต์และค่าความแรง โดยค่าความแรงเป็น float ไม่ใช่เปอร์เซ็นต์ เอฟเฟกต์เป็นรีจิสทรีขนาดเล็ก — 40 รายการในข้อมูล 26.2 — ดังนั้นรายการตัวระบุจึงสั้นพอที่จะตรวจสอบด้วยมือแทนการเดา การระบุเอฟเฟกต์ที่ไม่มีอยู่จะล้มเหลวแบบเงียบในบางบิลด์สแนปช็อต ซึ่งเป็นเหตุผลที่สองที่ต้องตรวจสอบก่อนคอมมิต
จุดที่ทั้งสองมาบรรจบกัน
หีบที่ดรอปไอเทมหายากกับหีบที่ดรอปไอเทมธรรมดาไม่ควรดูเหมือนกัน สุ่มกองของรางวัลก่อนเพื่อดูการกระจายตัวจริง แล้วจึงเลือกค่าความแรงของเอฟเฟกต์หน้าจอให้ตรงกับความถี่ที่ผู้เล่นจะได้เห็นจริง ๆ การทำสลับลำดับจะได้เอฟเฟกต์ดราม่าที่ทำงานตลอดเวลา ซึ่งอ่านเป็นความรกไปเลย
สำหรับงานสร้างเมือง โดยทั่วไปหมายถึงใช้เอฟเฟกต์ความแรงต่ำกับกองของรางวัลธรรมดา และเก็บความแรงสูงไว้สำหรับรายการที่มีน้ำหนักน้อยที่สุด — อัตราส่วนเดียวกับที่คุณคำนวณไว้แล้ว
สร้างคำสั่ง /posteffect และสุ่มกองของรางวัลแบบถ่วงน้ำหนักได้ที่ เครื่องมือเอฟเฟกต์หน้าจอและของรางวัล