學習
引擎類別
SocialService
無法建立
服務
未複製

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡



API 參考
方法
CanSendCallInviteAsync
暫停
功能: Social
SocialService:CanSendCallInviteAsync(player:Instance):boolean
參數
player:Instance
返回
範例程式碼
社交服務: 提示電話簿()
local Players = game:GetService("Players")
local SocialService = game:GetService("SocialService")
local player = Players.LocalPlayer
local button = script.Parent
button.Visible = false
-- 檢查玩家是否可以發送通話邀請的功能
local function canSendCallingInvite(sendingPlayer)
local success, canSend = pcall(function()
return SocialService:CanSendCallInviteAsync(sendingPlayer)
end)
return success and canSend
end
local canCall = canSendCallingInvite(player)
if canCall then
button.Visible = true
button.Activated:Connect(function()
SocialService:PromptPhoneBook(player, "")
end)
end

CanSendGameInviteAsync
暫停
功能: Social
SocialService:CanSendGameInviteAsync(
player:Instance, recipientId:User
參數
player:Instance
recipientId:User
預設值:"U1.AQAAAAAAAAAAAAAAAAAAAAA"
返回
範例程式碼
發送邀請
local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- 檢查玩家是否可以發送邀請的函數
local function canSendGameInvite(sendingPlayer)
local success, canSend = pcall(function()
return SocialService:CanSendGameInviteAsync(sendingPlayer)
end)
return success and canSend
end
local canInvite = canSendGameInvite(player)
if canInvite then
SocialService:PromptGameInvite(player)
end

GetEventRsvpStatusAsync
暫停
功能: Social
SocialService:GetEventRsvpStatusAsync(eventId:string):Enum.RsvpStatus
參數
eventId:string
範例程式碼
社交服務:PromptRsvpToEventAsync()
local SocialService = game:GetService("SocialService")
local EVENT_ID = "YOUR_EVENT_ID"
local followPrompt: ProximityPrompt = script.Parent.FollowProximityPrompt
local unFollowPrompt: ProximityPrompt = script.Parent.UnfollowProximityPrompt
local function updatePrompt(rsvpStatus: Enum.RsvpStatus)
if rsvpStatus == Enum.RsvpStatus.Going then
unFollowPrompt.Enabled = true
followPrompt.Enabled = false
else
unFollowPrompt.Enabled = false
followPrompt.Enabled = true
end
end
local success, currentRsvpStatus = pcall(function()
return SocialService:GetEventRsvpStatusAsync(EVENT_ID)
end)
if not success then
-- 無法獲取 RSVP 狀態;不要啟用任一接近提示
warn("無法獲取 RSVP 狀態:", currentRsvpStatus)
return
end
print("當前 RSVP 狀態:", currentRsvpStatus)
updatePrompt(currentRsvpStatus)
unFollowPrompt.Triggered:Connect(function(player)
local rsvpStatus = SocialService:PromptRsvpToEventAsync(EVENT_ID)
updatePrompt(rsvpStatus)
end)
followPrompt.Triggered:Connect(function(player)
local rsvpStatus = SocialService:PromptRsvpToEventAsync(EVENT_ID)
updatePrompt(rsvpStatus)
end)

GetExperienceEventAsync
暫停
功能: Social
SocialService:GetExperienceEventAsync(eventId:string):ExperienceEvent?
參數
eventId:string
返回
ExperienceEvent?
範例程式碼
SocialService:GetUpcomingExperienceEventsAsync()
local SocialService = game:GetService("SocialService")
-- 查找下一個即將來臨/活躍的事件並提示玩家回覆 RSVP
local function promptNextUpcomingEvent()
local success, eventsOrError = pcall(function()
return SocialService:GetUpcomingExperienceEventsAsync()
end)
if not success then
warn("無法載入即將來臨的事件:", eventsOrError)
return
end
local upcomingEvents = eventsOrError
local selectedEvent
for _, event in ipairs(upcomingEvents) do
if not event.HasStarted and not event.HasEnded then
selectedEvent = event
break
end
end
if selectedEvent then
local success, result = pcall(function()
return SocialService:PromptRsvpToEventAsync(selectedEvent.Id)
end)
if not success then
warn("RSVP 提示失敗:", result)
end
else
warn("沒有可提示的未來事件。")
return
end
end
promptNextUpcomingEvent()

GetPartyAsync
暫停
功能: Social
SocialService:GetPartyAsync(partyId:string):{any}
參數
partyId:string
返回
範例程式碼
社交服務:獲取派對異步資料(SocialService:GetPartyAsync())
local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
local partyId = player.PartyId
if partyId == "" then
warn("玩家不在派對中")
return
end
local success, partyData = pcall(function()
return SocialService:GetPartyAsync(partyId)
end)
if success and partyData then
for _, partyMemberData in partyData do
print(
partyMemberData.UserId,
partyMemberData.PlaceId,
partyMemberData.JobId,
partyMemberData.PrivateServerId,
partyMemberData.ReservedServerAccessCode
)
end
else
warn("無法獲取派對資料")
end
end)

