在表中暂存用户数据-Lua
所以我有一个想法,但在最初的想法似乎是一个坏主意。我想将脚本生命周期中的UserData存储在一个外部表中(由require调用) 我正在寻找实现这一点的方法,但我认为在全局环境中存储用户数据可能会很麻烦。有人能指出这种方法的缺陷吗?还是提供更好的建议 外部(集中式)功能-在脚本执行期间使用“require”加载:在表中暂存用户数据-Lua,lua,lua-table,Lua,Lua Table,所以我有一个想法,但在最初的想法似乎是一个坏主意。我想将脚本生命周期中的UserData存储在一个外部表中(由require调用) 我正在寻找实现这一点的方法,但我认为在全局环境中存储用户数据可能会很麻烦。有人能指出这种方法的缺陷吗?还是提供更好的建议 外部(集中式)功能-在脚本执行期间使用“require”加载: --Chat.lua --Location: Scripts/Globals/Custom/Functions/Chat Convo = 0xD Special = 0x1
--Chat.lua
--Location: Scripts/Globals/Custom/Functions/Chat
Convo = 0xD
Special = 0x1F
TempUserData = {}
TempTargetData = {}
function Show (Message, Display, Color, VAR1, VAR2, VAR3, VAR4, VAR5)
local User = TempUserData[1]
local Name = Display and TempTargetData[1]..": " or " "
Color = Color or Convo
VAR1 = VAR1 or nil
VAR2 = VAR2 or nil
VAR3 = VAR3 or nil
VAR4 = VAR4 or nil
VAR5 = VAR6 or nil
if (VAR1) then
User:PrintToUser(string.format(Name..Message, VAR1, VAR2, VAR3, VAR4, VAR5), Color)
else
User:PrintToUser(Name..Message, Color)
end
end
主脚本:
---------------------------------------------------------------
package.loaded["Scripts/Globals/Custom/Functions/Chat"] = nil
require("Scripts/Globals/Custom/Functions/Chat")
---------------------------------------------------------------
local function foo (VAR1)
Show("Message")
Show("Message",true,Special,VAR1)
--Stuff
end
local function bar (VAR2)
Show("Message")
Show("Message",true,Special,VAR2)
--Stuff
end
function onTrigger (User, VAR1, VAR2, VAR3) --Start of script
table.insert(TempUserData, User)
table.insert(TempTargetData, "System")
--Stuff
end
我想这样做的原因是:
User:PrintToUser(string.format("Message %s, %s", VAR1, VAR2), 0xD)
它可以更干净:
Show("Message %s, %s", true, Convo, VAR1, VAR2) -- With variables
或
关于这一点,我有两个问题:
Show("Message",true) -- Display "System" with default color
Show("Message") -- Don't display "System", still with default color