| View previous topic :: View next topic |
| Author |
Message |
langer_hans Voice
Joined: 19 Feb 2015 Posts: 13
|
Posted: Thu Feb 19, 2015 2:48 pm Post subject: penalty shoot - elfmeter.tcl |
|
|
hi,
i´m trying to run some scripts on my eggdrop. some work very well, but some dont.
for example:
| Code: | # __ __ __
# /\ \ /\ \ __/\ \
# \ \ \ __ \ \ \/\ \ \ \
# \ \ \ __ /'__`\ \ \ \ \ \ \ \
# \ \ \_\ \/\ \_\ \_\ \ \_/ \_\ \
# \ \____/\ \__/ \_\\ `\___ ___/
# \/___/ \/__/\/_/ '\/__//__/
#
# 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]
} |
i dont know why it isnt working.
nothing happens if i type ?elfmeter
i did this:
| Code: | # | 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. |
thanks for help |
|
| Back to top |
|
 |
willyw Revered One
Joined: 15 Jan 2009 Posts: 1175
|
Posted: Thu Feb 19, 2015 3:34 pm Post subject: Re: penalty shoot - elfmeter.tcl |
|
|
| langer_hans wrote: |
...
setudef flag elfmeter
...
if {![channel get $chan elfmeter]} {
return
...
|
I have only had a very quick look at your post.
The things I quoted above indicate that the scripter created a way for the bot owner to enable/disable on a per channel basis.
To find out:
In the partyline, do:
.chaninfo #channel_name
and your bot will return its channel settings for that channel.
Look for a section named:
User defined channel flags
and find:
elfmeter
I suspect it will be:
-elfmeter
If so, do:
.chanset #channel_name +elfmeter
to change it.
You can check your work by doing:
.chaninfo #channel_name
again, and see that it is now + .
After making this change, test your script again, on #channel_name.
I hope this helps. |
|
| Back to top |
|
 |
langer_hans Voice
Joined: 19 Feb 2015 Posts: 13
|
Posted: Thu Feb 19, 2015 3:59 pm Post subject: |
|
|
THANKS!
i think it was a noobie question. i will note it that i have to activate it in the partyline
THANKS so much! |
|
| Back to top |
|
 |
willyw Revered One
Joined: 15 Jan 2009 Posts: 1175
|
Posted: Thu Feb 19, 2015 4:05 pm Post subject: |
|
|
I take then that it is working all ok now?
p.s.
Usually the scripter makes a note in the instructions telling the bot owner to use .chanset, etc.
It seems that this one simply forgot. |
|
| Back to top |
|
 |
langer_hans Voice
Joined: 19 Feb 2015 Posts: 13
|
Posted: Thu Feb 19, 2015 4:37 pm Post subject: |
|
|
i downloaded so much scripts, some of them worked without to do anything, some got an !on/off switch directly.
and some with .chanset - and they got no note  |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|