Chat
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Il servizio Chat ospita il codice Luau responsabile dell'esecuzione del sistema di chat legacy.Simile a StarterPlayerScripts , gli oggetti predefiniti come Scripts e ModuleScripts vengono inseriti nel servizio.
Sommario
Proprietà
Determina se i messaggi di chat del Giocatoreappariranno sopra il loro Avatarin gioco.
Attiva/disattiva se il framework di chat predefinito deve essere caricato automaticamente quando il gioco viene eseguito.
Metodi
Fuoca l'evento Chat.Chatted con i parametri specificati in questo metodo.
Invoca una funzione di richiamo della chat registrata da RegisterChatCallback . Utilizzata dal Sistema di chat Luau.
Registra una funzione da chiamare sull'invocazione di qualche evento del sistema di chat ( InvokeChatCallback ).
Personalizza varie impostazioni della chat della bolla in gioco.
Restituirà false se il giocatore con il Player.UserId non è autorizzato a chattare a causa delle impostazioni del suo account.
Restituirà false se i due utenti non possono comunicare perché le impostazioni del loro account non lo consentono.
Filtri una stringa inviata da un giocatore a un altro giocatore utilizzando il filtraggio che è appropriato per le impostazioni dell'account dei giocatori.
Filtri una stringa inviata da un giocatore destinata alla trasmissione a nessun particolare obiettivo. Più restrittivo di Chat:FilterStringAsync() .
Eventi
Si accende quando viene chiamato Chat:Chat() .
Proprietà
BubbleChatEnabled
Se è vero, l'inserimento di un messaggio nella chat farà apparire una bolla di chat sopra la schermata del GiocatorePlayer.Character .Questo comportamento può essere abilitato direttamente selezionando questa casella di controllo in Studio, o utilizzando un LocalScript :
local ChatService = game:GetService("Chat")ChatService.BubbleChatEnabled = true
Questo deve essere fatto sul client, attivando questo valore in un lato server Script non avrà alcun effetto.
LoadDefaultChat
Attiva/disattiva se il framework di chat predefinito deve essere caricato automaticamente quando il gioco viene eseguito.
Metodi
Chat
La funzione di chat lancia l'evento Chat.Chatted con i parametri specificati in questo metodo.
Per impostazione predefinita, c'è un LocalScript all'interno dell'oggetto PlayerScripts di ciascun Giocatorechiamato BubbleChat, che causa l'apparizione di un cartello dialog-like sopra la parte o il personaggio quando viene attivato l'evento di chat.
Nota: Poiché i dialoghi sono controllati da uno script locale, non sarai in grado di vedere alcun dialogo creato da questo metodo a meno che tu non stia eseguendo in modalità Gioca in solitario.
Parametri
Un'istanza che è la parte o il personaggio al quale il dialogo BubbleChat dovrebbe apparire sopra.
La stringa del messaggio che viene聊天.
Un Enum.ChatColor specificare il colore del Messaggiochat.
Restituzioni
Campioni di codice
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 chiamerà una funzione registrata da RegisterChatCallback , dato l'elenco ChatCallbackType e gli argomenti per inviare la funzione.Restituirà il risultato della funzione registrata o solleverà un errore se nessuna funzione è stata registrata.
Questa funzione viene chiamata dal Sistema di chat Luau in modo che le richieste di chat possano essere registrate per cambiare il comportamento di alcune funzionalità.A meno che tu non stia sostituendo il sistema di chat Luau predefinito con Propriotuo, non dovresti avere bisogno di chiamare questa funzione.Puoi leggere delle diverse funzioni di richiamo a Chat:RegisterChatCallback() .
Parametri
Il tipo di richiamo da invocare.
Gli argomenti che verranno inviati alla funzione di richiamo registrata.
Restituzioni
I valori restituiti dalla funzione registrata al tipo di richiamo chat dato.
RegisterChatCallback
RegisterChatCallback lega una funzione a qualche evento del sistema di chat per influenzare il comportamento del sistema di chat Luau.Il primo argomento determina l'evento (utilizzando l'enumero Enum.ChatCallbackType ) al quale il secondo argomento, la funzione, dovrà essere legato.Il sistema di chat Luau predefinito utilizza InvokeChatCallback per invocare le funzioni registrate.Se si tenta di registrare un callback solo server o client su un peer che non è un server o un client rispettivamente, verrà sollevata un'errore.Le seguenti sezioni descrivono in che modo verranno utilizzate le funzioni registrate.
Creazione di una finestra di chat OnCreatingChatWindow
Solo per il client.Invocato prima che il client costruisca la finestra di chat.Deve restituire una tabella di impostazioni da unire alle informazioni restituite dal modulo ChatSettings.
OnClientFormattingMessage
Solo per il client.Invocato prima che il client mostri un messaggio (che sia un Messaggiodi chat di un giocatore, un Messaggiodi sistema o il comando /me).Questa funzione viene invocata con l'oggetto messaggio e può (o non può) restituire una tabella da unire in message.ExtraData .
Sul client inviare messaggio
Non invocato in questo momento.
Su ServerReceivingMessage
Solo server.Invocato quando il server riceve un messaggio da un oratore (nota che gli oratori potrebbero non essere necessariamente una chat Player).Questo callback viene chiamato con l'oggetto Messaggio.La funzione può apportare modifiche all'oggetto Messaggio per cambiare il modo in cui viene elaborato il messaggio. L'oggetto Messaggio deve essere restituito per questo callback per fare qualsiasi cosa.: Impostare questo callback può consentire al server di, ad esempio:
- Imposta message.ShouldDeliver a falso per annullare la consegna del messaggio ai giocatori (utile per implementare una lista di esclusione della chat)
- Ottieni/imposta il colore del nome del relatore ( message.ExtraData.NameColor , un Color3) su una base messaggio per messaggio
Parametri
Il callback a cui la funzione verrà registrata (questo determina in che modo la funzione viene chiamata).
La funzione da chiamare quando il richiamo viene invocato utilizzando Chat:InvokeChatCallback.
Restituzioni
SetBubbleChatSettings
Questa funzione personalizza varie impostazioni della chat della bolla in gioco.
Prima di utilizzarlo, assicurati che la chat a bolle sia abilitata impostando Chat.BubbleChatEnabled a vero.
L'argomento delle impostazioni è una tabella in cui le chiavi sono i nomi delle impostazioni che vuoi modificare e i valori sono ciò che vuoi cambiare queste impostazioni.Nota che non devi includerli tutti nell'argomento delle impostazioni, l'omissione di alcuni li manterrà con il loro valore predefinito.
Questa funzione è solo lato client, tentare di chiamarla sul server attiverà un errore.
Parametri
Un tavolo delle impostazioni.
Restituzioni
Campioni di codice
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
Restituirà false se il giocatore con il Player.UserId non è autorizzato a chattare a causa delle impostazioni del suo account.
Parametri
Restituzioni
CanUsersChatAsync
Restituirà false se i due utenti non possono comunicare perché le impostazioni del loro account non lo consentono.
Parametri
Restituzioni
FilterStringAsync
Avviso di deprecazione parziale : Chiamare questa funzione dal client utilizzando un LocalScript è Deprecaree verrà disabilitato in futuro.Il filtraggio del testo dovrebbe essere eseguito da un Script sul server utilizzando il similmente chiamato TextService:FilterStringAsync(), che utilizza un set diverso di parametri e inserisci / scrividi restituzione.
Giochi che non filtrano correttamente il testo generato dagli utenti potrebbero essere soggetti all'azione di moderazione.Assicurati di filtrare correttamente il testo prima di pubblicarlo.
FilterStringAsync filtra una stringa utilizzando il filtraggio che è appropriato per il mittente e il destinatario del Giocatore.Se la stringa filtrata deve essere utilizzata per un Messaggiopersistente, come il nome di un Negozio, scrivere su una targhetta, ecc., allora la funzione deve essere chiamata con l'autore sia come mittente che come destinatario.
Questa funzione dovrebbe essere utilizzata ogni volta un giocatore può inserire testo personalizzato in qualsiasi contesto , più comunemente usando un TextBox .Alcuni esempi di testo da filtrare:
- Messaggi di chat personalizzati
- Nomi di personaggio personalizzati
- Nomi per un negozio in uno stile da tycoon di Gioco
Parametri
La stringa grezza da filtrare, esattamente come inserita dal Giocatore.
L'autore del testo.
Il destinatario previsto del testo fornito; usa l'autore se il testo è persistente (vedi Descrizione).
Restituzioni
FilterStringForBroadcast
Filtri una stringa inviata da playerFrom per la trasmissione a nessun particolare destinatario. Il messaggio filtrato ha più restrizioni di Chat:FilterStringAsync() .
Alcuni esempi di dove questo metodo potrebbe essere utilizzato:
- Muri di messaggi
- Ululati cross-server
- Segnali creati dall'utente
Chiamare FilterString da LocalScripts è deprecato e verrà disabilitato in futuro.La filtrazione del testo dovrebbe essere eseguita dal lato server Scripts utilizzando FilterStringAsync.
Nota: Un gioco che non utilizza questa funzione di filtro per la chat personalizzata o altro testo generato dall'utente può essere soggetto all'azione di moderazione.
Parametri
Stringa del messaggio filtrata.
Istanza del giocatore che invia il Messaggio.
Restituzioni
Stringa del messaggio filtrata.
Campioni di codice
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)