mIRC scripting sprog - mIRC scripting language

mIRC Scripting Language
Paradigme Begivenhedsdrevet programmering , Procedurel programmering
Designet af Khaled Mardam-Bey
Udvikler Khaled Mardam-Bey
Først dukkede op 1995  ( 1995 )
Skrive disciplin Dynamisk typning
OS Microsoft Windows
Licens Proprietær software
Filnavneudvidelser .mrc, .ini
Internet side http://mirc.com
Større implementeringer
mIRC AdiIRC
Image
mIRC scripts editor (indbygget)

Den scriptsprog mIRC (ofte uofficielt forkortet til " MSL ") er det scriptsprog indlejret i mIRC , en IRC -klient til Windows .

Primære anvendelser

  • Kanal- og personlig beskyttelse mod enhver form for angreb (oversvømmelse, spamming, CTCP-oversvømmelser osv.).
  • Dialogvinduer kan oprettes i mIRC for bedre at betjene brugerkompatibilitet.
    • Populære mIRC dialogen udvidelser omfatter MDX ( m IRC D ialog Ex spænding) og DCX ( D ialog C egulering Ex spænding). Der er også et par versioner af mdx.dll og dcx.dll modded af IRC hackere.
  • Bots, der giver automatisk IRC-kanaladministration, trivia eller andre spil og andre ønskede funktioner til chatters.
  • Kommandoer, der sparer indtastning eller på anden måde forenkler livet på IRC (f.eks. Automatisk identificering som ejer af et kaldenavn).

Opbevaring af script

Scripts gemmes som enten almindelige tekstfiler, som regel med en .mrc filtypenavn , eller som INI-filer . De kan dog gemmes med enhver udvidelse. Flere scriptfiler kan indlæses ad gangen, men i nogle tilfælde vil et script komme i konflikt med et andet og få en eller begge til ikke længere til at fungere korrekt.

Sprogfunktioner

mIRC-skriptsprog bruger sin egen nomenklatur til at henvise til sprogkonstruktioner. (Selvom dette kan være lidt forvirrende for nybegyndere, påvirker de ikke funktionaliteten af ​​mSL.)

  • Indbyggede funktioner kaldes kommandoer eller, hvis de returnerer en værdi, identifikatorer .
  • Brugerdefinerede scriptede funktioner kaldes aliaser . Aliasser, der returnerer en værdi, kaldes brugerdefinerede identifikatorer . Begge kaldes fra kommandolinjen eller andre dele af et script på samme måder som indbyggede kommandoer og identifikatorer (og kan endda erstatte dem).
  • Popups er scriptede genvejsmenupunkter . Popups kaldes, når de vælges af brugeren. Udtrykket henviste oprindeligt til menuerne - som dukker op ved et højreklik. Det bruges stadig på denne måde i manualen.
  • Fjernbetjeninger er scripts til håndtering af begivenheder . Fjernbetjeninger kaldes, når den begivenhed, de håndterer, finder sted.
  • Alle variabler er dynamisk skrevet .
  • mIRC-scripts gør brug af sigils . Forud for identifikatorer (uanset om det er brugerdefineret eller indbygget), forud for $ binære variabler & , og andre variabler (hvad enten lokale eller globale) er forud for % . Kommandoer og aliaser er ikke forud for et bestemt tegn (selvom det normalt indtastes fra kommandolinjen i et vindue / ).

Filhåndtering

  • Scripts kan læse fra og skrive til filer [ $read(file,[args]) | /write ]

Ovenstående er beregnet til entydig adgang til filen. Fordi hver gang du udsteder $read eller /write åbner og lukker filen for at få adgang. Flere adgange, f.eks. Under en sløjfe, håndteres bedst gennem /fopen , /fwrite og /fclose . Da dette kun åbner filen en gang. I nogle tilfælde /filter og /savebuf er en endnu mere effektiv (ikke Scripted sløjfe) metode.

  • Scripts kan også kopiere og slette filer. [ /copy | /remove ]

Binære variabler

  • Indeholder ubegrænsede (8192 bytes før mIRC 6.1) rådata
  • Globalt tilgængelig via kommandoer og identifikatorer
  • Frakobles automatisk, når scriptet returnerer kontrol til mIRC (og ikke til en anden del af et script)
  • Præfiks med & (f.eks. &Variable )
  • Der er ikke adgang til andet end af /bread og /bwrite så disse variabler kan ikke videregives til andre dele af scriptet

