Bảng rơi đồ: pool, lượt rút và sự khác nhau giữa entry với function
Một bảng rơi đồ không rơi ra gì thường là do trọng số hoặc điều kiện bị đặt sai tầng. Dưới đây là những gì mỗi tầng lồng nhau kiểm soát, cùng các function đáng biết.
JSON của bảng rơi đồ có bốn tầng và mỗi tầng mang một ý nghĩa khác nhau. Gần như mọi trường hợp "bảng của tôi chẳng rơi ra gì" đều là do điều kiện bị gắn lệch một tầng so với chỗ đáng lẽ phải đặt.
Bốn tầng
table
└── pools[] how many independent draws
└── entries[] what can come out of this draw
└── functions[] modify the item that came out
rollstrên một pool là số lần pool đó rút. Một pool vớirolls: 3sẽ rút ba lần từ cùng một danh sách entry.weighttrên một entry là trọng số tương đối trong pool của nó. Trọng số không cần cộng lại thành một con số cụ thể nào; một entry có trọng số 10 so với một entry có trọng số 90 sẽ xuất hiện với tần suất bằng một phần mười.conditionstồn tại ở mọi tầng và mang ý nghĩa khác nhau. Trên một pool, chúng chặn toàn bộ lượt rút. Trên một entry, chúng chặn riêng lựa chọn đó. Trên một function, chúng chỉ chặn phần sửa đổi.
Muốn chắc chắn rơi ra thì phải có pool riêng
Trọng số không thể đảm bảo bất cứ điều gì, vì mỗi lượt rút một pool chỉ chọn đúng một entry. Một bảng buộc phải luôn rơi ra một Bản đồ cùng với đồ rơi ngẫu nhiên cần hai pool:
"pools": [
{ "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "minecraft:filled_map" } ] },
{ "rolls": { "min": 2, "max": 4 }, "entries": [ … weighted list … ] }
]
Pool một chỉ có một entry, nên nó luôn tạo ra entry đó. Pool hai rút 2–4 lần từ danh sách có trọng số.
Những function đáng biết
| Function | Công dụng |
|---|---|
set_count | một con số cố định hoặc một khoảng uniform |
enchant_randomly | phù phép ngẫu nhiên, tùy chọn lấy từ một danh sách |
enchant_with_levels | như Bàn phù phép ở N cấp độ — bất kỳ phù phép nào trừ khi options thu hẹp lại |
set_components | tên tùy chỉnh, lore, bất kỳ data component nào |
enchanted_count_increase | cộng thêm theo mỗi cấp độ của một phù phép (Nhặt); chỉ dùng cho bảng thực thể |
set_damage | độ bền theo tỷ lệ, nên 0.5 là đã mòn một nửa |
furnace_smelt | dạng đã nung khi mob chết trong Hoả |
enchant_with_levels và enchant_randomly không thay thế được cho nhau. Cái đầu mô phỏng Bàn phù phép và tuân theo chi phí cấp độ; cái sau chọn tùy ý và có thể tạo ra những tổ hợp mà game sẽ không bao giờ sinh ra.
Những điều kiện người ta hay dùng
random_chance— một xác suất cố địnhrandom_chance_with_enchanted_bonus— xác suất có tính đến Nhặt theo kiểu hiện đạikilled_by_player— lý do món đồ hiếm của bạn không bao giờ xuất hiện khi chết do ngãentity_properties— kiểm tra loại, trạng thái hoặc trang bị của nạn nhânmatch_tool— kiểm tra dụng cụ đã dùng, dành cho bảng khối
Thử nghiệm mà không cần dựng lại thế giới
/loot give @s loot my_pack:chests/treasure
đưa thẳng bảng vào túi đồ của bạn. /loot spawn, /loot insert <pos> và /loot replace bao quát các vị trí còn lại. Cách này nhanh hơn hẳn so với đặt rương rồi tải lại, và đây là cách duy nhất hợp lý để kiểm tra phân bố trọng số.
Hãy dựng bảng nhiều pool với các function và điều kiện được gắn đúng tầng trong Advanced Loot Table Builder.