【问题标题】:Lua error for WoW addon (Tukui)WoW插件的Lua错误(Tukui)
【发布时间】:2013-06-14 20:11:31
【问题描述】:

我没有太多的编码经验,几年前做过一些 C,所以这有帮助,但是 Lua 处理事情的方式有点不同,所以我无法跟踪。

我有时(并非总是)在朋友或公会登录游戏时收到此错误:

Date: 2013-06-14 16:57:57
ID: -1
Error occured in: Global
Count: 4
Message: ..\AddOns\Tukui\scripts\chat.lua line 335:
        attempt to concatenate upvalue 'classColor' (a nil value)
Debug:
  [C]: ?
   Tukui\scripts\chat.lua:335: AddMessage()
   ..\FrameXML\ChatFrame.lua:2755: ChatFrame_MessageEventHandler()
   ..\FrameXML\ChatFrame.lua:2491: ChatFrame_OnEvent()
   ...s\WIM\Libs\LibChatHandler-1.0\LibChatHandler-1.0.lua:281:
   ...s\WIM\Libs\LibChatHandler-1.0\LibChatHandler-1.0.lua:252
   ...s\WIM\Libs\LibChatHandler-1.0\LibChatHandler-1.0.lua:308:
   ...s\WIM\Libs\LibChatHandler-1.0\LibChatHandler-1.0.lua:296

在碰巧能够再次看到那个人的聊天文本之后,我必须重新加载用户界面。

.lua 文件中的第 335 行是这样的:

text = replace(text, "^|Hplayer:(.+)|h%[(.+)%]|h", "|Hplayer:%1|h|cff"..classColor.."%2|r|h")

现在我知道 .. 表示连接功能,但这并没有真正帮助我。

我不知道这是否足够的信息,但如果您需要,我可以发布整个本地功能或其他任何需要的信息。

如果有什么不同,我正在运行 3.3.5a WoW 客户端。

【问题讨论】:

    标签: lua string-concatenation world-of-warcraft


    【解决方案1】:

    您可能正在使用从其他插件以现在确定的方式定义的全局 虽然 (classColor or "") 会让您摆脱错误,但您应该尝试找出为什么有时定义了变量 (classColor) 而有时没有定义。也许它只发生在某些班级?

    【讨论】:

      【解决方案2】:

      一个简单的技巧就是替换

      ..classColor..
      

      ..(classColor or "")..
      

      classColor 没有分配值时,它将选择一个空白字符串。

      【讨论】:

      • 谢谢。我会尝试一下,看看我是否摆脱了错误。只是为了帮助我学习,您能否解释一下这一切的含义: "^|Hplayer:(.+)|h%[(.+)%]|h" 尤其是 | 之间的部分|
      • @Blazzok 这些正在形成 Lua 模式(很可能)。 Here 是 Lua 模式的指南。它们类似于正则表达式字符串。在这里,我们将部分存储在Hplayer:h[] 之后,并可能稍后替换它们;将它们称为%1%2
      • 对于特殊标记,如着色、项目链接、等你可以在那里阅读:wowpedia.org/UI_escape_sequences
      猜你喜欢
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      • 2015-05-18
      • 1970-01-01
      • 2012-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多