change over to LUA5
 

News:

29 December 2022 - PtokaX 0.5.3.0 (20th anniversary edition) released...
11 April 2017 - PtokaX 0.5.2.2 released...
8 April 2015 Anti child and anti pedo pr0n scripts are not allowed anymore on this board!
28 September 2015 - PtokaX 0.5.2.1 for Windows 10 IoT released...
3 September 2015 - PtokaX 0.5.2.1 released...
16 August 2015 - PtokaX 0.5.2.0 released...
1 August 2015 - Crowdfunding for ADC protocol support in PtokaX ended. Clearly nobody want ADC support...
30 June 2015 - PtokaX 0.5.1.0 released...
30 April 2015 Crowdfunding for ADC protocol support in PtokaX
26 April 2015 New support hub!
20 February 2015 - PtokaX 0.5.0.3 released...
13 April 2014 - PtokaX 0.5.0.2 released...
23 March 2014 - PtokaX testing version 0.5.0.1 build 454 is available.
04 March 2014 - PtokaX.org sites were temporary down because of DDOS attacks and issues with hosting service provider.

Main Menu

change over to LUA5

Started by Briksons, 19 May, 2005, 22:47:03

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Briksons

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

jiten

This script has already been converted to Lua 5.
Search the forum for "phrase-o-rama" and you'll find it ;)

Cheers

SMF spam blocked by CleanTalk