/execute làm gì?
Lệnh /execute chạy một lệnh khác trong khi thay đổi người thực thi, vị trí và cách thức chạy, và tùy chọn thêm điều kiện. Trình tạo này xâu chuỗi các lệnh con theo đúng thứ tự để bạn không bao giờ nhầm lẫn cú pháp nữa.
Cách xây dựng chuỗi lệnh execute
- Thêm các lệnh con theo thứ tự bạn cần. Mỗi lệnh con sẽ sửa đổi ngữ cảnh thực thi cho tất cả những gì theo sau.
- Cấu hình từng lệnh con: bộ chọn entity, tọa độ, điều kiện và so sánh score.
- Đặt lệnh run: lệnh cuối cùng sẽ thực thi với ngữ cảnh đã sửa đổi, ở cuối chuỗi.
- Sao chép chuỗi đã lắp ráp và dán vào trò chuyện hoặc khối lệnh.
Phần khó là cú pháp. Một chuỗi lệnh có thể dễ dàng vượt quá 200 ký tự, và một từ khóa đặt sai vị trí có thể làm hỏng toàn bộ lệnh. Trình tạo này loại bỏ rủi ro đó bằng các menu thả xuống, trường nhập và bản xem trước trực tiếp.
Giải thích các lệnh con của execute
| Subcommand | What it changes |
|---|---|
| as | Entity thực thi (ai) |
| at | Vị trí, xoay và chiều không gian |
| positioned | Chỉ vị trí |
| rotated | Chỉ xoay |
| facing | Xoay để đối mặt một điểm hoặc entity |
| align | Căn chỉnh vị trí theo lưới khối |
| anchored | Điểm neo (mắt hoặc chân) |
| in | Chiều không gian |
| on | Chọn một mối quan hệ entity |
| if / unless | Thực thi có điều kiện |
| store | Lưu result hoặc success vào dữ liệu |
| run | Lệnh cuối cùng để thực thi |
Lệnh con sửa đổi
as thay đổi người thực thi thành các thực thể đã chọn, at di chuyển vị trí thực thi đến chúng, positioned và rotated đặt trực tiếp vị trí và xoay, facing nhắm vào một điểm hoặc thực thể, align căn chỉnh vào lưới khối, anchored chọn mắt hoặc chân, in thay đổi chiều, và on chọn một mối quan hệ thực thể.
Lệnh con điều kiện
`if` và `unless` kiểm tra một điều kiện và chỉ tiếp tục chuỗi lệnh khi điều kiện đó được thỏa mãn. Các kiểm tra có sẵn bao gồm `entity`, `block`, `blocks`, `data`, `score`, `loaded`, `predicate`, `biome` và `function` trên Java, và `entity`, `block`, `blocks` và `score` trên Bedrock.
`store` (Chỉ dành cho Java Edition)
`store result` và `store success` lưu kết quả đầu ra của lệnh cuối cùng vào một `score`, `block entity`, `entity NBT`, `command storage` hoặc `bossbar`. Bedrock không có các lệnh con `store`.
Thứ tự quan trọng
Các lệnh con chạy từ trái sang phải. Khi `as` hoặc `at` chọn nhiều thực thể, phần còn lại của chuỗi lệnh sẽ phân nhánh một lần cho mỗi thực thể, ví dụ như `execute as @a run say Hi` chạy cho mọi người chơi cùng một lúc.
Ví dụ phổ biến
Nói xin chào với tư cách mọi người chơi: `execute as @a run say Hello`
Triệu hồi sét đánh vào zombie trên cỏ: `execute as @e[type=zombie] at @s if block ~ ~-1 ~ minecraft:grass_block run summon lightning_bolt`
Lưu máu người chơi dưới dạng `score`: `execute store result score @s health run data get entity @s Health`
Câu hỏi thường gặp
Tại sao lệnh `execute` của tôi không hoạt động?
Chuỗi lệnh phải kết thúc bằng một lệnh con `run` hoặc một điều kiện, `run` chỉ có thể xuất hiện một lần ở cuối cùng, và cú pháp đã thay đổi giữa các phiên bản. Nếu một khối lệnh báo `unparseable`, hãy so sánh chuỗi lệnh của bạn với các ví dụ trên wiki cho phiên bản của bạn.
Bedrock có thể sử dụng `store` không?
Không. `store`, `on`, `summon`, `data`, `biome`, `predicate`, `function` và `loaded` chỉ dành cho Java. Trình tạo này sẽ ẩn chúng khi Bedrock được chọn.
Làm thế nào để tôi chạy một lệnh cho mọi người chơi?
Sử dụng `execute as @a run <command>`. Lệnh con `as` chọn mọi người chơi và chuỗi lệnh chạy một lần cho mỗi thực thể được chọn.
Sự khác biệt giữa `as` và `at` là gì?
`as` thay đổi người thực thi (executor), `at` thay đổi vị trí thực thi (position). Sử dụng `as` để tác động lên các thực thể và `at` để tác động tại vị trí của chúng, hoặc kết hợp cả hai: `execute as @e at @s run summon lightning_bolt`.
Tôi có cần quyền operator không?
Java yêu cầu cấp độ quyền 2 (một khối lệnh hoặc một op). Bedrock yêu cầu bật cheat trong cài đặt thế giới.
maxCommandForkCount trong Minecraft là gì?
gamerule max_command_forks mặc định là 65,536 và giới hạn số lượng ngữ cảnh thực thi mà một lệnh /execute duy nhất có thể tạo ra. Nếu as @e chọn nhiều entity hơn giới hạn, lệnh sẽ thất bại. max_command_sequence_length, cũng mặc định là 65,536, giới hạn tổng số lệnh trong một chuỗi hoặc hàm.