skriptovací jazyk mIRC - mIRC scripting language

skriptovací jazyk mIRC
Paradigma Programování řízené událostmi , procedurální programování
Navrhl Khaled Mardam-Bey
Vývojář Khaled Mardam-Bey
Poprvé se objevil 1995  ( 1995 )
Psací disciplína Dynamické psaní
OS Microsoft Windows
Licence Proprietární software
Přípony názvu souboru .mrc, .ini
webová stránka http://mirc.com
Hlavní implementace
mIRC AdiIRC
editor skriptů mIRC (vestavěný)

MIRC skriptovací jazyk (často neoficiálně zkráceně „ MSL “) je skriptovací jazyk vložené do mIRC , což je IRC klient pro Windows .

Primární použití

  • Ochrana kanálů a osob před jakýmkoli typem útoků (záplavy, spamování, záplavy CTCP atd.).
  • V mIRC lze vytvořit dialogová okna, aby lépe sloužila kompatibilitě uživatelů.
    • Populární rozšíření dialogů mIRC zahrnují MDX ( m IRC D ialog Ex napětí) a DCX ( D ialog C ontrol Ex napětí). Existuje také několik verzí mdx.dll a dcx.dll upravených hackery IRC.
  • Boti, kteří poskytují automatickou správu kanálů IRC, vědomostní nebo jiné hry a další požadované funkce pro chatující.
  • Příkazy, které šetří psaní nebo jinak zjednodušují život na IRC (například automatická identifikace jako vlastník přezdívky).

Ukládání skriptů

Skripty jsou uloženy buď jako prosté textové soubory, obvykle s .mrc příponou , nebo INI soubory . Mohou však být uloženy s libovolnou příponou. Lze načíst více souborů skriptu najednou, i když v některých případech bude jeden skript v konfliktu s druhým a způsobí, že jeden nebo oba přestanou správně fungovat.

Jazykové funkce

skriptovací jazyk mIRC používá svou vlastní nomenklaturu k označení jazykových konstrukcí. (I když to může být pro nováčky trochu matoucí, nemá to vliv na funkčnost mSL.)

  • Integrované funkce se nazývají příkazy nebo, pokud vracejí hodnotu, identifikátory .
  • Vlastní skriptované funkce se nazývají aliasy . Aliasy, které vracejí hodnotu, se nazývají vlastní identifikátory . Oba jsou volány z příkazového řádku nebo jiných částí skriptu stejným způsobem jako vestavěné příkazy a identifikátory (a mohou je dokonce nahradit).
  • Vyskakovací okna jsou skriptované položky kontextové nabídky . Vyskakovací okna jsou volána, když jsou vybrána uživatelem. Termín původně odkazoval na nabídky - které se zobrazí po kliknutí pravým tlačítkem. Tímto způsobem se v příručce stále používá.
  • Dálkové ovladače jsou skripty pro zpracování událostí . Dálkové ovladače jsou volány, když dojde k události, kterou zpracovávají.
  • Všechny proměnné jsou zadávány dynamicky .
  • Skripty mIRC využívají sigily . Před identifikátory (ať už vlastními nebo předdefinovanými) předchází $ binární proměnné a před & jinými proměnnými (ať už lokálními nebo globálními) % . Příkazy a aliasy nepředchází žádný konkrétní znak (i ​​když po zadání z příkazového řádku okna musí před nimi obvykle předpona příkazu / ).

Zpracování souborů

  • Skripty mohou číst a zapisovat do souborů [ $read(file,[args]) | /write ]

Výše uvedené je určeno pro jednotný přístup k souboru. Protože pokaždé, když vydáte $read nebo /write otevřete a zavřete soubor pro přístup. Vícenásobné přístupy, například během smyčky, se nejlépe zpracovávají /fopen , /fwrite a /fclose . Protože se tím otevře soubor pouze jednou. V některých případech /filter , a /savebuf je ještě účinnější způsob (non Scripted smyčka).

  • Skripty mohou také kopírovat a mazat soubory. [ /copy | /remove ]

