feat(game): 更新游戏规则并优化充值提现界面

- 在 api.type.ts 中为支付渠道、存款配置和取款字段添加新的接口属性
- 替换桌面端规则模态框中的纯文本内容为支持 Markdown 格式的组件
- 重构桌面端充值组件的 UI 结构,使用自定义按钮替代原生选择器
- 为取款组件添加最低最高金额验证及支付方式选择功能
- 更新英文本地化文件中的游戏规则内容,提供详细的玩法指南
This commit is contained in:
JiaJun
2026-07-09 16:43:52 +08:00
parent 1535cb243b
commit 69cd9a7521
18 changed files with 3071 additions and 1056 deletions

View File

@@ -213,8 +213,134 @@ export default {
},
rules: {
title: 'Aturan Permainan',
content:
'1. Gameplay Dasar\n1) Setelah setiap ronde dimulai, pemain dapat memilih satu atau beberapa angka di papan untuk memasang taruhan.\n2) Setelah taruhan ditutup, sistem masuk ke fase undian dan menyelesaikan hadiah berdasarkan hasil ronde.\n3) Level chip yang berbeda mewakili jumlah taruhan yang berbeda, mengikuti batas meja dan konfigurasi saat ini.\n\n2. Catatan Taruhan\n1) Taruhan hanya bisa dikirim saat fase taruhan berlangsung.\n2) Sebelum konfirmasi, periksa kembali angka yang dipilih, nominal chip, dan total taruhan.\n3) Jika saldo tidak cukup, ronde tidak lagi valid, atau taruhan sudah ditutup, permintaan akan ditolak.\n\n3. Undian dan Penyelesaian\n1) Hasil undian akhir yang ditampilkan sistem adalah hasil yang berlaku.\n2) Aturan kena, odds, pembayaran, dan performa streak diselesaikan secara real time sesuai konfigurasi room saat ini.\n3) Jika terjadi gangguan jaringan, silakan mengacu pada data resmi setelah sinkronisasi ulang.\n\n4. Catatan Tambahan\n1) Mohon atur waktu bermain secara bertanggung jawab.\n2) Segala tindakan tidak wajar untuk mengganggu sistem, mengeksploitasi hadiah, atau menghindari kontrol risiko dilarang keras.\n3) Platform berhak meninjau pesanan, pembayaran, dan status akun dalam kondisi khusus.',
content: [
'## 36 Zihua · Panduan Permainan',
'',
'### 1. Pengenalan Permainan',
'',
'**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**.',
'',
'---',
'',
'### 2. Cara Bermain',
'',
'Setiap putaran berlangsung sekitar **30 detik**:',
'',
'**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.',
'',
'**Langkah 2 — Penutupan (pada detik ke-20)**',
'Tidak ada taruhan baru yang diterima. Taruhan yang dipasang setelah penutupan tidak berlaku.',
'',
'**Langkah 3 — Pengundian & penyelesaian (2030 detik)**',
'Nomor pemenang diumumkan dan hadiah dibayarkan sesuai aturan hadiah.',
'',
'**Langkah 4 — Putaran berikutnya**',
'Setelah penyelesaian, putaran berikutnya dimulai secara otomatis.',
'',
'---',
'',
'### 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.',
'',
'**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.',
'',
'---',
'',
'### 4. Jenis Hadiah',
'',
'Hadiah kemenangan berturut-turut terdiri dari **dua jenis**. Setiap tingkat hanya menggunakan **satu jenis** — **tidak digabungkan**:',
'',
'#### Jenis A — Hadiah Koefisien',
'',
'Hadiah dihitung menggunakan pengali odds:',
'',
'```',
'Hadiah = jumlah taruhan pada nomor kena × koefisien odds',
'```',
'',
'#### Jenis B — Hadiah Tetap',
'',
'Anda menerima **jumlah tetap** yang ditetapkan dalam konfigurasi.',
'**Tidak bergantung pada jumlah taruhan dan tidak menggunakan koefisien odds.**',
'',
'```',
'Hadiah = jumlah tetap',
'```',
'',
'**Perbandingan (contoh Tingkat 10):**',
'',
'| 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) |',
'',
'---',
'',
'### 5. Aturan Kemenangan Berturut-turut',
'',
'Saat Anda **menang berturut-turut**, hadiah meningkat sesuai tingkat kemenangan. Secara default, **hadiah koefisien** digunakan dengan odds yang meningkat:',
'',
'| 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 |',
'',
'**Aturan kemenangan berturut-turut:**',
'',
'- 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**.',
'',
'**Contoh (hadiah koefisien):**',
'',
'| 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** |',
'',
'---',
'',
'### 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.',
'',
'**Syarat:**',
'',
'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**.',
'',
'**Cara pembayaran (tergantung konfigurasi backend):**',
'',
'- **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.',
'',
'**Contoh — hadiah tetap pada tingkat 10 (💎1.000.000), jumlah taruhan pada nomor kena 💎50 setiap putaran:**',
'',
'- 10 kemenangan berturut-turut → **💎1.000.000**',
'- Kemenangan berturut-turut diatur ulang ke **nol** setelah jackpot diberikan',
'',
'**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',
},
procedures: {
@@ -648,6 +774,7 @@ export default {
diamondAmount: 'Jumlah Berlian Penarikan',
currencyType: TEXT_CURRENCY_TYPE,
paymentChannel: TEXT_PAYMENT_CHANNEL,
paymentType: 'Jenis Pembayaran',
bankCode: 'Kode Bank',
cardHolderName: 'Nama Pemilik Rekening',
bankAccountNumber: 'Nomor Rekening Bank',
@@ -656,6 +783,7 @@ export default {
},
placeholders: {
bankCode: 'Pilih kode bank',
paymentType: 'Pilih jenis pembayaran',
cardHolderName: 'Masukkan nama pemilik rekening',
bankAccountNumber: 'Masukkan nomor rekening bank',
receiverEmail: 'Masukkan email penerima',
@@ -665,6 +793,10 @@ export default {
amountRequired: 'Silakan masukkan jumlah diamond penarikan.',
amountBelowMinimum:
'Jumlah penarikan tidak boleh lebih kecil dari minimum ({{currency}} {{amount}} / {{diamonds}} diamond).',
amountBelowPaymentMinimum:
'Jumlah penarikan tidak boleh lebih kecil dari minimum jenis pembayaran ini ({{amount}}).',
amountAbovePaymentMaximum:
'Jumlah penarikan tidak boleh melebihi maksimum jenis pembayaran ini ({{amount}}).',
bankCodeRequired: 'Silakan pilih kode bank.',
bankCodeUnavailable: 'Saat ini tidak ada kode bank yang tersedia.',
cardHolderNameRequired: 'Silakan masukkan nama pemilik rekening.',
@@ -672,6 +804,7 @@ export default {
paymentChannelRequired: 'Silakan pilih saluran pembayaran.',
paymentChannelUnavailable:
'Saat ini tidak ada saluran pembayaran yang tersedia.',
paymentTypeRequired: 'Silakan pilih jenis pembayaran.',
receiverEmailInvalid: 'Silakan masukkan alamat email yang valid.',
receiverPhoneInvalid: 'Silakan masukkan nomor telepon yang valid.',
amountExceedsBalance: