Arkadaş yönlendirme sistemi mevcut oyuncuları oyununuzda yeni oyuncuları davet etmeye teşvik ederek, oyuncu devamlılığını ve genel etkileşimi arttırır. Oyuncular, oyuncu davet istemlerinden veya doğrudan varsayılan oyun içi davet menüsünden yönlendirme bağlantılarına erişip paylaşabilirler.
Bir geliştirici olarak, ödül sisteminizi tanıtmak için özelleştirilmiş afişler oluşturabilir ve paylaşılabilir yönlendirme bağlantılarını kullanarak:
- Hangi oyuncuların oyununuza başarıyla diğer oyuncuları davet ettiğini takip edin.
- Hangi oyuncuların başka bir oyuncunun yönlendirme bağlantısı davetiyle oyununuza katıldığını takip edin.
- Hem davet edenlere hem de davet edilenlere ödüller oluşturup dağıtın.
Bir yönlendirme sistemini uygulamak için, bir yönlendirme olayı ayarlayın ve yönlendirme ödülleri oluşturun Studio'da. GetJoinData() metodunun ReferredByPlayerId özelliği, tüm davet türleri için otomatik olarak doldurulur ve yönlendiren oyuncunun kullanıcı kimliğine erişim sağlar. Bu veriyi Players.PlayerAdded olayında erişerek davet eden oyuncuyu tanımlayabilir ve hem davet eden hem de davet edilen için ödülleri verebilirsiniz.
function onPlayerAdded(player)
local referredByPlayerId = player:GetJoinData().ReferredByPlayerId
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
referrerEvent:FireClient(player, referredByPlayerId)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Oyuncuların ödül sistemini anlamalarını sağlamak için, arkadaş davet modalınızın üst kısmında onlara kazanabilecekleri ödüller hakkında bilgiler gösteren özelleştirilmiş bir ödül afişi oluşturun.
Yönlendirme olayı ayarlama
Bir yönlendirme olayı ayarlamak için:
- Yönlendirme alındığında istemci ile iletişim kurmak için ReplicatedStorage içinde bir RemoteEvent oluşturun.
- Davet edenin kullanıcı kimliğini ReferredByPlayerId kullanarak alıp sunucu tarafı skriptinizde Players.PlayerAdded olayında oyuncu katılımlarını takip edin ve yönlendirme mantığını yönetin.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Yönlendirmeleri işlemek için RemoteEvent oluşturun veya alın
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Bir oyuncu katıldığında tetiklenen fonksiyon
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Oyuncunun bir yönlendirme ile davet edilip edilmediğini kontrol edin
if referredByPlayerId and referredByPlayerId ~= 0 then
-- Davet edenin kimliğini ileterek istemciye yönlendirme olayını yayınlayın
referrerEvent:FireClient(player, referredByPlayerId)
-- Davet eden ve davet edilen için ödüllendirme mantığı burada eklenebilir
-- örneğin: rewardReferrer(referredByPlayerId)
-- örneğin: rewardInvitee(player)
end
end
-- Fonksiyonu PlayerAdded olayına bağlayın
Players.PlayerAdded:Connect(onPlayerAdded)
Yönlendirme ödüllerini verin
Katılımı teşvik etmek için, hem davet edenlere hem de davet edilenlere ödüller verin. Örneğin, arkadaşları oyuna katıldığında davet edenlere bir rozet veya oyun içi para vermeyi düşünebilirsiniz, ve davet edilenlere bir hoş geldin ödülü verin.
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Yönlendirmeleri işlemek için RemoteEvent oluşturun veya alın
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- Bir oyuncu katıldığında tetiklenen fonksiyon
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Oyuncunun bir yönlendirme ile davet edilip edilmediğini kontrol edin
if referredByPlayerId and referredByPlayerId ~= 0 then
-- Davet edenin kimliğini ileterek istemciye yönlendirme olayını yayınlayın
referrerEvent:FireClient(player, referredByPlayerId)
-- Davet edeni ödüllendirin
function rewardReferrer(referrerId)
local referrerPlayer = Players:GetPlayerByUserId(referrerId)
if referrerPlayer then
-- Davet edenin ödülünü verin
-- Örnek: referrerPlayer.leaderstats.Coins.Value += 100
end
end
-- Davet edilenin ödülünü verin
function rewardInvitee(player)
-- Davet edilenin ödülünü verin
-- Örnek: player.leaderstats.WelcomeBonus.Value += 50
end
end
end
-- Fonksiyonu PlayerAdded olayına bağlayın
Players.PlayerAdded:Connect(onPlayerAdded)
Bir ödül afişi oluşturun
Ödül afişleri, kullanıcıların davet ettikleri arkadaşlarını oyuna katılmaya teşvik eder, kazanabilecekleri yönlendirme ödülleri hakkında bilgiler göstererek. Bu afişler, arkadaş davet modalınızın üst kısmında görüntülenir.
Özelleştirilmiş bir ödül afişi oluşturmak için:
- Creator Hub'da Yaratımlar bölümüne gidin ve bir yönlendirme olayı oluşturduğunuz oyunu seçin.
- Etkileşim ⟩ Yönlendirme Ödülleri sekmesine gidin.
- Ödül Bilgisi Ekle butonuna tıklayın.
- Yönlendirme Ödülleri sayfasında:
- Varsayılan simgeyi oyununuzu temsil eden bir görüntü ile değiştirin.
- Afişte gösterilecek bir ödül adı girin.
- Afişi oyunculara göstermek istediğiniz başlangıç ve bitiş tarihlerini seçin.
- (İsteğe bağlı) Ödül hakkında bilgiler içeren bir açıklama girin.
- (İsteğe bağlı) Eğer ödül kısıtlamaları eklemek istiyorsanız, bir ödül limiti girin. Örneğin, her davet eden için en fazla 3 ödül limiti.
- Değişikliklerinizi kaydetmek için Kaydet butonuna tıklayın.
- Oyunculara afişi görülebilir hale getirmek için Yayınla butonuna tıklayın.
Birçok farklı afiş oluşturabilirsiniz, ancak yalnızca bir afişin yayımlanması ve gösterilmesi mümkündür. Yayınlanan afişin, Studio'da uyguladığınız yönlendirme sistemini doğru bir şekilde tanımladığından emin olun.
Yönlendirme sistemi suiistimalini önleme
Oyuncuların arkadaş yönlendirme sistemini istismar etmelerini önlemek için önlemler alabilirsiniz.
- Davet edilenleri takip etmek ve yalnızca bir kez ödüllendiklerinden emin olmak için tek seferlik ödüller sunun.
- Bir davet edenin başka bir yönlendirme göndermeden önce bir bekleme süresi uygulayın.
- Olağandışı etkinlikleri izleyin ve kullanıcıları yasaklama veya ödülleri iptal etme gibi düzeltici önlemler uygulayın.
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
-- Yönlendirmeler için veri deposu oluşturun veya alın
local referralDataStore = DataStoreService:GetDataStore("ReferralDataStore")
-- Yönlendirmeyi kontrol ve işaret etme fonksiyonu
local function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- Oyuncunun yönlendirme verilerini yükleyin
local success, alreadyReferred = pcall(function()
return referralDataStore:GetAsync(tostring(player.UserId))
end)
if not success then
warn("Oyuncunun yönlendirme verilerini almak başarısız oldu:", player.UserId)
return
end
if referredByPlayerId and referredByPlayerId ~= 0 and not alreadyReferred then
-- Davet eden ve davet edilenin ödüllerini verin
rewardReferrer(referredByPlayerId)
rewardInvitee(player)
-- Oyuncuyu Veri Deposunda yönlendirilmiş olarak işaretleyin
local saveSuccess, err = pcall(function()
referralDataStore:SetAsync(tostring(player.UserId), true)
end)
if not saveSuccess then
warn("Oyuncunun yönlendirme durumunu kaydetmek başarısız oldu:", player.UserId, err)
end
end
end
-- Fonksiyonu oyuncunun katılımına bağlayın
Players.PlayerAdded:Connect(onPlayerAdded)
Sıkça Sorulan Sorular
Hangi oyunlar bu özelliği kullanabilir?
Bu özellik, en az bir gün aktif olan ve Topluluk Standartları ihlal etmeyen herhangi bir oyun için geçerlidir.
Hangi oyuncular yönlendirmelerden yararlanabilir?
Tüm oyuncular yönlendirmeler aracılığıyla ödüller kazanmak için uygundur.
Davet bir oyuncunun Roblox'taki arkadaşlarıyla mı sınırlı?
Hayır, oyuncular Roblox platformunda bağlantı kurmadıkları arkadaşlarına da davet gönderebilirler.
Yönlendirme bağlantısının süresi doluyor mu?
Bağlantının süresi asla dolmaz.
Bu özellikten nasıl en iyi şekilde yararlanabilirim?
Oyuncuları yönlendirmelerden yararlanmaya teşvik etmek için yönlendirme sistemini tanıtmak adına bir oyun içi buton ekleyebilirsiniz. Daha sonra butona açıklayıcı bir başlık verebilir ve buton tıklama olayını arkadaş davet modalına bağlayarak oyuncuların ödül afişini görebilmelerini sağlayabilirsiniz.