Knight docs
EN ID
GitHub

Dialog & TextDraw

Dialog interaktif dan teks di layar.

Dialog

Gaya dialog: 0 message box, 1 input, 2 list, 3 password, 4 tab list, 5 tab list headers.

knight
let MENU = 200;

player::command("/menu") {
    ShowPlayerDialog(playerid, MENU, 2, "Menu utama",
        "Teleport\nHeal\nBeri uang", "Pilih", "Tutup");
};

dialog::response(int playerid, int id, bool accepted, string input, int listitem) {
    if (id != MENU) { return; }
    if (!accepted) {
        SendClientMessage(playerid, "Menu ditutup.");
        return;
    }
    if (listitem == 0) { SetPlayerPos(playerid, 1958.4, 1343.2, 15.4); }
    if (listitem == 1) { SetPlayerHealth(playerid, 100.0); }
    if (listitem == 2) { GivePlayerMoney(playerid, 500); }
};
Note
HidePlayerDialog(playerid) menutup dialog aktif dari server.

TextDraw

knight
let TD = 0;

system::start() {
    // TextDrawCreate(id, x, y, text)
    TextDrawCreate(TD, 320.0, 20.0, "Selamat datang di Knight");
    TextDrawLetterSize(TD, 0.4, 1.6);
    TextDrawColor(TD, 0xFFFFFFFF);
    TextDrawSetOutline(TD, 1);
    TextDrawSetProportional(TD, true);
};

player::spawn(int playerid) {
    TextDrawShowForPlayer(playerid, TD);
};

player::command("/hidetd") {
    TextDrawHideForPlayer(playerid, TD);
};

TextDraw yang bisa diklik

knight
TextDrawSetSelectable(TD, true);
SelectTextDraw(playerid, 0xFF0000FF);

textdraw::click(int playerid, int textdrawid) {
    if (textdrawid == TD) {
        SendClientMessage(playerid, "Kamu mengkliknya!");
        SelectTextDraw(playerid, 0);   // 0 menonaktifkan seleksi
    }
};
Tip
Seleksi memakai SelectTextDraw(playerid, colour) untuk mengaktifkan dan SelectTextDraw(playerid, 0) untuk mematikan. Id klik 65535 berarti pemain membatalkan.