Player
*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
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
oyuncuhesabının gün sayısında yaşını açıklar.
Bir oyuncunun bir mobil cihaz kullanarak karakterinin bir engelle isabet almasında otomatik olarak atlayacağını belirler.
oyuncukamerasının çıkarılabileceği maksimum mesafe.
oyuncukamerasının minimum mesafesi.
Kameranın modunu ilk veya üçüncü kişiye ayarlar.
Karakterin oluşturulduğunda oyuncunun görünümünün yükleneceğini belirler. Eğer yanlış, oyuncu varsayılan bir görünümle oluşturulur.
Bir Model oyuncusu tarafından kontrol edilir, bir Humanoid , vücut bölümleri, kodlar ve diğer nesneler.
oyuncucharacter için kullanılan hesabın kullanıcı kimliğini belirler.
Kameranın ve oyuncunun arasındaki nesneleri nasıl varsayılan kameranın oyuncuya verdiği nesneleri ayarlar.
Roblox'un bir masaüstü versiyonunu kullanırken oyuncunun kamerasının hareket modunu belirler.
Roblox'un bir masaüstü versiyonunu kullanırken oyuncunun karakter hareket modunu belirler.
Oyuncunun fare kilidini ayarlar.
Dokunmatik cihaz kullanırken oyuncunun kamerasının hareket modunu belirler.
Dokunmatik cihaz kullanırken oyuncunun karakter hareket modunu belirler.
Oyuncu ile ilişkili UserId'nin Görüntü Adı.
Bir oyuncunun takip edildiği oyuna kullanıcının kimliğini açıklar.
Oyunun şu anda kullanıcı tarafından durdurulup durdurulmadığı.
Bir oyuncunun Geçerli bir Rozeti olduğunu gösterir.
Bu oyuncunun diğer Humanoid'lerinin sağlık çubuklarını göreceği mesafeyi ayarlar. 0 olarak ayarlanırsa, sağlık çubukları görüntülenmez.
Bu özellik, yerel oyuncu hesabı için yerel oyuncu hesapiçin belirlenen lokasyon kimliğini gösterir.
Hesabın hesapyazaçıklar.
Bu oyuncunun diğer Humanoid'lerin isimlerini göreceği mesafeyi ayarlar. 0 olarak ayarlanırsa, isimler gizlenir.
Oyuncunun belirli bir takımda olup olmadığını belirler.
Parçayı etraftaki kopyalamayı odaklandırır.
ayarla, oyuncu verilen SpawnLocation 'da yeniden doğacak.
Bir Oyuncunun bağlı olduğu Takımı belirler.
Bir Oyuncunun bağlı olduğu Takımı belirler.
Tüm kullanıcı hesaplarına atan benzersiz bir sayı.
Yöntemler
Bir oyuncunun Karakterinden tüm aksesuarları ve diğer karakter görünümü öğelerini kaldırır.
Karakterin kafası ve belirlenen Vector3 noktası arasındaki mesafeyi iade eder. Oyuncunun hiç karaktere sahip olmadığı durumda 0 döndürür.
Oyunun deneyime katılmayı Player ile nasıl açıkladığını gösteren bir sözlük döndürür.
Kullanıcının kullandığı mouse'ı iade eder.
Ayrık ağ latency'sini saniye olarak iade eder.
oyuncukarakterinin görünümü yüklendiğini veya yüklendiğini değerlendirir.
Oyuncunun gerçek dünya sinyalleriyle doğrulandığını döndürür.
Bir oyuncuyu oyundan zorla ayrık tut veya bir mesaj göndererek.
Oyuncunun karakterinin verilen yönde durduğunu, durdurulduğunu veya oyuncu tarafından kesildiğini gösterir (denetimlerkullanarak).
oyuncuHesapYaşını ayarlar.
Oyuncunun normal sohbetler değil, filtrelenmiş sohbetleri gördüğünü ayarlar.
Çevrimiçi arkadaşların bir sözlüğünü döndürür.
oyuncurütbesini gruba 0 ila 255 arasında bir sayı olarak döndürür, 0 bir üyesi değildir ve 255 grupsahibidir.
Oyuncunun rolünü gruba bir diziolarak veya "Guest" olarak iade eder, oyuncu grupparçası değilse.
Bir oyuncunun Player.UserId ile verilen bir arkadaş olup olmadığını kontrol eder.
Bir oyuncunun verilen kimliğin bir grubun üyesi olup olmadığını kontrol eder.
Oyuncunun eski karakterini kaldırır ve yeni bir oluşturur. Ayrıca oyuncunun Backpack ve PlayerGui ını temizler.
Bir avatar oluşturur, böylece HumanoidDescription ile geçen her şeye sahiptir.
Oyuncuya belirlenen yerin etrafında oynanan istekler.
Etkinlikler
Bir oyuncunun karakteri yeniden doğduğunda veya yeniden doğduğunda.
Class.Player.Character ın tam görünümü girildiğinde ateş eder.
Bir oyuncunun karakteri kaldırılmadan hemen önce yanıyor.
Roblox'un sağladığı sohbet kutusunu kullanarak oyun içinde bir oyuncu sohbet ettiğinde ateşlenir.
Bu olay, oyun motoru sınıflandırmasından sonra yaklaşık iki dakika sonra başlar. Zaman, o noktadan bu yana geçen boşta durmasayısıdır.
Bir oyuncunun TeleportDevleti değiştirildiğinde ateş edilir.
Özellikler
AccountAge
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
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
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
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
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
local Players = game:GetService("Players")
local player = Players.LocalPlayer
player.CameraMaxZoomDistance = 50
player.CameraMinZoomDistance = 75
CameraMinZoomDistance
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
local Players = game:GetService("Players")
local player = Players.LocalPlayer
player.CameraMaxZoomDistance = 50
player.CameraMinZoomDistance = 75
CameraMode
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
local Players = game:GetService("Players")
local player = Players.LocalPlayer
player.CameraMode = Enum.CameraMode.LockFirstPerson
CanLoadCharacterAppearance
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
local Players = game:GetService("Players")
local player = Players.LocalPlayer
player.CanLoadCharacterAppearance = false
Character
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.LocalPlayerlocal character = player.Characterif not character or character.Parent == nil thencharacter = player.CharacterAdded:Wait()end
CharacterAppearanceId
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
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
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.
DevComputerCameraMode
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
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
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
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
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
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)
DevTouchCameraMode
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
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
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
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
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
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
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
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:
- Workspace.StreamingEnabled ile, içerik akışının etkinleştirilip etkinleştirilmediğini kontrol eder
- Workspace.StreamingIntegrityMode ve Enum.StreamingIntegrityMode için daha fazla ayrıntı için kullanılır.
HasVerifiedBadge
HasVerifiedBadge Player özelliği, oyuncunun bir Doğrulanmış Rozet alıp almadığını gösterir.
HealthDisplayDistance
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
local Players = game:GetService("Players")
local player = Players.LocalPlayer
player.HealthDisplayDistance = 0
player.NameDisplayDistance = 0
LocaleId
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
local Players = game:GetService("Players")
local player = Players.LocalPlayer
print(player.LocaleId)
MembershipType
Üyelik kaydedilmesini belirlemek için sadece okunabilir (başka bir üyelik yazayarlanmaz). Bir hesapüyelik yaziçeren bir Enum.MembershipType열i tutar.
Kod Örnekleri
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
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
local Players = game:GetService("Players")
local player = Players.LocalPlayer
player.HealthDisplayDistance = 0
player.NameDisplayDistance = 0
Neutral
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
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
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
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
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
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
Takım özelliği, Team hizmetindeki bir takımı işaret
Kod Örnekleri
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)
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
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
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
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
local Players = game:GetService("Players")
local function onPlayerAdded(player)
print(player.UserId)
end
Players.PlayerAdded:Connect(onPlayerAdded)
local Players = game:GetService("Players")
local player = Players:GetPlayerByUserId(1)
if player then
print("Player with userId 1 is in this server! Their name is: " .. player.Name)
else
print("Player with userId 1 is not in this server!")
end
local 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)
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
ClearCharacterAppearance işlevi, Accessory, Shirt, Pants, 1> Class.CharacterMesh1> ve
Bunlar t-shirts , kafa şebekeleri veya yüzleri kaldırmaz.
Dönüşler
Kod Örnekleri
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
oyuncumesafesinin ölçüldüğü yer.
Dönüşler
Oyuncu ve yer arasındaki mesafe.
Kod Örnekleri
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>
Anahtar | Değ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
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)
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)
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
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)
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
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
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
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
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
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
Kullanıcıyı şutçuğa çıkarıldığında gösteren mesaj.
Dönüşler
Move
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
Oyuncunun hareket etmesi gereken Vector3 yönü.
Oyuncunun kamerasına kıyasla oyuncunun hareket etmesi gerektiğini gösteren bir booleoid.
Dönüşler
Kod Örnekleri
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
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
Hesabın gün sayısında yaşı.
Dönüşler
Kod Örnekleri
local Players = game:GetService("Players")
local player = Players.LocalPlayer
player:SetAccountAge(100)
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
Bu yöntem oyuncunun normal sohbetleri görüp görmediğini belirler: TextService:FilterStringAsync()
local Players = game:GetService("Players")local player = Players.LocalPlayerplayer: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
Oyuncunun filtreli sohbeti gördüğünü gösterip göstermediğini gösteren bir booleoid.
Dönüşler
GetFriendsOnline
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>
İsim | Tür | Açıklama |
---|
Parametreler
Dönüştürmek için maksimum çevrim içi arkadaş sayısı.
Dönüşler
Online arkadaşlarınızın bir sözlüğü (yukarıdaki tabloya bakın).
Kod Örnekleri
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
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
Belirlenen grupgroupId 'i.
Dönüşler
oyuncugruprütbesi.
Kod Örnekleri
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
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
Belirlenen grupgroupId'si.
Dönüşler
Oyuncunun belirlenen grupkatılma rolü, veya Misafir eğer oyuncu bir üye değilse.
Kod Örnekleri
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
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
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
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
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
Belirlenen grupgroupId'si.
Dönüşler
Oyuncunun belirlenen grupdahil olup olmadığını gösteren bir booleoid.
Kod Örnekleri
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
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):
- Player.Character setleri
- Player.CharacterAdded yangınlar
- Player.Changed "Character" bir değerle ateş eder
- Karakter görünümü başlatılır
- Player.CharacterAppearanceLoaded ateşleri
- Character.Parent, DataModel'e ayarlandı
- Karakter şekillendirmeyi ve Karakter ölçeğini oluşturur
- Karakter oluşturma yerine hareket eder
- LoadCharacter dönüşleri
Dönüşler
Kod Örnekleri
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
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
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
Kod Örnekleri
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
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
Yayınlanması istediğiniz dünya konumu.
talepiçin zorunlu süresi dolmasına izin verilen süre.
Dönüşler
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
Karakterin oluşturulduğu/yeniden doğduğu yer.
Kod Örnekleri
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)
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)
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
Kod Örnekleri
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
Kaldırılacak karakterin bir instanı.
Kod Örnekleri
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
Oyuncunun sohbete yazdığı mesajın içeriği.
Deprecated. Sohbet mesajının hedefi olan oyuncu bu,
Kod Örnekleri
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)
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)
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
Oyuncunun saniye içinde boşta durmaolmadığı süre.
Kod Örnekleri
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
Class.Player ın yeni Player .
Class.Player ın ışınlanacağı yerin ID'si.
Işınlanmak için kullanılan nesnenin adı, if TeleportService:TeleportToSpawnByName() kullanılmışsa.
Kod Örnekleri
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)