HI all please help change this to LUA5
--// Phrase-O-Rama Script
--// By Chaggydawg
--// Version 0.3b
phrases = {}
phraselists = {
"Pilseeta vai pagasts",
"Auto",
"Upes",
"Valstis",
"Eiropas pilsetas",
"Augi",
"Dziivnieki",
"Alkoholiskie dzeerieni",
"Muuzika",
"Brendi"
}
topscores = {}
timer = 5000
BotName = "IQ"
answer = ""
remainscore = 0
gameon = "off"
phrasenumbers = {}
startingphrase = 1
function Main()
SetTimer(timer)
doreadscores()
doreadphrases()
donewphrase()
if gameon == "on" then StartTimer() end
end
function DataArrival(curUser, Data)
s,e,cmd = strfind(Data,"%b<>%s(%S+)")
s,e,scored = strfind(Data,"%b<>%s%S+%s+(%d+)")
s,e,mess = strfind(Data, "%b<>%s+(.*)")
if cmd == "+start|" then
dostartgame(curUser)
elseif cmd == "+stop|" then
dostopgame(curUser)
elseif cmd == "+punkti|" then
displayscores(curUser)
elseif cmd == "+help|" then
dohelp(curUser)
elseif cmd =="+skip|" then
doskipphrase(curUser)
return 1
elseif cmd == "+manipunkti|" then
domyscore(curUser)
end
---------
if mess ~= nil and answer ~= "?" then
mess = gsub(mess,"%A","")
ants = gsub(answer,"%A","")
if strfind(strlower(mess),strlower(ants)) ~= nil then
addtoscore(curUser,remainscore)
answer, startingphrase = donewphrase()
end
end
end
function OnTimer()
doreveal()
end
function donewphrase()
doreadphrases()
answer = phrases[random(1,getn(phrases))]
startingphrase = 1
remainscore = random(1,3)
e,f = gsub(answer,"%a","")
timer = 80 / f * 1000
SetTimer(timer)
return answer,startingphrase
end
function doreveal()
if startingphrase == 1 then testing = gsub(answer,"%a","?"); startingphrase = 0; SendToAll(BotName,"Pa katru neatklaato uzmineeto burtu uzmineetaajs sanjems "..remainscore.." punktus un pa visu vaardu uzmineeto + 5 punktus ."); end
t,p = gsub(testing,"?","")
if p < 2 then
SendToAll(BotName,"Pareiz vaards bija: "..answer)
donewphrase()
else
curnumber = burp()
testing = strsub(testing,1,curnumber-1)..strsub(answer,curnumber,curnumber)..strsub(testing,curnumber+1,strlen(testing))
SendToAll(BotName,">>Kategorija: "..phrasename.." "..testing)
end
end
function burp()
curnumber = random(1,strlen(answer))
if strsub(testing,curnumber,curnumber) ~= "?" then burp() end
return curnumber
end
function dostartgame(curUser)
if gameon == "off" then
gameon = "on"
donewphrase()
StartTimer()
SendToAll(BotName, curUser.sName.." Uzsaak speeli IQ << ")
end
end
function dostopgame(curUser)
if gameon == "on" then
gameon = "off"
SendToAll(BotName, curUser.sName.." Izsleedz speeli :(")
SendToAll(BotName,"Pareiz vaards bija: "..answer)
StopTimer()
answer = "?"
remainscore = 0
dowritescores()
end
end
function displayscores(curUser)
curUser:SendData(BotName,"-----------------------------------------------")
curUser:SendData(BotName,"TOP 100 useru saraksts [Top 100 IQ Player")
curUser:SendData(BotName,"-----------------------------------------------")
sort(topscores, function(a,b) return a[1]>b[1] end)
total = 100
if getn(topscores) < total then total = getn(topscores) end
for i = 1,total,1 do
curUser:SendData(BotName,"["..i.."] "..topscores[2].." - "..topscores[1])
end
curUser:SendData(BotName,"-----------------------------------------------")
end
function addtoscore(curUser,remainscore)
dude = getn(topscores)+1
oldscore = 0
for i = 1,getn(topscores),1 do
if topscores[2] == curUser.sName then
dude = i
oldscore = topscores[1]
break
end
end
a,b = gsub(testing,"?",".")
topscores[dude] = {(b*remainscore)+oldscore+5,curUser.sName}
dowritescores()
sort(topscores, function(a,b) return a[1]>b[1] end)
for i = 1,getn(topscores),1 do
if topscores[2] == curUser.sName then
SendToAll(BotName,curUser.sName.." Uzmineeja vaardu: "..answer)
SendToAll(BotName,curUser.sName.." Vinjs(a) dabon "..((b*remainscore)+5).." punktus! ")
SendToAll(BotName,"["..i.."] "..topscores[2].." - "..topscores[1])
end
end
end
function dowritescores()
writeto("por/porscores.txt","w")
write("1&"..topscores[1][2].."$"..topscores[1][1])
writeto()
for i = 2,getn(topscores),1 do
appendto("por/porscores.txt")
write("\n"..(i).."&"..topscores[2].."$"..topscores[1])
writeto()
end
end
function doreadscores()
readfrom("por/porscores.txt")
A=1
while 1 do
line = read()
if line == nil then break end
s,e,rank,unick,score = strfind(line,"(%S+)&(%S+)$(%S+)")
topscores[tonumber(A)] = {tonumber(score),unick}
A = A+1
end
A = nil
end
function doreadphrases()
phrases = {}
phrasename = phraselists[random(1,getn(phraselists))]
readfrom("por/"..strlower(phrasename)..".txt")
t = 1
while 1 do
line = read()
if line == nil then break end
phrases[t] = line
t = t+1
end
end
function dohelp(curUser)
curUser:SendData(BotName, "+start saakt speeli [start the game]")
curUser:SendData(BotName, "+stop apstaadinaat speeli")
curUser:SendData(BotName, "+punkti paraada top 30 sarakstu [Shows top 30 players]")
curUser:SendData(BotName, "+manipunkti paraada juusu top sarakstu vietu un punktus ")
curUser:SendData(BotName, "+help paraada komandas[Shows commands]")
if curUser.bOperator then
curUser:SendData(BotName, "+skip Skips the Current Phrase")
end
end
function domyscore(curUser)
sort(topscores, function(a,b) return a[1]>b[1] end)
for i = 1,getn(topscores),1 do
if topscores[2] == curUser.sName then
curUser:SendData(BotName,"juusu vieta top sarakstaa ["..i.."] "..topscores[2].." - "..topscores[1])
break
end
end
end
function doskipphrase(curUser)
if curUser.bOperator then
SendToAll(BotName,curUser.sName.." Jautaajums tiek izlaists. ")
SendToAll(BotName,"Neviens neieguust punktus. ")
SendToAll(BotName,"Pareizs vaards bija: "..answer)
donewphrase()
end
end
This script has already been converted to Lua 5.
Search the forum for "phrase-o-rama" and you'll find it ;)
Cheers