Invitations de joueur

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

En plus des méthodes de promotion communes pour augmenter votre base de joueurs, vous pouvez implémenter invitations d'invitation directement dans votre expérience, encourageant les joueurs à inviter leurs amis et à augmenter le partieen co-expérience.

Le système d'invitation rapide comporte les éléments suivre:

  • Invités dynamiques — Invitez les joueurs à inviter plusieurs amis d'une liste de sélection ou à inviter un ami spécifique.
  • Données de lancement — Inclure des données de lancement optionnelles qui peuvent être lues via lorsque l'ami invité rejoint.Les cas d'utilisation d'exemple incluent la redirection d'amis invités vers un lieu de coordonnées ou la personnalisation de l'expérience de jointure pour l'invité.
  • Texte personnalisable — Personnalisez le message d'invitation et le message de notification.Par exemple, une invitation pour le joueur peut lire « Demandez à vos amis de rejoindre l'aventure ! » et le message de notification pour l'ami invité(s) peut lire « displayName veut que vous rejoigniez leur aventure dans experienceName ! ».

Vous pouvez également suivre et récompenser les invités et les invités en utilisant le système de récompense d'invitation d'ami Friend Invite Reward System.

Définir les options d'invitation

Par défaut, une invitation pour le joueur affiche un menu de leurs amis avec des boutons Inviter .Pour personnaliser le message d'invitation, cibler un ami spécifique ou inclure les données de lancement dans l'invitation, vous devrez configurer un objet ExperienceInviteOptions avec les propriétés souhaitées.

PropriétéTypeAvertissement
PromptMessagechaîneTexte personnalisé affiché sur l'invite de l'expéditeur pour l'envoi du joueur, par exemple « Demandez à vos amis de rejoindre l'aventure ! » pour une invite d'ami multi-ami, ou « Invitez cet ami à rejoindre l'aventure ! » pour une invite d'ami spécifique.Notez que si votre message d'invitation personnalisé est suffisamment long pour déborder les limites de l'interface utilisateur, il ne sera pas affiché.
InviteUsernuméroRoblox UserId de l'ami spécifique à inviter ; s'il n'est pas fourni, le joueur sera invité à choisir dans une liste d'amis.
InviteMessageIdchaîneID de ressource qui se traduit par un taperde ressource notification .Cette ressource est utilisée pour stocker/localiser une chaîne personnalisée pour la notification d'invitation que reçoivent les amis.Voir Options de notification de réglage pour les détails.
LaunchDatachaîneUtilisé pour définir un paramètre dans Player:GetJoinData() lorsqu'un ami rejoint la notification d'invitation.Maximum de 200 caractères.Voir Inclure les données de lancement pour un exemple d'utilisation.
LocalScript - Inviter plusieurs amis

local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Construire des options d'invitation avec un message de demande personnalisé
local inviteOptions = Instance.new("ExperienceInviteOptions")
inviteOptions.PromptMessage = "Ask your friends to join the adventure!"

Définir les options de notification

