MIRC Scripting Language

Fra Wikibooks, den frie samling af lærebøger

Introduktion[redigér]

mIRC Scripting Language (MSL) er scripting-sproget som bruges i mIRC - en IRC klient til Windows.

Det er baseret på 4 prefixes: ON, RAW, ALIAS, DIALOG.

Som navnene foreslår, bruges ON som et prefix til et event, altså at der sker noget. RAW reagerer på rå data sendt fra serveren. ALIAS laver et alias, en kommando, som kan bruges overalt i mIRC eller kun i den script-fil det er specificeret i. DIALOG laver en grafisk dialog som brugeren kan bruge til forskellige ting.

Syntaks[redigér]

Syntaksen i MSL kan variere efter hvordan man vil stille sin script op.

Der er to hoved-muligheder:

En kort version, der fylder en linje:

 on *:text:hello:#:/echo Hello World

En længere version, der fylder flere linjer:

 on *:text:*:#: {
   if ( $chan == #en_kanal ) {
     if ( hello isin $1- ) {
       echo Hello World
     }
   }
 }

Mange mener at det er bedst at stille sine scripts op på den anden viste måde, da den bliver nemmere at tilføje funktioner og opgaver til scriptet senere. Første viste måde er dog god, da man kan have flere, for eksempel, on TEXT, i en script-fil. Ved at bruge anden viste metode, tillader mIRC kun en forekomst af en event i en script-fil.

Kommandoen, /if, kan bruges på flere måder:

 if $1 == hello
 
 if ($1 == hello)
 
 if ( $1 == hello )

Men, det er dog ikke smart at bruge /if uden parantes, da mIRC er langsommere til at evaluere udtrykket. Tredje viste mulighed er den bedste at bruge, både på grund af renhed, men også hastighed.

Som du måske kan se, kan kommandoer bruges uden skråstreg i scripts. Det er også bedst ikke at bruge skråstregen, da den kan være i vejen, i nogle situationer.

Variabler/Arrays[redigér]

Variabler kan laves uden større problemer.

 on *:text:*:#: {
   if ( hello isin $1- ) {
     set %en_variabel Tekst Her. 12447574l.
     echo -a %en_variabel
   }
 }

Kommandoen /set, sætter en variabel som bliver gemt, mens /var sætter en midlertidig variabel.

 on *:text:*:#: {
   if ( hello isin $1- ) {
     var %en_anden_var = Tekst her! 124254.
     echo -a %en_anden_var
     halt
   }
 }

Midlertidige variabler er mest nyttige i /while loops, eftersom du skal have noget at loope rundt om.

For at slette en /set variabel, brug følgende:

 on *:text:*:#: {
   if ( hello isin $1- ) {
     set %en_variabel Tekst Her. 12447574l.
     echo -a %en_variabel
     unset %en_variabel
     echo -a Variablen er nu væk: %en_variabel
   }
 }

Arrays, derimod, er ikke så nemme at lave, da mIRC ikke normalt understøtter dem. Man er nødt til at lave et loop, hvis et array skal fungere på samme måde som i sprog som PHP.