WoW API / Lua - Math.Random(#,#)

时间:2015-03-16 11:47:51

标签: lua world-of-warcraft

总觉得我制作的东西比以前复杂得多。我现在正在玩WoW插件,舌头,希望制作一个定制的方言过滤器 - 这当然很容易,非常友好。在这一点上,有一件事我想要完成 - 其中一些东西感觉远远超出了这个 - 这只是新奇的,但在我完全放弃之前(很多时间尝试不同的事情而没有进展)我希望有人可以过来,得到一个便宜的笑声,如果他们理解我的观点,也许可以帮助我解决这个问题。谁知道,发布这些新的无助问题可能会让我最终能够投票!

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

这样做只需添加" ... hic!" to sendchatmessage();我相信它是。频率部分似乎完全被破坏,只有游戏中的GUI滑块对此很重要。我希望能够实现的目的是重新利用这一点,然后制造出......#hic!"一个实际的随机单词。由于mod本身处理它发生的可能性,我认为剩下的就是用函数= X替换字符串。当然,它强烈地超越了我的头脑,但是尽管检查了几个mod的Lua,但没有任何感觉和#34;它会适合。"

我能想到的最好的,

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

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

我认为这是足够的信息 - 正如我所说,非常用户友好的mod,无需了解它是如何工作的(虽然我很乐意在此之后准备好研究它"项目& #34)

任何?无论如何,感谢您抽出时间阅读这篇文章。

更新:Downvotes,好的!这太酷了。有点不可预测,但肯定。错误如下

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

Locals:

175 in dialects.lua是

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

这与我试图完成的事情无关,而且效果很好。

1 个答案:

答案 0 :(得分: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;
            };
        };
    };

希望它可以帮助那些人 - 正如预期的那样,我让它变得比以前更加复杂。只是"摇晃"符号就是所需要的。