Oyuncu davet etme istemleri

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

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 Metindavet 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.

ÖzellikTürAçıklama
PromptMessagediziÖ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.
InviteUsersayıDavet edilecek belirli arkadaşın Roblox'u UserId 'si; eğer sağlanmazsa, oyuncu bir arkadaş listesinden seçmesi istenecektir.
InviteMessageIddiziBir 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.
LaunchDatadiziBir 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şturun
local 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.

  1. Navigate to the Yaratıcı Panosuna.

  2. 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.

  3. Sol sütunda, Katılım altında, Bildirimler 'e tıklayın.

  4. Orta bölgede, Bir Bildirim Dizesi Oluştur düğmesine tıklayın.

  5. 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?
  6. Hazır olduğunda, Bildirim Dizesi Oluştur düğmesine tıklayın.

  7. Bildirim sayfasında, bildirim tablosunda, Eylemler sütununda düğmesine tıklayın ve Varlık Kimliğini Kopyala seçin.

  8. 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 Et

    local SocialService = game:GetService("SocialService")
    local Players = game:GetService("Players")
    local player = Players.LocalPlayer
    -- arkadaşkullanıcı kimliği ile davet seçenekleri oluştur
    local 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.

  1. Çağrı , bazen başarısız olabilecek asenkron bir ağ çağrısı içinde sarılır.
  2. 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.

  1. 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 Et

    local HttpService = game:GetService("HttpService")
    local SocialService = game:GetService("SocialService")
    local Players = game:GetService("Players")
    local player = Players.LocalPlayer
    local data = {
    senderUserID = player.UserId,
    spawnLocation = {12, 48, 205.5}
    }
    local launchData = HttpService:JSONEncode(data)
    -- Başlatma verileriyle davet seçenekleri oluşturma
    local inviteOptions = Instance.new("ExperienceInviteOptions")
    inviteOptions.LaunchData = launchData
    -- 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, inviteOptions)
    end
  2. bildirimaracı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 Kullanma

    local HttpService = game:GetService("HttpService")
    local Players = game:GetService("Players")
    local ATTEMPT_LIMIT = 10
    local RETRY_DELAY = 1
    local function onPlayerAdded(player)
    local launchData
    for _ = 1, ATTEMPT_LIMIT do
    task.wait(RETRY_DELAY)
    local joinData = player:GetJoinData()
    if joinData.LaunchData ~= "" then
    launchData = joinData.LaunchData
    break
    end
    end
    if launchData then
    local data = HttpService:JSONDecode(launchData)
    print(data.senderUserID)
    print(data.spawnLocation)
    else
    warn("No launch data received!")
    end
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
  3. 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.