Klasa silnika
Players
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Podsumowanie
Właściwości
Metody
Zdarzenia
PlayerAdded(player: Player):RBXScriptSignal |
PlayerMembershipChanged(player: Player):RBXScriptSignal |
PlayerRemoving(player: Player,reason: Enum.PlayerExitReason):RBXScriptSignal |
UserSubscriptionStatusChanged(user: Player,subscriptionId: string):RBXScriptSignal |
Materiały referencyjne dotyczące interfejsów API
Właściwości
CharacterAutoLoads
Przykłady kodu
Czas Odrodzenia Gracza
local Players = game:GetService("Players")
-- Ustaw CharacterAutoLoads na false
Players.CharacterAutoLoads = false
-- Usuń postać gracza z workspace po śmierci
Players.PlayerAdded:Connect(function(player)
while true do
local char = player.CharacterAdded:Wait()
char.Humanoid.Died:Connect(function()
char:Destroy()
end)
end
end)
-- Odrodź wszystkich martwych graczy co 10 sekund
while true do
local players = Players:GetChildren()
-- Sprawdź, czy każdy gracz jest martwy, sprawdzając, czy nie mają postaci,
-- jeśli martwy, załaduj postać tego gracza
for _, player in pairs(players) do
if not workspace:FindFirstChild(player.Name) then
player:LoadCharacterAsync()
end
end
-- Czekaj 10 sekund do następnej kontroli odrodzenia
task.wait(10)
endlocalPlayer
NumPlayers
numPlayers
Metody
BanAsync
Parametry
Zwroty
()
Przykłady kodu
Zakazywanie użytkowników
local Players = game:GetService("Players")
if shouldBeBanned(player) then
local banHistoryPages = Players:GetBanHistoryAsync(player.UserId)
local duration = 86400 -- 24 godziny w sekundach. Rekomendacja: użyj własnej logiki opartej na historii banów użytkownika
local config: BanConfigType = {
UserIds = { player.UserId },
Duration = duration,
DisplayReason = "Narusiłeś wytyczne społeczności #5",
PrivateReason = "Wstaw tutaj cokolwiek, czego użytkownik nie powinien wiedzieć, ale co jest pomocne w dokumentacji",
ExcludeAltAccounts = false,
ApplyToUniverse = true,
}
local success, err = pcall(function()
return Players:BanAsync(config)
end)
print(success, err)
endChat
Parametry
Zwroty
()
Przykłady kodu
Gracze:Rozmowa
-- Pasek poleceń
game:GetService("Players"):Chat("Cześć, świecie!") --Skutkuje wyświetleniem 'Cześć, świecie!' w dzienniku czatu pod nazwą Twojego gracza.
-- Skrypt
local Players = game:GetService("Players")
Players:Chat("Cześć, świecie!") --BłądCreateHumanoidModelFromDescription
CreateHumanoidModelFromDescriptionAsync
Players:CreateHumanoidModelFromDescriptionAsync(
description:HumanoidDescription, rigType:Enum.HumanoidRigType, assetTypeVerification:Enum.AssetTypeVerification
Parametry
| Wartość domyślna: "Default" |
Zwroty
Przykłady kodu
Utwórz model humanoida z opisu
game.Players:CreateHumanoidModelFromDescriptionAsync(Instance.new("HumanoidDescription"), Enum.HumanoidRigType.R15).Parent =
game.WorkspaceCreateHumanoidModelFromUserId
CreateHumanoidModelFromUserIdAsync
GetBanHistoryAsync
GetCharacterAppearanceAsync
GetCharacterAppearanceInfoAsync
Parametry
Zwroty
Przykłady kodu
Przykładowy słownik wyglądu postaci
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 = "Kapelusz",
id = 8,
},
name = "Pasiasty Kapelusz",
},
{
id = 13062491,
assetType = {
name = "Akcesorium na twarz",
id = 42,
},
name = "Wygląd Francuski",
},
{
id = 16598440,
assetType = {
name = "Akcesorium na szyję",
id = 43,
},
name = "Czerwony Krawat",
},
{
id = 28999228,
assetType = {
name = "Twarz",
id = 18,
},
name = "Radosna Niespodzianka",
},
{
id = 86896488,
assetType = {
name = "Koszula",
id = 11,
},
name = "Drogi Czerwony Frak",
},
{
id = 86896502,
assetType = {
name = "Spodnie",
id = 12,
},
name = "Drogi Czerwony Frak Spodnie",
},
{
id = 376530220,
assetType = {
name = "Lewy Ręka",
id = 29,
},
name = "ROBLOX Chłopak Lewa Ręka",
},
{
id = 376531012,
assetType = {
name = "Prawa Ręka",
id = 28,
},
name = "ROBLOX Chłopak Prawa Ręka",
},
{
id = 376531300,
assetType = {
name = "Lewa Noga",
id = 30,
},
name = "ROBLOX Chłopak Lewa Noga",
},
{
id = 376531703,
assetType = {
name = "Prawa Noga",
id = 31,
},
name = "ROBLOX Chłopak Prawa Noga",
},
{
id = 376532000,
assetType = {
name = "Tułów",
id = 27,
},
name = "ROBLOX Chłopak Tułów",
},
},
}
print(result)GetFriendsAsync
Parametry
Zwroty
Przykłady kodu
Drukuj znajomych Roblox
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
-- Najpierw uzyskaj identyfikator użytkownika gracza
local userId = Players:GetUserIdFromNameAsync(USERNAME)
-- Następnie uzyskaj obiekt FriendPages dla ich znajomych
local friendPages = Players:GetFriendsAsync(userId)
-- Iteruj przez elementy w stronach. Dla FriendPages, są to
-- tabele informacji o znajomych, w tym Nazwa użytkownika.
-- Zbieraj każdą nazwę użytkownika w tabeli
local usernames = {}
for item, _pageNo in iterPageItems(friendPages) do
table.insert(usernames, item.Username)
end
print("Połączenia " .. USERNAME .. ": " .. table.concat(usernames, ", "))GetHumanoidDescriptionFromOutfitId
GetHumanoidDescriptionFromOutfitIdAsync
Parametry
Zwroty
Przykłady kodu
Pobierz HumanoidDescription z ID stroju
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:GetHumanoidDescriptionFromOutfitIdAsync(itemId)
end
return nil
end
local humanoidDescription = getHumanoidDescriptionBundle(799)
local humanoidModel = Players:CreateHumanoidModelFromDescriptionAsync(humanoidDescription, Enum.HumanoidRigType.R15)
humanoidModel.Parent = WorkspaceGetHumanoidDescriptionFromUserId
GetHumanoidDescriptionFromUserIdAsync
Parametry
Zwroty
Przykłady kodu
Pobierz HumanoidDescription z ID Użytkownika
game.Players:CreateHumanoidModelFromDescriptionAsync(
game.Players:GetHumanoidDescriptionFromUserIdAsync(1),
Enum.HumanoidRigType.R15
).Parent =
game.WorkspaceGetNameFromUserIdAsync
Parametry
Zwroty
Przykłady kodu
Pobierz nazwę z UserId
local Players = game:GetService("Players")
-- Przykładowe dane:
-- UserId: 118271 Nazwa: "RobloxRulez"
-- UserId: 131963979 Nazwa: "docsRule"
local nameOne = Players:GetNameFromUserIdAsync(118271)
local nameTwo = Players:GetNameFromUserIdAsync(131963979)
print(nameOne, nameTwo)
-- wypisuje: "RobloxRulez docsRule"Pobierz nazwę z UserId przy użyciu pamięci podręcznej
local Players = game:GetService("Players")
-- Utwórz tabelę nazwaną 'cache', aby przechowywać każdą 'Name', gdy zostanie znaleziona.
-- Jeśli szukamy 'Name' używając tego samego 'UserId', 'Name' zostanie uzyskana
-- z pamięci podręcznej (szybko) zamiast GetNameFromUserIdAsync() (zwraca).
local cache = {}
function getNameFromUserId(userId)
-- Najpierw sprawdź, czy pamięć podręczna zawiera 'userId'
local nameFromCache = cache[userId]
if nameFromCache then
-- jeśli wartość została zapisana w pamięci podręcznej pod kluczem 'userId', to 'nameFromCache'
-- jest poprawną nazwą i możemy ją zwrócić.
return nameFromCache
end
-- Jeśli tutaj, 'userId' nie był wcześniej wyszukiwany i nie istnieje w
-- pamięci podręcznej. Teraz musimy użyć GetNameFromUserIdAsync(), aby znaleźć nazwę
local name
local success, _ = pcall(function()
name = Players:GetNameFromUserIdAsync(userId)
end)
if success then
-- jeśli 'success' jest prawdziwe, GetNameFromUserIdAsync() pomyślnie znalazło
-- nazwę. Przechowuj tę nazwę w pamięci podręcznej, używając 'userId' jako klucza, abyśmy
-- nigdy więcej nie musieli jej wyszukiwać w przyszłości. Następnie zwróć nazwę.
cache[userId] = name
return name
end
-- Jeśli tutaj, 'success' było fałszywe, co oznacza, że GetNameFromUserIdAsync()
-- nie mogło znaleźć 'name' dla podanego 'userId'. Ostrzegamy użytkownika,
-- że to się zdarzyło i następnie zwracamy nic, lub nil.
warn("Nie można znaleźć nazwy dla UserId:", userId)
return nil
end
-- Przykładowe dane:
-- UserId: 118271 Nazwa: "RobloxRulez"
-- UserId: 131963979 Nazwa: "docsRule"
-- Za pierwszym razem, gdy używany jest UserId, GetNameFromUserIdAsync() będzie wywoływane
local nameOne = getNameFromUserId(118271)
local nameTwo = getNameFromUserId(131963979)
-- Ponieważ 118271 był wcześniej używany, uzyskaj jego nazwę z pamięci podręcznej
local nameOneQuick = getNameFromUserId(118271)
print(nameOne, nameTwo, nameOneQuick)
-- drukuje: "RobloxRulez docsRule RobloxRulez"GetPlayerByUserId
Parametry
Zwroty
Przykłady kodu
Gracze:GetPlayerByUserId
local Players = game:GetService("Players")
local player = Players:GetPlayerByUserId(1)
if player then
print("Gracz z userId 1 jest na tym serwerze! Jego nazwa to: " .. player.Name)
else
print("Gracz z userId 1 nie jest na tym serwerze!")
endGetPlayerFromCharacter
Parametry
Zwroty
Przykłady kodu
Gracze:ZnajdźGraczaZPostaci
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(`Gracz {player.Name} ({player.UserId}) jest w grze`)
else
print(`Gracz {PLAYER_NAME} nie jest w grze!`)
endGetPlayers
Zwroty
{Player}
Przykłady kodu
Daj Sparkles wszystkim
local Players = game:GetService("Players")
local function onCharacterAdded(character)
-- Daj im sparkles na głowie, jeśli jeszcze ich nie mają
if not character:FindFirstChild("Sparkles") then
local sparkles = Instance.new("Sparkles")
sparkles.Parent = character:WaitForChild("Head")
end
end
local function onPlayerAdded(player)
-- Sprawdź, czy już się pojawili
if player.Character then
onCharacterAdded(player.Character)
end
-- Nasłuchuj, kiedy gracz (ponownie) się pojawia
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)getPlayers
GetUserIdFromNameAsync
Parametry
Zwroty
Przykłady kodu
Pobierz UserId z imienia
local Players = game:GetService("Players")
-- Przykładowe dane:
-- UserId: 118271 Imię: "RobloxRulez"
-- UserId: 131963979 Imię: "docsRule"
local userIdOne = Players:GetUserIdFromNameAsync("RobloxRulez")
local userIdTwo = Players:GetUserIdFromNameAsync("docsRule")
print(userIdOne, userIdTwo)
-- wypisuje: "118271 131963979"Pobierz UserId z Nazwy za pomocą pamięci podręcznej
local Players = game:GetService("Players")
-- Utwórz tabelę o nazwie 'cache', aby przechowywać każdy 'UserId' w miarę ich znajdowania.
-- Jeśli wyszukamy 'UserId' używając tej samej 'Name', 'UserId' zostanie pobrany
-- z pamięci podręcznej (szybko) zamiast z GetUserIdFromNameAsync() (zastosowania).
local cache = {}
function getUserIdFromName(name)
-- Najpierw sprawdź, czy pamięć podręczna zawiera 'name'
local userIdFromCache = cache[name]
if userIdFromCache then
-- jeśli wartość była przechowywana w pamięci podręcznej pod kluczem 'name', to 'userIdFromCache'
-- jest poprawnym UserId i możemy ją zwrócić.
return userIdFromCache
end
-- Jeśli tu jesteśmy, 'name' nie było wcześniej wyszukiwane i nie istnieje w
-- pamięci podręcznej. Teraz musimy użyć GetUserIdFromNameAsync(), aby wyszukać userId
local userId
local success, _ = pcall(function()
userId = Players:GetUserIdFromNameAsync(name)
end)
if success then
-- jeśli 'success' jest prawdziwy, GetUserIdFromNameAsync() pomyślnie odnalazł
-- userId. Przechowaj ten userId w pamięci podręcznej, używając 'name' jako klucza, abyśmy
-- nigdy nie musieli ponownie wyszukiwać tego userId w przyszłości. Następnie zwróć userId.
cache[name] = userId
return userId
end
-- Jeśli tu jesteśmy, 'success' był fałszywy, co oznacza, że GetUserIdFromNameAsync()
-- nie był w stanie znaleźć 'userId' dla podanej 'name'. Możemy ostrzec użytkownika,
-- że to się stało, a następnie zwrócić nic lub nil.
warn("Nie można znaleźć UserId dla Nazwy:", name)
return nil
end
-- Przykładowe dane:
-- UserId: 118271 Nazwa: "RobloxRulez"
-- UserId: 131963979 Nazwa: "docsRule"
-- Przy pierwszym użyciu Nazwy, GetUserIdFromNameAsync() zostanie wywołane
local userIdOne = getUserIdFromName("RobloxRulez")
local userIdTwo = getUserIdFromName("docsRule")
-- Ponieważ "RobloxRulez" było wcześniej używane, pobierz jego UserId z pamięci podręcznej
local userIdOneQuick = getUserIdFromName("RobloxRulez")
print(userIdOne, userIdTwo, userIdOneQuick)
-- wypisuje: "118271 131963979 118271"GetUserThumbnailAsync
Players:GetUserThumbnailAsync(
Parametry
Zwroty
Przykłady kodu
Wyświetl miniaturę gracza
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local PLACEHOLDER_IMAGE = "rbxassetid://0" -- zamień na obrazek zastępczy
-- pobierz miniaturę
local userId = player.UserId
local thumbType = Enum.ThumbnailType.HeadShot
local thumbSize = Enum.ThumbnailSize.Size420x420
local content, isReady = Players:GetUserThumbnailAsync(userId, thumbType, thumbSize)
-- ustaw zawartość ImageLabel na miniaturę użytkownika
local imageLabel = script.Parent
imageLabel.Image = (isReady and content) or PLACEHOLDER_IMAGE
imageLabel.Size = UDim2.new(0, 420, 0, 420)playerFromCharacter
players
SetChatStyle
Parametry
| Wartość domyślna: "Classic" |
Zwroty
()
Przykłady kodu
Ustawianie stylu czatu gracza
-- Pasek poleceń
game.Players:SetChatStyle(Enum.ChatStyle.Classic) -- Ustawia styl czatu na klasyczny
-- LocalScript
local Players = game:GetService("Players")
Players:SetChatStyle(Enum.ChatStyle.Classic) -- BłądTeamChat
Parametry
Zwroty
()
Przykłady kodu
Wysyłanie czatu drużynowego
-- Pasek poleceń
game.Players:TeamChat("Witaj świecie") -- Wysyła wiadomość "Witaj świecie" do wszystkich graczy w drużynie lokalnego gracza
-- LocalScript
local Players = game:GetService("Players")
Players:TeamChat("Witaj świecie") -- BłądUnbanAsync
Parametry
Zwroty
()
Przykłady kodu
Odbanowanie Użytkowników
local Players = game:GetService("Players")
if shouldBeUnbanned(player) then
local config: UnbanConfigType = {
UserIds = { player.UserId, 789 },
ApplyToUniverse = false,
}
local success, err = pcall(function()
return Players:UnbanAsync(config)
end)
print(success, err)
endZdarzenia
PlayerAdded
Parametry
Przykłady kodu
Gracze.PlayerAdded
local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("Gracz wszedł: " .. player.Name)
end
Players.PlayerAdded:Connect(onPlayerAdded)PlayerMembershipChanged
Parametry
Przykłady kodu
Zarządzanie zmianami członkostwa Premium
local Players = game:GetService("Players")
local function grantPremiumBenefits(player)
-- Przyznaj graczowi dostęp do wyłącznie Premium obszarów, przedmiotów lub czegokolwiek, co możesz sobie wyobrazić!
print("Przyznawanie", player, "korzyści Premium!")
end
local function playerAdded(player)
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
local function playerMembershipChanged(player)
print("Odebrano zdarzenie PlayerMembershipChanged. Nowe członkostwo = " .. tostring(player.MembershipType))
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
Players.PlayerAdded:Connect(playerAdded)
Players.PlayerMembershipChanged:Connect(playerMembershipChanged)PlayerRemoving
Parametry
Przykłady kodu
Gracze.GraczUsuwany
local Players = game:GetService("Players")
local function onPlayerRemoving(player)
print("Gracz opuścił: " .. player.Name)
end
Players.PlayerRemoving:Connect(onPlayerRemoving)UserSubscriptionStatusChanged