Roblox Studio
>File
>Game Settings
>Monetization
>Developer Products
>Create
Roblox Studio
創建開發者產品
Empty
Empty
Empty
- 更新信息
- 保存
- 再次進入開發者產品檢查更新後的產品 ID
- 複製 ID 到剪貼板
Roblox Studio
發起購買
Empty
Empty
Empty
local productId = YOUR_PRODUCT_ID
local MarketplaceService = game:GetService("MarketplaceService")
game.Workspace:WaitForChild("ATM"):WaitForChild("SurfaceGui"):WaitForChild("Purchase").Activated:Connect(
function()
MarketplaceService:PromptProductPurchase(player, YOUR_PRODUCT_ID)
end
)
Roblox 購買回應
Empty
Empty
Empty
local productId = YOUR_PRODUCT_ID
local MarketplaceService = game:GetService("MarketplaceService")
… processReceipt Method
MarketplaceService.ProcessReceipt = processReceipt
處理回應
Empty
Empty
Empty
local function processReceipt(receiptInfo)
-- Find the player who made the purchase in the server
local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
if not player then
-- The player probably left the game
-- If they come back, the callback will be called again
return Enum.ProductPurchaseDecision.NotProcessedYet
end
-- Look up handler function from 'productFunctions' table above
local handler = productFunctions[receiptInfo.ProductId]
-- Call the handler function and catch any errors
local success, result = pcall(handler, receiptInfo, player)
if not success or not result then
warn("Error occurred while processing a product purchase")
print("ProductId:", receiptInfo.ProductId)
print("Player:", player)
return Enum.ProductPurchaseDecision.NotProcessedYet
end
return Enum.ProductPurchaseDecision.PurchaseGranted
end
成功購買的邏輯
Empty
Empty
Empty
local productId = YOUR_PRODUCT_ID
local productFunctions = {}
productFunctions[YOUR_PRODUCT_ID] = function(receipt, player)
-- examle of udpates for successful purchase
local d = players_holder[player.Name]
d["coin"] = d["coin"] + 200000
fire_player_event_local(player, d)
return true
end