Henima
21.04.2005, 15:49
hallo,
ich hab folgendes problem, worann ich noch verzweifel, wenn ein user den channel neu joined, bekomme ich immer auf der partyline folgende fehlermeldung:
Tcl error [chanpeak_join]: bad format string "%p"
nun hab ich mir die stelle in dem script angeschaut, aber ich weiss absolut nicht warum er dort eine fehlermeldung ausgibt
ich würde mich riesig freuen, wenn mir hier geholfen werden könnte
hier der tcl script code:
if {![string match 1.6.* $version]} { putlog "\002CHANPEAK:\002 \002WARNING:\002 This script is intended to run on eggdrop 1.6.x or later." }
if {[info tclversion] < 8.2} { putlog "\002CHANPEAK:\002 \002WARNING:\002 This script is intended to run on Tcl Version 8.2 or later." }
setudef flag peak
bind join - * chanpeak_join
bind dcc $chanpeak_setting(dflag) $chanpeak_setting(cmd_dcc) chanpeak_dcc
bind pub $chanpeak_setting(pflag) $chanpeak_setting(cmd_pub) chanpeak_pub
proc chanpeak_readarray {array file} {
upvar $array ours
if {[catch {open $file r} fd]} { return }
if {[array exists ours]} { unset ours }
foreach line [split [read $fd] \n] {
if {[string range $line 0 2] != "%!%" || [scan [string range $line 3 end] {%[^!]!!!%s} name data] != 2} { continue }
if {![info exists data]} { set data "" }
set ours($name) $data
}
close $fd
}
proc chanpeak_savearray {array file} {
upvar $array ours
if {![array exists ours] || [catch {open $file w} fd]} { return }
foreach entry [array names ours] { puts $fd "%!%$entry!!!$ours($entry)" }
close $fd
}
if {[file exists $chanpeak_setting(db)]} { chanpeak_readarray chanpeak_peak $chanpeak_setting(db) }
proc chanpeak_dopre {} {
if {!$::chanpeak_setting(CHANPEAK:)} { return "" }
if {!$::chanpeak_setting(bold)} { return "CHANPEAK: " }
return "\002CHANPEAK:\002 "
}
proc chanpeak_dcc {hand idx text} {
if {$text == ""} { putdcc $idx "[chanpeak_dopre]Usage: .$::chanpeak_setting(cmd_dcc) <channel>" ; return }
if {![info exists ::chanpeak_peak([string tolower [set chan [lindex [split $text] 0]]])]} { putdcc $idx "[chanpeak_dopre]User Rekord existiert für diesen Channel $chan noch nicht." ; return }
set list [split $::chanpeak_peak([string tolower $chan]) @]
putdcc $idx "[chanpeak_dopre]Der Channel Rekord für $chan2 liegt bei [lindex $list 0] User. Der Rekord wurde am [lindex $list 1] um [lindex $list 2] Uhr erreicht."
}
proc chanpeak_pub {nick uhost hand chan text} {
if {[set chan2 [lindex [split $text] 0]] == ""} { set chan2 $chan }
if {![info exists ::chanpeak_peak([string tolower $chan2])]} { puthelp "PRIVMSG $chan :User Rekord existiert für diesen Channel $chan2 noch nicht." ; return }
set list [split $::chanpeak_peak([string tolower $chan2]) @]
puthelp "PRIVMSG $chan :Der Channel Rekord für $chan2 liegt bei [lindex $list 0] User. Der Rekord wurde am [lindex $list 1] um [lindex $list 2] Uhr erreicht."
}
proc chanpeak_join {nick uhost hand chan} {
global chanpeak_peak
if {[lsearch -exact [channel info $chan] +peak] == -1} { return }
if {[info exists chanpeak_peak([string tolower $chan])]} {
set peak $chanpeak_peak([string tolower $chan])
} {
set peak "0@[clock format [clock seconds] -format %d].[clock format [clock seconds] -format %m].[clock format [clock seconds] -format %Y]@[clock format [clock seconds] -format "%H:%M"]@--"
}
set peak [split $peak @]
if {[lindex $peak 0] >= [set users [llength [chanlist $chan]]]} { return }
if {$::chanpeak_setting(announce)} { puthelp "PRIVMSG $chan :Neuer $chan Rekord: $users user. Der Letze Rekord war am [lindex $peak 1] um [lindex $peak 2]." }
if {$::chanpeak_setting(cast)} { dccbroadcast "Neuer $chan Rekord: $users user. Der Letze Rekord war am [lindex $peak 1] um [lindex $peak 2]." }
set ::chanpeak_peak([string tolower $chan]) "$users@[clock format [clock seconds] -format %d].[clock format [clock seconds] -format %m].[clock format [clock seconds] -format %Y]@[clock format [clock seconds] -format {%H:%M}]@[clock format [clock seconds] -format %p]"
chanpeak_savearray chanpeak_peak $::chanpeak_setting(db)
}
vielen lieben dank im voraus :)
mfg
henima
ich hab folgendes problem, worann ich noch verzweifel, wenn ein user den channel neu joined, bekomme ich immer auf der partyline folgende fehlermeldung:
Tcl error [chanpeak_join]: bad format string "%p"
nun hab ich mir die stelle in dem script angeschaut, aber ich weiss absolut nicht warum er dort eine fehlermeldung ausgibt
ich würde mich riesig freuen, wenn mir hier geholfen werden könnte
hier der tcl script code:
if {![string match 1.6.* $version]} { putlog "\002CHANPEAK:\002 \002WARNING:\002 This script is intended to run on eggdrop 1.6.x or later." }
if {[info tclversion] < 8.2} { putlog "\002CHANPEAK:\002 \002WARNING:\002 This script is intended to run on Tcl Version 8.2 or later." }
setudef flag peak
bind join - * chanpeak_join
bind dcc $chanpeak_setting(dflag) $chanpeak_setting(cmd_dcc) chanpeak_dcc
bind pub $chanpeak_setting(pflag) $chanpeak_setting(cmd_pub) chanpeak_pub
proc chanpeak_readarray {array file} {
upvar $array ours
if {[catch {open $file r} fd]} { return }
if {[array exists ours]} { unset ours }
foreach line [split [read $fd] \n] {
if {[string range $line 0 2] != "%!%" || [scan [string range $line 3 end] {%[^!]!!!%s} name data] != 2} { continue }
if {![info exists data]} { set data "" }
set ours($name) $data
}
close $fd
}
proc chanpeak_savearray {array file} {
upvar $array ours
if {![array exists ours] || [catch {open $file w} fd]} { return }
foreach entry [array names ours] { puts $fd "%!%$entry!!!$ours($entry)" }
close $fd
}
if {[file exists $chanpeak_setting(db)]} { chanpeak_readarray chanpeak_peak $chanpeak_setting(db) }
proc chanpeak_dopre {} {
if {!$::chanpeak_setting(CHANPEAK:)} { return "" }
if {!$::chanpeak_setting(bold)} { return "CHANPEAK: " }
return "\002CHANPEAK:\002 "
}
proc chanpeak_dcc {hand idx text} {
if {$text == ""} { putdcc $idx "[chanpeak_dopre]Usage: .$::chanpeak_setting(cmd_dcc) <channel>" ; return }
if {![info exists ::chanpeak_peak([string tolower [set chan [lindex [split $text] 0]]])]} { putdcc $idx "[chanpeak_dopre]User Rekord existiert für diesen Channel $chan noch nicht." ; return }
set list [split $::chanpeak_peak([string tolower $chan]) @]
putdcc $idx "[chanpeak_dopre]Der Channel Rekord für $chan2 liegt bei [lindex $list 0] User. Der Rekord wurde am [lindex $list 1] um [lindex $list 2] Uhr erreicht."
}
proc chanpeak_pub {nick uhost hand chan text} {
if {[set chan2 [lindex [split $text] 0]] == ""} { set chan2 $chan }
if {![info exists ::chanpeak_peak([string tolower $chan2])]} { puthelp "PRIVMSG $chan :User Rekord existiert für diesen Channel $chan2 noch nicht." ; return }
set list [split $::chanpeak_peak([string tolower $chan2]) @]
puthelp "PRIVMSG $chan :Der Channel Rekord für $chan2 liegt bei [lindex $list 0] User. Der Rekord wurde am [lindex $list 1] um [lindex $list 2] Uhr erreicht."
}
proc chanpeak_join {nick uhost hand chan} {
global chanpeak_peak
if {[lsearch -exact [channel info $chan] +peak] == -1} { return }
if {[info exists chanpeak_peak([string tolower $chan])]} {
set peak $chanpeak_peak([string tolower $chan])
} {
set peak "0@[clock format [clock seconds] -format %d].[clock format [clock seconds] -format %m].[clock format [clock seconds] -format %Y]@[clock format [clock seconds] -format "%H:%M"]@--"
}
set peak [split $peak @]
if {[lindex $peak 0] >= [set users [llength [chanlist $chan]]]} { return }
if {$::chanpeak_setting(announce)} { puthelp "PRIVMSG $chan :Neuer $chan Rekord: $users user. Der Letze Rekord war am [lindex $peak 1] um [lindex $peak 2]." }
if {$::chanpeak_setting(cast)} { dccbroadcast "Neuer $chan Rekord: $users user. Der Letze Rekord war am [lindex $peak 1] um [lindex $peak 2]." }
set ::chanpeak_peak([string tolower $chan]) "$users@[clock format [clock seconds] -format %d].[clock format [clock seconds] -format %m].[clock format [clock seconds] -format %Y]@[clock format [clock seconds] -format {%H:%M}]@[clock format [clock seconds] -format %p]"
chanpeak_savearray chanpeak_peak $::chanpeak_setting(db)
}
vielen lieben dank im voraus :)
mfg
henima