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 

Little help (Timebomb)

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


Joined: 12 Jun 2005
Posts: 62
Location: netherlands

PostPosted: Sat Feb 25, 2006 3:17 pm    Post subject: Little help (Timebomb) Reply with quote

Hello i have a bomb script with two users are protected .is it possible that it make three users protected.I want more users protected.
thnx U.

Code:
###############################################################################
# Name: Timebomb by ^DooM^
# Eggdrop Version: 1.6.x
# Original Author: jotham.read@gmail.com
#
# This is a small TCL script for Eggdrop. Timebomb is a game where one person
# asks the Eggdrop bot to plant a timebomb in another users pants. The target
# user then needs to diffuse the bomb by cutting the correct wire, or be
# kicked from the channel.
#
# To start the game a user must type:
# !timebomb <nickname> || !bomb <nickname>
# This will cause the target user to have a timebomb "stuffed in their pants"
# once this occurs the user will have a number of seconds to diffuse the bomb.
# Diffusing the bomb is done by typing:
# !cutwire <colour> || !snip <colour>
#
# The wire colors you can choose from are displayed when the bomb is planted.
# This script will not allow bots (Users who are +b), or the bot running the
# script, to be timebombed.
#
# I know it sounds very silly but it is a rather fun game.
#
# Additional script features by ^DooM^:
# -------------------------------------
#
# ** = Can be turned off
#
# 1) If the person you !bomb guesses correctly you get booted out of the channel
# 2) Added an idle check to not allow users to be bombed if they are AFK. **
# 3) Made the bot blow itself up on occasion **
# 4) Made the bot kill a user if they try and evade the kick if the bot is opered up **
# 5) Stopped the wire count from choosing just 1 wire thats too easy.
# 6) Added a kick counter
# 7) Added random amusing counter messages
# 8) Added random placements of bomb
# 9) Added protection for "specified" nicks i.e. the owner and a non linked bot
# 10) If a user bombs himself and guesses correctly the user throws the bomb away
# 11) general bug fixes
#
#
###############################################################################

bind pub - !timebomb doTimebomb
bind pub - !bomb doTimebomb
bind pub - !cutwire doCutWire
bind pub - !snip doCutWire

###############################################################################
# Configuration
#

## Set the minimum time the bomb can have in seconds
set gTimebombMinimumDuration 30

## Set the maximum time the bomb can have in seconds
set gTimebombMaximumDuration 30

## Set the colours you wish to use
set gWireChoices "Blue Green Red Brown Purple Orange Yellow Cyan Pink Grey Black White"

## Set the maximum number of wires that they can choose from to cut.
## has to be lower than the ammount of colours set above.
set gMaxWireCount 5

## Set this to your nick if you wish to be protected from being bombed
set gOwner "BB4E^WhiteShark"

## Set this to the nick of another person or bot to protect if you havent linked the bots
set gBot "BB4E^Sec-War^"

## This is the file used to store the number of people blown up make sure you have read/write
## access on your shell
set gKickFile "KickCounter.log"

## Set this to 1 if you wish users who are away for X minutes to be exempt from being bombed
set gIdleOn 1

## Set the number of minutes you wish a person to be idle before they are exempt from being bombed
set gIdleTime 5

## I have coded into this script a 1 in 25 chance that the bot will blow itself up arming the bomb
## if it does it will kick itself out of the channel I thought this was highly amusing.
## Set this to 0 if you wish to disable this feature.
set gAllowBotKickSelf 0

## Set this to 1 if your bot is opered up all this feature does is /kill a nick if they try and evade
## a kick from the channel if your bot is not an oper then it will just message them 'Coward' :)
set gOperBot 1

###############################################################################
# Set random counter reasons. Add as many as you like.
#

