Im sure hes gonna be using mIRC, and scripting in mIRC lang.
Open mIRC and goto Tools > Scripts Editor, select the Remote tab.
A simple on text reply is done like this:
on *:TEXT:<The Text Said>:#<chan name>:{ msg $chan Hello! }
The text said is what is typed to get the command to run. for channel name, if you dont specify a channel it will run in any channel.
The msg means its a msg command being run, and it is doing to msg to the channel where the text was said. If you did msg $nick it would private message the nick who said the text.
If you did notice $chan or $nick it would notice the message to that channel or nick. Notices are not shown in the channel, they are like private messages, but dont bring up a new window on mIRC. Also they will show in the active window of the user who recives the message.
For auto voicing, you want to do it when a user joins the channel, so:
on *:JOIN:#:{ mode $nick +v }
Any status commands are modes, like op or voice, so we use the mode command.
For kick on word:
on *:TEXT:<Word>:#:{ kick $nick <Kick Reason>}
Here is the quote system e-m00 wrote for his bot:
To use it, put the code in a file called quote_system.mrc then save that to mirc folder and then add this to the remote box with ur other commands:
on *:LOAD:{ load -rs quote_system.mrc }
on *:TEXT:!delquote*:#chan:{
if (%delquoteavailable == yes) {
if ($read(quotes.txt, $2) == $null) && ($2 !isalpha) && ($2 isnum) {
if ($hget(normalin, $address($nick,2)) == yes) || ($hget(uberin, $address($nick,2)) == yes) {
msg #chan Quote $2 does not exist.
halt
}
else {
halt
}
}
if ($read(quotes.txt, $2) != $null) && ($2 !isalpha) && ($2 isnum) {
if ($hget(normalin, $address($nick,2)) == yes) || ($hget(uberin, $address($nick,2)) == yes) {
msg $chan $nick would like to delete quote $2 $+ . The channel will now vote on deletion of quote $2 $+ . /msg $me yea to vote in favor of deletion, and nay to vote against. Votes cast during the next 30 seconds are valid.
set %quotevote on
set %quoteinquestion $2
set %delquoteavailable no
timerquotevote 1 30 checkquotevote
}
else {
halt
}
}
elseif ($2 isalpha) || ($2 isnum) {
halt
}
}
else {
notice $nick There is a delquote vote in progress, please wait for it to finish before deleting another quote.
halt
}
}
on *:NOTICE:!addquote*:{
if ($hget(voicein, $address($nick,2)) == yes) || ($hget(semiin, $address($nick,2)) == yes) || ($hget(normalin, $address($nick,2)) == yes) || ($hget(uberin, $address($nick,2)) == yes) && ($2 != $null) {
write quotes.txt $2- Submitted by $nick at $time(h:nn TT) on $date(mmmm d yyyy)
msg $chan Quote added as quote number $calc(%quotes + 1) $+ , use !quote to get a random quote or !quote quotenumber for a specific quote.
inc %quotes
}
else {
halt
}
}
on *:TEXT:!hmq:#:{
if (%quotes != 1) && ($2 == $null) {
msg $chan There are %quotes quotes in the database. Use !quote for a quote or type !quote <quote number> for a specific quote.
halt
}
if (%quotes == 1) && ($2 == $null) {
msg $chan There is %quotes quote in the database. Use !quote for a quote or type !quote <quote number> for a specific quote.
halt
}
}
on *:TEXT:!quote*:#outpost2.lobby:{
if (!quote == $1) {
if ($read(quotes.txt, 1) != $null) && ($2 == $null) {
msg $chan Random quote: $+ $read(quotes.txt) Quote $readn
halt
}
if ($read(quotes.txt, 1) != $null) && ($2 != $null) && ($read(quotes.txt, $2) != $null) && ($2 !isalpha) && ($2 isnum) {
msg $chan Quote $2 $+ : $+ $read(quotes.txt, $2)
halt
}
if ($read(quotes.txt, 1) != $null) && ($2 != $null) && ($read(quotes.txt, $2) == $null) && ($2 isnum) {
msg $chan Quote $2 does not exist.
halt
}
if ($read(quotes.txt, 1) == $null) {
msg $chan No quotes in database.
}
elseif ($2 isalpha) || ($2 !isnum) {
msg $chan Invalid quote request.
}
}
elseif (!quote != $1) {
halt
}
}
alias checkquotevote {
if ($calc(%yea + %nay) >= 3) {
if (%yea > %nay) {
write -dl $+ $2 quotes.txt
msg $1 Vote successful. Quote %quoteinquestion deleted.
msg $1 Vote results: Yea - %yea vs. Nay - %nay $+ .
write -c quotevoted.txt
set %yea 0
set %nay 0
unset %quotevote
unset %quoteinquestion
dec %quotes
set %delquoteavailable yes
close -m
halt
}
elseif (%yea < %nay) {
msg $1 Vote unsuccessful. Quote %quoteinquestion will not be deleted.
msg $1 Vote results: Yea - %yea vs. Nay - %nay $+ .
set %yea 0
set %nay 0
unset %quotevote
unset %quoteinquestion
write -c quotevoted.txt
set %delquoteavailable yes
close -m
halt
}
elseif (%yea == %nay) {
msg $1 The channel is undecided. Quote %quoteinquestion will not be deleted.
msg $1 Vote results: Yea - %yea vs. Nay - %nay $+ .
set %yea 0
set %nay 0
unset %quotevote
unset %quoteinquestion
write -c quotevoted.txt
set %delquoteavailable yes
close -m
halt
}
}
else {
msg $1 A combined minimum of 3 voters is required to continue a vote. Quote %quoteinquestion will not be deleted.
msg $1 Vote results: Yea - %yea vs. Nay - %nay $+ .
set %yea 0
set %nay 0
unset %quotevote
unset %quoteinquestion
write -c quotevoted.txt
set %delquoteavailable yes
close -m
halt
}
}
To do multi commands on a event use a | to seprate them, eg:
on *:JOIN:#:{ msg $chan Hello | msg $chan Welcome }
The command in the brackets is just like if you typed it, so msg is /msg etc.
Make sure you take a look at a mIRC help. Also the mirc scrpting channel for help on QuakeNet is #help.script.