Hash-tabeller

  • Kan indeholde ubegrænsede binære data eller op til 4.150 (950 før mIRC 6.32) byte med almindelig tekst. Denne grænse pålægges af mIRCs scripting parsers egen linjelængdebegrænsning (medmindre der tildeles en binær variabel)
  • Globalt tilgængelig via kommandoer og identifikatorer
  • Frakobles automatisk, når mIRC afsluttes, da de kun er gemt i hukommelsen
  • Kan gemmes til senere brug
  • Ikke præfiks
  • Hurtigere end adgang fra en fil, da hash-tabeller gemmes i hukommelsen snarere end harddisken
  • Størrelse begrænses kun af computerens hukommelsesgrænser.
  • Tillader, at enhver skovlstørrelse bruges

Globale variabler

  • Kan indeholde op til 4.150 (950 forud for mIRC 6.32) data bytes inklusive dets navn (dog på grund af linjelængdebegrænsninger i mIRCs scripting parser, kan maksimalt 4.146 bytes tildeles eksplicit ved hjælp af / set eller / var - dette antal falder da variabelens navn bliver længere)
  • Kan ikke gemme NUL (ASCII 0) eller efterfølgende mellemrum
  • Globalt tilgængelig
  • Afbryd ikke automatisk, medmindre der bruges en switch (gemmes automatisk i en mIRC-initialiseringsfil)
  • Præfiks med % (f.eks. %Variable )
  • Oprettet ved hjælp af set kommandoen eller var -g eller %Variable = value notationen

Lokale variabler

  • Kan indeholde op til 4.150 (950 forud for mIRC 6.32) data byte inklusive variabelnavnet (dog på grund af linjelængdebegrænsninger i mIRCs scripting parser, kan maksimalt 4.146 bytes tildeles eksplicit ved hjælp af kommandoerne / set eller / var - dette antal falder, når variabelens navn bliver længere)
  • Kan gemme NUL (ASCII 0) eller bageste mellemrum
  • Ødelægges, når det udløste alias eller begivenhed slutter
  • Præfiks med % (f.eks. %Variable )
  • Oprettet ved hjælp af var kommandoen. var er blot et internt alias for, set -l men var udgør midlerne til at erklære flere lokale variabler på en enkelt linje (f.eks. var %a = 1, %b, %c = 2 )

Begrænsninger

  • Scripting parser understøtter maksimalt 8.292 (950 før mIRC 6.32) tegn pr. Linje (ekskl. Nye linjer eller indrykning).
  • Strenge er ikke syntaktisk lukket, hvilket skaber uklarheder i kode, hvor tegn, der menes som bogstavelige strenge, behandles som en del af sprogets syntaks .
  • Hver linje kode opdeles i et sæt pladsafgrænsede tokens. Da mIRCs parser ikke understøtter null-tokens, og sproget ikke giver en syntaks, der klart skelner mellem bogstavelige strenge og kode; Før mIRC version 6.2 var det umuligt at videregive flere på hinanden følgende mellemrum til nogen kommando eller alias. Dette blev dog rettet med indførelsen af ​​returnex-kommandoen, som tillader bevarelse af rum.

Kodeeksempler

Koden nedenfor er i det eksterne scriptsformat. Hvis de placeres i en aliasfil, skal kommandonavnene ikke forud for ordet " alias ". Testkommentarer inkluderer det fælles /* comment */ og ;comment .

Her er et eksempel på et Hello World- alias:

;Defines the alias 'hello' in the remote script

;Note: if this is placed in an alias script,
;the 'alias' part must be removed (result: hello {)
;Usage: /hello

alias hello {

  ;Displays(/echo) 'Hello World!' into the active window(-a)
  echo -a Hello World!

}

Et eksternt script, der automatisk reagerer på bestemt tekst

;Placed in a remote script

;When a user types Hello! in a channel,
;you answer back: Hello, [nickname]!

on *:TEXT:Hello!:#:{ msg $chan Hello, $nick $+ ! }

;When a user types Hello! in a private message,
;you answer back: Hello, [nickname]!

on *:TEXT:Hello!:?: { msg $nick Hello, $nick $+ ! }

;Here is a script which automatically gives voice to a user
;who joins a particular channel (The Bot or user should have HOP)

on *:JOIN:#?: { mode $chan +v $nick }

;A bad word script

on *:Text:die*:#: { .mode $chan +b $nick | kick $chan $nick Dont say that again }

Se også

Referencer

eksterne links