For lister opp til et par hundre elementer, så det følgende vil fungere:
meldinger = {
"Tekst1",
"Text2",
"Text3",
"Text4",
- ...
}
SendChatMessage (GetRandomArgument (Pakk ut (meldinger)), "RAID")
For lengre lister, vil du være godt tjent til å erstatte GetRandomArgument
med GetRandomElement
som ville ta en enkelt tabell som sitt argument og returnerer en tilfeldig oppføring fra bordet.
Edit: Olle svar viser én måte at noe sånt GetRandomElement
kan implementeres. Men det benyttes table.getn
på alle anrop som er foreldet i Lua 5.1, og dens erstatning ( table.maxn
) har en kjøretids kostnad som er proporsjonal med antallet elementer i tabellen.
Funksjonen table.maxn
er bare nødvendig hvis bordet er i bruk kan ha manglende elementer i sin rekke del. Men i dette tilfelle en liste over elementer å velge mellom, er det sannsynlig å være noen grunn til å trenge å tillate hull i listen. Hvis du trenger å redigere listen under kjøring, kan du alltids bruke table.remove
til å fjerne et element siden det vil også lukke gapet.
Med en garanti for ingen hull i rekken av teksten, så kan du iverksette GetRandomElement
slik:
funksjon GetRandomElement (a)
returnere en [math.random (#A)]
slutt
Slik at du sender meldingen som dette:
SendChatMessage (GetRandomElement (meldinger), "RAID")