I am confused on how I could use robux to add money to my players leaderstat using OOP. I tried before hand and it was successful but had some errors. Here is my attempt at getting it to work.
local PlayerManager = require(script.Parent.Parent.Modules.PlayerManager)
local Market = game:GetService('MarketplaceService')
local Players = game:GetService('Players')
local Robux = {}
Robux.__index = Robux
function Robux.new(tycoon, part)
local self = setmetatable({}, Robux)
self.Tycoon = tycoon
self.Instance = part
self.DevTable = {self.Instance:GetAttribute('ID'), function(player) return self.Instance:GetAttribute('Cost') end}
return self
end
function Robux:Init()
self.Prompt = self:CreatePrompt()
self.Prompt.Triggered:Connect(function(...)
self:Press(...)
end)
self:EstablishProduct()
end
function Robux:CreatePrompt()
local prompt = Instance.new("ProximityPrompt")
prompt.HoldDuration = 0.5
prompt.ActionText = self.Instance:GetAttribute("Display")
prompt.ObjectText = "R$" .. self.Instance:GetAttribute("Cost")
prompt.Parent = self.Instance
return prompt
end
function Robux:Press(player)
self:PromptPurchase(player)
end
function Robux:PromptPurchase(player)
local id = self.Instance:GetAttribute('ID')
if player == self.Tycoon.Owner then
Market:PromptProductPurchase(player, id)
end
end
function Robux:EstablishProduct()
Market.ProcessReceipt = function(receiptInfo)
local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
if player and receiptInfo then
local sucess = false
local devProductId, func = self.DevTable[1], self.DevTable[2]
if devProductId ~= nil and func ~= nil and type(func) == 'function' then
if receiptInfo.ProductId == devProductId then
local funcitonFinished = func(player)
if funcitonFinished ~= true then
warn('Something happened while trying to purchase item!')
sucess = false
else
sucess = true
end
end
end
end
end
end
return Robux
My issue is how to actually give the players what I want. For example, some cash or gems. Any help is appreciated.