GetPlayersByPartyId
功能: Social
SocialService:GetPlayersByPartyId(partyId:string):{Player}
參數
partyId:string
返回
範例程式碼
社交服務:透過派對 ID 獲取玩家()
local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
local partyId = player.PartyId
if partyId ~= "" then
local partyPlayers: { Player } = SocialService:GetPlayersByPartyId(partyId)
for _, partyMember in partyPlayers do
print("派對成員: " .. partyMember.Name)
end
else
warn("玩家不在派對中")
end
end)
團隊重新平衡與派對整合
local Teams = game:GetService("Teams")
local Players = game:GetService("Players")
local SocialService = game:GetService("SocialService")
local redTeam = Instance.new("Team")
redTeam.Name = "紅隊"
redTeam.TeamColor = BrickColor.Red()
redTeam.AutoAssignable = false
redTeam.Parent = Teams
local blueTeam = Instance.new("Team")
blueTeam.Name = "藍隊"
blueTeam.TeamColor = BrickColor.Blue()
blueTeam.AutoAssignable = false
blueTeam.Parent = Teams
local function assignPlayerToTeam(player)
local partyId = player.PartyId
if partyId == "" then
assignBalancedTeam(player)
return
end
local teams = { redTeam, blueTeam }
local matchingTeam = nil
local partyPlayers = SocialService:GetPlayersByPartyId(partyId)
for _, partyPlayer in partyPlayers do
if partyPlayer ~= player and table.find(teams, partyPlayer.Team) then
matchingTeam = partyPlayer.Team
break
end
end
if matchingTeam then
player.Team = matchingTeam
player.TeamColor = matchingTeam.TeamColor
else
assignBalancedTeam(player)
end
end
function assignBalancedTeam(player)
local redCount = #redTeam:GetPlayers()
local blueCount = #blueTeam:GetPlayers()
local chosenTeam = redCount <= blueCount and redTeam or blueTeam
player.Team = chosenTeam
player.TeamColor = chosenTeam.TeamColor
end
local function groupPlayersByParty()
local seenPartyIds = {}
local groupedPlayers = {}
for _, player in Players:GetPlayers() do
if player.PartyId == "" then
table.insert(groupedPlayers, { player })
elseif not table.find(seenPartyIds, player.PartyId) then
table.insert(seenPartyIds, player.PartyId)
local partyPlayers = SocialService:GetPlayersByPartyId(player.PartyId)
table.insert(groupedPlayers, partyPlayers)
end
end
return groupedPlayers
end
-- 呼叫此函數以重新平衡隊伍
local function rebalanceTeams()
local groups = groupPlayersByParty()
table.sort(groups, function(a, b)
return #a > #b
end)
for _, player in Players:GetPlayers() do
player.Team = nil
end
for _, group in groups do
local redCount = #redTeam:GetPlayers()
local blueCount = #blueTeam:GetPlayers()
local bestTeam
if redCount <= blueCount then
bestTeam = redTeam
else
bestTeam = blueTeam
end
for _, player in group do
player.Team = bestTeam
player.TeamColor = bestTeam.TeamColor
end
end
for _, player in Players:GetPlayers() do
player:LoadCharacterAsync()
end
end
Players.PlayerAdded:Connect(function(player)
assignPlayerToTeam(player)
player:LoadCharacterAsync()
player:GetPropertyChangedSignal("PartyId"):Connect(function()
if player.PartyId ~= "" then
assignPlayerToTeam(player)
end
end)
end)

