Chat

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

无法创建
服务
未复制

聊天服务包含负责运行 遗产聊天系统 的 Luau 代码。与 StarterPlayerScripts 类似,默认对象,如 ScriptsModuleScripts 被插入到服务中。

概要

属性

  • 决定玩家的聊天消息是否会出现在他们的游戏虚拟形象上。

  • 无法获知安全性
    读取并联

    切换是否在游戏运行时自动加载默认聊天框架。

方法

属性

BubbleChatEnabled

读取并联

如果真实的话,在聊天中输入消息会导致聊天泡泡在玩家的 Player.Character 上方出现。这种行为可以通过在 Studio 中直接打勾此复选框来启用,或使用 LocalScript 来启用:


local ChatService = game:GetService("Chat")
ChatService.BubbleChatEnabled = true

这必须在客户端上完成,在服务器端切换此值将无效。

LoadDefaultChat

无法获知安全性
读取并联

切换是否在游戏运行时自动加载默认聊天框架。

方法

Chat

()

聊天功能发射 Chat.Chatted 事件,其参数与此方法中指定的参数相同。

默认情况下,每个玩家的 对象内都有一个名为 BubbleChat 的对象,这会导致聊天事件触发时出现类似于对话的广告牌在 部分或角色 上方。

注意: 由于对话框由本地脚本控制,除非您正在运行 单人游戏模式,否则无法查看从此方法创建的任何对话框。

参数

partOrCharacter: Instance

一个实例,该实例是 BubbleChat 对话框应显示上方的部分或角色。

默认值:""
message: string

正在聊天的消息字符串。

默认值:""

一个 Enum.ChatColor 指定聊天消信息的颜色。

默认值:"Blue"

返回

()

代码示例

The below example would create a part in Workspace and cause it to exclaim "Blame John!"

Chat:Chat

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() 阅读有关不同回调函数的信息。

参数

callbackType: Enum.ChatCallbackType

要调用的回调类型。

默认值:""
callbackArguments: Tuple

将发送到注册回调函数的参数。

默认值:""

返回

由注册给定聊天回调类型的函数返回的值。

RegisterChatCallback

()

注册聊天回调绑定一个函数到某个聊天系统事件,以影响 Luau 聊天系统的行为。第一个参数决定第二个参数、函数将被绑定到哪个事件(使用 Enum.ChatCallbackType 枚列)。默认 Luau 聊天系统使用 InvokeChatCallback 来调用注册函数。尝试在没有服务器或客户端的 peer 上注册仅服务器或客户端的回调会导致错误。以下部分描述注册函数将以何种方式被使用。

在创建聊天窗口时

仅限客户端。在客户端构建聊天窗口之前调用。必须返回一个包含在聊天设置模块返回的信息中的设置表的表。

关于客户端格式化消息

仅限客户端。客户端显示消息之前调用(是玩家聊天消信息、系统消信息还是/me命令)。此函数与消息对象调用,可能(或可能不)返回一个表,将被合并到 message.ExtraData 中。

在客户端发送消息

本次未被调用。

在服务器接收消息

仅服务器。当服务器收到来自发言者的消息时调用(请注意,发言者可能不一定是聊天的 Player )。这个回调与消息对象一起调用。函数可以对消息对象进行更改,以改变消息的处理方式。 为了使此回调执行任何操作,必须返回消息对象。: 设置此回调可让服务器例如:

  • message.ShouldDeliver 设置为 false,以取消向玩家发送消息 (有助于实现聊天排除列表)
  • 获取/设置发言麦克风名称颜色(message.ExtraData.NameColor,一个 Color3) 在消息基于消息的基础上

参数

callbackType: Enum.ChatCallbackType

函数将被注册的回调(这决定了函数是如何被调用的)。

默认值:""
callbackFunction: function

使用 聊天hat:InvokeChatCallback 调用回调时调用的函数。

默认值:""

返回

()

SetBubbleChatSettings

()

此函数自定义游戏泡泡聊天的各种设置。

在使用此功能之前,请确保泡泡聊天通过设置 Chat.BubbleChatEnabled 为真实启用。

设置参数是一个表,其中键是你想要编辑的设置名称,值是你想要更改这些设置的内容。请注意,你不需要将所有都包含在设置参数中,忽略一些会导致它们保留默认值。

该函数仅用于客户端,尝试在服务器上调用它会触发错误。

参数

settings: Variant

一个设置表。

默认值:""

返回

()

代码示例

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.

Customize visual aspects

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:

Restore default settings

local ChatService = game:GetService("Chat")
ChatService:SetBubbleChatSettings({})

CanUserChatAsync

暂停

如果指定的 Player.UserId 玩家因帐户设置不允许聊天,将返回错误值 false。

参数

userId: number
默认值:""

返回

CanUsersChatAsync

暂停

如果两个用户无法通信,因为他们的帐户设置不允许,将返回错误值 false。

参数

userIdFrom: number
默认值:""
userIdTo: number
默认值:""

返回

FilterStringAsync

暂停

部分过时警告 : 从客户端使用 LocalScript 调用此函数已弃用时,将在未来中禁用。文本筛选应从服务器上的 Script 进行,使用与其相同名称的 TextService:FilterStringAsync() ,其使用不同参数和返回类输入。

不正确过滤玩家生成的文本的游戏可能会受到审核动作的影响。请确保在发布游戏前正确过滤文本。

FilterStringAsync 使用适合发送和接收玩家的过滤来匹配字符串。如果过滤的字符串用于永久消信息,例如购物店名称、写在牌上等,那么函数应该调用作为发送者和接收者的作者。

此功能应在 每次 玩家可以在任何上下文中输入自定义文本时使用,最常用的是 。一些需要过滤的文本示例:

  • 自定义聊天消息
  • 自定义角色名称
  • 大亨风格游戏中的商店名称

参数

stringToFilter: string

要被过滤的原始字符串,与玩家输入的完全相同。

默认值:""
playerFrom: Player

文本的作者。

默认值:""
playerTo: Player

提供的文本的预期收件人;如果文本是持续的,请使用作者(见描述)。

默认值:""

返回

FilterStringForBroadcast

暂停

过滤从 playerFrom 发送的字符串以广播到特定目标。过滤后的消息有更多限制 than Chat:FilterStringAsync() .

一些可以使用此方法的例子:

  • 消息墙
  • 跨服务器喊叫
  • 用户创建的标志

LocalScripts 调用 FilterString 已过时,将在未来中禁用。文本筛选应从服务器端 Scripts 使用 FilterStringAsync 进行。

注意: 不使用此过滤函数来自定义聊天或其他用户生成的文本的游戏可能会受到审核行动作的影响。

参数

stringToFilter: string

消息字符串正在被过滤。

默认值:""
playerFrom: Player

发送消信息的玩家实例。

默认值:""

返回

已过滤的消息字符串。

代码示例

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.

Chat:FilterStringForBroadcast

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)

活动

Chatted

Chat:Chat() 被调用时发生火灾。

参数

part: Instance
message: string