Konsol Komutu Otomatik Tamamlama

Otomatik Tamamlama

Otomatik tamamlama, kullanıcıların konsollarına yazdığı komutlar için olası devamları önerir.

Bu mekanik yalnızca komut kullanımını basitleştirmekle kalmaz,
aynı zamanda kullanıcılara bunları nasıl kullanabileceklerini de öğretir.


Tamamlama Fonksiyonu

concommand.Add ile kaydedilen komutlara
bir otomatik tamamlama fonksiyonu atanabilir.

concommand.Add('my-command',onCommand,onAutoComplete)

Bu fonksiyon, önerilerden oluşan bir dizi (array) döndürebilir.

local function onAutoComplete () return { 'my-command OptionA' , 'my-command OptionB' } end

Öneriler, girdinin altında görüntülenecektir.

MyCommand OptionA&B


Parametreler

Tamamlama fonksiyonu ayrıca, daha bağlama duyarlı öneriler döndürmenize
olanak tanıyan 2 parametre alır.

function onAutoComplete ( command , parameters )

command : String

Otomatik tamamlama fonksiyonunu çağıran komutun adı.

parameters : String

Komutun kendisinden sonra yazılan her şey.

Komut adları büyük/küçük harfe duyarlı olmadığından, command parametresi herhangi bir
yazım şekline sahip olabilir (mY-CoMMaND) ve arama tablolarıyla kullanıldığında normalleştirilmelidir.
Otomatik tamamlama fonksiyonu yalnızca komut adından sonra en az 1 karakter yazıldığında çağrılır,
bu nedenle parameters her zaman bir boşluk karakteriyle başlar.


Girdi Örnekleri

Input Basic

command : `my-command` parameters : ` `

Input Extended

command : `my-command` parameters : ` is useful`


Kullanım Durumları

command parametresi, komutların adını değiştirmek için kullanılabilir.

local function onAutoComplete ( command ) return { command .. ' ' .. 'option' } end

parameters dizesi işlenebilir ve iç içe öneriler için kullanılabilir.

local function onAutoComplete ( command , parameters ) -- Dizeyi normalleştirir parameters = parameters:Trim():lower() -- Dizeyi bir diziye böler parameters = string.Explode('%s+',parameters,true) if parameters[ 1 ] == 'is' then return { command .. ' is useful' } end if parameters[ 1 ] == 'was' then return { command .. ' was broken' } end return { command .. ' ' .. 'was' , command .. ' ' .. 'is' } end

Yalnızca komutun yazılması, iki olası alt komut önerir.

Parameters None

was alt komutunun eklenmesi, yalnızca ona özgü seçenekleri görüntüler.

Parameters Was

is alt komutunun eklenmesi, yalnızca ona özgü seçenekleri görüntüler.

Parameters Is


Örnekler

Bot İsim Listesi

Mevcut girdiye göre bot oyuncu adlarını önerir.

-- Mevcut girdiyle eşleşen tüm bot adlarını bulur local function matchingBotNames ( input ) local names = {} local bots = player.GetBots() for _ , bot in ipairs(bots) do local name = bot:Nick() if name:lower():find(input) then table.insert(names,name) end end return names end local function onAutoComplete ( command , input ) -- Dizeyi normalleştirir input = input:Trim():lower() -- Bot adlarını öneri olarak sarmalar local suggestions = {} local names = matchingBotNames(input) for _ , name in ipairs(names) do local suggestion = command .. ' "' .. name .. '"' table.insert(suggestions,suggestion) end return suggestions end local function onCommand () end concommand.Add( 'bot-command' , onCommand , onAutoComplete )

bot komutuyla birkaç bot oyuncu oluşturun.

Names Bots

Adları aşağıdaki gibi önerilecektir.

Names Command


Konsol komutu replikasyonu

Konsol komutları replike edilmez. Bir konsol komutunu replike etmek isterseniz, AddCSLuaFile kullanmanız veya hem sunucuda hem de istemcide özel davranış oluşturmanız gerekir.

Resimler için eski katkıda bulunanlara özel teşekkürler. Kod shawnjbragdon tarafından yazılmıştır.

Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord