Abfrage

Hier bekommt Ihr Antworten auf Eure Fragen zum Eggdrop-Hosting von Shellfire

Moderatoren: Florian, Matze, Max, Lui

zip
Beiträge: 16
Registriert: 10 Nov 2006 23:58

Abfrage

Beitragvon zip » 10 Jan 2007 22:29

Vielleicht könnt ihr mir helfen hab ein Problem bei einem Script, er gibt immer aus das keine Admins verfügbar sind. Bisher hat niemand den Fehler gefunden:

Code: Alles auswählen

set admin:flags z

bind PUB -|- !admins public:admins

proc public:admins { nickname hostname handle channel arguments } {

  if {[info exists ::admins($channel)] && [expr [unixtime] - $::admins($channel)] < 30} {
    return
  }

  set ::admins($channel) [unixtime]
  set da {}

  foreach adminnick  [userlist ${::admin:flags} $channel] {
    set adminnick [hand2nick $adminnick]
    if {$adminnick == ""} { continue }
    if {![string match -nocase "*`off" $adminnick] && [llength $adminnick] > 1} {
      lappend da $adminnick
    }

  }

  if {[llength $da]} {
    puthelp "PRIVMSG $channel :Folgende Admins stehen zur verfügung: [join $da]."
  } else {
    puthelp "PRIVMSG $channel :Immoment sind keine admins verfügbar."
  }

}

Florian
Site Admin
Beiträge: 465
Registriert: 29 Jun 2003 17:53

Beitragvon Florian » 11 Jan 2007 07:30

Naja da musst halt mal ein paar probe-Outputs einbauen, z.B.würde mich erstmal interessieren, ob er in der foreach-Schleife überhaupt alle Nicks korrekt durchläuft, von denen du denkst:

Code: Alles auswählen

foreach adminnick  [userlist ${::admin:flags} $channel] {
    set adminnick [hand2nick $adminnick]
    if {$adminnick == ""} { continue }
    if {![string match -nocase "*`off" $adminnick] && [llength $adminnick] > 1} {
      lappend da $adminnick
  }
}


Das könntest du also z.B. mal so umändern, dass du IF-Abfrage weglässt. Dann müsste ja, wenn die foreach-Schleife richtig funktioniert, jeder Admin als "da" angezeigt werden:

Code: Alles auswählen

foreach adminnick  [userlist ${::admin:flags} $channel] {
    set adminnick [hand2nick $adminnick]
    if {$adminnick == ""} { continue }
    lappend da $adminnick
}
Zuletzt geändert von Florian am 12 Jan 2007 09:30, insgesamt 2-mal geändert.
Florian Gattung
Shellfire Gattung & Behr GbR

zip
Beiträge: 16
Registriert: 10 Nov 2006 23:58

Beitragvon zip » 11 Jan 2007 16:51

Ich hätte erst das Problem das der Bot immer gesagt hat es wäre ein Admin da, anschließend wo ich das mit dem offline nick eingefügt habe sagt er immer es wäre keiner verfügbar, ich denk mal er hat Probleme mit den flags! Was du vorgeschlagen hast klappt leider nicht kommt immer ein Fehler!

Code: Alles auswählen

can't read "da": no such variable
    while executing
"llength $da"

Florian
Site Admin
Beiträge: 465
Registriert: 29 Jun 2003 17:53

Beitragvon Florian » 12 Jan 2007 09:29

Hast du den Rest vom Script ansonsten gleich gelassen? Der Fehler wäre in jedem Falle ansonsten ja auch gekommen, wenn die IF-Abfrage, die du weggelassen hast, wahr ergeben hätte.

zip
Beiträge: 16
Registriert: 10 Nov 2006 23:58

Beitragvon zip » 12 Jan 2007 15:52

hab ich, finde es nur schade ha dieses Problem schon in 3 Foren gepostet und bis jetzt konnt emir noch keienr weiterhelfen!

Florian
Site Admin
Beiträge: 465
Registriert: 29 Jun 2003 17:53

Beitragvon Florian » 12 Jan 2007 16:12

Auf folgende Art hab ich es bei mir erfolgreich getestet:

Code: Alles auswählen

set admin:flags z

bind PUB *|* !admins public:admins

proc public:admins { nickname hostname handle channel arguments } {

  if {[info exists ::admins($channel)] && [expr [unixtime] - $::admins($channel)] < 30} {
    return
  }

  set ::admins($channel) [unixtime]
  set da {}

  foreach adminnick  [userlist ${::admin:flags} $channel] {
    set adminnick [hand2nick $adminnick]
    if {$adminnick == ""} { continue }
    if {![string match -nocase "*`gone" $adminnick]} {
      lappend da $adminnick
    }
  }

  if {[llength $da]} {
    puthelp "PRIVMSG $channel :Folgende Admins stehen zur verfügung: [join $da]."
  } else {
    puthelp "PRIVMSG $channel :Im Moment sind keine admins verfügbar."
  }

}

Wichtig ist, dass vorher in der Partyline

Code: Alles auswählen

.chattr handledesadmins +z
ausgeführt wurde, für jeden Admin, den das Script mitzählen soll.

zip
Beiträge: 16
Registriert: 10 Nov 2006 23:58

Beitragvon zip » 14 Jan 2007 14:50

Danke, funktioniert einwandfrei!


Zurück zu „Eggdrop Support“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast