PtokaX forum

Archive => Archived 5.0 boards => Finished Scripts => Topic started by: Briksons on 19 May, 2005, 22:47:03

Title: change over to LUA5
Post by: Briksons on 19 May, 2005, 22:47:03
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
Title:
Post by: jiten on 19 May, 2005, 22:52:15
This script has already been converted to Lua 5.
Search the forum for "phrase-o-rama" and you'll find it ;)

Cheers