Guides / Commands & Data

/execute: Vì sao thứ tự as/at lại quan trọng và store hoạt động như thế nào

Hầu hết các chuỗi lệnh execute bị lỗi đều do nhầm lẫn giữa người thực thi lệnh và vị trí thực thi lệnh. Dưới đây là những gì mỗi lệnh con thay đổi, và thứ tự để sửa lỗi đó.

/execute là một lệnh giả vờ là một ngôn ngữ kịch bản. Hầu hết mọi lỗi đều bắt nguồn từ hai lệnh con nghe có vẻ làm cùng một việc nhưng thực tế lại không phải vậy.

as thay đổi AI. at thay đổi Ở ĐÂU.

  • as <target> — hoán đổi người thực thi. @s bây giờ có nghĩa là thực thể đó. Vị trí không di chuyển.
  • at <target> — hoán đổi vị trí, hướng và chiều. Người thực thi không thay đổi.

Vì vậy, điều này không có tác dụng gì:

execute as @e[type=zombie] run setblock ~ ~ ~ stone

Nó chạy một lần cho mỗi thây ma, nhưng luôn ở dưới chân bạn, vì vậy nó đặt một khối lặp đi lặp lại. Cách sửa là cả hai:

execute as @e[type=zombie] at @s run setblock ~ ~ ~ stone

at @s neo lại vào thây ma mà as vừa chọn. as … at @s là cặp phổ biến nhất trong toàn bộ lệnh, và quên at @s là lỗi phổ biến nhất.

Thứ tự từ trái sang phải, và nó tích lũy

Các lệnh con chạy theo trình tự, mỗi lệnh sửa đổi ngữ cảnh mà lệnh tiếp theo nhìn thấy:

execute as @a at @s positioned ^ ^ ^3 run particle flame
  1. as @a — một lượt cho mỗi Người chơi
  2. at @s — di chuyển đến Người chơi đó
  3. positioned ^ ^ ^3 — 3 khối phía trước nơi họ đang nhìn

Hoán đổi bước 2 và 3 và độ lệch dấu mũ được đo từ hướng của bạn thay vì hướng của họ.

Dấu mũ so với dấu ngã

  • ~ ~ ~ — tương đối với vị trí, căn chỉnh theo các trục thế giới
  • ^ ^ ^ — tương đối với hướng nhìn: trái, lên, phía trước

Tọa độ dấu mũ là lý do tại sao positioned ^ ^ ^3 có nghĩa là "phía trước" và ~ ~ ~3 có nghĩa là "3 khối về phía nam". Trộn hai ký hiệu trong một bộ ba tọa độ là một lỗi cú pháp.

store là một giá trị trả về, không phải một biến

store thu thập những gì lệnh trả về — thường là số lần thành công hoặc giá trị kết quả:

execute store result score @s Count run data get entity @s Inventory

Hai điều mọi người thường làm sai:

  • result so với success. result là số mà lệnh tạo ra; success

là 1 hoặc 0 cho việc nó có chạy hay không. Đếm thực thể cần result.

  • store đứng trước run, và nó áp dụng cho lệnh sau run, không phải cho chuỗi lệnh con.

if so với unless ngắn mạch

ifunless lọc — chuỗi dừng lại ở đó khi kiểm tra thất bại. Nhiều mệnh đề if là một phép AND. Không có phép OR; điều đó cần hai lệnh riêng biệt hoặc một vị từ.

execute as @a if entity @s[gamemode=survival] if score @s Lives matches 1.. run ...

Xây dựng chuỗi từng lệnh con một, với ngữ cảnh được hiển thị ở mỗi bước, trong Advanced Command Builder — nó cũng bao gồm dữ liệu, vật phẩm, chiến lợi phẩm, lịch trình, hạt và âm thanh từ cùng một biểu mẫu.

Trình tạo lệnh nâng cao — Execute & Data →

More guides

Browse all →

Cần thêm công cụ Minecraft khác?

Bộ công cụ tạo, xem và chuyển đổi chạy ngay trên trình duyệt — tất cả đều miễn phí.