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:
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:
config.defaultChatCategory = "command"Eğik çizgili (slash) ve çizgisiz komutlar
--- 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 = trueKategori parametreleri
Her kategori zengin bir alan setini destekler. Kısaltılmış bir örnek:
{
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.