開發者產品 是一種用戶可以購買多次的物品或能力,例如體驗貨幣、彈藥或藥水。
創建開發者產品
要創建一個開發者產品:
- 前往 創作 並選擇體驗。
- 前往 金錢化 > 開發者產品 。
- 按一下 創建一個開發者產品 。
- 上傳一張圖像,為產品圖示顯示。請確保圖像不超過512x512像素,並且不包含在其圓形邊界外的重要細節,並且位於.jpg、.png或.bmp格式。
- 輸入產品的名稱和說明。
- 將產品價格設置為 Robux。最低價格為 1 Robux,最高價格為 10 億 Robux。
- 按一下 創建開發者產品 。
取得開發者產品 ID
要使用指令碼,您需要一個開發者產品 ID。若要取得產品 ID:
前往 金錢化 > 開發者產品 。
將鼠標擺放在產品上,然後按一下 ⋯ 選單。
按一下 複製資產 ID 以複製資產到您的剪輯板。
出售開發者產品
要在體驗中實現並出售開發者產品,請呼叫 MarketplaceService 函數。
使用 GetProductInfo() 來取回開發者產品的資訊,例如名稱和價格,然後將該產品顯示給用戶。您可以在體驗的市場中出售產品,例如。對於開發者產品,第二個參數必須為 Enum.InfoType.Product 。
local MarketplaceService = game:GetService("MarketplaceService")
-- 將標準化資料ID 替換為您的開發者產品ID
local productId = 000000
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- 顯示產品資訊
-- 將打印語句變更為 UI 代碼以顯示產品
print("Developer Product Name: " .. productInfo.Name)
print("Price in Robux: " .. productInfo.PriceInRobux)
print("Description: " .. productInfo.Description)
end
使用 GetDeveloperProductsAsync() 來取回您與體驗相關的所有開發者產品。此功能會返回一個 Pages 對象,您可以檢查並過濾它來建造體驗內的商店或產品列表GUI。
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
-- 將打印說明變更為 UI 代碼以顯示產品
print(field .. ": " .. value)
end
end
使用 PromptProductPurchase() 提示產品購買內容。當使用者執行按鈕或與供應商 NPC 聊天時,您可以呼叫此函數。
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- 將標準化資料ID 替換為您的開發者產品ID
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
您還可以在 LocalScript 內結合功能。例如,您可以創建一個按鈕或供應商 NPC 的 UI 元素,然後使用 GetProductInfo() 連接現有的開發者產品到該元素,檢
local MarketplaceService = game:GetService("MarketplaceService")
local player = game.Players.LocalPlayer
local button = script.Parent
-- 將標準化資料ID 替換為您的開發者產品ID
local productId = 000000
-- 獲得用戶點擊 UI 按鈕時的產品資訊
button.MouseButton1Click:Connect(function()
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- 檢查產品是否待買賣
if productInfo.IsForSale then
print("This is for sale")
-- 提示產品購買
MarketplaceService:PromptProductPurchase(player, productId)
else
-- 通知產品不是待買賣
print("This product is not currently for sale.")
end
else
print("Error retrieving product info: " .. tostring(productInfo))
end
end)
處理開發者產品購買
一旦用戶購買開發者產品,您必須處理並記錄交易。要這麼做,您必須使用 Script 內的 ServerScriptService 使用 ProcessReceipt() 功能。
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local productFunctions = {}
-- 範例:產品ID123123帶回用戶回滿健康狀態
productFunctions[123123] = function(receipt, player)
local character = player.Character
local humanoid = character and character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Health = humanoid.MaxHealth
-- 指示成功購買
return true
end
end
-- 範例: 產品 ID 456456 給予 100 金幣給使用者
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
-- 獲得與開發者產品 ID 關聯的處理器函數,並嘗試執行它
local handler = productFunctions[productId]
local success, result = pcall(handler, receiptInfo, player)
if success then
-- 用戶已收到其物品
-- 返回 "PurchaseGranted" 以確認交易
return Enum.ProductPurchaseDecision.PurchaseGranted
else
warn("Failed to process receipt:", receiptInfo, result)
end
end
-- 無法給予使用者的物品
-- 返回 "NotProcessedYet" 並在用戶下次加入體驗時再次嘗試
return Enum.ProductPurchaseDecision.NotProcessedYet
end
-- 設定回回調
-- 這只能由一個伺服器側的指令碼執行
MarketplaceService.ProcessReceipt = processReceipt
開發者產品分析
使用開發者產品分析來分析個別產品的成功,識別趨勢,並預測未來的潛在收益。
有了分析,您可以:
- 查看您在指定時間範圍內最高開發者產品。
- 在時間序列圖表上展示最多八個銷量最高的項目,分析總銷售和純收入。
- 監視您的目錄並按銷售和純收入排序項目。
要取得開發者產品分析:
- 前往 創作 並選擇體驗。
- 前往 金錢化 > 開發者產品 。
- 選擇 分析 標籤。