- Hỗ trợ phiên bản
- 1.14
- 1.15
- 1.16
- 1.17
- 1.18
- 1.19
- 1.20
- 1.21
- Mã nguồn
- https://github.com/anhcraft/PhoBan
Đây là plugin Phó Bản do mình làm cho server riêng (tuy nhiên đã đóng cửa). Để tránh lãng phí, mình quyết định share plugin cho cộng đồng. Plugin này đã được mình chạy trên server khá lâu, đã vá khá nhiều bug, lượng member chơi lớn nên hoàn toàn yên tâm về chất lượng ^^
Lưu ý: Plugin sẽ không được update tính năng mới, ngoại trừ fix bug và support phiên bản mới
Tính năng:
- 5 độ khó: Dễ, Trung Bình, Khó, Vô Cực, Thách Đấu
- Thách đấu không giới hạn và độ khó tăng dần
- Yêu cầu vượt ải và độ khó trước đó để mở khoá phòng chơi
- Tích hợp MyThicsMob để săn Boss
- Tham gia vượt ải bằng vé phó bản
- Spawn mob tự động trong phòng chơi
- Chạy nhạc nền, âm thanh trong phòng chơi
- Khoá thời tiết và thời gian
- Cơ chế hồi sinh và countdown
- Cho phép rejoin phòng chơi khi bị anticheat sút
- Có GUI dễ dùng, hình ảnh sống động, âm thanh sắc nét
- Có lưu lại lịch sử thống kê
Lưu ý so với các plugin Phó Bản khác:
- Không hỗ trợ reset map, chỉ hỗ trợ bảo vệ world bằng WorldGuard
- Không có multi-instance: nói nôm na là 1 phòng có nhiều phiên chơi cùng thời điểm; nhưng plugin vẫn hỗ trợ chơi nhiều phòng cùng lúc nhé (vd 1 map tạo 3 phòng chơi sẽ chơi dc 3 phiên cùng lúc)
- Độ khó bị hardcode, chỉ config được tên
- Phù hợp: làm minigame, hoặc dùng cho các server nhỏ
Demo:
Scoreboard dùng placeholder có ở bên dưới nhé
Yêu cầu:
- Java 16+
- Paper 1.16+ (có thể dùng từ 1.14 nhưng chưa test)
- WorldGuard
- PlaceholderAPI
- MyThicsMob
Lệnh (/pb hoặc /phoban)
/pb: mở menu phó bản
/pb quit: thoát phó bản hiện tại
Lệnh cho admin:
/pb profile <player>: xem thông tin chơi Phó Bản của người chơi (yêu cầu phoban.profile)
/pb reload: nạp lại config, yêu cầu không có phòng chơi nào đang active (yêu cầu: phoban.reload)
/pb enable <room>: bật phòng chơi, không lưu config (yêu cầu: phoban.enable)
/pb disable <room>: tắt phòng chơi, không lưu config (yêu cầu: phoban.disable)
/pb list: xem danh sách phòng (yêu cầu: phoban.list)
/pb join <room> [player]: bắt buộc vào chơi phòng chỉ định (yêu cầu: phoban.join)
/pb start <room>: bắt đầu chơi (yêu cầu: phoban.start)
/pb end <room>: yêu cầu kết thúc (yêu cầu: phoban.end)
/pb terminate <room>: bắt buộc kết thúc lập tức (yêu cầu: phoban.terminate)
/pb reset respawn <room> [player]: reset lượt hồi sinh trong phòng chỉ định (yêu cầu: phoban.reset.respawn)
/pb tp <room> [player]: dịch chuyển tới vị trí chơi trong phòng chỉ định, không tham gia chơi (yêu cầu: phoban.tp)
/pb reset data<player>: reset dữ liệu Phó Bản đối với người chơi chỉ định (yêu cầu: phoban.reset.data)
/pb sound: mở trình chơi nhạc (yêu cầu: phoban.sound)
/pb ticket add <player> <amount>: thêm X vé cho người chơi chỉ định (yêu cầu: phoban.ticket.add)
/pb ticket set <player> <amount>: đặt X vé cho người chơi chỉ định (yêu cầu: phoban.ticket.set)
/pb getpos: lấy vị trí hiện tại để config, có thể copy được (yêu cầu: phoban.getpos)
Quyền hạn khác:
phoban.admin: cho phép bypass block lệnh khi chơi, cho phép xem các phòng đã bị disabled
phoban.bypass.create-cooldown: bypass thời gian chờ tạo phòng
Danh sách placeholderAPI:
%phoban_room_name%: tên phòng đang chơi, hoặc để trống
%phoban_room_region%: tên region WorldGuard hiện tại, hoặc để trống
%phoban_room_stage%: trạng thái phòng chơi hiện tại, hoặc để trống
%phoban_room_difficulty%: độ khó phòng chơi hiện tại, hoặc để trống
%phoban_room_challenge_level%: cấp độ thách đấu hiện tại, hoặc để trống
%phoban_room_players%: số người đang chơi hiện tại, hoặc để trống
%phoban_room_max_players%: số lượng người tối đa trong phòng hiện tại, hoặc để trống
%phoban_room_min_players%: số lượng người tối thiểu trong phòng hiện tại, hoặc để trống
%phoban_room_separators%: số người đang làm khán giả trong phòng, hoặc để trống
%phoban_room_respawns%: số lượt hồi sinh hiện tại, hoặc để trống
%phoban_room_max_respawns%: số lượng hồi sinh tối đa, hoặc để trống
%phoban_room_objective_left%: mục tiêu còn lại trong phòng chơi, hoặc để trống
%phoban_room_time%: thời gian hiện tại trong phòng chơi, hoặc để trống
%phoban_room_time_left%: thời gian còn lại trong phòng chơi, hoặc để trống
%phoban_tickets%: số lượng vé Phó Bản đang có
%phoban_total_wins%: tổng trận thắng
%phoban_total_losses%: tổng trận thua
%phoban_total_matches%: tổng số trận
Danh sách placeholder dùng trong config phòng chơi và message:
{dungeon}: tên phòng hiện tại
{currentPlayers}: số người hiện tại
{maxPlayers}: số người tối đa
{difficulty}: độ khó
{challengeLevel}: cấp thách đấu
{stage}: trạng thái phòng
Cách dùng:
1. Tạo Phó Bản mới
- Chuẩn bị sẵn Boss yêu cầu, gồm ID boss và level
- Chuẩn bị sẵn map chơi, có thể tạo world trống bằng plugin Multiverse-Core + VoidGen rồi dán schematic
- Thiết lập region WorldGuard bao quanh khu vực chơi, lệnh /rg define
- Vào thư mục PhoBan/rooms, copy file mẫu có sẵn tạo thành file mới, tên file là ID phòng chơi
- Chỉnh sửa config phòng chơi theo thứ tự từ trên xuống dưới, một số mục cần lưu ý:
+ enabled? mặc định sẽ bị tắt, chỉ thấy khi có quyền phoban.admin; nếu hoàn tất thì set enabled thành true
+ Các thiết lập vị trí: dùng /pb getpos để copy vị trí cho tiện
+ region: tên region vừa tạo
+ Config các độ khó: lưu ý theo thứ tự, nếu có độ khó cao thì phải tồn tại độ khó thấp hơn, vd nếu muốn có Hard thì cần có luôn Easy và Medium, không cần config hết
+ Thiết lập mục tiêu cho từng độ khó: lưu ý chỉ định đúng ID boss và Số lượng
+ Thiết lập lệnh để tặng thưởng
- Dùng /pb reload và tận hưởng thành quả
2. Tích hợp GUI phó bản
Tạo NPC Citizen, chạy lệnh /pb dưới quyền người chơi
3. Trao vé Phó Bản cho người chơi
Plugin có tích hợp sẵn auto tặng vé free trong config
Hoặc dùng lệnh /pb ticket add để kết hợp tạo event, crate, kit, vvv
4. Hệ thống mục tiêu (objectives)
Trong config bạn sẽ tìm thấy mục này, đây là danh sách các mục tiêu
Mọi người chơi trong 1 phòng chơi phải đạt đủ mục tiêu mới tính là chiến thắng
YAML:
# Danh sách mục tiêu (phải giết hết mới thắng)
# Cú pháp: <MyThicMob>:<Số lượng>
# Lưu ý: không thể ghi level Mob, do Mob có thể lên level sẽ làm hỏng bộ đếm :)
objectives:
"SkeletonKing": 1
#"SkeletalMinion": 3
# Nếu phòng chỉ có 1 con boss, có thể dùng tuỳ chọn này cho ngắn
# tương đương dùng objectives, có thể dùng cả 2 cũng không sao
#boss-id: "SkeletonKing"
5. Hệ thống spawn boss
Có nhiều cách để spawn
- Dùng chức năng spawn boss được tích hợp, hỗ trợ mob vanilla lẫn MyThicsMob
YAML:
mobs:
- zombie @amount=3 @every=10 @delay=3
- zombie world 0 128 0 @amount=5
- SkeletonKing world 0 128 0 @delay=10
- SkeletalMinion world 0 128 0 @delay=10
- Dùng MythicMob spawner
- Dùng plugin ngoài
- Dùng command block, vvv
Config một số dạng phó bản
Dạng 1: Tiêu diệt toàn bộ mục tiêu trong thời gian quy định
- Thường dành cho chức năng Phó Bản trong server
- Config mục tiêu: mục "objectives"
- Config spawn quái: mục "mobs" hoặc dùng cách khác (ví dụ spawner, plugin ngoài, vvv)
- Config allow-timeout là false, đảm bảo quá giờ thì sẽ tính thua cuộc
- Config allow-overachieve là false, đảm bảo tính thắng cuộc ngay khi mục tiêu đạt được
Dạng 2: Tiêu diệt càng nhiều mục tiêu càng tốt trong thời gian quy định
- Thường dành cho event, hoặc là 1 dạng đặc quyền cho rank để kiếm thêm tài nguyên
- Config mục tiêu: mục "objectives"
- Config spawn quái: mục "mobs" hoặc dùng cách khác (ví dụ spawner, plugin ngoài, vvv)
- Config allow-timeout là true, đảm bảo quá giờ mà chưa hoàn thành mục tiêu tối thiểu vẫn tính chiến thắng
- Config allow-overachieve là true, đảm bảo cho phép tiêu diệt nhiều hơn số lượng quy định
Dạng 3: Event đánh Boss tập thể
- Dành cho event
- Config mục tiêu: mục "objectives"
- Config spawn quái: mục "mobs" hoặc dùng cách khác (ví dụ spawner, plugin ngoài, vvv)
- Config allow-timeout là false
- Config allow-overachieve là false
- Config allow-late-join là true, cho phép mọi người vào kể cả khi phòng đã bắt đầu
File server mẫu 1.21
www.dropbox.com
Block Times
1.1
