Anzeige:
test
Anzeige:

IRC-Coding

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

Die mIRC Popup-menüs


Die Popupmenüs im mIRC werden in erster Linie zur Bedienung des mIRC oder der aufgesetzten Scripte benutzt. Eigentlich werden sie im Popupsbereich des Editors erstellt. Dabei gibt es aber auch Ausnahmen zum Beispiel wenn ein Add-On sein eigenes Popupmenü mitbringt, oder wenn das Menü dynamisch sein soll. Wobei dynamisch heisst, dass je nach einem bestimmten Wert Menüpunkte vorhanden sind oder nicht, dazu aber später mehr. Popupmenüs für Userwindows oder Dialoge werden hier nicht mit abgehandelt, dass geschiet an anderer Stelle. Doch schauen wir uns nun erstmal an wo es überall Popupmenüs gibt und was man damit macht.


Die fünf Popupmenüs


Es können im Editor unter dem Menüpunkt View fünf verschiedene Popupmenüs gewählt werden. Diese sind: Status, Channel, Query, Nick List und Menu Bar. Alle Popups ausser das in der Menüleiste (Menu Bar) des mIRC werden mit einem Rechtsklick im entsprechenden Bereich aufgerufen. Das Statuspopupmenü erscheint im Statusfenster hier sollte man also Funktionen einbauen die im gesamten Chat gültig sind. Das Channelpopup erscheint wenn man im Textbereich eines Raumfensters klickt, dort passen also gut raumweite Funktionen rein. Das Querypopup ist für sogenannte Flüsterfenster (Querys) oder auch für DCC-Chatfenster. Hier sollten also in erster Linie Funktionen stehen dir nur für einen User gedacht sind. Dann kommt das Nicklistpopup welches nur in der Nickliste eines Raumfensters erscheint. Dort passen auch gut Funktionen hin die für ein oder mehrere User direkt gedacht sind. Bleibt als Letztes noch das Menubarpopup, welches prädestiniert ist für Bedienungsfunktionen. Damit sind alle fünf Standardpopupmenüs des mIRC abgehandelt und wir können uns jetzt um die Syntax kümmern.


Die Syntax von Popupmenüs


Es folgt als erstes ein Codebeispiel das ihr in euer mIRC eingeben solltet. Das ist wichtig damit ihr den Aufbau dieses Popupmenüs seht, denn Dieser wird hier nicht gezeigt. Ich habe als Beispiel ein Channelpopup gewählt, also wählt den richtigen Bereich im Editor bevor ihr den Code hineinkopiert.

Begrüßungen


.Guten Morgen:{ msg $chan Guten Morgen ihr lieben User im $chan }
.Zu Früh:{ msg $chan Moin moin, ich glaub für mich ist es noch zu früh. *gg }
.-
.Mahlzeit:{ msg $chan Mahlzeit alle im $chan $+ , ich hoffe ihr habt zu Essen. :o) }
Verabschiedungen
.Schönen Tag: { describe $chan wünscht allen noch einen schönen Tag. }
.Bin Müde: { msg $chan Ich bin müde und gehe zu Bett! *winkers }
-
Raumeinstellungen:{ channel $chan }
Wenn ihr den Code eingegeben habt und dann einen Rechtsklick in einem Raumfenster macht solltet ihr das Popupmenü sehen. Und zwar mit folgenden Punkten: Begrüßungen, Verabschiedungen und durch eine Linie getrennt Raumeinstellungen. Wobei hinter Begrüssungen und Verabschiedungen ein Pfeil ist der anzeigt das es dort Unterpunkte gibt. Diese werden gezeigt sobald ihr mit dem Cursor über einen dieser Einträge fahrt. Vergleichen wir nun den Aufbau mit dem Code. Wir stellen fest das einfache Worte einen Menüeintrag und Bindestriche eine Trennlinie erzeugen. Des weiteren sehen wird das Menüeinträge und Code durch einen Doppelpunkt getrennt sind. Und als letztes das durch einen Punkt vor einem Eintrag (oder Trennlinie) dieser eine Ebene tiefer im Menü erscheint. Hätte ich zwei oder drei Punkte davor gemacht wären es auch zwei oder drei Ebenen tiefer gewesen, wobei in jeder Ebene ein Begriff stehen sollte. Natürlich könnte bei den ausführbaren Einträgen auch ein mehrzeiliger Code hinterstehen. Wer diesen Aufbau jetzt begriffen hat kann im Prinzip jedes Popupmenü gestalten.


