Bu deponun lisans dosyası yok. Okumak için herkese açık, ama bu tek başına yeniden kullanma izni vermez.
sampctl ile kur
sampctl package install renodwi/rdialog-pages
Bunu proje klasöründe çalıştır. sampctl paketi ve bağımlı olduklarını indirir.
1 pakete bağımlı
README.md
rdialog-pages
Sebuah include sederhana untuk SA-MP yang memungkinkan penggunaan dialog dengan sistem halaman (paginated dialog).
Library ini membantu kamu menampilkan daftar panjang data dalam dialog dengan tombol “Next” dan “Back”, tanpa perlu membuat banyak dialog manual.
Installation
Simply install to your project:
sampctl package install renodwi/rdialog-pages
Include in your code and begin using the library:
#include <rdialog-pages>
Usage
📘 Konsep Utama
Library ini meniru perilaku paginated UI di SA-MP dengan cara menyimpan daftar item dalam array per-player, lalu menampilkannya secara bertahap melalui sistem dialog bawaan (ShowPlayerDialog).
Kamu dapat:
- Menambahkan item ke daftar dialog.
- Mengatur jumlah item per halaman.
- Menambahkan tombol navigasi “Next” dan “Back”.
- Menangani respons pemain dari halaman tertentu.
⚙️ API Reference
ClearPlayerDialogPages(playerid)
Menghapus seluruh daftar item dialog pemain dan mengatur ulang halaman ke awal.
Parameters:
playerid: ID pemain yang datanya akan dihapus.
Returns: 1
AddPlayerDialogPages(playerid, const listitem[])
Menambahkan item baru ke daftar dialog pemain.
Parameters:
playerid: ID pemain target.listitem[]: Teks item yang akan ditampilkan pada dialog.
Returns:
1jika berhasil.0jika jumlah item sudah mencapai batasMAX_RDIALOG_PAGES(500).
ShowPlayerDialogPages
Fungsi utama untuk menampilkan dialog dengan sistem halaman.
Parameters:
ShowPlayerDialogPages(playerid, const function[], style, const caption[], const button1[], const button2[], item_per_page = 10, const nextbutton[] = "{FF0000}Halaman Selan>>>", const backbutton[] = "{FF0000}<<< Halaman Sebelumnya");
Deskripsi:
function: Nama callback yang akan dipanggil saat pemain memilih item.style: Tipe dialog (mis.DIALOG_STYLE_LIST,DIALOG_STYLE_TABLIST_HEADERS, dll).caption: Judul dialog.button1danbutton2: Label tombol dialog.item_per_page: Jumlah item per halaman (default 10).nextbuttondanbackbutton: Label navigasi antar halaman.
🔁 Callback Integrasi
Callback bawaan SA-MP OnDialogResponse di-hook agar sistem rDialogPages bisa bekerja otomatis.
Kamu hanya perlu mendefinisikan callback baru dengan nama sesuai argumen function pada ShowPlayerDialogPages.
Contoh:
DialogPages:MyMenu(playerid, response, listitem, inputtext[])
{
if (!response) return 1;
switch (listitem)
{
case 0: SendClientMessage(playerid, -1, "Kamu memilih item 1");
case 1: SendClientMessage(playerid, -1, "Kamu memilih item 2");
}
return 1;
}
🧩 Contoh Penggunaan Lengkap
#include <a_samp>
#include <rdialog-pages>
public OnPlayerCommandText(playerid, cmdtext[])
{
if (!strcmp(cmdtext, "/testpage", true))
{
ClearPlayerDialogPages(playerid);
AddPlayerDialogPages(playerid, "Item 1");
AddPlayerDialogPages(playerid, "Item 2");
AddPlayerDialogPages(playerid, "Item 3");
AddPlayerDialogPages(playerid, "Item 4");
AddPlayerDialogPages(playerid, "Item 5");
AddPlayerDialogPages(playerid, "Item 6");
ShowPlayerDialogPages(playerid,
"MyMenu",
DIALOG_STYLE_LIST,
"Contoh rDialog Pages",
"Pilih",
"Tutup",
3 // Item per page
);
return 1;
}
return 0;
}
DialogPages:MyMenu(playerid, response, listitem, inputtext[])
{
if (!response) return 1;
new msg[64];
format(msg, sizeof msg, "Kamu memilih item %d", listitem + 1);
SendClientMessage(playerid, -1, msg);
return 1;
}
Testing
Untuk mengetes library ini, jalankan paket dengan perintah berikut:
sampctl package run
Saat dijalankan, gunakan perintah /testpage di dalam game untuk mencoba fitur paged dialog.
Catatan
- Maksimal item per pemain:
500 - Panjang string per item:
256 - Fungsi otomatis menangani
\ndan\ragar tampilan dialog tetap rapi. - Kompatibel dengan sistem callback eksternal lainnya berkat alias
rdlgpgs_OnDialogResponse.
© 2025 – Created by @renodwi
Bu sayfa GitHub’ın depo hakkında yayımladıklarından oluşturulur. samp.directory kodu barındırmaz. Bu ilanla ilgili bir sorun bildir