############################## # script: story.tcl # # author: Dany Gagnon (husk) # ############################## # NOTE : this isn't a tcl made exclusively for #christmas bind pub - !story training:do bind pub - !stop training:stop bind part - * training:part bind nick - * training:nick proc training:do {nick host hand chan arg} { training $chan $arg $nick $host } proc training:stop {nick host hand chan arg} { global training; set training(status) "off"; puthelp "MODE $training(chan) -m"; puthelp "TOPIC $training(chan) :Welcome to $training(chan), home of Undernet's Christmas spirit. To view the Christmas Story type !story. Can translate? => daydreamr@gmail.com [WeBCaT]" ; if {$training(nick) != "doNOTdevoice"} { pushmode $training(chan) -v $training(nick) } } proc training:part {nick host hand chan arg} { global training; if {$training(host) == $host && $training(status) == "on"} { puthelp "MODE $training(chan) -m"; puthelp "TOPIC $chan :Welcome to $training(chan), home of Undernet's Christmas spirit. To view the Christmas Story type !story. Can translate? => daydreamr@gmail.com [WeBCaT]"; set training(status) "off"; if {$training(nick) != "doNOTdevoice"} { pushmode $training(chan) -v $training(nick) } } } proc training:nick {nick host hand chan nnick} { global training; if {$training(nick) == $nick} { set training(nick) $nnick } } ############################### set training(chan) "#christmas"; set training(fline) ""; set training(eline) ""; set training(file) ""; set training(status) "off"; set training(ammount) "10"; set training(line) "0"; set training(host) ""; set training(nick) ""; ############################### proc ttest {} { global training; if {$training(status) == "off"} { return; } set fp [open $training(file) r] fconfigure $fp -buffering line gets $fp data set line 0; set x $training(fline); incr x; while {$data != ""} { if {$line == $training(fline)} { set training(ammount) "[expr [string length $data] / 10]"; putserv "privmsg $training(chan) :$data"; }; incr line; gets $fp data; } flush stdout; close $fp global training(line); incr training(line); if {$x > $training(eline)} { putserv "privmsg $training(chan) :End of the story" ; puthelp "MODE $training(chan) -m"; puthelp "topic $training(chan) :Welcome to $training(chan), home of Undernet's Christmas spirit. To view the Christmas Story type !story. Can translate? => daydreamr@gmail.com [WeBCaT]" ; set training(status) "off"; if {$training(nick) != "doNOTdevoice"} { pushmode $training(chan) -v $training(nick) } ; return; } global training(fline); set training(fline) $x; set timertraining [utimer $training(ammount) ttest]; } proc training { chan part nick uhost } { global training; if {$training(status) == "on"} { return } if {$part == ""} { set part "english"; } if {![file exists "/usr/home/assign/eggdrop/story/$part.txt"]} { putserv "privmsg $chan :* Error - invalid language or option specified!"; return } puthelp "TOPIC $chan :You're reading the $part Christmas story brought to you by Undernet. Enjoy some Christmas spirit with us! :)"; set training(host) $uhost; set training(nick) $nick; if {[isvoice $nick $chan] != "0"} { set training(nick) "doNOTdevoice" } if {$training(nick) != "doNOTdevoice"} { pushmode $chan +v $nick; } puthelp "MODE $chan +m" set training(file) "/usr/home/assign/eggdrop/story/$part.txt"; set training(fline) 0; set training(chan) $chan; set fp [open $training(file) r]; fconfigure $fp -buffering line; gets $fp data set line 0; while {$data != ""} { incr line; gets $fp data; } flush stdout; close $fp set training(eline) $line; set training(status) on; set training(line) "0"; ttest; } bind pub - !menu training:showmenu proc training:showmenu {nick host hand chan} { global training if {$training(status) == "on"} { return } set filename "/usr/home/assign/eggdrop/story/menu.txt" if {![file exists $filename]} { return } set training(host) $uhost; set training(nick) $nick; if {[isvoice $nick $chan] != "0"} { set training(nick) "doNOTdevoice" } set training(file) "/usr/home/assign/eggdrop/story/$part.txt"; set training(fline) 0; set training(chan) $chan; set fp [open $training(file) r]; fconfigure $fp -buffering line; gets $fp data set line 0; while {$data != ""} { incr line; gets $fp data; } flush stdout; close $fp set training(eline) $line; set training(status) on; set training(line) "0"; ttest2 } proc ttest2 {} { global training if {$training(status) == "off"} { return; } set fp [open $training(file) r] fconfigure $fp -buffering line gets $fp data set line 0; set x $training(fline); incr x; while {$data != ""} { if {$line == $training(fline)} { set training(ammount) "[expr [string length $data] / 10]"; putserv "privmsg $training(chan) :$data"; }; incr line; gets $fp data; } flush stdout; close $fp global training(line); incr training(line); if {$x > $training(eline)} { set training(status) "off"; return; } global training(fline); set training(fline) $x; set timertraining [utimer $training(ammount) ttest2]; }