feat(game): 添加连续奖励表格和银行选项图标

- 在游戏规则模态框中添加连续奖励表格组件
- 更新英文和印尼语的游戏规则文本内容
- 添加银行选项的图标显示功能,支持自定义logo或默认地标图标
- 实现连续奖励数据类型和接口定义
- 在游戏会话存储中添加连续奖励行数据管理
- 集成银行选择下拉菜单中的图标展示
- 更新WithdrawField组件以支持银行图标显示
This commit is contained in:
JiaJun
2026-07-09 18:22:33 +08:00
parent 69cd9a7521
commit 20a6fc5175
16 changed files with 852 additions and 451 deletions

View File

@@ -214,134 +214,153 @@ export default {
rules: {
title: 'Aturan Permainan',
content: [
'## 36 Zihua · Panduan Permainan',
'## Panduan Peraturan 36 Zihua',
'',
'### 1. Pengenalan Permainan',
'### 1. Pengenalan Game',
'',
'**36 Zihua** adalah permainan tebak angka berkecepatan tinggi dengan **satu putaran setiap 30 detik**. Setiap putaran, sistem mengeluarkan **satu nomor pemenang** dari **36 simbol** (Tikus, Kerbau, Harimau… Naga Biru, Harimau Putih, Burung Merah, Kura-kura Hitam, dan lainnya). Selama periode taruhan, pemain memilih nomor dan memasang taruhan. Tebak dengan benar untuk memenangkan hadiah. Menang berturut-turut dapat meningkatkan hadiah Anda — **10 kemenangan berturut-turut** dapat memberikan **Jackpot Satu Juta**.',
'**36 Zihua** adalah permainan prediksi angka. Dalam setiap putaran, **1 nomor pemenang** akan dipilih dari **36 simbol**. Pemain memilih nomor dan memasang taruhan pada tahap taruhan. Jika tebakan benar, pemain akan mendapatkan hadiah. Kemenangan beruntun dapat meningkatkan hadiah, dan setelah mencapai tier jackpot, pemain juga berkesempatan memenangkan **Jackpot Satu Juta**.',
'',
'---',
'',
'### 2. Cara Bermain',
'',
'Setiap putaran berlangsung sekitar **30 detik**:',
'Setiap putaran dibagi menjadi beberapa tahap berikut:',
'',
'**Langkah 1 — Periode taruhan (020 detik)**',
'Pilih nomor pada grid 36 kotak (default maksimum **5 nomor**), pilih nilai chip (mis. 💎1, 5, 10, 25, 50, 100), lalu konfirmasi taruhan. Saldo Anda akan dipotong dan taruhan dikonfirmasi.',
'1. **Tahap Taruhan**',
' Pemain memilih nomor yang ingin dipertaruhkan dari 36 nomor, memilih chip, mengonfirmasi taruhan, dan sistem akan memotong saldo serta membuat catatan taruhan.',
' Jumlah maksimum nomor yang dapat dipilih per putaran bergantung pada konfigurasi sistem saat ini.',
'',
'**Langkah 2 — Penutupan (pada detik ke-20)**',
'Tidak ada taruhan baru yang diterima. Taruhan yang dipasang setelah penutupan tidak berlaku.',
'2. **Tahap Penutupan Taruhan**',
' Setelah putaran memasuki tahap penutupan, sistem berhenti menerima taruhan baru.',
'',
'**Langkah 3 — Pengundian & penyelesaian (2030 detik)**',
'Nomor pemenang diumumkan dan hadiah dibayarkan sesuai aturan hadiah.',
'3. **Tahap Pengundian dan Penyelesaian**',
' Sistem akan mengumumkan nomor pemenang untuk putaran tersebut dan secara otomatis menyelesaikan hadiah sesuai aturan yang berlaku.',
'',
'**Langkah 4 — Putaran berikutnya**',
'Setelah penyelesaian, putaran berikutnya dimulai secara otomatis.',
'4. **Putaran Berikutnya Dimulai**',
' Setelah putaran saat ini selesai diselesaikan, sistem akan otomatis memulai putaran berikutnya.',
'',
'---',
'',
'### 3. Aturan Kemenangan',
'',
'- Hanya **satu** nomor pemenang yang dikeluarkan setiap putaran (dari 1 hingga 36).',
'- Anda menang jika **nomor yang dipilih mencakup nomor pemenang**.',
'- Jika tidak kena, tidak ada hadiah untuk putaran tersebut.',
'1. Hanya **1 nomor pemenang** yang akan dikeluarkan di setiap putaran.',
'2. Jika nomor yang dipilih pemain **mencakup nomor pemenang**, maka taruhan tersebut dianggap menang.',
'3. Jika pemain memilih beberapa nomor dan jumlah taruhan untuk setiap nomor sama, maka:',
'',
'**Jumlah taruhan pada nomor kena:**',
'- Jika setiap nomor dipilih dengan jumlah taruhan yang sama:',
' **Jumlah taruhan pada nomor kena = total taruhan ÷ jumlah nomor yang dipilih**',
'- Contoh: 5 nomor, total taruhan 💎50 → 💎10 per nomor. Jika nomor pemenang termasuk dalam pilihan Anda, 💎10 digunakan untuk perhitungan hadiah.',
'```text',
'Nilai Taruhan Nomor Menang = Total Taruhan ÷ Jumlah Nomor yang Dipilih',
'```',
'',
'**Contoh:**',
'Jika pemain memilih **5 nomor** dengan total taruhan **💎50**, maka setiap nomor memiliki nilai taruhan **💎10**.',
'Jika nomor pemenang berada di antara 5 nomor tersebut, hadiah akan dihitung berdasarkan **💎10**.',
'',
'---',
'',
'### 4. Jenis Hadiah',
'### 4. Aturan Hadiah',
'',
'Hadiah kemenangan berturut-turut terdiri dari **dua jenis**. Setiap tingkat hanya menggunakan **satu jenis** — **tidak digabungkan**:',
'Hadiah kemenangan beruntun dibagi menjadi **dua jenis**, dan hanya satu jenis yang berlaku pada setiap tier kemenangan beruntun:',
'',
'#### Jenis A — Hadiah Koefisien',
'#### 1. Hadiah Koefisien',
'',
'Hadiah dihitung menggunakan pengali odds:',
'Hadiah dihitung dengan mengalikan nilai taruhan nomor menang dengan koefisien odds pada tier saat ini:',
'',
'```',
'Hadiah = jumlah taruhan pada nomor kena × koefisien odds',
'```text',
'Jumlah Kemenangan = Nilai Taruhan Nomor Menang × Koefisien Odds',
'```',
'',
'#### Jenis B — Hadiah Tetap',
'#### 2. Hadiah Tetap',
'',
'Anda menerima **jumlah tetap** yang ditetapkan dalam konfigurasi.',
'**Tidak bergantung pada jumlah taruhan dan tidak menggunakan koefisien odds.**',
'Sistem akan langsung membayar jumlah tetap yang telah dikonfigurasi, tanpa bergantung pada jumlah taruhan pada putaran tersebut:',
'',
'```',
'Hadiah = jumlah tetap',
'```text',
'Jumlah Kemenangan = Jumlah Hadiah Tetap',
'```',
'',
'**Perbandingan (contoh Tingkat 10):**',
'#### 3. Catatan Tabel Hadiah',
'',
'| Jenis Hadiah | Jumlah Taruhan pada Nomor Kena | Hadiah |',
'|:---:|:---:|:---:|',
'| Koefisien (1:330) | 💎50 | 💎50 × 330 = **16.500** |',
'| Hadiah tetap | Berapa pun | **1.000.000** (nilai konfigurasi) |',
'Tabel hadiah kemenangan beruntun saat ini mengikuti konfigurasi backend sistem, dan frontend harus menampilkannya berdasarkan data konfigurasi terbaru.',
'Setiap tier berisi informasi berikut:',
'',
'- Tier kemenangan beruntun',
'- Jenis hadiah',
'- Koefisien odds',
'- Jumlah hadiah tetap',
'- Apakah termasuk tier jackpot',
'',
'Dengan kata lain, tabel hadiah tidak ditulis tetap. Isi sebenarnya selalu mengikuti konfigurasi sistem saat ini.',
'',
'---',
'',
'### 5. Aturan Kemenangan Berturut-turut',
'',
'Saat Anda **menang berturut-turut**, hadiah meningkat sesuai tingkat kemenangan. Secara default, **hadiah koefisien** digunakan dengan odds yang meningkat:',
'Saat pemain menang dalam beberapa putaran berturut-turut, pemain akan masuk ke status kemenangan beruntun. Semakin tinggi kemenangan beruntun, semakin tinggi tier hadiah.',
'',
'| Kemenangan Berturut-turut | Odds | Koefisien |',
'|:---:|:---:|:---:|',
'| Kemenangan ke-1 | 1:33 | 33 |',
'| 2 berturut-turut | 1:66 | 66 |',
'| 3 berturut-turut | 1:99 | 99 |',
'| 4 berturut-turut | 1:132 | 132 |',
'| 5 berturut-turut | 1:165 | 165 |',
'| 6 berturut-turut | 1:198 | 198 |',
'| 7 berturut-turut | 1:231 | 231 |',
'| 8 berturut-turut | 1:264 | 264 |',
'| 9 berturut-turut | 1:297 | 297 |',
'| 10 berturut-turut | 1:330 | 330 |',
'#### 1. Aturan Perhitungan Kemenangan Beruntun',
'',
'**Aturan kemenangan berturut-turut:**',
'1. Setelah pemain menang, jumlah kemenangan beruntun akan bertambah.',
'2. Hadiah dihitung berdasarkan **tier kemenangan beruntun saat taruhan dipasang**.',
'3. Jika pemain kalah di putaran mana pun, kemenangan beruntun akan langsung direset ke **0**.',
'4. Dalam implementasi saat ini, kemenangan biasa akan melanjutkan kemenangan beruntun, tetapi jika pemain mengenai **tier jackpot**, maka kemenangan beruntun akan langsung direset ke **0** setelah putaran tersebut selesai diselesaikan.',
'',
'- Hadiah dihitung berdasarkan **status kemenangan berturut-turut saat Anda memasang taruhan**: jika Anda sudah memiliki N kemenangan berturut-turut, kemenangan putaran ini dibayar pada tingkat **(N+1)**.',
'- **Putaran tanpa kemenangan** akan mengatur ulang kemenangan berturut-turut ke nol — Anda mulai lagi dari tingkat 1.',
'- **Melewatkan putaran** (tidak memasang taruhan) selama kemenangan berturut-turut aktif juga akan **mengatur ulang kemenangan berturut-turut ke nol**.',
'#### 2. Batas Taruhan Saat Kemenangan Beruntun Jackpot',
'',
'**Contoh (hadiah koefisien):**',
'Ketika kemenangan beruntun pemain mencapai tier **jackpot pertama** yang dikonfigurasi oleh sistem, pemain akan masuk ke tahap pembatasan taruhan jackpot.',
'',
'| Skenario | Jumlah Taruhan pada Nomor Kena | Tingkat | Odds | Hadiah |',
'|:---:|:---:|:---:|:---:|:---:|',
'| Kemenangan pertama | 💎10 | Ke-1 | 1:33 | **330** |',
'| 3 kemenangan berturut-turut | 💎50 | Ke-3 | 1:99 | **4.950** |',
'| 10 kemenangan berturut-turut | 💎50 | Ke-10 | 1:330 | **16.500** |',
'Aturannya sebagai berikut:',
'',
'1. Dalam setiap putaran berikutnya, **total jumlah taruhan** **tidak boleh melebihi** jumlah taruhan dari **putaran pertama yang memenangkan jackpot** dalam kemenangan beruntun saat ini.',
'2. Batas ini akan tetap terkunci selama kemenangan beruntun saat ini berlangsung dan tidak akan berubah meskipun pemain kembali memenangkan jackpot setelah itu.',
'3. Setelah kemenangan beruntun terputus, pembatasan ini akan langsung dihapus.',
'4. Kemenangan beruntun biasa sebelum mencapai tier jackpot tidak terpengaruh oleh aturan ini.',
'',
'{{STREAK_REWARD_TABLE}}',
'',
'---',
'',
'### 6. Jackpot Satu Juta',
'',
'Saat pemain **bertaruh dan menang 10 putaran berturut-turut**, dan setiap taruhan selama kemenangan berturut-turut **minimal 💎50**, Jackpot Satu Juta akan dipicu.',
'Ketika pemain mencapai tier jackpot yang dikonfigurasi sistem melalui kemenangan beruntun, dan tier jackpot tersebut dikonfigurasi sebagai hadiah tetap, pemain bisa menerima Jackpot Satu Juta.',
'',
'**Syarat:**',
'#### 1. Syarat Pemicu',
'',
'1. **10 putaran berturut-turut** dengan taruhan dipasang dan dimenangkan di setiap putaran;',
'2. **Setiap putaran** dalam kemenangan berturut-turut harus memiliki taruhan **minimal 💎50**;',
'3. Jika ada putaran dalam kemenangan berturut-turut di bawah 💎50, Anda hanya menerima hadiah kemenangan berturut-turut biasa — **Jackpot Satu Juta tidak berlaku**.',
'1. Pemain harus terus menang sampai mencapai tier jackpot yang saat ini dikonfigurasi oleh sistem.',
'2. Jika tier jackpot dikonfigurasi sebagai **hadiah tetap**, misalnya **💎1,000,000**, pemain akan langsung menerima Jackpot Satu Juta saat berhasil mengenai tier tersebut.',
'3. Dalam implementasi saat ini, **tidak ada syarat taruhan minimum tambahan**. Selama pemain memenuhi jumlah taruhan minimum yang diizinkan oleh platform, pemain dapat mengikuti kemenangan beruntun jackpot.',
'4. Setelah mengenai tier jackpot, begitu penyelesaian selesai, kemenangan beruntun akan direset ke **0**.',
'',
'**Cara pembayaran (tergantung konfigurasi backend):**',
'#### 2. Aturan Pembayaran',
'',
'- **Hadiah tetap**: Jika tingkat 10 ditetapkan sebagai jumlah tetap, 10 kemenangan berturut-turut membayar **💎1.000.000** secara langsung.',
'- **Hadiah koefisien**: Jika tingkat 10 menggunakan odds koefisien, Anda menerima hadiah reguler pada **1:330** terlebih dahulu, ditambah jackpot tambahan sesuai aturan kampanye.',
'- Jika tier jackpot dikonfigurasi sebagai **hadiah tetap**, jumlah jackpot tetap yang telah dikonfigurasi akan dibayarkan langsung.',
'- Jika tier jackpot dikonfigurasi sebagai **hadiah koefisien**, hadiah akan dihitung sebagai **nilai taruhan nomor menang × koefisien odds**, dan satu juta tetap tidak akan dibayarkan secara otomatis.',
'',
'**Contoh — hadiah tetap pada tingkat 10 (💎1.000.000), jumlah taruhan pada nomor kena 💎50 setiap putaran:**',
'**Contoh:**',
'',
'- 10 kemenangan berturut-turut → **💎1.000.000**',
'- Kemenangan berturut-turut diatur ulang ke **nol** setelah jackpot diberikan',
'- Jika tier jackpot dikonfigurasi sebagai hadiah tetap **💎1,000,000**',
'- Pemain mencapai tier jackpot tersebut dan menang',
'- Maka pemain akan langsung menerima **💎1,000,000**',
'',
'**Contoh — hadiah koefisien pada tingkat 10 (1:330), jumlah taruhan pada nomor kena 💎50:**',
'',
'- Hadiah reguler tingkat 10: 💎50 × 330 = **💎16.500**',
'- Jika kampanye Jackpot terpisah berlaku, hadiah satu juta tambahan dapat ditambahkan di atasnya',
'---',
].join('\n'),
confirm: 'Saya Mengerti',
streakRewardTable: {
title: 'Tabel Hadiah Kemenangan Beruntun',
columns: {
streak: 'Tier',
rewardType: 'Jenis Hadiah',
oddsFactor: 'Odds',
fixedAmount: 'Hadiah Tetap',
isJackpot: 'Jackpot',
},
rewardTypes: {
coefficient: 'Hadiah Koefisien',
fixed: 'Hadiah Tetap',
},
streakValue: 'Putaran {{streak}}',
yes: TEXT_YES,
no: TEXT_NO,
empty: 'Belum ada konfigurasi hadiah',
},
},
procedures: {
title: 'Isi Ulang / Tarik Dana',