Hướng dẫn
Cách làm plugin minigame cho Minecraft
Cập nhật 18 tháng 10, 2026
Plugin minigame chạy theo từng vòng: người chơi chờ trong sảnh, đếm ngược bắt đầu, game diễn ra theo luật riêng, có người thắng và đấu trường được khôi phục cho vòng sau. Mọi minigame, từ spleef đến bed wars, đều có chung một bộ khung. Làm đúng phần đó thì luật chơi là phần dễ.
Bắt đầu từ ví dụ này và đổi luật chơi.
Tạo thứ này với CodexeTừng bước
1.Viết luật của một vòng chơi
Bao nhiêu người chơi, vòng chơi bắt đầu và kết thúc thế nào, làm sao để thắng, chuyện gì xảy ra khi chết (bị loại, hồi sinh, làm khán giả) và người chơi nhận gì lúc bắt đầu.
2.Lên kế hoạch thiết lập đấu trường
Các lệnh admin để tạo đấu trường và đặt sảnh chờ, điểm hồi sinh và ranh giới, ví dụ
/mg create <name>và/mg setspawn <name>. Đấu trường được lưu trong một tệp để còn nguyên sau khi khởi động lại.3.Xác định các trạng thái game
Đang chờ, đang bắt đầu (đếm ngược), đang chơi và kết thúc. Mỗi trạng thái cho phép những việc khác nhau: không ai phá khối trong sảnh chờ, không ai vào một game đang diễn ra.
4.Quyết định cách khôi phục đấu trường
Ghi lại và hoàn tác các khối bị thay đổi trong vòng chơi, hoặc nạp lại bản sao của một thế giới mẫu. Không khôi phục thì vòng thứ hai sẽ bắt đầu trên một bản đồ đã bị phá.
5.Thêm những gì người chơi nhìn thấy
Bảng điểm bên hông với số người chơi còn lại và thời gian, boss bar hoặc tiêu đề cho phần đếm ngược, và tin nhắn chat khi có người bị hạ và khi có người thắng.
6.Tạo, build và chơi thử một vòng
Mô tả cho Codexe, để nó biên dịch, rồi vào máy chủ thử nghiệm bằng Dùng thử ngay. Đặt số người chơi tối thiểu thấp khi thử để vòng chơi có thể bắt đầu.
Các trạng thái game
Hầu hết lỗi minigame là do người chơi làm gì đó ở sai trạng thái. Ghi các trạng thái trong yêu cầu giúp AI xây dựng plugin xoay quanh chúng.
| Trạng thái | Điều gì xảy ra | Quy tắc thường gặp |
|---|---|---|
| Đang chờ | Người chơi vào sảnh chờ | Không có sát thương, không phá khối, rời đi bằng một vật phẩm hoặc lệnh |
| Đang bắt đầu | Đếm ngược khi đủ số người tối thiểu | Đếm ngược dừng lại nếu người chơi rời đi khiến số người dưới mức tối thiểu |
| Đang chơi | Luật chơi được áp dụng | Không cho vào thêm, chết thì bị loại hoặc hồi sinh, thoát game tính là thua |
| Kết thúc | Công bố người thắng, trao phần thưởng | Người chơi được đưa về sau vài giây, đấu trường được khôi phục |
Khôi phục đấu trường
- Ghi lại và hoàn tác thay đổi: lưu từng khối trước khi nó thay đổi trong vòng chơi và đặt lại khi kết thúc. Nhanh với đấu trường nhỏ, nơi người chơi chỉ phá hoặc đặt vài khối.
- Thế giới mẫu: giữ một bản sao sạch của bản đồ, gỡ thế giới đã chơi sau vòng đấu và chép bản mẫu đè lên. Đơn giản và đáng tin cậy với những bản đồ bị phá hủy nhiều.
- Không cho phép thay đổi: với các game như parkour hay đấu PvP tay đôi, chặn hoàn toàn việc thay đổi khối và không cần khôi phục gì cả.
Mô tả ví dụ
"Một plugin minigame spleef cho Paper 1.21.4. Admin tạo đấu trường bằng /spleef create <name>, /spleef setlobby và /spleef setfloor (hai góc của sàn tuyết). Người chơi tham gia bằng /spleef join <arena>. Vòng chơi bắt đầu 15 giây sau khi có 2 người, tối đa 8. Người chơi nhận một xẻng kim cương, phá tuyết ngay lập tức, và bị loại khi rơi xuống dưới sàn. Người trụ lại cuối cùng thắng 50 coin qua Vault. Người bị loại trở thành khán giả. Sàn tuyết được khôi phục sau mỗi vòng. Thanh bên hiển thị số người còn lại và thời gian. Đấu trường lưu trong arenas.yml, số người tối thiểu và phần thưởng trong config.yml."
Thử nghiệm một minigame
Rất khó đánh giá một minigame qua mã nguồn: bạn phải chơi một vòng. Dùng thử ngay khởi động một máy chủ Paper riêng đúng phiên bản của bạn với plugin đã cài, thường là trong một thế giới phẳng, và bạn bè có thể vào nếu bạn thêm họ vào Quyền truy cập máy chủ. Gói Free cho phép 2 người trên một máy chủ thử nghiệm, Pro 5, Business 10 và Enterprise 20.
Hãy yêu cầu đặt số người chơi tối thiểu trong config.yml để bạn có thể chỉnh thành 1 hoặc 2 khi thử. Người chơi thử nghiệm cũng có thể vào, chạy lệnh tham gia và lệnh admin rồi kiểm tra các tin nhắn, nhờ đó phát hiện lệnh hỏng trước khi bạn chơi.
Câu hỏi
Một đấu trường hay nhiều đấu trường?
Hãy yêu cầu nhiều đấu trường ngay từ đầu. Biến một plugin một đấu trường thành plugin nhiều đấu trường về sau đồng nghĩa với việc viết lại cách lưu người chơi và trạng thái game.
Tôi có thể làm minigame PvP 1.8 không?
Có. Hãy ghi Spigot hoặc Paper 1.8.8 trong yêu cầu: Codexe viết mã cho API cũ đó, và máy chủ thử nghiệm chạy các phiên bản từ 1.8 đến 26.3.
Mạng máy chủ minigame hoạt động thế nào?
Các mạng lớn chạy mỗi game trên một máy chủ riêng phía sau proxy BungeeCord hoặc Velocity, với một máy chủ sảnh chờ đưa người chơi đến game còn trống. Đó là một plugin proxy cộng với một plugin game, thành hai dự án.
Build minigame của bạn
Prompt này mở ra sẵn sàng để gửi:
“Một plugin minigame spleef cho Paper 1.21.4: đấu trường tạo bằng /spleef create, setlobby và setfloor, người chơi tham gia bằng /spleef join, vòng chơi bắt đầu 15 giây sau khi có 2 người (tối đa 8), xẻng kim cương, bị loại khi rơi xuống dưới sàn, người cuối cùng thắng 50 coin qua Vault, người bị loại làm khán giả, sàn tuyết được khôi phục sau mỗi vòng, thanh bên với số người còn lại và thời gian, đấu trường lưu trong arenas.yml.”
Tạo thứ này với Codexe