Popupeintrag deaktiviert oder abgehakt


Nun bietet mIRC noch die Möglichkeit Menüeinträge zu deaktivieren oder mit einem Häkchen zu versehen. Dazu braucht man einen speziellen Identifer den ich hier kurz zeigen möchte. Der Identifer heisst $style und kann vier Zustände erzeugen. Diese sind:
- $style(0) = Aktiv (Standardwert)
- $style(1) = Abgehakt (Haken vor Eintrag)
- $style(2) = Deaktiv (Auswahl nicht möglich)
- $style(3) = Abgehakt und Deaktiv (siehe 1 und 2)
Um Styles immer an einen aktuellen Zustand anzupassen brauchen wir eine Abfrage. Diese Abfrage machen wir mit einem weiteren Identifer mit Namen $iif. Zur Erklärung dieses Identifer schreiben wir uns das folgende kleine Popupmenü.

$iif(%teststatus == EIN,$style(1),$style(0)) Test:{
if (%teststatus == EIN) {
set %teststatus AUS
echo -s Der Teststatus ist %teststatus
}
else {
set %teststatus EIN
echo -s Der Teststatus ist %teststatus
}
}

Gebt diesen Code am besten in das Statuspopupmenü ein. Dieses Popupmenü kann als Schalter für eine bestimmte Funktion genommen werden, in der je nach Wert der Variablen %teststatus das Script ausgeführt wird oder nicht. Wenn der Wert der Variablen "EIN" ist, wird der Menüpunkt mit einem Haken angezeigt. Das heisst also für den Identifer $iif, ist die Bedingung Wahr (TRUE) wirde der erste Wert ($style(1)) zurückgegeben und wenn nicht dann der zweite Wert. Zusätzlich wäre es möglich den Identifer $iif zu Verschachteln, aber auf ein Beispiel dazu verzichte ich hier. So nun wisst ihr im Prinzip alles was man speziell zu Popups wissen muss, mal abgesehen davon welchen Identifer man in welchem Popup einsetzen kann. Dieses Wissen kann man aber erst mit der Zeit lernen und durch das Scripten selber.

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

Die mIRC Aliases
Die Aliases im mIRC bilden so zu sagen den Einstieg. Sie sind die einfachste Möglichkeit Scripte zu erstellen. Hauptsächlich werden mit Aliases Hilfsfunktionen geschrieben zum Beispiel als neuer Befehl oder Identifer. Ebenfalls lassen sich die F-Tasten mit Funktionen belegen, jede sogar mit drei Verschiedenen. Doch schauen wir uns einfach mal ein erstes kleines Script an.

