PtokaX forum

Archive => Archived 5.0 boards => Request for scripts => Topic started by: Bud on 04 April, 2005, 22:44:57

Title: Someone pls .. TrickerBot2.lua to lua5
Post by: Bud on 04 April, 2005, 22:44:57
-- TrickerBot2.lua, created by Ptaczek Dec-24, 2002
-- Just see how to implement the NMDC TriggerBot in LUA :)   
-- changes
-- Feb-24, 2003, v2.0 Modification for DataArrival return value.
-- Tiny changes by VidFamne with lot of help by Piglja
-- VidFamne added Pigljas time-function, and some more trigs
-- A bug-fix by VidFamne, hopefully. And added some more triggs ;)
-- A new bug-fix ( for the "!me-command" ) by VidFamne, added ( 09.04.2003 ).
-- Added MatrixX On/Off function. Just type +quiet in mainchat to stop the Bot,
-- and +talk to start the Bot again. By VidFamne ( 05.05.2003 )
-- Bug-fix by [AF]Mike
-- Modified to read (and write) trigs from file. OpiumVolage ( 12.06.2003 )
-- Added trigger when no chat. OpiumVolage ( 27.06.2003 )
-- Translated to spanish by Xander(Ozz)

botname = "[DC]"

trigall=1
TrigFile="Trigers.ini"

function Main()
frmHub:RegBot(botname)
trigs = parseINI(TrigFile)
-- writeINI(TrigFile, trigs)
SetTimer(1800000) -- every 30 minutes
StartTimer()
end

function parseINI(fName)

  readfrom(fName)

  local line = read()
  local table = {}
  while line do
    local s, e, sec = strfind(line, "^%[(.*)%]$")
    if s then
      section = sec
      table[section] = {}
    else
      assert(section, "parseINI: format problem with "..fName)
      tinsert(table[section], line)
    end
    line = read()
  end

  readfrom()
  return table
 
end -- function parseINI(fName)

function writeINI(fName, table)

  assert(table, "writeINI: table not found")

  local fHandle = openfile(fName, "w")

  if fHandle then
    for id,entry in table do
      write(fHandle, "["..id.."]\n")
      for i=1,getn(entry) do
        write(fHandle, entry.."\n")
      end
    end -- for id,entry
    closefile(fHandle)
  end -- if fHandle

end -- function writeINI

function DataArrival(curUser, data)

status=strsub(data,1,strlen(data)-1)
-- parse the command
s,e,cmd = strfind( status, "%b<>%s+(%S+)" )

if (cmd=="+quiet") then
trigall=0
SendToAll(botname, " Hmf, Okidoki ik zal weer stil zijn :(( ")
return 1
elseif (cmd=="+talk") then
trigall=1
SendToAll(botname, " Okay, mag ik nu weer wat zeggen? :-)")
return 1
end

       
   if( strsub(data, 1, 1) == "<" ) then
      -- data arrived, reseting timer
      StopTimer()
      StartTimer()
      -- get the msg only using regular expression
      s,e,msg = strfind(data, "%b<>([%a ]+)")                                        
      -- look in the table
                if trigall==1 then
      for key, value in trigs do
                for key2, value2 in value do
                     
   if( strfind( strlower(msg), key) ) then
                 else break  
   end

        if( strfind( strlower(msg), "!me") ) then
                  t="**"..curUser.sName
                  data=gsub (msg, "!me", t, 1 )
   end

      SendToAll( data ) -- send the original data
                   
      answer, x = gsub(value[random(1,getn(value))], "%b[]", curUser.sName)
      SendToAll( botname, answer ) -- send bot's answer

   return 1; -- tell the hub we have processed the data
   end
   end  
   end
end
end

function OnTimer()
   SendToAll( botname, trigs.inactive[random(1,getn(trigs.inactive))])
end

Much appreciated if someone cld make this one for lua5
oh and ... sometimes the bot replies with a blank!?
:)

Title:
Post by: jiten on 04 April, 2005, 22:47:41
Have a look here (http://board.univ-angers.fr/thread.php?threadid=3982&boardid=26&sid=a0cfe07a02965c284324bc7ed0d75024)  and then just change the triggers according to ur needs.

Best regards.
Title:
Post by: Bud on 04 April, 2005, 22:54:11
gonna try that one ... in the last post there

see how it goes .. :)

many thanks

Bud
Title:
Post by: jiten on 05 April, 2005, 10:34:27
yw  :D