Oyuncu tabanınızı genişletmek için yaygın promosyon yöntemlerine ek olarak, deneyiminizin içine doğrudan davet istekleri uygulayabilir ve oyuncuların arkadaşlarını davet etmelerini ve ortak deneyim oynanışoynayışını artırmasını teşvik edebilirsiniz.
Davet istemi sistemi takip edileniçerir:
- Dinamik Davetliler — Oyuncuları bir seçim listesinden çok sayıda arkadaş davet etmeye veya belirli bir arkadaş davet etmeye teşvik edin.
- Başlatma Verileri — Davet edilen arkadaş katıldığında başlatma verileri okunabilen zorunlu olmayan başlatma verilerini içerir Player:GetJoinData() .Örnek kullanım durumları, davet edilen arkadaşları bir koordinat konumuna yönlendirmek veya davetli için katılma deneyimini kişiselleştirmek gibi şeyleri içerir.
- Özelleştirilebilir Metin — davet mesajı ve bildirim mesajı özelleştirin.Örneğin, oyuncuya bir davet mesajı "Arkadaşlarınızı maceraya katılmaya davet edin!" ve davet edilen arkadaş(lar) için bildirim mesajı " displayName experienceName'deki maceranıza katılmanızı istiyor!" okuyabilir.
Ayrıca, Arkadaş Davet Ödül Sistemi kullanarak davet edenleri ve davetlileri izleyip ödüllendirebilirsiniz.

