Bảng chiến lợi phẩm: nhóm, lượt quay và sự khác biệt giữa mục và chức năng
Một bảng chiến lợi phẩm không rơi ra gì thường là do trọng số hoặc điều kiện của nó bị đặt sai cấp. Dưới đây là những gì mỗi cấp lồng kiểm soát, và các chức năng đáng biết.
JSON bảng chiến lợi phẩm có bốn cấp độ sâu và mỗi cấp độ mang một ý nghĩa khác nhau. Hầu hết các trường hợp "bảng của tôi không rơi ra gì" là do một điều kiện được gắn sai một cấp so với vị trí đáng lẽ nó phải thuộc về.
Bốn cấp độ
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 nhóm (pool) là số lần nhóm đó thực hiện rút. Một nhóm vớirolls: 3sẽ rút ba lần từ cùng một danh sách mục (entry list).weighttrên một mục (entry) là tương đối trong nhóm của nó. Trọng số không cần phải tổng hợp thành bất kỳ giá trị nào; một mục có trọng số 10 so với một mục có trọng số 90 sẽ xuất hiện một phần mười số lần.conditionstồn tại ở mọi cấp độ và mang ý nghĩa khác nhau. Trên một nhóm, chúng kiểm soát toàn bộ lượt rút. Trên một mục, chúng kiểm soát tùy chọn đó. Trên một chức năng (function), chúng chỉ kiểm soát việc sửa đổi.
Đảm bảo một vật phẩm rơi ra cần nhóm riêng
Trọng số không thể đảm bảo bất cứ điều gì, vì một nhóm chỉ chọn chính xác một mục cho mỗi lượt quay. Một bảng phải luôn rơi ra một Bản đồ cộng với chiến lợi phẩm ngẫu nhiên cần hai nhóm:
"pools": [
{ "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "minecraft:filled_map" } ] },
{ "rolls": { "min": 2, "max": 4 }, "entries": [ … weighted list … ] }
]
Nhóm một có một mục duy nhất, vì vậy nó luôn tạo ra mục đó. Nhóm hai quay 2–4 lần từ danh sách có trọng số.
Các chức năng đáng biết
| Chức năng | Công dụng |
|---|---|
set_count | một số cố định hoặc một phạm vi uniform |
enchant_randomly | phù phép ngẫu nhiên, tùy chọn từ một danh sách |
enchant_with_levels | như một Bàn phù phép ở N cấp độ — bao gồm kho báu nếu được yêu cầu |
set_components | tên tùy chỉnh, truyền thuyết, bất kỳ thành phần dữ liệu nào |
looting_enchant | thưởng thêm cho mỗi cấp độ Nhặt (Looting); chỉ dành cho bảng thực thể |
set_damage | độ bền dưới dạng phân số, vì vậy 0.5 là mòn một nửa |
furnace_smelt | dạng đã nung chảy khi mob chết trong Hoả (Fire) |
enchant_with_levels và enchant_randomly không thể thay thế cho nhau. Cái đầu tiên mô phỏng một Bàn phù phép và tuân thủ chi phí cấp độ; cái thứ hai chọn tùy ý và có thể tạo ra các kết hợp mà trò chơi sẽ không bao giờ tạo ra.
Các điều kiện mà mọi người thường tìm kiếm
random_chance— một xác suất cố địnhrandom_chance_with_enchanted_bonus— cơ hội hiện đại có tính đến Nhặt (Looting)killed_by_player— lý do vật phẩm hiếm của bạn không bao giờ xuất hiện từ cái chết do rơientity_properties— kiểm tra loại, trạng thái hoặc trang bị của nạn nhânmatch_tool— kiểm tra công cụ được sử dụng, cho bảng khối
Kiểm tra mà không cần xây dựng lại thế giới
/loot give @s loot my_pack:chests/treasure
thả bảng trực tiếp vào kho đồ của bạn. /loot spawn, /loot insert <pos> và /loot replace bao gồm các vị trí khác. Điều này nhanh hơn nhiều so với việc đặt rương và tải lại, và đây là cách duy nhất hợp lý để kiểm tra phân phối trọng số.
Xây dựng các bảng đa nhóm với các chức năng và điều kiện được gắn ở cấp độ phù hợp trong Trình xây dựng bảng chiến lợi phẩm nâng cao.