Instalasi
Unduh Knight, jalankan server, dan validasi gamemode. Tanpa toolchain compiler, tanpa Pawn, tanpa server.cfg.
Server Knight adalah satu folder dengan dua program:
Bin/knight-server— server. Memuat gamemode.sadan menjalankannya.- **
tools/knight-*** — validator. Memeriksa file.satanpa menyalakan server.
1. Dapatkan filenya
Clone distribusinya:
git clone https://github.com/ventosilenzioso/knight.git
cd knight
Struktur yang Anda dapat:
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
Bin/knight-server yang wajib. Sisanya dokumentasi dan contoh yang boleh dihapus.2. Jalankan server
Jalankan dengan sebuah gamemode dan server langsung online:
./Bin/knight-server -gamemode Gamemodes/minimal.sa
# Windows: Binknight-server.exe -gamemode Gamemodesminimal.sa
-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:
gamemode0 minimal 1
port 7777
hostname "My Knight Server"
maxplayers 50
connect_timeout 20
./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.
# 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:
./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
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)
$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")
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:
./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
| Tujuan | Halaman |
|---|---|
| Menulis gamemode pertama | Gamemode Pertama |
| Mempelajari bahasa | Panduan Bahasa |
| Mencari native | Fungsi Native |
| Memecah gamemode jadi modul | Modul & Import |
| Mengaktifkan plugin | Hub Plugin |
| Menyetel konfigurasi | Konfigurasi |
Masalah umum
| Masalah | Solusi |
|---|---|
command not found | Jalankan dengan awalan ./Bin/... atau ./tools/..., atau tambahkan folder ke PATH. |
gamemode load failed | Path salah atau file tidak bisa dikompilasi. Jalankan validator untuk melihat errornya. |
bind: address already in use | Port dipakai server lain. Ubah server.port atau port di server.cfg. |
| Pemain terputus setelah beberapa detik | Naikkan connect_timeout (default 20) untuk jaringan seluler lemah. |
Permission denied | chmod +x Bin/knight-server atau pakai sudo. |
| macOS: tidak bisa dibuka | Jalankan xattr -d com.apple.quarantine pada file tersebut. |
Windows: knight membuka Store | Matikan App Execution Alias untuk knight.exe di Settings → Apps. |