i added some additional useless settings
full version with all triggs (http://www.pestypest.info/ptokax/trigger.lua)
-- 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
-- pest made some additional settings
-- !trigger on -- start triggerbot
-- !trigger off -- Stop triggerbot
botname = "Weedy"
desc_tag = "Active <++ V:0.670,M:A,H:1/0/6,S:1>"
connection = "Cable"
email = "weedy@telecom.net.et"
shared = "54055400476" -- in bytes
opicak = 0 -- key icon/OP 0=no key
trigall = 1 -- default mode 1=enabled/0=disabled
trigs = {
["shut up"]={
"OK, [CURUSER] ",
"blah blah blah!"
},
weed={
"I'm high mate",
"Wanna weed? i have full bag..."
}
}
function Main()
if opicak == 1 then
frmHub:RegBot(botname)
end
end
function OnExit()
frmHub:UnregBot(botname)
end
function ChatArrival(curUser, data)
status=string.sub(data,1,string.len(data)-1)
-- parse the command
s,e,cmd = string.find( status, "%b<>%s+(%S+)" )
if curUser.bOperator == 1 then
if (cmd == "!trigger") then
if string.find(status, "on") then
SendToAll(botname, "sup, i'm back again :-)")
if opicak == 1 then
frmHub:RegBot(botname)
curUser:SendData(botmyinfo)
else
SendToAll(bothello)
SendToAll(botmyinfo)
end
trigall=1
elseif string.find(status, "off") then
SendToAll(botname, " Hmmm, Okidoki I must go now.. :( ")
frmHub:UnregBot(botname)
trigall=0
end
return 1
end
end
-- get the msg only using regular expression
s,e,msg = string.find(data, "%b<>([%a ]+)")
-- look in the table
if trigall==1 then
for key, value in trigs do
for key2, value2 in value do
if( string.find( string.lower(msg), key) ) then
else break
end
if( string.find( string.lower(msg), "!me") ) then
t="**"..curUser.sName
data=string.gsub (msg, "!me", t, 1 )
end
SendToAll( data ) -- send the original data
SetTimer(1800)
StartTimer()
answer, x = string.gsub(value[math.random(1,table.getn(value))], "%b[]", curUser.sName)
return 1; -- tell the hub we have processed the data
end
end
end
end
function OnTimer()
SendToAll( botname, answer ) -- send bot's answer
StopTimer()
end
bothello = "$Hello"
botmyinfo = "$MyINFO $ALL "..botname.." "..desc_tag.."$ $"..connection..string.char(5).."$"..email.." $"..shared.."$"
function NewUserConnected(curUser)
if trigall == 1 then
if opicak == 1 then
curUser:SendData(botmyinfo)
else
curUser:SendData(bothello)
curUser:SendData(botmyinfo)
end
end
end
OpConnected=NewUserConnected
its a lot like the a script i have to bad it does not read from text files
would be nice to have with that feature. It would be more simple to write triggs