Я хочу сделать динамический стол с двумя частями информации. В качестве ключа будет использоваться SteamID игрока, предоставляемый как строка, и значение должно быть числом.Табличные ключи и значения в Lua - не знаю, как
должно выглядеть table = { "ExampleSteamID" = 3, "ExampleSteamID2" = 4 }
я нашел что-то вроде table.insert(table, { key = x, value = z})
, но это не сработало.
gameevent.Listen("player_connect")
local function AdminBotOnJoinCheck(data)
local ply = data.networkid -- SteamID of joining player
local tableisempty = true -- some random stuff
for k, tableply in pairs(adminbot_players) do --checking for players already writed to table, maybe need fix
if not ply == tableply then
--need code here
MsgC("\nAdminBot: Player table updated | ", ply, "\n")
end
tableisempty = false --clear table = table break - just dont execute code.
end
if tableisempty == true then
--here same code
MsgC("\nAdminBot: Player table updated | ", ply, "\n")
end
if file.Exists("adminbotplayers.txt", "DATA") == true and adminbot_teamkills_use_file == true then -- Random stuff for file writing
local adminbot_players_json = util.TableToJSON(adminbot_players)
file.Write("adminbotplayers.txt", adminbot_players_json)
end
end
Я хотел бы призвать вас читать [Программирование в Lua] (https://www.lua.org/pil/contents.html), спереди назад - глава 2.5 будет очень полезна для вас. Изучите также справочное руководство, особенно разделы [таблицы] (https://www.lua.org/manual/5.1/manual.html#2.5.7) и их [манипуляции] (https: // www. lua.org/manual/5.1/manual.html#5.5). – Oka
Я не могу использовать «:: =» в скрипте для сервера gmod:/ – plsbx
':: =' является частью [BNF] (https://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form), нотация, используемая для _describe_ синтаксиса Lua, то есть «определяется как». '=' используется для назначения на языке. – Oka