PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Gelöst] [Eggdrop] ON JOIN Nachricht


BOR
06.09.2005, 11:57
Hallo gibt es eine möglichkeit tcl script zu machen das jedem benutzer der in den kanal kommt eine nachricht ins kanal schreibt aber nur den benutzern die per chanserv kein @ bekommen also es kommen ja auch benutzer ins kanal rein und bekommen @ von chanserv also diesen benutzer soll dann keine nachricht schreiben.

wie geht denn das gruss


Izlots
06.09.2005, 12:14
Hallo gibt es eine möglichkeit tcl script zu machen das jedem benutzer der in den kanal kommt eine nachricht ins kanal schreibt aber nur den benutzern die per chanserv kein @ bekommen also es kommen ja auch benutzer ins kanal rein und bekommen @ von chanserv also diesen benutzer soll dann keine nachricht schreiben.

wie geht denn das gruss

das hoert sich in meinem ohren sehr nach einem script zum spammen in einem channel an ... :mauer: aber versuchs mal mit timern :P

ind00r
06.09.2005, 12:40
Hallo,

ja, mit einem timer lässt sich das machen
als erstes registrierst du ein join, nach 2-3 sekunden schaust du ob der Nick op hat, wenn nicht putserv "privmsg $chan :Du hast kein op.."

Allerdings ist das wie Izlots sagte, ziemlicher spam...

BOR
06.09.2005, 16:45
ja aber da ich keine ahnung von tcl habe ;)
ist es scher sowas zu machen



bind join - "*" proc_poruka
proc proc_poruka {nick host handl chan} {
timer 10
if {$nick == "@ bekommt von chanserv"} {
} else {
putserv "PRIVMSG $chan:text text"
}



also kann mir das jemand verbessern :)

ChaosKrieger
06.09.2005, 16:47
Hallo gibt es eine möglichkeit tcl script zu machen das jedem benutzer der in den kanal kommt eine nachricht ins kanal schreibt aber nur den benutzern die per chanserv kein @ bekommen also es kommen ja auch benutzer ins kanal rein und bekommen @ von chanserv also diesen benutzer soll dann keine nachricht schreiben.

wie geht denn das gruss


wenn das mal kein spam script ist....

dann versuch es mal mit der access liste :D

BOR
06.09.2005, 20:43
es kann doch ein programm sein wenn jemand den kanal betretetl das man ihn bittet eine frage zu stellen?

ind00r
08.09.2005, 12:06
Hallo,

bind join - "*" proc_poruka
proc proc_poruka {nick host handl chan} {
timer 10
if {$nick == "@ bekommt von chanserv"} {
} else {
putserv "PRIVMSG $chan:text text"
}

Stimmt nicht so ganz

So sollte es ca. aussehen:

bind join - "*" proc_poruka
proc proc_poruka {nick host hand chan} {
utimer seconds command
{[isop $nick $chan]} {
return 0
} else {
putserv "PRIVMSG $chan :Ich bin spam."
}

BOR
08.09.2005, 14:04
geht auch nicht

am anfang kam dieser fehler

Tcl error [proc_poruka]: no value given for parameter "text" to "proc_poruka"

dann habe ich dort oben die text variable gelöscht dannach kam dieser fehler

Tcl error [proc_poruka]: wrong # args: should be "utimer seconds command"
habe ich ein befehl reingeschreiben wie putserv
und dann kam dieser fehler
Tcl error [proc_poruka]: can't read "chan": no such variable

also irgendwass stimmt da nicht :(


da habe ich mal was geschreiben aber wie binde ich diesen timer bloß an

bind join - "*" proc_poruka
proc proc_poruka {nick host hand #yap } {
set chan #yap
if {[isop $nick $chan] == 0} {
putserv "PRIVMSG #yap :Cao Cao $nick "
} else {
return 0 }
}
putlog "Poruka is Loaded"

ChaosKrieger
08.09.2005, 17:18
der fehler steht doch dort

Tcl error [proc_poruka]: no value given for parameter "text" to "proc_poruka"

ja mh.. was heist das jetzt nur?

genau, das beim joinen kein text übergeben wird

also wie lösen?

BOR
08.09.2005, 18:58
der fehler steht doch dort

Tcl error [proc_poruka]: no value given for parameter "text" to "proc_poruka"

ja mh.. was heist das jetzt nur?

genau, das beim joinen kein text übergeben wird

also wie lösen?

beim joinen text übergeben aber wie???? wenn ich es wüsste würde ich es doch machen?

ChaosKrieger
08.09.2005, 19:25
nein, eben nicht

proc proc_poruka {nick host handl chan} {

so, und nicht anderst, da hat ind00r etwas mist gebaut :D

BOR
08.09.2005, 19:34
nein, eben nicht

proc proc_poruka {nick host handl chan} {

so, und nicht anderst, da hat ind00r etwas mist gebaut :D





also wie ich das mitbekommen habe wirkt ja dieses skript auf alle kanäle in dem sich der bot befindet also wenn der bot mehr als in einem kanal ist dann sagt er in jedem kanal das.
Wie kan man das beschränken das er nur die joins von einem kanal wahr nimmt und die message auch in dem kanal hinschreibt

Jetzt habe ich das geändert was du geschrieben hast und nun bekomme ich diesen schönen fehler

Tcl error in script for 'timer1':
invalid command name "command"
Tcl error [proc_poruka]: invalid command name "[isop $nick $chan]"

ind00r
09.09.2005, 10:45
Ja sorry wegen dem text, hab das "geschwind" geschrieben ohne viel zu denken *g*

Ich hatte doch geschrieben
if {[isop $nick $chan]} geht bei mir...
eventuell das == 0 wegmachen...?

Bzw warum hast du das hingemacht?

übersetzt:
Falls ist op $nick in $chan mache bla...


utimer seconds command
Da solltest du eventuell noch was ersetzen
utimer <zahl> <was zu tun ist nach der zeit>

BOR
09.09.2005, 11:05
Ja sorry wegen dem text, hab das "geschwind" geschrieben ohne viel zu denken *g*

Ich hatte doch geschrieben
if {[isop $nick $chan]} geht bei mir...
eventuell das == 0 wegmachen...?

Bzw warum hast du das hingemacht?

übersetzt:
Falls ist op $nick in $chan mache bla...


utimer seconds command
Da solltest du eventuell noch was ersetzen
utimer <zahl> <was zu tun ist nach der zeit>



ne ne da habe ich mir selber gedanken gemacht hat nixt mit deinem prog. zu tun.Weil ich ahbe gelesen wenn isop eine 0 zurück gibt dann ist es kein @ bei einer 1 ist es ein @ das hat auch funktioniert bloß der timer fählt.

Aber dein proggi funktioniert überhaupt nicht ;)

ind00r
10.09.2005, 16:37
if {[isop $nick $chan]} <-- funtkioniert 100%

ChaosKrieger
10.09.2005, 20:23
isop <nickname> [channel] Returns: 1 if someone by the specified nickname is on the channel (or any channel if no channel name is specified) and has ops; 0 otherwise

Module: irc


das module ist standart, also sollte es auch bei dir funktionieren ;)