Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How to use PromptBundlePurchaseFinished correctly?

Asked by 3 years ago

I have two buttons, one that says “Purchase Gamepass!” and the other one is the actual Gamepass button that does stuff. I’m trying to make it so that the buttons immediately change after a player purchases the gamepass., and doesn’t have to rejoin the game for it to appear.

Is there a better way to do this? I kinda don’t know what I’m doing here.

local MarketplaceService = game:GetService("MarketplaceService")

local MainFrame = script.Parent.Frame
local player = game.Players.LocalPlayer

local GP_cr = MainFrame.customRadio_purchase
local GP_bb = MainFrame.boomBox_purchase

local cr_bt = MainFrame.boomBox
local bb_bt = MainFrame.customRadio

local ID_cr = 14536083 -- custom radio gamepass 10$
local ID_bb = 14537695 -- boombox gamepass 500$

-- BOOMBOX GAMEPASS
GP_bb.MouseButton1Down:Connect(function()
    local sucess, message = pcall(function()
        hasPass4 = MarketplaceService:UserOwnsGamePassAsync(player.UserId, ID_bb)
    end)

    if hasPass4 == true then
        print("Player already has BOOMBOX gamepass")
        GP_bb.visible = false
        bb_bt.visible = true
    else
        MarketplaceService:PromptGamePassPurchase(player, ID_bb)
    end
end)

MarketplaceService.PromptBundlePurchaseFinished:Connect(function(player, ID_bb, was_purchased)
        GP_bb.visible = false
        bb_bt.visible = true
end)

-- CUSTOM RADIO GAMEPASS
GP_cr.MouseButton1Down:Connect(function()
    local sucess, message = pcall(function()
        hasPass5 = MarketplaceService:UserOwnsGamePassAsync(player.UserId, ID_cr)
    end)

    if hasPass5 == true then
        print("Player already has CUSTOM RADIO gamepass")
        GP_cr.visible = false
        cr_bt.visible = true
    else
        MarketplaceService:PromptGamePassPurchase(player, ID_cr)
    end
end)

MarketplaceService.PromptBundlePurchaseFinished:Connect(function(player, ID_cr, was_purchased)
    GP_cr.visible = false
    cr_bt.visible = true
end)

Any help is greatly appreciated, thanks!

Answer this question