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)
点赞
用户11512564
用户11512564

我不知道为什么你现在的脚本不能工作,但是这是一个我使用的很好的脚本(只需将 ID 值更改为你的 id)

本地的 id 值为 6604880

script.Parent.MouseButton1Click:Connect(function()
    game:GetService("MarketplaceService"):PromptGamePassPurchase(game.Players.LocalPlayer,id)
end)
2020-07-18 19:29:46
用户2860267
用户2860267

问题在于这是一个 LocalScript,而 LocalScript 仅能从几个位置执行。根据 文档:

如果 LocalScript 是以下对象之一的子孙,则只会执行 Lua 代码:

  • 玩家背包,例如工具的子对象
  • 玩家角色模型
  • 玩家 PlayerGui
  • 玩家 PlayerScripts。
  • ReplicatedFirst 服务

因此,要解决您的问题,将此 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)
2020-07-19 01:13:56