Par défaut, la notification d'invitation que les amis reçoivent contient le nom du DisplayName du destinataire, le nom d'utilisateur et le nom de l'expérience.Pour personnaliser le message, vous pouvez créer une ressource Notification sur le tableau de bord du créateur et inclure son ID de ressource comme paramètre de ExperienceInviteOptions .

  1. Semblable à badges, les chaînes de notification sont liées à une expérience spécifique . Localisez la vignette de cette expérience et cliquez dessus.

  2. Dans la colonne de gauche, sous Engagement , cliquez sur Notifications .

  3. Dans la région centrale, cliquez sur le bouton Créer une chaîne de notification .

  4. Remplissez un nom d'identifiant (visible uniquement pour vous) et le texte de notification personnalisé.Notez que vous devez inclure experienceName comme espace réservé pour identifier le nom de l'expérience pour les amis invités, et vous pouvez optionnellement inclure le nom du destinataire DisplayName à travers l'espace réservé displayName .

    Exemples de chaînes de notification :

    • displayName veut que vous rejoigniez leur aventure dans experienceName !
    • displayName vient de terminer la sixième étape de experienceName. Pouvez-vous ?
  5. Lorsque vous êtes prêt, cliquez sur le bouton Créer une chaîne de notification .

  6. Sur la page des notifications, dans la table des notifications, cliquez sur le bouton dans la colonne Actions et sélectionnez Copier l'ID de la ressource .

  7. Dans l'objet ExperienceInviteOptions pour l'invite d'invitation, collez l'ID de la ressource comme valeur de la propriété InviteMessageId.

    LocalScript - Inviter plusieurs amis

    local SocialService = game:GetService("SocialService")
    local Players = game:GetService("Players")
    local player = Players.LocalPlayer
    -- Construire des options d'invitation avec l'ID d'utilisateur d'un ami
    local inviteOptions = Instance.new("ExperienceInviteOptions")
    inviteOptions.InviteMessageId = "ef0e0790-e2e8-4441-9a32-93f3a5783bf1"

Invitation rapide

Pour envoyer une invitation, vous devez d'abord déterminer si le joueur peut envoyer une invitation, car la capacité peut varier en fonction de la plate-forme ou du joueur.Une fois confirmé, vous pouvez afficher l'invite d'invitation au joueur.

  1. Appellez SocialService:CanSendGameInviteAsync(), enveloppé dans un pcall() car c'est un appel réseau asynchrone qui peut échouer occasionnellement.
  2. Si la capacité d'invitation est confirmée, appelez avec l'objet d'options d'invitation facultatif comme deuxième argument.

Une fois invité, le joueur verra une invite sur écran pour inviter plusieurs amis, ou le spécifique ami défini dans l'objet d'options d'invitation invite.Lorsque le joueur clique ensuite sur le bouton Inviter pour un ou plusieurs amis, ces amis recevront une notification contenant le nom du expéditeur, le nom d'utilisateur et le nom de l'expérience.Les notifications peuvent être personnalisées davantage comme indiqué dans Définir les options de notification .

LocalScript - Inviter plusieurs amis

local SocialService = game:GetService("SocialService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Fonction pour vérifier si le joueur peut envoyer une invitation
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

Inclure les données de lancement

Pour améliorer encore la coopération en expérience ou inciter les joueurs à inviter, vous pouvez inclure données de lancement dans une invite, utile pour des scénarios tels que l'itinération d'amis invités à un lieu coordonné ou la personnalisation de l'expérience de jointure pour le destinataire.

  1. Lorsque vous demandez une invitation , incluez un objet avec des données pertinentes qui seront utilisées lorsque l'ami rejoint l'expérience, par exemple l'expéditeur de , l'ID d'un badge à attribuer à l'ami lors de son adhésion, ou une position de coordonnées pour générer l'ami à l'endroit.Si vous devez compiler plusieurs morceaux de données, encodez les données en utilisant JSONEncode() .

    LocalScript - Inviter plusieurs amis

    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)
    -- Construire des options d'invitation avec des données de lancement
    local inviteOptions = Instance.new("ExperienceInviteOptions")
    inviteOptions.LaunchData = launchData
    -- Fonction pour vérifier si le joueur peut envoyer une invitation
    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. Pour les amis entrants qui se joignent via la notification, vérifiez les données de lancement du côté du serveur via Player:GetJoinData() .Si vous encodiez plusieurs morceaux de données en JSON pour l'invite de connexion, rappelez-vous de le décoder avec JSONDecode() .

    Script - Utilisation des données de lancement d'invitation

    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. Si les données de lancement existent, vous pouvez les utiliser pour une grande variété de scénarios de conception, y compris :

    • Générez l'ami arrivant au début d'un parcours d'obstacles difficile que le destinataire vient de terminer, en fonction d'une position de coordonnées transmise par les données de lancement.
    • Vérifiez si l'expéditeur est à l'emplacement, en fonction de son dans les données de lancement, et téléportez le personnage de l'ami près de son personnage.