Tabele łupów: pule, losowania i różnica między wpisami a funkcjami
Tabela łupów, która nic nie wypada, zwykle ma wagi lub warunki na niewłaściwym poziomie. Oto co kontroluje każdy poziom zagnieżdżenia i które funkcje warto znać.
JSON tabeli łupów ma cztery poziomy zagnieżdżenia i każdy z nich oznacza coś innego. Niemal każde „moja tabela nic nie wypada" to warunek przypięty o jeden poziom dalej, niż powinien być.
Cztery poziomy
table
└── pools[] how many independent draws
└── entries[] what can come out of this draw
└── functions[] modify the item that came out
rollsw puli określa, ile razy ta pula losuje. Jedna pula zrolls: 3losuje trzy razy z tej samej listy wpisów.weightwe wpisie jest względna w obrębie swojej puli. Wagi nie muszą się do niczego sumować; wpis o wadze 10 wobec wpisu o wadze 90 wypada dziesięć razy rzadziej.conditionsistnieją na każdym poziomie i oznaczają co innego. W puli bramkują całe losowanie. We wpisie bramkują tylko tę jedną opcję. W funkcji bramkują wyłącznie modyfikację.
Zagwarantowanie wypadnięcia wymaga osobnej puli
Wagi niczego nie gwarantują, bo pula wybiera dokładnie jeden wpis na losowanie. Tabela, która musi zawsze wypaść mapę plus losowe łupy, potrzebuje dwóch pul:
"pools": [
{ "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "minecraft:filled_map" } ] },
{ "rolls": { "min": 2, "max": 4 }, "entries": [ … weighted list … ] }
]
Pula pierwsza ma jeden wpis, więc zawsze go produkuje. Pula druga losuje 2–4 razy z listy ważonej.
Funkcje warte poznania
| Funkcja | Robi |
|---|---|
set_count | stałą liczbę albo zakres uniform |
enchant_randomly | losowe zaklęcia, opcjonalnie z listy |
enchant_with_levels | jak Stół do zaklinania na N poziomach — dowolne zaklęcie, o ile options go nie zawęzi |
set_components | własną nazwę, opis, dowolny komponent danych |
enchanted_count_increase | bonus za każdy poziom zaklęcia (Grabież); tylko tabele bytów |
set_damage | wytrzymałość jako ułamek, więc 0.5 to połowa zużycia |
furnace_smelt | postać po przetopieniu, gdy mob zginie w ogniu |
enchant_with_levels i enchant_randomly nie są wymienne. Pierwsza naśladuje Stół do zaklinania i respektuje koszty poziomów; druga wybiera dowolnie i może tworzyć kombinacje, których gra nigdy by nie wygenerowała.
Warunki, po które ludzie sięgają
random_chance— płaskie prawdopodobieństworandom_chance_with_enchanted_bonus— nowoczesna szansa uwzględniająca Grabieżkilled_by_player— powód, dla którego twój rzadki łup nigdy nie wypada po śmierci od upadkuentity_properties— sprawdza typ, stan lub ekwipunek ofiarymatch_tool— sprawdza użyte narzędzie, dla tabel bloków
Testowanie bez przebudowywania świata
/loot give @s loot my_pack:chests/treasure
wrzuca tabelę prosto do twojego ekwipunku. /loot spawn, /loot insert <pos> i /loot replace obsługują pozostałe umiejscowienia. To znacznie szybsze niż stawianie skrzyń i przeładowywanie, i jedyny rozsądny sposób sprawdzania rozkładów wag.
Buduj tabele z wieloma pulami, przypinając funkcje i warunki na właściwym poziomie w Advanced Loot Table Builder.