GetUpcomingExperienceEventsAsync
暫停
功能: Social
SocialService:GetUpcomingExperienceEventsAsync():{ExperienceEvent}
返回
{ExperienceEvent}
範例程式碼
SocialService:GetUpcomingExperienceEventsAsync()
local SocialService = game:GetService("SocialService")
-- 查找下一個即將來臨/活躍的事件並提示玩家回覆 RSVP
local function promptNextUpcomingEvent()
local success, eventsOrError = pcall(function()
return SocialService:GetUpcomingExperienceEventsAsync()
end)
if not success then
warn("無法載入即將來臨的事件:", eventsOrError)
return
end
local upcomingEvents = eventsOrError
local selectedEvent
for _, event in ipairs(upcomingEvents) do
if not event.HasStarted and not event.HasEnded then
selectedEvent = event
break
end
end
if selectedEvent then
local success, result = pcall(function()
return SocialService:PromptRsvpToEventAsync(selectedEvent.Id)
end)
if not success then
warn("RSVP 提示失敗:", result)
end
else
warn("沒有可提示的未來事件。")
return
end
end
promptNextUpcomingEvent()

HideSelfView
功能: Social
SocialService:HideSelfView():()
返回
()

PromptFeedbackSubmissionAsync
暫停
功能: Social
SocialService:PromptFeedbackSubmissionAsync(options:Dictionary?):()
參數
options:Dictionary?
返回
()
範例程式碼
SocialService:PromptFeedbackSubmissionAsync()
local SocialService = game:GetService("SocialService")
-- 提示反饋的函數
local function promptForFeedback()
local success, errorMessage = pcall(function()
SocialService:PromptFeedbackSubmissionAsync()
end)
if success then
print("反饋提示完成")
else
warn("提示反饋失敗:", errorMessage)
end
end
-- 當玩家達成里程碑時提示反饋
local function onMilestoneReached()
promptForFeedback()
end
-- 範例用法: 連接到一個遊戲事件
game.ReplicatedStorage.MilestoneReached.OnClientEvent:Connect(onMilestoneReached)
社交服務:PromptFeedbackSubmissionAsync() — 玩家支援
local SocialService = game:GetService("SocialService")
local function promptPlayerSupport()
local success, errorMessage = pcall(function()
SocialService:PromptFeedbackSubmissionAsync({
FeedbackType = Enum.FeedbackType.PlayerSupport,
})
end)
if success then
print("玩家支援提示完成")
else
warn("無法提示玩家支援:", errorMessage)
end
end
-- 範例用法:連接到 ScreenGui 中的幫助按鈕
local helpButton = script.Parent:WaitForChild("HelpButton")
helpButton.Activated:Connect(function()
task.spawn(promptPlayerSupport)
end)

PromptGameInvite
功能: Social
SocialService:PromptGameInvite(
player:Instance, experienceInviteOptions:Instance
):()
參數
player:Instance
experienceInviteOptions:Instance
預設值:"nil"
返回
()
範例程式碼
發送邀請
local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- 檢查玩家是否可以發送邀請的函數
local function canSendGameInvite(sendingPlayer)
local success, canSend = pcall(function()
return SocialService:CanSendGameInviteAsync(sendingPlayer)
end)
return success and canSend
end
local canInvite = canSendGameInvite(player)
if canInvite then
SocialService:PromptGameInvite(player)
end

PromptLinkSharing
已棄用

