Skip to content

Sohbet Kategorileri

Chat Kategorileri

Kategoriler, sohbet girişindeki sekmelerdir. Her biri kendi renklerine, etiketlerine, izinlerine, iletim kurallarına ve kimlik rozetlerine sahip ayrı birer kanaldır. shared/config/categories.lua dosyasında config.chatCategories olarak tanımlanırlar.

Yerleşik Komutlar (Commands) sekmesi

Bir command kategorisi, çalışma zamanında (runtime) her zaman ilk sekme olarak eklenir (shared/main.lua dosyasından) — bunu kendiniz tanımlamazsınız:

shared/main.lua
table.insert(config.chatCategories, 1, {
    label = "CATEGORY_COMMANDS_LABEL",
    type = "command",
    icon = "terminal",
    placeholder = "CATEGORY_COMMANDS_PLACEHOLDER",
})

Bu sekmede yazılan herhangi bir şey komut olarak yürütülür. config.allowNoSlashCommands = true ayarı ile, bilinen bir komut adı başında eğik çizgi (slash) olsun veya olmasın çalışır (me hi yazmak /me hi komutunu çalıştırır).

Kutudan çıktığı gibi aktif olanlar

Varsayılan olarak yalnızca Admin kategorisi config.chatCategories içinde etkindir. OOC (Global), OOC (Yerel/en yakın), Polis, EMS ve Çete (Gang) için kullanıma hazır örnekler dosyada yer alır ancak devre dışı bırakılmıştır (yorum satırındadır) — ihtiyacınıza göre yorum satırından çıkarıp düzenleyebilirsiniz.

Kategori type Erişimin nasıl sınırlandırıldığı
Komutlar command Her zaman mevcut (otomatik eklenir)
Admin admin ACE izinleri command / admin / adminchat
OOC (Global) ooc Herkese açık (örnek)
OOC (Yerel) oocclosest Yakınlık — metre cinsinden distance (örnek)
Polis pdchat jobs = { police = {...grades} } (örnek)
EMS emschat jobs = { ambulance = true } (örnek)
Çete gang gangs = { ... } (örnek)

Varsayılan kategori

config.defaultChatCategory, sohbet açıldığında hangi sekmenin odaklanacağını belirler:

shared/config/general.lua
config.defaultChatCategory = "command"

Eğik çizgili (slash) ve çizgisiz komutlar

shared/config/general.lua
--- true  = komutlar başında eğik çizgi (slash) OLARAK VE OLMADAN çalışır ("me hi", /me komutunu çalıştırır)
--- false = komutlar yalnızca başında eğik çizgi ile tetiklenir ("/me hi")
config.allowNoSlashCommands = true

Kategori parametreleri

Her kategori zengin bir alan setini destekler. Kısaltılmış bir örnek:

shared/config/categories.lua
{
    label = "CATEGORY_ADMIN_LABEL",  -- sekme adı için çeviri anahtarı
    type = "admin",                  -- bu kategori için benzersiz kimlik (id)
    icon = "shield-alt",             -- FontAwesome simgesi
    webhookKey = "chatMessage",      -- Discord log webhook'u (bkz. Discord Logging)
    placeholder = "CATEGORY_ADMIN_PLACEHOLDER",
    permissions = { "command", "admin", "adminchat" }, -- gerekli ACE izinleri
    maxLength = 500,                 -- maksimum mesaj uzunluğu
    tags = {                         -- mesajdan önce gösterilen sabit etiket(ler)
        { tag = "Admin", textColor = { 51, 51, 51 }, bgColor = { 255, 105, 97 } },
    },
    color = { 255, 105, 97 },        -- varsayılan mesaj metni rengi
    showPlayerName = { active = true, censored = false, showWearingMask = true },
    showPlayerId   = { active = false, type = "serverId" },
    showPlayerJob  = { active = false, showLabel = true, showGrade = false },
    discordTag     = { active = false, maxShow = 1, roles = { ... } },
    showHour       = { active = true },
}

Tam alan referansı (aksi belirtilmedikçe tümü isteğe bağlıdır):

Alan Tür Açıklama
label string Sekme görünen adı için çeviri anahtarı
type string Zorunlu. Kategori için benzersiz tanımlayıcı
icon string FontAwesome simge adı
webhookKey string Bu kategorinin mesajlarını loglamak için Discord webhook anahtarı
command string / string[] Bu kategoriye yönlendirilen sohbet komutu/komutları
placeholder string Girdi alanı yer tutucusu için çeviri anahtarı
distance number Metre cinsinden maksimum iletim mesafesi; global için boş bırakın
maxLength number Maksimum mesaj karakter uzunluğu
permissions string[] Kategoriyi görmek/kullanmak için gereken ACE izinleri
jobs table Gerekli meslekler — true = tüm kademeler, number[] = belirli kademeler
gangs table Gerekli çeteler — jobs ile aynı yapıda
tags table[] Mesajlardan önce gösterilen sabit etiketler (tag, textColor, bgColor)
color RGB Varsayılan mesaj metni rengi { r, g, b }
showPlayerName table active, censored, bgColor, textColor, showWearingMask
showPlayerId table active, type = "serverId", renkler
showPlayerJob table active, showLabel, showGrade, renkler, mesleğe özel geçersiz kılmalar
discordTag table active, maxShow, roles[] (Discord rolü → etiket)
showHour table active, renkler — mesaj zamanını ekler

İsim sansürleme, maskelenmiş bir isim gösterir (örn. J*** D**). Eğer bir oyuncu maske takıyorsa, showWearingMask = true olarak ayarlanmadığı sürece ismi Bilinmeyen (Unknown) olarak gizlenir — maske kontrolü general.lua içindeki config.noneMask tarafından sağlanır.