Guides / Commands & Data

/attribute: ค่าพื้นฐานเทียบกับตัวปรับแต่ง และทำไมค่าของคุณถึงรีเซ็ตอยู่เสมอ

การตั้งค่าพื้นฐานนั้นถาวร แต่การตั้งค่าตัวปรับแต่งนั้นไม่ถาวร เว้นแต่คุณจะเลือกการดำเนินการผิดพลาด การดำเนินการทั้งสาม ลำดับการซ้อน และกับดักของช่องสล็อต

/attribute ดูเหมือนเป็นคำสั่งเดียวที่มีสามคำสั่งย่อย แต่จริงๆ แล้วมันคือระบบสองระบบที่แตกต่างกันซึ่งบังเอิญมีชื่อเดียวกัน และการนำมาปะปนกันคือสาเหตุที่ทำให้ค่าต่างๆ กลับไปเป็นค่าเดิมอยู่เสมอ

ค่าพื้นฐานเทียบกับตัวปรับแต่ง

/attribute @s minecraft:max_health base set 40
/attribute @s minecraft:max_health modifier add my_buff 20 add_value
  • base set จะเขียนทับค่าของเอนทิตีเอง มันจะคงอยู่แม้จะมีการโหลดซ้ำ และจะไม่ถูกลบออกโดยสิ่งใดๆ ยกเว้น base set อื่น
  • modifier add จะเพิ่มการปรับเปลี่ยนชั่วคราวเข้าไป มันมี ID และสามารถลบออกได้ด้วย ID นั้น

หากการเปลี่ยนแปลงของคุณหายไปเมื่อเข้าสู่ระบบใหม่ แสดงว่าคุณใช้ตัวปรับแต่งและมีบางอย่างล้างมันออกไป หากการเปลี่ยนแปลงของคุณไม่หายไป แสดงว่าคุณใช้ base set และต้องการ base reset

การดำเนินการทั้งสาม และลำดับการใช้งาน

การดำเนินการทำอะไรใช้งานเมื่อ
add_valueค่า + nอันดับแรก
add_multiplied_baseค่า + (ค่าพื้นฐาน × n)อันดับที่สอง
add_multiplied_totalผลรวมที่กำลังดำเนินการ × (1 + n)อันดับสุดท้าย

ลำดับถูกกำหนดตายตัวและมีความสำคัญ เริ่มจากค่าพื้นฐาน 20 จากนั้น add_value 10 และ add_multiplied_total 0.5:

20 → 30 → 45          not  20 → 30 → 30 + 10 = 40

add_multiplied_base จะคูณค่าพื้นฐานเดิมเสมอ ไม่ใช่ผลรวมที่กำลังดำเนินการ — ซึ่งเป็นเหตุผลว่าทำไมสองค่านี้จึงซ้อนกันแบบบวกเพิ่มแทนที่จะเป็นแบบทบต้น

ID ตัวปรับแต่งเป็นแบบมีเนมสเปซแล้ว

เวอร์ชันเก่าใช้ UUID เวอร์ชันใหม่ใช้ ID แบบมีเนมสเปซ (namespaced id):

/attribute @s minecraft:attack_damage modifier add my_pack:rage 5 add_value

การเพิ่มตัวปรับแต่งตัวที่สองที่มี ID เดียวกันจะแทนที่ตัวแรกแทนที่จะซ้อนกัน นี่คือวิธีที่ตั้งใจไว้สำหรับการรีเฟรชบัฟ — คุณไม่จำเป็นต้องลบมันออกก่อน

ตัวปรับแต่งอุปกรณ์อยู่บนไอเทม ไม่ใช่เอนทิตี

โบนัสความเสียหายของดาบที่ร่ายมนตร์เป็นส่วนประกอบไอเทม (item component) attribute_modifiers และจะใช้งานได้เฉพาะเมื่อไอเทมอยู่ในช่องสล็อตที่ถูกต้อง:

/give @s diamond_sword[attribute_modifiers=[{type:"attack_damage",amount:5,
  operation:"add_value",slot:"mainhand",id:"my:bonus"}]]

slot เป็นสิ่งจำเป็นและเป็นข้อผิดพลาดที่พบบ่อย หากละเว้น ตัวปรับแต่งจะใช้งานได้ในทุกช่องสล็อต ดังนั้นดาบในช่องเก็บของของคุณจะบัฟคุณในขณะที่มันอยู่ในนั้น

ช่องสล็อตที่ถูกต้อง: mainhand, offhand, head, chest, legs, feet, armor, body, any

การอ่านค่ากลับ

/attribute @s minecraft:max_health get

จะคืนค่าพื้นฐาน ไม่ใช่ผลรวมที่แท้จริง หากต้องการรับผลรวมรวมถึงตัวปรับแต่ง ให้ใช้ execute store result บนสกอร์บอร์ดแล้วอ่านค่านั้น

สร้างสิ่งเหล่านี้ — รวมถึงรูปแบบส่วนประกอบไอเทมที่มีการตั้งค่าช่องสล็อต — ได้ใน Entity & Combat Command Builder

ตัวสร้างคำสั่งเอนทิตีและการต่อสู้ →

More guides

Browse all →

กำลังหาเครื่องมือ Minecraft อื่นอยู่ไหม

ชุดเครื่องมือสร้าง ดู และแปลงไฟล์ที่ทำงานในเบราว์เซอร์ ฟรีทั้งหมด