NON-PRODUCTION
Tarzan — tài liệu ghép client
Payline 5×3. Diamond pot, jungle treasure, minigame lật bài.
Trang này chỉ được serve khi ENVIRONMENT != production.
1. Tổng quan
| Mục | Giá trị |
|---|---|
| Grid | 5 cột × 3 hàng · reels[col][row] |
| Pay | Payline. Wild (12) thay thế paying symbol |
| Diamond | Symbol 11. Cộng diamond_count / diamond_pot. Claim khi claim_diamond_pot |
| Treasure | Jungle map theo bet. Flag is_bonus_treasure + tọa độ ô |
| Mini game | Lật bài. Loop POST /minigame {card_index} tới is_finished |
| Tarzan symbol | is_tarzan, number_of_tarzan_symbols, tarzan_win_amount |
| FS | Scatter 13. Pot giữa chừng, credit khi is_finish_free_spin |
| Base path | /api/v1 |
Bắt buộc
GET /api/v1/gameplay trước spin. Restore treasure map từ treasures[],
restore lật bài từ mini_game_info nếu đang dở.
2. Luồng ghép
- Vào game →
GET /gameplay. Vẽ board, diamond meter, jungle map theo bet. POST /spins. Highlightwin_lines.- Nếu
claim_diamond_pot→ animation claim, cộngdiamond_win. - Nếu
is_bonus_treasure→ mở ôtreasure_row/coltrên map, cập nhậttreasures. - Nếu
is_mini_game→ khóa spin, loopPOST /minigametớiis_finished. - FS: không trừ bet; credit chip 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, đang minigame |
1000 | Popup i18n |
4. Grid & symbol
Board 5×3 (trái) và 5 lá bài úp của minigame (dưới).
8
12
8
4
13
11
5
9
1
3
0
2
6
7
10
Minigame — 5 lá úp, user gửi card_index 0–4
?
?
?
?
?
11 Diamond (xanh dương). 12 Wild. 13 Scatter. Lá xanh = đang chọn.
| id | Symbol |
|---|---|
| 0–3 | Low |
| 4–7 | Mid |
| 8–10 | High |
| 11 | Diamond |
| 12 | Wild |
| 13 | Scatter |
5. GET /api/v1/gameplay
GET /api/v1/gameplay
| Field | Type | Client dùng để |
|---|---|---|
init_reels | int[5][3] | Board preview |
user_money | int64 | Chip |
bets / show_bets / bet | — | Bet UI |
pay_table | float[][] | Paytable |
game_type | int | Mode hiện tại |
is_free_spin / free_spins / max_free_spins | — | FS |
free_spin_pot | int64 | Pot FS |
diamond_count | int | Số kim cương đã gom |
diamond_pot | int64 | Giá trị nồi kim cương |
treasures | {bet, treasures[]}[] | Map jungle theo từng mức bet — treasures[] bool ô đã mở |
mini_game_info | object? | Restore: turns, cards, win_amount |
{
"code": 0,
"msg": {
"init_reels": [[8,11,0],[12,5,2],[8,9,6],[4,1,7],[13,3,10]],
"user_money": 500000,
"bets": [200, 1000, 2000, 10000], "show_bets": [200, 1000, 2000, 10000],
"pay_table": [[1,2,5],[1.5,3,8],[2,4,10],[2.5,5,12],[3,8,15],[4,10,20],[5,12,25],[8,15,40],[10,25,80],[15,40,100],[20,50,150]],
"bet": 1000, "game_type": 0,
"is_free_spin": false, "free_spins": 0, "max_free_spins": 0, "free_spin_pot": 0,
"diamond_count": 3, "diamond_pot": 15000,
"treasures": [{ "bet": 1000, "treasures": [false, false, true, false, false] }]
}
}
6. POST /api/v1/spins
POST /api/v1/spins
{ "bet": 1000 }
| Field | Type | Ý nghĩa |
|---|---|---|
user_money / win_amount / bet | — | Chip / win / bet |
is_tarzan | bool | Hit feature Tarzan symbol |
is_bonus | bool | Trigger bonus / FS |
number_of_bonus_free_spins | int | +N FS |
is_free_spin / free_spins / max_free_spins / free_spin_pot | — | FS |
is_finish_free_spin | bool | Credit pot |
claim_diamond_pot | bool | Phải play animation claim nồi |
diamond_win | int64 | Chip claim nồi |
diamond_count / diamond_pot | — | State nồi sau spin |
win_lines | WinLine[] | win_amount, line, line_number, symbol, number_of_symbols |
reels | int[5][3] | Board |
is_bonus_treasure | bool | Mở 1 ô jungle |
treasure_id / treasure_row / treasure_col | int | Ô vừa mở |
treasures | bool[] | Map bet hiện tại sau spin |
is_mini_game | bool | Phải vào lật bài |
number_of_tarzan_symbols | int | Đếm symbol Tarzan |
tarzan_win_amount | int64 | Win feature Tarzan |
{
"code": 0,
"msg": {
"user_money": 499000, "win_amount": 4000, "bet": 1000,
"is_tarzan": true, "is_bonus": true, "number_of_bonus_free_spins": 10,
"is_free_spin": false, "free_spins": 10, "max_free_spins": 10, "free_spin_pot": 0,
"is_finish_free_spin": false,
"claim_diamond_pot": true, "diamond_win": 15000, "diamond_count": 0, "diamond_pot": 0,
"win_lines": [{ "win_amount": 4000, "line": [8,12,8,4,13], "line_number": 0, "symbol": 8, "number_of_symbols": 3 }],
"reels": [[8,11,0],[12,5,2],[8,9,6],[4,1,7],[13,3,10]],
"is_bonus_treasure": true, "treasure_id": 2, "treasure_row": 0, "treasure_col": 2,
"treasures": [false, false, true, false, false],
"is_mini_game": true, "number_of_tarzan_symbols": 3, "tarzan_win_amount": 2000
}
}
7. POST /api/v1/minigame
Chỉ gọi khi is_mini_game = true (hoặc restore mini_game_info). User chọn lá.
POST /api/v1/minigame
{ "card_index": 2 }
| Field | Type | Ý nghĩa |
|---|---|---|
user_money | int64 | Chip (cập nhật khi finish) |
bet | int64 | Bet |
turns | int | Lượt lật còn lại |
card | object | Lá vừa lật: card_type, multiplier, win_amount, card_index |
win_amount | int64 | Tổng win minigame đến hiện tại |
is_finished | bool | Loop tới khi true |
{
"code": 0,
"msg": {
"user_money": 499000, "bet": 1000, "turns": 2,
"card": { "card_type": 1, "multiplier": 5, "win_amount": 5000, "card_index": 2 },
"win_amount": 5000, "is_finished": false
}
}
Không
POST /spins khi đang minigame. Lặp /minigame đến is_finished.8. Animation
- Spin: vẽ
reels, highlight payline theowin_lines. - Diamond: tăng meter; nếu
claim_diamond_potthì nổ nồi, cộngdiamond_win. - Treasure: flip ô
treasure_row/coltrên map bet hiện tại. - Tarzan feature: hiện
number_of_tarzan_symbols/tarzan_win_amount. - Minigame: 5 lá úp. Mỗi response lật
card.card_index, hiện multiplier / win. Hếtturnshoặcis_finished→ đóng. - FS: khóa bet; credit khi
is_finish_free_spin.
9. Cheat (chỉ non-prod)
{ "bet": 1000, "reels": [[8,11,0],[12,5,2],[8,9,6],[4,1,7],[13,3,10]] }
5 cột × 3 hàng. Production bỏ qua.
10. Error & tiền
| Tình huống | Hành vi client |
|---|---|
| HTTP 401 | Relogin |
| code 69 | GET /gameplay — có thể đang dở minigame |
| code 1000 | Popup i18n |
HTTP 400 blocked | User đang room PvP |
| Event | Chip |
|---|---|
| Base spin | −bet; +win_amount / diamond_win / tarzan_win |
| Minigame giữa chừng | Theo user_money từng bước (thường credit lúc finish) |
| FS giữa chừng | Tăng pot, chưa cộng chip |
| FS kết thúc | +pot |
11. Checklist client
GET /gameplaytrước spin. Restore diamond / treasure / mini_game_info.- Board 5×3. Map jungle theo
treasures[].bet. is_mini_game→ loop/minigame {card_index}tớiis_finished.claim_diamond_potbắt buộc play claim, đừng bỏ animation.- FS: khóa bet; credit khi
is_finish_free_spin. - Không spam 2 request song song.