채팅 서비스는 전통 채팅 시스템을 실행하는 루아 코드를 책임집니다. 기본 개체, 예를 들어 StarterPlayerScripts 및 1>Class.ModuleScript|ModuleScripts1>는 4>Class.ModuleScript4>에 삽입됩니다.
요약
속성
플레이어의 채팅 메시지가 게임 아바타 위에 표시되는지 여부를 결정합니다.
게임이 실행될 때 기본 채팅 프레임워크를 자동으로 로드할지 여부를 토글합니다.
메서드
이 메서드에 지정된 매개 변수로 Chat.Chatted 이벤트를 발생시킵니다.
Class.Chat:RegisterChatCallback()|RegisterChatCallback 에 등록된 채팅 콜백 함수를 호출하십시오. Lua 채팅 시스템에서 사용됩니다.
일부 채팅 시스템 이벤트( Class.Chat:ExecuteChatCallback()|ExecuteChatCallback) 호출 시 호출할 함수 등록하기(Class.Chat:registry()).
게임 내 버블 채팅의 다양한 설정을 사용자 정의합니다.
지정된 Player.UserId의 플레이어가 계정 설정 때문에 채팅할 수 없도록 허용되지 않으면 반환 됩니다.
계정 설정이 허용하지 않기 때문에 두 사용자가 통신할 수 없으면 false를 반환합니다.Will return false if the two users cannot communicate because their account settings do not allow it.
플레이어 계정 설정에 적합한 필터를 사용하여 플레이어가 다른 플레이어에게 보내는 문자열을 필터링합니다.
특정 대상에 대한 플레이어가 보낸 문자열을 필터링하지 않습니다. Chat:FilterStringAsync() 보다 제한적입니다.
이벤트
클래스 Chat:Chat() 이 호출되면 화재됩니다.
속성
BubbleChatEnabled
만약 그렇다면, 채팅에 메시지를 입력하면 플레이어의 Player.Character 위에 채팅 버블이 생성됩니다. 이 동작은 Studio에서 직접 체크 박스를 클릭하거나 LocalScript를 사용하여 활성화할 수 있습니다.
local ChatService = game:GetService("Chat")ChatService.BubbleChatEnabled = true
이 작업은 클라이언트에서 수행해야 하며, 이 값을 서버 사이드 Script 에서 전환하면 효과가 없습니다.
메서드
Chat
채팅 기능은 이 메서드에 지정된 매개 변수로 Chat.Chatted 이벤트를 발생시킵니다.
기본적으로 각 플레이어의 LocalScript 개체 내에 하나의 PlayerScripts가 있으며, 대화 상자가 나타나면 플레이어의 위치에 있는 BubbleChat에 이름이 붙습니다. 이렇게 하면 채팅 이벤트가 발생했을 때 2>playerOrCharacter2>에 나타나는 대화 상
참고: 대화 상자는 로컬 스크립트에 의해 제어되므로 플레이 솔로 모드에서 실행하지 않는 한 대화 상자를 생성하지 못합니다.
매개 변수
버블 채팅 대화 상자가 나타나야 하는 인스턴스입니다.An instance that is the part or character which the BubbleChat dialog should appear above.
채팅 중인 메시지 문자열입니다.
Enum.ChatColor 채팅 메시지의 색을 지정합니다.
반환
코드 샘플
local ChatService = game:GetService("Chat")
local part = Instance.new("Part")
part.Anchored = true
part.Parent = workspace
ChatService:Chat(part, "Blame John!", "Red")
InvokeChatCallback
InvokeChatCallback 는 RegisterChatCallback 으로 등록된 함수를 호출하고, ChatCallbackType 열거형과 함수를 보낼 인수를 지정합니다. 등록된 함수의 결과를 반환하거나 함수가 등록되지 않은 경우 오류를 발생시킵니다.
이 함수는 Lua 채팅 시스템에서 등록하여 특정 기능의 동작을 변경할 수 있도록 하기 위해 호출됩니다. 기본 Lua 채팅 시스템을 보유것으로 대체하지 않는 한 이 함수를 호출할 필요가 없습니다. 이 함수에 대한 자세한 내용은 Chat:RegisterChatCallback()에서 확인할 수 있습니다.
매개 변수
호출할 콜백의 유형입니다.
등록된 콜백 함수에 전송할 인수입니다.
반환
지정된 ChatCallbackType에 등록된 함수에서 반환하는 값입니다.
RegisterChatCallback
RegisterChatCallback 함수를 일부 채팅 시스템 이벤트에 등록하여 Lua 채팅 시스템의 동작에 영향을 미칩니다. 첫 번째 인수는 이벤트 (사용 Class.Chat:ExecuteChatCallback()|ExecuteChatCallback)를 결
채팅 창 생성 시
클라이언트 전용. 클라이언트가 채팅 창을 생성하기 전에 호출됩니다. 설정 테이블을 반환하여 ChatSettings 모듈에서 표시된 정보와 병합됩니다.
OnClientForm팅Message
클라이언트 전용. 클라이언트가 메시지를 표시하기 전에 호출됩니다(플레이어 채팅 메시지, 시스템 메시지 또는 /me 명령). 이 함수는 메시지 개체와 함께 호출되며 합병할 테이블을 반환할 수 있습니다(message.ExtraData).
클라이언트 메시지 전송
이 시간에는 호출되지 않습니다.
서버에서 메시지 수신
서버 전용. 서버가 스피커로부터 메시지를 받을 때 호출됩니다(Player 채팅). 이 콜백은 메시지 개체 를 사용하여 메시지 처리 방식을 변경할 수 있습니다. 이 함수는 메시지 개체를 변경하여 메시지 처
- message.ShouldDeliver 를 false로 설정하여 플레이어에게 메시지를 전달하지 않도록 합니다(채팅 제외 목록을 구현하는 데 유용)
- 메시지 기반으로 스피커의 이름 색상( message.ExtraData.NameColor , 색3)을 가져오거나 설정합니다.
매개 변수
함수에 등록할 콜백(이는 함수가 호출되는 방식에 대해 결정합니다).
채팅:ExecuteChatCallback를 사용하여 콜백을 호출할 때 호출할 함수.
반환
SetBubbleChatSettings
이 함수는 게임 내 버블 채팅의 다양한 설정을 사용자 정의합니다.
이 기능을 사용하기 전에, Chat.BubbleChatEnabled를 참조하여 버블 채팅을 설정하세요.
설정 인수는 편집할 설정 이름과 값이 변경하려는 설정의 키가 있는 테이블입니다. 모든 키를 설정 인수에 포함할 필요는 없으며, 일부를 생략하면 이 설정을 변경하려는 값이 유지됩니다. 참고로 모든 키를 설정 인수에 포함하지 않도록 하는 경우 일부는 기본값을 유지합니다.
이 함수는 클라이언트 사이드 함수이며, 서버에서 호출하려면 오류가 발생합니다.
매개 변수
설정 테이블.
반환
코드 샘플
local ChatService = game:GetService("Chat")
ChatService:SetBubbleChatSettings({
BackgroundColor3 = Color3.fromRGB(180, 210, 228),
TextSize = 20,
Font = Enum.Font.Cartoon,
})
local ChatService = game:GetService("Chat")
ChatService:SetBubbleChatSettings({})
CanUsersChatAsync
계정 설정이 허용하지 않기 때문에 두 사용자가 통신할 수 없으면 false를 반환합니다.Will return false if the two users cannot communicate because their account settings do not allow it.
매개 변수
반환
FilterStringAsync
부분 손실 경고 : 클라이언트에서 LocalScript를 사용하여 이 함수를 호출하면 앞으로 사용하지 않도록 권장되며 이후에는 사용할 수 없습니다. 텍스트 필터링은 서버의 Script에서 같은 입력
플레이어 생성 텍스트를 제대로 필터링하지 않는 게임은 조정 액션받을 수 있습니다. 게임을 게시하기 전에 게임이 텍스트를 제대로 필터링하는지 확인하십시오.
FilterStringAsync 필터링 문자열을 사용하여 플레이어에게 적절한 필터링을 사용하는 문자열을 필터링합니다. 필터링된 문자열이 지속적인 메시지, 예를 들어 상점 이름, 벽에 글쓰기 등을 사용하는 경우 작성자를 필터링하는 함수를 호출해야 합니다.
이 함수는 플레이어가 사용자 지정 텍스트를 입력할 때마다 사용해야 합니다. 대부분은 사용자 지정 Class.Toolbar 를 사용하는 경우이며, 일반적으로 필터링되는 텍스트는 다음과 같습니다.
- 사용자 정의 채팅 메시지
- 사용자 지정 캐릭터 이름
- 타이쿤 스타일 게임에 있는 상점 이름
매개 변수
플레이어가 입력한 대로 필터링할 원시 문자열.
텍스트의 작가.
제공된 텍스트의 의도한 수신자; 텍스트가 지속되는 경우 작가를 사용하십시오(설명).
반환
FilterStringForBroadcast
playerFrom의 보낸 문자열을 특정 대상이 아닌 방송에 필터링하지 않습니다. 필터링된 메시지는 Chat:FilterStringAsync()보다 제한이 더 많습니다.
이 메서드를 사용할 수 있는 몇 가지 예:
- 메시지 벽
- 서버 간 외침
- 사용자 생성 표지판
Class.LocalScript|LocalScripts에서 FilterString을 호출하는 것은 지원되지 않으며 나중에 비활성화됩니다. 텍스트 필터링은 Scripts를 사용하여 서버 사이에서 수행해야 합니다.
참고: 이 필터 기능을 사용하지 않는 게임은 사용자 생성 텍스트나 사용자 지정 채팅에 대한 조정 액션받을 수 있습니다.
매개 변수
반환
필터링된 메시지 문자열.
코드 샘플
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)