Efekty ekranowe i pule łupów: dwie połowy jednej skrzyni
Wagi w puli łupów decydują, co wypadnie; komenda /posteffect decyduje, jak to odczujemy. Jedno i drugie to liczby, które można sprawdzić przed napisaniem datapacka.
Ważona pula łupów i komenda /posteffect są zwykle zapisywane w różnych plikach przez różne osoby, a zawodzą w ten sam sposób: liczby nigdy nie zostają sprawdzone, zanim datapack trafi do gry. Jedno i drugie łatwo zweryfikować zawczasu.
Pula łupów to arytmetyka, nie wyczucie
Wpis w puli ma weight, a szansa na dowolny wpis to jego waga podzielona przez sumę wszystkich wag w tej puli. Nie ma tu żadnej ukrytej normalizacji ani minimum — waga 0 oznacza, że wpis nigdy nie wypadnie, a pula, której wagi sumują się do czegokolwiek, zachowuje się tak samo. Pułapką jest mieszanie losowań: pula z rolls: 2 losuje dwukrotnie, więc wpis z jedną czwartą wagi pojawia się w mniej więcej połowie wszystkich skrzyń, a nie w jednej czwartej.
| Wpis | Waga | Udział w jednym losowaniu |
|---|---|---|
| Sztabka żelaza | 20 | 20 ÷ 40 = 50% |
| Sztabka złota | 12 | 30% |
| Diament | 8 | 20% |
Dodaj czwarty wpis o wadze 40 i każda z powyższych liczb zmniejszy się o połowę. Na tym polega całe balansowanie i dlatego „wskaźnik diamentów jest jakiś nie tak” to prawie zawsze waga, której zapomniałeś przeskalować.
Tabele łupów to jedna z większych rodzin rejestrów w grze — dane z 26.3, które mierzy ta strona, wymieniają ich 1447 — więc pula, której nie potrafisz ogarnąć liczbowo, to pula, której nigdy nie dostroisz ręcznie.
/posteffect jest nowe w Java 26.3
/posteffect w Java pojawiło się jako komenda wydania w 26.3 i nie istnieje w 26.2 ani wcześniej. To komenda Java, a Bedrock nie ma niczego o tej nazwie, więc poradnik dla Java tu nie zadziała.
Komenda dodaje lub usuwa efekt ekranowy po identyfikatorze u zestawu graczy — /posteffect add <targets> <effect>, plus remove, clear <targets> i list <target> (jeden gracz). Nie ma argumentu siły: efekt jest włączony albo wyłączony. Klient vanilla dostarcza tylko pięć — blur, creeper, entity_outline, invert i spider — więc lista identyfikatorów jest dość krótka, by sprawdzić ją ręcznie, zamiast zgadywać. Podanie efektu, który nie istnieje, nadal zgłasza sukces, bo serwer tego nie sprawdza — to drugi powód, by zweryfikować przed zapisaniem zmian.
Gdzie te dwie rzeczy się spotykają
Skrzynia, z której wypada rzadki przedmiot, i skrzynia, z której wypada pospolity, nie powinny wyglądać identycznie. Najpierw losuj pulę, by poznać rzeczywisty rozkład, a potem wybierz efekt ekranowy pasujący do tego, jak często gracz faktycznie go zobaczy. Zrobienie tego w odwrotnej kolejności daje efekt dramatyczny, który odpala się bez przerwy, a to czyta się jak szum.
W budowli miejskiej oznacza to zwykle subtelny efekt, taki jak blur, przy pospolitej puli, a dramatyczny, taki jak invert, zarezerwowany dla wpisu o najmniejszej wadze — ten sam stosunek, który już obliczyłeś.
Zbuduj komendę /posteffect i losuj ważoną pulę w Post Effect & Loot Tools.