【问题标题】:Roblox Lua - Gamepass Prompt Script not ExecutingRoblox Lua - 游戏通行证提示脚本未执行
【发布时间】:2020-11-08 07:28:01
【问题描述】:

我正在制作游戏。我正在尝试制作一个脚本,当玩家单击 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)

【问题讨论】:

  • 此 LocalScript 是否位于工作区中的某个位置?我假设因为它是 SurfaceGui 的子对象,所以它位于工作区中的某个位置。

标签: lua roblox


【解决方案1】:

我不知道为什么您当前的脚本不起作用但是,这是我使用的一个运行良好的脚本(只需将 ID 值更改为您的 id 本地 id = 6604880

script.Parent.MouseButton1Click:Connect(function()
    game:GetService("MarketplaceService"):PromptGamePassPurchase(game.Players.LocalPlayer,id)
end)

【讨论】:

  • 问题是脚本根本没有执行,而不是 id 不正确。您共享的代码在功能上等同于有问题的代码。
  • Kylaaa 你错了我有本地脚本执行他遇到问题的代码,它可以正常工作。 ://
  • 抱歉,我并不是要暗示这段代码不起作用,只是在他们将代码放在游戏中的地方不起作用,这可能是在工作区的某个地方。如果您的 PlayerGui 中某处有此代码,我完全希望它可以工作。但是考虑到你的代码和他们的完全一样,这不是正确的解决方案。
【解决方案2】:

问题在于这是一个 LocalScript,而 LocalScripts 只能从几个位置执行。根据the docs

如果 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)

【讨论】:

    猜你喜欢
    • 2022-01-18
    • 2021-06-19
    • 2020-10-17
    • 2019-11-08
    • 2016-03-31
    • 2021-07-20
    • 2020-03-12
    • 1970-01-01
    • 2020-07-02
    相关资源
    最近更新 更多