Players

Hiển Thị Bản Đã Lỗi Thời

*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.

Không Thể Tạo
Dịch Vụ

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

  • Không Sao Chép
    Không Thể Viết Kịch Bản
    Đọc Song Song

    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ỉ Đọc
    Không Sao Chép
    Đọc Song Song

    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() .

  • Không Sao Chép
    Đọc Song Song

    Chỉ ra whether Class.Character|Characters sẽ tự động hồi sinh.

  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song

    Indicates whether or not classic chat is enabled; set by the phương thức Players:SetChatStyle() .

  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song

    Class.Player mà Class.LocalScript đang chạy cho.

  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song

    Số máxim người chơi mà có thể ở trong một máy chủ.

  • Chỉ Đọc
    Không Sao Chép
    Đọc Song Song

    Số lượng người chơi được ưa thích cho một máy chủ.

  • Đọc Song Song

    Điều khiển thời gian để một nhân vật người chơi tái sinh.

  • Không Thể Viết Kịch Bản
    Đọc Song Song

Phương Pháp

Sự Kiện

Thuộc Tính

BanningEnabled

Không Sao Chép
Không Thể Viết Kịch Bản
Đọc Song Song

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

Chỉ Đọc
Không Sao Chép
Đọc Song Song

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

Không Sao Chép
Đọc Song Song

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ã

Player Respawn Timer

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

Chỉ Đọc
Không Sao Chép
Đọc Song Song

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

Chỉ Đọc
Không Sao Chép
Đọc Song Song

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 LocalScriptsModuleScripts 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

Chỉ Đọc
Không Sao Chép
Đọc Song Song

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

Chỉ Đọc
Không Sao Chép
Đọc Song Song

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

Đọc Song Song

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

Không Thể Viết Kịch Bản
Đọc Song Song

Phương Pháp

Chat

void
Bảo Mật Plugin

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ố

message: string

Tin nhắn chatting.


Lợi Nhuận

void

Mẫu mã

Players:Chat

-- 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

Ghi Song Song

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ố

userId: number

Class.Player.UserId của người chơi đang được xác định.


Lợi Nhuận

Mẫu mã

Players:GetPlayerByUserId

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
ProcessReceipt Callback

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ố

character: Model

Một instace nhân vật mà bạn muốn nhận player từ.


Lợi Nhuận

Mẫu mã

Players:GetPlayerFromCharacter

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

Instances
Ghi Song Song

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() do
print(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

Instances

Một bảng chứa tất cả các người chơi trong máy chủ.

Mẫu mã

Give Sparkles to Everyone

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

void
Bảo Mật Plugin

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.

Giá Trị Mặc Định: "Classic"

Lợi Nhuận

void

Mẫu mã

Setting a Player's Chat Style

-- 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

void
Bảo Mật Plugin

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ố

message: string

Tin nhắn đang được trò chuyện.


Lợi Nhuận

void

Mẫu mã

Sending Team Chat

-- 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

void
Sinh Lợi

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ố

config: Dictionary
  • 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

void

Mẫu mã

Banning Users

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

Sinh Lợi

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ố

description: HumanoidDescription

Đị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.

assetTypeVerification: Enum.AssetTypeVerification

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).

Giá Trị Mặc Định: "Default"

Lợi Nhuận

Một mô hình nhân vật hình người.

Mẫu mã

Create Humanoid Model From Description

game.Players:CreateHumanoidModelFromDescription(Instance.new("HumanoidDescription"), Enum.HumanoidRigType.R15).Parent = game.Workspace

CreateHumanoidModelFromUserId

Sinh Lợi

Đặ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ố

userId: number

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ã

Create Humanoid Model From A User ID

game.Players:CreateHumanoidModelFromUserId(1).Parent = game.Workspace

GetBanHistoryAsync

Sinh Lợi

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ố

userId: number

Lợi Nhuận

Xem BanHistoryPages để tham khảo trở lại.

GetCharacterAppearanceInfoAsync

Sinh Lợi

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ênKiểuMô 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ênKiểuMô 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ố

userId: number

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ã

Example Return Character Appearance Dictionary

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

Sinh Lợi

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ênKiểuMô 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ố

userId: number

ID người chơi được chỉ định.


Lợi Nhuận

Mẫu mã

Print Roblox Friends

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

Sinh Lợi

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ố

outfitId: number

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ã

Get HumanoidDescription From Outfit ID

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

Sinh Lợi

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ố

userId: number

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ã

Get HumanoidDescription From User ID

game.Players:CreateHumanoidModelFromDescription(game.Players:GetHumanoidDescriptionFromUserId(1), Enum.HumanoidRigType.R15).Parent = game.Workspace

GetNameFromUserIdAsync

Sinh Lợi

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ố

userId: number

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ã

Get Name from UserId

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"
Get Name from UserId using a cache

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

Sinh Lợi

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ố

userName: string

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ã

Get UserId from Name

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"
Get UserId from Name using a cache

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

Sinh Lợi

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ố

userId: number

Class.Player.UserId của người chơi đang được xác định.

thumbnailType: Enum.ThumbnailType

Một Enum.ThumbnailType mô tả loại hình ảnh hình nhỏ.

thumbnailSize: Enum.ThumbnailSize

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ã

Display Player Thumbnail

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

void
Sinh Lợi

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ố

config: Dictionary

<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ênKiểuMô tả

Lợi Nhuận

void

Mẫu mã

Unbanning Users

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.CharacterAddedPlayer.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ố

player: Player

Một instace của người chơi tham gia trò chơi.


Mẫu mã

Players.PlayerAdded

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:

Tham Số

player: Player

Mẫu mã

Handling Premium Membership Changes

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.CharacterAddedPlayer.CharacterRemoving.

Tham Số

player: Player

Một instace của người chơi đang rời khỏi trò chơi.


Mẫu mã

Players.PlayerRemoving

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ố

user: Player

Người dùng có trạng thái subscribe thay đổi.

subscriptionId: string

ID của subscribe với sự thay đổi trạng thái.