|
| Stuff-Article |
|
IRC-Vegetation
IRC-Chat-Flirt-Faktor |
|
|
Scripting mIRC
| 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!account3@machine.subnet.net
2:*!account4@machine.subnet.com
3:*!*@machine.subnet.edu
4:*!*@*subnet.edu
5:*!account@*.subnet.edu
10:euernick!eueraccount@yourmachine.net
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!blabla@wasauchimmer.de
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; *!vonck@Wit399402.student.utwente.nl
Typ 1; *!*vonck@Wit399402.student.utwente.nl
Typ 2; *!*@Wit399402.student.utwente.nl
Typ 3; *!*vonck@*.student.utwente.nl
Typ 4; *!*@*.student.utwente.nl
Typ 5; Kreet!vonck@Wit399402.student.utwente.nl
Typ 6; Kreet!*vonck@Wit399402.student.utwente.nl
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!User@Adresse.ToplevelDomain 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!account3@machine.subnet.net) 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!account@rechner.adresse.de) 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!account@rechner.adresse.de
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!account@adresse.de)
$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]
|
Internet Relay Chat IRC
Diese Seite wurde in 0.0322 Sekunden erstellt.
|
TeamSpeak-Server
Bouncer
VServer
Deine
Seite hier ?
|
IRC-Board
|
|
here we die at connection | |