egghelp.org community Forum Index
[ egghelp.org home | forum home ]
egghelp.org community
Discussion of eggdrop bots, shell accounts and tcl scripts.
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

penalty shoot - elfmeter.tcl

 
Post new topic   Reply to topic    egghelp.org community Forum Index -> Script Support & Releases
View previous topic :: View next topic  
Author Message
langer_hans
Voice


Joined: 19 Feb 2015
Posts: 13

PostPosted: Thu Feb 19, 2015 2:48 pm    Post subject: penalty shoot - elfmeter.tcl Reply with quote

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
View user's profile Send private message
willyw
Revered One


Joined: 15 Jan 2009
Posts: 1175

PostPosted: Thu Feb 19, 2015 3:34 pm    Post subject: Re: penalty shoot - elfmeter.tcl Reply with quote

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
View user's profile Send private message
langer_hans
Voice


Joined: 19 Feb 2015
Posts: 13

PostPosted: Thu Feb 19, 2015 3:59 pm    Post subject: Reply with quote

THANKS!

i think it was a noobie question. i will note it that i have to activate it in the partyline Very Happy

THANKS so much!
Back to top
View user's profile Send private message
willyw
Revered One


Joined: 15 Jan 2009
Posts: 1175

PostPosted: Thu Feb 19, 2015 4:05 pm    Post subject: Reply with quote

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
View user's profile Send private message
langer_hans
Voice


Joined: 19 Feb 2015
Posts: 13

PostPosted: Thu Feb 19, 2015 4:37 pm    Post subject: Reply with quote

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 Smile
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    egghelp.org community Forum Index -> Script Support & Releases All times are GMT - 4 Hours
Page 1 of 1

 
Jump to:  
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


Forum hosting provided by Reverse.net

Powered by phpBB © 2001, 2005 phpBB Group
subGreen style by ktauber