[TCL]Problem mit "matchattr"

NebuChadNezZaR

Grünschnabel
Ich habe mal ein Ban-Protect-Script geschrieben, welches nur User mit dem +o Flag schützt.

Code:
bind mode - * mod:ban_protect
proc mod:ban_protect {nick host hand chan mode victim} {

  global botnick
  if {$mode == "+b" && $nick != $botnick && $nick != $victim && [matchattr [nick2hand $victim] o $chan]} {
    putquick "MODE $chan -b $victim"
    putquick "MODE $chan +b $host"
    timer 30 [subst {putquick "MODE $chan -b $host"}]
    putquick "KICK $chan $nick : Op-Protection: Don´t ban channelops!"
    if {[nick2hand $nick] != "*"} {
      chattr $hand -ao+d $chan
    }
    return 0
  }
}

So, wie das Script hier steht, funktioniert es nicht. Es liegt an der "matchattr"-Abfrage, da es ohne diese funktioniert. Ich weiß nicht, wo der Fehler liegt, da ich diese Abfrage in einem Kick- und Deop-Protectscript nutze und auch fehlerfrei funktioniert.
 
Zuletzt bearbeitet:
Auch hier wird das Rad neu erfunden -

Hallo NebuChadNezZaR,

auch Du bist einer von vielen, die versuchen das Rad neu zu erfinden.. *grinsel*
Ich habe ein schon vorhandenes eggdrop Script angefügt, welches ich aus dem riesen Repertoir von http://www.egghelp.org nachrecherchiert habe. Die zu schützenden Flags sind zwar ergänzt ( +b, +m, +n, +o), jedoch kann dies in diesem Fall nur von Vorteil sein, da Bots, Master, Owner und Ops geschützt werden. Bestimmt wirst Du Teile davon wiedererkennen.. *lächel*
 

Anhänge

  • self-protaction+.zip
    1,1 KB · Aufrufe: 41
Ich danke dir auf jeden Fall für deine Hilfe. Ich habe überhaupt nicht vor, das Rad neu zu erfinden. Ich versuche lediglich TCL zu lernen und dieses tut man nur, indem man Scripte selbst schreibt. Klar, im Netz findet man alles was man braucht...fertige Scripts etc. Nur ist das meiner Meinung nicht Sinn der Sache. Mir ist mit diesem Post nur wichtig gewesen meinen Fehler durch euch nachvollziehen zu können und somit zu lernen.
 
Also ein "Ich habe keine Ahnung wieso das so nicht funktioniert" würde mir auch reichen. Das Problem ist einfach, dass ich langsam verzweifle. Hättet ihr vielleicht eine Alternative?!
 
Hallo NebuChadNezZaR,

ich bin habe zwar keine Lösung für Dein Problem, da ich im tcl-coden eher eine Minitaschenlampe bin, mir ist jedoch bei der Suche nach dem Problem öfter mal aufgefallen, dass es seit der Version eggdrop1.6.8 bis eggdrop1.6.10 Probleme mit dem Befehl "nick2hand" gegeben hat. Angeblich soll der Befehl falsche Ergebnisse ausgegeben haben, wodurch tcl-Probleme auftraten.
Ab der Version eggdrop1.6.13 sollte das Problem behoben sein.

Vielleicht hilft das.
 
Daaaaaaaaaaaann habe ich da noch einen letzten Aufschrei.. :)

Wenn Deine Channeleinstellungen nicht +protectops beinhalten, kann ich mir vorstellen, dass der eggdrop widersprüchliche Befehle erhält.

Prüfen?

.chaninfo #DeinChannel
 
Also wie ganz zu Anfang erwähnt. Die "matchattr" - Abfrage habe ich exakt in ein Deop-Script übernommen und dort funktioniert es einwandfrei! Nur eben hier nicht.
 
Dann, glaube ich, solltest Du Dir nochmals Deine *.conf anschauen, da ein "+d-Modus", wie auch der Timer um Bans zu entfernen, in der Konfiguration enthalten sind. Wenn Du also unterschiedliche Befehle in der Konfiguration, zu Deinem ban_protect.tcl verwendest, kann sich das ja nur behindern.
 

Neue Beiträge

Zurück