set gCounterMessage {
{people have been blown up so far}
{corpses are lying in the morgue}
{people have paid with their lives}
{times that damn bomb has exploded}
{messy endings}
{body parts scatter the floor}
{people are no more}
{green bottles hanging on the wall}
{people have lost limbs}
{tombstones with the words 'I should of cut the other wire' engraved for eternity}
{people chose the wrong damn wire}
{people commited suicide to date}
{death certificates have been issued}
{people got blown to smithereens}
{people got 0wned}
{people are crap at this}
{peoples teeth decorate the ceiling}
{people should of ducked}
{people are burning in hell}
{people didn't dodge Sentinel's rocket}
{people got telefragged}
{people have been forsaken by their evil god}
{people have gone to that better place}
{people R.I.P.}
{people saw an intense white light as their skin melted away from their bones}
{people were vaporised}
{bombs were harmed during the making of this script}
{bombs exploded leaving holes everywhere}
{times we've scraped jam off the ceiling}
{bombs were detonated to date}
{weapons of mass destruction have been detonated so far}
{times this random message procedure has been called}
{three headed monkeys all laughed at your stupidity}
{graves have been dug so far}
{people wished they had taken the blue pill}
{times someone set you up the bomb}
{people had limbs blown off in the most excruciatingly painfull way}
{times fire and brimstone have scorched the earth}
{times the room has had to be repainted}
{people realised too late that they were colour blind}
}

###############################################################################
# Set random place to plant bomb. Add as many as you like.
#

set gPlaceBombMessage {
{Pants}
{Shoe}
{Hair}
{Bra}
{Y Fronts}
{Boxers}
{Mouth}
{Ass}
{Eye Socket}
{Nose}
{Wee Hole}
}

###############################################################################
# Internal Globals Do Not Touch Unless You Know What You Are Doing....
#

set gTheScriptVersion "1.2"
set gTimebombActive 0
set gTimerId 0
set gTimebombTarget ""
set gTimebombChannel "#trivia.nl"
set gCorrectWire ""
set gNumberNames "zero one two three four five six seven eight nine ten eleven twelve"
set gStarter ""
set gKickCounter 0

###############################################################################
# Script Starts Here
#

proc note {msg} {
putlog "$msg"
}

proc IRCKick {theNick theChannel theReason} {
global gKickCounter gKickFile gCounterMessage gOperBot
note "Kicking $theNick in $theChannel (Reason: $theReason)"
if { [onchan $theNick $theChannel] } {

#Open file and read the variable
if { [file exists $gKickFile] == 1 } {

set FileHandle [open $gKickFile "r"]
set TempString [read $FileHandle]
close $FileHandle
set lines [split $TempString "\n"]

set gKickCounter [lindex $lines 0]

} else {

# Set the kickcounter to 0 initially
set gKickCounter 0
}
set CounterMessage [lindex $gCounterMessage [rand [llength $gCounterMessage]]]
putserv "KICK $theChannel $theNick :$theReason. ($gKickCounter $CounterMessage)"
incr gKickCounter 1

# Write the variable to file (remember opening with 'w' mode truncates the file contents)
set FileHandle [open $gKickFile "w"]
puts $FileHandle $gKickCounter
close $FileHandle
return
} elseif { $gOperBot == 1 } {
putserv "KILL $theNick :$theReason"
return
} else {
putserv "NOTICE $theNick :Coward!!"
return
}
}


proc IRCPrivMSG {theTarget messageString} {
putserv "PRIVMSG $theTarget :$messageString"
}

proc IRCAction {theTarget messageString} {
putserv "PRIVMSG $theTarget :\001ACTION $messageString\001"
}

proc MakeEnglishList {theList} {
set theListLength [llength $theList]
set returnString [lindex $theList 0]
for {set x 1} {$x < $theListLength} {incr x} {
if { $x == [expr $theListLength - 1] } {
set returnString "$returnString and [lindex $theList $x]"
} else {
set returnString "$returnString, [lindex $theList $x]"
}
}
return $returnString
}

proc SelectWires {wireCount} {
global gWireChoices
set totalWireCount [llength $gWireChoices]
set selectedWires ""
for {set x 0} {$x < $wireCount} {incr x} {
set currentWire [lindex $gWireChoices [expr int( rand() * $totalWireCount )]]
if { [lsearch $selectedWires $currentWire] == -1 } {
lappend selectedWires $currentWire
} else {
set x [expr $x - 1]
}
}
return $selectedWires
}

proc DetonateTimebomb {destroyTimer kickMessage} {
global gTimebombTarget gTimerId gTimebombChannel gTimebombActive gPlaceBombMessage
if { $destroyTimer } {
killutimer $gTimerId
}
set gTimerId 0
set gTimebombActive 0
IRCKick $gTimebombTarget $gTimebombChannel $kickMessage
}

proc DiffuseTimebomb {wireCut} {
global gTimerId gTimebombActive gTimebombTarget gTimebombChannel gStarter gPlaceBombMessage
killutimer $gTimerId
set gTimerId 0
set gTimebombActive 0
set RearmDuration 2
IRCPrivMSG $gTimebombChannel "124,1:::5:0 $gTimebombTarget cut the $wireCut wire. This has defused the bomb!0,1 5,1:4:::"

if { [string tolower $gTimebombTarget] == [string tolower $gStarter] } {
IRCPrivMSG $gTimebombChannel "124,1:::5:0 $gTimebombTarget Throws the bomb away0,1 5,1:4:::"
set gStarter ""
return
} else {
set PlaceBombMessage [lindex $gPlaceBombMessage [rand [llength $gPlaceBombMessage]]]
IRCPrivMSG $gTimebombChannel "$gTimebombTarget ReArmed the bomb at \[4\002$RearmDuration\002\] Seconds and stuffed it into $gStarter's $PlaceBombMessage!"
IRCKick $gStarter $gTimebombChannel "Tick Tick *BOOM!*"
set gStarter ""
return
}
}

proc StartTimeBomb {theStarter theNick theChannel} {
global gTimebombActive gTimebombTarget gTimerId gTimebombChannel gNumberNames gCorrectWire
global gMaxWireCount gTimebombMinimumDuration gTimebombMaximumDuration gStarter gPlaceBombMessage
set PlaceBombMessage [lindex $gPlaceBombMessage [rand [llength $gPlaceBombMessage]]]
if { $gTimebombActive == 1 } {
note "Timebomb not started for $theStarter (Reason: timebomb already active)"
if { $theChannel != $gTimebombChannel } {
IRCPrivMSG $theChannel "I don't have a single bomb to spare. :-("
return
} else {
IRCAction $theChannel "points at the bulge in the back of $gTimebombTarget's $PlaceBombMessage."
}
} else {
set timerDuration [expr $gTimebombMinimumDuration + [expr int(rand() * ($gTimebombMaximumDuration - $gTimebombMinimumDuration))]]
set gStarter $theStarter
set gTimebombTarget $theNick
set gTimebombChannel $theChannel
set numberOfWires [expr 2 + int(rand() * ( $gMaxWireCount - 1 ))]
set listOfWires [SelectWires $numberOfWires]
set gCorrectWire [lindex $listOfWires [expr int( rand() * $numberOfWires )]]
set wireListAsEnglish [MakeEnglishList $listOfWires]
set wireCountAsEnglish [lindex $gNumberNames $numberOfWires]
IRCAction $theChannel "stuffs the bomb into $gTimebombTarget's $PlaceBombMessage. The display reads \[4\002$timerDuration\002\] seconds."
if { $numberOfWires == 1 } {
IRCPrivMSG $theChannel "\4,1:::5:0 INCOMING!: Bomb has been planted!!! You have4 30sec0 to defuse the Bomb! Engi:$theNick  by using '!cutwire colour' Try and cut the correct wire. There is $wireCountAsEnglish wire. It is $wireListAsEnglish.:\. 5,1:4:::"
} else {
IRCPrivMSG $theChannel "\4,1:::5:0 INCOMING!: Bomb has been planted!!! You have4 30sec0 to defuse the Bomb! Engi:$theNick  by using '!cutwire colour' Try and cut the correct wire. There are $wireCountAsEnglish wires. They are $wireListAsEnglish.:\. 5,1:4:::"
}
set gTimebombActive 1
set gTimerId [utimer $timerDuration "DetonateTimebomb 0 {\124,1:::5:0 *BOOM* Fear. Go to die noob!}"]
}
}

###############################################################################
# Eggdrop command binds
#

proc doCutWire {nick uhost hand chan arg} {
global gTimebombActive gCorrectWire gTimebombTarget
if { $gTimebombActive == 1 } {
if { [string tolower $nick] == [string tolower $gTimebombTarget] } {
if { [llength $arg] == 1 } {
if { [string tolower $arg] == [string tolower $gCorrectWire] } {
DiffuseTimebomb $gCorrectWire
} else {
DetonateTimebomb 1 "\124,1:::5:0 snip...*BOOM!*"
}
}
}
}
}

proc doTimebomb {nick uhost hand chan arg} {

global botnick gStarter gOwner gBot gIdleTime gTimebombActive gAllowBotKickSelf gIdleOn gPlaceBombMessage
#set gStarter $nick
set theNick $nick
if { [lindex [split $arg] 0] != "" } {
set theNick [lindex [split $arg] 0]
}
if { ![onchan $theNick $chan] } {
putserv "PRIVMSG $chan :$theNick is not here maybe he has been blown up!"
return
}
if { $gAllowBotKickSelf == 1} {
if { $gTimebombActive == 0 } {
if { ![rand 25] } {
IRCKick $botnick $chan "Blew himself up Arming the bomb"
return
}
}
}
if { $gIdleOn == 1} {
if { [getchanidle $theNick $chan] > $gIdleTime && $theNick != $nick} {
putserv "PRIVMSG $chan :124,1:::5:0 $theNick is Away. Choose another victim!124,1:::5:0 "
return
}
}
if { [string tolower $theNick] == [string tolower $botnick] || [string tolower $theNick] == [string tolower $gOwner] || [string tolower $theNick] == [string tolower $gBot] } {
set theNick $nick
StartTimeBomb $theNick $theNick $chan
return
}
if { [validuser $theNick] == 1 } {
if { [matchattr $theNick "+b"] == 1 } {
set theNick $nick
IRCKick $theNick $chan "124,1:::5:0 You should not attack the bots!124,1:::5:0 " 
return
}
}
StartTimeBomb $nick $theNick $chan
}

###############################################################################

note "timebomb $gTheScriptVersion: loaded";
Back to top
View user's profile Send private message Visit poster's website
Alchera
Revered One


Joined: 11 Aug 2003
Posts: 3344
Location: Ballarat Victoria, Australia

PostPosted: Wed Mar 01, 2006 9:55 pm    Post subject: Reply with quote

Contact the author.
_________________
Add [SOLVED] to the thread title if your issue has been.
Search | FAQ | RTM
Back to top
View user's profile Send private message Visit poster's website
dusk
Halfop


Joined: 06 Mar 2005
Posts: 91
Location: Belgium

PostPosted: Thu Mar 02, 2006 12:11 am    Post subject: Reply with quote

Not that pretty but it's a solution :

Code:

## Set this to the nick of another person or bot to protect if you havent linked the bots
set gBot "BB4E^Sec-War^"
set gBot2 "anynickyoulike" <-- ADD THIS

REPLACE THESE LINES  :

proc doTimebomb {nick uhost hand chan arg} {

global botnick gStarter gOwner gBot gIdleTime gTimebombActive gAllowBotKickSelf gIdleOn

WITH :

proc doTimebomb {nick uhost hand chan arg} {

global botnick gStarter gOwner gBot gBot2 gIdleTime gTimebombActive gAllowBotKickSelf gIdleOn

AND THESE LINES :
 
if { [string tolower $theNick] == [string tolower $botnick] || [string tolower $theNick] == [string tolower $gOwner] || [string tolower $theNick] == [string tolower $gBot] } {

WITH :

if { [string tolower $theNick] == [string tolower $botnick] || [string tolower $theNick] == [string tolower $gOwner] || [string tolower $theNick] == [string tolower $gBot] || [string tolower $theNick] == [string tolower $gBot2 } {



GRTZ
Back to top
View user's profile Send private message MSN Messenger
whiteshark
Halfop


Joined: 12 Jun 2005
Posts: 62
Location: netherlands

PostPosted: Sat Mar 04, 2006 2:44 am    Post subject: Reply with quote

Thnx Dude Razz Razz
Back to top
View user's profile Send private message Visit poster's website
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