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)