Anzeige:
Anzeige:

Bewertung: 5 / 5

Stern aktivStern aktivStern aktivStern aktivStern aktiv
 
mIRC Scripting mit der mIRC-FAQ

 

 

 

Der originale Text stammt aus der jeweiligen mIRC-FAQ, welche auch in unserem FAQ-Bereich erhältlish ist und zwar auf deutsch 
Wer also offline das Scripten lernen moechte ist mit der Txt-Datei sicher besser bedient.
In laufe der Zeit wird der Text hier teilweise farbig markiert, damit er übersichtlicher wird.

 

7 Ein Kurs über "Programmieren" in mIRC 
mIRC bietet unter Tools drei Oberfl�chen, die auf bestimmte Weise "programmiert" werden k�nnen. Die Aliases, die PopUps und die Remotes. In den Remotes k�nnen User, Variablen und Scripts definiert werden. Scripts steuern mIRCs Reaktionen auf IRC-spezifische Ereignisse oder CTCP-Befehle. 
Wichtig - Am besten lernt man die Funktionalit�t dieser Programmieroberfl�chen, wenn man die Kapitel in Reihenfolge durcharbeitet. Wirklich! Versucht nicht, einen Sprung zu den Remotes zu machen, wenn Ihr die PopUps und Aliases nicht wirklich verstanden habt. Die Lektionen bauen aufeinander auf. 
(F�r die, die schon mit ircii gearbeitet haben: Die Syntax der Aliases in mIRC ist der von ircii �hnlich allerdings nicht v�llig gleich. Auch die Command- und Remote-Sektion erlauben ungef�hr die selben Features, aber auch hier ist die Syntax ein bi�chen anders.) 


7.1 Die Aliases-Sektion 
W�hlt den Men�punkt Tools/Aliases. Der mIRC Editor wird dann mit der ge�ffneten Alias-Sektion starten. Bitte ignoriert erst mal die PopUps, User und Variablen. 
Der mIRC Editor ist eine kompakte, einheitliche Schnittstelle zu fast allen programmierbaren Oberfl�chen. Mit dem eingebauten File-Men�punkt k�nnen Alias-Dateien geladen und gespeichert werden. Das Edit-Men� bietet copy/paste- (Kopieren und Einf�ge-) Funktionen sowie Suchroutinen. 'View' bietet einen �berblick �ber alle vorhandenen Alias-Dateien und 'Alias' zeigt ein Inhaltsverzeichnis der ge�ffneten Alias-Datei. 
In der Alias-Sektion k�nnen unter anderem Abk�rzungen f�r h�ufig verwendete Befehle wie JOIN, PART, QUIT, Ops geben und Ops entziehen definiert werden. Standarts�tze m�ssen nicht mehr getippt werden, sondern k�nnen ebenfalls als Alias abgelegt werden. Im allgemeinen k�nnen s�mtliche Befehle, die aus der Editbox heraus funktionieren auch in den Aliases verwendet werden. Aliase k�nnen auch dazu dienen, mehrere Befehle hintereinander auszuf�hren. Ihr k�nnt mit Hilfe der Aliases sogar Befehle auf die Funktionstasten F1-F12 legen...(endlich bekommen diese nutzlosen Tasten einen Sinn). Aliase k�nnen ebenfalls von innerhalb der PopUps, der Remotes und sogar in anderen Aliases aufgerufen werden. In der neuen mIRC-Version k�nnen mehrere Alias-Dateien verwendet werden. Eine ist im Lieferumfang (alias.ini) enthalten - man kann sie beliebig erweitern oder eine eigene einsetzen. Es ist alles sehr einfach! 


7.1.1 Aliases erstellen 
Okay, wir beginnen einfach mit einem simplen Beispiel. Um einen Channel zu betreten, mu� man normalerweise 
/join #name 
tippen... wobei #name der Channelname ist. Da dieser Befehl sehr h�ufig verwendet wird, w�re es sch�n, wenn man so wenig tippen mu� wie m�glich, oder? Also machen wir das ganze etwas k�rzer und machen ein Alias. 
Anstatt '/join #{name}' zu tippen, richten wir es so ein, da� /j #{name} den selben Effekt erzielt. In diesem Fall w�rde der entsprechende Eintrag so aussehen: 
/j /join $1 
(Was dies exakt f�r mIRC bedeutet, braucht Ihr an dieser Stelle noch nicht zu verstehen. Zu der genauen Definition der Syntax kommen wir in K�rze.) 
Versucht es einfach, in dem Ihr diese Zeile in die Liste in die Liste unter Tools/Aliases/ setzt (wenn sie nicht sogar schon vorhanden ist). Dann versucht es aus der Editbox heraus (die Eingabezeile, in der Ihr normalerweise tippt) mit einem einfachen Befehl wie 
/j #test 
Ihr werdet feststellen, da� dies das selbe bewirkt wie '/join #test' - es bringt Euch in den Channel #test. Diese Konstruktion einer Abk�rzung ist nun ein Alias. 
Die Syntax von Aliasen. 
Aliases verwenden das folgende Format:"/{Aliasname} /{Befehl}" 
Es wird also zuerst der Name der Abk�rzung festgelegt (wie z.B. '/j' im obenstehenden Beispiel), dann ein Freizeichen und dann der eigentliche Befehl, auf den die Abk�rzung verweisen soll (im oberen Beispiel '/join $1'). 
Aliases verwenden eine Reihe von speziellen Strings (Strings sind Standartvariablen, die ver�nderbare Werte enthalten k�nnen - hier aber nicht mit den mIRC-internen Variablen zu verwechseln) und Identifiers (ebenfalls Variablen, die aber mIRC-intern bestimmte Werte enthalten - wie z.B. IP-Adressen, die aktuelle Seite des Webbrowsers, usw. Sp�ter mehr dazu). Es gibt mehrere Strings wie z.B. $1, $1-3, $$1, $?, $!, #$1, #$$1 und #$?. Strings k�nnen jeglichen denkbaren Wert enthalten, der angegeben wird, wenn das Alias aufgerufen wird. Sie sind sehr flexibel einzusetzen. Identifiers funktionieren �hnlich, enthalten aber immer einen bestimmten Wert. Die wichtigsten Identifiers sind #, $me, $url, $fulldate, $time und $day. Keine Sorge, wir gehen sp�ter auf dieses Thema noch sehr viel genauer ein. 
La�t uns jetzt erst mal auf $1, den oben verwendeten String konzentrieren. 
/j /join $1 
$1 bezeichnet das erste Wort, da� nach dem Alias - wie immer es auch aussieht - eingegeben wurde. Wenn ihr also /j #test eingebt, dann erkennt mIRC, da� es eine Abk�rzung f�r "/join #test" ist. 
Mehrere Befehle in einem Alias 
Nehmen wir nun an, man m�chte mehrere Channels gleichzeitig betreten. Auch hierf�r kann man ein Alias erstellen. Trennt nur die verschiedenen Befehle mit dem | Zeichen (auf den meisten deutschen Tastaturen ist das die AltGr+Gr��er als/Kleiner als-Taste neben dem Y) Das | Zeichen wird Pipe genannt. 
Gehen wir von einem Alias aus, bei dem man nur "/j3" tippen mu�, danach die Namen von drei Channels und man w�rde sie zugleich betreten. Das entsprechende Alias w�rde so aussehen: 
/j3 /join $1 | /join $2 | /join $3 
Nachdem man diese Zeile in die Liste unter Tools/Aliases eingegeben hat, braucht man nur noch 
/j3 #test1 #test2 #test3 einzugeben 

und mIRC betritt einen Channel nach dem anderen. $2 und $3 sind das zweite und dritte Worte nach dem Aliasnamen. 
Nun erwartet mIRC allerdings logischerweise drei Worte - die Channelnamen. Was w�rde also passieren, wenn man nur "/j3 #test" eingibt? mIRC w�rde �ber die fehlenden Parameter stolpern, da es drei Eingaben erwartet. F�r dieses Problem gibt es eine L�sung: den $$1 String (den behandeln wir etwas sp�ter). 
Beispiel: /say 
Angenommen, es gibt einen Satz oder einen Kommentar, den Ihr in Channels immer wieder gebraucht, wie z.B. Eure Homepage-Adresse, eine Begr��ung oder was auch immer. Schaut Euch mal diese Beispiele f�r Aliase an, die den /say-Befehl verwenden. /say schreibt einfach nur Text in das aktuelle Channel- oder Privatfenster. 
/hallo /say Hallo Ihr! 
/www /say Die mIRC-Page befindet sich auf http://metro.turnpike.net/mookies/mirc.html 
/Zeilen /say Erste Zeile | /say Zweite Zeile | /say Dritte und letzte Zeile 

Das letzte Beispiel zeigt, wie man mehrere Textzeilen in einem Alias zusammenfa�t. Die Befehle m�ssen lediglich mit | voneinander abgegrenzt werden. Man sieht hier, da� nicht zwangsl�ufig in jedem Alias ein String vorkommen mu�. 

Beispiel: /me 

T�tigkeiten beschrieben in einem Alias: 
/lustig /me findet das lustig 
/umarm /me umarmt $1 feste!! 


Das zweite Beispiel verwendet einen String - $1. Wenn man nun "/umarm alle" eingibt, ist das Ergebnis das selbe wie bei "/me umarmt alle feste!!". 

Von mehreren Befehlen verwendete Strings: 

Verschiedene Befehle k�nnen innerhalb eines Alias ein und den selben String verwenden. 
/jtest /join $1 | /topic $1 Nur zum testen 

In diesem Alias wird das Parameter $1 zweimal verwendet. Die Eingabe von "/jtest #test" w�rde darin resultieren, da� mIRC erst #test betritt und dann das Topic in "Nur zum testen" �ndert. 
Ein �hnlicher Fall w�re: 
/mag /say Ich mag $1 ! | Ich mag $1 wirklich gerne!! 

Bei "/mag alle" w�re das Ergebnis "/say Ich mag alle !" und dann "/say Ich mag alle wirklich gerne!!" 
Channel-Modus-�nderungen (Ops geben, etc.): 

Um oft gebrauchte Channel-Modus-�nderungen in die Aliases zu setzen, mu� man zuerst die �bliche Struktur der Modus-Befehle kennen. Jemanden auf dem IRC Ops zu geben funktioniert normalerweise so: 
/mode {Channelname} +ooo {Nick1} {Nick2} {Nick3} 

Bis zu 3 Nicks k�nnen aufgef�hrt werden. Das entsprechende Alias sieht folgenderma�en aus: 
/op /mode # +ooo $1 $2 $3 

Um nun Hinz, Kunz und Otto Ops zu geben gibt man einfach "/op Hinz Kunz Otto" ein. # ist ein Identifier und und bezeichnet den #Channelnamen des Channels, auf dem das Alias ausgel�st wurde. Auf die selbe Art und Weise kann man andere Aliase zur �nderungen der Channel-Modi entwickeln: 
/deop /mode # -ooo $1 $2 $3 
/ban /mode # +b $1 
/kick /kick # $1 
/dbk /mode # -ooo $1 | /kick # $1 | /mode # +b $1 

WICHTIG: Das korrekte Setzen von Freizeichen! 

Dies ist sehr wichtig! Man mu� zwischen Strings und dem restlichen Text Freizeichen lassen! 
Zum Beispiel: 
/mag /say Ich mag $1!!! 
...wird nicht funktionieren! Es mu� zwischen "$1" und "!!!" ein Freizeichen gelassen werden. (Das kann den Text manchmal komisch aussehen lassen, also achtet darauf, wie Ihr die S�tze aufbaut) 
/mag /say ich mag $1 !!! 

...wird funktionieren. 
Dies gilt f�r alle Strings. Um eine Funktion zu vereinfachen wurden ein paar Strings erstellt, die den erfa�ten Parametern automatisch ein # voranstellen. Dies gilt f�r #$1, #$$1, und #$?. Details hierzu werden sp�ter behandelt. 
In einigen F�llen funktioniert: /gut /say Mir gef�llt $1's Topic 
Aber wie gesagt - nur in einigen. Ihr m��t das f�r jeden Fall testen. 

Wo kann man Aliase benutzen? 

Aliase k�nnen von der Editbox (die Zeile in die man normalerweise Text und Befehle eingibt) aus, aber auch aus den PopUps und Remotes aus aufgerufen werden. Darauf wird in den folgenden Abschnitten noch eingegangen. Die von der durch die Funktionstasten aufgerufenen Aliase k�nnen auch auf in der Nicknamenliste ausgew�hlte Nicks bzw. den Namen des Privatfensters (Query-Fensters) bezogen werden... abh�ngig von der Aliasdefinition. Es ist sogar m�glich, ein Alias durch ein anderes aufzurufen - mit einer Ausname: Aliase d�rfen sich nicht selbst aufrufen! Ein Alias, da� ein anderes aufruft braucht allerdings eine Menge Speicher. Es kann also Probleme geben, wenn wenig Arbeitsspeicher zur Verf�gung steht. Wenn eine solche Operation in einer Endlosschleife endet, kann man jedoch immer noch die Tastenkombination Strg+Pause verwenden, um den Proze� abzubrechen. 

