#variables #lua
#переменные #lua
Вопрос:
У меня есть скрипт для игрового сервера, и я застрял в каком-то дерьме, которое, похоже, легко решить
Существует переменная, которая получает содержимое динамически на основе действий пользователя, поэтому мы назовем эту переменную: example и присвоим некоторое случайное значение
local example = Potato
Затем у меня есть функция, которая отправляет сообщение на веб-узел discord
SendWebhookMessage(varNAME, "Message content")
Где varname
— переменная, содержащая ссылку на веб-хук.
Я хочу использовать содержимое переменной example для генерации имени переменной, например
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,"```prologn[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```")
Ответ №1:
Вы ищете таблицы, которые позволяют хранить множество различных именованных значений в одной переменной.
local webhook_bau -- make a variable
-- create a table with 4 entries, put it in the variable
webhook_bau = {fac1="", fac2="", fac3="", fac4=""}
-- if you want to start with an empty table, use {} instead
-- change one of them based on the name
webhook_bau[name] = "something"
-- use one of the entries based on the name
SendWebhookMessage(webhook_bau[name], "whatever you want to send")
Записи таблицы «волшебным образом» появляются, когда вы их используете, вам не нужно сначала их создавать. Если вы получите доступ к записи, которая не существует, вы прочитаете значение nil
. Вы также можете удалить запись, вставив nil
запись.
Ответ №2:
В приведенном вами примере у вас есть:
SendWebhookMessage(webhook_bau_..name,"```prologn[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
), поэтому я предполагаю, что у вас есть это в другом месте в вашей программе, если нет, это также будет равно нулю, поэтому просто убедитесь, что это тоже где-то установлено.