Produtos do desenvolvedor

Um Produto do Desenvolvedor é um item ou habilidade que um usuário pode comprar mais de uma vez, como uma moeda que só funciona dentro da experiência, munições e poções.

Criando Produtos do Desenvolvedor

Ao criar uma imagem para usar em seu Produto do Desenvolvedor, considere os seguintes requisitos:

  • Use um modelo de 512×512 pixels.
  • Salve a imagem em um dos seguintes formatos: .jpg, .png ou .bmp .
  • Não inclua detalhes importantes fora dos limites, pois o processo de upload corta a imagem final do Produto do Desenvolvedor para o formato de um círculo.

Para criar um novo Produto do Desenvolvedor:

  1. Navegue até o Painel de Criações.

  2. Clique na experiência para a qual deseja criar um Produto do Desenvolvedor. A Visão Geral da experiência é exibida.

  3. Clique no botão CRIAR UM PRODUTO DO DESENVOLVEDOR. Aparece a página Criar um Produto do Desenvolvedor.

  4. Na navegação horizontal, selecione PRODUTOS DO DESENVOLVEDOR. São exibidos todos os Produtos do Desenvolvedor para a experiência.

  5. Clique no botão CRIAR UM PRODUTO DO DESENVOLVEDOR. O Produto do Desenvolvedor é mostrado na seção de Produtos do Desenvolvedor do desenvolvedor na página itens associados.

  6. Clique no botão CARREGAR IMAGEM. Será exibido um navegador de arquivos.

  7. Selecione a imagem que deseja exibir como ícone e, em seguida, clique no botão Abrir.

  8. Preencha os seguintes campos:

    • Nome: um título para seu Produto do Desenvolvedor.
    • Descrição: uma descrição sobre o que um usuário deveria esperar quando compra um Produto do Desenvolvedor.
    • Preço em Robux: a quantidade de Robux que você deseja cobrar dos usuários pelo Produto do Desenvolvedor.
  9. Clique no botão CRIAR UM PRODUTO DO DESENVOLVEDOR. Do lado esquerdo da tela, selecione itens associados. A página de** itens associados** é exibida.

Encontrando IDs de Produto do Desenvolvedor

Um ID de Produto do Desenvolvedor é o identificador único de um Produto do Desenvolvedor. Você precisa desse ID quando está fazendo scripting de emblemas.

Para encontrar um ID de Produto do Desenvolvedor:

  1. Navegue até a seção de Produto do Desenvolvedor de uma página de itens associados de uma experiência.

  2. Passe o mouse sobre a miniatura de um Produto do Desenvolvedor e clique no botão . Um menu contextual é exibido.

  3. Selecione copiar ID do ativo. O ID de Produto do Desenvolvedor é copiado para sua área de transferência.

Scripting de Produtos do Desenvolvedor do desenvolvedor

Você precisa usar scripting para implementar efeitos de Produto do Desenvolvedor nas suas experiências.

Exemplos comuns de uso de scripting em Produtos do Desenvolvedor do desenvolvedor incluem:

Incentivando a compra

Você pode incentivar um usuário a comprar um dos seus Produtos do Desenvolvedor de desenvolvedor com o Class. MarketplaceService:PromptProductPurchase()|PromptProductPurchase()método de Class. Dependendo das necessidades da sua experiência, você pode recorrer a essa função <code>promptPurchase() em algumas situações, como quando o usuário aperta um botão ou quando seu personagem fala com um NPC comerciante.


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players. LocalPlayer
local productId = 0000000 -- Change this to your developer product ID
-- Function to prompt purchase of the developer product
local function promptPurchase()
MarketplaceService:PromptProductPurchase(player, productId)
end

Lidando com as compras

Depois que um usuário compra um Produto do Desenvolvedor, é sua responsabilidade cuidar dessa transação e registrá-la. Você pode fazer isso através de um Class. Scriptdentro de Class. ServerScriptService, usando o Class. MarketplaceService. ProcessReceiptcallback.


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local productFunctions = {}
-- ProductId 123123 brings the user back to full health
productFunctions[123123] = function(receipt, player)
if player. Character and player. Character:FindFirstChild("Humanoid") then
player. Character. Humanoid. Health = player. Character. Humanoid. MaxHealth
-- Indicate a successful purchase
return true
end
end
-- ProductId 456456 awards 100 gold to the user
productFunctions[456456] = function(receipt, player)
local stats = player:FindFirstChild("leaderstats")
local gold = stats and stats:FindFirstChild("Gold")
if gold then
gold. Value = gold. Value + 100
return true
end
end
local function processReceipt(receiptInfo)
local userId = receiptInfo. PlayerId
local productId = receiptInfo. ProductId
local player = Players:GetPlayerByUserId(userId)
if player then
-- Get the handler function associated with the developer product ID and attempt to run it
local handler = productFunctions[productId]
local success, result = pcall(handler, receiptInfo, player)
if success then
-- The user has received their benefits!
-- return PurchaseGranted to confirm the transaction.
return Enum. ProductPurchaseDecision. PurchaseGranted
else
warn("Failed to process receipt:", receiptInfo, result)
end
end
-- the user's benefits couldn't be awarded.
-- return NotProcessedYet to try again next time the user joins.
return Enum. ProductPurchaseDecision. NotProcessedYet
end
-- Set the callback; this can only be done once by one script on the server!
MarketplaceService. ProcessReceipt = processReceipt

Obtendo informações

Para obter informações sobre um Produto do Desenvolvedor específico, como o preço, nome ou imagem, usa a Class. MarketplaceService:GetProductInfo()função com um segundo argumento de `Enum. InfoType. Por exemplo:


local MarketplaceService = game:GetService("MarketplaceService")
local productId = 000000 -- Change this to your developer product ID
local productInfo = MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success then
-- Use productInfo here!
end

Você também pode conseguir esses dados para todos os Produtos do Desenvolvedor do desenvolvedor em uma experiência usando o método Class. MarketplaceService:GetDeveloperProductsAsync()|GetDeveloperProductsAsync() . Isso retorna um objeto Class. Pages que você pode inspecionar e filtrar, para construir coisas como uma loja dentro da experiência ou uma interface gráfica de lista de Produtos do Desenvolvedor.

Por exemplo, o seguinte script imprime o nome, preço, ID, descrição e ID de ativo para todos os Produtos do Desenvolvedor do desenvolvedor em uma experiência:


local MarketplaceService = game:GetService("MarketplaceService")
local success, developerProducts = pcall(function()
return MarketplaceService:GetDeveloperProductsAsync():GetCurrentPage()
end)
if developerProducts then
for _, developerProduct in pairs(developerProducts) do
for field, value in pairs(developerProduct) do
print(field .. ": " .. value)
end
print(" ")
end
end