PolicyService

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

No creable
Servicio
No replicado

PolicyService ayuda a consultar información sobre el cumplimiento de la política para jugadores alrededor del mundo según el rango de edad, la ubicación y el introducirde plataforma.

Resumen

Métodos

Propiedades

Métodos

CanViewBrandProjectAsync

Proporciona

Determina si un usuario puede ver los recursos del proyecto de marca dentro de tu experiencia.Este método te permite trabajar con marcas para mostrar solo recursos comerciales a audiencias compatibles con las marcas.

Para usar CanViewBrandProjectAsync , debe usar una ID de proyecto de marca proporcionada por Roblox. Para solicitar una ID de proyecto de marca, contáctenos .

Debes llamar a este método en un script del lado del servidor y envolverlo en un pcall() .

Parámetros

player: Player

El objeto Player que estás tratando de mostrar al proyecto de marca.

Valor predeterminado: ""
brandProjectId: string

El ID del proyecto de marca proporcionado por Roblox. Representa todos los recursos asociados con un proyecto de marca.

Valor predeterminado: ""

Devuelve

Si el proyecto de marca se puede mostrar al usuario específico o no.

Muestras de código

You must call CanViewBrandProjectAsync from the server-side and then fire an event on the client. Calling this method from the client-side returns an error.

Server-side code sample

-- In ServerScriptService
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PolicyService = game:GetService("PolicyService")
-- Pre-created RemoteEvent in ReplicatedStorage
local RemoteEvent = ReplicatedStorage:WaitForChild("RemoteEvent")
local brandedAsset = ReplicatedStorage:WaitForChild("BrandedAsset")
local defaultAsset = Instance.new("Part")
Players.PlayerAdded:Connect(function(player)
-- PolicyService:CanViewBrandProjectAsync can only be called from the Server
local success, canView = pcall(function()
return PolicyService:CanViewBrandProjectAsync(player, "BRP-0123456789")
end)
if success and canView then
RemoteEvent:FireClient(player, brandedAsset)
else
RemoteEvent:FireClient(player, defaultAsset)
end
end)
Client-side code sample

-- In StarterPlayerScripts
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Pre-created RemoteEvent in ReplicatedStorage
local RemoteEvent = ReplicatedStorage:WaitForChild("RemoteEvent")
RemoteEvent.OnClientEvent:Connect(function(partToLoad)
local clonedPart = partToLoad:Clone()
clonedPart.Parent = workspace
end)

GetPolicyInfoForPlayerAsync

Proporciona

Devuelve información de política de devolución sobre un jugador basada en la ubicación geográfica, el grupo de edad y la plataforma. La estructura del diccionario devuelto es la siguiente:


<th>Tipo</th>
<th>Requerido para</th>
<th>Descripción</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>Se permiten anuncios</code></td>
<td>Booleana</td>
<td>Cualquier experiencia que incluya <a href="../../../production/monetization/immersive-ads.md">anuncios inmersivos</a>.</td>
<td>Cuando <code>verdadero</code>, el jugador podría ver anuncios inmersivos dentro de una experiencia.</td>
</tr>
<tr>
<td><code>Están restringidos los artículos pagados aleatorios</code></td>
<td>Booleana</td>
<td>Cualquier experiencia que tenga artículos aleatorios pagados.</td>
<td>Cuando <code>verdadero</code>, el jugador no puede <b>interactuar</b> con generadores de artículos aleatorios pagados, ya sea a través de la moneda en experiencia comprada con Robux o Robux directamente.</td>
</tr>
<tr>
<td><code>Referencias de enlace externo permitidas</code></td>
<td>Matriz</td>
<td>Cualquier experiencia que haga referencia a enlaces externos.</td>
<td>Una lista de referencias de enlaces externos como enlaces de redes sociales, manijas o iconografía que un jugador está permitido ver.Los valores posibles incluyen <code>"Discord"</code> , <code>"Facebook"</code> , <code>"Twitch"</code> , <code>"YouTube"</code> , <code>"X"</code> , <code>"GitHub"</code> , y <code>"Guilded"</code> .</td>
</tr>
<tr>
<td><code>Se permite compartir contenido</code></td>
<td>Booleana</td>
<td>Cualquier experiencia que permita a los usuarios compartir contenido fuera de la plataforma.</td>
<td>Cuando <code>verdadero</code>, al jugador se le permite compartir contenido usando API que abren flujos de compartición externa como <code>Class.CaptureService:PromptShareCapture()|PromptShareCapture()</code> .</td>
</tr>
<tr>
<td><code>Es elegible para comprar suscripción</code></td>
<td>Booleana</td>
<td>Cualquier experiencia que quiera vender suscripciones.</td>
<td>Cuando <code>verdadero</code>, el jugador es elegible para comprar suscripciones dentro de una experiencia.</td>
</tr>
<tr>
<td><code>IsPaidItemTradingAllowed</code></td>
<td>Booleana</td>
<td>Cualquier experiencia que permita a los usuarios comprar artículos virtuales con los que pueden intercambiar con otros jugadores.</td>
<td>Cuando <code>verdadero</code>, el jugador puede intercambiar artículos virtuales que compró con moneda de experiencia o Robux.</td>
</tr>
<tr>
<td><code>Está sujeto a las políticas de China</code></td>
<td>Booleana</td>
<td>Cualquier experiencia que está disponible en China.</td>
<td>Cuando <code>verdadero</code>, una experiencia debe hacer cumplir los cambios de conformidad. Vea <a href="https://devforum.roblox.com/t/new-programs-available-roblox-china-licensed-to-operate/1023361">este post del foro</a> para más información.</td>
</tr>
</tbody>
Nombre
Excepciones

Al igual que cualquier llamada asincrónica, este método debe ser envuelto en pcall() y manejado correctamente el error.Una lista completa de mensajes de error posibles y sus razones es:


<th>Razón</th>
</tr>
</thead>
<tbody>
<tr>
<td>La instancia no era un jugador</td>
<td>El parámetro <code>jugador</code> no es una instancia <code>Class.Player</code>.</td>
</tr>
<tr>
<td>Jugadores no encontrados</td>
<td>Error interno que falta el objeto <code>Class.Players</code>.</td>
</tr>
<tr>
<td>Este método no se puede llamar en el cliente para un jugador no local</td>
<td>Este método no se puede llamar en el cliente para una clase no local <code>Class.Player</code>.</td>
</tr>
<tr>
<td>GetPolicyInfoForPlayerAsync se llama demasiadas veces</td>
<td>Error interno que <code>GetPolicyInfoForPlayerAsync()</code> se llama más de 100 (configuración actual) veces antes de que volveruna respuesta HTTP.</td>
</tr>
</tbody>
Mensaje

Vea también LocalizationService:GetCountryRegionForPlayerAsync() que devuelve una cadena de código de país/región de acuerdo con la geolocalización del cliente del jugador.

Parámetros

player: Instance

El Player para obtener información de política.

Valor predeterminado: ""

Devuelve

Un diccionario que contiene información sobre la información de política del jugador solicitado; véase arriba para la estructura del diccionario.

Muestras de código

This code sample gets policy information for the local player and warns if they cannot interact with paid random item generators.

Getting Policy Information for a Player

local PolicyService = game:GetService("PolicyService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local success, result = pcall(function()
return PolicyService:GetPolicyInfoForPlayerAsync(player)
end)
if not success then
warn("PolicyService error: " .. result)
elseif result.ArePaidRandomItemsRestricted then
warn("Player cannot interact with paid random item generators")
end

Eventos