This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

Little help (Timebomb)

Support & discussion of released scripts, and announcements of new releases.
Post Reply
w
whiteshark
Halfop
Posts: 62
Joined: Sun Jun 12, 2005 3:23 am
Location: netherlands
Contact:

Little help (Timebomb)

Post by whiteshark »

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: Select all

############################################################################### 
# 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"; 
User avatar
Alchera
Revered One
Posts: 3344
Joined: Mon Aug 11, 2003 12:42 pm
Location: Ballarat Victoria, Australia
Contact:

Post by Alchera »

Contact the author.
Add [SOLVED] to the thread title if your issue has been.
Search | FAQ | RTM
User avatar
dusk
Halfop
Posts: 91
Joined: Sun Mar 06, 2005 7:25 pm
Location: Belgium

Post by dusk »

Not that pretty but it's a solution :

Code: Select all

## 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
w
whiteshark
Halfop
Posts: 62
Joined: Sun Jun 12, 2005 3:23 am
Location: netherlands
Contact:

Post by whiteshark »

Thnx Dude :P :P
Post Reply