Arkadaşları deneyim içinde bulmak zor olabilir. SpawnWithFriends geliştirici modülü otomatik olarak bir arkadaşının bulunduğu yakındaki bir oyuncuyu oluşturur. Bu modül ayrıca bir oyuncuyu otomatik olarak değil, emir olarak ışınlanmayı da sağlayabilir.
Modül Kullanımı
Kurulum
Bir deneyimde SpawnWithFriends modülünü kullanmak için:
从 Görüntü sayfasından aç Araç Kutusu ve seç Yaratıcı Dükkanı sayfasını.
Modelleri Sırala seçimi seçildiğinden emin olun, sonra Tümünü Gör düğmesine tıklayın, Kategoriler için.
Yerleştir ve Dev Modülleri mozülünü tıkla.
Arkadaşlarla Ortaya Çıkma Modülünü bul ve tıkla, yoksa 3D görüşüne kaydır ve bırak.
In the Explorer window, move the entire SpawnWithFriends model into ServerScriptService . On running the experience, the module will distribute itself to various services and begin running.
Sınırlı Olarak Açılan Bölgeler
Bu modül, VIP odaları gibi sınırlı alanlarda oluşan oyunculara neden olabilir. Oyuncuların bu alanlara ışınlanmasını önlemek için:
Sınırlı alanı görünmez Anchored bloklarla doldurun. Make sure CanCollide , CanTouch ve 1> Class.BasePart.CanQueue|CanQueue1> bloklarının tü
Her blokun özelliklerinin Etiketleri bölümünü kullanırken, Studio'nun Etiket Editor'ı , etiketi RestrictedSpawnArea uygular, böylece 2> Class.CollectionService2> onları tespit eder.
Aşağıdaki kodu ServerScriptService içindeki bir Class.Script içine yapıştırın.
Kodlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local CollectionService = game:GetService("CollectionService")local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))local function validator(playerToTeleport, destinationPlayer, teleportationPoint)-- Tüm etiketli parçalarda iterefor _, area in CollectionService:GetTagged("RestrictedSpawnArea") dolocal relativePosition = area.CFrame:PointToObjectSpace(teleportationPoint.Position)local size = area.Sizelocal inXBounds = relativePosition.X < size.X / 2 and relativePosition.X > -size.X / 2local inZBounds = relativePosition.Z < size.Z / 2 and relativePosition.Z > -size.Z / 2if inXBounds and inZBounds thenreturn false -- Spawn ulaşım hedefi sınırlı alan içindedir; ışınlanmayı iptal etendendreturn true -- Spawn desteği herhangi bir sınırlı alanla çakışmaz; Işınlanmayı devam edinendSpawnWithFriends.setTeleportationValidator(validator)
API İşaretçisi
Fonksiyonlar
yapılandır
class.脚本 tabelasındaki önbelleği geçersiz hale getiren anahtarlar/değerler aracılığıyla varsayılan yapılandırma seçeneklerini üst üste geçersiz kılar. Bu işlev sadece Script ile bağlantı kurulabilir.
Anahtar | Açıklama | Varsayılan |
---|---|---|
teleportToFriendOnRespawn | false olarak ayarlanırsa, bir arkadaşa ışınlanma sadece teleportToRandomFriend aracılığıyla manuel olarak gerçekleştirilir. | doğru |
teleportDistance | Oyuncuların birbirinden kaç metre ötede oluşması gerektiği, metrelerle ölçülür. | 5 |
maxCharacterVelocity | Hareket eden bu değerden daha hızlı olan karakterler, örneğin hareket eden araçlar içinde seçilmez. | 48 |
bypassFriendshipCheck | Açık olarak ayarlanırsa, tüm oyuncular uzaktan ışınlanma için aday olacak, sadece arkadaşlar değil. | yanlış |
showLogs | Log mesajlarını çıktıda göstereceğiniz yoksa göstermeyeceğiniz. | yanlış |
Kod
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))SpawnWithFriends.configure({teleportToFriendOnRespawn = true,teleportDistance = 5,maxCharacterVelocity = 48,bypassFriendshipCheck = false,showLogs = false})
teleportToRandomFriend
Bir oyuncunun deneyimdeki bir arkadaşına ışınlanmasını manuel olarak başlatır. İşlem başarılı olup olmadığını gösteren bir booleto döndürür; ışınlanma başarısız olabilir; sunucudaki arkadaş yoksa dağıtık ışınlanma noktası bulma yeteneği yoksa başlatılamaz. Bu işlev sadece
setIşınlanmaValidatörü
Geçerli bir validatör geri bildirim işlevi bağlayarak özelleştirilmiş ön-izin kontrollerini yapmanızı sağlar. İşlev, üç parametre alır:
Değer | Açıklama |
---|---|
playerToTeleport | Işınlanılan Player'a referans. |
destinationPlayer | playerToTeleport içinde bulunan hedefe olan referans. |
teleportationPoint | CFrame nerede playerToTeleport teleport ediliyor. |
Bu işlev ve çağrısı sadece bir Script içinde ve çağrı dönüşü bir boşluk işaretleyerek ışınlanmanın devam ettiğini gösterir. Örneğin, aşağıdaki return mantığı, oluşturulan oyuncunun ve hedef oyuncunun aynı takımda olduğunu garanti eder.
Kod
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SpawnWithFriends = require(ReplicatedStorage:WaitForChild("SpawnWithFriends"))
-- Oyuncuların aynı takımda olması durumunda sadece oyuncuları ışınlayır
local function validator(playerToTeleport, destinationPlayer, teleportationPoint)
return playerToTeleport.Team == destinationPlayer.Team
end
SpawnWithFriends.setTeleportationValidator(validator)