Un prodotto sviluppatore è un oggetto o un'abilità che un utente può acquistare più di una volta, come la Monetain-experience, le munizioni o le pozioni.
Creazione di prodotti per sviluppatori
Per creare un prodotto per gli sviluppatori:
- Vai a Creazioni e seleziona un'esperienza.
- Vai a Monetizzazione > Prodotti per gli sviluppatori .
- Click Crea un prodotto del team sviluppatore .
- Carica un'immagine per visualizzarla come l'Iconadel prodotto. Assicurati che l'immagine non superi i 512x512 pixel, non includa dettagli importanti al di fuori dei suoi confini circolari e sia in .jpg , .png o .bmp format.
- Inserisci un nome e una descrizione per il prodotto.
- Imposta il prezzo del prodotto in Robux. Il prezzo minimo è 1 Robux, e il prezzo massimo è 1 miliardo di Robux.
- Click Crea prodotto del sviluppatore .
Ottenere ID Produttore di Developer
Per utilizzare scripting, è necessario un ID prodotto sviluppatore. Per ottenere l'ID del prodotto:
Vai a Monetizzazione > Prodotti per gli sviluppatori .
Passa il mouse sul prodotto e fai clic sul menu ⋯ .
Fai clic su Copia ID risorsa per copiare l'ID negli appunti.
Vendere prodotti per sviluppatori
Per implementare e vendere un prodotto per sviluppatori all'interno di un'esperienza, chiama le funzioni MarketplaceService.
Usa GetProductInfo() per recuperare informazioni su un prodotto sviluppatore, come nome e prezzo, e quindi mostrarlo agli utenti. Puoi vendere il prodotto all'interno del tuo' mercato, per esempio. Per i prodotti sviluppatore, il secondo parametro deve essere Enum.InfoType.Product .
local MarketplaceService = game:GetService("MarketplaceService")
-- Rimpiazza l'ID del placeholder con il tuo prodotto developer
local productId = 000000
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- Mostra informazioni sul prodotto
-- Sostituisci le dichiarazioni di stampa con il codice UI per visualizzare il prodotto
print("Developer Product Name: " .. productInfo.Name)
print("Price in Robux: " .. productInfo.PriceInRobux)
print("Description: " .. productInfo.Description)
end
Usa GetDeveloperProductsAsync() per recuperare tutti i prodotti per gli sviluppatori associati alla tua esperienza. Questa funzione restituisce un oggetto Pages che puoi ispezionare e filtrare per costruire cose come un'esperienza store o una lista di prodotti in-experience.
local MarketplaceService = game:GetService("MarketplaceService")
local success, developerProducts = pcall(function()
return MarketplaceService:GetDeveloperProductsAsync()
end)
if success and developerProducts then
local firstPage = developerProducts:GetCurrentPage()
for _, developerProduct in firstPage do
-- Sostituisci la dichiarazione di stampa con il codice UI per visualizzare il prodotto
print(field .. ": " .. value)
end
end
Usa PromptProductPurchase() per richiedere l'acquisto di prodotti all'interno della tua esperienza. Puoi chiamare questa funzione quando un utente esegue azioni come premere un pulsante o parlare con un venditore NPC.
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- Rimpiazza l'ID del placeholder con il tuo prodotto developer
local productId = 000000
local function promptProductPurchase()
local success, errorMessage = pcall(function()
MarketplaceService:PromptProductPurchase(player, productId)
end)
if success then
print("Purchase prompt shown successfully")
end
end
Puoi anche combinare funzioni all'interno di un LocalScript . Ad esempio, puoi creare un elemento UI come un pulsante o un NPC venditore, quindi usare GetProductInfo() per connettere un prodotto esistente al suo elemento
local MarketplaceService = game:GetService("MarketplaceService")
local player = game.Players.LocalPlayer
local button = script.Parent
-- Rimpiazza l'ID del placeholder con il tuo prodotto developer
local productId = 000000
-- Ottiene informazioni sul prodotto quando l'utente fa clic sul pulsante UI
button.MouseButton1Click:Connect(function()
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- Controlla se il prodotto è In Vendita
if productInfo.IsForSale then
print("This is for sale")
-- Richiede l'Acquistadel prodotto
MarketplaceService:PromptProductPurchase(player, productId)
else
-- Notifica il prodotto non è In Vendita
print("This product is not currently for sale.")
end
else
print("Error retrieving product info: " .. tostring(productInfo))
end
end)
Gestione degli acquisti del prodotto
Dopo che un utente acquista un prodotto sviluppatore, devi gestire e registrare la transazione. Per farlo, usa un Script entro ServerScriptService usando la funzione Class.MarketplaceService.ProcessReceipt()|ProcessReceipt() .
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local productFunctions = {}
-- Esempio: l'ID del prodotto 123123 restituisce l'utente alla piena salute
productFunctions[123123] = function(receipt, player)
local character = player.Character
local humanoid = character and character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Health = humanoid.MaxHealth
-- Indica un acquisto di Acquista
return true
end
end
-- Esempio: l'ID del prodotto 456456 assegna 100 monete d'oro all'utente
productFunctions[456456] = function(receipt, player)
local leaderstats = player:FindFirstChild("leaderstats")
local gold = leaderstats and leaderstats:FindFirstChild("Gold")
if gold then
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
-- Ottiene la funzione di gestore associata all'ID del prodotto sviluppatore e tenta di eseguirlo
local handler = productFunctions[productId]
local success, result = pcall(handler, receiptInfo, player)
if success then
-- L'utente ha ricevuto i suoi articoli
-- Restituisce "PurchaseGranted" per confermare la transazione
return Enum.ProductPurchaseDecision.PurchaseGranted
else
warn("Failed to process receipt:", receiptInfo, result)
end
end
-- Gli oggetti dell'utente non potrebbero essere assegnati
-- Restituisce "NotProcessedYet" e riprova la prossima volta che l'utente si unisce all'esperienza
return Enum.ProductPurchaseDecision.NotProcessedYet
end
-- Imposta il Richiama
-- Questo può essere fatto solo una volta da uno script lato server
MarketplaceService.ProcessReceipt = processReceipt
Analitica dei prodotti per gli sviluppatori
Usa l'analisi dei prodotti per gli sviluppatori per analizzare il successo di singoli prodotti, identificare le tendenze e prevedere potenziali guadagni futuri.
Con l'analisi, puoi:
- Visualizza i tuoi prodotti migliori sviluppatori per un periodo di tempo selezionato.
- Mostra fino a otto articoli più venduti su un grafico di serie temporale per analizzare le vendite complessive e le entrate nette.
- Monitora il tuo catalogo e classifica gli articoli per vendite e entrate nette.
Per accedere all'analisi dei prodotti del developer:
- Vai a Creazioni e seleziona un'esperienza.
- Vai a Monetizzazione > Prodotti per gli sviluppatori .
- Seleziona la scheda Analitica .