Ein erstes Script /joinall { join #RAUM1 join #RAUM2 join #RAUM3 }
Dieses kleine Script bewirkt das wenn ihr den Befehl /joinall eingebt, die Räume 1 - 3 betreten werden. Dazu muss man natürlich mit einem Server verbunden sein und man sollte sich in keinem der drei Räume aufhalten. Normalerweise würde man solche Dinge in Abfragen überprüfen und das Script entsprechend reagieren lassen, doch dieses Beispiel dient erstmal zur Einführung in die Syntax. Schauen wir uns den Code also einmal genauer an. Der Alias beginnt mit einem Schrägstrich gefolgt von seinem Namen. Dieser Name kann frei gewählt werden, darf aber kein im mIRC vohandener Name sein. Sonst würde der vorhandene Befehl überlagert und das mIRC würde diesen Befehl nicht mehr ausführen können. Nach dem Namen folgt eine öffnende geschweifte Klammer, sie leitet den eigentlichen Code ein. Dann folgen drei Befehle mit entsprechenden Parametern. Hier fällt uns auf das Befehle zwischen geschweiften Klammern ohne einen Schrägstrich davor geschrieben werden können. Zum Schluss folt die schliessende geschweifte Klammer die das Code und Scriptende anzeigt. Wenn ihr das Script jetzt in den Aliasbereich des Editors eintragt, mit drei Räumen in den ihr euch gewöhnlich aufhaltet, könnt ihr das Script mal testen. Gebt nach dem connecten einfach im Statusfenster /joinall ein.


Eine andere Syntax
Hier seht ihr noch einmal das gleiche Script wie oben, diesmal jedoch in einer anderen Form geschrieben. Es funktioniert genau so wie das Obere, allerdings halte ich diese Form für unübersichtlicher. Ich denke nur der Vollständigkeit halber sollte ich das Beispiel mit anführen.

/joinall /join #RAUM1 | /join #RAUM2 | /join #RAUM3
Wie ihr seht müssen die einzelnen Befehle mit einem gerade Strich getrennt werden. Diesen erhaltet ihr wenn die die Tastenkombination "Alt Gr+<>" drückt. Mehr möchte ich dazu auch nicht erklären, weil ihr diese Form von Script hier im Tutorial nicht mehr finden werdet.

 

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

Einführung in das Tutorial

Hier findet ihr Tipps und Hinweise wie mit dem Tutorial gearbeitet werden sollte. Außerdem gibt es hier ein kurzen Überblick über die einzelnen Kapitel des Tutorials. Es sollte jedem klar sein das hier keine kompletten Bots oder MP3-Player gezeigt werden, weil so umfangreiche Scripte den Rahmen des Tutorials bei weitem sprengen würden. Trotzdem habe ich versucht nützliche Funktionen zu scripten, so dass ihr diese in euren eigenen Scripten weiter verwenden könnt. Die Scripte sind zu Gunsten der Übersichtlichkeit nicht immer maximal optimiert. Jeder Scripter hat seinen eigenen Stil, so auch ich, aber ich denke das mein Stil nicht der schlechteste ist. Alle hier gezeigten Beispiele sind nicht die einzige Lösung um die Funktion zu implementieren, also sind sie nicht verbindlich sondern dienen nur als Anregung.

 

Aufbau des Tutorials

Das gesamte Tutorial ist fortlaufend aufgebaut, so wie die Kapitel in dem Menü aufgeführt sind. In den einzelnen Kapiteln wird jeweils ein Thema komplett abgehandelt. Zu den meisten Themen gibt es ein Musterscript das ausgiebig erklärt wird. Die Themen auf den einzelnen Seiten solltet ihr auch von oben nach unten durcharbeiten. Wenn ihr ein Thema nicht auf Anhieb versteht müsst ihr die Seite vielleicht auch ein zweites Mal durcharbeiten oder selber ein wenig im mIRC herumprobieren. Geht auf jeden Fall erst dann zum nächsten Thema wenn ihr das Aktuelle komplett verstanden habt. Als fortgeschrittener Scripter kann man die einzelnen Themen auch nutzen um sich eine spezielle Funktion in Erinnerung zu rufen.

 

Der Themenüberblick

Der mIRC Editor: Hier wird der mIRC eigene Scriptingeditor gezeigt und erklärt. Das erstellen oder bearbeiten aller Scripte sollte ausschließlich mit diesem Editor geschehen. Die mIRC Scriptdateien haben in der Regel die Dateiendungen .ini und .mrc, wobei ich persönlich .ini vorziehe.

Die mIRC Aliases: Dort findet ihr die ersten Zeilen Code für den Aliasbereich. Es werden die grundlegende Syntax der mIRC Scriptsprache sowie der Anwendungsbereich für Aliases erläutert. Die Aliases sind eines der vielseitigsten Mittel im mIRC Scripting.

Die mIRC Popups: Es werden hier die Grundlagen erklärt also der Aufbau von Popupmenüs. Spezielle Scriptfunktionen können dann später in diesen Popups eingebaut werden. Aber alles was benötigt wird um die Popus zu designen wird hier gezeigt.

Die mIRC Remote: Hier werden die mIRC Remote genau erklärt. Es werden der Aufbau der verschiedenen Remote, sowie die Ersatzzeichen die eingesetzt werden können gezeigt. Die Remote dienen zum automatisieren oder fernauslösen von Scriptfunktionen.

Fehlersuche: Auf dieser Seite wird erklärt wie man Fehler in Scripten aufspüren kann. Dabei geht es nicht nur um Syntaxfehler sondern auch um Logigfehler. Das richtige testen von Scripten ist sicherlich eines der wichtigsten Dinge beim scripten.

Abfragen: Die Abfragen werden benötigt um den Ablauf eines Scriptes zu steuern. Hierbei werden Identifer oder Variablen auf ihre Werte überprüft und je nach Wert wird die Ausführung des Scriptes fortgesetzt. Es wird nur die Funktionsweise erklärt eine Operatoren Übersicht gibt es dort nicht.

Schleifen: Dort wird eine komplette Schleifen erklärt. Schleifen werden benötigt um bestimmte Scriptteile mehrfach hintereinander ausführen zu lassen. Es wird dort nur die /while Schleife genauer erklärt.

Timer: Hier erfahrt ihr eigentlich alles was zur Arbeit mit Timern benötigt wird. Wie sie gestartet oder angehalten werden und welche verschidenen Arten von Timern es gibt. Mit Timern lassen sich Scripte nach oder zu einer bestimmten Zeit ausführen.

Spezial Remote Raw & CTCP: Dieses sind vom Prinzip her auch Remote, allerdings haben sie eine etwas andere Syntax. Außerdem erfordert der Umgang mit diesen speziellen Remote ein wenig Übung und Erfahrung. Deshalb erfolgt hier auch nur ein grundlegende Einführung.

 
Haftungsausschluss:

Dieses Tutorial erhebt keinen Anspruch auf Vollständigkeit, ebenso besteht kein Recht auf ständige Verfügbarkeit. Alle hier gezeigten Funktionen sind ausgiebig getestet, doch trotzdem kann für Schäden die durch deren Benutzung entstehen keine Haftung übernommen werden.

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

Der Editor des mIRC

Hier wird der Editor des mIRC vorgestellt und seine wichtigsten Funktionen erklärt. Ausserdem werden die einzelnen Elemente bezeichnet so wie ich sie später im Tutorial auch benenne. Zuerst mal ein Bild vom Editor und danach folgen dann die Erklärungen.

mIRC Editor

Das Aussehen kann leicht variieren, je nach Einstellungen im Windows. Die Elemente sollten aber Identisch sein. Es werden nicht alle Punkte bis ins letzte erklärt, aber genug damit ihr mit dem Editor vernünftig arbeiten könnt. Aufgerufen wird der Editor über das Symbol mit dem grünen Quadrat und dem weissen /a und rotem Punkt rechts oben. Oder über die Tastenkombination "Alt+R" beziehungsweise über das Menü Tools.

 

Die Menüleiste

Der erste Punkt heisst File (Datei), darunter kann man alle Aktionen durchführen die einzelne Scriptdateien betreffen. Dazu gehört, neue Datei anlegen, Script laden oder entladen und Dateien speichern. Des weiteren lässt sich hier die Schrift auswählen und der Editor schliessen, also ähnlich wie in andere Dateimenüs. Im zweiten Menüpunkt Edit (Bearbeiten), findet Ihr auch übliche Einträge zur Textbearbeitung. Der nächste Punkt heisst View und dort können die einzelnen Dateien gewählt werden zum editieren. Gehen wir also direkt zum vierten Punkt, wobei es korrekter heissen müsste zu den vierten Punkten. Denn je nachdem welcher Reiter angewählt ist, ändert sich der Name und die Funktionen dieses Menüpunktes. Bei Aliases heisst er Alias und man kann die einzelnen Aliasfunktionen anwählen. Ist der Popups Reiter aktiv so sieht man dort das aktuelle Popupmenü. Bei den letzten drei Reitern heisst der Punkt immer Listen und es können verschiedene Events gewählt werden auf die mIRC reagieren soll. Die letzten 2 Punkte hab ich noch nicht wirklich gebraucht, deshalb gehe ich jetzt nicht näher darauf ein.

 

Die 5 Reiter

Die Bezeichnung Reiter stammt von Akten oder Telefonbüchern, im Scripting sind es eigentlich Tabs, doch ich benutze trotzdem den Ausdruck Reiter. Die ersten drei Reiter sind zum Anwählen der einzelnen Scripting Bereiche: Alias, Popup und Remote. Der Remotebereich ist der umfangreichste, hier lassen sich ebenfalls Aliases und Popups erstellen. Unter dem Reiter Users kann man Nicknamen oder Adressen eintragen die einen speziellen Level haben sollen. Der Standardlevel des mIRC ist normal 1, diesen könnt ihr im Editor unter dem Menüpunkt Options einstellen. Durch die Level lässt sich ein Zugriff auf die vorhandenen Scripte regeln. Der letzte Reiter Variables zeigt alle aktuell im mIRC verwendeten Variablen an. Dort stehen selbstverständlich nur globale Variablen weil die Lokalen ja sofort nach Ausführung des Scriptes vom mIRC gelöscht werden.

 

Der Codebereich und die Anzeigen

Der Codebereich ist das eigentliche Editfenster, dort wird also der Scriptcode hineingeschrieben und editiert. Die unterschiedlichen Anzeigen geben und Auskünfte über die akuell zu editierende Datei. Dazu gehören der Dateiname und Ort wo sie gespeichert ist. Dann die Position des Cursors in der Datei, sowie die aktuelle Grösse. Zuletzt sind da noch die Button zum suchen von Worten im Code oder anspringen von bestimmten Zeilen. Der letzte kleine Button dient zum auffinden unvollständiger Klammerpaaren. Ich denke das damit alles über den Editor gesagt ist, was zur Arbeit mit ihm benötigt wird.

Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv

Identifer im mIRC

Die Bezeichnung Identifer ist sehr mIRC spezifisch und kommt in anderen Scriptsprachen so nicht vor. In anderen Scriptsprachen würden Identifer wohl eher als Systemvariablen bezeichnet. Identifer liefern einen bestimmten Wert zurück, je nach dem wo und mit welchen Parametern sie aufgerufen werden. Zunächst mal ein Beispiel eines Identifer mit verschiedenen Parametern:

$nick $nick(RAUMNAME,1) $nick(RAUMNAME,3).idle

Wir stellen fest das Identifer immer mit einem Dollarzeichen beginnen gefolgt von dem Identifernamen. Was wir noch sehen ist, dass es Identifer gibt die mit und ohne Parameter aufgerufen werden können. Im Moment spielt es für uns noch keine Rolle welchen Wert ein Identifer liefert darauf gehe ich später im Tutorial genauer ein. Identifer bilden eine Art Schnittstelle zwischen den Script und dem Programm. Das heisst, sollen Werte (Daten) aus dem mIRC heraus im Script verarbeitet oder benutzt werden, so werden diese Daten über einen Identifer zur Verfügung gestellt. Es gibt so gut wie keine andere Möglichkeit Daten aus dem mIRC herauszulesen. Theoretisch ist es sogar möglich Identifer direkt in der Eingabe des Chatfensters zu verwenden, aber das wird in der Praxis kaum gemacht. Was nicht zuletzt daran liegt das man nicht alle Identifer an jeder Stelle eines Scriptes einsetzen kann.

 

Was genau sind Identifer?

Eigentlich könnte man Identifer auch als Befehle mit Rückgabewert bezeichen. Also sind Identifer auch nichts Anderes als Funktionen die einen bestimmten Wert zurück liefern. Somit ist es für uns möglich auch eigene Identifer in das mIRC neu zu implementieren. Im Gegensatz zu Befehlen, die eigentlich immer was bewirken und wenn es nur eine Fehlermeldung ist, können Identifer auch mal keinen Wert zurückgeben. Dann erscheint auch nicht unbedingt eine Fehlermeldung, sonder das Script arbeitet so als wäre an dieser Stelle garnichts gewesen. Was nicht heisst das es keine Fehlermeldungen gibt wenn man einen Identifer falsch benutzt. Der entscheidende Vorteil bei Identifer liegt darin das sie immer die aktuellen Daten aus dem mIRC auslesen. Wir halten also fest, Identifer sind die einzige Möglichkeit im Script mit ausgewählten aktuellen Programmdaten zu arbeiten. Wenn ihr diesen Leitsatz versteht und behaltet sind wir schon ein gutes Stück weiter und bestens für das Tutorial vorbereitet. Damit können wir die Identifer abschliessen und auch gleichzeitig die Grundlagen beenden. Jetzt solltet ihr das nötige Grundwissen haben welches man braucht um das Tutorial erfolgreich zu erarbeiten.