Handy finden
Handy finden

NAVIGATION

Startseite
Themen-Suche
IRCFAQ Chat
Kontakt
Impressum

SCHNELLSUCHE

Suchbegriffe

IRC VERSTEHEN

Was ist IRC?
Wie funktioniert IRC?
Erste Schritte
Häufig gestellte Fragen
IRC-Begriffe

BEFEHLE

Befehle für User
Befehle für Operators
Nickserv Befehle
Chanserv Befehle

Linktipps


SCRIPTING

mIRC Scripting

IRC FUN

IRC Fun-logs

DOWNLOADS

mIRC & Co
mIRC Scripte

SURFTIPPS

Top IRC Links
Link auf IRCFAQ

Get Firefox!




mIRC Scripting

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.
$chan Der Channel, in dem ein Event ausgelöst wurde
$target Das Ziel des Events
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?
In der Tat werden zwei Aktionen durch den CTCP-OPMICH-Befehl ausgelöst.
erstens: /mode #Channelname +o Freund
zweitens: /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!!"


au hur

Tutorial Übersicht

[1.0] Die Aliases-Sektion
[1.1] Aliases erstellen
[1.2] String Definitionen
[1.3] Identifiers

[2.0] Die PopUps-Sektion (Kontextmenüs)

[3.0] Die Remote Sektion
[3.1] Die Remote User-Liste
[3.2] Remote Scripts - CTCP Befehle
[3.3] Remote Scripts - Ereignisse (Events)
[3.4] Verschiedene Attribute vor CTCP Befehlen und Events
[3.5] Variablen
[3.6] Remote Scripts - numerische Server-Mitteilungen (Raw Processing)

[4.0] Fortgeschrittener Umgang mit Befehlen; Mehrzeilen-Befehle
[5.0] Copyright - rechtliche Hinweise





PARTNER

 

Irc Mania

Handy finden

Computerlexikon



Pagerank ohne Toolbar
Pagerank Echtheitsüberprüfung

Community | Webdesign | kostenlos flirten | EDV Lexikon | Sex Lexikon | handy | Grusskarten