Chat
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
The Sohbet hizmeti, miras sohbet sistemini çalıştıran Luau kodunu barındırır.StarterPlayerScripts 'a benzer şekilde, varsayılan nesneler Scripts ve ModuleScripts gibi hizmete girilir.
Özet
Özellikler
oyuncusohbet mesajlarının oyun avatarının üzerinde görünecek olup olmadığını belirler.
Oyun çalışırken varsayılan sohbet çerçevesi otomatik olarak yüklenecek olup olmadığını değiştirir.
Yöntemler
Bu yöntemde belirtilen parametarlarla Chat.Chatted etkinliğini ateş eder.
Luau Sohbet Sistemi tarafından kaydedilen bir sohbet geri arama işlevini çağırın RegisterChatCallback. Luau Sohbet Sistemi tarafından kullanılır.
Bazı sohbet sistemi etkinliğinin çağrısı üzerine çağrılacak bir işlev kaydedin ( InvokeChatCallback ).
Oyun içi balon sohbetinin çeşitli ayarlarını özelleştirir.
Belirtilen Player.UserId ile oynayan oyuncunun hesap ayarları nedeniyle sohbet etmesine izin verilmediğinde yanlış dönecektir.
İki kullanıcı iletişim kuramazsa, hesap ayarları buna izin vermediğinden false döndürür.
Oyuncudan diğer bir oyuncuya gönderilen bir dizeyi, oyuncuların hesap ayarlarına uygun filtreleme kullanarak filtreler.
Belirli bir hedefe yayınlanmak üzere gönderilen bir dizeyi filtreler. Chat:FilterStringAsync() 'den daha kısıtlayıcıdır.
Etkinlikler
Chat:Chat() çağrıldığında ateş eder.
Özellikler
BubbleChatEnabled
Eğer doğruysa, sohbete bir mesaj girmek oyuncunun Player.Character üzerinde bir sohbet balonu açacaktır.Bu davranış, Studio'da bu kutuyu doğrudan işaretleyerek veya bir LocalScript kullanarak etkinleştirilebilir:
local ChatService = game:GetService("Chat")ChatService.BubbleChatEnabled = true
Bunun müşteride yapılması gerekir, bu değeri sunucu tarafında Script geçiştirmek hiçbir etkiye sahip olmayacaktır.
LoadDefaultChat
Oyun çalışırken varsayılan sohbet çerçevesi otomatik olarak yüklenecek olup olmadığını değiştirir.
Yöntemler
Chat
Sohbet işlevi, bu yöntemde belirtilen parametarlarla Chat.Chatted etkinliğini ateş eder.
Varsayılan olarak, her oyuncunun içinde bir BubbleChat adlı nesnesi var, bu da sohbet olayı ateşlendiğinde kısım veya karakter üzerinde bir diyalog benzeri reklam görünmesine neden oluyor.
Not: Çünkü diyaloglar bir YerelScript tarafından kontrol edilir, bu yöntemden oluşturulan herhangi bir diyaloğu göremeyeceksiniz, eğer Solo Oynama modunda çalışmıyorsanız.
Parametreler
BubbleChat diyaloğunun üstünde görünmesi gereken parça veya karakter olan bir instans.
Mesaj dizesi sohbet ediliyor.
Enum.ChatColor sohbet mesajının rengini belirten bir özellik.
Dönüşler
Kod Örnekleri
The below example would create a part in Workspace and cause it to exclaim "Blame John!"
local ChatService = game:GetService("Chat")
local part = Instance.new("Part")
part.Anchored = true
part.Parent = workspace
ChatService:Chat(part, "Blame John!", "Red")
InvokeChatCallback
InvokeChatCallback, ChatCallbackType enumerasyonu ve işlevi göndermek için verilen argümanlar verildiğinde RegisterChatCallback tarafından kayıtlı bir işlev çağıracaktır.Kayıtlı işlevin sonucunu döndürecek veya kayıtlı bir işlev yoksa bir hata ayıklayacaktır.
Bu işlev, Luau Sohbet Sistemi tarafından çağrılır, böylece sohbet geri çağrıları belirli özelliklerin davranışını değiştirmek için kaydedilebilir.Varsayılan Luau Sohbet Sistemini sahip olsisteminizle değiştirmiyorsanız, bu işlevi çağırmak zorunda olmayacaksınız.Farklı geri çağrı işlevleri hakkında bilgi edinebilirsiniz Chat:RegisterChatCallback() .
Parametreler
Arayınacak geri arama türü.
Kayıtlı geri arama işlevine gönderilecek argümanlar.
Dönüşler
Verilen ChatCallbackType'a kayıtlı işlev tarafından döndürülen değerler.
RegisterChatCallback
RegisterChatCallback, Luau sohbet sisteminin davranışını etkilemek için bir işlevi bazı sohbet sistemi etkinliğine bağlar.İlk argüman, ikinci argümanın, işlevin, bağlı olacağı olayı (Enum.ChatCallbackType enum kullanarak) belirler.Varsayılan Luau sohbet sistemi kayıtlı işlevleri çağırmak için InvokeChatCallback kullanır.Bir sunucu veya istemci olmayan bir arkadaşta sadece sunucu veya istemci tarafından kullanılan bir geri arama kaydetmeye çalışmak bir hata yükselecektir.Aşağıdaki bölümler, kayıtlı işlevlerin hangi şekillerde kullanılacağını açıklar.
OnCreatingChatWindow oluşturma penceresi
Sadece istemci.Müşteri sohbet penceresini oluşturmadan önce çağrılır.ChatSettings modülü tarafından döndürülen bilgiye birleştirilecek bir tablo ayarını geri göndermelisiniz.
OnClientFormattingMessage'da
Sadece istemci.Müşteri bir mesaj görüntülemeden önce çağrılır (oyuncu sohbet mesajı, sistem mesajı veya /me komutu).Bu işlev, mesaj nesnesi ile çağrılır ve (veya değil) message.ExtraData içine birleştirilecek bir tablo döndürebilir (veya döndürmeyebilir).
OnClientSendingMessage'da
Bu sefer çağrılmadı.
OnServerReceivingMessage'da
Sunucu sadece.Sunucu bir konuşmacıdan bir mesaj aldığında çağrılır (konuşmacıların mutlaka bir Player sohbet olması gerekmediğini unutmayın).Bu geri arama, Mesaj nesnesi ile çağrılır.İşlev, mesajın işlenme şeklini değiştirmek için Mesaj nesnesine değişiklik yapabilir. Bu geri çağrı için herhangi bir şey yapmak için Mesaj nesnesi iade edilmelidir.: Bu geri çağrıyı ayarlamak, örneğin sunucunun şunları yapmasına izin verebilir:
- Mesajın oyunculara gönderimini iptal etmek için message.ShouldDeliver false'a ayarlayın (bir sohbet hariç listesi uygulamak için yararlı)
- Mesaj başına hoparlöradı rengini al/ayarla ( message.ExtraData.NameColor , bir Renk3)
Parametreler
İşlevin kaydedileceği geri çağrı (işlevin nasıl çağrılacağını belirler).
Geri çağrı kullanılarak geri çağrı yapıldığında çağrılacak işlev: Sohbet:InvokeChatCallback.
Dönüşler
SetBubbleChatSettings
Bu işlev, oyun içi balon sohbetinin çeşitli ayarlarını özelleştirir.
Bunu kullanmadan önce, balon sohbetinin etkinleştirildiğinden emin olmak için Chat.BubbleChatEnabled 'yi doğru olarak ayarlayın.
Ayarlar argümanı, anahtarların adının düzenlemek istediğiniz ayarların isimleri ve değerlerin bu ayarları değiştirmek istediğiniz değerler olduğu bir tablodur.Hepsini ayar argümanına dahil etmeniz gerekmediğini unutmayın; bazılarını atlamak, varsayılan değerlerini korumalarına neden olacaktır.
Bu işlev sadece istemci tarafındadır ve sunucuya çağırmaya çalışmak bir hata verecektir.
Parametreler
Bir ayar tablosu.
Dönüşler
Kod Örnekleri
When run from a LocalScript, this snippet will make all the chat bubbles appear with bigger text under a different font and a light blue background. Note that all the other settings will keep their default value.
local ChatService = game:GetService("Chat")
ChatService:SetBubbleChatSettings({
BackgroundColor3 = Color3.fromRGB(180, 210, 228),
TextSize = 20,
Font = Enum.Font.Cartoon,
})
If you want to reset the bubble chat to its default look, you can call this function with an empty table, because any setting you omit from the argument will result in it returning to its default value:
local ChatService = game:GetService("Chat")
ChatService:SetBubbleChatSettings({})
CanUserChatAsync
Belirtilen Player.UserId ile oynayan oyuncunun hesap ayarları nedeniyle sohbet etmesine izin verilmediğinde yanlış dönecektir.
Parametreler
Dönüşler
CanUsersChatAsync
İki kullanıcı iletişim kuramazsa, hesap ayarları buna izin vermediğinden false döndürür.
Parametreler
Dönüşler
FilterStringAsync
Kısmi Depreiasyon Uyarısı : Bu işlevi bir LocalScript kullanarak istemeden çağırmak eski ve gelecekte devre dışı bırakılacaktır.Metin filtreleme, benzer isimdeki 'den sunucuda yapılmalıdır, ki bu da farklı bir dizi parametre ve geri dönüş yazkullanır.
Oyuncu tarafından üretilen metni doğru bir şekilde filtrelemeyen oyunlar, moderasyon aksiyontabi olabilir.Lütfen bir oyunun yayınlanmadan önce doğru bir şekilde metin filtrelediğinden emin olun.
FiltreStringAsync bir gönderici ve oyuncuuygun filtreleme kullanarak bir dizeyi filtreler.Filtrelenmiş dize, bir alışveriş yapadı gibi kalıcı bir mesaj için kullanılacaksa, plaka üzerine yazılırken yazar ile alıcı olarak işlev çağrılmalıdır.
Bu işlev her seferinde kullanılmalıdır bir oyuncu herhangi bir kontekste özel metin girebilir , çoğunlukla bir kullanarak .Filtrelenmesi gereken metin örnekleri:
- Özel sohbet mesajları
- Özel karakter isimleri
- Bir tycoon tarzı oyundaki bir dükkân için isimler
Parametreler
Filtrelenmesi gereken orijinal dize, oyuncunun girdiği gibi aynen.
Metnin yazarı.
Verilen metnin hedeflenen alıcısı; metin kalıcıysa yazarı kullanın (açıklamaya bakın).
Dönüşler
FilterStringForBroadcast
Belirli bir hedefe yayınlanmak üzere oyuncudan gönderilen bir dizeyi filtreler. Filtrelenmiş mesajın Chat:FilterStringAsync() daha fazla kısıtlaması vardır.
Bu yöntemin kullanılabileceği bazı örnekler:
- Mesaj duvarları
- Arasında sunucu çığlıkları
- Kullanıcı tarafından oluşturulan işaretler
FilterString'i LocalScripts 'dan çağırmak eski ve gelecekte devre dışı bırakılacaktır.Metin filtreleme, FilterStringAsync kullanarak sunucu tarafından yapılmalıdır Scripts .
Not: Bu filtre işlevini özel sohbet veya diğer kullanıcı tarafından üretilen metin için kullanmayan bir oyun, moderasyon aksiyontabi olabilir.
Parametreler
Mesaj dizesi filtreleniyor.
mesajgönderen oyuncunun örneği.
Dönüşler
Filtrelenmiş mesaj dizi.
Kod Örnekleri
The following example shows a simple way to use the FilterStringForBroadcast function. The example uses the message variable as the stringToFilter argument and the local player as the playerFrom argument.
The example then prints the result of the filtering function, FilteredString.
local Players = game:GetService("Players")
local Chat = game:GetService("Chat")
local playerFrom = Players.LocalPlayer
local message = "Hello world!"
-- Filter the string and store the result in the 'FilteredString' variable
local filteredString = Chat:FilterStringForBroadcast(message, playerFrom)
print(filteredString)