Roblox Lua - Gamepass 提示脚本未执行
Roblox Lua - Gamepass Prompt Script not Executing
我正在制作游戏。我正在尝试制作一个脚本,当玩家单击 SurfaceGUI 上的按钮时会提示玩家购买游戏通行证。但是,该功能没有执行,我不知道为什么。
如果有帮助,它在 LocalScript 中。
script.Parent.MouseButton1Click:Connect(function()
local mps = game:GetService("MarketplaceService")
local player = game.Players.LocalPlayer
print("vars")
mps:PromptGamePassPurchase(player, 10772382)
print("prompt")
end)
我不知道为什么您当前的脚本不起作用,但是这是我使用的脚本,效果很好(只需将 ID 值更改为您的 ID
本地 id = 6604880
script.Parent.MouseButton1Click:Connect(function()
game:GetService("MarketplaceService"):PromptGamePassPurchase(game.Players.LocalPlayer,id)
end)
问题是这是一个 LocalScript,而 LocalScript 只从几个位置执行。根据 the docs :
A LocalScript will only run Lua code if it is a descendant of one of the following objects:
- A Player’s Backpack, such as a child of a Tool
- A Player’s character model
- A Player’s PlayerGui
- A Player’s PlayerScripts.
- The ReplicatedFirst service
因此,要解决您的问题,请将此 LocalScript
转换为 Script
,并侦听玩家加入以访问玩家对象。
local mps = game:GetService("MarketplaceService")
local ps = game:GetService("Players")
ps.PlayerAdded:Connect(function(player)
script.Parent.MouseButton1Click:Connect(function()
print("vars")
mps:PromptGamePassPurchase(player, 10772382)
print("prompt")
end)
end)
我正在制作游戏。我正在尝试制作一个脚本,当玩家单击 SurfaceGUI 上的按钮时会提示玩家购买游戏通行证。但是,该功能没有执行,我不知道为什么。
如果有帮助,它在 LocalScript 中。
script.Parent.MouseButton1Click:Connect(function()
local mps = game:GetService("MarketplaceService")
local player = game.Players.LocalPlayer
print("vars")
mps:PromptGamePassPurchase(player, 10772382)
print("prompt")
end)
我不知道为什么您当前的脚本不起作用,但是这是我使用的脚本,效果很好(只需将 ID 值更改为您的 ID 本地 id = 6604880
script.Parent.MouseButton1Click:Connect(function()
game:GetService("MarketplaceService"):PromptGamePassPurchase(game.Players.LocalPlayer,id)
end)
问题是这是一个 LocalScript,而 LocalScript 只从几个位置执行。根据 the docs :
A LocalScript will only run Lua code if it is a descendant of one of the following objects:
- A Player’s Backpack, such as a child of a Tool
- A Player’s character model
- A Player’s PlayerGui
- A Player’s PlayerScripts.
- The ReplicatedFirst service
因此,要解决您的问题,请将此 LocalScript
转换为 Script
,并侦听玩家加入以访问玩家对象。
local mps = game:GetService("MarketplaceService")
local ps = game:GetService("Players")
ps.PlayerAdded:Connect(function(player)
script.Parent.MouseButton1Click:Connect(function()
print("vars")
mps:PromptGamePassPurchase(player, 10772382)
print("prompt")
end)
end)