PromptLinkSharingAsync
暫停
功能: Social
SocialService:PromptLinkSharingAsync(
player:Player, options:Dictionary
參數
player:Player
options:Dictionary
預設值:"nil"
返回

PromptPhoneBook
功能: Social
SocialService:PromptPhoneBook(
player:Instance, tag:string
):()
參數
player:Instance
tag:string
返回
()
範例程式碼
社交服務: 提示電話簿()
local Players = game:GetService("Players")
local SocialService = game:GetService("SocialService")
local player = Players.LocalPlayer
local button = script.Parent
button.Visible = false
-- 檢查玩家是否可以發送通話邀請的功能
local function canSendCallingInvite(sendingPlayer)
local success, canSend = pcall(function()
return SocialService:CanSendCallInviteAsync(sendingPlayer)
end)
return success and canSend
end
local canCall = canSendCallingInvite(player)
if canCall then
button.Visible = true
button.Activated:Connect(function()
SocialService:PromptPhoneBook(player, "")
end)
end

PromptRsvpToEventAsync
暫停
功能: Social
SocialService:PromptRsvpToEventAsync(eventId:string):Enum.RsvpStatus
參數
eventId:string
範例程式碼
社交服務:PromptRsvpToEventAsync()
local SocialService = game:GetService("SocialService")
local EVENT_ID = "YOUR_EVENT_ID"
local followPrompt: ProximityPrompt = script.Parent.FollowProximityPrompt
local unFollowPrompt: ProximityPrompt = script.Parent.UnfollowProximityPrompt
local function updatePrompt(rsvpStatus: Enum.RsvpStatus)
if rsvpStatus == Enum.RsvpStatus.Going then
unFollowPrompt.Enabled = true
followPrompt.Enabled = false
else
unFollowPrompt.Enabled = false
followPrompt.Enabled = true
end
end
local success, currentRsvpStatus = pcall(function()
return SocialService:GetEventRsvpStatusAsync(EVENT_ID)
end)
if not success then
-- 無法獲取 RSVP 狀態;不要啟用任一接近提示
warn("無法獲取 RSVP 狀態:", currentRsvpStatus)
return
end
print("當前 RSVP 狀態:", currentRsvpStatus)
updatePrompt(currentRsvpStatus)
unFollowPrompt.Triggered:Connect(function(player)
local rsvpStatus = SocialService:PromptRsvpToEventAsync(EVENT_ID)
updatePrompt(rsvpStatus)
end)
followPrompt.Triggered:Connect(function(player)
local rsvpStatus = SocialService:PromptRsvpToEventAsync(EVENT_ID)
updatePrompt(rsvpStatus)
end)

ShowSelfView
功能: Social
SocialService:ShowSelfView(selfViewPosition:Enum.SelfViewPosition):()
參數
selfViewPosition:Enum.SelfViewPosition
預設值:"LastPosition"
返回
()

活動
CallInviteStateChanged
功能: Social
SocialService.CallInviteStateChanged(
player:Instance, inviteState:Enum.InviteState
參數
player:Instance
inviteState:Enum.InviteState
範例程式碼
社交服務.呼叫邀請狀態改變
local SocialService = game:GetService("SocialService")
local button = script.Parent
local isPhonebookOpen = false
SocialService.CallInviteStateChanged:Connect(function(_, inviteState)
local isCalling = inviteState == Enum.InviteState.Placed
if isCalling or isPhonebookOpen then
button.Visible = false
else
button.Visible = true
end
end)

GameInvitePromptClosed
功能: Social
SocialService.GameInvitePromptClosed(
player:Instance, recipientIds:{any}
參數
player:Instance
recipientIds:{any}

PhoneBookPromptClosed
功能: Social
SocialService.PhoneBookPromptClosed(player:Instance):RBXScriptSignal
參數
player:Instance

ShareSheetClosed
功能: Social
SocialService.ShareSheetClosed(player:Player):RBXScriptSignal
參數
player:Player

回調
OnCallInviteInvoked
功能: Social
SocialService.OnCallInviteInvoked(
tag:string, callParticipantIds:{any}
參數
tag:string
callParticipantIds:{any}
返回
範例程式碼
社交服務. 邀請通話被觸發
local SocialService = game:GetService("SocialService")
local TeleportService = game:GetService("TeleportService")
SocialService.OnCallInviteInvoked = function()
local placeId = 0123456789 -- 這是要將通話參與者放置的地點 ID
local accessCode = TeleportService:ReserveServerAsync(placeId)
return { ReservedServerAccessCode = accessCode, PlaceId = placeId }
end

©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。