59
Tags:
diverse
Skrevet af
Bruger #2416
@ 30.03.2003
Indledning
Jeg vil i denne artikkel gennemgå de grundlæggende ting ved mIRC scripting. Jeg vil forklare nærmere om remote scripting. Jeg vil senere forklare hvad det er, men først nogle krav for at kunne programmere i mIRC.
Krav
Det eneste du behøves er programmet mIRC, som er et chat program der bruges til at chatte over IRC (Internet Relay Chat). mIRC kan downloades fra www.mirc.com. Inden du går igang med at lave scripts, bør du nok udforske mIRC lidt, jeg går ud fra at man ved hvordan man joiner kanaler, skriver til hindanden, o.lign. inden man går i gang med dette.
Lige en anden ting jeg vil sige inden vi går i gang. mIRC er
ikke det samme som IRC, mIRC er en IRC Klient, altså der kan forbinde et IRC netværk og IRC er den protokol man bruger til dette. Ligesom http, ftp, osv er protokoller. Så lad nu værer med at skrive "Mød mig på mIRC @ quakenet.org". En anden ting når man skriver sådan noget, huske at angive hvad netværk. Quakenet.org er slet
ikke det eneste IRC netværk. Nu skulle det så være på det rene, lad os så komme i gang
Remote
I det man kalder "Remote", kan du lave nogle scripts, som registrerer, når en bruger f.eks. joiner en kanal, skriver noget bestemt tekst, bliver kicket, osv. For at komme ind i remote'en skal du trykke på alt+r inden i mIRC, der skulle meget gerne poppe et billede op som nedenfor (kan være lidt anderledes alt efter hvad mIRC man bruger):
Vi er nu klar til at lave det første script.
Dit første remote script
Vi vil starte med at lave noget meget simpelt. Jeg har besluttet at vi laver et script så når man skriver !ring mig på en kanal, som man selv er på, så sender man personen en privat besked hvor der står "Dingeling... Det er <Dit IRC nick>, hvad vil du mig?". Vi skal bruge en trigger til dette, som hedder "on text". Her er så eksemplet, forklaring bagefter
on *:TEXT:!ring mig:#: {
msg $nick Dingeling... Det er $me $+ , hvad vil du mig?
}
Prøv at putte script ind i din remote, og spørg en om han vil skrive !ring mig, på en kanal du er på. (
Vigtigt: Hvis du selv skrive !ring mig, opfanger triggeren det ikke, derfor skal det være en anden der skriver det)
Forklaring
Også til lidt forklaring om hvordan det virker:
on *:TEXT:!ring mig:#: {
Den første * betyder hvad acces level brugeren har, det skal vi ikke komme mere ind på nu, men * betyder alle brugere. Derefter har vi TEXT, hvilket er den trigger vi bruger. Derefter har vi "!ring mig", hvilket er den tekst personen skal skrive for at triggeren køre. Herefter har vi så #, hvilken betyder hvad kanal det er på, # betyder at det er alle kanaler(som man selv er på), hvis man kun ønsker den skal køre på en kanal, kunne man f.eks. erstatte den med #udvikleren.dk. Til sidst har vi { som er starten på koden.
msg $nick Dingeling... Det er $me $+ , hvad vil du mig?
Først har vi msg, hvilket er det samme som at skrive /msg i et vindue (sende en kanal eller en enkelt person en besked). Derefter har vi $nick, som er navnet på den person som fik triggeren til at gå i gang. Hvis f.eks. Per skrev !ring mig på en kanal. Så ville $nick blive til Per. Til sidst har vi så noget tekst, indtil at vi har $me, som tager dit nuværende IRC nick. Så har vi en $+, som gør at der ikke kommer hul imellem navnet og ,'et. Da man ikke bare kan skrive $nick, ...
}
Som er afslutningen på koden.
Dit andet remote script
Det andet script vi skal lave, er så at en op (+@) kan skrive !voice <nick>. Det vil sige vi igen skal bruge en on text trigger. Som tjekker om personen er op, og derefter giver den valgte person op.
Koden vil se sådan her ud:
on *:TEXT:!voice *:#kanalen: {
if ($nick isop $chan) {
mode $chan +v $2
}
}
Prøv nu at få en til at skrive !voice <et nick>, på den kanal som du har indstillet det til(ret der hvor der står #kanalen).
Forklaring
Først har vi:
on *:TEXT:!voice *:#kanalen: {
Som minder om det vi brugte før, bortset fra at teksten den skal reagere på nu er "!voice *", * betyder at resten er ligegyldigt, altså den ville reagere på "!voice Mig" eller "!voice NogetAndet". Vi har også nu en bestemt kanal, og ikke alle kanaler.
if ($nick isop $chan) {
Her tjekker vi om personen er op, ved at sige "Er $nick op på denne chan". Først har vi altså navnet på personen der skrev det, også tjekker vi om han er op på $chan, $chan er den kanal som triggeren blev kørt på.
mode $chan +v $2
Her giver vi så den person, som blev valgt af ham der skrev det, voice. Først har vi mode som bruges til at ændre en mode på en kanal, derefter har vi $chan til at bestemme hvad kanal det skal ske på. Så har vi +v, som betyder at personen for voice(+v). Til sidst har vi $2, hvilket er nummer 2 ord i den linje der blev skrevet. F.eks. hvis en skriver "!voice HansNavn", så vil $1 være "!voice" og $2 ville være "HansNavn". $0 vil være 2, hvilket betyder hvor mange ord der blev skrevet, og $1- ville være alt tekst for første ord til slutningen. $2- ville så være fra nummer 2 ord, til slutningen.
}
}
Disse to linjer, lukker så for de startede blokke. Den første lukker altså if-sætningen, den anden lukker så triggeren.
Dit tredje remote script
Her i det sidste remote script i denne omgang, vil vi lave et script, som der gør når en person joiner en kanal, får personen en "notice" som er en lille besked(komanden /notice <nick> <besked>
. Med mindre personen kommer fra en bestemt adresse (host/ip alt efter brugerens opsætning), hvis personen gør det får han sin egen lille besked og op(+o), ellers får han standard beskeden.
Lad os få skrevet lidt kode
on *:JOIN:#: {
if (nick!ident@host.dk iswm $address($nick,5)) {
mode $chan +o $nick
notice $nick Her er så dit op $nick $+ , hold så lidt orden her på kanalen!
}
else {
notice $nick Velkommen til $chan $+ , håber du vil nyde opholdet!
}
}
Inden du kører scriptet, skal du erstatte nick!ident@host.dk med den bruger du ønsker der skal have sin egen lille besked og op. For at finde personens adresse, kan du skrive /whois nick. Hvorefter personens adresse kommer frem + lidt andet information om ham. Derefter kan du afprøve scriptet, og se om det virker
(hvis ikke har du lavet noget galt
)
Forklaring
Så er det tid til lidt forklaring, om hvordan dette virker:
on *:JOIN:#: {
Her har vi en on join, i stedet for on text. Forskellen er som i nok har gættet, at det sker når der en der joiner en kanal, og ikke når der er en der skriver noget tekst. Som i nok kan se er der en : mindre, som er fordi at der jo ikke er noget tekst det skal være lig med, altså man har ikke en join besked:p. Vi har stadig # som bruges til at bestemme hvilken chan det skal ske på, ligesom med on text.
if (nick!ident@host.dk iswm $address($nick,5)) {
Her tjekker vi om brugerens adresse, er den samme som den vi har indtastet. Derfor skal du erstatte "nick!ident@host.dk" med den ønskede adresse. Derefter står der iswm, som står for at første del som er en wildcard string, er lig med den den ting der står på den anden side. Et likke eks. "Min String" så ville "Min *" retunere sandt, og "*n S*" ville også retunere sandt, men "*Hej*" ville retunere falsk som "Min" også ville. Tilbage til scriptet, $address($nick,5) vil retunere personen der triggede triggerens fulde adresse.
Så det vil sige at vi tjekker om den indtastede adresse matcher triggerens adresse. Håber i forstår, ellers kan i jo prøve jer lidt frem
mode $chan +o $nick
Her giver vi personen op, hvis adressen matcher. Ligesom i de tidligere eksempler.
notice $nick Her er så dit op $nick $+ , hold så lidt orden her på kanalen!
Her sender vi personen en lille besked til personen, hvis hans adresse matcher.
}
else {
Her laver vi en "else" ligesom i alle andre programmerings sprog, som betyder ellers. Altså hvis adressen
ikke matcher.
notice $nick Velkommen til $chan $+ , håber du vil nyde opholdet!
Her sender vi så standard beskeden, hvis adressen
ikke matcher.
}
}
Til sidst afslutter vi så if-sætningen og triggeren.
Kommentarer & god kode skik
Som i alle andre programmerings sprog, er det godt at sætte sine scripts pænt op, ved at lave linje skift og indrykninger. Ellers er der ingen der kan læse din kode igen.
Igen ligesom i alle andre sprog kan man lave kommentarer, en kommentar laves i mIRC sådan her:
;Dette er en kommentar
mode $chan +o $nick ;Her giver vi personen op på kanalen.
Det er også smart at kommenterer store scripts. Så nu kan du det da
Afslutning
Jeg håber du har fået noget ud af min artikel, og mod på at prøve dig frem med noget mIRC scripting. Dette er kun en start, der kan laves
meget mere og meget mere avancerede ting i mIRC.
Hvis du har mod på at prøve dig noget mere frem er /help, et rigtigt godt sted. Skriv "/help" i et af dine vinduer i mIRC, og der vil poppe en hjælpe box op. Her kan du læse om alle de mange muligheder med mIRC scripting. F.eks. kan du læse videre om remote scripting, eller alias og identifiers (som f.eks. $chan, $nick, $me og $addresse, som bare er en lille bitte del).
Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.
Del også gerne artiklen med dine Facebook venner:
Kommentarer (10)
Go' artikkel =). Det er godt med sådan nogle artikler der går i dybden med de ting den handler om =).
Nice nok..
Nu har jeg læst den!
Kanon fed artikel du det hjalp mig virklig godt i gang
Godt gjordt mester
nu skal jeg igang...
Tror jeg vil til at igang med scripting
nice nok mester
Hej jeg er vild med din kommentar... Selv om jeg vidste det meste af det var der en del som forklarede nogle af min spørgelsemål omkring mIRC... Ville lige spørge dig om du ikke har en hjemmeside hvor jeg kan læse mere om kring mirc scripting, som giver nogenlunde lige så god forklaring som din kommentar
Hej jeg er vild med din kommentar... Selv om jeg vidste det meste af det var der en del som forklarede nogle af min spørgelsemål omkring mIRC... Ville lige spørge dig om du ikke har en hjemmeside hvor jeg kan læse mere om kring mirc scripting, som giver nogenlunde lige så god forklaring som din kommentar
Hej jeg er vild med din kommentar... Selv om jeg vidste det meste af det var der en del som forklarede nogle af min spørgelsemål omkring mIRC... Ville lige spørge dig om du ikke har en hjemmeside hvor jeg kan læse mere om kring mirc scripting, som giver nogenlunde lige så god forklaring som din kommentar
virke lige noget som de nye irc scripter kan bruge
rate: 4
Du skal være
logget ind for at skrive en kommentar.