Spezielle Alias-Definitionen: Die Funktionstasten. 

Spezielle Alias-Bezeichnungen machen es m�glich, Aliase �ber die Funktionstasten aufzurufen.
Nennt die sie einfach wie folgt:
/f1 /say Hallihallo!!
/f2 /topic # Dies ist ein neues Topic


Man kann nun "/f1" eingeben, um auf einem Channel "Hallihallo" zu sagen, aber es reicht auch, die F1-Taste zu dr�cken. Andere Beispiele: 
/f5 /me sendet Dir gerne das neue mIRC 
/f6 /join #mIRC 
/f9 /dcc send $1 c:\serve\mircfq31.zip 
/f10 /dcc send $1 c:\serve\mirc50s.exe 
/f11 /dcc send $1 

Die F9-Taste wird die mIRC-Datei der in der Nicknamen-List ausgew�hlten Person senden. Nicht vergessen, vorher einen Nick auszuw�hlen, oder es werden merkw�rdige aber logische Dinge passieren. Die F9-Taste kann auch in einem Privat- oder DCC Chat-Fenster verwendet werden. Bei Bet�tigung der F11-Taste wird zuerst nach einem Nick gefragt, dem die Datei gesendet werden soll. 

Es gibt viele M�glichkeiten, die eigenen F-Tasten so zu gestalten wie man m�chte - viel Spa� dabei! 
Ebenfalls ist es m�glich, die Strg- und Umschalttaste mit einzubeziehen: 
/f1 /say Dies ist die F1-Taste 
/sf1 /say Dies ist Umschalttaste-F1 
/cf1 /say Dies ist Strg-F1 

Die Verwendung von Klammern: 

Man kann in Aliases auch [ und ] Klammern verwenden um die Reihenfolge der Bearbeitung von Identifiers festzulegen - wie auch in PopUps und Remotes. Identifiers, die in Klammern stehen werden zuerst bearbeitet, und zwar von links nach rechts. Man kann Klammern auch einbetten um bestimmte Bearbeitungsreihenfolgen festzulegen. Die Klammern erscheinen nicht im resultierenden Text. Beispiele: 
/note /notice $1 " $+ [ $read [ -s + [ $2 ] ] c:\text\note.txt ] $+ " 
/sayvar /say % [ $+ [ $1 ] ] 

Definitionen ohne Klammern werden wie �blich behandelt. 

Aliase in Scripts 

Man kann zu den existierenden Alias-Dateien ohne Probleme erweiternde hinzuf�gen indem man im Alias-Editor (Tools/Aliases) File/Load w�hlt. Man kann nun auf einfache Art und Weise eine Datei ausw�hlen. Mit View kann man sich alle geladenen Dateien anschauen. So kann man auf einfache Weise Aliase von Freunden ausprobieren oder die eigenen zur Verf�gung stellen. Aliases k�nnen sogar mit Remote Commands und Events in eine Datei zusammengefa�t werden und als komplette Script-Datei in Umlauf gebracht werden. Wir gehen sp�ter darauf ein. 



7.1.2 String Definitionen 

Mittlerweile solltet Ihr einen Eindruck gewonnen haben, wie Aliase funktionieren. Hier kommt nun eine Liste aller Strings und Identifiers, die Ihr in den Aliases - und sp�ter auch in den PopUps und Remotes - verwenden k�nnt. Die n�chsten zwei Abschnitte erl�utern sie alle. Von dieser Stelle aus probiert die Beispiele bitte aus, bis Ihr sie verstanden habt. 

$N Der einfachste String. Er enth�lt ein Wort. $1 z.B. enth�lt das erste Wort nach dem Aliasnamen. $2 enth�lt also das zweite, $3 das dritte u.s.w. 
/op /mode $1 +o $2 $3 

Wenn man hier "/op #mirc Hinz Kunz" eingibt, dann wird Hinz und Kunz auf #mIRC Ops gegeben. 
/slap /me haut $1 eins mit $2- �ber die R�be 

Gebt "/slap Doofmann Sardellen" ein, um Doofmann ein bi�chen nach Fisch stinken zu lassen ;o) 

$N-M Dieser String enth�lt eine Wortauswahl. Versucht mal dies: 
/drei /say Die ersten drei Worte waren $1-3 
"/drei eins zwei drei vier" ergibt "Die ersten drei Worte waren eins zwei drei". "vier" wird ignoriert. $N-M ersetzt die alte Form *N-M. 

$N- Dieser String kann eine Menge Worte enthalten. $1- enth�lt das erst Wort und alle nachfolgenden. Beispiel: 
/allen /say Ich m�chte Euch allen etwas sagen - $1- 
"/allen mIRC ist echt ein gutes Programm" ergibt dann "Ich m�chte Euch allen etwas sagen - mIRC ist echt ein gutes Programm". $2- enth�lt das zweite Wort und alles nachfolgende, $3- das dritte und... etc. Versucht auch mal: 
/note /notice $1 $2- 
und gebt /note {Nickname} {Nachrichtentext} ein. Oder: 

/mess /msg $1 $2- 
und nehmt /mess {Nickname} {Nachrichtentext}. 

Diese Beispiel-Aliase h�tten nat�rlich in der Form"/note /notice $1-" und "/mess /message $1-" auch funktioniert. $N- ersetzt das alte *N. 
$$1 Ein Alias, da� diesen String enth�lt, wird nur ausgef�hrt, wenn ein Parameter gegeben ist, andernfalls wird dessen Aufruf ignoriert. Wenn Ihr zum Beispiel mal folgendes Alias festlegt: 
/j /join $$1 

