为什么我在 roblox 中的 jump boost gamepass 不起作用?

Why is my jump boost gamepass in roblox not working?

所以我决定在 roblox 中制作一个跳跃提升游戏通行证,但是当我测试并且我有我的游戏通行证时它不起作用。

这是我的代码

local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local PlayerUserID = Players.LocalPlayer.UserId

print(PlayerUserID)
Players.LocalPlayer.CharacterAdded:Connect(function(char)
    print(MarketplaceService:UserOwnsGamePassAsync(PlayerUserID, 21723718))
    if MarketplaceService:UserOwnsGamePassAsync(PlayerUserID, 21723718) then
        char.Humanoid.UseJumpPower = true
        char.Humanoid.JumpPower = 100
    end
end)

它是 ServerScriptService 上的服务器脚本

我看不到脚本的任何输出。

您不能在服务器脚本中使用 LocalPlayer。您将不得不通过其他方法获取播放器。

查看 the Roblox gamepass guide

您的服务器脚本以不存在的对象为目标。 game.Players.LocalPlayer 仅在本地脚本中定义。

要解决这个问题,请使用 Players.PlayerAdded

改用此代码

local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(plr)
    plr.CharacterAdded:Connect(function(char)
        if MarketplaceService:UserOwnsGamePassAsync(PlayerUserID, 21723718) then
            char.Humanoid.UseJumpPower = true
            char.Humanoid.JumpPower = 100
        end
    end)
end)