Player

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Bir Oyuncu nesnesi, mevcut olarak bağlantıda olan bir kliendir. Bu nesneler, yeni bir oyuncu bağlandığında Players hizmetine eklenir ve sonra sunucudan ayrıldığında kaldırılır.

Class.Instance.Name özelliği, oyuncunun kullanıcı adını yansıtır. Bir oyuncu hakkında bilgi kaydederken, kullanıcı adını değiştirebilirsiniz.

Oyuncu nesneleriyle çalışmak için Player hizmetindeki birkaç benzer yöntem var. Onların her biri ile ayrı Players yöntemlerini kullanın:

  • Mevcut Oyuncu nesnelerinin bir tablosunu elde etmek için Players:GetPlayers() ; yine, bunu Instance:GetChildren() yerine kullanın.
  • Oyuncu nesnelerinin eklenmesini tespit etmek için, Players.PlayerAdded etkinliğini kullanmak (Instance.ChildAdded değil) tavsiye edilir.
  • Aynı şekilde, Player nesnelerinin kaldırılmasını Players.PlayerRemoving kullanarak tespit edebilirsiniz, bu sadece Player'ın kaldırıldığından önce şu anda önceki Player'ın kaldırıldığından önce yanlış olabilir (bunun yerine Class.Instance.ChildRemoved</

Kod Örnekleri

Leaderstats

local Players = game:GetService("Players")
local function onPlayerAdded(player)
-- Create a container for leaderstats
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
-- Create one leaderstat value
local vScore = Instance.new("IntValue")
vScore.Name = "Score"
vScore.Value = 0
vScore.Parent = leaderstats
-- Add to player (displaying it)
leaderstats.Parent = player
end
Players.PlayerAdded:Connect(onPlayerAdded)

Özet

Özellikler

Yöntemler

Etkinlikler

Özellikler

AccountAge

Salt Okunur
Çoğaltılmamış
Paralel oku

Hesabınız yaşı ile bir Player özelliğidir ki oyuncunun hesabının kaç günde kaydedildiğini tarif eder. Bu, Player:SetAccountAge() işlevi kullanılarak ayarlanır ve bu, skriptlerin erişimine izin vermez olabilir.

Bu özellik, öğreticiler gibi yeni Roblox oyuncularının içeriğini kondisyonlara bağlı olarak göstermek için kullanışlıdır.

Kod Örnekleri

Account Age Mark

local Players = game:GetService("Players")
local MAX_AGE_NEW_PLAYER = 7 -- one week
local MIN_AGE_VETERAN = 365 -- one year
-- This function marks a part with text using a BillboardGui
local function mark(part, text)
local bbgui = Instance.new("BillboardGui")
bbgui.AlwaysOnTop = true
bbgui.StudsOffsetWorldSpace = Vector3.new(0, 2, 0)
bbgui.Size = UDim2.new(0, 200, 0, 50)
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0) -- Fill parent
textLabel.Text = text
textLabel.TextColor3 = Color3.new(1, 1, 1)
textLabel.TextStrokeTransparency = 0
textLabel.BackgroundTransparency = 1
textLabel.Parent = bbgui
-- Add to part
bbgui.Parent = part
bbgui.Adornee = part
end
local function onPlayerSpawned(player, character)
local head = character:WaitForChild("Head")
if player.AccountAge >= MIN_AGE_VETERAN then
mark(head, "Veteran Player")
elseif player.AccountAge <= MAX_AGE_NEW_PLAYER then
mark(head, "New Player")
else
mark(head, "Regular Player")
end
end
local function onPlayerAdded(player)
-- Listen for this player spawning
if player.Character then
onPlayerSpawned(player, player.Character)
end
player.CharacterAdded:Connect(function()
onPlayerSpawned(player, player.Character)
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

AutoJumpEnabled

Paralel oku

AutoJumpEnabled özelliği, bir Player.Character ın mobil bir cihaz kullanarak Player ının çarpıştığında otomatik olarak atlayıp atlamayacağını belirler. Bu, seviyeleri mobil bir cihazda daha yönlendirilebilir hale getirebilir.

Oyuncu oyuna katıldığında, StarterPlayer.AutoJumpEnabled değeri bu özelliğin başlangıç ​​durumunu belirler. Sonra, bu özellik, Humanoid.AutoJumpEnabled özelliğinin oluşturulduğu oyun içinde o

Kod Örnekleri

Auto-Jump Toggle

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local button = script.Parent
local function update()
-- Update button text
if player.AutoJumpEnabled then
button.Text = "Auto-Jump is ON"
else
button.Text = "Auto-Jump is OFF"
end
-- Reflect the property in the player's character, if they have one
if player.Character then
local human = player.Character:FindFirstChild("Humanoid")
if human then
human.AutoJumpEnabled = player.AutoJumpEnabled
end
end
end
local function onActivated()
-- Toggle auto-jump
player.AutoJumpEnabled = not player.AutoJumpEnabled
-- Update everything else
update()
end
button.Activated:Connect(onActivated)
update()

CameraMaxZoomDistance

Paralel oku

KameraMaxZoomDistance özelliği, kamera'nın varsayılan kameralardan karakterle olan maksimum mesafeyi belirler.

Başka bir deyişle, oyuncunun kamerasının çıkarılabileceği maksimum mesafeyi kontrol eder.

Bu öğünün varsayılan değeri StarterPlayer.CameraMaxZoomDistance ile ayarlanır. Eğer bu değer Player.CameraMinZoomDistance 以下 değerleriyle ayarlanırsa, bu değer Kameranın MinZoomDistance ile artırılacaktır.

Kod Örnekleri

Setting Camera Zoom Distance

local Players = game:GetService("Players")
local player = Players.LocalPlayer
player.CameraMaxZoomDistance = 50
player.CameraMinZoomDistance = 75

CameraMinZoomDistance

Paralel oku

CameraMinZoonDistance Player özelliği, kamera standardaki kameradan karakterinizin kamerasından olabileceği minimum mesafeyi ayarlar.

Başka bir deyişle, oyuncunun kamerasının minimum mesafeyi yakalayabilmesine izin verir.

Bu öğünün varsayılan değeri StarterPlayer.CameraMinZoomDistance ile ayarlandı. Eğer bu değer Player.CameraMaxZoomDistance ile daha yüksek bir değere ayarlandıysa, Kameranın MaxZoomDistance'i azaltılacaktır.

Kod Örnekleri

Setting Camera Zoom Distance

local Players = game:GetService("Players")
local player = Players.LocalPlayer
player.CameraMaxZoomDistance = 50
player.CameraMinZoomDistance = 75

CameraMode

Paralel oku

KameraModu özelliği, oyuncunun kamerasını ayarlar ve üçüncü kişiye varsayılır.

Üçüncü Kişi

Varsayılan üçüncü kişi modunda (Enum.CameraMode.Classic), karakter kamerada görülebilir. Bu modda, varsayılan davranış şu şekildedir:

  • Oyuncular sağ tıklayıp sürükleme (fare), dokun ve sürükleme (mobil), sekizlilik çubuğunu kullan (游戏板) veya sol/sağ oklarını (键盘) basınca kamerayı karakterleri etrafında döndürebilir.
  • Bir oyuncu karakterini hareket ettirirse, ilgili hareket yönüne bakar.
  • Oyuncular, hatta tamamen kaydırılmış olarak ilk kişiye kadar özgürce yakınlaştırılabilir veya uzaklaştırılabilir.

Birinci Kişisel

Birinci kişisel modunda ( Enum.CameraMode.LockFirstPerson ) oyuncunun kamerası tüm yol boyunca yuvarlaklanır. Görünür bir GUI ile GuiButton.Modal özelliği setlenmiş değilse, hareket ettirerek, dokunarak veya oyunpadının yanındaki görüntülenen

Kod Örnekleri

Playing in First Person

local Players = game:GetService("Players")
local player = Players.LocalPlayer
player.CameraMode = Enum.CameraMode.LockFirstPerson

CanLoadCharacterAppearance

Paralel oku

CanLoadCharacterAppearance Player özelliği, karakterin oyuncu doğduğunda görünümünün yükleneceğini belirler. Bu özelliğin varsayılan değeri StarterPlayer.LoadPlayerAppearance tarafından ayarlanır.

Eğer doğru ise, karakter oyuncunun Player.CharacterAppearanceId ile eşleşen oyuncu görünümünü yükleyecektir.

Eğer falso , oyuncu bir varsayılan görünümle oluşturulur - herhangi bir şapka, gömlek, pantolon vb. olmadan bir gri karakter modeli.

Karakter oluşturulduktan sonra özellik ayarlanmayacaktır, yeni görünümü yüklemek için şimdi Player:LoadCharacter() çağırın.

Kod Örnekleri

Disabling a Player's Appearance

local Players = game:GetService("Players")
local player = Players.LocalPlayer
player.CanLoadCharacterAppearance = false

Character

Paralel oku

Karakter özelliği, Class.Model içinde bir Model , vücut parçaları, kodlar ve diğer nesneleri içeren bir referans i

Önceleri bu özellik nil ve oyuncunun karakterinin ilk kez doğduğunda ayarlanır. Oyuncunun karakterinin doğru yüklenmesini tespit etmek için kullanın Player.CharacterAdded etkinliğini kullanın Player.CharacterRemoving

Not that LocalScripts that are cloned from StarterGui or StarterPack


local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character
if not character or character.Parent == nil then
character = player.CharacterAdded:Wait()
end

CharacterAppearanceId

Paralel oku

Bu özellik, oyuncunun Player.Character görünümünü kullanan hesabın kullanıcı ID'sini belirler.Varsayılan olarak, bu özellik Player.UserId dir, bu oyuncunun avatarını Roblox web sitesinde oluşturduğu gibi kullanır.

Bu özelliği başka bir hesabın kullanıcı ID'ine değiştirmek oyuncunun bu hesapgörünümüyle (şapkalar, gömlekler, pantolonlar vb) oluşmasına neden olacaktır.

Oyunlar ayrıca bir oyuncunun karakterinin oyunda yükleneceğini veya yüklenmeyeceğini değiştirerek StarterPlayer.LoadCharacterAppearance özelliğini değiştirebilirler.

Kod Örnekleri

Disguise Command

local Players = game:GetService("Players")
local disguiseCommand = "/disguise "
local function onPlayerChatted(player, message)
if message:sub(1, disguiseCommand:len()):lower() == disguiseCommand:lower() then
local input = message:sub(disguiseCommand:len() + 1)
local id = tonumber(input)
if not id then -- Number failed to parse, maybe they typed a username instead
pcall(function() -- This call can fail sometimes!
id = Players:GetUserIdFromNameAsync(input) -- Fetch ID from name
end)
end
if id then
-- Set character appearance then respawn
player.CharacterAppearanceId = id
player:LoadCharacter()
else
-- We couldn't get an ID from their input
end
end
end
local function onPlayerAdded(player)
player.Chatted:Connect(function(...)
onPlayerChatted(player, ...)
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

DevCameraOcclusionMode

Paralel oku

Varsayılan kameraların kullanıcılar arasında kamerayla ve kamerayla ilgili nesneleri nasıl ele alacağını tanımlar. StarterPlayer.DevCameraOcclusionMode tarafından ayarlanır ve bireysel oyuncular için değiştirilemez.

Varsayılan değer, Zoom (0) dir. Aşağıdaki mod listesini görmek için Enum.DevCameraOcclusionMode eşine bakın.

Paralel oku

DevComputerCameraMode özelliği, bir oyuncu bir cihaz kullanırken kamerasını hareket ettirmenin yolunu belirler. Açıklamak için Enum.DevComputerCameraMovementMode bakın. Bu özellik Class.Script ile yüklenmiş olmalıdır.

Bu öğenin varsayılan değeri StarterPlayer.DevComputerCameraMovementMode tarafından belirlenir.

Bu özellik adındaki "Bilgisayar" kelimesi, "Class.UserInputService.TouchEnabled|TouchEnabled" olmayan, "Class.UserInputService.GamepadEnabled|GamepadEnabled" cihazlarını işaret eder.

Kullanıcı Seçimi'ne ayarlandığında, bir oyuncu Roblox oyun ayarlarındaki herhangi bir kontrol modunda seçim yapabilir ( Scriptable dışında) arasında. genelolarak, oyuncuların kontrol modunu seçmelerine izin vermeniz iyi bir fikirdir.

Bu özelliği Scriptable olarak ayarlayarak özel bir kontrol sistemi oluşturulabilir.

Bu özellik, dokunmatik bir cihaz kullanan oyuncuları etkilemez. Bunun yerine Player.DevTouchCameraMode der.

Kod Örnekleri

Setting a Player's Camera Movement Mode (Desktop)

local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Set the player's camera movement mode on computers to classic
player.DevComputerCameraMode = Enum.DevComputerCameraMovementMode.Classic

DevComputerMovementMode

Paralel oku

DevComputerMovementMode özelliği, bir oyuncunun karakterini bir cihazda fare ve klavye kullanarak hareket ettirme yöntemini belirler. See Enum.DevComputerMovementMode for a description of each movement control mode available. This property cannot be set using a LocalScript (it must be set on the server using a Script).

Bu özelliğin varsayılan değeri StarterPlayer.DevComputerMovementMode tarafından belirlenir.

Bu özellik adındaki "Bilgisayar" kelimesi, "Class.UserInputService.TouchEnabled|TouchEnabled" dışındaki cihazları işaret eder.

Kullanıcı Seçimi'ne ayarlandığında, bir oyuncu Roblox oyun ayarlarındaki herhangi bir kontrol modunda seçim yapabilir ( Scriptable dışında) arasında. Genel genel, oyuncuların kontrol modunu seçmelerine izin vermeniz iyi bir fikirdir, böylece erişilebilirlik için mümkün olduğunca fazla erişim seçeneği sunabilirsiniz.

Bu özelliği Scriptable olarak ayarlayarak özel bir kontrol sistemi oluşturulabilir.

Bu özellik, dokunmatik bir cihaz kullanan oyuncuları etkilemez. Bunun yerine, Player.DevTouchMovementMode görüyor.

Kod Örnekleri

Setting a Player's Movement Mode (Desktop)

local Players = game:GetService("Players")
local function onPlayerAdded(player: Player)
-- Set the player's movement mode on desktop devices to click-to-move
-- Once set, the player can right click in the game world and the character will move there.
player.DevComputerMovementMode = Enum.DevComputerMovementMode.ClickToMove
end
Players.PlayerAdded:Connect(onPlayerAdded)

DevEnableMouseLock

Paralel oku

Bu özellik, bir oyuncunun Shift tuşuna basarak kilidi açabilir miğini belirler. Bir oyuncu, Roblox'un oyun ayarlarındaki farenin kilidi seçeneğini değiştirebilir.Varsayılan olarak, bu özellik Class.StarterPlayer.EnableMouseLockOption değerine ay

Farenin kilitlenmesi etkinleştirildiğinde, oyuncunun kurşörü ekranın merkezine kilitlenir. Mouse'un hareketi, kamerayı oyuncu'nun character etrafında döndürür ve karakter aynı yönde hareket eder. Ayrıca oyuncu karakterinin sağ omuzunun üzerindeki kamera görüşünü de yer

Shift-lock ilgili API'lerin depreciyon sürecinde olduğunu unutmayın, bu nedenle fare'ı kilitlemek için UserInputService.MouseBehavior yerine kullanılması önerilir.

Kod Örnekleri

Toggling Mouse Lock Ability

local Players = game:GetService("Players")
local function toggleMouseLock(player)
player.DevEnableMouseLock = not player.DevEnableMouseLock
if player.DevEnableMouseLock then
print("Mouse lock is available")
else
print("Mouse lock is not available")
end
end
local function onPlayerChatted(player, message, _recipient)
if message == "mouselock" then
toggleMouseLock(player)
end
end
local function onPlayerAdded(player)
player.Chatted:Connect(function(...)
onPlayerChatted(player, ...)
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Paralel oku

DevTouchCameraMode özelliği, bir TouchEnabled cihazını kullanırken bir oyuncunun kamerasını hareket ettirme biçimini belirler. Ayrıntılar için Enum.DevTouchCameraMovementMode bakın. Bu özellik kullanılıyor

Bu özelliğin varsayılan değeri StarterPlayer.DevTouchCameraMovementMode tarafından belirlenir.

Kullanıcı Seçimi'ne ayarlandığında, bir oyuncu Roblox oyun ayarlarındaki herhangi bir kontrol modunda seçim yapabilir ( Scriptable dışında) arasında. Genel genel, oyuncuların kontrol modunu seçmelerine izin vermeniz iyi bir fikirdir, böylece erişilebilirlik için mümkün olduğunca fazla erişim seçeneği sunabilirsiniz.

Bu özelliği Scriptable olarak ayarlayarak özel bir kontrol sistemi oluşturulabilir.

Bu özellik, dokunmatik bir cihaz kullanmayan oyuncuları etkilemez. Bunun yerine, Player.DevComputerCameraMovementMode görür.

Kod Örnekleri

Setting a Player's Camera Movement Mode (Touch)

local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Set the player's camera movement mode on mobile devices to classic
player.DevTouchCameraMovementMode = Enum.DevTouchCameraMovementMode.Classic

DevTouchMovementMode

Paralel oku

DevTouchMovementMode özelliği, bir TouchEnabled cihazını kullanırken bir oyuncunun karakterini hareket ettirmenin yolunu belirler. See Enum.DevTouchMovementMode for a description of each movement control mode available. This property cannot be set using a LocalScript

Bu özelliğin varsayılan değeri StarterPlayer.DevTouchMovementMode tarafından belirlenir.

Kullanıcı Seçimi'ne ayarlandığında, bir oyuncu Roblox oyun ayarlarındaki herhangi bir kontrol modunda seçim yapabilir ( Scriptable dışında) arasında. genelolarak, oyuncuların kontrol modunu seçmelerine izin vermeniz iyi bir fikirdir.

Bu özelliği Scriptable olarak ayarlayarak özel bir kontrol sistemi oluşturulabilir.

Bu özellik, dokunmatik bir cihaz kullanmayan oyuncuları etkilemez. Bunun yerine Player.DevComputerMovementMode görüyor.

Kod Örnekleri

Setting a Player's Movement Mode (Touch)

local Players = game:GetService("Players")
game.Players.PlayerAdded:Connect(function(player)
-- Set the player's movement mode on mobile devices to a dynamic thumbstick
player.DevTouchMovementMode = Enum.DevTouchMovementMode.DynamicThumbstick
end)

DisplayName

Paralel oku

The DisplayName is a Player property that contains the display name of the authenticated user associating the Player object. Unlike usernames, display names are non-unique names a player displays to others. If the Roblox user has not chosen one, the property will read the same as the 1> Name1> property.

Not:

  • Ekran adları benzersiz olmadığından, aynı anda iki oyuncunun aynı isimleri olması mümkündür. Eğer bir oyuncunun küresel benzersiz bir kimliğe ihtiyacı varsa, Player.UserId (静) veya Player.Name (当前 Kullanıcı adı) yerine kullanın.
  • Karakterler Player.LoadCharacter veya Roblox motoru tarafından oluşturulmuşsa, Humanoid.DisplayName özelliğine sahip olacaklar.
  • İsimlerde unicode karakterleri olabilir. UTF-8 için daha fazla bilgi için, unicode karakterleri olan isimleri nasıl çalıştıracağınız hakkında.

FollowUserId

Salt Okunur
Çoğaltılmamış
Paralel oku

The FollowUserId, bir oyuncunun takip ettiği Player özelliğidir, içinde Player.UserId bulunan kullanıcının oyuna takip ettiği kullanıcıyı içerir. Eğer oyuncu başka bir oyuncu tarafından takip edilmediyse, bu özellik 0 olacaktır. Bu özellik, oyuncuları başka bir oy

Bu kullanıcı kimliğini kullanarak oyuncunun adını alabilirsiniz ve Players:GetNameFromUserIdAsync() işlevini kullanarak.

Kod Örnekleri

Followed Alert

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local function onPlayerAdded(newPlayer)
if newPlayer.FollowUserId == player.UserId then
local hint = Instance.new("Hint")
hint.Parent = player:WaitForChild("PlayerGui")
hint.Text = "You were followed to this game by " .. newPlayer.Name .. "!"
task.delay(3, function()
if hint then
hint:Destroy()
end
end)
end
end
Players.PlayerAdded:Connect(onPlayerAdded)

GameplayPaused

Erişilemez Güvenliği
Paralel oku

OyunYenidenOynatmaYavaşlatma özelliği, oyunun şu anda StreamingEnabled aktifleştirilmiş yerinde birbekleidir. Bu özellik kliente ayarlanır, ancak sunucuya replikat edilir. Pause durumunu belirlemek için bu özelliği kullanabilirsiniz.

Ayrıca bakınız:

HasVerifiedBadge

Paralel oku

HasVerifiedBadge Player özelliği, oyuncunun bir Doğrulanmış Rozet alıp almadığını gösterir.

HealthDisplayDistance

Paralel oku

HealthDisplayDistance Player özelliği, bu oyuncunun diğer Humanoid sağlık çubuklarını göreceği mesafeyi milim olarak ayarlar. 0'a ayarlandığında, sağlık çubukları görüntülenmez. Bu özellik, varsayılan olarak StarterPlayer.HealthDisplayDistance

Bir Humanoid'in sağlık çubuğu görünürse, Humanoid.DisplayDistanceType kullanarak görüntü türünü ayarlayabilirsiniz.

Kod Örnekleri

Hiding Player Health and Names

local Players = game:GetService("Players")
local player = Players.LocalPlayer
player.HealthDisplayDistance = 0
player.NameDisplayDistance = 0

LocaleId

Gizli
Salt Okunur
Çoğaltılmamış
Paralel oku

LocaId Player özelliği, yerel oyuncu hesapiçin yerel oyuncu tarafından ayarlanan lokasyon kimliğini gösterir. Aşağıdaki iki harf kodunu (örneğin, "en-us") için yerel kimliği tutar.

Bu, oyununuzun oyuncu tabanının coğrafi demografisini belirlemek için kullanılabilir ve ayrıca deneyim içi içerik için otomatik yerelleştirme için kullanılan yerleşim yerini de içerir (GuiBase2d.AutoLocalize). Bu özellik, sunucudan oyuncu lokasyonuna erişim sağlar.

Ayrıca bakınız LocalizationService.RobloxLocaleId, içerikleri yerelleştirmek için kullanılan yerelleştirme ID'si. Bu, Roblox henüz yerelleştirilen setin yerelleştirme oyuncuolarak kullanılmayacağında farklı bir değer olacaktır.

Kod Örnekleri

Checking a Player's Locale

local Players = game:GetService("Players")
local player = Players.LocalPlayer
print(player.LocaleId)

MembershipType

Salt Okunur
Çoğaltılmamış
Paralel oku

Üyelik kaydedilmesini belirlemek için sadece okunabilir (başka bir üyelik yazayarlanmaz). Bir hesapüyelik yaziçeren bir Enum.MembershipType열i tutar.

Kod Örnekleri

Check Player Membership Status

local Players = game:GetService("Players")
local player = Players.LocalPlayer
if player.MembershipType == Enum.MembershipType.Premium then
-- Take some action specifically for Premium members
end

NameDisplayDistance

Paralel oku

The NameDisplayDistance StarterPlayer özelliği, bu oyuncunun diğer Humanoid isimlerini gördüğü mesafeyi belirler. Eğer özellik 0 olarak ayarlandıysa, isimler gizlenir. Bu özellik, varsayılan olarak StarterPlayer.NameDisplayDistance ile ayarlandı.

Bir Humanoid'in sağlık çubuğu görünürse, Humanoid.DisplayDistanceType kullanarak görüntü türünü ayarlayabilirsiniz.

Kod Örnekleri

Hiding Player Health and Names

local Players = game:GetService("Players")
local player = Players.LocalPlayer
player.HealthDisplayDistance = 0
player.NameDisplayDistance = 0

Neutral

Paralel oku

Neutral özellik, oyuncunun belirli bir takımda olup olmadığını belirler.

  • doğru olduğunda, oyuncu belirli bir takımda değil. Bu ayrıca Player.Team özelliğinin nul olmasını ve Player.TeamColor sınıfının beyaz olmasını sağlar.
  • false , oyuncu bir belirli takımda. Player.Team özelliği, oyuncunun olduğu takımla eşleşecektir, Team da.

Kod Örnekleri

Checking if a Player is Neutral

local Players = game:GetService("Players")
local player = Players.LocalPlayer
if player.Neutral then
print("Player is neutral!")
else
print("Player is not neutral!")
end

ReplicationFocus

Paralel oku

ReplicationFocus Player özelliği, parçayı bir Oyuncunun etrafında reklam yeniden oluşturma konusunda odaklanmak için ayarlar. Roblox ağı üzerinden iletişim kuran farklı Roblox sistemleri (örneğin fizik, yayın, vb) reklam yeniden oluşturma odaklanma oranını farklı yüzde olarak değiştirir.

Bu özellik nul olduğunda, lokal oyuncunun karakterinin PrimaryPart kopyalama odak olarak ele alınır.

Bu özellik sadece bir Script ile sunucuda ayarlanmalıdır, bir LocalScript ile değil. Bu özellik, parçaların ağ sahibiğini değiştirmez veya güncellemez.

Kod Örnekleri

Setting a Player's Replication Focus

local Players = game:GetService("Players")
local PLAYER_NAME = "polarpanda16"
local player = Players:WaitForChild(PLAYER_NAME)
local part = Instance.new("Part")
part.Parent = workspace
part.Name = "ReplicationFocusPart"
part.Anchored = true
player.ReplicationFocus = part

RespawnLocation

Paralel oku

Ayarlanırsa, oyuncu verilen SpawnLocation 'de yeniden doğacak. Bu özellik sadece Lua aracılığıyla ayarlanabilir ve geçerli bir SpawnLocation referansı içermelidir, bu da şu kriterleri yerine getirmelidir:

  • Class.Workspace İnşağı
  • Class.SpawnLocation.TeamColor``Class.Player.TeamColor veya SpawnLocation.Neutral 0> şeklinde ayarlanmış

RespawnLocation geçerli bir SpawnLocation olarak ayarlanmıyorsa, varsayılan yeniden oluşturma mantığı uygulanır. For more information on this see the page for SpawnLocation .

RespawnLocation'a Alternatifler
  • Bir Class.Player``Class.SpawnLocation|SpawnLocations onların takımına ait. Bazı durumlarda oyuncunun Player.Team yerine değiştirilmesi daha basit olabilir.
  • Class.Player.Character 'i manuel olarak hareket ettirmek için Player.Character kullanarak kendi özel oluşturma mantığınızı uygulayın.

Kod Örnekleri

Change Spawn on Touch

local Players = game:GetService("Players")
local function addSpawn(spawnLocation)
-- listen for the spawn being touched
spawnLocation.Touched:Connect(function(hit)
local character = hit:FindFirstAncestorOfClass("Model")
if character then
local player = Players:GetPlayerFromCharacter(character)
if player and player.RespawnLocation ~= spawnLocation then
local humanoid = character:FindFirstChildOfClass("Humanoid")
-- make sure the character isn't dead
if humanoid and humanoid:GetState() ~= Enum.HumanoidStateType.Dead then
print("spawn set")
player.RespawnLocation = spawnLocation
end
end
end
end)
end
local firstSpawn
-- look through the workspace for spawns
for _, descendant in pairs(workspace:GetDescendants()) do
if descendant:IsA("SpawnLocation") then
if descendant.Name == "FirstSpawn" then
firstSpawn = descendant
end
addSpawn(descendant)
end
end
local function playerAdded(player)
player.RespawnLocation = firstSpawn
end
-- listen for new players
Players.PlayerAdded:Connect(playerAdded)
-- go through existing players
for _, player in pairs(Players:GetPlayers()) do
playerAdded(player)
end

Team

Çoğaltılmamış
Paralel oku

Takım özelliği, Team hizmetindeki bir takımı işaret

Kod Örnekleri

Playing/Spectating Teams

local Players = game:GetService("Players")
local Teams = game:GetService("Teams")
local teamPlaying = Teams.Playing
local teamSpectators = Teams.Spectating
local playCommand = "/play"
local function play(player)
player.Team = teamPlaying
player.TeamColor = teamPlaying.TeamColor
-- Respawn the player (moves them to spawn location)
player:LoadCharacter()
end
local function onPlayerDied(player, _character)
-- When someone dies, put them on the spectator team
player.Team = teamSpectators
end
local function onPlayerSpawned(player, character)
local human = character:WaitForChild("Humanoid")
human.Died:Connect(function()
onPlayerDied(player, character)
end)
end
local function onPlayerChatted(player, message)
if message:sub(1, playCommand:len()):lower() == playCommand then
play(player)
end
end
local function onPlayerAdded(player)
if player.Character then
onPlayerSpawned(player, player.Character)
end
player.CharacterAdded:Connect(function()
onPlayerSpawned(player, player.Character)
end)
player.Chatted:Connect(function(message, _recipient)
onPlayerChatted(player, message)
end)
end
for _, player in pairs(Players:GetPlayers()) do
onPlayerAdded(player)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Join Team Command

local Players = game:GetService("Players")
local Teams = game:GetService("Teams")
-- Command to choose a team (note the trailing space)
local joinCommand = "/jointeam "
local function findTeamByName(name)
-- First, check for the exact name of a team
if Teams:FindFirstChild(name) then
return Teams[name]
end
-- Let's check for case-insensitive partial matches, like "red" for "Red Robins"
for _, team in pairs(Teams:GetChildren()) do
if team.Name:sub(1, name:len()):lower() == name:lower() then
return team
end
end
-- If we get to this point, no team matched the one we were looking for :(
end
local function onPlayerChatted(player, message, _recipient)
-- Note: string.sub(message, ...) is the same as message:sub(...)
if message:sub(1, joinCommand:len()):lower() == joinCommand:lower() then
-- Matched "/JOINTEAM xyz" to our join command prefix "/jointeam "
local teamName = message:sub(joinCommand:len() + 1) -- Cut out the "xyz" from "/jointeam xyz"
local team = findTeamByName(teamName)
if team then
-- Set the team!
player.Team = team
player.Neutral = false
else
-- Tell the player that team could not be found :(
player.Team = nil
player.Neutral = true
end
end
end
local function onPlayerAdded(player)
player.Chatted:Connect(function(...)
onPlayerChatted(player, ...)
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

TeamColor

Paralel oku

TakımRenkIşını property, bir Player'ın aynı Takım'ın Team.TeamColor ile ilişkili olduğunu belirler. Değiştirmeniz bu özelliği takımınızın aynı Player.Team ile değişeceğini de

Bu genellikle özellik kullanılmadan önce Player.Team 'i kendi Team 'ine ayarlamak daha iyi bir fikirdir. Bu özellik, bu değerin bir takım için belirli bir takım için tekrarlanmasına neden olur; bu, "Bir Kendini Yenilemez" (DRY) ilkesine uyması i

Kod Örnekleri

Playing/Spectating Teams

local Players = game:GetService("Players")
local Teams = game:GetService("Teams")
local teamPlaying = Teams.Playing
local teamSpectators = Teams.Spectating
local playCommand = "/play"
local function play(player)
player.Team = teamPlaying
player.TeamColor = teamPlaying.TeamColor
-- Respawn the player (moves them to spawn location)
player:LoadCharacter()
end
local function onPlayerDied(player, _character)
-- When someone dies, put them on the spectator team
player.Team = teamSpectators
end
local function onPlayerSpawned(player, character)
local human = character:WaitForChild("Humanoid")
human.Died:Connect(function()
onPlayerDied(player, character)
end)
end
local function onPlayerChatted(player, message)
if message:sub(1, playCommand:len()):lower() == playCommand then
play(player)
end
end
local function onPlayerAdded(player)
if player.Character then
onPlayerSpawned(player, player.Character)
end
player.CharacterAdded:Connect(function()
onPlayerSpawned(player, player.Character)
end)
player.Chatted:Connect(function(message, _recipient)
onPlayerChatted(player, message)
end)
end
for _, player in pairs(Players:GetPlayers()) do
onPlayerAdded(player)
end
Players.PlayerAdded:Connect(onPlayerAdded)

UserId

Paralel oku

UserId, Roblox'un her kullanıcı hesabını benzersiz ve tutarlı bir şekilde tanımlayan <a href="/reference/engine/databases/player-databases.md">Class.Player</a> özelliğidir. Class.Instance.Name ile bir Instance.Name arasındaki farklılık, kullanıcının mevcut kullanıcı adına göre değişebil

Bu özellik, GlobalDataStores kullanarak oyuncu verilerini kaydetirken veya yüklerken esastır. Bir oyuncunun benzersiz bir anahtarolsun.

Kod Örnekleri

Player.UserId

local Players = game:GetService("Players")
local function onPlayerAdded(player)
print(player.UserId)
end
Players.PlayerAdded:Connect(onPlayerAdded)
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
Met the Creator Badge

local BadgeService = game:GetService("BadgeService")
local Players = game:GetService("Players")
local OWNER_ID = 212423 -- can use game.CreatorId for published places
local BADGE_ID = 1
local ownerInGame = false
local function playerAdded(newPlayer)
if newPlayer.UserId == OWNER_ID then
-- if new player is the owner, set ownerInGame to true and give everyone the badge
ownerInGame = true
for _, player in pairs(Players:GetPlayers()) do
-- don't award the owner
if player ~= newPlayer then
BadgeService:AwardBadge(player.UserId, BADGE_ID)
end
end
elseif ownerInGame then
-- if the owner is in the game, award the badge
BadgeService:AwardBadge(newPlayer.UserId, BADGE_ID)
end
end
local function playerRemoving(oldPlayer)
if oldPlayer.UserId == OWNER_ID then
ownerInGame = false
end
end
Players.PlayerAdded:Connect(playerAdded)
Players.PlayerRemoving:Connect(playerRemoving)
Data Store to Leaderboard

local Players = game:GetService("Players")
local DataStoreService = game:GetService("DataStoreService")
local goldDataStore = DataStoreService:GetDataStore("Gold")
local STARTING_GOLD = 100
local function onPlayerAdded(player)
local playerKey = "Player_" .. player.UserId
local leaderstats = Instance.new("IntValue")
leaderstats.Name = "leaderstats"
local gold = Instance.new("IntValue")
gold.Name = "Gold"
gold.Parent = leaderstats
local success, result = pcall(function()
return goldDataStore:GetAsync(playerKey) or STARTING_GOLD
end)
if success then
gold.Value = result
else
-- Failed to retrieve data
warn(result)
end
leaderstats.Parent = player
end
Players.PlayerAdded:Connect(onPlayerAdded)

Yöntemler

ClearCharacterAppearance

void

ClearCharacterAppearance işlevi, Accessory, Shirt, Pants, 1> Class.CharacterMesh1> ve

Bunlar t-shirts , kafa şebekeleri veya yüzleri kaldırmaz.


Dönüşler

void

Kod Örnekleri

How to Clear a Character's Appearance

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local function onChildRemoved(child)
print(child.ClassName, "removed from character")
end
character.ChildRemoved:Connect(onChildRemoved)
player:ClearCharacterAppearance()
--> BodyColors removed from character
--> ShirtGraphic removed from character
--> Shirt removed from character
--> Pants removed from character
--> CharacterMesh removed from character
--> Hat removed from character
--> Shirt removed from character

DistanceFromCharacter

DistanceFromCharacter Player işlevi, karakterinin kafasından verilen Vector3 noktası arasındaki mesafeyi iade eder. 0 döndürürse oyuncu Player.Character ile değil.

Bu, bir oyuncunun başka bir nesneye veya yerleştirmeye olan mesafeyi belirlemek için yararlıdır.

Eğer iki oyuncu olmayan istan veya pozisyon arasındaki mesafeyi belirlemek istiyorsanız, takip edilenkullanılabilir:


local distance = (position1 - position2).magnitude

Parametreler

point: Vector3

oyuncumesafesinin ölçüldüğü yer.


Dönüşler

Oyuncu ve yer arasındaki mesafe.

Kod Örnekleri

Measuring the Distance Between a Player and a Position

local Players = game:GetService("Players")
for _, player in pairs(Players:GetPlayers()) do
print(player:DistanceFromCharacter(Vector3.new(0, 0, 0)))
end

GetJoinData

Oyuncu'nun deneyime nasıl katıldığını açıklayan bir sözlük döndürür. Sözlük, aşağıdaki alanlardan herhangi birini içerir:


<tbody>
<tr>
<th>KaynaktanımId</th>
<td>sayı</td>
<td>Oyunun ışınlanıldığı Class.DataModel.GameId deneyiminin. Player tarafından ışınlanıldığından sadece mevcut deneyime giriş yap ve bir sunucu ışınlanma işlevini çağırıyorsa.</td>
</tr>
<tr>
<th>Kaynağın Yeri</th>
<td>sayı</td>
<td>Oyuncu'nun ışınlanıldığı yerin Class.DataModel.PlaceId kısmı. Sadece oyuncu ışınlanıldığı yere gittiğinde görünür.</td>
</tr>
<tr>
<th>Referanslandığı Oyuncu</th>
<td>sayı</td>
<td>Oyunu deneyim için davet eden oyuncunun <code>Class.Player.UserId</code> kayıdı. Bu verileri kullanarak referans ve tetik ödül mantığını belirleyin.</td>
</tr>
<tr>
<th>Üyeler</th>
<td>ematik</td>
<td>Class.Player.UserId kullanıcılarının <code>Player</code> ile birlikte ışınlanan numaralarını içeren bir matris. Sadece oyuncu bir grup parçası olarak ışınlandıysa görüntülenir.</td>
</tr>
<tr>
<th>Işınlanma Verileri</th>
<td>değiştirici</td>
<td>Orijinal ışınlanmada belirtilen <code>teleportData</code>ı yansıtır. Oyuncu ışınlanmak için kullandığınız sunucu arasında bilgi paylaşımı için yararlıdır. Sadece <code>teleportData</code> belirtilmiş ve bir sunucu ışınlanma işlevini çağırırsa görünür.</td>
</tr>
<tr>
<th>Kalkış Verileri</th>
<td>dizi</td>
<td>Bir <a href="../../../production/promotion/deeplinking.md">深 link</a> URL'sinde belirlenen başlatma verilerini içeren basit veya JSON kodlanmış bir yapı.</td>
</tr>
</tbody>
AnahtarDeğer TürüAçıklama

GetJoinData ve TeleportData alın

Bir sunucu Player'ın ışınlanmasını başlatırsa, bu yöntemin döndüğü sözlük, oyuncunun ışınlanma verilerini içerir. Class.Player:GetJoinData() yöntemi sadece sunucudaki ışınlanma verilerini alabilir. Para almak için kullanıcının verilerini almak için Class.TeleportService:GetLocalPlayerTeleport

Class.Player:GetJoinData() , Player:GetJoinData() , Class.TeleportService:GetLocalPlayerTeleportData() 1>Class.TeleportService:GetJoinData()1> , 4>Class.TeleportService:GetLocalPlayerTeleportData() 7>Class.TeleportService:GetJoinData()7> , 0>Class.TeleportService:GetLocalPlayerTeleportData() 3>Class.TeleportService:GetJoinData()3> , 6>Class.TeleportService:GetLocalPlayerTeleportData() 9>Class.TeleportService:GetJoinData()9> ,

  • Geçmiş 48 saat içinde bir Roblox sunucusu tarafından gönderilmiş olması garantilidir.
  • Bu Player ile gönderildiğine dair garanti var.
  • The SourcePlaceId ve SourceGameId garanti olarak gönderilen yer ve evrenden olmalıdır. Bu, gönderilen verilerin onaylanmış bir dünyageldiğini doğrulayabilirsiniz.

Bu veri kliente tarafından iletilmiş olmasına rağmen, bir istismarci tarafından potansiyel olarak kullanılabilir. Oyun para birimi gibi hassas verilerin Hafıza Depolama gibi güvenli bir çözüm aracılığıyla iletilmesi gerekir.


Dönüşler

PlaceId ve UserId değerleri içeren bir sözlük (açıklamadaki tabloya bakın).

Kod Örnekleri

Tracking Traffic Sources

local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local analyticsStore = DataStoreService:GetDataStore("Analytics")
local ALLOWED_SOURCES = {
"twitter";
"youtube";
"discord";
}
local function onPlayerAdded(player)
local source = player:GetJoinData().LaunchData
-- check if the provided source is valid
if source and table.find(ALLOWED_SOURCES, source) then
-- update the data store to track the source popularity
local success, result = pcall(analyticsStore.IncrementAsync, analyticsStore, source)
if success then
print(player.Name, "joined from", source, "- total:", result)
else
warn("Failed to record join source: " .. result)
end
end
end
Players.PlayerAdded:Connect(onPlayerAdded)
Referral URL Generator

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local DIRECT_JOIN_URL = "https://www.roblox.com/games/start?placeId=%d&launchData=%s"
local textBox = script.Parent
local function generateReferralURL(player)
return DIRECT_JOIN_URL:format(
game.PlaceId,
player.UserId
)
end
local function highlightAll()
if -- avoid recursive property updates
textBox:IsFocused()
and not (
textBox.SelectionStart == 1
and textBox.CursorPosition == #textBox.Text + 1
)
then
textBox.SelectionStart = 1
textBox.CursorPosition = #textBox.Text + 1
end
end
textBox.Focused:Connect(highlightAll)
textBox:GetPropertyChangedSignal("SelectionStart"):Connect(highlightAll)
textBox:GetPropertyChangedSignal("CursorPosition"):Connect(highlightAll)
textBox.TextEditable = false
textBox.ClearTextOnFocus = false
textBox.Text = generateReferralURL(player)
Using a Table as Launch Data

local HttpService = game:GetService("HttpService")
local DATA_CHARACTER_LIMIT = 200
local function encodeTableAsLaunchData(data)
-- convert the table to a string
local jsonEncodedData = HttpService:JSONEncode(data)
if #jsonEncodedData <= DATA_CHARACTER_LIMIT then
-- escape potentially invalid characters, such as spaces
local urlEncodedData = HttpService:UrlEncode(jsonEncodedData)
return true, urlEncodedData
else
-- report character limit error
return false, ("Encoded table exceeds %d character limit"):format(DATA_CHARACTER_LIMIT)
end
end
local sampleData = {
joinMessage = "Hello!";
urlCreationDate = os.time();
magicNumbers = {
534;
1337;
746733573;
};
}
local success, encodedData = encodeTableAsLaunchData(sampleData)
if success then
print(encodedData)
else
warn("failed to encode launch data: " .. encodedData)
end
Decoding JSON Launch Data

local HttpService = game:GetService("HttpService")
local Players = game:GetService("Players")
local function onPlayerAdded(player)
local launchData = player:GetJoinData().LaunchData
if launchData then
-- attempt to decode the data
local success, result = pcall(HttpService.JSONDecode, HttpService, launchData)
if success then
print(player.Name, "joined with data:", result)
else
-- this is probably due to the user messing with the URL
warn("Failed to parse launch data:" .. result)
end
end
end
Players.PlayerAdded:Connect(onPlayerAdded)
Server TeleportData Example

local Players = game:GetService("Players")
local approvedPlaceIds = { 1 } -- insert approved PlaceIds here
local function isPlaceIdApproved(placeId)
for _, id in pairs(approvedPlaceIds) do
if id == placeId then
return true
end
end
return false
end
local function onPlayerAdded(player)
local joinData = player:GetJoinData()
-- verify this data was sent by an approved place
if isPlaceIdApproved(joinData.SourcePlaceId) then
local teleportData = joinData.TeleportData
if teleportData then
local currentLevel = teleportData.currentLevel
print(player.Name .. " is on level " .. currentLevel)
end
end
end
Players.PlayerAdded:Connect(onPlayerAdded)

GetMouse

GetMouse Player işlevi, kullanıcının sağ ve sol mouse butonlarının tıklamalarını ve hareket ve konumu izlemek için kullanılan Mouse'i geri verir. oyuncu'nun mouse instansı, sol ve sağ fare butonlarının tıklamalarını ve hareket ve konumu izlemek için kullanılabilir.

Class.UserInputService hizmeti, kullanıcının girişini takip etmek için ek görevler ve etkinlikler sağlar - özellikle fareyi kullanmayan cihazlar için.

Not:

  • Bu öğe Class.LocalScript içinde kullanılmalıdır çalışır beklenen şekilde çevrimiçi olarak.
  • Temmuz ayındaki bir güncellemeden sonra, fare'nin ikonu artık bu yöntemle ayarlanabilir.

Dönüşler

Kod Örnekleri

How to Track Mouse Input

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local mouse = player:GetMouse()
local function onButton1Down()
print("Button 1 is down")
end
mouse.Button1Down:Connect(onButton1Down)

GetNetworkPing

Paralel yaz

GetNetworkPing Player 'in saniyelerde izolasyonlanmış ağ gecikme süresini döndürür. "Ping" bir verinin gönderilmesinden sonra sunucuya geri döndüğüne kadar alınan gecikme süresidir. Bu, veri deşifreleme veya işleme dahil değildir.

For client-side LocalScripts , this function can only be called on the Players.LocalPlayer . This function is useful in identification and debugging issues that occur in high network latency scenarios. It's also useful for masking latency, such as adjusting the speed of throwing animations for projectiles.


Dönüşler

HasAppearanceLoaded

HasAppearanceLoaded Player işlevi, oyuncunun Player.Character görünümünün yüklendiğini veya yüklendiğini de döndürür.

Bir oyuncunun görünümü, oyuncunun Shirt , Pants ve Accessories gibi öğeleri içerir.

Bu, bir oyuncunun ilk oyuna katıldıktan sonra görünümünün yüklendiğini belirlemek için yararlıdır, bu da Players.PlayerAdded etkinliği kullanılarak takip edilebilir.


Dönüşler

oyuncukarakterinin görünümünün yüklendiğini gösterip göstermediğini belirtir.

Kod Örnekleri

Check if a Player's Appearance Has Loaded

local Players = game:GetService("Players")
local function onPlayerAdded(player)
local loaded = player:HasAppearanceLoaded()
print(loaded)
while not loaded do
loaded = player:HasAppearanceLoaded()
print(loaded)
task.wait()
end
end
Players.PlayerAdded:Connect(onPlayerAdded)

IsVerified

Oyuncunun doğrulama durumunu gösteren bir booleto değer döndürür. Eğer doğruysa, oyuncu doğrulanır. Doğrulama, VOIP telefon numarası veya hükümet kimlik doğrulaması dahil olmak üzere şifreleme dışında değildir.

IsVerified uygulandığında, uygulamanın tüm geçersiz kullanıcıları yanlışlıkla engellemediğinden emin olmak için dikkat et.

Yöntem sadece back-end sunucusunda çağrılabilir. Onu client-side çağırmak bir hata yüzüğünde sonuçlanır. Ayrıca, bu yöntem Studio'da daima false döndürür.


Dönüşler

Oyuncunun doğrulandığını gösteren bir booleoid.

Kod Örnekleri

Using IsVerified

local Players = game:GetService("Players")
local function onPlayerAdded(player)
print(player:IsVerified())
end
for _, player in pairs(Players:GetPlayers()) do
onPlayerAdded(player)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Kick

void

Class.Player.Kick|Kick() yöntemi, bir deneyimin bir istemcisi başarıyla bağlayıp seçenek olarak bağlantı kesmek için güzel bir şekilde bağlantıyı kesmene izin verir. Bu, kötüye kullanıcıları moderasyon etmek için sadece güvenilen kullanıcıların bu yöntemi başlatmasına izin vermeniz gerekir. Bu yöntemi başka kullanıcılar i

Bu yöntemi bir Player ile çağırmak, kullanıcıyı sunucudan ayrık ve bir varsayılan uyarı mesajı sağlar. Bu yöntemi bir Player ile bir yığın olarak çağırmak, varsayılan mesajı sağlayan diziile değiştirilir.

Bu yöntemi bir LocalScript kullanırken sadece yerel kullanıcının istemcisi kovulabilir.

Parametreler

message: string

Kullanıcıyı şutçuğa çıkarıldığında gösteren mesaj.

Varsayılan değer: ""

Dönüşler

void

Move

void

Hareket Player işlevi, oyuncunun karakterinin durdurulduğu yönü (denetimlerkullanarak) geçici olarak yürüyebilmesine neden olur.

Harita etrafında hareket eden NPC Humanoids script'i kullanırken yararlıdır - ancak gerçek bir oyuncunun girişi tarafından kontrol edilmez.

Ayrıca, ikinci argümanın sağladığı Vector3 ile oyuncu ile dünya koordinatları arasında hareket edilmesi gerektiğini gösterir ( false).

Parametreler

walkDirection: Vector3

Oyuncunun hareket etmesi gereken Vector3 yönü.

relativeToCamera: bool

Oyuncunun kamerasına kıyasla oyuncunun hareket etmesi gerektiğini gösteren bir booleoid.

Varsayılan değer: false

Dönüşler

void

Kod Örnekleri

Moving the Player relative to their Camera

local Players = game:GetService("Players")
local localPlayer = Players.LocalPlayer
-- Wait for the player's character and humanoid, which must exist before calling :Move()
local character = localPlayer.Character or localPlayer.CharacterAdded:Wait()
character:WaitForChild("Humanoid")
-- The player will move until they are 50 studs away from the camera's position at the time of running
localPlayer:Move(Vector3.new(0, 0, -50), true)

SetAccountAge

void
Eklenti Güvenliği

SetAccountAge fonksiyonu oyuncunun günlerde Player.AccountAge ını ayarlar.

Günlerde bir oyuncunun hesabının kaç günde kaydedildiğini açıklayan Player özelliğini ayarlar.

Bu, oyuncunun hesapyaşı ayarlmaz, ancak hesabın kendisiyle ilgili yaşı ilk oluşturulduğunda belirir.

Parametreler

accountAge: number

Hesabın gün sayısında yaşı.


Dönüşler

void

Kod Örnekleri

Setting the Player's Account Age

local Players = game:GetService("Players")
local player = Players.LocalPlayer
player:SetAccountAge(100)
Account Age Mark

local Players = game:GetService("Players")
local MAX_AGE_NEW_PLAYER = 7 -- one week
local MIN_AGE_VETERAN = 365 -- one year
-- This function marks a part with text using a BillboardGui
local function mark(part, text)
local bbgui = Instance.new("BillboardGui")
bbgui.AlwaysOnTop = true
bbgui.StudsOffsetWorldSpace = Vector3.new(0, 2, 0)
bbgui.Size = UDim2.new(0, 200, 0, 50)
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0) -- Fill parent
textLabel.Text = text
textLabel.TextColor3 = Color3.new(1, 1, 1)
textLabel.TextStrokeTransparency = 0
textLabel.BackgroundTransparency = 1
textLabel.Parent = bbgui
-- Add to part
bbgui.Parent = part
bbgui.Adornee = part
end
local function onPlayerSpawned(player, character)
local head = character:WaitForChild("Head")
if player.AccountAge >= MIN_AGE_VETERAN then
mark(head, "Veteran Player")
elseif player.AccountAge <= MAX_AGE_NEW_PLAYER then
mark(head, "New Player")
else
mark(head, "Regular Player")
end
end
local function onPlayerAdded(player)
-- Listen for this player spawning
if player.Character then
onPlayerSpawned(player, player.Character)
end
player.CharacterAdded:Connect(function()
onPlayerSpawned(player, player.Character)
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

SetSuperSafeChat

void
Eklenti Güvenliği

Bu yöntem oyuncunun normal sohbetleri görüp görmediğini belirler: TextService:FilterStringAsync()


local Players = game:GetService("Players")
local player = Players.LocalPlayer
player:SetSuperSafeChat(true)

Bir oyuncunun sohbeti filtrelemesi etkinleştirilmiş olup olmadığına bağlı olarak, tüm sohbetler TextService tarafından filtrelenmelidir, yayınlanırken diğer oyunculara veya oyuncunun kendi ekranında gösterilir. TextService:FilterStringAsync() , mesajın niyetine göre f

Parametreler

value: bool

Oyuncunun filtreli sohbeti gördüğünü gösterip göstermediğini gösteren bir booleoid.


Dönüşler

void

GetFriendsOnline

Bekletir

Bu işlev, maxFriends değerine sahip bir online arkadaşlarının sözlüğünü içerir. İşlev 30 saniye süreli bir geçici önbelleği kullanır.

Döndürilen matematiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel aritmetiksel


<tbody>
<tr>
<td><b>Ziyaretçi Kimliği</b></td>
<td>sayı</td>
<td>Arkadaşnızın <code>Class.Player.UserId</code> arkadaş.</td>
</tr>
<tr>
<td><b>Kullanıcı Adı</b></td>
<td>dizi</td>
<td>arkadaşkullanıcısı.</td>
</tr>
<tr>
<td><b>Görüntü Adınızı Gösteriniz</b></td>
<td>dizi</td>
<td>Arkadaşın <code>Class.Player.DisplayName</code> 'arkadaş.</td>
</tr>
<tr>
<td><b>Sonraki Online Olanların Sonu</b></td>
<td>dizi</td>
<td>Arkadaş son kez çevrimiçiolduğunda.</td>
</tr>
<tr>
<td><b>IsOnline olup değilim.</b></td>
<td>boo</td>
<td>Eğer arkadaş şu anda çevrimiçi.</td>
</tr>
<tr>
<td><b>SonYerLastLocation</b></td>
<td>dizi</td>
<td>arkadaşmevcut konumunun adı.</td>
</tr>
<tr>
<td><b>YerleştirmeKodu</b></td>
<td>sayı</td>
<td>arkadaşson yerinin ID'si.</td>
</tr>
<tr>
<td><b>Oyun kimliği</b></td>
<td>dizi</td>
<td>arkadaşson konumunun <code>DataModel/JobId</code> 'i.</td>
</tr>
<tr>
<td><b>YerTipi</b></td>
<td>sayı</td>
<td>
arkadaşson konumunun yerleşim türü:
<table>
<tbody>
</tbody>
0> 1> 2> 3> 4> 5> 6> 7> 8> 9> 0> 1> 2> 3> 4> 5> 6> 7> 8> 9> 0>
</table>
</td>
</tr>
</tbody>
İsimTürAçıklama

Parametreler

maxFriends: number

Dönüştürmek için maksimum çevrim içi arkadaş sayısı.

Varsayılan değer: 200

Dönüşler

Online arkadaşlarınızın bir sözlüğü (yukarıdaki tabloya bakın).

Kod Örnekleri

Get a List of Online Friends

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local success, result = pcall(player.GetFriendsOnline, player, 10)
if success then
for _, friend in pairs(result) do
print(friend.UserName)
end
else
warn("Failed to get online players: " .. result)
end

GetRankInGroup

Bekletir

GetRankInGroup Player işlevi, oyuncunun grubaki rütbesini 0 ile 255 arasındaki bir sayı olarak gruba iade eder, 0 bir üye değildir ve 255 grupsahibidir.

Bu, bir Script kullanıyorsa, bir LocalScript kullanıyorsa, en son bilgileri almazsınız. Eğer bir oyuncu oyundan ayrılırken bir grup bırakırsa, GetRankInGroup hala o grubun içinde olana kadar düşüneceklerdir. Ancak, bunu yerel bir kullanımla kullan

Bu, yöntemin sonuçlarını önbelleğe alması nedeniyle, aynı oyuncu ile aynı grup ID'si olan çok sayıda GetRankInGroup çağrısının aynı sonucunu vereceği için. Kaching davranışı grup başına bir per-peer temelinde içinde bulunduğundan: bir sunucu, aynı önbelleği bir istemci ile paylaşmaz.

Parametreler

groupId: number

Belirlenen grupgroupId 'i.


Dönüşler

oyuncugruprütbesi.

Kod Örnekleri

How to Check a Player's Rank in a Group

local Players = game:GetService("Players")
local function onPlayerAdded(player)
if player:GetRankInGroup(2) == 255 then
print("Player is the owner of the group, 'LOL'!")
else
print("Player is NOT the owner of the group, 'LOL'!")
end
end
Players.PlayerAdded:Connect(onPlayerAdded)

GetRoleInGroup

Bekletir

GetRoleInGroup Player işlevi, oyuncunun grubaki rolünü bir dizim olarak iade eder veya oyuncu grubun dışındaysa Guest olur.

Bu, bir Script kullanıyorsa, bir LocalScript kullanıyorsa, en son bilgileri almazsınız. Eğer bir oyuncu oyundan ayrılırken bir grup bırakırsa, GetRoleInGroup hala o grupta kalana kadar düşünecek. Ancak, bunu yerel bir script ile yaparsanız, bunu

Bu, çünkü yöntem sonuçlarını kaydeder, bu yüzden aynı oyuncu ile aynı grup ID'si olan yöntemin ilk çağrısından bu yana GetRoleInGroup'un aynı sonucunu verecek. Bu kayıt davranışı grup başına: bir sunucu, aynı kaydı bir istemci ile paylaşmaz.

Parametreler

groupId: number

Belirlenen grupgroupId'si.


Dönüşler

Oyuncunun belirlenen grupkatılma rolü, veya Misafir eğer oyuncu bir üye değilse.

Kod Örnekleri

How to Check a Player's Role in a Group

local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("Player is ranked as '", player:GetRoleInGroup(2), "' in group, 'LOL'!")
end
Players.PlayerAdded:Connect(onPlayerAdded)

IsFriendsWith

Bekletir

Bu işlev, bir oyuncunun başka bir kullanıcının arkadaşı olduğunu sormak için Roblox web sitesine bir istek gönderir. Bu işlev, Player.UserId olarak oyuncunun aynı Player.UserId ile çok sayıda sonuçgizleyebilir

Parametreler

userId: number

Belirlenen oyuncunun Player.UserId kimliği.


Dönüşler

Bir oyuncunun belirli bir kullanıcının arkadaşı olduğunu gösteren bir booleoid.

Kod Örnekleri

How to Check if a Player is a Friend

local Players = game:GetService("Players")
local function onPlayerAdded(player)
if player:IsFriendsWith(146569) then
print(player.Name .. " is friends with gordonrox24!")
end
end
Players.PlayerAdded:Connect(onPlayerAdded)

IsInGroup

Bekletir

The IsInGroup Player işlevi, bir oyuncunun bir grupüyesi olup olmadığını Roblox web sitesine sorarak gönderir.

Bu, bir Script kullanıyorsa, bir LocalScript kullanıyorsa, en güncel bilgileri almazsınız. Eğer bir oyuncu oyundan ayrılırken bir gruba bırakırsa, IsInGroup hala o grubun içinde kalana kadar oyundaki kalacağını düşünecek. Ancak, bunu 0>

Bu, çünkü yöntem sonuçlarını kaydeder, bu yüzden aynı oyuncu ile aynı grup ID'si olan çok sayıda IsInGroup çağrısı aynı sonucu verecektir. Bu kayıt davranışı grup başına bir per-peer temelinde gerçekleştirilir: bir sunucu, aynı grup ID'siyle ilk kez çağrıldığında aynı kayıtı paylaşmaz.

Parametreler

groupId: number

Belirlenen grupgroupId'si.


Dönüşler

Oyuncunun belirlenen grupdahil olup olmadığını gösteren bir booleoid.

Kod Örnekleri

How to Check if a Player is in a Group

local Players = game:GetService("Players")
local function onPlayerAdded(player)
if player:IsInGroup(7) then
print("Player is in the Roblox Fan club!")
end
end
Players.PlayerAdded:Connect(onPlayerAdded)

LoadCharacter

void
Bekletir

LoadCharacter Player işlevi oyuncunun eski karakterini kaldırır ve yeni bir karakter oluşturur. Ayrıca oyuncunun Backpack ve PlayerGui iletkenlerini temizler.

Bu, oyuncuyu öldürmek zorunda kalmadan karakteri yeniden yüklemeyi istediğiniz durumlarda yararlıdır, örneğin player'ın Player.CharacterAppearance'ını yükledikten sonra yeni bir karakter görünümü yüklemeyi istediğinizde.

Not: Fonksiyon Player:LoadCharacterBlocking() ile benzer, ancak istek asenkron olarak işlenir, yani asenkron olarak işlenir. Bu, diğer görevlerin oyun yüklenirken veya herhangi bir görev yaparken devam edebileceğini ifade eder. Ayrıca, bu işlev bir koda kullanılabilir, yüklemeyi gerektiren kodlar dışında.

Bir bireysel oyuncu için LoadCharacter çağrıldıktan sonra, o oyuncunun Player.CharacterAppearanceLoaded etkinliği sona erene kadar tekrar çağrılmamalıdır.

Karakter Yükleme Etkinliği Sırası

R15 Avatar ile Player:LoadCharacter() çağrılırsa aşağıdaki etkinlikler seri olarak çalışır (Not: R6 sırası farklıdır):

  1. Player.Character setleri
  2. Player.CharacterAdded yangınlar
  3. Player.Changed "Character" bir değerle ateş eder
  4. Karakter görünümü başlatılır
  5. Player.CharacterAppearanceLoaded ateşleri
  6. Character.Parent, DataModel'e ayarlandı
  7. Karakter şekillendirmeyi ve Karakter ölçeğini oluşturur
  8. Karakter oluşturma yerine hareket eder
  9. LoadCharacter dönüşleri

Dönüşler

void

Kod Örnekleri

Turn Off Auto-Loading and Simulate Character Respawn

local Players = game:GetService("Players")
local RESPAWN_DELAY = 5
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
local function onCharacterAdded(character)
local humanoid = character:WaitForChild("Humanoid")
local function onDied()
task.wait(RESPAWN_DELAY)
player:LoadCharacter()
end
humanoid.Died:Connect(onDied)
end
player.CharacterAdded:Connect(onCharacterAdded)
player:LoadCharacter()
end
Players.PlayerAdded:Connect(onPlayerAdded)

LoadCharacterWithHumanoidDescription

void
Bekletir

Bu işlev bir avatar oluşturur, böylece HumanoidDescription'de eklenen her şeye sahiptir.

Bir bireysel oyuncu için LoadCharacterWithHumanoidDescription çağrılırken, o oyuncunun Player.CharacterAppearanceLoaded etkinliği sona erene kadar işlevi tekrar çağırmak önerilmez.

Ayrıca bakınız:

  • HumanoidDescription System, insanoid açıklama sisteminin daha ayrıntılı bir şekilde açıklanmasını sağlayan bir makale ve birkaç kod örneği sağlar

Parametreler

humanoidDescription: HumanoidDescription

Bir HumanoidDescription içeren, vücut parçaları / renkleri, vücut ölçeği, aksesuarlar, kıyafetler ve animasyonlar içeren özellikler içeren özellikler.


Dönüşler

void

Kod Örnekleri

Spawn Characters With HumanoidDescription

local Players = game:GetService("Players")
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
local humanoidDescription = Instance.new("HumanoidDescription")
humanoidDescription.HatAccessory = "2551510151,2535600138"
humanoidDescription.BodyTypeScale = 0.1
humanoidDescription.ClimbAnimation = 619521311
humanoidDescription.Face = 86487700
humanoidDescription.GraphicTShirt = 1711661
humanoidDescription.HeadColor = Color3.new(0, 1, 0)
player:LoadCharacterWithHumanoidDescription(humanoidDescription)
end
Players.PlayerAdded:Connect(onPlayerAdded)

RequestStreamAroundAsync

void
Bekletir

For experiences where instance streaming is enabled, requests that the server stream to the player regions (parts and terrain) around the specified X , Y , 1>Z1> location in the 3D world. It is useful if the experience knows that the oyuncu's 4> Dat

Bu çağrının etkisi geçici olacak ve belirlenen yerin etrafında yayınlanacak olan şey için hiçbir garanti yoktur. Client hafıza sınırları ve ağ koşulları, klien üzerinde mevcut olan şeyin müsait olup olmadığını etkileyebilir.

Kullanım Dikkat

Bir alanın etrafında akış isteği göndermek garanti değildir , içerik isteğin tamamlanmasıyla birlikte mevcut olacak, çünkü akış etkili olabilir klien ağ bant genişliği, hafıza sınırları ve diğer faktörlerden etkilenir.

Parametreler

position: Vector3

Yayınlanması istediğiniz dünya konumu.

timeOut: number

talepiçin zorunlu süresi dolmasına izin verilen süre.

Varsayılan değer: 0

Dönüşler

void

Etkinlikler

CharacterAdded

KarakterAdded etkinliği, bir oyuncunun karakteri oluşturulduğunda (ya da yeniden doğduğunda) başlar. Bu etkinlik, Class.Player.Character 'i bir Player.Character değeri olarak ayarladıktan kısa bir süre sonra çağrılır (ya da Class.Player:LoadCharacter() 'i çağır

Bu, oyuncunun karakteri silineceğinden hemen önceki Player.CharacterRemoving etkinliği ile birlikte kullanılabilir, genellikle ölümden sonra. Bu yüzden, bu iki etkinliğin her biri potansiyel olarak birçok kez yanlışlıkla ölüp

Not: Bu olay patladığında Humanoid ve onun varsayılan vücut bölümleri (baş, gövde ve bilekler) mevcut olacak, ancak gi

Parametreler

character: Model

Karakterin oluşturulduğu/yeniden doğduğu yer.


Kod Örnekleri

Detecting Player Spawns and Despawns

local Players = game:GetService("Players")
local function onCharacterAdded(character)
print(character.Name .. " has spawned")
end
local function onCharacterRemoving(character)
print(character.Name .. " is despawning")
end
local function onPlayerAdded(player)
player.CharacterAdded:Connect(onCharacterAdded)
player.CharacterRemoving:Connect(onCharacterRemoving)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Respawn at Despawn Location

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
-- This table maps "Player" objects to Vector3
local respawnLocations = {}
local function onCharacterAdded(character)
local player = Players:GetPlayerFromCharacter(character)
-- Check if we saved a respawn location for this player
if respawnLocations[player] then
-- Teleport the player there when their HumanoidRootPart is available
local hrp = character:WaitForChild("HumanoidRootPart")
-- Wait a brief moment before teleporting, as Roblox will teleport the
-- player to their designated SpawnLocation (which we will override)
RunService.Stepped:wait()
hrp.CFrame = CFrame.new(respawnLocations[player] + Vector3.new(0, 3.5, 0))
end
end
local function onCharacterRemoving(character)
-- Get the player and their HumanoidRootPart and save their death location
local player = Players:GetPlayerFromCharacter(character)
local hrp = character:FindFirstChild("HumanoidRootPart")
if hrp then
respawnLocations[player] = hrp.Position
end
end
local function onPlayerAdded(player)
-- Listen for spawns/despawns
player.CharacterAdded:Connect(onCharacterAdded)
player.CharacterRemoving:Connect(onCharacterRemoving)
end
local function onPlayerRemoved(player)
-- Forget the respawn location of any player who is leaving; this prevents
-- a memory leak if potentially many players visit
respawnLocations[player] = nil
end
-- Note that we're NOT using PlayerRemoving here, since CharacterRemoving fires
-- AFTER PlayerRemoving, we don't want to forget the respawn location then instantly
-- save another right after
Players.PlayerAdded:Connect(onPlayerAdded)
Players.ChildRemoved:Connect(onPlayerRemoved)
Accessory Remover

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local function destroyAccessory(object)
if object:IsA("Hat") or object:IsA("Accessory") then
object:Destroy()
end
end
local function onCharacterAdded(character)
-- Wait a brief moment before removing accessories to avoid the
-- "Something unexpectedly set ___ parent to NULL" warning
RunService.Stepped:Wait()
-- Check for any existing accessories in the player's character
for _, child in pairs(character:GetChildren()) do
destroyAccessory(child)
end
-- Hats may be added to the character a moment after
-- CharacterAdded fires, so we listen for those using ChildAdded
character.ChildAdded:Connect(destroyAccessory)
end
local function onPlayerAdded(player)
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)

CharacterAppearanceLoaded

Bu olay, bir Player.Character 'in tam görünümü girildiğinde başlar.

Bir Player.Character genellikle görünümünü değiştiren bir dizi nesne ile görünür. Bunlar arasında şunlar var: Accoutrements, Shirts, <

Bu etkinliğin bir kullanımı, tüm aksesuarların yüklendiğinden emin olmak. Aşağıda bunun bir örneği.

Parametreler

character: Model

Class.Player.CharacterModel .


Kod Örnekleri

Remove Accessories After Loading

local Players = game:GetService("Players")
local function onPlayerAddedAsync(player)
local connection = player.CharacterAppearanceLoaded:Connect(function(character)
-- All accessories have loaded at this point
local humanoid = character:FindFirstChildOfClass("Humanoid")
local numAccessories = #humanoid:GetAccessories()
print(("Destroying %d accessories for %s"):format(numAccessories, player.Name))
humanoid:RemoveAccessories()
end)
-- Make sure we disconnect our connection to the player after they leave
-- to allow the player to get garbage collected
player.AncestryChanged:Wait()
connection:Disconnect()
end
for _, player in Players:GetPlayers() do
task.spawn(onPlayerAddedAsync, player)
end
Players.PlayerAdded:Connect(onPlayerAddedAsync)

CharacterRemoving

Karakter kaldırma etkinliği, oyuncunun karakterini yeniden oluşturma işlemi yaparken doğrudan etkili olur, bunun gibi oyuncu yeniden doğduğunda.

Bu etkinlik, bir oyuncunun karakteri oluşturulduğunda veya öldüğünde başlayan Player.CharacterAdded etkinliği ile birlikte kullanılabilir. Mesajı her oyuncu oluşturduğunda veya öldüğünde yazdırmak isterseniz:


local Players = game:GetService("Players")
local function onCharacterSpawned(player)
print(player.Name .. " is spawning")
end
local function onCharacterDespawned(player)
print(player.Name .. " is despawning")
end
local function onPlayerAdded(player)
player.CharacterAdded:Connect(function()
onCharacterSpawned(player)
end)
player.CharacterRemoving:Connect(function()
onCharacterDespawned(player)
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Bu etkinlik sadece bir Character ın Player ı ile ilgilidir. Eğer oyuna bir oyuncu katıldığında/gitmesi gerektiğinde takip etmek için ayrıca Players.PlayerAdded ve 1> Class.Players.PlayerRemoving1> etkinliklerini kullanın.

Parametreler

character: Model

Kaldırılacak karakterin bir instanı.


Kod Örnekleri

Player.CharacterRemoving

game.Players.PlayerAdded:Connect(function(player)
player.CharacterRemoving:Connect(function(character)
print(character.Name .. " has died.")
end)
end)

Chatted

Sohbet etme etkinliği, bir Player tarafından bir mesaj yazıldığında ve Roblox'un sağladığı sohbet kutusuna enter tuşuna basıldığında başlar. Bu, varsayılan sohbet kripti tarafından bazı Lua bağlantıları kullanarak önlenir. Class.StarterGui:SetCoreGui

Sohbet Komutları

Bu etkinliği ve bazı strung manipülasyon işlevleri, string.sub() ve string.lower() gibi, sohbet komutlarını oluşturmak mümkündür,

Sıralama

Bu olayla bağlantılan mesaj metni filtre edilmemiştir . Eğer oyununuzun diğer oyunculara herhangi bir şekilde gösterdiği oyun girişi gibi görüntüleniyorsa, bunu Chat:FilterStringAsync() kullanarak filtrelemelisiniz. Kendi sohbet sistemlerinizin oluşturulmasında bunu unutmayın;

Parametreler

message: string

Oyuncunun sohbete yazdığı mesajın içeriği.

recipient: Player

Deprecated. Sohbet mesajının hedefi olan oyuncu bu,


Kod Örnekleri

Player.Chatted

local Players = game:GetService("Players")
local function onPlayerAdded(player)
local function onChatted(message)
-- do stuff with message and player
print(message)
end
player.Chatted:Connect(onChatted)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Playing/Spectating Teams

local Players = game:GetService("Players")
local Teams = game:GetService("Teams")
local teamPlaying = Teams.Playing
local teamSpectators = Teams.Spectating
local playCommand = "/play"
local function play(player)
player.Team = teamPlaying
player.TeamColor = teamPlaying.TeamColor
-- Respawn the player (moves them to spawn location)
player:LoadCharacter()
end
local function onPlayerDied(player, _character)
-- When someone dies, put them on the spectator team
player.Team = teamSpectators
end
local function onPlayerSpawned(player, character)
local human = character:WaitForChild("Humanoid")
human.Died:Connect(function()
onPlayerDied(player, character)
end)
end
local function onPlayerChatted(player, message)
if message:sub(1, playCommand:len()):lower() == playCommand then
play(player)
end
end
local function onPlayerAdded(player)
if player.Character then
onPlayerSpawned(player, player.Character)
end
player.CharacterAdded:Connect(function()
onPlayerSpawned(player, player.Character)
end)
player.Chatted:Connect(function(message, _recipient)
onPlayerChatted(player, message)
end)
end
for _, player in pairs(Players:GetPlayers()) do
onPlayerAdded(player)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Join Team Command

local Players = game:GetService("Players")
local Teams = game:GetService("Teams")
-- Command to choose a team (note the trailing space)
local joinCommand = "/jointeam "
local function findTeamByName(name)
-- First, check for the exact name of a team
if Teams:FindFirstChild(name) then
return Teams[name]
end
-- Let's check for case-insensitive partial matches, like "red" for "Red Robins"
for _, team in pairs(Teams:GetChildren()) do
if team.Name:sub(1, name:len()):lower() == name:lower() then
return team
end
end
-- If we get to this point, no team matched the one we were looking for :(
end
local function onPlayerChatted(player, message, _recipient)
-- Note: string.sub(message, ...) is the same as message:sub(...)
if message:sub(1, joinCommand:len()):lower() == joinCommand:lower() then
-- Matched "/JOINTEAM xyz" to our join command prefix "/jointeam "
local teamName = message:sub(joinCommand:len() + 1) -- Cut out the "xyz" from "/jointeam xyz"
local team = findTeamByName(teamName)
if team then
-- Set the team!
player.Team = team
player.Neutral = false
else
-- Tell the player that team could not be found :(
player.Team = nil
player.Neutral = true
end
end
end
local function onPlayerAdded(player)
player.Chatted:Connect(function(...)
onPlayerChatted(player, ...)
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Idled

Bu olay, oyun motoru sınıflandırmasının player'yı boşta durmaolarak olmasından yaklaşık iki dakika sonra başlar. Zaman, oyuncu'nun boş kaldığından bu noktadan itibaren olan saniye sayısıdır. Etkinliğin her 30 saniyesinde bir devam ettiği sürece oyuncu boşta durmakaldığından sürecek.

Bu olay sadece client script'lerinde çalışır, sunucu script'lerinde çalışmaz; bir RemoteEvent kullanarak sunucuya boş oyuncu bildirin.

Roblox, en az 20 dakika boyunca oyunu terk eden oyuncuları otomatik olarak bağlantıdan çıkarır, bu yüzden bu olay, oyuncuları yakında bağlayacaklarını hatırlatmak için kullanılır, oyuncuları 20 dakikadan önce veya diğer klavye uzaktayken (AFK) özelliklerinden bağlayıp bağlantıyı kesmek.

Otomatik olarak bağlantının meydana gelne sıklıkta olduğunu izlemek için, bu olayı Players.PlayerRemoving ile etkileşimlerine göre korrelasyon yaparak takip edin.

Parametreler

time: number

Oyuncunun saniye içinde boşta durmaolmadığı süre.


Kod Örnekleri

Player.Idled

local Players = game:GetService("Players")
local function onIdled(idleTime)
print(`Player has been idle for {idleTime} seconds`)
if idleTime > 900 then
-- warn player that they've been idle for 15 minutes
-- and will be disconnected in another 5
end
end
Players.LocalPlayer.Idled:Connect(onIdled)

OnTeleport

Bir oyuncunun TeleportDevleti değiştiğinde ateşlendi. Bu olay, bir ışınlanmanın başarılı olup olmadığını tespit etmek için yararlıdır.

TeleportState nedir?

Class.TeleportService kullanılarak bir ışınlanma isteği gönderildiğinde, Player ışınlanmadan önce bir dizi aşamalar vardır. Mevcut aşama OnTeleport tarafından verilen Enum.TeleportState değerine gösterilir. Aşağıda bunun pratik bir örneğine bakınız.

Parametreler

teleportState: Enum.TeleportState

Class.Player ın yeni Player .

placeId: number

Class.Player ın ışınlanacağı yerin ID'si.

spawnName: string

Işınlanmak için kullanılan nesnenin adı, if TeleportService:TeleportToSpawnByName() kullanılmışsa.


Kod Örnekleri

Player.OnTeleport

local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
local playerOnTeleport = player
player.OnTeleport:Connect(function(teleportState, _placeId, _spawnName)
if teleportState == Enum.TeleportState.Started then
print("Teleport started (" .. playerOnTeleport.Name .. ")")
elseif teleportState == Enum.TeleportState.WaitingForServer then
print("Teleport waiting for server (" .. playerOnTeleport.Name .. ")")
elseif teleportState == Enum.TeleportState.InProgress then
print("Teleport in progress (" .. playerOnTeleport.Name .. ")")
elseif teleportState == Enum.TeleportState.Failed then
print("Teleport failed! (" .. playerOnTeleport.Name .. ")")
end
end)
end)