Davet seçeneklerini ayarla
Varsayılan olarak, oyuncu için bir davet istemi, Davet düğmeleri ile arkadaşlarının bir menüsünü gösterir.Hızlı mesajı özelleştirmek, belirli bir arkadaşı hedef almak veya davete başlama verilerini dahil etmek için, istediğiniz özelliklerle bir ExperienceInviteOptions nesne kurmanız gerekecek.
Özellik | Tür | Açıklama |
---|---|---|
PromptMessage | dizi | Örneğin, çok arkadaşlı bir davet için gönderen oyuncuya gösterilen özel metin, örneğin "Arkadaşlarınızı maceraya katılmaya davet edin!" bir çok arkadaşlı davet için veya "Bu arkadaşı özel bir arkadaş daveti için maceraya katılsın!" özel bir arkadaş daveti için davet etmek için "Davet edin" özel bir arkadaş daveti için.Özel davet mesajınız, UI sınırlarını aşacak kadar uzunsa, gösterilmeyeceğini unutmayın. |
InviteUser | sayı | Davet edilecek belirli arkadaşın Roblox'u UserId 'si; eğer sağlanmazsa, oyuncu bir arkadaş listesinden seçmesi istenecektir. |
InviteMessageId | dizi | Bir Bildirim varlık yazeşdeğer olan varlık kimliği.Bu varlık, arkadaşların aldığı davet bildirimleri için özel bir dize saklamak/yerelleştirmek için kullanılır.Ayrıntılar için Ayarlama Bildirim Seçenekleri bakın. |
LaunchData | dizi | Bir arkadaş davet bildiriminden katıldığında Player:GetJoinData() bir değer ayarlamak için kullanılır çok kullanılan bir parametre.En fazla 200 karakter.Kullanım örneği için Başlatma verilerini dahil et bakın. |
YerelScript - Çok Sayıda Arkadaşını Davet Et
local SocialService = game:GetService("SocialService")local Players = game:GetService("Players")local player = Players.LocalPlayer-- Özel bir istemci mesajı ile davet seçenekleri oluşturunlocal inviteOptions = Instance.new("ExperienceInviteOptions")inviteOptions.PromptMessage = "Ask your friends to join the adventure!"
Bildirim seçeneklerini ayarla
Varsayılan olarak, arkadaşların aldığı davet bildirimi gönderenin DisplayName , kullanıcı adı ve deneyim adını içerir.mesajözelleştirmek için, Yaratıcı Panosu üzerinde bir Bildirim varlığı oluşturabilir ve varlık kimliğini bir ExperienceInviteOptions olarak dahil edebilirsiniz.
Navigate to the Yaratıcı Panosuna.
başarımlara benzer şekilde, bildirim dizeeleri bir özel deneyime bağlıdır. Bu deneyimin küçük resmini bulun ve üzerine tıklayın.
Sol sütunda, Katılım altında, Bildirimler 'e tıklayın.
Orta bölgede, Bir Bildirim Dizesi Oluştur düğmesine tıklayın.
Bir tanımlayıcı adı (yalnızca sizin tarafınızdan görülebilir) ve özel bildirim metni doldurun.Davet edilen arkadaşların deneyim adını tanımlamak için experienceName yer tutucusu dahil etmeniz gerektiğini ve seçmeli olarak gönderenin displayName yer tutucusunu dahil edebileceğinizi unutmayın.
Örnek bildirim dizeeleri:
- displayName sizin experienceName adlı macerasına katılmanı istiyor!
- displayName sadece altıncı aşamayı temizledi experienceName. Yapabilir misin?
Hazır olduğunda, Bildirim Dizesi Oluştur düğmesine tıklayın.
Bildirim sayfasında, bildirim tablosunda, Eylemler sütununda ⋯ düğmesine tıklayın ve Varlık Kimliğini Kopyala seçin.
Davet istemi için ExperienceInviteOptions nesnesinde, varlık kimliğini InviteMessageId özelliğinin değeri olarak yapıştırın.
YerelScript - Çok Sayıda Arkadaşını Davet Etlocal SocialService = game:GetService("SocialService")local Players = game:GetService("Players")local player = Players.LocalPlayer-- arkadaşkullanıcı kimliği ile davet seçenekleri oluşturlocal inviteOptions = Instance.new("ExperienceInviteOptions")inviteOptions.InviteMessageId = "ef0e0790-e2e8-4441-9a32-93f3a5783bf1"
Bir davet istemek
Bir davet istemek için, önce oyuncunun davet gönderebileceğini belirlemelisiniz, çünkü yetenek platform veya oyuncu bağlı olarak değişebilir.Onaylandıktan sonra, oyuncuya davet mesajını gösterebilirsiniz.
- Çağrı , bazen başarısız olabilecek asenkron bir ağ çağrısı içinde sarılır.
- Davet yeteneği onaylanırsa, ikinci argüman olarak seçeneği ile SocialService:PromptGameInvite()davet seçenekleri nesnesi adresinde çağrın.
Uyarıldıktan sonra, oyuncu çok sayıda arkadaş davet etmek veya davet seçenekleri nesnesinde tanımlanan belirli arkadaşı davet etmek için ekranda bir uyarı görecektir.Oyuncu daha sonra bir veya daha fazla arkadaş için Davet düğmesine tıkladığında, bu arkadaşlar gönderenin DisplayName , kullanıcı adı ve deneyim adı içeren bir bildirim alacaklar.Bildirimler, Bildirim seçeneklerini ayarla bağlantısında belirtildiği gibi daha da özelleştirilebilir.
YerelScript - Çok Sayıda Arkadaşını Davet Et
local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Oyuncunun bir davet gönderebileceğini kontrol eden işlev
local function canSendGameInvite(sendingPlayer)
local success, canSend = pcall(function()
return SocialService:CanSendGameInviteAsync(sendingPlayer)
end)
return success and canSend
end
local canInvite = canSendGameInvite(player)
if canInvite then
SocialService:PromptGameInvite(player)
end
Başlatma verilerini dahil et
Deneyim içi işbirliğini daha da geliştirmek veya oyuncu davetlerini teşvik etmek için, başlatma verileri bir davet istemine dahil edebilirsiniz, böylece davet edilen arkadaşlar bir koordinasyon noktasına yönlendirilir veya davet edilen deneyim kişiselleştirilir.
Bir davet istediğinizde , arkadaş deneye katıldığında kullanılacak önemli veriler içeren bir nesne dahil edin, örneğin gönderenin , arkadaşın katılmasıyla ödüllendirilecek bir rozet veya arkadaşın konumuna yerleştirilecek bir koordinat konumu, örneğin arkadaşın katılmasıyla ödüllendirilecek bir koordinat konumu, örneğin arkadaşın katılmasıyla ödüllendirilecek bir koordinat konumu dahil edinBirden fazla veri parçası derlemek gerekiyorsa, verileri JSONEncode() kullanarak kodlayın.
YerelScript - Çok Sayıda Arkadaşını Davet Etlocal HttpService = game:GetService("HttpService")local SocialService = game:GetService("SocialService")local Players = game:GetService("Players")local player = Players.LocalPlayerlocal data = {senderUserID = player.UserId,spawnLocation = {12, 48, 205.5}}local launchData = HttpService:JSONEncode(data)-- Başlatma verileriyle davet seçenekleri oluşturmalocal inviteOptions = Instance.new("ExperienceInviteOptions")inviteOptions.LaunchData = launchData-- Oyuncunun bir davet gönderebileceğini kontrol eden işlevlocal function canSendGameInvite(sendingPlayer)local success, canSend = pcall(function()return SocialService:CanSendGameInviteAsync(sendingPlayer)end)return success and canSendendlocal canInvite = canSendGameInvite(player)if canInvite thenSocialService:PromptGameInvite(player, inviteOptions)endbildirimaracılığıyla katılan gelen arkadaşlar için, sunucu tarafındaki başlatma verilerini Player:GetJoinData() aracılığıyla kontrol edin.Davet istemesi için çok sayıda veriyi JSON'a dönüştürürseniz, onu JSONDecode() ile çözmeyi unutmayın.
Script - Davet Başlatma Verilerini Kullanmalocal HttpService = game:GetService("HttpService")local Players = game:GetService("Players")local ATTEMPT_LIMIT = 10local RETRY_DELAY = 1local function onPlayerAdded(player)local launchDatafor _ = 1, ATTEMPT_LIMIT dotask.wait(RETRY_DELAY)local joinData = player:GetJoinData()if joinData.LaunchData ~= "" thenlaunchData = joinData.LaunchDatabreakendendif launchData thenlocal data = HttpService:JSONDecode(launchData)print(data.senderUserID)print(data.spawnLocation)elsewarn("No launch data received!")endendPlayers.PlayerAdded:Connect(onPlayerAdded)Fırlatma verileri mevcutsa, şunlar dahil olmak üzere geniş bir çeşitlilikte tasarım senaryoları için kullanabilirsiniz:
- Gönderenin az önce bitirdiği zorlu bir engel parkurunun başında gelen arkadaşı, gönderi verilerinden geçen bir koordinat konumuna dayanarak oluşturun.
- Gönderenin dünyaolduğundan emin olun, fırlatma verilerindeki Player.UserId göre, arkadaşın karakterini yakınlarına ışınlayın.