如何使用变量代替层次结构中的实际部分

我不确定如何提出这个问题,但我想在声明层次结构中子对象的位置时使用变量。 这是在 ServerScriptService 中的代码:

- 忽略的代码
    game.Players.userName.leaderstats.Robux.Value += receiptInfo.CurrencySpent

- 忽略的代码

userName 是一个全局变量,而不是层次结构中的子对象。 我想使用它来声明我要查找哪个子对象。

在 StarterPlayer.StarterPlayerScripts 中,我有一个包含全局变量的本地脚本:

- 忽略的代码

local player = game.Players.LocalPlayer

- 忽略的代码

userName = game.Players.LocalPlayer.Name
点赞
用户14208240
用户14208240

全局变量只在该脚本环境中定义。_G表可用于存储变量并在所有本地脚本中共享。模块脚本也是一样的。

我假设你拥有的服务器代码用于处理开发产品交易。你应该注意的是,在购买时,购买者的userid会传递给receiptinfo表。以下是一个示例:

local function processReceipt(receiptInfo)

    -- 下面的行获取玩家实例
    local player = game:GetService("Players"):GetPlayerByUserId(receiptInfo.PlayerId)
    if player then
        -- 当交易成功时需要执行的操作
        return Enum.ProductPurchaseDecision.PurchaseGranted
    else
        game:GetService("ReplicatedStorage").PurchaseStatus:FireClient(player, false, nil, nil)
        return Enum.ProductPurchaseDecision.NotProcessedYet
    end
end

game:GetService("MarketplaceService").ProcessReceipt = processReceipt

如果需要进一步帮助,请告诉我。

2020-12-24 13:02:34