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



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

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

这样做只是简单地添加"...hic!" 到 sendchatmessage();我相信是的。频率部分似乎完全损坏,只有游戏中的 GUI 滑块对此很重要。我希望完成的是重新利用它并使"......嗨!"一个实际的随机词。由于 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

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

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

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

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

15x TonguesCoredialects.lua:172: attempt to index field 'Affect' (a nil value)
TonguesCoredialects.lua:172: in main chunk
Locals:

方言中的175.lua是

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

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

很抱歉,我的问题很不方便。我尽我所能地提出这个问题,并尽我所能地表达这个问题,结果证明不那么出色。我提供的示例代码是我能够清楚地展示我想要做什么的唯一方法。

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

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

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;
            };
        };
    };

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

相关内容

  • 没有找到相关文章

最新更新