Chat
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Usługa Chat przechowuje kod Luau odpowiedzialny za uruchomienie legacy systemu czatu.Podobnie jak StarterPlayerScripts , domyślne obiekty, takie jak Scripts i ModuleScripts , są wstawiane do usługi.
Podsumowanie
Właściwości
Określa, czy wiadomości czatu gracza pojawią się powyżej ich awatara w grze.
Przełącza, czy domyślny framework czatu powinien być automatycznie wczytywany, gdy gra się uruchamia.
Metody
Wysyła wydarzenie Chat.Chatted z parametrami określonymi w tej metodzie.
Wezwij funkcję powrotu czatu zarejestrowaną przez RegisterChatCallback. Używana przez system czatu Luau.
Rejestruj funkcję, która ma być wywołana przy wezwaniu jakiegoś wydarzenia systemu czatu (InvokeChatCallback).
Dostosowuje różne ustawienia czatu bąbelkowego w grze.
Zwróci fałsz, jeśli gracz z określonym Player.UserId nie może rozmawiać z powodu ustawień konta.
Zwróci fałsz, jeśli dwaj użytkownicy nie mogą się komunikować, ponieważ ich ustawienia konta nie pozwalają na to.
Filtruje strunę wysłaną od gracza do innego gracza za pomocą filtrowania odpowiedniego do ustawień konta graczy.
Filtruje ciąg wysłany z gracza przeznaczony do transmisji bez określonego celu. Bardziej restrykcyjny niż Chat:FilterStringAsync() .
Zdarzenia
Wypala się, gdy Chat:Chat() jest wzywany.
Właściwości
BubbleChatEnabled
Jeśli prawda, wpisanie wiadomości w czacie spowoduje pojawienie się bąbelka czatu nad Player.Character graczem.Zachowanie to może być włączone bezpośrednio poprzez zaznaczenie tego pola wyboru w Studio, lub za pomocą LocalScript :
local ChatService = game:GetService("Chat")ChatService.BubbleChatEnabled = true
Musi to zostać wykonane na klientzie, przełączając tę wartość na stronie serwera Script nie będzie miało żadnego wpływu.
LoadDefaultChat
Przełącza, czy domyślny framework czatu powinien być automatycznie wczytywany, gdy gra się uruchamia.
Metody
Chat
Funkcja czatu uruchamia wydarzenie Chat.Chatted z parametrami określonymi w tej metodzie.
Domyślnie istnieje obiekt wewnątrz każdego gracza o nazwie BubbleChat , który powoduje pojawienie się tablicy dialogowej na górze części lub znaku , gdy uruchomiono wydarzenie czatu.
Uwaga: Ponieważ dialogi są kontrolowane przez lokalne skrypty, nie będziesz mógł zobaczyć żadnych dialogów utworzonych z tej metody, chyba że uruchamiasz w trybie Graj solo.
Parametry
Instancja, która jest częścią lub postacią, której dialog BubbleChat powinien pojawić się powyżej.
Sznurek wiadomości rozmawiany.
An Enum.ChatColor określający kolor wiadomośćczatu.
Zwroty
Przykłady kodu
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
Wezwanie funkcji ChatCallbackCall zostanie wywołane przez RegisterChatCallback , biorąc pod uwagę menu typu ChatCallbackType i argumenty do wysłania funkcji.Wróci wynik zarejestrowanej funkcji lub wywoła błąd, jeśli żadna funkcja nie została zarejestrowana.
Funkcja ta jest wywoływana przez system Luau Chat, aby chatowe wezwania mogły zostać zarejestrowane, aby zmienić zachowanie niektórych funkcji.Chyba że zastępujesz domyślny system czatu Luau posiadać, nie powinieneś potrzebować wezwania tej funkcji.Możesz przeczytać o różnych funkcjach powrotu w Chat:RegisterChatCallback().
Parametry
Typ powiadomienia do wywołania.
Argumenty, które zostaną wysłane do zarejestrowanej funkcji powrotnej.
Zwroty
Wartości zwracane przez funkcję zarejestrowaną w danym ChatCallbackType.
RegisterChatCallback
Rejestracja powrotu wezwania czatu wiąże funkcję z jakimś wydarzeniem systemu czatu, aby wpłynąć na zachowanie systemu czatu Luau.Pierwszy argument określa wydarzenie (z wykorzystaniem enum Enum.ChatCallbackType ), do którego zostanie powiązany drugi argument, funkcja.Domyślny system czatu Luau używa InvokeChatCallback do wzywania zarejestrowanych funkcji.Próba rejestracji powrotu tylko serwerowego lub klienta na peerze, który nie jest serwerem lub klientem, spowoduje wystąpienie błędu.Następujące sekcje opisują w jaki sposób zarejestrowane funkcje będą używane.
Podczas tworzenia okna czatu
Tylko dla klienta.Wzywany przed tym, jak klient stworzy okno czatu.Musi zwrócić tabelę ustawień, które mają zostać połączone z informacjami zwrotnymi z modułu ChatSettings.
Wiadomość o formacie klienta
Tylko dla klienta.Wzywany przed wyświetleniem przez klient wiadomości (czy to jest wiadomość czatu gracza, wiadomość systemowa, czy polecenie /me).Funkcja ta jest wywoływana za pomocą obiektu wiadomości i może (lub nie może) zwrócić tabelę, którą należy połączyć z message.ExtraData.
Wysyłanie wiadomości przez klienta
Nie uruchamiano w tym czasie.
Na serwerze odbieranie wiadomości
Tylko serwer.Wzywany, gdy serwer otrzymuje wiadomość od mówcy (zauważ, że mówcy mogą niekoniecznie być rozmówcą Player czatu).Ta metoda powrotna jest wywoływana z obiektem wiadomości.Funkcja może dokonywać zmian w obiekcie wiadomości, aby zmienić sposób przetwarzania wiadomości. Obiekt wiadomości musi zostać zwrócony, aby ten powrót zrobił coś.: Ustawienie tego powrotu może pozwolić serwerowi na przykład:
- Ustaw message.ShouldDeliver na fałsz, aby anulować dostarczanie wiadomości do graczy (przydatne do wdrożenia listy wykluczeń czatu)
- Zdobądź/ustaw kolor nazwy głośnika ( message.ExtraData.NameColor , Color3) na podstawie wiadomości-na-wiadomość
Parametry
Wezwanie, do którego funkcja zostanie zarejestrowana (określa w jaki sposób funkcja jest nazywana).
Funkcja do wezwania, gdy wezwany zostanie powrót za pomocą Czat:InvokeChatCallback.
Zwroty
SetBubbleChatSettings
Funkcja ta dostosowuje różne ustawienia czatu bąbelkowego w grze.
Zanim to użyjesz, upewnij się, że czat bąbelkowy jest włączony poprzez ustawienie Chat.BubbleChatEnabled na prawdę.
Argument ustawień to tabela, w której klucze są nazwami ustawień, które chcesz edytować, a wartości są tym, co chcesz zmienić w tych ustawieniach.Zauważ, że nie musisz włączyć ich wszystkich w argumentach ustawień, pominięcie niektórych spowoduje, że zachowają swoją domyślną wartość.
Funkcja ta jest tylko po stronie klienta, próba wezwania jej na serwerze wywoła błąd.
Parametry
Tabela ustawień.
Zwroty
Przykłady kodu
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
Zwróci fałsz, jeśli gracz z określonym Player.UserId nie może rozmawiać z powodu ustawień konta.
Parametry
Zwroty
CanUsersChatAsync
Zwróci fałsz, jeśli dwaj użytkownicy nie mogą się komunikować, ponieważ ich ustawienia konta nie pozwalają na to.
Parametry
Zwroty
FilterStringAsync
Ostrzeżenie o częściowej deprecacji : Wezwanie tej funkcji z klienta za pomocą LocalScript jest przestarzałe i zostanie wyłączone w przyszłości.Filtrowanie tekstu powinno być wykonywane z Script na serwerze za pomocą podobnie nazywanego TextService:FilterStringAsync(), który używa innego zestawu parametrów i wpisywaćzwrotu.
Gry, które nie filtrują właściwie tekstu generowanego przez gracza, mogą być przedmiotem akcjimoderacji.Upewnij się, że gra prawidłowo filtruje tekst przed jego opublikowaniem.
FilterStringAsync filtruje strunę za pomocą filtrowania odpowiedniego dla nadawcy i gracz.Jeśli filtrowany ciąg ma być używany do trwałej wiadomość, takiej jak nazwa robić zakupy, pisania na tablicy itp., to funkcja powinna być wywołana z autorem jako zarówno nadawcą, jak i odbiorcą.
Funkcja ta powinna być używana za każdym razem , gdy gracz może wprowadzić niestandardowy tekst w dowolnym kontekście , najczęściej za pomocą >.Niektóre przykłady tekstu, które mają być filtrowane:
- Niestandardowe wiadomości czatu
- Niestandardowe nazwy postaci
- Nazwy dla sklepu w graw stylu tycoon
Parametry
Surowa struna, która ma być przefiltrowana, dokładnie tak, jak wpisana przez gracza.
Autor tekstu.
Planowany odbiorca przekazanego tekstu; skorzystaj z autora, jeśli tekst jest trwały (patrz opis).
Zwroty
FilterStringForBroadcast
Filtruje strunę wysłaną z graczaOd do transmisji do żadnego konkretnego celu. W przefiltrowanej wiadomości jest więcej ograniczeń niż Chat:FilterStringAsync() .
Niektóre przykłady tego, gdzie można użyć tej metody:
- Ściany wiadomości
- Krzyki międzyserwerowe
- Znaki utworzone przez użytkownika
Wezwanie FilterString z LocalScripts jest przestarzałe i zostanie wyłączone w przyszłości.Filtrowanie tekstu powinno być wykonywane ze strony serwera Scripts za pomocą FilterStringAsync.
Uwaga: Gra nie wykorzystująca funkcji filtrowania do niestandardowej czatu lub innego tekstu generowanego przez użytkownika może być poddana akcjimoderacji.
Parametry
Struna wiadomości jest filtrowana.
Instancja gracza wysyłającego wiadomość.
Zwroty
Filtrowana ciąg wiadomości.
Przykłady kodu
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)