Knight docs
EN ID
GitHub

Instalasi

Unduh Knight, jalankan server, dan validasi gamemode. Tanpa toolchain compiler, tanpa Pawn, tanpa server.cfg.

Server Knight adalah satu folder dengan dua program:

Note
Anda tidak perlu Go, Pawn, atau compiler apa pun. Gamemode dikompilasi server saat start; validator hanya pemeriksaan awal opsional.

1. Dapatkan filenya

Clone distribusinya:

bash
git clone https://github.com/ventosilenzioso/knight.git
cd knight

Struktur yang Anda dapat:

text
Bin/            knight-server (Linux) dan knight-server.exe (Windows)
tools/          validator knight (Linux, macOS arm64, Windows)
Gamemodes/      gamemode .sa siap pakai
Gamemodes/modules/  contoh modul dan hook
server.cfg      konfigurasi bawaan (opsional)
docs/           bahasa, callback, native, plugin, custom RPC
Tip
Hanya Bin/knight-server yang wajib. Sisanya dokumentasi dan contoh yang boleh dihapus.

2. Jalankan server

Jalankan dengan sebuah gamemode dan server langsung online:

bash
./Bin/knight-server -gamemode Gamemodes/minimal.sa
# Windows: Binknight-server.exe -gamemode Gamemodesminimal.sa
Note
-gamemode saja cukup: server.cfg opsional. system::config() di gamemode mengatur nama, port, slot, dan semua pengaturan lain.

Memakai server.cfg

Bila lebih suka file, isi gamemode0 di server.cfg lalu jalankan server tanpa flag:

cfg
gamemode0 minimal 1
port 7777
hostname "My Knight Server"
maxplayers 50
connect_timeout 20
bash
./Bin/knight-server -cfg server.cfg

Nilai di system::config() menang; server.cfg mengisi field yang tidak dideklarasikan kode.

3. Validasi gamemode (opsional)

Validator menangkap error sintaks dan tipe tanpa menyalakan server. Ia menyelesaikan include dan import serta mengenali native plugin.

bash
# Linux
./tools/knight-linux-amd64 -check Gamemodes/minimal.sa
# ok: 4 events, 1 config blocks

# macOS (Apple silicon)
./tools/knight-macos-arm64 -check Gamemodes/minimal.sa

# Windows
toolsknight-windows-amd64.exe -check Gamemodesminimal.sa

-ast mencetak pohon parse, berguna bila sebuah ekspresi berperilaku aneh:

bash
./tools/knight-linux-amd64 -ast Gamemodes/minimal.sa

4. Opsional: masukkan ke PATH

Agar knight-server bisa dipanggil dari folder mana pun. Ini hanya kemudahan; perintah di atas tetap jalan dari folder hasil ekstrak.

Linux / macOS

bash
sudo install -m 755 Bin/knight-server /usr/local/bin/knight-server
sudo install -m 755 tools/knight-linux-amd64 /usr/local/bin/knight

# tanpa sudo
mkdir -p ~/.local/bin
install -m 755 Bin/knight-server ~/.local/bin/knight-server
install -m 755 tools/knight-linux-amd64 ~/.local/bin/knight
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc

Windows (PowerShell)

powershell
$dir = "$env:LOCALAPPDATAKnight"
New-Item -ItemType Directory -Force -Path $dir | Out-Null
Copy-Item Binknight-server.exe "$dirknight-server.exe"
Copy-Item toolsknight-windows-amd64.exe "$dirknight.exe"

$p = [Environment]::GetEnvironmentVariable("Path", "User")
[Environment]::SetEnvironmentVariable("Path", "$p;$dir", "User")
Tip
Buka ulang terminal setelah mengubah PATH. Setelah itu knight -check dan knight-server bisa dipakai di mana saja.

5. Pastikan instalasi berhasil

Tidak ada flag -version. Pastikan dengan memvalidasi gamemode bawaan dan melihat server menyala:

bash
./tools/knight-linux-amd64 -check Gamemodes/minimal.sa
# ok: 4 events, 1 config blocks

./Bin/knight-server -gamemode Gamemodes/minimal.sa
# gamemode loaded: Gamemodes/minimal.sa
# Knight listening port=7777 hostname="Minimal Knight"

Lalu sambungkan client SA-MP 0.3.7 atau 0.3.DL ke port 7777.

6. Langkah berikutnya

TujuanHalaman
Menulis gamemode pertamaGamemode Pertama
Mempelajari bahasaPanduan Bahasa
Mencari nativeFungsi Native
Memecah gamemode jadi modulModul & Import
Mengaktifkan pluginHub Plugin
Menyetel konfigurasiKonfigurasi

Masalah umum

MasalahSolusi
command not foundJalankan dengan awalan ./Bin/... atau ./tools/..., atau tambahkan folder ke PATH.
gamemode load failedPath salah atau file tidak bisa dikompilasi. Jalankan validator untuk melihat errornya.
bind: address already in usePort dipakai server lain. Ubah server.port atau port di server.cfg.
Pemain terputus setelah beberapa detikNaikkan connect_timeout (default 20) untuk jaringan seluler lemah.
Permission deniedchmod +x Bin/knight-server atau pakai sudo.
macOS: tidak bisa dibukaJalankan xattr -d com.apple.quarantine pada file tersebut.
Windows: knight membuka StoreMatikan App Execution Alias untuk knight.exe di Settings → Apps.