The Best Resource for Minecraft
The Best Resource for Minecraft

جدول‌های لوت: poolها، rollها و تفاوت بین entryها و functionها

جدول‌های لوت: poolها، rollها و تفاوت بین entryها و functionها

یک جدول لوت که چیزی دراپ نمی‌کند، معمولاً وزن‌ها یا شرط‌های آن در لایه اشتباهی قرار دارند. در اینجا مشخص شده که هر سطح تودرتو چه چیزی را کنترل می‌کند و کدام تابع‌ها ارزش شناختن دارند.

فایل JSON جدول لوت 4 سطح عمق دارد و هر سطح معنای متفاوتی می‌دهد. تقریباً هر مشکل «جدول من چیزی دراپ نمی‌کند» به خاطر شرطی است که یک لایه دورتر از جایی که باید باشد قرار گرفته است.

چهار سطح

table
└── pools[]          how many independent draws
    └── entries[]    what can come out of this draw
        └── functions[]   modify the item that came out
  • rolls روی یک pool مشخص می‌کند که آن pool چند بار قرعه‌کشی می‌کند. یک pool با rolls: 3 draws

سه بار از همان لیست entry انتخاب می‌کند.

  • weight روی یک entry، نسبت به pool خودش سنجیده می‌شود. نیازی نیست مجموع وزن‌ها به

مقدار خاصی برسد؛ یک entry با وزن 10 در برابر یکی با وزن 90، یک‌دهم دفعات انتخاب می‌شود.

  • conditions در هر سطحی وجود دارند و معانی متفاوتی دارند. روی یک pool مانع از

کل قرعه‌کشی می‌شوند. روی یک entry مانع همان یک گزینه می‌شوند. روی یک function فقط مانع اعمال تغییرات می‌شوند.

تضمین کردن یک دراپ نیازمند pool اختصاصی خودش است

وزن‌ها نمی‌توانند چیزی را تضمین کنند، زیرا یک pool به ازای هر roll دقیقاً یک entry را انتخاب می‌کند. جدولی که باید همیشه یک نقشه به همراه لوت تصادفی دراپ کند به دو pool نیاز دارد:

"pools": [
  { "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "minecraft:filled_map" } ] },
  { "rolls": { "min": 2, "max": 4 }, "entries": [ … weighted list … ] }
]

pool اول دارای یک entry تکی است، بنابراین همیشه آن را تولید می‌کند. pool دوم بین 2–4 بار از لیست وزن‌دار roll می‌زند.

تابع‌های کاربردی و مهم

Functionعملکرد
set_countیک عدد ثابت یا یک uniform range
enchant_randomlyانچنت‌های تصادفی، به صورت اختیاری از یک لیست
enchant_with_levelsمانند یک enchanting table در N سطح — شامل treasure در صورت درخواست
set_componentsنام سفارشی، lore، هر کامپوننت داده
looting_enchantپاداش به ازای هر سطح Looting؛ فقط جدول‌های entity
set_damagedurability به صورت کسری، بنابراین 0.5 is half-worn
furnace_smeltحالت پخته‌شده زمانی که ماب هنگام آتش گرفتن می‌میرد

enchant_with_levels and enchant_randomly are not interchangeable. The first mimics an enchanting table and respects level costs; the second picks arbitrarily and can produce combinations the game would never generate.

شرط‌های پرکاربرد

  • random_chance — a flat probability
  • random_chance_with_enchanted_bonus — the modern Looting-aware chance
  • killed_by_player — the reason your rare drop never appears from a fall death
  • entity_properties — check the victim's type, state or equipment
  • match_tool — check the tool used, for block tables

تست کردن بدون ساخت مجدد جهان

/loot give @s loot my_pack:chests/treasure

جدول را مستقیماً در inventory شما دراپ می‌کند. /loot spawn, /loot insert <pos> and /loot replace cover the other placements. This is far faster than placing chests and reloading, and it is the only sane way to check weight distributions.

جدول‌های چند pool را همراه با تابع‌ها و شرط‌ها در لایه مناسب بسازید در سازنده پیشرفته جدول لوت.

امتحان ابزار: Advanced Loot Table Builder →