mIRC Home    About    Download    Register    News    Help

Print Thread
Z
zu_yong
zu_yong
Z
I am a newbie in irc. I would like to know how to set up a bot or script that uses the following triggers like '!rules' or '!commands'. Once the command is activated, a list of rules or commands would be listed out in sequence of 1. XX 2. XX

Thank you.

Joined: Dec 2002
Posts: 3,015
C
Hoopy frood
Offline
Hoopy frood
C
Joined: Dec 2002
Posts: 3,015
on *:TEXT:!rules:#:msg # 1. Foo 2. bar

Z
zu_yong
zu_yong
Z
Ummm...Can I have a simple example please? ^_^
I am still kinda confused...

Joined: Dec 2002
Posts: 3,015
C
Hoopy frood
Offline
Hoopy frood
C
Joined: Dec 2002
Posts: 3,015
That was an example, put it in your remotes (ALT+R) and have someone say !rules, it will message the channel with "1. Foo 2. bar"

Z
zu_yong
zu_yong
Z
Thank you.
I get a bit of the concept already ^_^

And by the way, how to I set the script to run on one specific channel only? I dun wan to start listing out !rules in other people's channel ^_^;

Last edited by zu_yong; 04/08/03 01:12 PM.
Joined: Dec 2002
Posts: 3,015
C
Hoopy frood
Offline
Hoopy frood
C
Joined: Dec 2002
Posts: 3,015
on *:TEXT:!rules:#channelname:msg # 1. Foo 2. bar

Just replace the green with the name of your channel.

Z
zu_yong
zu_yong
Z
Thank you again, Collective ^_^
You have been a big help to me ^_^

Z
zu_yong
zu_yong
Z
Oh...another question has arise...
How do I make the !rules trigger available only for the viewing of the person who typed the !rules trigger?

Joined: Dec 2002
Posts: 3,015
C
Hoopy frood
Offline
Hoopy frood
C
Joined: Dec 2002
Posts: 3,015
Send it as either a notice or a private message:

on *:TEXT:!rules:#channelname:notice $nick 1. Foo 2. bar
or
on *:TEXT:!rules:#channelname:msg $nick 1. Foo 2. bar

Z
zu_yong
zu_yong
Z
Ok...The previous settings are now ok...Thanks ^_^

Is there a way to align the output in this format : (vertical)
1. No spam
2. No cursing

rather than (horizontal)

1. No spam 2. No cursing ?

Because vertical indent looks much readable and neat ^_^

P
pheonix
pheonix
P
make a text file and put each rule on a seperate line,call it rules, then use this.

Code:
alias rules {
var %i 1
while (%i <= $lines(rules.txt)) {
msg %nick %i $+ : $read(rules.txt,%i)
inc %i
}
}
on *:TEXT:!rules:#:{
set %nick $nick
/rules
}


Last edited by pheonix; 04/08/03 04:39 PM.
Joined: Dec 2002
Posts: 3,015
C
Hoopy frood
Offline
Hoopy frood
C
Joined: Dec 2002
Posts: 3,015
on *:TEXT:!rules:#channelname:msg $nick 1. Foo | msg $nick 2. bar

or much more readable:
Code:
on *:TEXT:!rules:[color:green]#channelname[/color]:{
  msg $nick 1. Foo
  msg $nick 2. bar
}

Joined: Dec 2002
Posts: 3,015
C
Hoopy frood
Offline
Hoopy frood
C
Joined: Dec 2002
Posts: 3,015
That sends it to the channel rather than the user. Stop posting things people don't want!

Edit: You managed to fix one problem..

Edit2: Why not use /play instead of a while loop?

Edit3: You managed to fix both, you made something useful, congrats!

P
pheonix
pheonix
P
heh
never had any use for /play so never bothered using it :tongue:

Last edited by pheonix; 04/08/03 04:46 PM.
Z
zu_yong
zu_yong
Z
Gee...Thanks again guys (especially Collective)
This is the best irc help forum I have been to. I get replies to my questions in less than 2 minutes. Keep up the good work!

Joined: Dec 2002
Posts: 117
R
Vogon poet
Offline
Vogon poet
R
Joined: Dec 2002
Posts: 117
Some small improvements on your code:
Code:
alias rules {
  var %i = 1[color:red], %lines = $lines(rules.txt)[/color][color:green], %nick = $$1[/color]
  while (%i <= [color:red]%lines[/color]) {
    msg [color:green]%nick[/color] %i $+ : $read(rules.txt,[color:blue]tn[/color],%i) 
    inc %i
  }
}
on *:TEXT:!rules:#:rules [color:green]$nick[/color]

By using %lines mIRC won't have to determine the number of lines in rules.txt every time it checks the condition in the while loop
By passing $nick as $1 You won't have to use a global variable, which most people will agree is best to avoid. Also, now you can do /rules <nick> anywhere and it will msg that nick your rules. (Using double $'s will halt the alias if you don't specify a nickname)
Using the tn switches with $read is usually recommendable, or you have to make sure the first line of the file is not a number (t) and everything that can be evaluated should be evaluated (all words starting with % or $ are meant as variables and identifiers) (n)

U
Urgntfury
Urgntfury
U
this is probably a really stupid question but here goes anyway. If I take the above code. where does it go? or better yet where do I put it. How do you start it. Or does it just work. Do you have to restart program.

thanks

Joined: Dec 2002
Posts: 117
R
Vogon poet
Offline
Vogon poet
R
Joined: Dec 2002
Posts: 117
You put the code in your remotes:
In mIRC, press [ALT][R], this opens up the remote tab of the script editor.
Now copy the code there and press the "OK" button, after that it works right away.
Make sure the rules.txt is in your mIRC directory or you will be getting errors though.


Link Copied to Clipboard