Mirc Scripting Lecture
by
Reptile
http://blacksun.box.sk

<reptile> ok lets start
<freakOVER> :)
<freakOVER> o well
<reptile> So u just got Mirc ur thinking damn this client sucks i wish i could switch to xchat
<reptile> (well u can xchat is there for iwndows also u know)
<Mikkkeee> so mirc scripting?
<reptile> yeah
<Mikkkeee> -------------MIRC SCRIPTING LECTURE------------------
<reptile> but anyways
<reptile> there are a few + points to mirc
<reptile> theres a built in scriptin language!
<reptile> Now u wanna ask the basic question
*** idiocy|idle has joined #bsrf
<reptile> What is mIRC scripting? mIRC scripting is a very powerful way of customising mIRC. It allows you to control the way in which it does things. Scripting is similar to programming, but I would say its easier to pick up because there are so many built in functions. Scripting is mainly used as a way to perform lots of commands with little effort. now what exactly makes a script? Commands - General commands like /join /part etc Aliases - Groups of Commands Po
<reptile> that was huge
<reptile> ;)
<reptile> lucky i typed this out
<reptile> ;)
<Mikkkeee> kewl
*** BaGeL has joined #bsrf
<reptile> now ill take a 2 second break to allow u to read through that
<freakOVER> hehe
<freakOVER> already did
<freakOVER> ;)
<reptile> done
<reptile> now lets go on
<reptile> lets start with Aliases
*** ICE-T has joined #bsrf
<reptile> What is an Alias? An alias is simply a collection of commands
*** _ciR_ has quit IRC (Quit: )
*** piksel has joined #bsrf
<reptile> Any command you use in the edit box of a window which starts with a / can be used in an alias. To edit aliases press alt + A in mIRC or goto Tools>Aliases, this will bring up the alias editing window.
<reptile> Alias are written in this format: /aliasname command | command The /aliasname is what you will type in the normal edit box when chatting (cannot have spaces).
*** piksel is now known as _piksel-
*** {LG} has joined #bsrf
<reptile> Try to give it a meaningful name, so it is easier to rememeber what it does. The command is a command such as /join (you dont need the / in an alias).
*** _piksel- has left #bsrf
<SpiderMan> j #bread5
*** {LG} has left #bsrf
*** rabonne has joined #bsrf
<reptile> lol
<Mikkkeee> lol
* freakOVER is typing...
* freakOVER click click
<reptile> The | breaks up the commands, so mIRC knows what to do.
<reptile> u can use 2 commands on the same line usin the |
<reptile> 0_0 WHAT A WONDER
<reptile> ;)
<freakOVER> can u use more than one?
<Mikkkeee> yup
<freakOVER> i mean
<freakOVER> more than 2
<reptile> lol sure
*** piksel has joined #bsrf
<reptile> ;)
*** rabonne is now known as _rabonne-
<reptile> u can use as many as u can
<freakOVER> oh ok
<freakOVER> whew...
<reptile> now heres a example
<reptile> Echo a message to the current window /Echo is a mIRC command to show text in a window, only you can see it. Format: /echo text Alias Code: /e echo This is echod to the current window. Usage: type /e in a window to display the message.
*** Lone[Star] has quit IRC (Quit: I've learned so much but at the end I've learn so little... knowledge never ends... - Lone[Star])
<reptile> thats juz a simple example
<reptile> aliases can be used for much more difficult things
<reptile> not exactly difficult
<reptile> i mean time consuming
<reptile> ;)
<freakOVER> hehe
<reptile> Joining a channel /Join is a command which joins a channel. Format: /join channelname Alias Code: /j join #hex Usage: type /j in a window to join #hex
*** _acid519- has joined #bsrf
*** MASTURB4TION has joined #bsrf
<reptile> when u use /echo only u can see the msg
*** d3molisher has quit IRC (Ping timeout: 180 seconds)
*** ICE-T has quit IRC (Quit: cya)
*** perry has joined #bsrf
*** _rabonne- has quit IRC (Quit: Im Using Tracer Script v1.22- http://www.tracerscript.net Wasted: 4mins 30secs Online)
<reptile> so does everybody understand so far?
*** _rabonne- has joined #bsrf
<freakOVER> ya
<freakOVER> :)
<reptile> Joining 2 channels Alias Code: /j2 join #hex | join #bsrf Usage: type /j2 in a window to join #hex and #bsrf
<reptile> and another
*** _rabonne- has left #bsrf
*** perry has quit IRC (Not enough time connected)
<reptile> Performing an action /me is a command which performs an action on a channel/nick. Format: /me action Alias Code: /happy me is so happy cos, s/he can make an alias! Usage: type /happy in a channel window to perform the action Aliases can also be put on multiple lines, making them easier to read. This is done using the curly brackets ({ and }). The { basically says to mIRC "code start" The } basically says to mIRC "code end" For every { you have you must
*** Mikkkeee sets mode: +v [PhaLanX]
<reptile> Multiple lines in an Alias Here we'll make the Join 2 Channels alias multi line. Notice how each command is on a seperate line, and there are no |. A new line is the same as a |. Alias Code: /tjoin2 { join #hex join #bsrf } Usage: type /tjoin2 in a window to join #hex and #bsrf Try making a few of your own and then we'll move onto popups.
*** _acid519- has quit IRC (Quit: Leaving)
<[PhaLanX]> side note:
<[PhaLanX]> aliases can be made using the /alias command
<[PhaLanX]> ex: /alias happy /me is happy
<[PhaLanX]> this will create the /happy command
<reptile> tankies [PhaLanX]
<[PhaLanX]> no prob
<reptile> any questions?
*** BaGeL has quit IRC (Ping timeout: 180 seconds)
*** DigitalFallout has joined #bsrf
*** ChanServ sets mode: +o DigitalFallout
<divinator> anyone know what this is? :
<divinator> "GET /default.ida?XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%u9090%u6858%
ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%
u9090%u9090%u8190%u00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=a HTTP/1.0" 404 870 "" ""
<Mikkkeee> df just in time for thE mirc one
<DigitalFallout> One sec, I need to reboot--------
*** DigitalFallout has quit IRC (Read error: 104 (Connection reset by peer))
<divinator> i get plenty of connections with this query everyday on my httpd
<Mikkkeee> maybe the .ida buffer overflow attack sploit
<reptile> hummn
<divinator> code red possibly
<reptile> maybe if it exceeded sme characters
<reptile> anyways
<reptile> shall we move onto popups?
*** idiocy|idle has quit IRC (Ping timeout: 180 seconds)
<Mikkkeee> k
*** DigitalFallout has joined #bsrf
*** ChanServ sets mode: +o DigitalFallout
<DigitalFallout> Well I just woke up :)
<reptile> What is a Popup? Popups are custom menus. To edit popups press alt + P in mIRC or Tools>Popups, this will bring up the popup editing window. Popups are generally used as a quick way to perform an alias (Remember an alias is a group of commands). Popups appear in order on the menu in the same order they are written. Popups are written in this format: Popupname:command | command The Popupname is what will appear on the menu (Can have spaces). The command
<reptile> heres a example Performing an action using a popup In the channel popup editing window (on the menu: view...channel in the popup editing window) put the code. Popup Code: Happy: me is so happy cos, s/he can make a popup! Usage: right click in a channel window and select "Happy" to perform the action
<freakOVER> The command
<freakOVER> <reptile> heres
<freakOVER> ?
<freakOVER> u missed stuff didn't u?
<reptile> no its juz ur lag
<reptile> ;)
<reptile> The command is a command such as /join the same as an alias.
<freakOVER> o ok
<freakOVER> lag
<freakOVER> bah!
<freakOVER> :)
<reptile> Using a popup to run an alias Here we will use a popup to run the alias we made in Example 4 Popup Code: Happy2:tme Usage: right click in a channel window and select "Happy2" to perform the action
<[PhaLanX]> side note, to make items under a menu, you use periods
<[PhaLanX]> ex:
<[PhaLanX]> Happy
<[PhaLanX]> .Happy1:/happy1
<[PhaLanX]> .Happy2:/happy1
<[PhaLanX]> that would create Happy in the menu with items happy1 and happy2
<[PhaLanX]> the parent cannot have a command (Happy doesnt have a command, yet happy1 and happy2 do)
<freakOVER> cool
*** honkhonk has joined #bsrf
<freakOVER> 2 ppl giving the lecture
<freakOVER> :)
<reptile> Telling a channel about yourself Here we will use a popup to tell a channel about yourself. (Change the information to suit yourself) Notice the return of multiple lines. Popup Code: About me:{ me is male, 14 yrs of age, from India } Usage: right click in a channel window and select "About me" to tell the channel about yourself on 3 lines. Ok try a few of your own, then we'll move onto identifiers. What is an Identifier? An identifier is a command which
<reptile> about this later. So $1 would be the first parameter, $2 the second and so on. To list all the parameters use an - after the $1 e.g $1- would mean all parameters, $2- would mean all parameters after parameter 1 ($1).
*** idiocy|idle has joined #bsrf
<freakOVER> hey can u try sending less text?
<freakOVER> What is an Identifier? An identifier is a command which
<freakOVER> <reptile> about this later.
<freakOVER> :(
*** idiocy|idle has quit IRC (Not enough time connected)
<reptile> k ill type that aprt again
<freakOVER> tnx
<reptile> ]returns a value. All identifiers start with a $ character. One of the most commonly used identifiers is $me. It returns your current nickname. To use an identifier in an alias you just put its name and mIRC will replace it with the applicable value when the alias is run. Identifiers with just a number such as $1 return the parameters passed to the alias/popup. For an alias its anything you type after the /aliasname in the window. For a popup it depends
*** k1mus4b1 has joined #bsrf
<reptile> So $1 would be the first parameter, $2 the second and so on. To list all the parameters use an - after the $1 e.g $1- would mean all parameters, $2- would mean all parameters after parameter 1 ($1).
*** N has joined #bsrf
<reptile> Using the $me identifier $me will be replaced by your nickname. Alias Code: /whoami echo You current nickname is $me Usage: Type /whoami in a window to see your current nickname.
<[PhaLanX]> side note: in popups, the nicklist specifically, $1 $2 etc are the selections
<[PhaLanX]> therefore if the popup is:
<[PhaLanX]> Happy:/me is happy and $1 too
*** k1mus4b1 has quit IRC (Quit: )
<[PhaLanX]> $1 would be the first nick selected
<reptile> Using the $# identifier $1- will be replaced by all parameters from $1 onwards. Alias Code: /saythis echo You typed $1- Usage: Type /saythis I can use identifiers! in a window to see the message.
<reptile> any questions so far?
*** Mikkkeee sets mode: -m
*** N0_Nick has quit IRC (Ping timeout: 180 seconds)
<freakOVER> hmm
<freakOVER> no interaction yet
<reptile> any questions?
<SpiderMan> I think everyone is tired :)
*** N0_Nick has joined #bsrf
<freakOVER> hehe
<N0_Nick> hm
<reptile> cmon it cant be soooo bad
<reptile> ;)
* freakOVER lays on couch...
<freakOVER> :)
<N0_Nick> i got dc
<Mikkkeee> okay so just keep on going
* Mikkkeee will spend the week end fixing the logs
*** N0_Nick is now known as _N0_Nick-
<N> www.pairc.com best mIRC scripting tutorials about :)
<[PhaLanX]> yes
<freakOVER> "This log has been edited for content. It has been formatted to this screen."
<Mikkkeee> lol
<[PhaLanX]> pairc.com is good, i learned a great deal from there
<freakOVER> :)
*** _N0_Nick- is now known as N0_Nick
<[PhaLanX]> but the best place is your own mirc.hlp
<N> aye
*** idiocy|idle has joined #bsrf
<N> got loads in there
<N> and other scripts, just download a few and read them :)
<AZTEK[coding]> later guys
*** AZTEK[coding] has quit IRC (Quit: "Software is like sex: its better when its free" -Linus Torvalds)
* reptile nods
<reptile> k should i go on???or should i juzt........
<Mikkkeee> go on
<freakOVER> like
<freakOVER> it's ur lecture
<freakOVER> ur 15 minutes of fame
<freakOVER> keep goin'
<freakOVER> ;)
<N0_Nick> well who will mail me the whole log coz i got disconnected in b/w a couple of time
<N0_Nick> yeah its good
<Mikkkeee> hehe
<TCL> lol, go on
<N> lol
<N> it will appear on bsrf site no :)
<Mikkkeee> yup
*** Mikkkeee sets mode: +m
<freakOVER> ya
<freakOVER> a famous lecture
<freakOVER> on mirc scrippin'
<freakOVER> :)
<Mikkkeee> lol
<reptile> ok
<reptile> moving on
<SpiderMan> be sure to have a lot of spelling and grammar errors so it takes Mikkkeee longer to edit :D
<freakOVER> lol
<freakOVER> poor Mikkkeee
<reptile> :-DDD
<Mikkkeee> the content will be teh same just the spelling
<Mikkkeee> will be corrected
<freakOVER> hehhe
<[PhaLanX]> lol
<freakOVER> oopss
<reptile> o_O
<freakOVER> danm
<reptile> heh
<freakOVER> bad fingers
<freakOVER> lol
<SpiderMan> haha make the words look really bad
<[PhaLanX]> raelyl ym spelilng wlil be correctd?
<SpiderMan> mess the spell checker up
*** Baek has joined #bsrf
<Mikkkeee> plz no l33t talk
<freakOVER> lol
<freakOVER> ok ok
<freakOVER> go on
<reptile> now goign no ithw ym lektuer no crmi scriptgni
<[PhaLanX]> raelly, lest moev on
<TCL> lol
<reptile> Using the $# identifier $1- will be replaced by all parameters from $1 onwards. Alias Code: /saythis echo You typed $1- Usage: Type /saythis I can use identifiers! in a window to see the message.
<SpiderMan> :)
<reptile> yako
<reptile> Using the $# identifiers to perform an action on someone. $1 will be replaced by 1st parameter and $2 will be replaced by 2nd.
<reptile> Alias Code: /kiss me kisses $1 right on the $2 Usage: Type /kiss zippy lips in a window to see the message.
<reptile> Using the $+ identifier to join 2 strings. $+ puts anything before and after it together (removes the space) This is useful when you need to join things such as $1 to an ! or something. This example makes $2 join a ? and $1 join an !. So if $1 is "Reptile $+ !",
*** idiocy|idle has left #bsrf
<reptile> the string becomes "Reptile!"
<freakOVER> haha
<freakOVER> who'd knew?
<[PhaLanX]> side note: never, and i mean never put and identifier and anothe char together
<reptile> Alias Code: /kiss2 me kisses $1 right on the $2 $+ ! Did you enjoy that $1 $+ ? Usage: Type /kiss2 zippy lips in a window to see the message
*** piksel has quit IRC (Quit: )
*** NeLiX has joined #bsrf
<freakOVER> :)
*** NuLLx has quit IRC (Ping timeout: 180 seconds)
*** N0_Nick has quit IRC (Ping timeout: 180 seconds)
<reptile> LOL
<[PhaLanX]> lol
<reptile> ok try a few
* reptile is dloadin mandrake 8
<reptile> over 3 gb
<mezzano> few a try okay? <----- yoda ;)
*** Mikkkeee sets mode: -m
<reptile> btw i used the mandrake isntall partition to resize my fat partition and now ive lost all my mp3s
<Mikkkeee> shit i wasted my saturday holding lectures
<Mikkkeee> lol
<reptile> in my mp3 dir
*** optimum has joined #bsrf
<reptile> lol
<[PhaLanX]> any questions?
* N kisses reptile right on the forhead
* [PhaLanX] feels special for being assistan lecturer
<reptile> ;)
*** whoareyuo has joined #bsrf
*** {LG} has joined #bsrf
<whoareyuo> hello
*** makzee has joined #BSRF
<whoareyuo> it's a letter
<TCL> lol
<freakOVER> did the lecture end?
<N> lol
<reptile> freakOVER no
<N> nahh
<freakOVER> oh ok
<freakOVER> kuz the environment is relaxed
<freakOVER> that's not supposed tohappen
<freakOVER> it's a lecture dammit!!
<N> no chicks in here 2 kiss is there ? :)
<freakOVER> :)
<Mikkkeee> yah like a skewl lecture
<whoareyuo> wat lecture?
<reptile> nops
*** {LG} is now known as BrimStone
<reptile> DAMNIT
*** makzee is now known as _makzee-
*** Timmmm has joined #bsrf
<Mikkkeee> reptile continue
<_makzee-> can i get the log file of today's lecture ?
<Mikkkeee> are you going to do the other one
*** _makzee- is now known as makzee
<reptile> Mikkkeee yeah but only if the people want me to
<reptile> i can finish mirc scriptin
<N> mIRC scripting
<reptile> and start vb
<reptile> if they want
<freakOVER> yea
<freakOVER> c'mon
<Mikkkeee> so your done with mirc?
<freakOVER> let's go
<freakOVER> i want to expand my mind
<freakOVER> :)
<reptile> NOOOOO
*** Mikkkeee sets mode: +m
<reptile> i still have a bit
<reptile> lets get on with it
<reptile> What is a Remote Event? A remote event is one which happens when a certain event occurs, such as when someone joins a channel. This is where identifiers are used a lot. Press alt + R or Tools>Remotes to open the remote event edit window. Events are written in this format: on 1:event: Things after the : depends on the event. But at the end you use, commands and alises.
*** _N0_Nick- has joined #bsrf
*** SySt3mShk has quit IRC (Ping timeout: 180 seconds)
<[PhaLanX]> events are the hardest thing to grasp in mirc scripting
<[PhaLanX]> they can create really complex scripts
<reptile> like hexbot
<[PhaLanX]> and, remotes are powerful enuff to generate aliases and popups (ask later)
<reptile> ;)
<reptile> The join event. This triggers when someone joins a channel you are on. $nick returns to the nick of the user who joined. $chan returns to the channel they joined. # means the event will occur for every channel. You can specify a specific channel such as #mIRC though. Alias Code: on 1:JOIN:#:echo $nick just came into $chan Effect: Now when someone joins a channel, a message will be shown in the active window.
<[PhaLanX]> hehe hexbot rulz
*** Baek has quit IRC (Quit: )
<Mikkkeee> okay finish this one and we can hold the next lecture tomorrow or next week
*** _N0_Nick- has quit IRC (Ping timeout: 180 seconds)
<[PhaLanX]> next week, let them practice their l33t0 scripting skillz for a few days
<[PhaLanX]> =]
<freakOVER> hehe
<Mikkkeee> no the vb one next week
<Mikkkeee> we had two today
<Mikkkeee> already
<[PhaLanX]> yeah
<freakOVER> yea
<freakOVER> my brain is hurting
*** Outlaw has quit IRC (Quit: )
<SpiderMan> heh
*** rabonne has joined #bsrf
<[PhaLanX]> [reptile]: keep going
<freakOVER> kinda like trying to stick a ball down a straw
<freakOVER> :P
<Mikkkeee> reptile so finish teh mirc one
<Mikkkeee> today
<Mikkkeee> and vb will be next week
<freakOVER> it'll give me enuff time to get a copy of VB
<freakOVER> :P
<reptile> :D
<reptile> back
<freakOVER> he was gone?!
<[PhaLanX]> lol
<reptile> The text event. This triggers when someone says something on a channel you are on. $nick returns to the nick of the user who said something. $chan returns to the channel they said it on. # means the event will occur for every channel. You can specify a specific channel such as #mIRC though. Alias Code: on 1:TEXT:hello *:#:msg $chan $nick $+ : $+ hi Effect: Now when someone says "hello" at the start of the sentance it will message the chan saying hi Ok t
<[PhaLanX]> note: for a full lists of all events, check thr remotes scripts section in mirc.hlp
*** TCL has quit IRC (Quit: Client Exiting)
<reptile> Storing someones name. The $?= is an identifier which asks the user for input. %name would be set to whatever they type in. Alias Code: /getname set %name $?="Enter name:" Usage: type /getname
<reptile> Storing someones name, then showing it. Alias Code: /getname2 { set %name $?="Enter name:" echo Your name is: %name } Usage: type /getname2 So with what we know of variables we can: Set a variable return a variable value Clear a variable Lets put it all in one alias
<freakOVER> wow u type fast
<freakOVER> ;)
*** whoareyuo has left #bsrf
<reptile> tankies
<reptile> Storing variable, showing it, and then unsetting it. Alias Code: /getname3 { set %name $?="Enter name:" echo Your name is: %name unset %name } Usage: type /getname3 Were getting to know quite a lot now, soon we'll be making more complex aliases and remotes. Ok try a few of your own, then we'll move onto Basic Commands. Basic Commands: What are the basic commands used? This section is list of basic commands which you wouldnt often use outside a script. S
<[PhaLanX]> thats what variables are in mIRC
<reptile> that shoudl be all
<reptile> ;)
*** Mikkkeee sets mode: -m
<[PhaLanX]> their syntax is: /set %varname value
<Mikkkeee> so any questions
<reptile> read the mirc.hlp file for anything else
<reptile> ;)
<[PhaLanX]> let me take over for a while
<reptile> just one more thing
<[PhaLanX]> have a few things to add
<reptile> Using goto's The goto command tells mIRC to "jump" to a specific point in your script (known as a label), bypassing anything inbetween. A label looks like this: :LabelName Its useful when you want to repeat a section of code a few times. You generally have to use an If-Then-Else statment when using a goto. Heres a simple example, which has no real use. Alias Code: /tgoto { goto skip echo This will never happen! :skip echo The command above will never be
<freakOVER> ahh!
<reptile> np
<freakOVER> too much stuff!
* freakOVER is cramming
<reptile> Any questions?
<reptile> The VB lecture will be next week
<freakOVER> cool
<freakOVER> i think i might enjoy that better
<freakOVER> :)
<Mikkkeee> okay so ----------END OF LECTURE-----------
Session Close: Sat Aug 04 16:33:34 2001