i´m trying to run some scripts on my eggdrop. some work very well, but some dont.
for example:
Code: Select all
# __ __ __
# /\ \ /\ \ __/\ \
# \ \ \ __ \ \ \/\ \ \ \
# \ \ \ __ /'__`\ \ \ \ \ \ \ \
# \ \ \_\ \/\ \_\ \_\ \ \_/ \_\ \
# \ \____/\ \__/ \_\\ `\___ ___/
# \/___/ \/__/\/_/ '\/__//__/
#
# Elfmeter Script by LaW.
#
# | author: LaW
# | version: 1.1
# | web: www.myGeeX.de
# | irc: #GeeX at Quakenet
# | contact: www.myGeeX.de/?page_id=17
#
# +-------------+
# | r e a d m e |
# +-------------+
#
# | upload this script via ftp and write:
# | - 'source url/to/script/elfmeter.tcl'
# | into your eggdrop configuration.
# | After you have done this rehash or restart your eggdrop.
#
# +-------------------+
# | c h a n g e l o g |
# +-------------------+
#
# | - (23.07.06) v1.0: release
# | - (29.07.06) v1.1: little bug fix
#
# +-------------------+
# | c o p y r i g h t |
# +-------------------+
#
# Copyright (C) 2006 Laurids 'GeeX' W.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# Don't change anything.
# Report bugs to #GeeX at Quakenet.
# Penalty shoot out
# configuration
# variables
set elfmeter(trigger) "\?"
set elfmeter(author) "Laurids 'GeeX' W. (#GeeX at Quakenet)"
set elfmeter(version) "1.1"
set elfmeter(flood) "60"
# flags / strings
setudef flag elfmeter
# bindings
bind PUB -|- $elfmeter(trigger)elfmeter elfmeter:start
bind PUB -|- $elfmeter(trigger)ja elfmeter:ja
bind PUB -|- $elfmeter(trigger)nein elfmeter:nein
bind NOTC -|- links elfmeter:links
bind NOTC -|- mitte elfmeter:mitte
bind NOTC -|- rechts elfmeter:rechts
# copyright
putlog "Elfmeter Script version $elfmeter(version) scripted by $elfmeter(author)"
# source (again DO NOT change anything if you are not 100% sure)
proc elfmeter:start { nick host hand chan arg } {
global elfmeter
if {![channel get $chan elfmeter]} {
return
} elseif {[info exists elfmeter(flood,$chan)] && [expr [unixtime] - $elfmeter(flood,$chan)] < $elfmeter(flood)} {
return
} elseif {[info exists elfmeter(game,$chan)]} {
putserv "NOTICE $nick :Error. Es läuft bereits ein Spiel."
return
} elseif {$arg == ""} {
putserv "NOTICE $nick :Error. Benutze $elfmeter(trigger)elfmeter 'nick'."
return
} elseif {![onchan [lindex [split $arg] 0] $chan]} {
putserv "NOTICE $nick :Error. [lindex [split $arg] 0] ist nicht im Channel anwesend."
return
} elseif {$nick == "[lindex [split $arg] 0]"} {
putserv "NOTICE $nick :Error. Du kannst dich nicht selbst fordern."
return
} else {
set elfmeter(winner,keeper) {
"Omg, was für eine Parade von :keeper:! Der Ball fliegt mit einem kräftigen Schuss aufs Tor zu, doch :keeper: ist zur Stelle."
"Wow, :keeper: scheint heute in Top-Form zu sein. Er boxt den Ball ins Seitenaus, nicht schlecht, bei so einem Schuss aufs \"Eckige\"!"
"Hmm, das war nichts! Mühelos hält :keeper: den Ball, was auch nicht schwer war bei so einem \"Kuller-Bällchen\"."
"Unglaublich! Solche Reflexe muss ein Torwart haben, dann kann bei einem Elfmeterschießen gar nichts passieren."
}
set elfmeter(winner,shooter) {
"Boah, ein Mordsschuß von :shooter: auf den Kasten! Viel zu schnell für :keeper:."
"Oh, wie hat er den nur verwandelt? Einzigartiger Schuß von :shooter: auf das Gehäuse von :keeper:."
"Hammer, ein wahrer Goldjunge am Elfmeterpunkt! Eiskalt schiebt er den Ball ins Tor."
"Was kann man da noch sagen? Perfekt, einfach nur perfekt, wie :shooter: den Elfmeter verwandelt hat."
}
set elfmeter(winner,keeper,aside) {
"Oh nein, wie konnte :shooter: so einen sicheren Elfmeter nur versemmeln? Glück für :keeper:!"
"Ein Gewaltschuß, aber leider ohne Erfolg für :shooter:, er haut das Ding an den Pfosten!."
"Hmm, :shooter: scheint es heute mit den Nerven zu haben. Er haut die Kirsche in die Zuschauermenge."
"Oh Gott, hier wollte :shooter: es zu genau machen. Er knallt das Leder an die Latte und :keeper: freut sich, sein Einsatz war nicht gefragt."
}
set elfmeter(points,keeper,$chan) 0
set elfmeter(points,shooter,$chan) 0
set elfmeter(game,$chan) 1
set elfmeter(player1,$chan) $nick
set elfmeter(player2,$chan) [lindex [split $arg] 0]
set elfmeter(chan,$nick) $chan
set elfmeter(chan,$elfmeter(player2,$chan)) $chan
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 $nick fordert [lindex [split $arg] 0] zu einem Elfmeterschießen heraus. Tippe $elfmeter(trigger)ja 'keeper/shooter' um die Forderung anzunehmen und deine Position zu wählen, oder $elfmeter(trigger)nein um die Forderung abzulehnen. \002\xBB\002"
set elfmeter(timer,$chan) [utimer 30 [list elfmeter:timeout $chan]]
}
}
proc elfmeter:ja { nick host hand chan arg } {
global elfmeter
if {![info exist elfmeter(game,$chan)] || $nick != $elfmeter(player2,$chan)} {
return
} else {
set elfmeter(player2,$chan) $nick
if {$arg == ""} {
putserv "NOTICE $nick :Error. Benutze $elfmeter(trigger)ja 'keeper/shooter' um deine Position zu wählen."
return
} elseif {$arg == "keeper"} {
set elfmeter(keeper,$chan) $nick
set elfmeter(shooter,$chan) $elfmeter(player1,$chan)
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 $nick ist der Torwart. Viel Glück beim Elfmeter halten. \002\xBB\002"
} elseif {$arg == "shooter"} {
set elfmeter(shooter,$chan) $nick
set elfmeter(keeper,$chan) $elfmeter(player1,$chan)
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 $nick ist der Schütze. Hoffentlich triffst du auch das Tor. \002\xBB\002"
}
}
killutimer $elfmeter(timer,$chan)
set elfmeter(chan,$elfmeter(keeper,$chan)) $chan
elfmeter:game $chan
}
proc elfmeter:nein { nick host hand chan arg } {
global elfmeter
if {![info exist elfmeter(game,$chan)] || $nick != $elfmeter(player2,$chan)} {
return
} else {
killutimer $elfmeter(timer,$chan)
unset elfmeter(game,$chan)
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 $nick ist anscheinend kein Fußball Fan. Spiel abgebrochen. \002\xBB\002"
}
}
proc elfmeter:timeout { chan } {
global elfmeter
unset elfmeter(game,$chan)
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 Es scheint, dass $elfmeter(player2,$chan) zur Zeit nicht hier ist. Spiel abgebrochen. \002\xBB\002"
}
proc elfmeter:game { chan } {
global elfmeter botnick
if {[expr $elfmeter(points,keeper,$chan) + $elfmeter(points,shooter,$chan)] == 0} {
puthelp "NOTICE $elfmeter(shooter,$chan) :Wo willst du hinschießen? Wähle zwischen /notice $botnick 'links/mitte/rechts'."
puthelp "NOTICE $elfmeter(keeper,$chan) :Wo, meinst du, wird dein Gegner hinschießen? Wähle zwischen /notice $botnick 'links/mitte/rechts'."
}
set elfmeter(timer,shooter,$chan) [utimer 60 [list elfmeter:choose:timeout $elfmeter(shooter,$chan) $chan]]
set elfmeter(timer,keeper,$chan) [utimer 60 [list elfmeter:choose:timeout $elfmeter(keeper,$chan) $chan]]
}
proc elfmeter:links { nick host hand arg dest } {
global elfmeter
set chan $elfmeter(chan,$nick)
if {![info exists elfmeter(game,$chan)]} {
return
} elseif {$nick == $elfmeter(shooter,$chan)} {
killutimer $elfmeter(timer,shooter,$chan)
set elfmeter(choose,shooter,$chan) "links"
if {![info exists elfmeter(choose,keeper,$chan)]} {
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 $nick hat sich entschieden, wo er hinschießen will. Mach schon, $elfmeter(keeper,$chan)! Dir bleibt nicht mehr viel Zeit. \002\xBB\002"
} else {
elfmeter:analysis $chan
}
} elseif {$nick == $elfmeter(keeper,$chan)} {
set chan $elfmeter(chan,$elfmeter(keeper,$chan))
killutimer $elfmeter(timer,keeper,$chan)
set elfmeter(choose,keeper,$chan) "links"
if {![info exists elfmeter(choose,shooter,$chan)]} {
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 $nick hat sich für eine Seite entschieden. Hau rein, $elfmeter(shooter,$chan)! Wir wollen sehen, ob es die richtige war. \002\xBB\002"
} else {
elfmeter:analysis $chan
}
}
}
proc elfmeter:mitte { nick host hand arg dest } {
global elfmeter
set chan $elfmeter(chan,$nick)
if {![info exists elfmeter(game,$chan)]} {
return
} elseif {$nick == $elfmeter(shooter,$chan)} {
killutimer $elfmeter(timer,shooter,$chan)
set elfmeter(choose,shooter,$chan) "mitte"
if {![info exists elfmeter(choose,keeper,$chan)]} {
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 $nick hat sich entschieden, wo er hinschießen will. Mach schon, $elfmeter(keeper,$chan)! Dir bleibt nicht mehr viel Zeit. \002\xBB\002"
} else {
elfmeter:analysis $chan
}
} elseif {$nick == $elfmeter(keeper,$chan)} {
set chan $elfmeter(chan,$elfmeter(keeper,$chan))
killutimer $elfmeter(timer,keeper,$chan)
set elfmeter(choose,keeper,$chan) "mitte"
if {![info exists elfmeter(choose,shooter,$chan)]} {
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 $nick hat sich für eine Seite entschieden. Hau rein, $elfmeter(shooter,$chan)! Wir wollen sehen, ob es die richtige war. \002\xBB\002"
} else {
elfmeter:analysis $chan
}
}
}
proc elfmeter:rechts { nick host hand arg dest } {
global elfmeter
set chan $elfmeter(chan,$nick)
if {![info exists elfmeter(game,$chan)]} {
return
} elseif {$nick == $elfmeter(shooter,$chan)} {
killutimer $elfmeter(timer,shooter,$chan)
set elfmeter(choose,shooter,$chan) "rechts"
if {![info exists elfmeter(choose,keeper,$chan)]} {
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 $nick hat sich entschieden, wo er hinschießen will. Mach schon, $elfmeter(keeper,$chan)! Dir bleibt nicht mehr viel Zeit. \002\xBB\002"
} else {
elfmeter:analysis $chan
}
} elseif {$nick == $elfmeter(keeper,$chan)} {
set chan $elfmeter(chan,$elfmeter(keeper,$chan))
killutimer $elfmeter(timer,keeper,$chan)
set elfmeter(choose,keeper,$chan) "rechts"
if {![info exists elfmeter(choose,shooter,$chan)]} {
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 $nick hat sich für eine Seite entschieden. Hau rein, $elfmeter(shooter,$chan)! Wir wollen sehen, ob es die richtige war. \002\xBB\002"
} else {
elfmeter:analysis $chan
}
}
}
proc elfmeter:choose:timeout { nick chan } {
global elfmeter
if {![info exists elfmeter(game,$chan)]} {
return
} else {
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 Sieht so aus, als wäre $nick verletzt und kann nicht weiter spielen. Spiel abgebrochen. \002\xBB\002"
unset elfmeter(game,$chan)
unset elfmeter(choose,shooter,$chan)
unset elfmeter(choose,keeper,$chan)
}
}
proc elfmeter:analysis { chan } {
global elfmeter
if {$elfmeter(choose,shooter,$chan) == $elfmeter(choose,keeper,$chan)} {
regsub -all -- {:keeper:} $elfmeter(winner,keeper) $elfmeter(keeper,$chan) elfmeter(winner,keeper)
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 [lindex $elfmeter(winner,keeper) [rand [llength $elfmeter(winner,keeper)]]] (Beide haben sich für $elfmeter(choose,shooter,$chan) entschieden.) \002\xBB\002"
incr elfmeter(points,keeper,$chan) 1
} else {
set elfmeter(shooter,aside) [expr {int(rand()*100) + 1}]
if {$elfmeter(shooter,aside) >= 50} {
regsub -all -- {:shooter:} $elfmeter(winner,shooter) $elfmeter(shooter,$chan) elfmeter(winner,shooter)
regsub -all -- {:keeper:} $elfmeter(winner,shooter) $elfmeter(keeper,$chan) elfmeter(winner,shooter)
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 [lindex $elfmeter(winner,shooter) [rand [llength $elfmeter(winner,shooter)]]] (Torwart hat sich für $elfmeter(choose,keeper,$chan) entschieden, Schütze jedoch für $elfmeter(choose,shooter,$chan).) \002\xBB\002"
incr elfmeter(points,shooter,$chan) 1
} else {
regsub -all -- {:shooter:} $elfmeter(winner,keeper,aside) $elfmeter(shooter,$chan) elfmeter(winner,keeper,aside)
regsub -all -- {:keeper:} $elfmeter(winner,keeper,aside) $elfmeter(keeper,$chan) elfmeter(winner,keeper,aside)
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 [lindex $elfmeter(winner,keeper,aside) [rand [llength $elfmeter(winner,keeper,aside)]]] \002\xBB\002"
incr elfmeter(points,keeper,$chan) 1
}
}
if {[expr $elfmeter(points,shooter,$chan) + $elfmeter(points,keeper,$chan)] < 5} {
set elfmeter(remain) [expr 5 - ($elfmeter(points,keeper,$chan) + $elfmeter(points,shooter,$chan))]
if {$elfmeter(remain) > 1} {
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 Zwischenstand: $elfmeter(shooter,$chan) $elfmeter(points,shooter,$chan):$elfmeter(points,keeper,$chan) $elfmeter(keeper,$chan). Es bleiben noch $elfmeter(remain) Elfmeter. Auf zur nächsten Runde. Entscheidet euch für eine Seite. \002\xBB\002"
} else {
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 Zwischenstand: $elfmeter(shooter,$chan) $elfmeter(points,shooter,$chan):$elfmeter(points,keeper,$chan) $elfmeter(keeper,$chan). Es bleibt noch $elfmeter(remain) Elfmeter. Auf zur letzten Runde. Entscheidet euch für eine Seite. \002\xBB\002"
}
unset elfmeter(choose,shooter,$chan)
unset elfmeter(choose,keeper,$chan)
elfmeter:game $chan
} else {
elfmeter:done $chan
}
}
proc elfmeter:done { chan } {
global elfmeter
if {$elfmeter(points,shooter,$chan) > $elfmeter(points,keeper,$chan)} {
set elfmeter(winner,$chan) $elfmeter(shooter,$chan)
} else {
set elfmeter(winner,$chan) $elfmeter(keeper,$chan)
}
unset elfmeter(game,$chan)
unset elfmeter(choose,shooter,$chan)
unset elfmeter(choose,keeper,$chan)
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 Nach einem spannenden Elfmeterschießen gewinnt $elfmeter(winner,$chan), herzlichen Glückwunsch. \002\xBB\002"
putserv "PRIVMSG $chan :\002\xAB Elfmeter \xBB \xAB\002 Ergebnis nach 5 Runden: $elfmeter(shooter,$chan) $elfmeter(points,shooter,$chan):$elfmeter(points,keeper,$chan) $elfmeter(keeper,$chan). \002\xBB\002"
set elfmeter(flood,$chan) [unixtime]
}
nothing happens if i type ?elfmeter
i did this:
Code: Select all
# | upload this script via ftp and write:
# | - 'source url/to/script/elfmeter.tcl'
# | into your eggdrop configuration.
# | After you have done this rehash or restart your eggdrop.