Tabele łupów: pule, losowania i różnice między wpisami a funkcjami
Tabela łupów, która nic nie upuszcza, zazwyczaj ma źle ustawione wagi lub warunki. Oto, co kontroluje każdy poziom zagnieżdżenia, oraz funkcje, które warto znać.
JSON tabeli łupów ma cztery poziomy głębokości, a każdy poziom oznacza coś innego. Prawie każde „moja tabela nic nie upuszcza” to warunek dołączony o jeden poziom dalej, niż powinien.
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ędne w ramach jego puli. Wagi nie muszą sumować się do żadnej konkretnej wartości; wpis z wagą 10 w stosunku do wpisu z wagą 90 pojawi się dziesięć razy rzadziej.conditionsistnieją na każdym poziomie i oznaczają różne rzeczy. W puli kontrolują całe losowanie. We wpisie kontrolują tę jedną opcję. W funkcji kontrolują tylko modyfikację.
Zagwarantowanie upuszczenia wymaga własnej puli
Wagi nie mogą niczego zagwarantować, ponieważ pula wybiera dokładnie jeden wpis na losowanie. Tabela, która zawsze musi upuścić Mapę plus losowy łup, 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 generuje. Pula druga losuje 2–4 razy z ważonej listy.
Funkcje, które warto znać
| Funkcja | Działanie |
|---|---|
set_count | stała liczba lub zakres uniform |
enchant_randomly | losowe zaklinania, opcjonalnie z listy |
enchant_with_levels | jak Stół do zaklinania na N poziomach — zawiera skarby, jeśli zażądano |
set_components | niestandardowa nazwa, lore, dowolny komponent danych |
looting_enchant | bonus za poziom Grabieży (Looting); tylko dla tabel bytów |
set_damage | trwałość jako ułamek, więc 0.5 to połowa zużycia |
furnace_smelt | forma przetopiona, gdy mob ginie w Ogniu |
enchant_with_levels i enchant_randomly nie są zamienne. Pierwsza naśladuje Stół do zaklinania i uwzględnia koszty poziomów; druga wybiera arbitralnie i może generować kombinacje, których gra nigdy by nie stworzyła.
Warunki, po które ludzie sięgają
random_chance— stałe prawdopodobieństworandom_chance_with_enchanted_bonus— nowoczesna szansa uwzględniająca Grabież (Looting)killed_by_player— powód, dla którego rzadki przedmiot nigdy nie pojawia się po śmierci od upadkuentity_properties— sprawdź typ, stan lub wyposażenie ofiarymatch_tool— sprawdź użyte narzędzie, dla tabel bloków
Testowanie bez przebudowy świata
/loot give @s loot my_pack:chests/treasure
upuszcza tabelę bezpośrednio do twojego ekwipunku. /loot spawn, /loot insert <pos> i /loot replace obejmują inne miejsca docelowe. Jest to znacznie szybsze niż umieszczanie skrzyń i ponowne ładowanie, i jest to jedyny rozsądny sposób na sprawdzenie rozkładu wag.
Buduj tabele wielopulowe z funkcjami i warunkami dołączonymi na odpowiednim poziomie w Zaawansowanym Kreatorze Tabel Łupów.