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

Get Marketplace Service on Click?

Asked by 9 years ago
local ItemID = script.Parent.Parent.ItemID.Value
local player = game.Players.LocalPlayer

function onClick(ItemID) 
m = game:GetService("MarketplaceService"):GetProductInfo(ItemID)
for i,v in pairs(m) do
    script.Parent.Parent.DIS_T.Text = (m['Name'])
    end
end 

onClick(ItemID)
script.Parent.MouseButton1Click:connect(onClick)

I'm using the script to get the name of an AssetID. When I click the button it does not work.

The output says:

18:32:12.670 - MarketplaceService:GetProductInfo() argument is not a valid assetId (supplied assetId was less than 0) 18:32:12.671 - Script 'Players.Player.PlayerGui.Catalog GUI.Frame.Search.GetInfo function', Line 2 - global GetInfo 18:32:12.672 - Script 'Players.Player.PlayerGui.Catalog GUI.Frame.Search.GetInfo function', Line 8 18:32:12.673 - Stack End 18:32:12.674 - MarketplaceService:GetProductInfo() argument is not a valid assetId (supplied assetId was less than 0) 18:32:12.675 - Script 'Players.Player.PlayerGui.Catalog GUI.Frame.Purchase.LocalScript', Line 5 - global onClick 18:32:12.676 - Script 'Players.Player.PlayerGui.Catalog GUI.Frame.Purchase.LocalScript', Line 11 18:32:12.677 - Stack End

This script changes the AssetID

function onClick() 
    wait (1)
    local itemID = script.Parent.Text
    if itemID ~= nil then
        script.Parent.Parent.GetButton.Image = "http://www.roblox.com/Thumbs/Asset.ashx?x=420&y=420&assetId="..itemID
        script.Parent.Parent.ItemID.Value = itemID
    end
end 

script.Parent.MouseButton1Click:connect(onClick)

2 answers

Log in to vote
1
Answered by 9 years ago
function onClick()
local ItemID = script.Parent.Parent.ItemID.Value
local ProductInformation = game:GetService("MarketPlaceService"):GetProductInfo(ItemID)
script.Parent.Parent.DIS_T.Text = ProductInformation.Name
end

script.Parent.MouseButton1Click:connect(onClick)

You were correct in using the marketplace service and getting the product info, however I am unsure as to why you used a loop?

When you GetProductInfo, it returns a table containing lots of information about the product, including the name.

I have also moved the variable declaration for ItemID inside the function, meaning it will refresh the value every time you click the button.

You can see everything that it returns by running this script in the command bar:

local ProductInformation = game:GetService("MarketPlaceService"):GetProductInfo(--[[ID]])

for Index,Value in pairs(ProductInformation) do
    print("['"..Index.."'] = "..Value..";")
end
Ad
Log in to vote
0
Answered by 9 years ago
local ItemID = script.Parent.Parent.ItemID.Value
local player = game.Players.LocalPlayer

function onClick(ItemID) 
m = game:GetService("MarketplaceService"):GetProductInfo(ItemID)
for i,v in pairs(m) do
    script.Parent.Parent.DIS_T.Text = (m['Name'])
    end
end 

onClick(ItemID)
script.Parent.MouseButton1Click:connect(onClick)

'm' is not defined in the script you have provided. Make sure that the variable 'm' is defined.

0
'm' is defined. andreagoingblue 0 — 9y

Answer this question