جداول الغنائم: المجمّعات والرميات والفرق بين المدخلات والدوال
جدول الغنائم الذي لا يُسقط شيئًا تكون أوزانه أو شروطه عادةً في الطبقة الخطأ. إليك ما تتحكم فيه كل طبقة من طبقات التداخل، والدوال التي تستحق المعرفة.
ملف JSON الخاص بجدول الغنائم مكوّن من أربع طبقات، وكل طبقة تعني شيئًا مختلفًا. كل حالة تقريبًا من نوع "جدولي لا يُسقط شيئًا" سببها شرط موضوع على بُعد طبقة واحدة من مكانه المقصود.
الطبقات الأربع
table
└── pools[] how many independent draws
└── entries[] what can come out of this draw
└── functions[] modify the item that came out
rollsعلى المجمّع (pool) تحدد عدد مرات السحب من ذلك المجمّع. مجمّع واحد بقيمةrolls: 3يسحب ثلاث مرات من نفس قائمة المدخلات.weightعلى المدخل (entry) نسبي داخل مجمّعه. الأوزان لا يلزمها أن تجمع أي قيمة معينة؛ فمدخل وزنه 10 مقابل آخر وزنه 90 يظهر بمعدل عُشر المرات.conditionsموجودة في كل طبقة وتعني أشياء مختلفة. على المجمّع تُقيّد السحب بأكمله. وعلى المدخل تُقيّد ذلك الخيار وحده. وعلى الدالة تُقيّد التعديل فقط.
ضمان إسقاط عنصر يتطلب مجمّعًا خاصًا به
الأوزان لا تضمن شيئًا، لأن المجمّع يختار مدخلًا واحدًا بالضبط لكل رمية. الجدول الذي يجب أن يُسقط دائمًا خريطة مع غنائم عشوائية يحتاج إلى مجمّعين:
"pools": [
{ "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "minecraft:filled_map" } ] },
{ "rolls": { "min": 2, "max": 4 }, "entries": [ … weighted list … ] }
]
المجمّع الأول له مدخل واحد، لذا يُنتجه دائمًا. والمجمّع الثاني يسحب من 2 إلى 4 مرات من القائمة الموزونة.
الدوال التي تستحق المعرفة
| الدالة | وظيفتها |
|---|---|
set_count | رقم ثابت أو نطاق uniform |
enchant_randomly | تعويذات عشوائية، اختياريًا من قائمة |
enchant_with_levels | كطاولة السحر عند N من المستويات — أي تعويذة ما لم يضيّقها options |
set_components | اسم مخصص، وصف، أي مكوّن بيانات |
enchanted_count_increase | مكافأة لكل مستوى من تعويذة (النهب)؛ جداول الكيانات فقط |
set_damage | المتانة ككسر، لذا 0.5 يعني نصف مستهلك |
furnace_smelt | الشكل المصهور عندما يموت الكائن في نار |
enchant_with_levels وenchant_randomly غير قابلتين للتبادل. الأولى تحاكي طاولة السحر وتراعي تكاليف المستويات؛ والثانية تختار اعتباطًا وقد تُنتج تركيبات لا يولّدها اللعبة أبدًا.
الشروط التي يلجأ إليها الناس
random_chance— احتمال ثابتrandom_chance_with_enchanted_bonus— الاحتمال الحديث المراعي للنهبkilled_by_player— سبب عدم ظهور إسقاطك النادر أبدًا عند الموت بالسقوطentity_properties— فحص نوع الضحية أو حالتها أو عتادهاmatch_tool— فحص الأداة المستخدمة، لجداول الكتل
الاختبار دون إعادة بناء العالم
/loot give @s loot my_pack:chests/treasure
يُسقط الجدول مباشرة في حقيبتك. و/loot spawn و/loot insert <pos> و/loot replace تغطي المواضع الأخرى. هذا أسرع بكثير من وضع الصناديق وإعادة التحميل، وهو الطريقة المعقولة الوحيدة لفحص توزيعات الأوزان.
ابنِ جداول متعددة المجمّعات مع ربط الدوال والشروط في الطبقة الصحيحة في منشئ جداول الغنائم المتقدم.