친구 초대 보상 시스템

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.


친구 추천 시스템은 기존 플레이어가 새로운 플레이어를 경험에 가져와 플레이어 유지율과 전반적인 참여도를 높이도록 권장합니다.플레이어는 플레이어 초대 프롬프트에서 참조 링크에 액세스하고 공유하거나 기본 경험 초대 메뉴에서 직접 액세스할 수 있습니다.

개발자로서 이러한 공유 가능한 참조 링크를 사용하여 다음을 수행할 수 있습니다.

  • 다른 플레이어를 경험에 성공적으로 초대한 플레이어를 추적합니다.
  • 다른 플레이어의 추천 링크 초대를 사용하여 경험에 참여한 플레이어를 추적합니다.
  • 초대자와 초대자 모두에게 보상을 만들고 배포합니다.
친구 초대 팝업과 친구 추천 보상 배너가 2025년 초에 사용 가능해집니다.

친구 추천 시스템을 구현하려면 추천 이벤트를 설정하고추천 보상을 만듭니다. 속성은 모든 유형의 초대에 자동으로 채워지며 참조하는 플레이어의 사용자 ID에 액세스할 수 있습니다.그런 다음 Players.PlayerAdded 이벤트에서 이 데이터에 액세스하여 초대자를 식별하고 초대자와 초대자에게 보상을 제공할 수 있습니다.


function onPlayerAdded(player)
local referredByPlayerId = player:GetJoinData().ReferredByPlayerId
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
referrerEvent:FireClient(player, referredByPlayerId)
end
Players.PlayerAdded:Connect(onPlayerAdded)

참조 이벤트 설정

참조 이벤트를 설정하려면:

  1. 클라이언트와 커뮤니케이션할 때 참조가 받을 때 원격 이벤트를 생성하기 위해 RemoteEventReplicatedStorage에 설정하여 설정합니다.
  2. ReferredByPlayerId를 사용하여 초대자의 사용자 ID를 검색하여 플레이어 참여를 추적하고 서버 사이드 스크립트에서 참조 논리를 처리하세요. 이벤트 Players.PlayerAdded 동안.

local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- 참조 처리를 위해 원격 이벤트 생성 또는 가져오기 Create or get the RemoteEvent for handling referrals
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- 플레이어가 참여할 때 트리거되는 함수
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- 플레이어가 추천을 통해 초대되었는지 확인
if referredByPlayerId and referredByPlayerId ~= 0 then
-- 참조 이벤트를 클라이언트에 발사하여 초대자의 ID 전달
referrerEvent:FireClient(player, referredByPlayerId)
-- 초대자와 초대자를 보상하는 추가 논리를 여기에 추가할 수 있습니다
-- 예를 들어, rewardReferrer(referredByPlayerId)
-- 예를 들어, rewardInvitee(플레이어)
end
end
-- 함수를 PlayerAdded 이벤트에 연결
Players.PlayerAdded:Connect(onPlayerAdded)

추천 보상 부여

참여를 유도하기 위해 초대자와 초대자 모두에게 보상을 제공합니다.예를 들어, 친구가 경험에 참여할 때 초대자에게 배지 또는 경험 내 통화를 제공하고, 초대자에게 참여 연결통해 경험에 참여하는 보상을 제공할 수 있습니다.


local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- 참조 처리를 위해 원격 이벤트 생성 또는 가져오기 Create or get the RemoteEvent for handling referrals
local referrerEvent: RemoteEvent = ReplicatedStorage:FindFirstChild("ReferralReceivedEvent")
-- 플레이어가 참여할 때 트리거되는 함수
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- 플레이어가 추천을 통해 초대되었는지 확인
if referredByPlayerId and referredByPlayerId ~= 0 then
-- 참조 이벤트를 클라이언트에 발사하여 초대자의 ID 전달
referrerEvent:FireClient(player, referredByPlayerId)
-- 초대자 보상
function rewardReferrer(referrerId)
local referrerPlayer = Players:GetPlayerByUserId(referrerId)
if referrerPlayer then
-- 초대자에게 보상 부여
-- 예: referrerPlayer.leaderstats.Coins.Value += 100
end
end
-- 초대자 보상
function rewardInvitee(player)
-- 초대자에게 보상 부여
-- 예: 플레이어.leaderstats.WelcomeBonus.Value += 50
end
end
end
-- 함수를 PlayerAdded 이벤트에 연결
Players.PlayerAdded:Connect(onPlayerAdded)

학대 방지 관리

플레이어가 친구 추천 시스템을 악용하지 못하도록 안전장치를 구현할 수 있습니다.

  • 초대를 추적하고 한 번만 보상을 받도록 하기 위해 일회성 보상을 제공합니다.
  • 초대자가 다른 추천을 제출하기 전에 쿨다운 기간을 소개합니다.
  • 특이한 활동을 모니터링하고 사용자 금지나 보상 취소와 같은 교정 조치를 적용합니다.

-- 이미 추천된 플레이어를 추적하는 테이블
local referredPlayers = {}
function onPlayerAdded(player)
local joinData = player:GetJoinData()
local referredByPlayerId = joinData.ReferredByPlayerId
-- 플레이어가 초대되었는지 확인하고 이미 추천을 사용하지 않았는지 확인
if referredByPlayerId and referredByPlayerId ~= 0 and not referredPlayers[player.UserId] then
-- 플레이어를 참조로 표시
referredPlayers[player.UserId] = true
-- 보상 초대자와 초대자
rewardReferrer(referredByPlayerId)
rewardInvitee(player)
end
end