Page 1 of 2

Posted: 10.02.2007 00:12
by chris1
Um das ganze zu lernen, gib folgendes ein:
/help on text

Posted: 10.02.2007 13:40
by chris1
Lass mal das %u3a und %u7d weg. oder hat das einen bestimmten Sinn?
Für den channelnamen folgendes eingeben:
/help Remote Identifiers
also: $chan

Posted: 10.02.2007 19:43
by Tuxman
Also, ein paar kleine Fehler; dein Script muss anders lauten:

Code: Select all

on *:text:!Deuterium:#:{
msg $chan Richtig^^
}
(kannst du auch in 1 Zeile packen; die ON TEXT-Anweisung aber ohne Leerzeichen!)

Die Bestandteile:
  • on *:TEXT:(?):#:{
    on *:TEXT sagt, dass mIRC auf einen bestimmten Text (in diesem Fall "!Deuterium") in bestimmten Fenstern (in diesem Fall #, also alle Channels) reagieren soll.
  • msg $chan Richtig^^
    ... gibt "Richtig^^" an den Channel aus, auf den es reagiert hat (landet immer in der Variablen $chan)
Du kannst es natürlich auch variieren:
Auf Queries reagierst du, indem du statt "#" "?" oder "*" angibst; letzteres reagiert dann auf Channels und Queries. Außerdem kannst du natürlich nur in einem bestimmten Channel reagieren, zum Beispiel so:

Code: Select all

on *:text:!Deuterium:#MeinChannel:{ ... }

Posted: 10.02.2007 20:49
by Tuxman
* steht für "1-x Zeichen"

Posted: 10.02.2007 21:06
by chris1
Übrigens: Anzahl Klammer auf = Anzahl Klammer zu!

Posted: 10.02.2007 21:40
by Tuxman
1.: Weil die "1" davor dazu führt, dass das Script nur reagiert, wenn du den Channel betrittst.
2.: on *:ACTION:#:{ ... }

Posted: 10.02.2007 23:50
by chris1
Wenns für alle benutzer gehen soll, dann ersetze die zahl durch "*"

Posted: 11.02.2007 00:43
by Tuxman
Benny Kenobi wrote:Bei keinem der ging habe ich einen Abschiedtext geschrieben

Code: Select all

on *:PART:#:{ msg $chan ohhh jetzt ist $nick weg! }

Posted: 11.02.2007 13:11
by chris1
Das was du meinst ist Quit.
Da musst dann part mit quit ersetzen oder eben die hilfe durchlesen:
/help on quit
Quit ist aber nicht channelbezogen. $chan funktioniert also nicht.
Da brauchst dann ein if.
z.b.:
if ($nick ison #meinchannel) { msg $v2 jetzt ist $nick weg. }

Posted: 11.02.2007 13:15
by Tuxman
on part:
Reagiert wenn der Benutzer den Channel verlässt. (... has left #channel)

on quit:
Reagiert wenn der Benutzer den IRC verlässt. (... has left IRC)

Posted: 13.02.2007 08:39
by chris1
/help If then else

Du hast deine skripts schon in eine extra datei reingemacht?
Weil wenn du 2 mal das gleiche event drin hast, dann funktioniert das nicht immer wie es soll.

Posted: 22.02.2007 18:30
by blk_panther
wenn das mit dem join nicht will liegt das eventuell daran das schon ien on join oder on part vor deinem sind, also nimmst du am besten ne neue scriptfile dafür.

und wenn du in nem event (on ...) einen identifier (die mit $, also auch $me) nutzen willst machst du das so: on *:action:$(* $+ slaps $me $+ *):#:{ describe # klaut dafür $nick einen Keks }

und zum direkten backslap mit farbigem nick (ohne den timer): on *:action:$(* $+ slaps $me $+ *):#:{ describe # slaps $fs_pball($nick) $+ $chr(15) back! }


auch hier gilt (wie bei jedem on event): nur eins pro scriptfile, alle events die nach einem event stehen und auf das schon "abgefangene"/abgearbeitete passen werden ignoriert (weil es beim ersten behandelt wurde -> danach ende)

Posted: 26.02.2007 13:45
by chris1
probier mal folgendes:

Code: Select all

on *:action:*:#:{
  if (slaps $me isin $1-) { describe $chan slaps $nick back }
}

Posted: 26.02.2007 19:29
by blk_panther
also, das stimmt schon, jedoch musst du den text beachten:

x nimmt sich eine Paintgun und visiert y an



dort kommt nirgends *Paintgun y* drin vor



ok, ich erkläre mal kurz wildcards, (die *): wildcards sind sowas wie joker, ... sie passen auf beliebigen text (auch nichts) im falle von *.
und auf ein beliebiges zeichen im falle von ?

bei deinem beispiel müsste man also eine action (/me) mit irgendeintext (optional, er muss also nicht vorhanden sein) Paintgun dein-nick wieder ein optionaler text (oder nichts)

das korrekte event sieht also so aus (wenn mein text oben stimmt, ansonsten musst du den anpassen):

on *:action:$(*Paintgun und visiert $me $+ *):#:{ describe # nicht schießen! }

auch hier gilt (wie bei jedem on event): nur eins pro scriptfile, alle events die nach einem event stehen und auf das schon "abgefangene"/abgearbeitete passen werden ignoriert (weil es beim ersten behandelt wurde -> danach ende)

Posted: 26.02.2007 19:55
by chris1
dann nimmst eben statt

Code: Select all

on *:action:*:#:{
  if (slaps $me isin $1-) { describe $chan slaps $nick back }
}

Code: Select all

on *:action:*:#:{
  if (funstuff_text_$me isin $1-) { describe $chan slaps $nick back }
}
wobei du funstuff_text_$me durch das den vorkommenden Text ersetzt.
"slaps $me" is ja nur ein Beispiel

du kannst das dann auch kombinieren:

Code: Select all

on *:action:*:#:{
  if (slaps $me isin $1-) { describe $chan slaps $nick back }
  if (funstuff_text_$me isin $1-) { describe $chan slaps $nick back }
}