gpt4 book ai didi

random - 从列表中选择随机短语

转载 作者:行者123 更新时间:2023-12-02 06:51:29 27 4
gpt4 key购买 nike

我一直在研究一个 .lua 文件,它使用以下行传递随机短语:

SendChatMessage(GetRandomArgument("text1", "text2", "text3", "text4"), "RAID") 

我的问题是我有很多短语,而且一行代码确实很长。

有什么办法可以保持

text1
text2
text3
text3

在代码中其他位置(或外部)的列表中,并从主代码中调用随机值。将使维护文本选项列表变得更容易。

最佳答案

对于最多几百个元素的列表,则可以使用以下方法:

messages = {    "text1",    "text2",    "text3",    "text4",    -- ...}SendChatMessage(GetRandomArgument(unpack(messages)), "RAID")

对于较长的列表,您最好将 GetRandomArgument 替换为 GetRandomElement,它将采用单个表作为其参数并从表中返回随机条目。

编辑: Olle's answer展示了一种可能实现类似 GetRandomElement 的方法。但它在每次调用时都使用了 table.getn,这在 Lua 5.1 中已被弃用,并且它的替代品 (table.maxn) 的运行时成本与数组中元素的数量成正比。表。

只有当使用的表的数组部分可能缺少元素时,才需要函数table.maxn。然而,在这种情况下,有一个项目列表可供选择,可能没有理由需要允许列表中存在漏洞。如果您需要在运行时编辑列表,则始终可以使用 table.remove 来删除项目,因为它也会缩小间隙。

在保证文本数组中没有间隙的情况下,您可以像这样实现 GetRandomElement:

function GetRandomElement(a)    return a[math.random(#a)]end

这样你就可以像这样发送消息:

SendChatMessage(GetRandomElement(messages), "RAID")

关于random - 从列表中选择随机短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1396870/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com