概要
属性
决定玩家的聊天消息是否会出现在他们的游戏虚拟形象上。
切换是否在游戏运行时自动加载默认聊天框架。
方法
发射 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
这必须在客户端上完成,在服务器端切换此值将无效。
方法
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() 阅读有关不同回调函数的信息。
参数
要调用的回调类型。
将发送到注册回调函数的参数。
返回
由注册给定聊天回调类型的函数返回的值。
RegisterChatCallback
注册聊天回调绑定一个函数到某个聊天系统事件,以影响 Luau 聊天系统的行为。第一个参数决定第二个参数、函数将被绑定到哪个事件(使用 Enum.ChatCallbackType 枚列)。默认 Luau 聊天系统使用 InvokeChatCallback 来调用注册函数。尝试在没有服务器或客户端的 peer 上注册仅服务器或客户端的回调会导致错误。以下部分描述注册函数将以何种方式被使用。
在创建聊天窗口时
仅限客户端。在客户端构建聊天窗口之前调用。必须返回一个包含在聊天设置模块返回的信息中的设置表的表。
关于客户端格式化消息
仅限客户端。客户端显示消息之前调用(是玩家聊天消信息、系统消信息还是/me命令)。此函数与消息对象调用,可能(或可能不)返回一个表,将被合并到 message.ExtraData 中。
在客户端发送消息
本次未被调用。
在服务器接收消息
仅服务器。当服务器收到来自发言者的消息时调用(请注意,发言者可能不一定是聊天的 Player )。这个回调与消息对象一起调用。函数可以对消息对象进行更改,以改变消息的处理方式。 为了使此回调执行任何操作,必须返回消息对象。: 设置此回调可让服务器例如:
- 将 message.ShouldDeliver 设置为 false,以取消向玩家发送消息 (有助于实现聊天排除列表)
- 获取/设置发言麦克风名称颜色(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 调用 FilterString 已过时,将在未来中禁用。文本筛选应从服务器端 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)