概要
屬性
決定玩家的聊天訊息是否會出現在他們的遊戲內虛擬人偶上方。
切換是否在遊戲運行時自動載入預設聊天框架。
方法
以此方法指定的參數發射 Chat.Chatted 事件。
呼叫由 RegisterChatCallback 註冊的聊天回叫功能。由 Luau 聊天系統使用。
註冊一個功能,在某些聊天系統事件的呼叫上使用(InvokeChatCallback)。
自訂遊戲內對話泡泡的各種設定。
如果指定的 Player.UserId 玩家沒有權限聊天,將返回錯誤值 false。
如果兩個使用者無法通訊,因為他們的帳戶設定不允許,將返回 false。
過濾從玩家傳送給另一玩家的字串,使用適合玩家帳戶設定的過濾。
過濾從玩家發送到沒有特定目標的字串,比 Chat:FilterStringAsync() 更嚴格。
活動
當 Chat:Chat() 被呼叫時發生火災。
屬性
BubbleChatEnabled
如果真實,在聊天中輸入訊息會導致聊天泡泡在玩家的 Player.Character 上方出現。這種行為可以直接在 Studio 中勾選此選項框,或使用 LocalScript 來啟用:
local ChatService = game:GetService("Chat")ChatService.BubbleChatEnabled = true
這必須在客戶端上完成,切換此值在服務器側 Script 將無效。
方法
Chat
聊天功能會發射 Chat.Chatted 事件,並將參數指定在此方法中。
預設情況下,每個玩家的 對象內有一個名為 BubbleChat 的對話框,會導致聊天事件發生時出現與對話框類似的廣告在 部分或角色 上方。
注意:: 由於對話框是由本地腳本控制的,你將無法在 單人遊戲模式 下查看從此方法創建的任何對話框,除非你正在執行 播放單人遊戲模式 。
參數
返回
範例程式碼
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
呼叫聊天回叫將呼叫由 RegisterChatCallback 註冊的函數,並提供聊天回叫類型枚列和要傳送函數的參數。它將返回已註冊函數的結果,或在沒有註冊函數的情況下發出錯誤。
這個功能由 Luau 聊天系統呼叫,以便聊天回呼可以註冊變更特定功能的行為。除非您正在替換預設的 Luau 聊天系統為自擁有的系統,否則您不應該需要呼叫此功能。你可以在 Chat:RegisterChatCallback() 閱讀不同的回呼功能。
參數
要呼叫的回應類型。
將傳送到註冊回呼函的參數。
返回
由給定的 ChatCallbackType 註冊的功能返回的值。
RegisterChatCallback
RegisterChatCallback 將功能綁定到某些聊天系統事件,以影響 Luau 聊天系統的行為。第一個參數決定第二個引數數、函數,將綁定到哪個事件(使用 Enum.ChatCallbackType 枚列)。預設 Luau 聊天系統使用 InvokeChatCallback 來呼叫已註冊的函數。嘗試在不是伺服器或客戶端的 peer 上註冊僅服務器或客戶端使用的回呼會發生錯誤。以下部分描述註冊函數會以哪些方式被使用。
在創建聊天窗口時
僅限客戶。在客戶端構建聊天窗口之前呼叫。必須將設定表返回到 ChatSettings 模組所返回的資訊中進行合併。
在客戶端格式化訊息
僅限客戶。在客戶端顯示訊息之前呼叫(是玩家聊天訊息、系統訊息或/me指令)。此功能使用訊息對象呼叫,可能(或可能不)返回一個表,將被合併到 message.ExtraData 中。
在客戶端傳送訊息
此時未被呼叫。
在伺服器接收訊息
僅限伺服器。當伺服器收到來自發言者的訊息時呼叫 (請注意,發言者可能不一定是 Player 聊天的)。此回呼使用訊息對物件呼叫。函數可以對訊息對象進行變更,以改變訊息的處理方式。 訊息對象必須返回,才能讓此回呼執行任何操作。: 設置此回呼可讓伺服器例如:
- 將 message.ShouldDeliver 設為假以取消向玩家傳送訊息 (對於實現聊天排除列表有用)
- 在訊息基於訊息的基礎上取得/設置喇叭的名稱顏色(message.ExtraData.NameColor ,一個 Color3)
參數
函數將註冊到的回調(這會決定函數是如何被稱為的)。
使用 聊天hat:InvokeChatCallback 呼叫回來時使用的功能。
返回
SetBubbleChatSettings
此功能自訂遊戲內對話泡泡的各種設定。
在使用此功能之前,請確保泡泡聊天被啟用,通過設置 Chat.BubbleChatEnabled 為真實。
設置參數是一個表,其中鑰匙是您想要編輯的設置名稱,值是您想要將這些設置變更為什麼的。請注意,你不需要將所有的它們包含在設置參引數中,忽略一些將導致它們保留預設值。
此功能只適用於客戶端,嘗試在服務器上呼叫它會導致錯誤。
參數
一個設置表。
返回
範例程式碼
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({})
CanUsersChatAsync
如果兩個使用者無法通訊,因為他們的帳戶設定不允許,將返回 false。
參數
返回
FilterStringAsync
部分過時警告 :從客戶端使用 LocalScript 呼叫此功能已棄用,將在未來被禁用。文字過濾應從伺服器上的 Script 使用相同名稱的 TextService:FilterStringAsync() 進行,該使用不同參數和返回類輸入。
未正確過濾玩家生成的文字的遊戲可能會受到管理行動作的影響。請確保遊戲在發布前正確過濾文字。
FilterStringAsync 使用適合發送和接收玩家的過濾來過濾一個字串。如果過濾的字串用於永久消訊息,例如商購物名稱、寫在牌上等,則應該將作者稱為發送者和接收者的功能。
此功能應在 每次 玩家可以在任何上下文中輸入自訂文字時使用,最常使用 。一些要過濾的文字範例:
- 自訂聊天訊息
- 自訂角色名稱
- 在大亨風格遊戲中的商店名稱
參數
要過濾的原始字串,正如玩家所輸入的一樣。
文本的作者。
提供的文字的預期收件人;如果文字是持久的,請使用作者(見說明)。
返回
FilterStringForBroadcast
過濾從 playerFrom 傳送的字串,用於播放到特定目標。過濾的訊息有更多限制 than Chat:FilterStringAsync()。
一些可以使用此方法的例子:
- 訊息牆
- 跨服務器喊叫
- 使用者創建的標誌
從 LocalScripts 呼叫過濾字串已停用,將在未來中被禁用。文字過濾應從服務器側 Scripts 使用 FilterStringAsync 進行。
注意:: 不使用此過濾功能來定制聊天或其他用戶生成的文字的遊戲可能會受到管理行動作的影響。
參數
返回
過濾的訊息字串。
範例程式碼
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)