使用变量内容生成变量名称

我有一个游戏服务器脚本,我被一些看起来很容易解决的狗屎卡住了

存在一个变量,该变量根据用户操作动态接收内容,因此我们将命名此变量为:示例,并分配一些随机值

local example = Potato

然后我有一个函数将消息发送到Discord Webhook

SendWebhookMessage(varNAME,"Message content"

其中 varname 是包含 Webhook 链接的变量。

我想使用示例变量的内容生成变量名,例如

webhook_ds_example

因此在这种情况下它将是

webhook_ds_potato

希望你们能理解并帮助解决

local menu = { name = "Baú" }
local cb_take = function(idname)
local citem = chest.items[idname]
local amount = vRP.prompt(source,"Quantidade:""")

amount = parseInt(amount)

if amount ≥ 0 and amount ≤ citem.amount then
    local new_weight = vRP.getInventoryWeight(user_id)+vRP.getItemWeight(idname)*amount

if new_weight ≤ vRP.getInventoryMaxWeight(user_id) then
    citem.amount = citem.amount - amount

local temp = os.date"%x  %X")
vRP.logs("savedata/bau.txt","Bau: "..name.."        [ID]: "..user_id.." /"..temp.." [FUNÇÃO]: Retirar / [ITEM]: "..idname.." / [QTD]: "..amount)
local webhook_bau_fac1 = ""
local webhook_bau_fac2 = ""
local webhook_bau_fac3 = ""
local webhook_bau_fac4 = ""

SendWebhookMessage(webhook_bau_..name,"```prolog\n[ID]: "..user_id.." "..identity.name.." "..identity.firstname.." \n[GUARDOU]: "..vRP.format(parseInt(amount)).." "..vRP.itemNameList(itemName).." \n[BAU]: "..chestName.." "..os.date"\n[Data]: %d/%m/%Y [Hora]: %H:%M:%S").." \r```")
点赞
用户106104
用户106104

你正在寻找 _表格_,它允许你在 一个 变量中存储很多不同的命名值。

local webhook_bau -- 声明变量

-- 创建一个拥有4个条目的表格,并将其存入变量中
webhook_bau = {fac1="", fac2="", fac3="", fac4=""}

-- 如果你想要从一个空的表格开始,可以用 {} 来代替

-- 根据名称更改其中一个条目的值
webhook_bau[name] = "something"

-- 基于名称使用其中一个条目的值
SendWebhookMessage(webhook_bau[name], "whatever you want to send")

当你使用表格条目时,它们会“神奇般地”出现,你不需要先创建它们。如果你访问一个不存在的条目,你将会得到值为 nil 的结果。你也可以在条目中放入 nil 来删除一个条目。

2020-09-16 17:51:59
用户14305351
用户14305351

在你提供的例子中,你有:

SendWebhookMessage(webhook_bau_..name,"```prolog\n[ID]: "..user_id.." "..identity.name.." "..identity.firstname.." \n[GUARDOU]: "..vRP.format(parseInt(amount)).." "..vRP.itemNameList(itemName).." \n[BAU]: "..chestName.." "..os.date("\n[Data]: %d/%m/%Y [Hora]: %H:%M:%S").." \r```")

你忘记在webhook_bau_周围加引号,这将导致尝试连接无值变量时出错。

我也没有看到name被设置的地方(只有menu.name),所以我假设你在程序的其他地方已经设置了它,如果没有,那么它也会是nil,所以请确保它也在其他地方被设置。

2020-09-19 14:54:17