I found this bot on this forum , it's quite cool , once you "teach" it to say some smart and funny lines...
however , I would like to ask any of u who can modify it so it can do the following:
1. add another type of random sentences that the bot will say to attract attention to himself when nothing happens , eg. users idle
2. make it so you can specify wether the keyword can be case sensitive , with wildcards , or exactly the same
for example so it can make a difference between:
"die by my hand"
"driveby"
"by"
"byte"
In our case "by" is the keyowrd , and in any of the situations above , the bot would say the sentences assigned to the trigger.
This would fix a bug so it won't start saying foolish things when I say a keyword inside of a word , ex keyword dogg , user sentence doggystyle , and the bot says the line , that sucks)
Here is the code:
Quote-- 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
-- !trigger on -- start triggerbot
-- !trigger off -- Stop triggerbot
botname = "•Garcea•"
trigall=1 -- default mode
trigs = {
test=
"random sentence 1",
"random sentence 2",
"random sentence 3",
"random sentence 4",
},
["test"]=
"random sentence 1",
"random sentence 2",
"random sentence 3",
"random sentence 4",
},
}
function Main()
frmHub:RegBot(botname)
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, " Okay, I will talk to you again :-)")
frmHub:RegBot(botname)
trigall=1
elseif string.find(status, "off") then
SendToAll(botname, " Hmf, Okidoki I will be quiet :(( ")
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
Thanks 4 the help , xcuse me if I might have confused you , I did my best...
One more thing , how else can I stop the damned bot without deselecting it from the GUI?
The !trigger on/off seems not to work....
This is perhaps not totally to which you seek, but perhaps have you at that an example
Try this here (http://board.univ-angers.fr/thread.php?threadid=4628&boardid=12&sid=e7541ef6d0649d6b625c76b7a1e6ab22)
I am way ahead of you, found it about 10 minutes ago , just finished adding my custom Sentences/triggers to it ;)