如何使用参数来更改我的 profile.Data 正在访问的数据?

问题描述 投票:0回答:1
local expType = tostring(type1)
        local expTypeStat = expType:gsub("Exp", "")
        local profileDataExpType = "profile.Data."..expType

在这里,我想更改从配置文件中提取的数据。数据取决于为我正在创建的函数提供的 expType。

例如,type1 类似于 StrengthExp。但是在添加强度时,我想在同一函数中引用强度统计数据本身,因此我使用 gsub 函数从 StrengthExp 中删除 Exp。

要访问玩家的统计数据和经验值,我需要使用 profile.Data.Strength 或 profile.Data.StrengthExp 例如。

if profileDataExpType <= math.round(100 * (expTypeStat / 2)) then

这是函数的一部分,我想使用 profileDataExpType 和 expTypeStat 变量作为代码而不是字符串。

是否有不同的方法来访问正确的 profile.Data,具体取决于为函数提供的 expType?或者有没有办法将该字符串转换为代码?我在网上或文档中找不到任何内容

我尝试编写这样的代码,用 expType 替换数据的实际名称:

if profile.Data.expType <= math.round(100 * (profile.Data.expType/ 2)) then

我在将 expType 转换为字符串之前尝试过此操作,认为它会使用参数 expType 而不是在 profile.Data 中查找名为“expType”的数据

string variables lua type-conversion roblox
1个回答
0
投票

我设法使用 rawget 全局解决了这个问题。这是我分配所需变量的方法:

local expType = tostring(xpType)
local expTypeStat = expType:gsub("Exp", "")
local profileDataExpType = rawget(profile.Data, expTypeStat)
local profileDataExp = rawget(profile.Data, expType)

rawget 获取 profile.Data 表的值并返回你给它的索引值,在本例中为 expTypeStat 和 expType

© www.soinside.com 2019 - 2024. All rights reserved.