-3

总是觉得我在做一些比它必须要复杂得多的事情。我目前正在玩 WoW 插件,Tongues,希望制作一个自定义的方言过滤器——这当然很容易,非常适合新手。在这一点上,我想要完成一件事——感觉其影响远不止于此——这只是新奇事物,但在我完全放弃之前(很多小时尝试不同的事情而没有进展)我希望有人能过来,得到一个廉价的笑声,如果他们理解我的观点,也许可以帮助我解决这个问题。谁知道,发布这个新的无助问题可能会让我最终能够投票!

Tongues.Affect["Drunk"] = {
    ["substitute"] = {
        [1] = merge({
            { ["([%a]+)(%A*)$"] = "%1 ...hic!"},
            Tongues.Affect["Slur"]["substitute"][1]
        });
    };
    ["frequency"]  = 100;
};

这样做只是简单地添加“...hic!” 发送聊天消息();我相信是的。频率部分似乎完全被破坏了,只有游戏中的 GUI 滑块对此很重要。我希望完成的是重新调整它的用途并制作“...hic!” 一个实际的随机词。由于 mod 本身处理了它发生的机会,我认为剩下的就是用 function=X 替换字符串。当然,这完全超出了我的想象,但尽管检查了几个模组的 Lua,但没有什么感觉像“它会适合”。

我能想到的最好的,

Tongues.Affect["TESTAFFECT"] = {
    ["substitute"] = {
        [1] = merge({
            { ["([%a]+)(%A*)$"] = function(b)
            local rand = Math.Random(1,2)
                if (rand == 1) then
                    b = "test1"
                    return b
                elseif (rand == 2) then
                    b = "test2"
                    return b
                end
            end

在错误模块 BugSack 中留下一个光荣无用的消息 - 当然我的尝试是错误的,但没有办法知道如何!

我假设这是足够的信息 - 正如我所说,非常用户友好的模式,无需了解它的实际工作原理(尽管我很乐意在这个“项目”之后准备好研究它)

任何人?无论如何,感谢您抽出宝贵的时间阅读本文。

更新:投反对票,好吧!这也很酷。有点不可预测,但可以肯定。错误如下

15x Tongues\Core\dialects.lua:172: attempt to index field 'Affect' (a nil value)
Tongues\Core\dialects.lua:172: in main chunk

Locals:

dialects.lua 中的 175 是

        Tongues.Affect["Wordcut"]["substitute"][1],

这与我想要完成的事情无关,并且工作得很好。

4

1 回答 1

0

抱歉,我的问题给您带来了不便。我尽我最大的能力问了这个问题,我尽我所能表达的问题被证明是不那么出色的。我提供的示例代码是我可以清楚地表明我正在尝试做什么的唯一方式。

我误解了错误框架,发现在调用错误的无用堆栈后面实际上没有错误,是一个堆栈在破坏它的时候调用语法错误。

无论社区是否认为这无用,我都会分享我的结果。我个人从中学到了很多东西,这是我寻求帮助的唯一动力。

Tongues.Affect["TEST"] = {
        ["substitute"] = {
            [1] = {
                ["([%a]+)"] = function(a)
                    return a
                end;
                ["(%A*)$"] = function(a,b)
                     local rand = math.random(1,2)
                      if (rand == 1) then
                      b = "test1"
                    return b
                    end;
                      if (rand == 2) then
                      b = "test2"
                    return b
                    end;                    
                end;
            };
        };
    };

希望它可以帮助那里的人 - 正如预期的那样,我让它变得比它必须的更复杂。只需“摇晃”符号即可。

于 2015-03-16T19:10:07.647 回答