Players
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
Dịch vụ Players bao gồm Player đối tượng cho các khách hàng hiện đang kết nối với một máy chủ Roblox. Nó cũng bao gồm thông tin về cấu hình của một địa điểm, chẳng hạn như hình dạng nhân vật, bạn bè và hình ảnh avatar. Nó cũng có th
Tóm Tắt
Thuộc Tính
Mở hoặc tắt ba phương thức Players ( BanAsync() , UnbanAsync() và 1> Class.Players:GetBanHistoryAsync()|GetBanHistoryAsync()1> ) đó là API cấm. Đặt
Chỉ báo có hay không bong bóng trò chuyện được bật. Nó được thiết lập bằng cách sử dụng phương thức Players:SetChatStyle() .
Chỉ ra whether Class.Character|Characters sẽ tự động hồi sinh.
Indicates whether or not classic chat is enabled; set by the phương thức Players:SetChatStyle() .
Class.Player mà Class.LocalScript đang chạy cho.
Số máxim người chơi mà có thể ở trong một máy chủ.
Số lượng người chơi được ưa thích cho một máy chủ.
Điều khiển thời gian để một nhân vật người chơi tái sinh.
Phương Pháp
Làm cho người chơi địa phương chat tin nhắn đã được cho.
Trả lại Player với UserId đã được cung cấp nếu chúng ở trong trò chơi.
Trả lại Player whose Character matches the given ví dụ / trường hợp, or nil if one cannot be found.
Trả lại một bảng tất cả các đối tượng hiện đang kết nối Player .
Đặt BubbleChat và ClassicChat đang được sử dụng, và nói cho TeamChat và Chat nên làm gì.
Làm cho LocalPlayer chat tin nhắn đã được cho, chỉ người dùng trong cùng một nhóm mới có thể xem.
Cấm người dùng khỏi trải nghiệm của bạn, với các tùy chọn để xác định thời gian, lý do, có phải cấm áp dụng cho toàn bộ vũ trụ hoặc chỉ cho địa điểmhiện tại hay không. Phương thức này được bật hoặc tắt bởi thuộc tính Players.BanningEnabled , mà bạn có th
- CreateHumanoidModelFromDescription(description : HumanoidDescription,rigType : Enum.HumanoidRigType,assetTypeVerification : Enum.AssetTypeVerification):Model
Trả lại một nhân vật Model được trang bị với tất cả những gì được quy định trong Hướng dẫn Nhân vật, và là R6 hoặc R15 như được quy định bởi loại RigType.
Điều chỉnh một bộ mô hình nhân vật với tất cả các thiết bị được trang bị để khớp với avatar người dùng được chỉ định bởi người dùng đã điền.
Lấy lịch sử cấm và bỏ cấm bất kỳ người dùng nào trong trải nghiệm. Phương thức này được bật hoặc tắt bởi thuộc tính Players.BanningEnabled, mà bạn có thể bật hoặc tắt trong Studio.
Trả lại thông tin về ngoại hình của một người dùng đã được cung cấp.
Điều khiển trả lại một FriendPages đối tượng chứa thông tin cho tất cả các bạn người chơiđã được cung cấp.
Trả lại HumanoidDescription cho một trang phục nhất định, which will be set with the parts/angles/Animations etc of trang phục.
Trả lại một HumanoidDescription mà nó định nghĩa tất cả mọi thứ được trang bị cho avatar người dùng được chỉ định bởi người dùng đã được chỉ định.
Gửi một truy vấn đến trang Roblox cho tên người dùng của một tài khoản với một UserId đã được cung cấp.
Gửi một truy vấn đến trang Roblox cho userId của một tài khoản với tên người dùng đã được cung cấp.
- GetUserThumbnailAsync(userId : number,thumbnailType : Enum.ThumbnailType,thumbnailSize : Enum.ThumbnailSize):Tuple
Trả lại URL nội dung của một mini hình ảnh người chơi, được cho kích thước và đánh máy, cũng như một biểu tượng ngữ cảm miêu tượng trưng cho việc có sẵn sàng sử dụng hình ảnh.
Unbans người chơi bị cấm từ Players:BanAsync() hoặc API Người dùng Tùy chỉnh Open Cloud. This method is enabled and disabled by the Players.BanningEnabled property, which you can toggle in Studio.
Sự Kiện
Bắt đầu khi một người chơi vào trò chơi.
Lửa khi máy chủ game nhận thấy rằng thành viên của một người chơiđã thay đổi.
Lửa khi một người chơi chuẩn bị rời khỏi trò chơi.
Lửa khi máy chủ trò chơi nhận ra rằng status của người dùng cho một subscribe nhất định đã thay đổi.
Thuộc Tính
BanningEnabled
Mở hoặc tắt ba phương thức Players ( BanAsync() , UnbanAsync() và 1> Class.Players:GetBanHistoryAsync()|GetBanHistoryAsync()1> ) đó là API cấm. Đặt
BubbleChat
Thuộc tính BubbleChat cho biết có phải bật hoặc không bật trò chuyện bong bóng. Nó được thiết lập với phương pháp Players:SetChatStyle() bằng cách sử dụng đ枚u Enum.ChatStyle .
Khi chế độ trò chuyện này được bật, trò chuyện sẽ xuất hiện trong giao diệu người dùng trò chuyện ở góc trên cùng bên trái của màn hình.
Có hai chế độ trò chuyện khác, Players.ClassicChat và một chế độ trò chuyện nơi cả chat classique và chat bong bóng đều được bật.
CharacterAutoLoads
Thuộc tính CharacterAutoLoads cho biết có phải Class.Character|Characters sẽ tự động hồi sinh không. Giá trị mặc định là true.
Nếu thuộc tính này bị vô hiệu hóa ( false), player Class.Character|Characters sẽ không xuất hiện cho đến khi hàm Player:LoadCharacter() được gọi cho mỗi Player, bao gồm khi người chơi tham gia trải nghiệm.
Điều này có thể hữu ích trong những trải nghiệm có cuộc sống hạn chế, chẳng hạn như trò chơi cạnh tranh trong đó người chơi không phải làm mới cho đến khi kết thúc một vòng trò chơi.
Mẫu mã
local Players = game:GetService("Players")
-- Set CharacterAutoLoads to false
Players.CharacterAutoLoads = false
-- Remove player's character from workspace on death
Players.PlayerAdded:Connect(function(player)
while true do
local char = player.CharacterAdded:Wait()
char.Humanoid.Died:Connect(function()
char:Destroy()
end)
end
end)
-- Respawn all dead players once every 10 seconds
while true do
local players = Players:GetChildren()
-- Check if each player is dead by checking if they have no character, if dead load that player's character
for _, player in pairs(players) do
if not workspace:FindFirstChild(player.Name) then
player:LoadCharacter()
end
end
-- Wait 10 seconds until next respawn check
task.wait(10)
end
ClassicChat
Indicates whether or not classic chat is enabled. This property is set by the Players:SetChatStyle() method using the Enum.ChatStyle enum.
Khi chế độ trò chuyện này được bật, trò chuyện hiển thị bong bóng trên đầu của người gửi.
Có hai chế độ trò chuyện khác, Players.BubbleChat và một chế độ trò chuyện nơi cả chat class và chat bong bóng đều được bật.
LocalPlayer
LocalPlayer là một tính chất đọc chỉ được tham chiếu đến Player cuyo client đang chạy trải nghiệm.
Định nghĩa này chỉ được định nghĩa cho LocalScripts và ModuleScripts yêu cầu bởi họ, vì chúng chạy trên máy chủ. Đối với máy chủ, trên đó Script đối tượng chạy mã của họ, gi
MaxPlayers
Thuộc tính MaxPlayers xác định số lượng tối đa người chơi có thể ở trong một máy chủ. Thuộc tính này chỉ có thể được cài đặt qua cài đặt của một địa điểmcụ thể trên bảng điều khiển của người sáng tạo hoặc qua cài đặt của trò chơ
PreferredPlayers
Thuộc tính PreferredPlayers cho thấy số lượng người chơi mà máy phù hợp trận của Roblox sẽ lấp đầy máy chủ. Số này sẽ thấp hơn số lượng người chơi tối đa ( Players.MaxPlayers ) được hỗ trợ bởi trải nghiệm.
RespawnTime
Thuộc tính RespawnTime kiểm soát thời gian, trong giây, mất bao lâu để một người chơi tái sinh khi Players.CharacterAutoLoads được đúng. Nó mặc định là 5.0 giây.
Điều này hữu ích khi bạn muốn thay đổi thời gian phản xạ dựa trên loại kinh nghiệm của bạn nhưng không muốn xử lý việc tạo ra người chơi một cách cá nhân.
Mặc dù đặt thuộc tính này từ bên trong một Script , bạn có thể dễ dàng hơn đặt nó trực tiếp trên đối tượng Players trong cửa sổ Explorer của Studio.
UseStrafingAnimations
Phương Pháp
Chat
Hành động này làm cho người chơi địa phương trò chuyện tin nhắn đã được cho. Khi món đồ này được bảo vệ, thử sử dụng nó trong một Script hoặc LocalScript sẽ gây ra một lỗi.
Thay vào đó, khi tạo một hệ thống chat tùy chỉnh, hoặc một hệ thống cần quyền truy cập vào chat, bạn có thể sử dụng chức năng Chat của dịch vụ Chat:Chat() thay vào đó.
Tham Số
Tin nhắn chatting.
Lợi Nhuận
Mẫu mã
-- Command bar
game:GetService("Players"):Chat("Hello, world!") --Results in 'Hello, world!' appearing in the Chat log under your Player's name.
-- Script
local Players = game:GetService("Players")
Players:Chat("Hello, world!") --Errors
GetPlayerByUserId
Hàm này tìm mỗi player trong Players để tìm người nào đó có đúng với UserId đã được cung cấp. Nếu người đó không tồn tại, nó chỉ đơn giản là trả lại Player.UserId. Đây là tương đư
local Players = game:GetService("Players")
local function getPlayerByUserId(userId)
for _, player in Players:GetPlayers() do
if player.UserId == userId then
return player
end
end
end
Phương thức này hữu ích để tìm nhà mua sản phẩm của một nhà phát triển bằng cách sử dụng MarketplaceService.ProcessReceipt, which provides a table that includes the UserId của nhà mua và không phải là một tham chiếu đến các thống kê người chơi. Hầu hết các trò chơi sẽ yêu cầu một tham
Tham Số
Class.Player.UserId của người chơi đang được xác định.
Lợi Nhuận
Mẫu mã
local Players = game:GetService("Players")
local player = Players:GetPlayerByUserId(1)
if player then
print("Player with userId 1 is in this server! Their name is: " .. player.Name)
else
print("Player with userId 1 is not in this server!")
end
local MarketplaceService = game:GetService("MarketplaceService")
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
-- Data store for tracking purchases that were successfully processed
local purchaseHistoryStore = DataStoreService:GetDataStore("PurchaseHistory")
-- Table setup containing product IDs and functions for handling purchases
local productFunctions = {}
-- ProductId 123123 for a full heal
productFunctions[123123] = function(_receipt, player)
-- Logic/code for player buying a full heal (may vary)
if player.Character and player.Character:FindFirstChild("Humanoid") then
-- Heal the player to full health
player.Character.Humanoid.Health = player.Character.Humanoid.MaxHealth
-- Indicate a successful purchase
return true
end
end
-- ProductId 456456 for 100 gold
productFunctions[456456] = function(_receipt, player)
-- Logic/code for player buying 100 gold (may vary)
local stats = player:FindFirstChild("leaderstats")
local gold = stats and stats:FindFirstChild("Gold")
if gold then
gold.Value = gold.Value + 100
-- Indicate a successful purchase
return true
end
end
-- The core 'ProcessReceipt' callback function
local function processReceipt(receiptInfo)
-- Determine if the product was already granted by checking the data store
local playerProductKey = receiptInfo.PlayerId .. "_" .. receiptInfo.PurchaseId
local purchased = false
local success, result, errorMessage
success, errorMessage = pcall(function()
purchased = purchaseHistoryStore:GetAsync(playerProductKey)
end)
-- If purchase was recorded, the product was already granted
if success and purchased then
return Enum.ProductPurchaseDecision.PurchaseGranted
elseif not success then
error("Data store error:" .. errorMessage)
end
-- Determine if the product was already granted by checking the data store
local playerProductKey = receiptInfo.PlayerId .. "_" .. receiptInfo.PurchaseId
local success, isPurchaseRecorded = pcall(function()
return purchaseHistoryStore:UpdateAsync(playerProductKey, function(alreadyPurchased)
if alreadyPurchased then
return true
end
-- Find the player who made the purchase in the server
local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
if not player then
-- The player probably left the game
-- If they come back, the callback will be called again
return nil
end
local handler = productFunctions[receiptInfo.ProductId]
local success, result = pcall(handler, receiptInfo, player)
-- If granting the product failed, do NOT record the purchase in datastores.
if not success or not result then
error("Failed to process a product purchase for ProductId: " .. tostring(receiptInfo.ProductId) .. " Player: " .. tostring(player) .. " Error: " .. tostring(result))
return nil
end
-- Record the transaction in purchaseHistoryStore.
return true
end)
end)
if not success then
error("Failed to process receipt due to data store error.")
return Enum.ProductPurchaseDecision.NotProcessedYet
elseif isPurchaseRecorded == nil then
-- Didn't update the value in data store.
return Enum.ProductPurchaseDecision.NotProcessedYet
else
-- IMPORTANT: Tell Roblox that the game successfully handled the purchase
return Enum.ProductPurchaseDecision.PurchaseGranted
end
end
-- Set the callback; this can only be done once by one script on the server!
MarketplaceService.ProcessReceipt = processReceipt
GetPlayerFromCharacter
Hàm này trả về Player được liên kết với Player.Character được đưa, hoặc nil nếu không thể tìm thấy. Nó tương đương với các hàm sau:
local function getPlayerFromCharacter(character)
for _, player in game:GetService("Players"):GetPlayers() do
if player.Character == character then
return player
end
end
end
Phương thức này thường được sử dụng khi một sự kiện nào đó trong nhân vật người chơi bắt lửa (như Class.Humanoid của họ) Humanoid . Một sự kiện như thế này có thể không trực tiếp tham khảo v
Tham Số
Một instace nhân vật mà bạn muốn nhận player từ.
Lợi Nhuận
Mẫu mã
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local PLAYER_NAME = "Nightriff"
local character = Workspace:FindFirstChild(PLAYER_NAME)
local player = Players:GetPlayerFromCharacter(character)
if player then
print(`Player {player.Name} ({player.UserId}) is in the game`)
else
print(`Player {PLAYER_NAME} is not in the game!`)
end
GetPlayers
Phương thức này trả về một bảng tất cả các đối tượng hiện tại đã kết nối Player đối tượng. Nó hoạt động theo cùng một cách như Instance:GetChildren() ngoại trừ
local Players = game:GetService("Players")for _, player in Players:GetPlayers() doprint(player.Name)end
Các script kết nối với Players.PlayerAdded thường xuyên cố gắng xử lý mọi người chơi kết nối với trò chơi. Phương pháp này hữu ích cho việc lặp lại những người chơi đã kết nối với trò chơi mà không bắt lửa Class.Players.PlayerAdded
local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("Player: " .. player.Name)
end
for _, player in Players:GetPlayers() do
onPlayerAdded(player)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Lợi Nhuận
Một bảng chứa tất cả các người chơi trong máy chủ.
Mẫu mã
local Players = game:GetService("Players")
local function onCharacterAdded(character)
-- Give them sparkles on their head if they don't have them yet
if not character:FindFirstChild("Sparkles") then
local sparkles = Instance.new("Sparkles")
sparkles.Parent = character:WaitForChild("Head")
end
end
local function onPlayerAdded(player)
-- Check if they already spawned in
if player.Character then
onCharacterAdded(player.Character)
end
-- Listen for the player (re)spawning
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)
SetChatStyle
Hành động này đặt BubbleChat và ClassicChat đang được sử dụng, và nói cho TeamChat và Chat nên làm gì sử dụng Enum.ChatStyle hệ thống. Khi món đồ này được bảo vệ, thử sử dụng nó trong một Script hoặc LocalScript sẽ gây ra một
Chức năng này được sử dụng bên trong khi chế độ trò chuyện được cài đặt bởi trò chơi.
Tham Số
Đã đặt kiểu trò chuyện được quy cài đặt.
Lợi Nhuận
Mẫu mã
-- Command bar
game.Players:SetChatStyle(Enum.ChatStyle.Classic) -- Set's chat style to Classic
-- LocalScript
local Players = game:GetService("Players")
Players:SetChatStyle(Enum.ChatStyle.Classic) -- Errors
TeamChat
Hành động này làm cho Players.LocalPlayer chat tin nhắn đã được cho, which will only be viewable by users on the same team. Khi món đồ này được bảo vệ, thử sử dụng nó trong một Script hoặc LocalScript sẽ gây ra một lỗi.
Hành động này được sử dụng bên trong khi Players.LocalPlayer gửi một thông điệp đến đội của họ.
Tham Số
Tin nhắn đang được trò chuyện.
Lợi Nhuận
Mẫu mã
-- Command bar
game.Players:TeamChat("Hello World") -- Sends a "Hello World" message to all players on the local player's team
-- LocalScript
local Players = game:GetService("Players")
Players:TeamChat("Hello World") -- Errors
BanAsync
Các biện pháp Players:BanAsync() cho phép bạn dễ dàng bị cấm người dùng vi phạm các lưu ý của trải nghiệm của bạn. Bạn có thể đặt thời gian cấ
Cấm và Gửi tin nhắn
Người dùng bị cấm sẽ bị ngay lập tức đuổi bỏ và ngăn chặn khỏi tham gia lại trải nghiệm của bạn. Họ sẽ được hiển thị một hộp thoại lỗi hiển thị thời gian còn l
Nơi và Vũ trụ
Bởi mặc định, các lệnh cấm được mở rộng đến bất kỳ nơi nào trong vũ trụ đó. Để giới hạn các lệnh cấm chỉ đến nơi nào từ đó API này được gọi, hãy cấu hình ApplyToUniverse để <
Tài khoản alternatif
Người dùng thường chơi dưới nhiều tài khoản khác nhau, được gọi là tài khoản alt hoặc tài khoản thay thế, được sử dụng để vượt qua các lệnh cấm. Để giúp bạn giữ các người dùng bị cấm ra kh
Thời gian cấm
Không tất cả các vi phạm là gi
Lỗi và Throttling
Phương thức này gọi một cuộc gọi HTTP đến các dịch vụ back-end chịu sự thắt chặt và có thể thất bại. Nếu bạn gọi API này với hơn một UserId , phư
HTTP failure for UserId 2: Timedout, HTTP 504 (Service unavailable) failure for UserId 4: Service exception
Tin nhắn luôn luôn bao gồm failure for UserId {} nếu đó là một lỗi HTTP.
Yêu cầu phía client
Do những rủi ro liên quan đến việc cấm người dùng, phương thức này chỉ có thể được gọi trên máy chủ trải nghiệm bên sau (các cuộc gọi bên client sẽ kết thúc bằng một lỗi). Bạn có thể kiểm tra API này ở Studio, trong khi đang thực hiện tiếp cận công sản phẩmhoặc tr
API này sử dụng API Nghị giới hạn người dùng Open Cloud API . Bạn sẽ có thể sử dụng các API này để quản lý các lệnh cấm trong các ứng dụng của bên thứ ba.
Tham Số
UserIds (yêu cầu; bảng) — Bảng của UserIds của người chơi để bị cấm. Kích thước tối đa là 50 .
ApplyToUniverse (tùy chọn;Boolean) — Liệu dấu hiệu sẽ được phát sóng đến tất cả các nơi trong trải nghiệm khi vũ trụ. Mặc định là true .
Duration (yêu cầu; số thập phân) — Thời gian của cấm, trong giây. Các cấm vĩnh viễn có giá trị -1 . 0 và tất cả các giá trị tiêu cực khác là không hợp lệ.
DisplayReason (yêu cầu; chuỗi) — Thông điệp sẽ được hiển thị cho người dùng khi họ thử tham gia vào một trải nghiệm. Maximum length of string is 400 .
PrivateReason (yêu cầu; chuỗi) — Thông báo nội bộ sẽ được trả lại khi truy cập lịch sử cấm của người dùng. Maximum length of string is 1000 .
ExcludeAltAccounts (tùy chọn;Boolean) — Khi true , Roblox không cố gắng cấm tài khoản alt. Mặc định là false .
Lợi Nhuận
Mẫu mã
local Players = game:GetService("Players")
if shouldBeBanned(player: Player) then
local banHistoryPages = Players:GetBanHistoryAsync(player.UserId)
local duration = getNextBanDuration(banHistoryPages) -- Creator-implemented logic
local config: BanConfigType = {
UserIds = {player.UserId},
Duration = duration,
DisplayReason = "You violated community guideline #5",
PrivateReason = "Put anything here that the user should not know but is helpful for your records",
ExcludeAltAccounts = false,
ApplyToUniverse = true
}
local success, err = pcall(function()
return Players:BanAsync(config)
end)
print(success, err)
end
CreateHumanoidModelFromDescription
Trả lại một nhân vật Model được trang bị với tất cả những gì được quy định trong Hướng dẫn Nhân vật, và là R6 hoặc R15 như được quy định bởi loại RigType.
Tham Số
Định dạng nhân vật đã quay lại.
Chỉ định xem nhân vật được trả lại sẽ là R6 hay R15.
Loại tài nguyên xác định nếu chức năng này sẽ tải mô hình hay không (bạn nên đặt nó về Luôn trừ khi bạn muốn tải tài nguyên không trong danh mục).
Lợi Nhuận
Một mô hình nhân vật hình người.
Mẫu mã
game.Players:CreateHumanoidModelFromDescription(Instance.new("HumanoidDescription"), Enum.HumanoidRigType.R15).Parent = game.Workspace
CreateHumanoidModelFromUserId
Đặt lại một bộ mô hình nhân vật với tất cả các thiết bị được trang bị để phù hợp với avatar của người dùng được chỉ định bởi người dùng đó. Điều này bao gồm xem nhân vật đó hiện đang là R6 hay R15.
Tham Số
ID người dùng cho một người dùng Roblox. (ID người dùng là số được hiển thị trong hồ sơ người dùng, ví dụ như www.roblox.com/users/1/ profile).
Lợi Nhuận
Một mô hình nhân vật hình người.
Mẫu mã
game.Players:CreateHumanoidModelFromUserId(1).Parent = game.Workspace
GetBanHistoryAsync
Lấy lịch sử cấm và bỏ cấm của bất kỳ người dùng trong trải nghiệm. Phương thức này trả lại một BanHistoryPages instâne thừa hưởng từ Pages . This method is enabled and disabled by the Players.BanningEnabled property, which you can toggle in Studio.
Cuộc gọi chức năng này chỉ thành công trên các máy chủ trò chơi sản xuất và không thành công trên các thiết bị khách hàng hoặc trong Studio.
API này sử dụng API Nghị giới hạn người dùng Open Cloud API . Bạn sẽ có thể sử dụng các API này để quản lý các lệnh cấm trong các ứng dụng của bên thứ ba.
Tham Số
Lợi Nhuận
Xem BanHistoryPages để tham khảo trở lại.
GetCharacterAppearanceInfoAsync
Hàm này trả lại thông tin về avatar của một người chơi (ignoring trang bị) trên trang Roblox trong hình dạng của một bảng từ. Nó không phải là GetCharacterAppearanceAsync , which actually loads the assets described by this method. Bạn có th
<tr><td><code>tài sản</code></td><td>bảng (xem bên dưới)</td><td>Mô tả các tài sản được trang bị (mũ, các bộ phận cơ thể, v.v.)</td></tr><tr><td><code>màu thân hình</code></td><td>bảng (xem bên dưới)</td><td>Mô tả giá trị BrickColor cho mỗi chi nhánh</td></tr><tr><td><code>bodyColor3s</code></td><td>bảng (xem bên dưới)</td><td>Mô tả Color3 instance cho mỗi chi dưới có thể không hoàn toàn khớp với bodyColors</td></tr><tr><td><code>áp dụng Pants mặc định</code></td><td>boolean</td><td>Mô tả apakah quần thun mặc định được áp dụng</td></tr><tr><td><code>áp dụngÁo thun mặc định</code></td><td>boolean</td><td>Mô tả ap liệu có được áp dụng</td></tr><tr><td><code>biểu tượng.</code></td><td>bảng (xem bên dưới)</td><td>Mô tả hoạt họa emote được trang bị</td></tr><tr><td><code>playerAvatarType</code></td><td>chuỗi</td><td>Hoặc "R15" hoặc "R6"</td></tr><tr><td><code>các kích thước</code></td><td>bảng (xem bên dưới)</td><td>Mô tả các yếu tố bảo vệ cơ thể khác nhau</td></tr>
Tên | Kiểu | Mô tả |
---|
Tài sản Dưới Bảng
Bảng assets là một bảng danh sách các bảng chứa các chìa khóa sau đây mô tả các tài sản đang được trang bị bởi người chơi:
<tr><td><code>id)</code></td><td>con số</td><td>ID tài sản của tài sản được trang bị</td></tr><tr><td><code>kiểu tài sản</code></td><td>bảng</td><td>Một bảng với các lĩnh vực <code>tên</code> và <code>id</code> mô tả loại tài sản được trang bị ("Mũ", "Mặt", v.v.)</td></tr><tr><td><code>tên</code></td><td>chuỗi</td><td>Tên của tài sản được trang bị</td></tr>
Tên | Kiểu | Mô tả |
---|
Thước Đo Dưới Bàn
Bảng scales có các chìa khóa sau, mỗi chúng từ một Humanoid độ lượng tương ứng: bodyType, 1> head1>, 4> 7> height7>, 9> 0>
Màu thân hình Sub-Table
Bảng bodyColors có các chìa khóa sau, mỗi chìa khóa tương ứng với một BrickColor ID number mà
Tham Số
Người * 用户名 của người chơi đó.
Lợi Nhuận
Một từ điển chứa thông tin về ngoại hình của một người dùng cụ thể.
Mẫu mã
local result = {
playerAvatarType = "R15",
defaultPantsApplied = false,
defaultShirtApplied = false,
scales = {
bodyType = 0,
head = 1,
height = 1.05,
proportion = 0,
depth = 0.92,
width = 0.85,
},
bodyColors = {
leftArmColorId = 1030,
torsoColorId = 1001,
rightArmColorId = 1030,
headColorId = 1030,
leftLegColorId = 1001,
rightLegColorId = 1001,
},
assets = {
{
id = 1031492,
assetType = {
name = "Hat",
id = 8,
},
name = "Striped Hat",
},
{
id = 13062491,
assetType = {
name = "Face Accessory",
id = 42,
},
name = "Vision Française ",
},
{
id = 16598440,
assetType = {
name = "Neck Accessory",
id = 43,
},
name = "Red Bow Tie",
},
{
id = 28999228,
assetType = {
name = "Face",
id = 18,
},
name = "Joyous Surprise",
},
{
id = 86896488,
assetType = {
name = "Shirt",
id = 11,
},
name = "Expensive Red Tuxedo Jacket",
},
{
id = 86896502,
assetType = {
name = "Pants",
id = 12,
},
name = "Expensive Red Tuxedo Pants",
},
{
id = 376530220,
assetType = {
name = "Left Arm",
id = 29,
},
name = "ROBLOX Boy Left Arm",
},
{
id = 376531012,
assetType = {
name = "Right Arm",
id = 28,
},
name = "ROBLOX Boy Right Arm",
},
{
id = 376531300,
assetType = {
name = "Left Leg",
id = 30,
},
name = "ROBLOX Boy Left Leg",
},
{
id = 376531703,
assetType = {
name = "Right Leg",
id = 31,
},
name = "ROBLOX Boy Right Leg",
},
{
id = 376532000,
assetType = {
name = "Torso",
id = 27,
},
name = "ROBLOX Boy Torso",
},
},
}
print(result)
GetFriendsAsync
Hàm GetFriends Players trả về một FriendPages đối tượng chứa thông tin cho tất cả các bạn bè đã được cung cấp. Các mục trong FriendPages đối tượng là bảng với các trường dưới đây:
<tr><td>Nhận dạng</td><td>int64</td><td>UserId của bạn bè</td></tr><tr><td>Tên</td><td>chuỗi</td><td>Tên tên tài khoảnbạn bè</td></tr><tr><td>Tên hiển thị</td><td>chuỗi</td><td>Class.Player.DisplayName| display name của bạn bè.</td></tr>
Tên | Kiểu | Mô tả |
---|
Xem mẫu mã này để có được cách dễ dàng để lặp lại tất cả các bạn bè của một người chơi.
Tham Số
ID người chơi được chỉ định.
Lợi Nhuận
Mẫu mã
local Players = game:GetService("Players")
local USERNAME = "Cozecant"
local function iterPageItems(pages)
return coroutine.wrap(function()
local pagenum = 1
while true do
for _, item in ipairs(pages:GetCurrentPage()) do
coroutine.yield(item, pagenum)
end
if pages.IsFinished then
break
end
pages:AdvanceToNextPageAsync()
pagenum = pagenum + 1
end
end)
end
-- First, get the user ID of the player
local userId = Players:GetUserIdFromNameAsync(USERNAME)
-- Then, get a FriendPages object for their friends
local friendPages = Players:GetFriendsAsync(userId)
-- Iterate over the items in the pages. For FriendPages, these
-- are tables of information about the friend, including Username.
-- Collect each username in a table
local usernames = {}
for item, _pageNo in iterPageItems(friendPages) do
table.insert(usernames, item.Username)
end
print("Friends of " .. USERNAME .. ": " .. table.concat(usernames, ", "))
GetHumanoidDescriptionFromOutfitId
Trả lại HumanoidDescription cho một mô tả được xác định, mà sẽ được thiết lập với các bộ phận / màu sắc / hoạt họa v.v. của trang phục. Một trang phục có thể được tạo bởi một người dùng hoặc nó có thể là trang phục cho một bộ dụng cụ tạo bởi Roblox.
Tham Số
ID của trang phục mà mô tả con người được tìm kiếm.
Lợi Nhuận
Hình người được tạo bằng mô tả cho trang phục đã được đề xuất trong outfitId.
Mẫu mã
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local function getOutfitId(bundleId)
if bundleId <= 0 then
return
end
local info = game.AssetService:GetBundleDetailsAsync(bundleId)
if not info then
return
end
for _, item in pairs(info.Items) do
if item.Type == "UserOutfit" then
return item.Id
end
end
return nil
end
local function getHumanoidDescriptionBundle(bundleId)
local itemId = getOutfitId(bundleId)
if itemId and itemId > 0 then
return Players:GetHumanoidDescriptionFromOutfitId(itemId)
end
return nil
end
local humanoidDescription = getHumanoidDescriptionBundle(799)
local humanoidModel = Players:CreateHumanoidModelFromDescription(humanoidDescription, Enum.HumanoidRigType.R15)
humanoidModel.Parent = Workspace
GetHumanoidDescriptionFromUserId
Trả lại một HumanoidDescription mô tả tất cả mọi thứ được trang bị cho avatar người dùng được xác định bởi người dùng đã được chỉ định. Bao gồm cả các kích thước và màu sắc cơ thể.
Tham Số
ID người dùng cho một người dùng Roblox. (ID người dùng là số được hiển thị trong hồ sơ người dùng, ví dụ như www.roblox.com/users/1/ profile).
Lợi Nhuận
Hình người được tạo bằng cách kết hợp trong thông số của người dùng.
Mẫu mã
game.Players:CreateHumanoidModelFromDescription(game.Players:GetHumanoidDescriptionFromUserId(1), Enum.HumanoidRigType.R15).Parent = game.Workspace
GetNameFromUserIdAsync
Hàm GetNameFromUserIdAsync Players sẽ gửi một truy vấn đến trang Roblox yêu cầu tên người dùng tài khoản với UserId được cung cấp.
Các lỗi này xảy ra nếu không có tài khoản nào với UserId được cung cấp. Nếu bạn không chắc chắn rằng một tài khoản như vậy tồn tại, nên đặt các gọi đến chức năng này bằng cách sử dụng pcall . Ngoài ra, bạn cũng có thể lưu trữ k
Tham Số
Class.Player.UserId của người chơi đang được xác định.
Lợi Nhuận
Tên của một người với Player.UserId được xác định.
Mẫu mã
local Players = game:GetService("Players")
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
local nameOne = Players:GetNameFromUserIdAsync(118271)
local nameTwo = Players:GetNameFromUserIdAsync(131963979)
print(nameOne, nameTwo)
-- prints: "RobloxRulez docsRule"
local Players = game:GetService("Players")
-- Create a table called 'cache' to store each 'Name' as they are found.
-- If we lookup a 'Name' using the same 'UserId', the 'Name' will come
-- from cache (fast) instead of GetNameFromUserIdAsync() (yields).
local cache = {}
function getNameFromUserId(userId)
-- First, check if the cache contains 'userId'
local nameFromCache = cache[userId]
if nameFromCache then
-- if a value was stored in the cache at key 'userId', then this 'nameFromCache'
-- is the correct Name and we can return it.
return nameFromCache
end
-- If here, 'userId' was not previously looked up and does not exist in the
-- cache. Now we need to use GetNameFromUserIdAsync() to look up the name
local name
local success, _ = pcall(function()
name = Players:GetNameFromUserIdAsync(userId)
end)
if success then
-- if 'success' is true, GetNameFromUserIdAsync() successfully found the
-- name. Store this name in the cache using 'userId' as the key so we
-- never have to look this name up in the future. Then return name.
cache[userId] = name
return name
end
-- If here, 'success' was false, meaning GetNameFromUserIdAsync()
-- was unable to find the 'name' for the 'userId' provided. Warn the user
-- this happened and then return nothing, or nil.
warn("Unable to find Name for UserId:", userId)
return nil
end
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
-- The first time a UserId is used, GetNameFromUserIdAsync() will be called
local nameOne = getNameFromUserId(118271)
local nameTwo = getNameFromUserId(131963979)
-- Because 118271 was previously used, get its Name from the cache
local nameOneQuick = getNameFromUserId(118271)
print(nameOne, nameTwo, nameOneQuick)
-- prints: "RobloxRulez docsRule RobloxRulez"
GetUserIdFromNameAsync
Hàm này sẽ gửi một truy vấn đến trang Roblox bằng cách hỏi những gì Player.UserId tài khoản với tên Player đã được đưa.
Các lỗi này xảy ra nếu không có tài khoản nào với tên tên tài khoảnđược cung cấp. Nếu bạn không chắc chắn rằng một tài khoản như vậy tồn tại, nó được khuyến nghị để bao gọn các gọi đến tên tài khoảnnăng này với pcall . Ngoài ra
Tham Số
Tên người chơi được chỉ định.
Lợi Nhuận
Class.Player.UserId của một người dùng có tên được xác định.
Mẫu mã
local Players = game:GetService("Players")
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
local userIdOne = Players:GetUserIdFromNameAsync("RobloxRulez")
local userIdTwo = Players:GetUserIdFromNameAsync("docsRule")
print(userIdOne, userIdTwo)
-- prints: "118271 131963979"
local Players = game:GetService("Players")
-- Create a table called 'cache' to store each 'UserId' as they are found.
-- If we lookup a 'UserId' using the same 'Name', the 'UserId' will come
-- from cache (fast) instead of GetUserIdFromNameAsync() (yields).
local cache = {}
function getUserIdFromName(name)
-- First, check if the cache contains 'name'
local userIdFromCache = cache[name]
if userIdFromCache then
-- if a value was stored in the cache at key 'name', then this 'userIdFromCache'
-- is the correct UserId and we can return it.
return userIdFromCache
end
-- If here, 'name' was not previously looked up and does not exist in the
-- cache. Now we need to use GetUserIdFromNameAsync() to look up the userId
local userId
local success, _ = pcall(function()
userId = Players:GetUserIdFromNameAsync(name)
end)
if success then
-- if 'success' is true, GetUserIdFromNameAsync() successfully found the
-- userId. Store this userId in the cache using 'name' as the key so we
-- never have to look this userId up in the future. Then return userId.
cache[name] = userId
return userId
end
-- If here, 'success' was false, meaning GetUserIdFromNameAsync()
-- was unable to find the 'userId' for the 'name' provided. We can warn the
-- user this happened and then return nothing, or nil.
warn("Unable to find UserId for Name:", name)
return nil
end
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
-- The first time a Name is used, GetUserIdFromNameAsync() will be called
local userIdOne = getUserIdFromName("RobloxRulez")
local userIdTwo = getUserIdFromName("docsRule")
-- Because "RobloxRulez" was previously used, get its UserId from the cache
local userIdOneQuick = getUserIdFromName("RobloxRulez")
print(userIdOne, userIdTwo, userIdOneQuick)
-- prints: "118271 131963979 118271"
GetUserThumbnailAsync
Hàm này trả về URL nội dung của hình ảnh của một người chơi được cung cấp bởi avatar của họ, kích thước hình ảnh như một UserId , và kiểu dữ liệu như một Enum.ThumbnailSize枚, và kiể
Phổ biến nhất, phương pháp này được sử dụng với ImageLabel.Image hoặc Decal.Texture để hiển thị hình ảnh avatar người dùng trong một trải nghiệm.
Tham Số
Class.Player.UserId của người chơi đang được xác định.
Một Enum.ThumbnailType mô tả loại hình ảnh hình nhỏ.
Một Enum.ThumbnailSize định kích thước của hình ảnh bản xem trước.
Lợi Nhuận
Một tuỳ tùy chứa URL của nội dung của một hình ảnh người dùng dựa trên các tham số được xác định, và một bool mô tả có sẵn hay không để sử dụng hình ảnh.
Mẫu mã
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local PLACEHOLDER_IMAGE = "rbxassetid://0" -- replace with placeholder image
-- fetch the thumbnail
local userId = player.UserId
local thumbType = Enum.ThumbnailType.HeadShot
local thumbSize = Enum.ThumbnailSize.Size420x420
local content, isReady = Players:GetUserThumbnailAsync(userId, thumbType, thumbSize)
-- set the ImageLabel's content to the user thumbnail
local imageLabel = script.Parent
imageLabel.Image = (isReady and content) or PLACEHOLDER_IMAGE
imageLabel.Size = UDim2.new(0, 420, 0, 420)
UnbanAsync
Unbans người chơi bị cấm từ Players:BanAsync() hoặc the User Restrictions Open Cloud API . This method is enabled and disabled by the Players.BanningEnabled property, which you can toggle in Studio.
Giống như Players:BanAsync() , phương thức này nhận một cái config từ điển để cho phép bạn bỏ chủ động unban người dùng. Điều này cấu hình người dùng đã unban và phạm vi từ đó bạn bị unban.
Unbans chỉ có hiệu lực với các lệnh cấm có cùng phạm vi ApplyToUniverse . Ví dụ, một lệnh cấm với ApplyToUniverse được đặt để true sẽ không làm
Phương thức này gọi một cuộc gọi HTTP đến các dịch vụ phía sau, đó bị chậm và có thể gây ra lỗi. Nếu bạn gọ
Do những rủi ro liên quan đến việc cấm người dùng, phương thức này chỉ có thể được gọi trên máy chủ trò chơi sau. Phía client sẽ kết thúc bằng một lỗi. Bạn có thể kiểm tra API này trong Studio, Team Create và Team Test, nhưng các bans sẽ không áp dụng cho sản xuất.
API này sử dụng API Nghị giới hạn người dùng Open Cloud API . Bạn sẽ có thể sử dụng các API này để quản lý các lệnh cấm trong các ứng dụng của bên thứ ba.
Tham Số
<tbody><tr><td><code>UserIds</code></td><td>ma trận</td><td>ID người dùng để được phép vào trải nghiệm (s). Kích thước tối đa là <code>50</code> .</td></tr><tr><td><code>ApplyToUniverse</code></td><td>boolean</td><td>Làm cho unban được gửi đến tất cả các nơi trong vũ trụ này.</td></tr></tbody>
Tên | Kiểu | Mô tả |
---|
Lợi Nhuận
Mẫu mã
local Players = game:GetService("Players")
if shouldBeUnbanned(player: Player) then
local config: UnbanConfigType = {
UserIds = {player.UserId, 789},
ApplyToUniverse = false
}
local success, err = pcall(function()
return Players:UnbanAsync(config)
end)
print(success, err)
end
Sự Kiện
PlayerAdded
Sự kiện PlayerAdded diễn ra khi một người chơi vào trò chơi. Điều này được sử dụng để bắn một sự kiện khi một người chơi tham gia vào trò chơi, chẳng hạn như tải dữ liệu GlobalDataStore của người chơi lưu.
Điều này có thể được sử dụng cùng với sự kiện Players.PlayerRemoving, which fires when a player is about to leave the game. Ví ví dụ / trường hợp, if bạn muốn in một thông điệp mỗi khi một người chơi tham gia hoặc rời khỏi trò chơi:
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
print(player.Name .. " joined the game!")
end)
Players.PlayerRemoving:Connect(function(player)
print(player.Name .. " left the game!")
end)
Nếu bạn muốn theo dõi khi một nhân vật người chơi được thêm hoặc bị xóa khỏi trò chơi, chẳng hạn như khi một người chơi respawn hoặc chết, bạn có thể sử dụng các hàm Player.CharacterAdded và Player.CharacterRemoving.
Lưu ý rằng sự kiện này không hoạt động như mong đợi trong Chơi chế độ vì người chơi được tạo trước khi các script kết nối với PlayerAdded . Để xử lý trường hợp này, cũng như các trường hợp khi ngư
Tham Số
Một instace của người chơi tham gia trò chơi.
Mẫu mã
local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("A player has entered: " .. player.Name)
end
Players.PlayerAdded:Connect(onPlayerAdded)
PlayerMembershipChanged
Sự kiện này bắt đầu khi máy chủ game nhận thấy rằng thành viên của một người chơiđã thay đổi. Lưu ý, tuy nhiên, rằng máy chủ sẽ chỉ cố gắng kiểm tra và cập nhật Premiumviên sau
Để tìm hiểu thêm về và tích hợp Premium vào trải nghiệm của bạn và monet hóa bằng hệ thống trả tiền dựa trên kết nối, xem Phần thưởng dựa trên kết nối.
Xem thêm:
- MarketplaceService:PromptPremiumPurchase() , được sử dụng để kêu gọi một người mua Premium
- MarketplaceService.PromptPremiumPurchaseFinished , bắt đầu khi UI mua Premium kết thúc
Tham Số
Mẫu mã
local Players = game:GetService("Players")
local function grantPremiumBenefits(player)
-- Grant the player access to Premium-only areas, items, or anything you can imagine!
print("Giving", player, "premium benefits!")
end
local function playerAdded(player)
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
local function playerMembershipChanged(player)
print("Received event PlayerMembershipChanged. New membership = " .. tostring(player.MembershipType))
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
Players.PlayerAdded:Connect(playerAdded)
Players.PlayerMembershipChanged:Connect(playerMembershipChanged)
PlayerRemoving
Sự kiện PlayerRemoving ngay trước khi một Player rời khỏi trò chơi. Sự kiện này bắt đầu trước khi ChildRemoved
Điều này có thể được sử dụng cùng với sự kiện Player.PlayerAdded, which fires when a player joins the game. Ví ví dụ / trường hợp, để in một thông điệp mỗi khi một người chơi tham gia vào trò chơi hoặc rời khỏi trò chơi:
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
print(player.Name .. " joined the game!")
end)
Players.PlayerRemoving:Connect(function(player)
print(player.Name .. " left the game!")
end)
Nếu bạn muốn theo dõi khi một nhân vật người chơi được thêm hoặc bị xóa khỏi trò chơi, chẳng hạn như khi một người chơi respawn hoặc chết, bạn có thể sử dụng các hàm Player.CharacterAdded và Player.CharacterRemoving.
Tham Số
Một instace của người chơi đang rời khỏi trò chơi.
Mẫu mã
local Players = game:GetService("Players")
local function onPlayerRemoving(player)
print("A player has left: " .. player.Name)
end
Players.PlayerRemoving:Connect(onPlayerRemoving)
UserSubscriptionStatusChanged
Sự kiện này bắt đầu khi máy chủ game nhận ra rằng status của người dùng cho một subscribe nhất định đã thay đổi. Lưu ý rằng máy chủ chỉ cố gắng kiểm tra và cập nhật status sau</
Lưu ý rằng chỉ các tập lệnh máy chủ nhận được sự kiện này.
Tham Số
Người dùng có trạng thái subscribe thay đổi.
ID của subscribe với sự thay đổi trạng thái.