Binární proměnné

  • Obsahují neomezená (8192 bajtů před mIRC 6.1) nezpracovaná data
  • Globálně přístupné prostřednictvím příkazů a identifikátorů
  • Automaticky zrušit nastavení, když skript vrátí řízení do mIRC (a nikoli do jiné části skriptu)
  • S předponou & (např. &Variable )
  • Nelze přistupovat jinak než pomocí /bread a /bwrite , takže tyto proměnné nelze předat do jiných částí skriptu

Hash tabulky

  • Může obsahovat neomezená binární data nebo až 4 150 (950 před mIRC 6.32) bajtů prostého textu. Tento limit je dán omezením vlastní délky řádku skriptovacího analyzátoru mIRC (pokud není přiřazena binární proměnná)
  • Globálně přístupné prostřednictvím příkazů a identifikátorů
  • Automaticky se deaktivuje při ukončení mIRC, protože jsou uloženy pouze v paměti
  • Lze uložit pro pozdější použití
  • Není předponou
  • Rychlejší než přístup ze souboru, protože hash tabulky jsou uloženy spíše v paměti než na pevném disku
  • Velikost omezena pouze limity paměti počítače.
  • Umožňuje použití jakékoli velikosti kbelíku

Globální proměnné

  • Může obsahovat až 4 150 (950 před mIRC 6,32) bajtů dat včetně jeho názvu (vzhledem k omezením délky řádku v skriptovacím analyzátoru mIRC lze pomocí / set nebo / var explicitně přiřadit maximálně 4 146 bajtů - toto číslo klesá jak název proměnné roste)
  • Nelze uložit NUL (ASCII 0) nebo koncové mezery
  • Globálně přístupné
  • Nezastavujte automaticky, pokud není použit přepínač (automaticky uložený v inicializačním souboru mIRC)
  • S předponou % (např. %Variable )
  • Vytvořeno pomocí set příkazu var -g nebo %Variable = value notace

Místní proměnné

  • Může obsahovat až 4 150 (950 před mIRC 6.32) bajtů dat včetně názvu proměnné (vzhledem k omezením délky řádku v skriptovacím analyzátoru mIRC lze pomocí příkazů / set nebo / var explicitně přiřadit maximálně 4 146 bajtů - toto číslo klesá, jak název proměnné roste)
  • Může ukládat NUL (ASCII 0) nebo koncové mezery
  • Jsou zničeny, když spuštěný alias nebo událost skončí
  • S předponou % (např. %Variable )
  • Vytvořeno pomocí var příkazu. var je pouze interní alias pro, set -l ale var představuje prostředek k deklaraci více místních proměnných na jednom řádku (např. var %a = 1, %b, %c = 2 )

Omezení

  • Analyzátor skriptů podporuje maximálně 8 292 (950 před mIRC 6.32) znaků na řádek (bez nových řádků nebo odsazení).
  • Řetězce nejsou syntakticky uzavřeny, vytvářejí tak nejednoznačnosti v kódu, kde se k znakům chápaným jako doslovné řetězce přistupuje jako k syntaxi jazyka .
  • Každý řádek kódu je rozdělen na sadu tokenů oddělených mezerou. Protože analyzátor mIRC nepodporuje nulové tokeny a jazyk neposkytuje syntaxi, která by jasně odlišovala řetězcové řetězce od kódu; Před verzí 6.2 mIRC nebylo možné předat více po sobě jdoucích mezer jakémukoli příkazu nebo aliasu. To však bylo opraveno zavedením příkazu returnex, který umožňuje zachování mezer.

Příklady kódu

Níže uvedený kód je ve formátu vzdálených skriptů. Pokud je umístěn do souboru aliasu, nemělo by před názvy příkazů předcházet slovo „ alias “. Zkušební komentáře zahrnují běžné /* comment */ a ;comment .

Zde je příklad aliasu Hello World :

;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!

}

Vzdálený skript pro automatickou odpověď na určitý text

;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 }

Viz také

Reference

externí odkazy