und dann "/j" (anstatt /j #Channelname) eingebt, wird mIRC dies ignorieren, weil kein Channelname angegeben wurde. Ansonsten funktioniert es genauso wie $1 - es enth�lt das erste Wort, $$2 das zweite, $$3 das dritte usw. 

$? Das hier ist ein praktischer String! 

Wenn ein Alias diesen String enth�lt, dann kann es gestartet werden, ohne da� ein Parameter angegeben wird. mIRC �ffnet dann eine Parameterabfragebox, in die dann Text, ein Nickname oder was auch immer eingegeben werden kann. Probiert mal diese Beispiele aus: 
/j /join $? 
/umarm /me umarmt $? mal kr�ftig 

$?="Text" Dies ist eine spezielle Version des $?-Strings. mIRC �ffnet wieder die Parameterabfragebox, fragt aber diesmal nach einer speziellen Eingabe, wie z.B. hier: 
/j /join $?="Welchen Channel betreten?" 
/umarm /me umarmt $?="Wen umarmen?" mal kr�ftig 

$! Dieser String wird nur in Zusammenhang mit $? verwendet. Wenn Ihr vorher in einem Alias den $?-String gesetzt habt, dann k�nnt Ihr $! dazu benutzen, um das bei $? eingegebene Parameter sp�ter noch mal zu verwenden: 
/j /join $?="Welchen Channel betreten?" | /say $! ist wirklich ein sch�ner Channel. 

Bei der Eingabe von "/j" wird mIRC erst die Parameterabfragebox �ffnen, in die man dann einen Channelnamen - z.B. #test eingibt. mIRC wird dann zuerst #test betreten, und dann im Channel "#test ist wirklich ein sch�ner Channel" sagen. 

Versucht auch: 
/freund /say $? ist mein Freund | /say ich mag $! wirklich sehr! 

#$1, #$$1, #$? Dies sind spezielle Versionen der Strings $1, $$1 und $?. Sie werden nur in Verbindung mit Channelnamen verwendet. Sie stellen jedem eingegebenen 
Parameter das #-Zeichen voran: 
/j /join #$1 
Hiermit kann man /j test anstatt /j #test eingeben. 
Versucht auch: 
/j /join #$?="Channelnamen eingeben (Ohne #)" 



7.1.3 Identifiers 

Eine spezielle Form des Strings ist der sogenannte Identifier. Der Inhalt eines gew�hnlichen Strings ergibt sich immer daraus, auf welche Weise er in den Aliases, PopUps oder Remotes aufgerufen wird. Ein Identifier hingegen enth�lt immer fest definierte Werte. 

# Dieser enorm wichtige Identifier enth�lt immer den Namen des Channels, in dem das Alias ausgef�hrt wird. Das ist daher wesentlich, da viele Befehle, wie z.B. der /mode-Befehl immer den Channelnamen erfordern. Beispiel: 
/op /mode # +o $1 

Bei der Eingabe von "/op Cindy" wird die Person mit dem Nicknamen Cindy in dem Channel geopt, in dem Ihr das Alias aufruft. 

$me Dieser Identifier enth�lt immer Euren aktuellen Nicknamen. Man kann ihn in den verschiedensten Situationen verwenden. Beispiele: 
/sch�n /me findet, $me ist ein sch�ner Nickname 

oder /mirc /me bietet allen die neue mIRC Version 5.02 an. Tippt "/CTCP $me xdcc send #1" um sie zu bekommen. 
oder /away /me ist jetzt mal eben weg ( $1-) | /away $1- | /say Nachrichten an $me werden gespeichert. 


Probiert auch mal folgendes aus: 
/nick /Ich finde $1 besser als $me | /nick $1 


und dann �ndert ihr Euren Nickname mit /nick




Beispiele: 

/kick /kick # $1 $read c:\mirc\spasskicks.txt 




/page /say Hey Leute, ich habe eine tolle Webseite gefunden! Seht euch mal $url an! 



$ip Eure IP-Adresse 
$active Der Name des aktiven Fensters in mIRC 
$time Die Uhrzeit auf Eurem PC 
$away Sagt euch, ob Ihr gerade als abwesend registriert seid, oder nicht 
$ticks Die Anzahl der Ticks seit dem Start des Betriebssystems. 
$idle Erwidert die Zeitspanne, die Ihr schon unt�tig (idle) seid. 
$online Erwidert die Anzahl der Sekunden auf Eurem Online-Timer 
$version Erwiedert mIRCs Versionsnummer 
$ctime Die Anzahl der Sekunden seit 00:00:00 GMT, 1.1.1970 
$asctime(N) Erwidert den ctime-Wert im Text-Datumsformat 
$day Der gegenw�rtige Tag 
$date Das gegenw�rtige Datum in europ�ischer Reihenfolge (JA!! mIRC ist kein amerikanisches Programm!! :o) Man kann alternativ auch $adate (amerikanisch), $fulldate oder $day verwenden. 






$duration(Sekunden) �bersetzt Zahlen wie 123456 in 1Day 10hrs 17mins 36 secs. 

$logdir, $getdir, $wavedir, Erwidert die entsprechenden Verzeichnisnamen 
$mircdir, $mididir, 
$script und $scriptdir 
$mircini Erwidert den Verzeichnis- und Dateinamen der ini-Datei, die verwendet wird $nopath(Dateiname) Erwidert nur den Dateinamen ohne Pfad $nofile(Dateiname) Erwidert nur den Pfadnamen ohne Datei 
$exists(Dateiname) �berpr�ft, ob die entsprechende Datei existiert (Erwidert $true oder $false) 
$findfile(Verzeichn.,Dateiname,N) Durchsucht das angegebene Verzeichnis nach der Nten spezifizierten Datei 
$ddename Der DDE-Servicename, den mIRC verwendet 
$abs(N) Erwidert den absoluten Wert der Zahl N 
$chr(N) Erwidert des Zeichen mit dem ASCII-Wert N 
$asc(C) Erwidert den ASCII-Wert f�r das Zeichen C 
$len(text) Erwidert die L�nge von "text" 
$upper(text) Erwidert "text" in Gro�buchstaben 
$lower(text) Erwidert "text" in Kleinbuchstaben 
$left(text,N) Erwidert das Nte Zeichen von links aus "text" 

$right(text,N) Erwidert das Nte Zeichen von rechts aus "text" 

$mid(text,S,N) Erwidert N Zeichen aus "text" beginnend ab S 
$pos(String, Unterstring) Erwidert die Position von Unterstring in String: 

/pos /say $pos(Cenobit,bit) 
"/pos" w�rde in diesem Falle 5 ergeben da "bit" ab f�nfter Position beginnt 

$replace(String, Unterstring, Austauschtext) Ersetzt einen Unterstring in einem String: 
/ersetz /say $replace(Cenobit,bit,byte) 
"/ersetz" ergibt hier Cenobyte, da bit durch byte ersetzt wird. 
(Nur zur Erkl�rung der Begriffe String und Unterstring in diesem Abschnitt) 

$remove(String, Unterstring) Entfernt Unterstring aus String 
$strip(text) Entfernt alle Kontrollzeichen f�r Fett, Unterstrichen und Farbe aus Text 
$count(String1,String2) Z�hlt, wie oft String2 in String1 vorkommt 
$str(Text,N) Erwidert Text N mal wiederholt 
$rand(X,Y) Erwidert eine Zufallszahl zwischen X und Y 
$lines(Datei) Erwidert die Anzahl der Zeilen in Datei 

$usermode Erwidert Euren gegenw�rtigen Usermodus 
$nick(#,N) Erwidert den Nten Nicknamen auf Channel # 
$snick(#,N) Erwidert den Nten ausgew�hlten Nicknamen auf Channel # 
$opnick(#,N) Erwidert den Nten Op Nickname auf Channel # 
$nopnick(#,N) Erwidert den Nten nicht geopten Nickname auf Channel # 
$vnick(#,N) Erwidert den Nten Nickname mit Sprecherlaubnis (voiced) auf Channel # 
$nvnick(#,N) Erwidert den Nten nicht geopten Nickname ohne Sprecherlaubnis (non voiced) auf Channel # 
$comchan(Nick,N) Zeigt die Channels, auf denen Ihr und "Nick" gleichzeitig seid. 
$query(N|Nick) Erwidert den Namen des Nten offenen Privatchat-Fensters 
$chat(N) Erwidert den Namen des Nten offenen DCC-Chat-Fensters 
$notify(N) Erwidert den Namen des Nten Nick aus der Notify-Liste, der gerade online ist 
$token(N,C,text) Erwidert das Nte Zeichen in text getrennt durch C (C ist die Ascii-Nummer eines Zeichens) 
$addtok(text,Zeichen,C) F�gt ein Zeichen an das Ende des Textes an, sofern dieses im Text noch nicht vorhanden ist. 
$findtok(text,Zeichen,C) Erwidert die Nte Position eines Zeichens im Text 
$gettok(textN,C) Erwidert die Nte Zeichen im Text 
$instok(text,Zeichen,N,C) F�gt ein Zeichen in Nte Position im Text ein, wenn diesen im Text nicht schon vorhanden ist. 
$remtok(text,Zeichen,C) Entfernt ein �bereinstimmendes Zeichen im Text 
$reptok(text,Zeichen,Neu,C) Ersetzt ein �bereinstimmendes Zeichen im Text 

F�r die obenstehenden Identifiers kann man N gleich Null setzen, um die gesamte Anzahl an Nicknamen/Channels/Zeichen zu bekommen. 

$snotify Erwidert den Nicknamen, der gegenw�rtig in der Notify-Liste ausgew�hlt ist 
$address Erwidert die volle Adresse des Users, der einen Remote-Eintrag ausl�st 
$address(Nickname,Typ) Durchsucht die Interne Adressenliste und erwidert die volle Adresse eines Usern, sofern dieser gefunden wird. 
$maddress Erwidert die passende Adresse aus der Userliste, die das Event ausgel�st hat. 
$maddress(address) Erwidert eine passende Adresse aus der Remote Userliste. 
$level(Adresse) Sucht die passende Adresse in der Remote Users Liste und erwidert deren Level 
$ulevel Erwidert das passende Remote-Userlevel des ausgel�sten Events 
$clevel Erwidert das passende Remote-Commandlevel f�r ein bestimmtes Event 
$dlevel Erwidert das Standart-Userlevel (Default-Userlevel) 
$mask(Adresse,Typ) Erwidert die Adresse anhand eines bestimmten "mask-Typs" 

Identifiers und Variablen k�nnen auch innerhalb von Klammern plaziert werden. Beispiel: 

/echo $right(3,$left($len(goats), ToMooOrNotToMoo)) ergibt Moo. 


Identifiers mit anh�ngenden Parametern 

Einige Identifiers k�nnen mit bestimmten anh�ngenden Parametern verwendet werden. Dies vereinfacht die Syntax und hilft bei der Erstellung von Scripts. Die Syntax lautet: 
$identifier(N|#|nick).parameter 

$server(N|Nick) Erlaubt den Zugriff auf die Server Liste unter File/Setup/IRC-Servers. $server(N) f�r die Adresse, .desc f�r die Beschreibung, .port f�r den Port, .group f�r die Gruppe (z.B. DALNet, EFNet, oder Undernet) 

$ial(mask,N,N|Nick) Erlaubt den Zugriff auf die interne Adressenliste. $ial(mask,N) f�r die volle Adresse, .nick f�r den Nicknamen, .user f�r den User, .host f�r den Host, .addr f�r die Adresse. 
$url Erlaubt den Zugriff auf die URL-Liste. $url(N) f�r die Adresse, .desc f�r die Beschreibung und .group f�r das Protokoll (z.B. http://). 
$chan(N,#) Erwidert einige Channel-Modi. $chan(N,#) erwidert den Namen, ferner gibt es .topic, .mode, .key, .limit 

$chat(N|Nick) Nickname, .ip, .status (enth�lt active, waiting oder inactive) 
$fserv(N|Nick) Nickname, .ip, .status, .cd (aktuelles Verzeichnis) 
$get(N|Nick) Nickname, .ip, .status, .file (Dateiname), .size (Gr��e), .rcvd (empfangen), .cps (�bertragungsrate), .pc 
$send(N|Nick) Nickname, .ip, .status, .file (Dateiname), .size (Gr��e), .sent (gesendet), .Ira, .cps (�bertragungsrate), .pc 
$timer(N) Erwidert die Timer die aktiv sind. $timer(N) f�r die id, .com, .time, .reps, .delay, .type 
$group(N).status Erwidern, ob die Gruppe aktiv oder inaktiv ist. 
oder $group(Name) 


Benutzerdefinierte Identifiers. (Abschnitt wurde urspr�nglich von LiOnheart geschrieben) 

Wie gerade gesehen gibt es in mIRC eine Vielzahl von eingebauten Identifiers, die man in den Remotes- und Alias-Sektionen verwenden kann. Man kann allerdings auch eigene Identifiers erstellen, und sie so konfigurieren, da� sie im Prinzip alles tun, was man will. Diese benutzerdefinierten Identifiers werden in den Aliases erstellt, und sehen fast gleich aus, mit dem einzigen Unterschied, da� das Ende aus einem /return X besteht. (Anm. d. �bersetzers: In diesem Text �bersetze ich "returns" mit erwidert.) Der Identifier erwidert also, was man m�chte. Zum Beispiel die Summe zweier Zahlen: 

/summe { 
%temp = $1 +$2 
return %temp 


Jetzt kann der Identifier $sum �berall in den Aliases, PopUps und Remotes verwendet werden. Beispiele: 
Als Men�punkt in den PopUps: 
Summe:/say Die Summe von 45 und und 78 ist $sum(45,78) 
Oder in den Aliases: 
/summe /say Die Summe von $1 und $2 ist $sum($1,$2) 

(eine Befehlseingabe wie /sum ... macht keinen Sinn. Es funktioniert nicht.) 

Alle Parameter f�r einen Identifier werden durch Kommata getrennt. Man kann ebenfalls s�mtliche g�ngigen If-Then-Else Strukturen in der Definition von Identifiers verwenden. 
Man kann zum Beispiel erst �berpr�fen, ob alle f�r den Identifier erforderlichen Parameter vorhanden sind, und sonst eine Fehlermeldung ausgeben lassen: 

/prozent { 
if ($1 == $null) || ($2 == $null) { return Fehler: Nicht gen�gend Parameter } 
if ($2 != 1) { %half = $2 / 2 } | else { %half = 1 } 
%dummy = $1 * 100 
%perc = %dummy / $2 
%remainder = %dummy % $2 

if (%perc == 0) { goto return } 
elseif (%remainder >= %half) { inc %perc } 
:return 
return %perc 


Die erste Zeile stellt sicher, da� aller erforderlichen Parameter vorhanden sind. Der Rest ist die Berechnung der Prozentzahl, wobei ein Teil sicherstellt, da� das ganze auf 100% aufgeht. Man k�nnte diesen Identifier jetzt z.B. mit $prozent(56,100) aufrufen. Daraus w�rden sich dann 56% ergeben. Zahlen sind allerdings nicht das einzige, was Identifiers enthalten k�nnen. Man kann sie auch Text oder Kombinationen aus Text und Zahlen wiedergeben lassen, wie z.B. das amerikanische Zeitformat (7:52pm): 

/atime { 
set %hr $token(1,58,$time) 

set %min $token(2,58,$time) 
if (%hr == 0) { set %hr 12 | set %sub am } 
elseif (%hr < 12) { set %sub am } 
elseif (%hr == 12) { set %sub pm } 
else { %hr = %hr - 12 | set %sub pm } 
return %hr $+ : $+ %min $+ %sub 


Mit ein bi�chen Kreativit�t k�nnt Ihr Praktisch f�r alles Identifiers entwickeln, wie z.B. r�ckw�rts Sprechen oder jeden zweiten Buchstaben aufleuchten lassen. 





7.2 Die PopUps-Sektion (Kontextmen�s) 

Popups sind Kontextmen�s, die aufspringen, wenn man die rechte Maustaste klickt. Solltet Ihr diese praktische Funktion noch nicht gefunden habt, dann probiert sie jetzt mal aus. Einige Popups sind in der mitgelieferten Datei vorgegeben, aber man kann sie unter Tools/Popups v�llig ver�ndern und den pers�nlichen Bed�rfnissen anpassen. 


Der mIRC Editor wird mit ge�ffneten Popups starten. Bitte ignoriert im Moment noch die Remotes- und Variablensektion. Der mIRC Editor ist eine einfache und kompakte Schnittstelle zu fast allen programmierbaren Sektionen von mIRC. Der Men�punkt 'File' in der Popups-Sektion k�nnt Ihr Popups laden (load), entladen (unload) und speichern (Save). Das Men� 'Edit* beinhaltet ausschneiden, kopieren und einf�gen (cut, copy, paste) und eine Suchfunktion. 'Popup' zeigt eine �bersicht �ber die gerade ge�ffnete Popup-Datei. 

Im Men� 'View' kann man ausw�hlen, welche Popups man gerade bearbeiten will. Es gibt verschiedene Kontextmen�s je nach Art des Fensters. In einem Channelfenster stehen einem andere Popus zur Verf�gung als in einem Privatfenster (Query). Man kann individuelle Kontextmen�s f�r das Status-, die Channel- und Privat/DCC-Fenster sowie f�r die Nicknamenliste und ein speziellen Punkt in der Men�leiste erstellen. (Alles das wird sp�ter noch erkl�rt) 

Wenn Euer mIRC �ber keine vorgegebenen Popups zu verf�gen scheint (die Popups-Sektion ist dann leer) , dann liegt das vielleicht daran, da� die mitgelieferten .ini-Dateien von der Installationsdatei nicht korrekt in das mIRC-Verzeichnis kopiert worden sind oder der Verzeichnis, wo die Datei popups.ini ist in mIRC nicht korrekt angegeben. Dieses Problem l��t sich aber leicht durch den Men�punkt File/Load im Popupseditor beheben. 

Die Popups-Befehle arbeiten fast genauso wie die der Aliases. Alle Strings, die in Sektion 7.1 behandelt worden sind, k�nnen auch hier verwendet werden. Wenn Ihr die Sektion 7.1 noch nicht gelesen habt, dann tut das bitte jetzt. Ihr braucht die dort behandelten Informationen, bevor Ihr fortfahren k�nnt. 

Lest auch unbedingt die Erkl�rung der Popups in der Hilfedatei und seht Euch die vorgegebenen Popups an. Je mehr Ihr herumprobiert, desto besser werdet Ihr es begreifen. 

Beispiel: /join 

Nehmen wir an, es gibt einen Channel, den Ihr h�ufig betretet - #test. 

Anstatt nun immer /join #test zu tippen, w�re es doch besser, einfach auf die rechte Maustaste zu klicken, und dort mit Hilfe einer automatischen Funktion den Channel zu betreten. 

Das folgende Popup wird genau das tun. Tragt es einfach in Tools/Popups ein. Achtet darauf, da� im Men� 'View' der Punkt 'Status Window' ausgew�hlt ist (nicht Query/Chat, Nicknames List oder Menubar!) 
Den Testchannel betreten:/join #test 

Klickt jetzt einfach im Statusfenster auf die rechte Maustaste, und mIRC wird den Channel #test betreten. 

Beispiel:/away 

Dies ist ein Beispiel von Popups f�r "away" und "back". Man gibt den Grund f�r die Abwesenheit in eine Parameterabfragebox ein, und sendet Ihn an alle Channels, in denen Ihr gerade seit. (/ame f�hrt ein /me in allen Channels aus, in denen man sich gerade befindet.) 
Abwesend....:/ame ist mal gerade weg ($?="Grund eingeben") | /away Bitte sp�ter versuchen ($1) !! 
Zur�ck:/ame ist zur�ck | /away 

Untermen�s 

Wenn man ein paar solcher Popups einf�gen w�rde, dann w�re der Schirm allerdings bei jedem Klick auf die rechte Maustaste v�llig �berf�llt. Man kann die Popups also in Untermen�-Hierarchien organisieren. F�gt mal alle nachstehenden Popups ein: 
Kommentare 
.Hallo:/say Hallo Leute 
.Tsch�s:/say Tsch�s Leute 
.Umarmen:/me umarmt $? feste! 

Hier wird festgelegt, da� sich die letzten drei Befehle unter "Kommentare" befinden, in dem man sie 1) nach "Kommentare" in der gew�nschten Reihenfolge einf�gt, und 2) ein "." (Punkt) voranstellt. 
Wenn Ihr jetzt rechts klickt, dann sehr Ihr den Men�punkt "Kommentare". Wenn Ihr diesen anw�hlt, dann tauchen "Hallo", "Tsch�s" und "Umarmen" auf. Klickt nun auf einen der Unterpunkte, um die oben festgelegte Aktion auszuf�hren. 


Wenn man es richtig kompliziert machen will, dann kann man diese die Untermen�s in sich auch nocheinmal abstufen. Versucht zum Beispiel mal: 
Kommentare �ber Leute 
.Komplimente 
..Nett heute:/say Wow, $? -- du bist ja heute richtig nett! 

..Hilfreich:/say Danke f�r deine Hilfe, $? 
..Freund:/say Ich bin froh, da� $? mein Freund ist! 
.Beleidigungen 
..Flasche:/say Hau ab, du Flasche! 
..Idiot:/me fragt sich, warum sich $? manchmal wie ein Idiot benimmt! 
..Feind:/say Ich bin froh, $? zu meinen Feinden zu z�hlen!! 
.
..und so weiter! Man mu� sie nur mit Hilfe der Punkte vern�nftig sortieren. (Wenn durch die Darstellung oben der Groschen noch nicht so recht f�llt, dann probiert es unbedingt aus. F�gt den oberen Abschnitt unter Tools/Popups. Es wird sofort klar, wenn man sieht, wie es arbeitet). 

Alle Men�punkte der Popups k�nnen �brigens auch auf eine Funktionstaste gelegt werden. Das ist ein handlicher Ersatz f�r h�ufig verwendete Popus... (�berpr�ft die Korrektheit der Syntax und setzt die Belegung der Funktionstasten in die Alias-Sektion. Lest mehr zu diesem Thema in Abschnitt 7.1) 
I
n der Tools/Popups-Sektion findet Ihr unter "View" auch den Punkt Menubar, mit dem man einen Punkt in der Men�leiste frei gestalten kann. Probiert es auch und f�gt die folgenden Zeilen hinzu: 
Abwesend .
Abwesend...:/ame ist abwesend ($?="Grund eingeben") | /away abwesend seit $time ($+ $! $+) | /timer22 5 600 /describe # ist abwesend ($!) .
Zur�ck:/ame ist zur�ck.... jetzt geht des Spa� los! | /away | /timer22 off S

chl�ge .
klatsch:/describe # klatsch $1 eine gefrorene Forelle durchs Gesicht .
Baseball:/describe # zieht $1 seinen Baseballschl�ger �ber den Sch�del! 


7.3 Die Remote Sektion 

Die Remote-Sektion befindet sich unter Tools/Remote... und ist zweifelsohne der am weitesten entwickelte Teil von mIRC. Mit den F�higkeiten dieses Features, kann man mIRC auf eine Weise reagieren lassen, wie es sonst nur fortgeschrittenes Scripting oder spezielle Bot-Software fertig bringt. 

Dinge wie: Dateien zum Download anbieten (eine XDCC-Liste), reagieren auf bestimmten Text im Channel oder in privaten Gespr�chen, benutzerdefinierte Antworten auf CTCP-Anfragen, bequem zu konfigurierende Benutzer-Level f�r Freunde und programmierbare Reaktionen auf fast alle Ereignisse die auf dem IRC auftreten k�nnen... ferner k�nnen f�r die Reaktionen fast alle mIRC-Befehle verwendet werden. 

Die Syntax der Remotes kann zum Teil etwas kompliziert aussehen, ist im Prinzip aber einfach eine Erweiterung der Befehle, die schon im Zuge der Aliases und Popups erkl�rt worden sind. Wenn diese Abschnitte - und ganz wichtig, die Erl�uterung der Strings und Identifiers - verstanden worden sind, dann ist auch dieses Kapitel leicht zu verstehen. Wenn nicht, dann kehrt noch einmal zu den Abschnitten 7.1 und 7.2 zur�ck. Die dort enthaltenden Informationen sind absolut wichtig, um Reaktionen auf IRC-Ereignisse zu programmieren. 

Ebenfalls ist es wichtig, was der Begriff "Remote" bedeutet (deutsch: Fernbedienung). Die Remote-Sektion wurde erstellt, um mIRC auf Aktionen von anderen Usern reagieren zu lassen - es reagiert auf bestimmte Ereignisse auf dem IRC und kann von anderen Usern praktisch ferngesteuert werden. Nat�rlich nur entsprechend der Parameter, die Ihr einbaut! Viele hier beschriebene Funktionen kann man nicht einfach selber testen, indem man den erforderlichen Text einfach selber eingibt. Man braucht die Unterst�tzung von anderen Usern oder mu� schlicht und ergreifend abwarten, bis gewisse IRC-Ereignisse eintreten. 


Die Remotes arbeiten Hand in Hand mit der Users-Sektion. In der Remotes-Sektion werden Scripts, d.h. Programmabl�ufe f�r bestimmte User erstellt. Jedem User in der Users List k�nnen ein oder mehrere Levels zugeordnet werden. Diese Levels bestimmen, wie mIRC auf ein Ereignis eines bestimmten Users reagiert, bzw. auf welche Ereignisse ein User Zugriff nehmen kann. In der Remote (Scripts)-Sektion k�nnen die Programmabl�ufe programmiert werden, in denen festgelegt wird, wie mIRC auf bestimmte Ereignisse und CTCP-Befehle auf dem IRC reagiert. Der mIRC-Standarteinstellung nach werden User List, Variablen und Remotes in der Datei remote.ini gespeichert. 



7.3.1 Die Remote User-Liste 

W�hlt den Punkt Tools/Remote um den mIRC-Editor zu �ffnen. �berpr�ft, ob "Users" als Box aktiv ist. Hier k�nnen nun unterschiedliche Userlevels festgelegt werden. Ihr k�nnt Levels f�r Eure Freunde und auch f�r Eure Feinde einstellen und eine sogenannte "Shitlist" erstellen (User, die in einer Shitlist erfa�t sind, werden gekickt, sobald sie einen Channel betreten). 


Wozu ist das alles notwendig? Nehmen wir an, Ihr habt ein Remotescript verfasst, da� jemanden f�r die Benutzung des Wortes "Nonsens" aus dem Channel kickt (denkt Euch einfach irgendein Schimpfwort stattdessen =) Wir erkl�ren sp�ter in Abschnitt 7.3.3 noch genauer, wie das funktioniert. Jetzt ist erst mal nur die Idee wichtig. 


Okay, vielleicht will man aber nur die �blichen User f�r die Benutzung von "Nonsens" kicken. H�ufiger gesehene Leute sollen nur gewarnt werden und von den engen Freunden wird es ignoriert. Und v�llig unbekannte User sollen direkt gekickt und gebant (ausgeschlossen) werden. 

Um unterschiedliche Antworten f�r verschiedene User zu erm�glichen, mu� eine User List aufgesetzt werden. Jedem User wird ein Nickname und/oder eine Adresse, so wie das Userlevel zugeordnet, da� Ihr ihm geben m�chtet. 
Hier ist ein Beispiel f�r eine g�ltige User List: 

1:nick1 
1:nick2 
2:nick3!Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! 
2:*!Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! 
3:*!*@machine.subnet.edu 
4:*!*@*subnet.edu 
5:*!account@*.subnet.edu 
10:euernick!Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! 

Die Zahlen f�r das Userlevel sind v�llig Euch �berlassen. Wie Ihr in den n�chsten zwei Abschnitten seht, k�nnt Ihr entscheiden, was ein bestimmter User mit einem speziellen Level tun kann oder nicht. Standardm��ig ordnet mIRC jedem, der in der User List noch nicht erfa�t ist, das Level 1 zu, Ihr k�nnt aber auch dieses unter Tools/Remote/Options/"Default User Level" �ndern. 

Wenn Ihr verschiedenen User unterschiedliche Levels zugeordnet habt, dann sind nat�rlich auch darauf zugeschnittene Reaktionen erforderlich, die den entsprechenden User erlauben, auf sein Level zuzugreifen. Das wird aber sp�ter noch erl�utert. Wie Ihr sehen k�nnt, sind sowohl Nicknamen als auch Adressen in der User List zugelassen. Auch Wildcards (* Sternchen) sind erlaubt. In einigen F�llen m�chtet Ihr User vielleicht per Nickname und Adresse spezifizieren. Diese F�lle (mit den OP, DEOP, SERVEROP,... und NOTIFY Events) werden in Abschnitt 7.3.3 erkl�rt. 

Man mu� die User List nicht komplett per Hand erstellen... man kann auch mIRCs Editbox oder die Befehle /auser, /guser und /ruser verwenden. 

/auser /auser {Level} {Nickname oder Adresse} 
"Auser" (Add user) f�gt den spezifizierten Nicknamen oder Adresse in die User List ein, und zwar mit dem festgelegten Level. Die G�ltigkeit der Adresse wird nicht �berpr�ft, d.h. so exakt aus den Befehlsparametern �bernommen. 

/guser /guser {Level} {Nick} {Typ} 
"Guser" (Get User) f�gt den spezifizierten Nicknamen mit Adresse in die User List ein. Um das zu bewerkstelligen, f�hrt mIRC einen /whois auf den angegebenen Nicknamen aus und setzt die empfangene Adresse in die User List. Das bedeutet nat�rlich auch, da� der hinzuzuf�gende Nickname gerade auf dem IRC sein mu�, damit der /guser-Befehl funktioniert. Wenn man einen speziellen Typ festlegt, dann verwendet mIRC besondere Wildcards (* Sternchen) in der Adresse (Anmerkung d. �bersetzers: Wilcards sparen bestimmte Abschnitte der Adresse aus. Dies ist zum Beispiel f�r User notwendig, deren Adresse sich jedesmal durch die zuf�llige IP-Adressenvergabe bei der Modemeinwahl ergibt). Diese Typen sind dieselben, die auch beim /ban-Befehl verwendet werden. Die m�glichen Parameter reichen von 0 bis 9 (siehe unten). 

/ruser /ruser {Nick oder Nick! oder Adresse oder Nick [Typ]} 
"Ruser" (Remove User) entfernt einen Nicknamen oder eine Adresse von der User List. Ihr m��t genau wissen, wie der Nick oder die Adresse in der User List verzeichnet sind, damit der Befehl arbeitet. Wenn jemand z.B. so eingetragen ist: nick!Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! dann kann man ihn auch mit '/ruser nick!' entfernen. Denkt an das Ausrufezeichen, damit die gesamte Zeile gel�scht wird. F�r mIRC wurde ein verbesserter /ruser-Befehl erstellt, der so arbeiten kann, wie /ban oder /guser. '/ruser {nick} [Typ]': Wenn kein Typ festgelegt wird, dann entfernt mIRC ganz normal den Nicknamen von der User List. Wenn aber ein Typ angegeben wird, dann wird die Adresse des Nicks festgestellt, und diese dann von der User List gel�scht. 


Anmerkung: Die Verwendung von verschiedenen Adresstypen erlaubt die Spezifizierung eines Users, oder gleich einer gesamten Gruppe von Leuten, je nach Verwendung von mehr oder weniger Wildcards. Hier sind einige Resultate: 

Wenn kein Typ festgelegt wird, dann wird standartm��ig Typ 6 verwendet: 

Typ 0; *!Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! 
Typ 1; *!*Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! 
Typ 2; *!*@Wit399402.student.utwente.nl 
Typ 3; *!*vonck@*.student.utwente.nl 
Typ 4; *!*@*.student.utwente.nl 
Typ 5; Kreet!Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! 

Typ 6; Kreet!*Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! 
Typ 7; Kreet!*@Wit399402.student.utwente.nl 
Typ 8; Kreet!*vonck@*.student.utwente.nl 
Typ 9; Kreet!*@*.student.utwente.nl 

!Eine letzte Anmerkung: Als Userlevel kann jetzt sogar ein Wort festgelegt werden, z.B. so: 
mircop:*!*@mardam.demon.co.uk 
Das kann man nun zum Beispiel so mit einem Event verkn�pfen: 
on mircop:JOIN:#mirc:/mode $chan +o $nick 

mIRC besitzt eine interne Datenbank der Leute, die gerade mit Euch auf den selben Channels sind. Diese Datenbank wird verwendet, um die Befehle /ban, /guser und /ruser erheblich zu beschleunigen. Diese Befehle f�hren einen /whois auf die entsprechende Person aus. Die Interne Adressenliste (IAL) speichert diese Information im Format nick!Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!main f�r alle User, die mit Euch auf den selben Channels sind. Wenn nun ein /ban, /guser, /ruser, /ignore, /dns oder /finger ausgef�hrt wird, dann wird zuerst diese Liste durchsucht. Erst wenn hier keine �bereinstimmung gefunden wird, startet mIRC das �bliche /whois-Zeug. Das wird Eure Bans erheblich beschleunigen, besonders, wenn Eure Verbindung gerade etwas schleppt (Im IRC-Slang: to be lagged). Die interne Adressenliste aktiviert Ihr unter Tools/Remote/Options. Schaltet sie EIN. 


7.3.2 Remote Scripts - CTCP Befehle 

W�hlt in mIRC den Men�punkt Tools/Remote um den mIRC-Editor zu �ffnen. Hier kann man definieren, wie mIRC auf die "Umwelt" des IRC reagiert. Zwei getrennte Gruppen von Reaktionen sind m�glich: Reaktionen auf CTCP-Befehle und auf Ereignisses (Events). In diesem Abschnitt besprechen wir die CTCP-Befehle. 

Einf�hrung - Remote Commands reagieren auf eine sehr speziefische Befehlsform, den CTCP-Befehl. CTCP ist eine Abk�rzung und steht f�r "Client To Client Protokoll". Die Remote-CTCP-Befehls-Sektion kann eine Sache - und nur eine. Sie kann auf CTCP-Befehle reagieren - in der Weise, wie Ihr es w�nscht. 

Es gibt einige schon anhand der IRC RFC vordefinierte CTCPs. Die �blichen sind version, ping, time, userinfo, clientinfo und finger. Jeder IRC-Client wird einer standardisierten Art und Weise auf diese Befehle reagieren. Diese CTCP-Befehle werden einem in diesem Format gesendet: 
/ctcp {euernick} {Befehle mit Parametern, wenn welche existieren} 
Nehmen wir das Beispiel des Pings. Der andere User w�rde in diesem Fall folgendes tippen: /ctcp {euernick} ping 

Man kann sich auch selber einen Ping-Befehl schicken. Versucht es mal: /ctcp {euernick} ping 

Unter normalen Umst�nden sendet mIRC einen Standart Ping Reply (Antwort) [ctcp seinnick pong]. Aber mit den Remote-CTCPs k�nnt Ihr die Standartantwort des Programms auf einen Ping ver�ndern. Es kann fast alles tun, was Ihr wollt, wenn es einen Ping erh�lt. Es kann standartm��ig reagieren, oder auch nicht. Es liegt an euch. Es gibt EINE aus Ausnahme: Ihr k�nnt NICHT euren mIRC-Version-Reply unterbinden... Wir lieben Werbung, wi�t ihr... 

Ihr k�nnt auch neue CTCP-Befehle und Antworten darauf entwerfen. So funktionieren zum Beispiel Features wie Dateien-Angebot (XDCC, LIST und SEND). 

Zun�chst aber zur�ck zu unserem PING Bespiel. 

Beispiel: Benutzerdefinierte Ping-Antwort 
�ffnet Tools/Remote und schaut unter 'View', ob schon ein Script namens commands.ini oder ctcp.ini schon existiert. Wenn ja, w�hlt die Datei aus, und f�gt die Zeilen hinzu und �ndert sie. Wenn nicht, dann geht unter den Men�punkt 'File' und w�hlt 'New' um eine neue Datei zu erstellen. Versichert Euch, da� unter 'Listening' der Punkt ctcp ausgew�hlt ist! (Wenn nicht, dann werden CTCP-Befehle ignoriert). 

Jetzt setzt die folgende Zeile in die existierende oder neue Script-Datei. 
ctcp 1:ping:/notice $nick ping? Hmmmm.... PANG PANG PANG!! 

Wenn Euch nun jemand pingt, dann bekommt er als Antwort " ping? Hmmmm.... PANG PANG PANG!!" in Form einer Notice (Benachrichtigung). Hinzu kommt noch die Standardantwort 'pong'. Ihr k�nnt das durch /ctcp {euernick} ping testen. Wenn es nicht funktioniert, dann �berpr�ft, ob mIRC gerade auf CTCP-Befehle reagiert. Aktiviert die Funktion mit /remote on und/oder /ctcps on. 

Wenn Ihr wollt, da� mIRC die Standardantwort unterdr�ckt, dann k�nnt Ihr die weitere Bearbeitung mit dem Befehl /halt unterdr�cken. Verwendet ihr wie folgt: 
ctcp 1:ping: /notice $nick ping? Hmmmm.... PANG PANG PANG!! | /halt 

Dies wird das selbe tun, wie vorher, nur da� es die Standardantwort nicht absetzt. 
Wie schon gesagt, testet es und seht den Unterschied. 

Die Syntax der Remote CTCP-Befehle 

Remote-Befehle bestehen bis auf ein paar speziellen F�llen immer aus drei Abschnitten, die von einander mit Doppelpunkten abgegrenzt sind. Die generelle Syntax sieht so aus: 

ctcp {Befehls-Level}:{CTCP-Befehl}:{Ausgel�ste(r) Befehl(e) mit Parameter(n)} 

Wir schauen uns die Anschnitte einmal einzeln an: 

ctcp Dies sagt mIRC, da� die Definition f�r eine Reaktion auf einen CTCP-Befehl folgt. 
{Befehls-Level} Dieser Befehl wird Usern antworten, deren Userlevel gleich hoch ist, wie das Befehlslevel oder gr��er, es sei denn f�r Ihr (gr��eres) Level ist ein anderer Befehl definiert. 
{CTCP-Befehl} Der CTCP-Befehl kann hei�en wie Ihr wollt. Es kann ein Standart-CTCP-Befehl wie Ping oder Version sein, aber auch eine Eigenkreation. 
{Ausgel�ste(r) Befehl(e) 
mit Parameter(n)} Hier werden die auszul�senden Befehle definiert. Das Format und die Verwendung von Mehrzeilenbefehlen funktioniert genauso wie in den Aliases und Popups. Die Strings werden in dieser Sektion automatisch von mIRC belegt. Ihr m��t nur sichergehen, da� die von Euch eingesetzten Strings auch alle definiert werden, d.h. in den Remote Commands Sinn machen. (z.B. $chan wird in den Remote Commands NICHT definiert!!!) 

Schauen wir noch mal nach unserem Ping-Beispiel und nehmen wir es auseinander: 
ctcp 1:ping:/notice $nick Hmmmm.... PANG PANG PANG!! 

Die Voranstellung von ctcp teilt mIRC mit, da� die Definition eines Remote Befehls folgt. Im selben Script k�nnen auch noch Aliases, Events und Antworten auf numerische Server-Ereignisse (Raw Definitions) festgelegt werden. Aber dazu sp�ter. 

1 ist das Befehlslevel. Alle User mit dem Userlevel 1 oder h�her k�nnen diesen Befehl ausl�sen. 

Ping ist der CTCP-Befehl, auf den der Remote-Befehl reagieren wird. 

Der ausgel�ste Befehl ist eine /notice, die an $nick �bermittelt wird und die gesamte Zeile "Hmmmm.... PANG PANG PANG!!" enth�lt. $nick ist der Identifier, der den Nicknamen der Person enth�lt, die Euch den CTCP-Befehl �bermittelt hat. 

Fassen wir zusammen: der Effekt des Befehls "/ctcp {euernick} {ping}" ist "/notice {nick} Hmmmm.... PANG PANG PANG!!. Er wird ausgef�hrt, sobald ein CTCP Ping empfangen wird. 
Unterschiedliche Reaktionen auf Leute mit verschiedenen Userlevels 
Ihr k�nnt die Reaktionen auf CTCP-Befehle sehr fein abstufen, indem Ihr ihnen verschiedene Levels zuordnet. mIRC antwortet immer mit dem passenden Befehl, der am dichtesten an die H�he des Userlevels der Person heranreicht, die den Befehl gegeben hat. Analysieren wir mal die folgenden Zeilen... 

ctcp 1:ping:/notice $nick ping? Hmmmm Dein Level ist zuuu niedrig!!... | /halt 
ctcp 2:ping:/notice $nick ping? Hmmm! ...pang pang .... Fast tot !! 
ctcp 3:ping:/notice $nick ping? ...pang !! Hmmm... daneben... 
ctcp 6:ping:/notice $nick ping? Hmmm! ...Na gut.. ich mag dich, du darfst mir einen Ping senden... 

Ein Level 1-User wird keinen Ping-Reply bekommen, daf�r aber ein nettes " Hmmmm Dein Level ist zuuu niedrig!!..." 
Ein Level 2-User (2:nick3!Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!) wird es kaum �berleben, wenn er Euch pingt :o) Er wird folgendes sehen:" Hmmm! ...pang pang .... Fast tot !!" 
Ein Level 3-User (3:*!*@machine.subnet.edu) bekommt:" ...pang !! Hmmm... daneben...". 
Level 4 und 5 ist keine spezifische Reaktion zugeordnet, sie bekommen also die Reaktion, die am h�chsten an Ihr Userlevel heranreicht. Das ist in diesem Falle Level 3 also bekommen sie auch alle die Level 3-Antwort. 
Level 6-User und User mit h�herem Level bekommen alle die Level 6-Antwort. 

Diese Einstufung funktioniert bei allen Remote Commands und Events (Befehlen und Ereignissen)... 
�berpr�ft, ob Ihr diesen Abschnitt verstanden habt. Sonst lest Ihn nocheinmal durch?? 
Spezielle Identifiers f�r Remote/Commands 

$nick, $address, $site, $level, etc. sind alles Identifiers, die speziell f�r die Verwendung in der Remote-Sektion erstellt wurden. Alle �blichen Strings (Abs. 7.1.2) k�nnen aber auch verwendet werden. Ihr k�nnt sie �berall in den Befehlszeilen einsetzen, die durch CTCP-Befehle ausgel�st werden. 

$nick Der Nickname der Person, die den CTCP-Befehl gesendet, oder ein spezielles Ereignis (Event) ausgel�st hat. 
$address Die volle Adresse der Person, die den CTCP-Befehl gesendet, oder ein spezielles Ereignis (Event) ausgel�st hat. 
$site Erwidert die Adresse des Users, der das Event ausgel�st hat im Format adresse.de 
$wildsite Erwidert die Adresse des Ausl�sers im Format *!*@host.domain 
$level Das Userlevel der Person, die den CTCP-Befehl gesendet, oder ein spezielles Ereignis (Event) ausgel�st hat. 

Anmerkung: Der Identifier $chan ist normalerweise in den Remote Commands nicht definiert... $chan enth�lt den Namen des Channels, auf dem ein bestimmtes Ereignis ausgel�st wurde. CTCP-Befehle werden nicht immer �ber Channels an euch gesendet, oder die Person, die den Befehl sendet, kann auf mehreren Channels sein. Seht Ihr den Sinn?? Vielleicht hilft euch $active weiter? Oder $target? 

Beispiel: Hier ist ein Beispiel, da� den vordefinierten Identifier $address enth�lt: 
ctcp 1:adresse:/notice $nick Deine Adresse lautet: $address 

Wenn Euch ein User nun den Befehl '/ctcp {euernick} adresse' �bermittelt, dann antwortet Ihr mit einer Notice welche "Deine Adresse lautet: {was immer seine oder ihre Adresse ist}" enth�lt. 
(
Anmerkung d. �bersetzers: Verge�t nicht, da� "address" im englischen mit zwei "d" geschrieben wird, im Deutschen aber mit einem! Das hat mir zu Anfang viel Kopfzerbrechen bereitet, da man es durch Fl�chtigkeit leicht �bersehen kann) 

Beispiel: Freunden auf Anfrage Operator Status geben 

Wenn Euch noch nicht klar ist, wie all dies prinzipiell funktioniert, dann macht Euch keine Gedanken. Folgt einfach den Beispielen bis der Groschen f�llt. Wenn n�tig, lest die vorhergehenden Passagen noch einmal. Versucht aber noch nicht, Eure eigenen Remote Commands zu schreiben oder zur n�chsten Passage weiterzubl�ttern, bis der Groschen gefallen ist. 

ctcp 1:opmich:/notice $nick Sorry, du wirst auf $2 kein Ops bekommen. Dein Level reicht nicht aus... 
ctcp 5:opmich:/mode $2 +o $nick 

Wenn ein Freund mit Userlevel 5 Euch nun einen '/ctcp opmich {#channelname} sendet, dann wird ihnen der Remote-Befehl Ops auf dem angegebenen Channel geben. Level 1 User werden keinen Ops bekommen, was immer sie auch versuchen. 

Das Parameter $2 bezieht sich auf das zweite Wort im CTCP-Befehl. In diesem Fall ist es der Channelname. ($1 w�re das Wort 'opmich') 

Der String $2- kann verwendet werden, um lange Zeilen zu verarbeiten, die ein Remote-User in einem CTCP-Befehl �bermittelt. 
ctcp 5:return:/notice $nick $2- 
Dieser Befehl wird jeden Satz, den ein Remote-User sendet, an Ihn zur�ck�bermitteln. Die gesamte Zeile nach dem CTCP-Befehlsnamen befindet sich in dem String $2-. 
Ein an Euch gerichteter Befehl '/ctcp {euernick} Bla Fasel Schw�tz Sabbel' l��t mIRC den folgenden Befehl ausf�hren: '/notice Freund Bla Fasel Schw�tz Sabbel'. 

Mehrzeilenbefehle 

Ein empfangener CTCP-Befehl kann durchaus auch mehrere Befehle ausl�sen... 
ctcp 5:opmich:/mode $2 +o $nick | /notice Du hast jetzt Operator Status auf Channel $2 

Wenn Euer Level 5-Freund den Befehl '/ctcp {euernick} opmich #Channelname' sendet. 


Was also passiert? I
n der Tat werden zwei Aktionen durch den CTCP-OPMICH-Befehl ausgel�st. 

erstens: /mode #Channelname +o Freund z
weitens: /notice Freund Du hast jetzt Operator Status auf Channel #Channelname 

Noch ein CTCP-Befehl, der einen Mehrzeilenbefehl ausl�st: 
ctcp 10:part:/part $2 | /notice $nick Ich habe den Channel $2 verlassen 

Wenn nun von einem Level 10-User der Befehl '/ctcp {euernick} part #Channelname' eingeht, dann wird mIRC erst den Channel verlassen, und dem Sender des Befehls dann eine Best�tigung senden. 
$2 enth�lt den zu verlassenden Channel 
$nick ist der Nickname der Person, die angefragt hat 

Andere Beispiele 


ctcp 1:ping:/notice $nick Bitte sende mir keine Pings! .
..w�rde mit '/notice {nick} Bitte sende mir keine Pings!' antworten. 

ctcp 5:time:/notice $nick Zeit sich eine Uhr zu kaufen! .
..w�rde mit '/notice $nick Zeit sich eine Uhr zu kaufen!' antworten. 
ctcp 10:/notice $nick Ich bin der, der ich sage | /notice $nick Und ich sage, ich bin DU!! 
...w�rde antworten: 1) "/notice $nick Ich bin der, der ich sage", 2) "/notice $nick Und ich sage, ich bin DU!!" 



7.3.3 Remote Scripts - Ereignisse (Events) 

W�hlt den Punkt Tools/Remote um den mIRC-Editor zu �ffnen, dann aktiviert unter 'View' die Datei events.ini. Wenn kein Event-Script verf�gbar ist, dann ladet die mitgelieferte Script-Datei oder erstellt eine neue mit File/New. Eine neu angelegte Datei wird standardm��ig script1.ini genannt. 

Wie Ihr gesehen habt, befassen sich Remote-CTCP-Scripts nur mit CTCP-Befehlen. Die Remote Ereignisse (mIRC-intern Events genannt) befassen sich mit den anderen Dingen, die auf dem IRC passieren k�nnen. Das klingt vielleicht gewaltig, aber keine Sorge. Wie schon erkl�rt, bauen die Lektionen auf einander auf. Wenn Ihr die Remote Commands begriffen habt, dann werden die Remote Events ein Kinderspiel. Die Schwierigen Dinge habt Ihr im letzten Teil schon gelernt. 

Warnung: �blicherweise reagiert mIRC ziemlich sensibel auf fehlerhafte Remote-Events-Syntax. Wenn in den Scripts Fehler gemacht werden, dann kann das durchaus in einem GPF enden. (GPF ist die Abk�rzung f�r General Protection Fault. In der deutschen Windows-Version wohl bekannt als Adressenschutzverletzung). Wenn also pl�tzlich Stabilit�tsprobleme auftreten wo vorher keine waren, dann schaut mal zuerst hier nach. 

Die Syntax f�r Remote Events 

Folgende Remote Events gibt es: TEXT, INPUT, JOIN, PART, KICK, OP, DEOP, BAN, UNBAN, INVITE, NICK, QUIT, TOPIC, SERVEROP, NOTIFY, UNOTIFY, MODE, USERMODE, SERVERMODE und SMODE. Neben dem TEXT Event sind die �hnlich arbeitenden ACTION, NOTICE, NOTICE, CHAT, SERV und WALLOPS verf�gbar. Neu hinzugekommen sind FILESENT, FILERCVD und NOSOUND sowie CHATOPEN, CHATCLOSE, SERVOPEN und das SERVCLOSE Event. (ich hoffe, ich habe keine vergessen!) CONNECT, DISCONNECT, MIDIEND,.... 

Was genau sie tun und wie man sie benutzt, besprechen wir in K�rze. Erstmal schauen wir uns ein paar kurze Beispiele an, um die Syntax zu verstehen. Sie sieht im Prinzip genau wie die der Remote Commands aus. Hier ein Beispiel f�r ein Remote Event, da� auf Text reagiert: 
on 1:TEXT:hallo:#:/msg $nick Hallo auch! 

Schaut mal in Tools/Remote nach, ob da schon ein Script namens events.ini vorhanden ist. Wenn nicht, dann erstellt unter FileNew eine neue Datei. Schaut unter "Listening" nach, ob der Punkt "Events" aktiviert ist. (Wenn diese Funktion nicht aktiviert ist, wird mIRC auf die definierten Ereignisse nicht reagieren). 
�bertragt nun die obenstehende Zeile in eine neue oder vorhandene Datei ein. 


Dieses Remote-Ereignis wird ausgel�st, wenn in einem aktiven Channel das Wort "hallo" gefunden wird. mIRCs Antwort besteht in einer privaten Nachricht mit dem Inhalt "Hallo auch!". 
Hier ist noch ein anderes Beispiel, diesmal mit JOIN: 
on 1:JOIN:#:/notice $nick Herzlich Willkommen auf Channel $chan 

Dieses Remote-Ereignis reagiert immer dann, wenn ein User einen Channel betritt, auf dem Ihr auch gerade seid. Es wird eine private Nachricht mit dem Inhalt "Herzlich Willkommen auf Channel {Channelname}" gesendet. 

Wenn Ihr es bis hier geschafft habt und die Remote Commands verstanden habt, dann sollte Euch der Rest sehr leicht fallen. Remote-Ereignisse bestehen normalerweise aus 4 Teilen, getrennt durch Doppelpunkte. Ausnahmen sind die Events TEXT, welches sich aus 6 Teilen zusammensetzt und NICK, welches aus 3 Teilen besteht. 

Alle Events bis auf TEXT, NOTICE, SNOTICE, ACTION, QUIT und NICK sehen von Ihrer Struktur so aus: 


on Dieses Pr�fix signalisiert mIRC, da� ein Event folgen wird 
{Event-Level}:{Event}:{wo ausgel�st}:{Ausgel�ste(r) Befehl(e) mit Parameter(n)} 

{Event-Level} Dieses Event reagiert nur auf Ereignisse der User mit diesem Level oder h�herem, wenn f�r Ihr Level nicht ein eigenes Event definiert wurde. 
{Event} Der Name des Events, auf das reagiert werden soll, wie z.B. JOIN, OP, etc... 
{Wo ausgel�st} #, #Name. Wo soll auf das Erscheinen dieses Events geachtet werden? Entweder # f�r jeden Channel, oder #Name f�r einen bestimmten Channel (wie #test). Man kann das Event auch so definieren, da� es auf mehreren bestimmten Channels ausgel�st wird: 

on 1:TEXT:hallo*:#chat,#help,#mirc:/msg $nick Hallo auch! 

Ausnahme: Dies gilt nicht f�r NICK und QUIT! 
{Ausgel�ste(r) Befehl(e) mit Parameter(n)} Die auszul�senden Befehle. Es funktioniert genauso wie in den Remote-Commands, nur halt mir anderen vorangestellten Parametern. 

...und die gro�en Ausnahmen sind die Events TEXT, ACTION, NOTICE, SNOTICE, CHAT und SERV, welche so funktionieren: 

on Dieses Pr�fix signalisiert mIRC, da� ein Event folgen wird 
{Event-Level}:{Event}:{Welcher Text}:{wo ausgel�st}:{Ausgel�ste(r) Befehl(e) mit Parameter(n)} 

{Event-Level} siehe oben 
{Event} eine der oben aufgef�hrten Ausnahmen 
{Welcher Text} Welches Wort, oder welcher Text soll das Event ausl�sen? Wie z.B. "hallo" im Beispiel oben 
{wo ausgel�st} #, #name, ?, * Genau wie oben kann man dem TEXT Event vorschreiben, wo es nach bestimmtem Text suchen soll. Auf allen Channels (#), auf einem oder mehreren bestimmten Channels (#Name), in privaten Unterhaltungen (?), oder �berall (*). Die Events TEXT und ACTION reagieren allerdings nicht auf Text in DCC Chats oder DCC Server-Fenstern. NOTICE reagiert auf Text in Notices, CHAT auf Text in DCC Chats und SERV auf Text in einem DCC Server-Fenster. 
{Ausgel�ste(r) siehe oben 
Befehl(e) mit 
Parameter(n)} 

Die verf�gbaren Events 

Nun folgt die Beschreibung der verschiedenen Events, auf die mIRC reagieren kann... 

TEXT Event 

Reagiert, wenn ein definierter Text im Channel oder in einer privaten Unterhaltung auftaucht. ACTION und NOTICE funktionieren genauso. 


Beispiel: 
on 1:TEXT:nonsens:#:/kick $chan $nick Kein Nonsens!! 
Dieses Event achtet in allen Channels auf das Wort "Nonsens", und kickt den User, der es gesagt hat. 

Beispiel: 
on 1:TEXT:nonsens:#test:/kick $chan $nick | /notice $nick Hallo $nick ! Du hast Nonsens gesagt, das ist auf Channel #test nicht erlaubt... 

Wenn das Wort "Nonsens" in #test gesagt wird, dann wird der entsprechende User gekickt (nat�rlich nur, wenn man auf #test auch Op ist) und er erh�lt eine Notice mit dem Inhalt "Hallo {Nickname} Du hast Nonsens gesagt, das ist auf Channel #test nicht erlaubt..." 


Beispiel: 
on 5:TEXT:hilfe:?:/notice $nick Ich w�nschte, ich k�nnte Dir helfen. Aber ich kann nicht. 

Dieses Event reagiert, wenn das Wort Hilfe alleinstehend in einer privaten Unterhaltung gefunden wird. Man kann Wildcards (* Sternchen) in den Text einbauen, auf den mIRC reagieren soll: 

* Reagiert auf jeden Text 

=wort Nicht l�nger unterst�tzt (weil nicht mehr ben�tigt)! 
wort* Wenn ein User einen Satz mit diesem Wort startet, dann wird das Event ausgel�st. 
*wort Wenn ein User einen Satz mit diesem Wort beendet, dann wird das Event ausgel�st. 
*wort* Wenn ein User dieses Wort irgendwo im Satz benutzt, dann wird das Event ausgel�st. 
wort Eine exakte �bereinstimmung wird ben�tigt, um das Event auszul�sen. 

Wie schon gesagt, reagiert das letzte Beispiel nur, wenn eine exakte �bereinstimmung vorliegt, d.h. ein User einzig das Wort "Hilfe" sendet und nicht, wenn es nur irgendwo in einem Satz auftaucht. 
Beispiel: 
on 5:TEXT:hallo*:?:/notice $nick Hallo auch! 

Dieses Beispiel reagiert nur, wenn ein anderer User eine private Nachricht schickt, die mit "Hallo" beginnt. (Anmerkung des �bersetzers: Die korrekte Gro�- und Kleinschreibung ist in der Definition des Textes nicht wichtig) 

Andere Beispiele: 
on 1:TEXT:werbinich:*:/notice $nick Dein Userlevel ist $level 
on 1:TEXT:*ok:/msg $nick Dein Satz endete mit "ok" 

ACTION Event 

Siehe TEXT Event. Es funktioniert genauso. ACTION reagiert auf Aktionen (/me), die an Euch in privaten Gespr�chen oder an die Channels gesendet werden, auf denen Ihr Euch gerade befindet. 

NOTICE Event 

Siehe TEXT Event. Es funktioniert genauso. NOTICE reagiert auf Notizen, die an Euch oder die Channels gesendet werden, auf denen Ihr Euch gerade befindet. 

CHAT Event 

Reagiert, wenn ein definierter Text in einem DCC Chat-Fenster gefunden wird. 

SERV Event 

Reagiert, wenn ein definierter Text in einem DCC Server-Fenster gefunden wird. 

Die beiden letzten Events k�nnen verwendet werden, um auf bestimmten Text in DCC Chat- und Fileserver-Fenstern zu achten. Sie arbeiten fast wie TEXT. Nat�rlich fehlt der Teil {Wo ausgel�st}. Hier mu� eine wichtige Anmerkung gemacht werden: f�r CHAT und SERV k�nnen keine verschiedenen Event-Levels festgelegt werden! Sie k�nnen also nicht auf verschiedene User mit unterschiedlichen Levels individuell reagieren. Ich wei�, dieses Problem ist verwirrend, kann aber leider nicht behoben werden. Aufgrund der direkten Client-zu-Client-Verbindung bei DCCs, kann mIRC den Nicknamen und die Adresse nicht mehr feststellen, sobald eine Verbindung steht. Sorry, Leute! Verwendet f�r CHATs und SERVs einfach Level 1. 

Beispiele: 

on 1:CHAT:blabla:/msg $me $nick hat zu dir " $1- "in einem DCC Chat gesagt 
In einem SERV Event kann man auch den speziellen Identifier $cd verwenden. CD steht f�r Current Directory (Aktuelles Verzeichnis). 
on 1:SERV:dir:/msg = $+ $nick Aktuelles Verzeichnis ist $cd (
Das dem Nicknamen vorangestellte "=" signalisiert mIRC, da� die Nachricht �ber die DCC-Verbindung gesendet werden soll) 
JOIN Event 

Dieses Event spricht an, wenn ein User einen Channel betritt. 

Beispiel: 
on 1:JOIN:#test:/notice $nick Willkommen im Test-Channel! 
Sendet eine Notiz mit dem Inhalt " Willkommen im Test-Channel!" an jeden, der den Channel #test betritt. 

Beispiel: 
on 25:JOIN:#cool:/kick $chan $nick Du bist hier nicht willkommen!! 
Kickt jeden Level 25 User bei betreten des Channels mit der Nachricht " Du bist hier nicht willkommen!!" 

PART Event 

Dieses Event reagiert, wenn ein User einen Channel verl��t. 

Beispiel: 
on 10:PART:#:/notice $nick Hey, danke, da� du im Channel $chan vorbeigeschaut hast! 
Sendet eine Notiz mit dem Inhalt " Hey, danke, da� du im Channel $chan vorbeigeschaut hast!" an jeden Level 10 User, der den Channel verl��t. 

Beispiel: 
on 90:PART:#:/msg $chan Yuppieeehh!!! $nick ist weg!! 
Sendet eine Nachricht an den Channel, wenn ihn ein Level 90 User verl��t. 

CONNECT Event 

Das CONNECT Event tut im Prinzip das selbe, wie die Sektion "Perform" unter File/Options. Es wird immer dann ausgel�st, wenn sich mIRC mit einem IRC-Server verbunden hat, und die MOTD fertig gescrollt ist. 
on 1:CONNECT:/echo Erfolgreich mit $server verbunden! 
DISCONNECT Event 

Wird ausgel�st, wenn mIRC die Verbindung zum IRC-Server verliert. 
on 1:DISCONNECT:/echo Huch! Verbindung verloren! 

KICK Event 

Wird ausgel�st, wenn ein User von einem Channel gekickt wird 

Beispiel: 
on 100:KICK:#:/kick $chan $nick | /invite $knick $chan | /notice $nick Diese Person ist mein Freund! 
Wenn ein Level 100 User aus einem Channel gekickt wird, dann kickt mIRC denjenigen, der den Kick get�tigt hat. Anschlie�end wird der gekickte Freund eingeladen, den Channel wieder zu betreten (invite) und der "Kicker" bekommt eine Notiz mit dem Inhalt "Diese Person ist mein Freund". 

Anmerkung: $knick ist der Identifier f�r den Nicknamen des Users, der gekickt worden ist. Beachtet auch, da� es sich hier um einen Mehrzeilenbefehl handelt. Es funktioniert wie in den Remote Commands. 

OP Event 

Wird ausgel�st, wenn ein User Operator Status bekommt (geopt wird). 

Beispiel: 
on 1:OP:#test:/notice $opnick Du hast von $nick Operator Status bekommen. 
Wenn jemand auf #test geopt wird, dann wird diesem User eine Notiz mit dem Inhalt "Du hast von {dem User, der ihn geopt hat} Operator Status bekommen." geschickt. 

Anmerkung: $opnick ist in diesem Event der Nickname desjenigen, der Operator Status bekommen hat. 

DEOP Event 

Wird ausgel�st, wenn ein User Operator Status entzogen wird (deopt wird). 

Anmerkung: Dieses Event erfordert die Auff�hrung des Nicks in der Remote-Userliste! 

Beispiel: 
on 1:DEOP:#:/msg $opnick Pech gehabt! Du wurdest von $nick deopt! 
Wenn jemand deopt wird, dann wird ihm eine Nachricht mit dem Inhalt " Pech gehabt! Du wurdest von {der Person, die ihn deopt hat} deopt! 
Anmerkung: $opnick ist der Nickname des deopten Users in diesem Fall. 

Wichtig: Bei der Erkl�rung der Events OP, DEOP, SERVEROP und NOTIFY mu� eine wichtige Anmerkung gemacht werden. Aufgrund der Tatsache, da� der Server beim Open, Deopen oder Sichten auf einem Channel oder dem IRC nur die Nicknamen der User �bermittelt (nicht die vollen Adressen), m�ssen die User, auf die sich diese Events auswirken sollen auch per Nickname in der Remote-Userliste verzeichnet sein. Die volle Adresse (nick!Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!) reicht nicht. mIRC kann aus so einem Eintrag den Nick nicht herausfiltern. Die Ausnahme ist nat�rlich, wenn das Zugangslevel f�r dieses Event auf 1 gesetzt wird, d.h. alle potentiellen User betroffen sind. In diesem Fall m�ssen die User nicht aufgef�hrt sein. Wenn Ihr Leuten ein Userlevel zuordnen wollt, mit dem Ihr auch die Events OP, DEOP, SERVEROP und NOTIFY ansprechen k�nnt, dann tut das am besten so: 3:freundA 5:freundB 5:freundC 10:freundB!Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! Die Notwendigkeit dieser Art von Spezifizierung kann die doppelte Auff�hrung eines Users in der Liste sinnvoll machen und zwar einmal nur per Nickname und einmal per voller Adresse. Dies verhindert, da� jeder User der zuf�llig (oder auch absichtlich) den Nick freundB verwendet, vollen Zugriff auf die h�heren Event- und Command-Level erh�lt und sie nutzen kann. 

BAN Event / UNBAN Event 

Mit diesem Event kann man auf einfache Art und Weise Freunde vom Channel-Ban befreien (unbannen). 

Beispiel: 
on 5:BAN:#tree:/mode $chan -b $banmask 

Der Identifier $banmask enth�lt die gesamte Adresse, die auf die Ban-Liste des Channels gesetzt wird. Toll nicht? Der $bnick-Identifier enth�lt den Nicknamen der Person, die gebant wird - er ist allerdings nicht immer definiert, da f�r einen Channel-Ban nicht notwendigerweise ein Nick erforderlich ist (z.B. bei einem Siteban: *!*@modem*.adresse.de). UNBAN funktioniert genauso. 

INVITE Event 

Wird ausgel�st, wenn man in einen Channel eingeladen wird. 

Beispiel: 
on 5:INVITE:#test:/join $chan | /describe $chan dankt Euch f�r die Einladung! 
Wenn Ihr nach #test eingeladen werdet, dann betritt mIRC den Channel und sendet eine Aktion mit dem Inhalt "{euernick} dankt Euch f�r die Einladung!". 

NICK Event 

Wird ausgel�st, wenn ein User seinen Nicknamen �ndert. 
Beispiel: 
on 1:NICK:/notice $newnick Mir hat $nick besser gefallen als $newnick ! 
Immer wenn ein User seinen Nicknamen �ndert, bekommt er die Notiz "Mit hat {alternick} besser gefallen als {neuernick} !" 
$nick enth�lt den alten Nicknamen, $newnick (na was wohl) den neuen. 

Anmerkung: Der Abschnitt {wo ausgel�st} fehlt im Event NICK. 

QUIT Event 

Wird ausgel�st, wenn ein User den IRC verl��t. 

Beispiel: 
on 2:QUIT:/notice $me Partytime!!! $nick hat sich gerade verpieselt! 
Wann immer ein Level 2 User den IRC verl��t, schickt mIRC eine Notiz mit Inhalt "Partytime!!! {Nickname} hat sich gerade verpieselt!" an sich selbst. 

Anmerkung: Der Abschnitt {wo ausgel�st} fehlt im Event QUIT. 

TOPIC Event 
Wird ausgel�st, wenn das Topic in einem Channel ge�ndert wird. 

Beispiel: 
on 1:TOPIC:#:/msg $chan Toll! Ich liebe das neue Topic! 
Wann immer das Topic in einem Channel ge�ndert wird, wird die Nachricht " Toll! Ich liebe das neue Topic!" in den Channel geschickt. 

SERVEROP Event 
Wird ausgel�st, wenn der IRC-Server einem User Operator Status zur�ckgibt. 

Anmerkung: F�r das SERVEROP-Event mu� der User per Nickname in der Remote-Userliste aufgef�hrt werden 

Beispiel: 
on 1:SERVEROP:#mirc:/mode $chan -o $nick | /notice $opnick Tut mir leid, aber auf Channel $chan sind keine Serverops erlaubt! 

Wenn ein User auf Channel #mIRC von einem Server geopt wird, dann wird Ihm der Ops sofort wieder entzogen und er bekommt die Notiz " Tut mir leid, aber auf Channel #mIRC sind keine Serverops erlaubt!". Wenn ein Server vom IRC-Netzwerk abgespalten wird (Netsplit) und sich dann wieder mit Ihm verbindet (Netjoin), tauscht dieser mit dem Netzwerk s�mtliche Channelmodi - unter anderem die Operators - aus und gleicht sie an. In diesem speziellen Fall kann es zu Serverops kommen. (Anmerkung des �bersetzers: Das obenstehende Beispiel macht Sinn, da Netsplits von den b�sen Jungs auf dem IRC gerne dazu benutzt werden, um illegal Ops auf einem Channel zu erlangen und diesen dann zu �bernehmen. Dieses Verfahren nennt sich im IRC-Slang "Channeltakeover". Also ist es sinnvoll, Serverops von vornherein zu unterbinden. Wenn der Deop einen Freund trifft, kann man ihm immer noch "von Hand" den Ops zur�ckgeben. Alles eine Frage der Sicherheit =) 


NOTIFY Event UNOTIFY Event 

Wird ausgel�st, wenn ein in der Notify-List aufgef�hrter Nickname den IRC betritt. 

Man kann dieses Event z.B. dazu verwenden, einen /whois auszuf�hren, sobald ein Nick gesichtet wird, um zu �berpr�fen, ob es auch tats�chlich der korrekte User ist. Denkt aber daran, da� der User per Nickname in der Remote-Userlist aufgef�hrt sein mu� (wie bei OP, DEOP und SERVEROP). Das liegt an den IRC-Protokollen, die nicht die Adresse der gesichteten Person �bermittelt, sondern nur den Nicknamen. Ihr m��t den Nicknamen in die Liste unter File/Options/Notify List einf�gen und sobald mIRC die Person auf dem IRC sichtet, wird das Event ausgel�st. Das UNOTIFY Event wird ausgel�st, sobald mIRC registriert, da� der User den IRC verlassen hat, oder seinen Nicknamen ge�ndert hat. 

Beispiele: 
on 1:NOTIFY:/notice $nick Wenn du tats�chlich $nick bist, dann komm nach #test! 
on 1:UNOTIFY:/echo $active $nick hat den IRC verlassen 
on 3:NOTIFY:/whois $nick 
on 5:NOTIFY:/beep 10 50 | /whois $nick 

MODE Event 
SERVERMODE Event 

Dieses Event reagiert auf �nderungen an den gegebenen Channelmodi. 
Die MODE-Syntax hat sich ge�ndert! Es werden keine Channelmodi mehr vorgeschrieben. $1- wird nun mit den �nderungen an den Modi belegt. 

Syntax und Beispiel: 
on1!:MODE:#name:/echo 6 Modus�nderung von $nick auf Channel $chan! 
(Sch�tzt Euch aber vor Endlosschleifen, wenn User unzul�ssige Modi erzwingen (Status-Flood)) 

USERMODE Event 

Dieses Event wird ausgel�st, wenn man den eigenen Usermodus �ndert. 

Wenn man den eigenen Usermodus �ndert, z.B. +i, dann wird es von diesem Event registriert und man kann automatisch darauf reagieren. 

VOICE Event 
DEVOICE Event 

Dieses Event reagiert auf die Modus�nderung +v und -v (Erhalten und Entziehen der Sprecherlaubnis in einem Channel). 

Beispiele: 
on 1:VOICE:/notice $nick Du hast Sprecherlaubnis! 
on 1:DEVOICE:/notice $vnick Heyyy! Gib bitte $nick die Sprecherlaubnis zur�ck!! 

SNOTICE Event 

Dieses Event ist dazu gedacht, um auf Notizen des Servers zu reagieren. Server informieren einen �ber alles m�gliche, was gerade auf dem IRC vor sich geht. Um sie zu empfangen, mu� man sich selbst den Usermodus +s geben. (/mode #Nickname +s) Die meisten Leute werden diese Einstellung nicht brauchen. Sie ist eigentlich f�r IRCOps und Serverbetreuer gedacht. Mit diesem Event kann man die Notizen des Server aus den anderen herausfiltern und eine Reaktion oder das Anzeigen des Textes verhindern. Die Syntax sieht so ziemlich wie die des Events TEXT aus: 
1:SNOTICE:Text_des_Servers:/echo 6 status Der Server informierte gerade �ber $1- 

FILESENT Event 

Wird angesprochen, wenn ein DCC-Datei-Transfer erfolgreich beendet wurde. Man kann es dazu verwenden, um sich selbst oder dem Dateiempf�nger eine kleine Benachrichtigung zu senden. 
on 1:FILESENT:*.txt,*.ini:/echo $filename wurde soeben erfolgreich an $nick ( $+ $address $+ ) �bermittelt 
on 1:FILESENT:mirc50s.exe:/notice $nick Viel Spa� mit mIRC 16bit! 
on 1:FILESENT:mirc50t.exe:/notice $nick Viel Spa� mit mIRC 32bit! 

FILERCVD Event 


Wird angesprochen, wenn eine Datei �ber DCC erfolgreich empfangen wurde. Es wird ausgel�st, sobald die Datei erfolgreich auf die Festplatte geschrieben wurde. Es kann einerseits dazu verwendet werden, um sich selbst oder dem Dateiempf�nger eine kleine Benachrichtigung zu senden, oder aber auch, um eine Hilfsanwendung zu starten, die die entsprechende Datei anzeigt bzw. wiedergibt: 
on 1:FILERCVD:*.txt,*.ini:/run notepad.exe $filename 
on 1:FILERCVD:*.wav:/wavplay $filename 
on 1:FILERCVD:*.gif:/run c:\windows\wingif\wingif.exe $filename 
on 1:FILERCVD:*.jpg:/run c:\windows\lview\lviewp19.exe $filename 
on 1:FILERCVD:*.mid,*.voc:/run wplany.exe $filename 
on 1:FILERCVD:*.*:/notice $nick Danke f�r die Datei! 


SENDFAIL Event 
GETFAIL Event 

Dieses Event reagiert wenn ein DCC-Transfer aufgrund einer verlorenen Verbindung oder einem Zeit�berlauf vorzeitig beendet wird. Beispiele: 
on 1:SENDFAIL:*.txt:/echo �bertragung von $filename an $nick gescheitert 
on 1:GETFAIL:*.txt:/echo Empfang der Datei $filename von $nick gescheitert 

CTCPREPLY Event 

Dieses Event achtet auf Antworten von CTCP-Befehlen: 
on 1:CTCPREPLY:PING*:/echo $active Antwort auf PING von $nick erhalten! 
on 1:CTCPREPLY:*mirc*:/echo $active Sieh mal an! $nick benutzt auch mIRC! 

MIDIEND Event 
Dieses Event wird ausgel�st, wenn die Wiedergabe einer MIDI-Datei beendet wurde (allerdings nicht, wenn sie durch einen anderen Request oder den Befehl /splay stop unterbrochen wurde) 

Beispiel: 
on 1:MIDIEND:/echo mIRC hat die Wiedergabe der MIDI-Datei beendet. 

INPUT Event 

Dieses Event reagiert, wenn in die Editbox Text eingegeben wird, und dann "Eingabe" gedr�ckt wird. Die Zeile kann dann in einem Script oder sonst wie bearbeitet werden. 
on 1:INPUT:/echo Du hast die Zeile $1- eingegeben! 

LOAD Event wird ausgel�st, wenn mIRC startet und Scripts geladen werden. 
START Event wird ausgel�st, sobald die Scripts geladen wurden und betriebsbereit sind 
on 1:LOAD:/echo Script erfolgreich geladen! 
on 1:START:/echo Script erfolgreich gestartet! 

Mit dem LOAD Event kann man mIRC Befehle erteilen, wenn es die Scripts l�dt. Um Initialisierungskommandos zu geben, die aktiv werden, wenn mIRC das erste mal gestartet wird (und die Scripts automatisch l�dt) benutzt man das START Event. Wenn ein Script im Remote-Dialogfeld geladen wird, dann werden die Auto-Run-Befehle allerdings erst ausgef�hrt, sobald das Feld geschlossen wird. 

Spezielle Identifiers f�r Remote-Events 

$nick $address, $site etc. sind alles Identifiers, die speziell f�r die Verwendung in den Remotes erstellt wurden. Man kann sie �berall da verwenden, wo bestimmte Reaktionen auf Remote-Ereignisse erw�nscht sind. 

$nick Der Nickname des Users, der ein Remote-Event ausgel�st oder einen Remote-Befehl gesendet hat 
$address Die volle Adresse des Users, der den Befehl gesendet hat (nick!Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
$site Die Adresse des Users, der das Event ausgel�st hat im Format adresse.de 
$wildsite Die Adresse des Users, der das Event ausgel�st hat im Format *!*@adresse.de 
$level Das Remote-Level des Users 
$chan Der Channel, in dem ein Event ausgel�st wurde 
$target Das Ziel des Events 


7.3.4 Verschiedene Attribute (Flags) vor CTCP Befehlen und Events in Remote Scripts 

Wir kommen nun zu den verschiedenen Attributen (Flags) die man in der Remote-Sektion verwenden kann (vor Commands und Events). Der Umgang mit diesen Flags erfordert eine Menge Experimentierfreudigkeit; probiert aus, was sie tun und wann sie es tun. Schaut, ob sie tun was Ihr erwartet habt und bastelt viel herum! 

Das Flag ! (nur f�r die Events) 

Dieses Flag bewirkt, da� ein Event nicht reagiert, wenn Ihr selber der Ausl�ser daf�r seid. mIRC reagiert dann auf kein Event, da� durch einen Client mit Eurer Adresse verursacht wird. (Ein �hnlicher Flag hei�t "me". Er verhindert ebenfalls die Ausf�hrung von bestimmten Events, die Ihr selber ausl�st, allerdings wird die Adresse nicht ber�cksichtigt. Wenn Ihr also noch einen zweiten Client mit der selben Adresse verwendet, so kann dieser das 'geflaggte' Event trotzdem ausl�sen.) 

Beispiel: 
on 1!:JOIN:#test:/notice $nick Willkommen im Channel $chan ! 
Dieser Eintrag wird nicht reagieren, wenn Ihr selber den Channel betretet, aber jeder andere User wird die Notiz bekommen. 

Das Flag = (nur f�r die Events) 

Dieses Flag verhindert, da� irgend etwas passiert. Es ist dazu gedacht, um User mit h�heren Levels davor zu bewahren, von Aktionen genervt zu werden, die f�r Leute mit niedrigerem Level bestimmt sind. 

Beispiel: 
on 1:JOIN:#test:/ctcp $nick VERSION 
on 3:JOIN:#test:= 
User mit Level 1 oder 2 bekommen einen Version Request, User mit den Levels 3 oder h�her nicht. 

Beispiel: 
on 1:JOIN:#test1:/notice $nick Willkommen im Channel #test1! 
on 1:JOIN:#test2:/notice $nick Willkommen im Channel #test2! 

on 3:JOIN:= 
Level 3 User werden nicht gegr��t, Level 1 und 2 User nur auf den Channels #test1 und #test2. 

Das Flag + 

Dieses Flag macht ein Event nur f�r die User verf�gbar, die das exakt �bereinstimmende Userlevel haben. H�here (und nat�rlich niedrigere) Userlevel haben dann keinen Zugriff. 

Beispiel: 
on 1:JOIN:#test:/ctcp $nick VERSION 
on +3:JOIN:#test:/notice $nick Willkommen im Channel $chan ! 
Alle User au�er Level 3 bekommen einen Version Request, wenn sie den Channel #test betreten. Level 3 User bekommen eine Willkommens-Notiz. 

Die Flags ; und REM 

Diese Flags k�nnen dazu verwendet werden, um Remote-Befehle und -Events zeitweilig abzuschalten, indem man sie als Kommentare kennzeichnet: 

Beispiel: 
;on 1:JOIN:#test:/notice $nick Willkommen! 
REM on 1:JOIN:#test:/notice $nick Willkommen! 
Die Flags * und @ 

Diese beiden Flags sind absolut gleich und bewirken, da� ein nachgestelltes Event nur dann ausgef�hrt wird, wenn man Operator Status in dem Channel hat, in dem das Event ausgel�st wurde. 
on *1:JOIN:#test:/notice $nick Willkommen in Channel #test 
on @10:JOIN:#test:/mode $chan +o $nick 

Das Flag me 
Dieses Flag wurde eingef�hrt um sicherzustellen, da� nur eine Person mit exakt der selben Adresse ein Event ausl�sen kann. Damit ist haupts�chlich eine zweite Version von mIRC auf dem selben PC gemeint. Denkt aber daran, da� dieses Flag eigentlich unn�tig ist, wenn man sie Userlevel in der Remote-Userliste sorgf�ltig zugeordnet hat. 

Vergleichende Flags 

In mIRC Version 3.7 wurde eine neue Sorte Flags f�r die Events vorgestellt. Mit diesen Flags kann man mIRC ber�cksichtigen lassen, welches Userlevel ein Event ausl�st und auf welches Userlevel es einen Effekt hat. Diese Flags k�nnen nur mit den Events OP, DEOP und KICK verwendet werden, da dieses die einzigen sind, bei denen irgend jemand etwas mit einem anderen User tut. 
Die drei verf�gbaren Flags sind >, < und =. Aber man kann sie auch zu mathematischen Kombinationen zusammenf�gen. Das ergibt dann 6 verschiedene M�glichkeiten: <, >, <=, >=, <> und =. 

Diese Flags bewirken, da� das Event nur ausgel�st wird, wenn erstens das Level auf das des geopten, deopten oder gekickten Users pa�t, und zweitens das Level des Ausl�sers die definierte Bedingung {Level-Aktivator}[Flag](Mathematischer Ausdruck)]{Level des Events] erf�llt. 

Hmm... Ihr seht aus, als br�uchtet Ihr ein paar Beispiele!!! 
Nehmen wir mal an, Ihr seid die WACHE auf einem Channel mit einen Freund, der das Userlevel 2 hat und ein Aktivator mit verschiedenen Levels. Und dann seht Euch diese einfachen Beispiele an: 

on <2:DEOP:#test:/msg $chan Das Event < wurde ausgel�st 
on >=2:DEOP:#test:/msg $chan Das Event >= wurde ausgel�st 

Der Aktivator hat Userlevel 1: 
***Aktivator sets mode: -o Freund 
Das Event < wurde ausgel�st. 
Euer Freund hat Level 2, der Aktivator Level 1, 1<2 trifft zu (eins ist kleiner als zwei), also wurde das erste Level 2-DEOP-Event ausgel�st. 

Der Aktivator hat Userlevel 2 
***Aktivator sets mode: -o Freund 
Das Event >= wurde ausgel�st 
Euer Freund hat Userlevel 2, der Aktivator auch Level 2, 2<2 trifft nicht zu, 2>=2 ist trifft zu (zwei ist gr��er oder gleich zwei), also wird das zweite Level 2-DEOP-Event ausgel�st. 

Der Aktivator hat Userlevel 3 
***Aktivator sets mode: -o Freund 

Das Event >= wurde ausgel�st 
Euer Freund hat Userlevel 2, der Aktivator Level 3, 3<2 trifft nicht zu, 3>=2 ist trifft zu (drei ist gr��er oder gleich zwei), also wird das zweite Level 2-DEOP-Event ausgel�st. 

Wie Ihr seht ist es v�llig logisch, wenn man es einmal die Systematik begriffen hat. Lest einfach weiter, bis der Groschen f�llt... 
Mehr Beispiele: 

on <2:DEOP:#test:/msg $chan Das Event < wurde ausgel�st 
on >2:DEOP:#test:/msg $chan Das Event > wurde ausgel�st 

Der Aktivator hat Level 1 

***Aktivator sets mode: -o Freund 
Das Event < wurde ausgel�st 
Der Aktivator hat Level 2 
***Aktivator sets mode: -o Freund 

Der Aktivator hat Level 3 
***Aktivator sets mode: -o Freund 
Das Event > wurde ausgel�st 
on =2:DEOP:#test:/msg $chan Das Event = wurde ausgel�st 

Der Aktivator hat Level 1 
***Aktivator sets mode: -o Freund 

Der Aktivator hat Level 2 
***Aktivator sets mode: -o Freund 
Das Event = wurde ausgel�st 

Der Aktivator hat Level 3 
***Aktivator sets mode: -o Freund 



7.3.5 Variablen 

W�hlt den Men�punkt Tools/Remote und schaut in die Sektion "Variables"... 
In diesem Teil der Remotes k�nnt Ihr Eure eigenen Variablen definieren. Variablen k�nnen Zahlen, Worte, aber auch ganze Textzeilen enthalten. Wenn Variablen Zahlen enthalten, dann k�nnen sie mathematisch manipuliert werden, um ihren Wert zu erh�hen oder zu vermindern. Man kann sie untereinander aber auch mit gegebenen Zahlen addieren bzw. subtrahieren. Variablen beginnen immer mit einem % und k�nnen beliebig lange Namen haben. Die Werte der Variablen werden nach jeder Sitzung in einer Datei im mIRC-Verzeichnis gespeichert. 

Es stehen einige Befehle zur Verf�gung, um Variablen zu erstellen, bzw. zu warten: (s=show, Anzeige eines Berichts der Operation im Status-Fenster) 

/set [-s]