NON-PRODUCTION
Aladin Megaways — tài liệu ghép client
Megaways tumble 6×5 + top reel (cột index 6, 4 ô). Treasure chest, wild dài / super wild, mini & grand jackpot.
Trang này chỉ được serve khi ENVIRONMENT != production.
1. Tổng quan
| Mục | Giá trị |
|---|---|
| Grid | 6 cột × 5 hàng + top reel 4 ô. reels[0..5] main, reels[6] top |
| Pay | Megaways tumble. Ways = mega_ways trên từng bước |
| Tumble | Ô thắng biến mất, rơi xuống, fill từ trên + top reel |
| Wild | 11. is_long_wild / is_super_wild |
| Scatter | 12 — trigger FS |
| Treasure | 13–16 TreasureChest (×1 / ×2 / ×3 / ×4) |
| Jackpot | mini / grand — có thể credit giữa FS |
| FS | Line win vào pot. Multiplier bank free_spin_multiplier |
| Base path | /api/v1 |
Bắt buộc
GET /api/v1/gameplay trước spin. Jackpot credit ngay cả giữa FS — cộng chip từ
jackpot_win_amount / field mini·grand trên win_result, không đợi hết FS.
2. Luồng ghép
- Vào game →
GET /gameplay+GET /jackpot. POST /spins. Play tuần tựwin_result[](tumble).- Mỗi bước: vẽ
reels(6×5 + top), highlightpositions, hiệnmega_ways, long/super wild. - Treasure chest / multiplier / bonus_multiplier animate trước khi bước tiếp.
- Nếu jackpot trên bước hoặc top-level
jackpot_win_amount > 0→ credit ngay (kể cả đang FS). - FS: không trừ bet; line win vào pot; credit pot khi
is_finish_free_spin.
3. Auth & envelope
Authorization: Bearer <access_token> Content-Type: application/json
{
"code": 0,
"msg": { ... }
}
| code | Ý nghĩa |
|---|---|
0 | OK |
-1 | Unknown / JWT invalid |
-2 | Invalid input |
69 | Wrong state — chưa /gameplay |
1000 | Popup i18n |
4. Grid & symbol
Top reel (4 ô, index cột 6) nằm trên board 6×5. Row 0 = trên cùng.
Top reel
13
5
11
8
Main 6×5
0
0
11
3
4
12
5
6
7
8
9
10
1
2
14
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
Ô vàng = ways thắng. 11 Wild xanh. 12 Scatter. 13–16 rương (ô xanh dương trên top).
| id | Symbol |
|---|---|
| 0–4 | A / K / Q / J / 10 |
| 5 | Genie |
| 6 | Jasmine |
| 7 | King |
| 8 | Lamp |
| 9 | Carpet |
| 10 | Abu |
| 11 | Wild |
| 12 | Scatter |
| 13–16 | TreasureChest ×1 / ×2 / ×3 / ×4 |
5. GET /api/v1/jackpot
GET /api/v1/jackpot
| Field | Type | Ý nghĩa |
|---|---|---|
mini_jackpot | int64 | Meter mini |
grand_jackpot | int64 | Meter grand |
bet | int64 | Bet gắn meter |
{
"code": 0,
"msg": { "mini_jackpot": 88000, "grand_jackpot": 4200000, "bet": 1000 }
}
6. GET /api/v1/gameplay
GET /api/v1/gameplay
| Field | Type | Client dùng để |
|---|---|---|
user_money | int64 | Chip |
bet / bets / show_bets | — | Bet UI |
pay_table | float[][] | Paytable paying symbols |
is_free_spin | bool | Restore FS |
free_spins / max_free_spins | int | Thanh FS |
free_spin_pot | int64 | Pot line win (chưa credit) |
free_spin_multiplier | int64 | Bank multiplier trong FS |
init_reels | int[][] | Preview: 7 cột (6 main + top 4 ô) |
{
"code": 0,
"msg": {
"user_money": 500000, "bet": 1000,
"bets": [200, 1000, 2000, 10000], "show_bets": [200, 1000, 2000, 10000],
"pay_table": [[50,20,10],[25,10,5],[15,8,4],[10,5,2],[8,3,1.5],[20,8,3],[15,6,2],[12,5,2],[8,3,1],[5,2,0.8],[4,1.5,0.5]],
"is_free_spin": false, "free_spins": 0, "max_free_spins": 0, "free_spin_pot": 0,
"free_spin_multiplier": 0,
"init_reels": [[0,5,1,3,9],[0,6,2,4,10],[11,7,14,5,0],[3,8,0,6,1],[4,9,1,7,2],[12,10,2,8,3],[13,5,11,8]]
}
}
7. POST /api/v1/spins
POST /api/v1/spins
{ "bet": 1000 }
SpinResult
| Field | Type | Ý nghĩa |
|---|---|---|
bet | int64 | Bet server |
user_money | int64 | Chip sau response (đã cộng jackpot nếu có) |
win_amount | int64 | Base: win đã credit. FS giữa: win spin. FS xong: pot |
is_free_spin / free_spins / max_free_spins | — | FS state |
free_spin_pot | int64 | Pot |
is_finish_free_spin | bool | Credit pot line-win |
is_bonus_free_spin | bool | Vừa award FS |
number_of_bonus_free_spins | int | +N popup |
free_spin_init_multiplier | int64 | Multiplier khởi tạo khi vào FS |
multiplier | int64 | Multiplier hiện tại sau spin |
jackpot_win_amount | int64 | Tổng JP credit ngay (kể cả mid-FS) |
mini_jackpot / grand_jackpot | int64 | Meter sau spin |
win_result | WinResult[] | Chuỗi tumble |
WinResult / WinLine
| Field | Ý nghĩa |
|---|---|
reels | Board trước khi xóa ô thắng (gồm top reel) |
lines | Ways thắng. symbol, positions, win_amount, line_size, number_of_lines |
positions | Mọi ô thắng bước này |
treasure_chest | Vị trí rương |
multiplier / bonus_multiplier | Hệ số bước |
win_amount / total_win_amount | Win bước / cộng dồn |
mega_ways | Số ways bước này |
is_long_wild / is_super_wild | Flag animation wild |
mini_jackpot_win_amount / grand_jackpot_win_amount | JP bước này |
mini_jackpot / grand_jackpot | Meter sau bước |
{
"code": 0,
"msg": {
"bet": 1000, "user_money": 512000, "win_amount": 8000,
"is_free_spin": false, "free_spins": 12, "free_spin_pot": 0,
"is_finish_free_spin": false, "is_bonus_free_spin": true, "number_of_bonus_free_spins": 12,
"max_free_spins": 12, "free_spin_init_multiplier": 1, "multiplier": 2,
"jackpot_win_amount": 88000, "mini_jackpot": 5000, "grand_jackpot": 4200000,
"win_result": [{
"lines": [{ "symbol": 0, "positions": [[0],[0],[0],[],[],[],[]], "win_amount": 8000, "line_size": 3, "number_of_lines": 2 }],
"reels": [[0,5,1,3,9],[0,6,2,4,10],[11,7,14,5,0],[3,8,0,6,1],[4,9,1,7,2],[12,10,2,8,3],[13,5,11,8]],
"positions": [[0],[0],[0],[],[],[],[]],
"treasure_chest": [[],[],[2],[],[],[],[0]],
"multiplier": 2, "bonus_multiplier": 0, "win_amount": 8000, "total_win_amount": 8000,
"mega_ways": 3240, "is_long_wild": false, "is_super_wild": false,
"mini_jackpot_win_amount": 88000, "grand_jackpot_win_amount": 0,
"mini_jackpot": 5000, "grand_jackpot": 4200000
}]
}
}
8. Tumble / animation
- Vẽ 6 cột main + hàng top từ
reels[6]. - Highlight
positions/ từng line. Hiệnmega_ways. - Nếu
is_long_wild/is_super_wild→ animation wild phủ cột. - Rương: đọc
treasure_chest, nhânmultiplier/bonus_multiplier. - JP bước: popup mini/grand, cập nhật meter, chip đã nằm trong
user_moneytop-level. - Xóa ô thắng, gravity, board tiếp =
win_result[i+1].reels.
Line win FS đi vào pot. Jackpot không đợi hết FS — credit mid-feature.
9. Free spins
- Trigger scatter trên board cuối →
is_bonus_free_spin,number_of_bonus_free_spins. - Giữa FS không trừ bet.
free_spin_multiplier/multiplierbank suốt feature. - Spin cuối:
is_finish_free_spin,win_amount= pot line-win, cộng chip.
10. Cheat (chỉ non-prod)
{
"bet": 1000,
"reels": [
[0,5,1,3,9],[0,6,2,4,10],[11,7,14,5,0],
[3,8,0,6,1],[4,9,1,7,2],[12,12,12,8,3],[13,5,11,8]
]
}
7 cột: 6×5 + top 4 ô. Production bỏ qua, luôn random.
11. Error & tiền
| Tình huống | Hành vi client |
|---|---|
| HTTP 401 | Relogin |
| code 69 | GET /gameplay lại |
| code 1000 | Popup i18n |
HTTP 400 blocked | User đang room PvP |
| Event | Chip |
|---|---|
| Base spin | −bet; +line win |
| Jackpot (kể cả mid-FS) | +jackpot_win_amount ngay |
| FS giữa chừng | Line win vào pot, chưa cộng chip |
| FS kết thúc | +pot |
12. Checklist client
GET /gameplaytrước spin. Board 6×5 + top reelreels[6].- Play tuần tự
win_result; tinmega_ways/ wild flags. - JP credit ngay — đừng gộp vào pot FS.
- FS: khóa bet; credit line-win khi
is_finish_free_spin. - Không spam 2 spin song song.