http://www.eggheads.org/support/egghtml ... html#sect3
On BotA, you would type '.+bot elit3 irc.colosolutions.net:20688'.
then .+host Elit3 *!emulate@o0o.r0oted.us
On BotB, you would type '.+bot Schmuck irc.xbox-experts.com:1699'.
.+host Schmuck *!Schmuck@p3047-adsau16honb13-acca.tokyo.ocn.ne.cumcast.org
then did .link elit3 and .link Schmuck and get link failed i've also use netbots.tcl and still same problems i use the have a net of 30 eggs on the same network never had a problem before just cross networks seems to be giving me a little bit of a hard time
i get "Tcl error [send_pubm]: bot is not on the botnet" but only becasue they will not link for some weird reason
here is a copy of how i have my tcl setup
Code: Select all
###############################################################################
# This file is part of the b0xNet module system
#
# Module Base
# Chanrelay by CrazyCat <crazycat@chatfou.com>
#
# 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.
#
# $Id: chanrelay.tcl,v 1.1.1.1 2005/06/16 17:39:28 chong Exp $
set mver v1.2
## DESCRIPTION ##
# This TCL is a complete relay script wich works with botnet.
# All you have to do is to include this tcl in all the eggdrop who
# are concerned by it.
# You can use it as a spy or a full duplex communication tool.
# It don't mind if the eggdrops are on the same server or not,
# it just mind about the channels and the handle of each eggdrop.
## TODO ##
# Well, I've just to find the way to make the mode works...
# If you think I can add something, just ask for it :)
## CONFIGURATION ##
# you must put in: {"relay_bot_handle" "channel where is the relay bot" "channel where is this bot"}
set chan1 {"Elit3" "#xboxexperts"}
set chan2 {"Schmuck" "#xboxexperts"}
# Do you want to use bold (1), underline (2) or nothing (0) to higtlight nicknames ?
set high "1"
# Do you want the bot transmit actions from the channel (y/n)?
set transmit "y"; # default value is yes
# Do you want the bot recept actions (y/n)?
set receive "y"; # default value is yes
# transmission configuration
set trans_pub "y"; # transmit the pub
set trans_act "y"; # transmit the actions (/me)
set trans_nick "y"; # transmit the nick changement
set trans_join "y"; # transmit the join
set trans_part "y"; # transmit the part
set trans_quit "y"; # transmit the quit
set trans_topic "y"; # transmit the topic changements
set trans_kick "y"; # transmit the kicks
set trans_mode "y"; #transmit the mode changements
# reception configuration
set recv_pub "y"; # recept the pub
set recv_act "y"; # recept the actions (/me)
set recv_nick "y"; # recept the nick changement
set recv_join "y"; # recept the join
set recv_part "y"; # recept the part
set recv_quit "y"; # recept the quit
set recv_topic "y"; # recept the topic changements
set recv_kick "y"; # recept the kicks
set recv_mode "y"; #recept the mode changements
############################################################
#
# The TCL begins here, if you don't know what to do, don't do anything :)
#
############################################################
bind msg o|o "status" help:status
bind msg - "help" help:cmds
if { $high == "1" } {
set hlnick "\002"
} elseif { $high == "2" } {
set hlnick "\037"
} else {
set hlnick ""
}
bind msg o|o "light" set:light
if { $transmit == "y" } {
bind msg o|o "trans" set:trans
if { $trans_pub == "y" } { bind pubm - * trans_pub }
if { $trans_act == "y" } { bind ctcp - "ACTION" trans_act }
if { $trans_nick == "y" } { bind nick - * trans_nick }
if { $trans_join == "y" } { bind join - * trans_join }
if { $trans_part == "y" } { bind part - * trans_part }
if { $trans_quit == "y" } { bind sign - * trans_quit }
if { $trans_topic == "y" } { bind topc - * trans_topic }
if { $trans_kick == "y" } { bind kick - * trans_kick }
if { $trans_mode == "y" } { bind mode - * trans_mode }
}
if { $receive =="y" } {
bind msg o|o "recv" set:recv
if { $recv_pub == "y" } { bind bot - ">pub" recv_pub }
if { $recv_act == "y" } { bind bot - ">act" recv_act }
if { $recv_nick == "y" } { bind bot - ">nick" recv_nick }
if { $recv_join == "y" } { bind bot - ">join" recv_join }
if { $recv_part == "y" } { bind bot - ">part" recv_part }
if { $recv_quit == "y" } { bind bot - ">quit" recv_quit }
if { $recv_topic == "y" } { bind bot - ">topic" recv_topic }
if { $recv_kick == "y" } { bind bot - ">kick" recv_kick }
if { $recv_mode == "y" } { bind bot - ">mode" recv_mode }
}
# proc setting the type of highlight
proc set:light {nick host handle arg } {
global hlnick
if { $arg == "bo" } {
set hlnick "\002"
} elseif { $arg == "un" } {
set hlnick "\037"
} elseif { $arg == "off" } {
set hlnick ""
} else { putquick "NOTICE $nick :you must chose \002(bo)\002ld , \037(un)\037derline or (off)" }
}
# proc setting of transmission by msg
proc set:trans { nick host handle arg } {
global botnick transmit
if { $transmit == "y" } {
if { $arg == "" } {
putquick "NOTICE $nick :you'd better try /msg $botnick trans help"
}
if { [lindex $arg 0] == "help" } {
putquick "NOTICE $nick :usage is /msg $botnick trans <value> on|off"
putquick "NOTICE $nick :with <value> = pub, act, nick, join, part, quit, topic, kick, mode"
return 0
} else {
set proc_change "trans_[lindex $arg 0]"
switch [lindex $arg 0] {
"pub" { set type pubm }
"act" { set type ctcp }
"nick" { set type nick }
"join" { set type join }
"part" { set type part }
"quit" { set type sign }
"topic" { set type topc }
"kick" { set type kick }
"mode" { set type mode }
}
if { [lindex $arg 1] == "on" } {
bind $type - * $proc_change
} elseif { [lindex $arg 1] == "off" } {
unbind $type - * $proc_change
} else {
putquick "NOTICE $nick :[lindex $arg 1] is not a correct value, choose \002on\002 or \002off\002"
}
}
} else {
putquick "NOTICE $nick :transmission is not activated, you can't change anything"
}
}
# proc setting of reception by msg
proc set:recv { nick host handle arg } {
global botnick receive
if { $receive == "y" } {
if { $arg == "" } {
putquick "NOTICE $nick :you'd better try /msg $botnick recv help"
}
if { [lindex $arg 0] == "help" } {
putquick "NOTICE $nick :usage is /msg $botnick recv <value> on|off"
putquick "NOTICE $nick :with <value> = pubm, act, nick, join, part, quit, topic, kick, mode"
return 0
} else {
set change ">[lindex $arg 0]"
set proc_change "recv_[lindex $arg 0]"
if { [lindex $arg 1] == "on" } {
bind bot - $change $proc_change
} elseif { [lindex $arg 1] == "off" } {
unbind bot - $change $proc_change
} else {
putquick "NOTICE $nick :[lindex $arg 1] is not a correct value, choose \002on\002 or \002off\002"
}
}
} else {
putquick "NOTICE $nick :reception is not activated, you can't change anything"
}
}
####################################################
#
# Transmission
#
# proc used by all others for transmission
proc trans_bot { usercmd chan usernick text } {
global chan1 chan2
set transmsg [concat $usercmd $usernick $text]
if { $chan == [lindex $chan1 2] } {
set bot [lindex $chan1 0]
} elseif { $chan == [lindex $chan2 2] } {
set bot [lindex $chan2 0]
} else { return 0 }
putbot $bot $transmsg
}
# proc transmission of pub (trans_pubm = y)
proc trans_pub {nick uhost hand chan text} {
trans_bot ">pub" $chan $nick $text
}
# proc transmission of action (trans_act = y)
proc trans_act {nick uhost hand chan key text} {
set arg [concat $key $text]
trans_bot ">act" $chan $nick $arg
}
# proc transmission of nick changement
proc trans_nick {nick uhost hand chan newnick} {
trans_bot ">nick" $chan $nick $newnick
}
# proc transmission of join
proc trans_join {nick uhost hand chan} {
trans_bot ">join" $chan $chan $nick\($uhost\)
}
# proc transmission of part
proc trans_part {nick uhost hand chan text} {
set arg [concat $chan $text]
trans_bot ">part" $chan $nick $arg
}
# proc transmission of quit
proc trans_quit {nick host hand chan text} {
trans_bot ">quit" $chan $nick $text
}
# proc transmission of topic changement
proc trans_topic {nick uhost hand chan topic} {
set arg [concat $chan $topic]
trans_bot ">topic" $chan $nick $arg
}
# proc transmission of kick
proc trans_kick {nick uhost hand chan victim reason} {
set arg [concat $victim $chan $reason]
trans_bot ">kick" $chan $nick $arg
}
# proc transmission of mode changement
proc trans_mode {nick uhost hand chan mc {victim ""}} {
if {$victim != ""} {append mc " $victim" }
set text [concat $nick $chan $mc]
trans_bot ">mode" $chan $nick $text
}
####################################################
#
# Reception
#
# proc reception of pub
proc recv_pub {frm_bot command arg} {
global chan1 chan2 hlnick
if { $frm_bot == [lindex $chan1 0] } {
set recvchan [lindex $chan1 2]
} elseif { $frm_bot == [lindex $chan2 0] } {
set recvchan [lindex $chan2 2]
} else {
return 0
}
putquick "PRIVMSG $recvchan :$hlnick[lindex $arg 0]$hlnick> [lrange $arg 1 end]"
}
# proc reception of action
proc recv_act {frm_bot command arg} {
global chan1 chan2 hlnick
if { $frm_bot == [lindex $chan1 0] } {
set recvchan [lindex $chan1 2]
} elseif { $frm_bot == [lindex $chan2 0] } {
set recvchan [lindex $chan2 2]
} else {
return 0
}
putquick "PRIVMSG $recvchan :* $hlnick[lindex $arg 0]$hlnick [lrange $arg 2 end]"
}
# proc reception of nick changement
proc recv_nick {frm_bot command arg} {
global chan1 chan2 hlnick
if { $frm_bot == [lindex $chan1 0] } {
set recvchan [lindex $chan1 2]
} elseif { $frm_bot == [lindex $chan2 0] } {
set recvchan [lindex $chan2 2]
} else {
return 0
}
putquick "PRIVMSG $recvchan :*** $hlnick[lindex $arg 0]$hlnick is now known as [lrange $arg 1 end]"
}
# proc reception of join
proc recv_join {frm_bot command arg} {
global chan1 chan2 hlnick
if { $frm_bot == [lindex $chan1 0] } {
set recvchan [lindex $chan1 2]
} elseif { $frm_bot == [lindex $chan2 0] } {
set recvchan [lindex $chan2 2]
} else {
return 0
}
putquick "PRIVMSG $recvchan :--> $hlnick[lindex $arg 1]$hlnick has joined channel [lindex $arg 0]"
}
# proc reception of part
proc recv_part {frm_bot command arg} {
global chan1 chan2 hlnick
if { $frm_bot == [lindex $chan1 0] } {
set recvchan [lindex $chan1 2]
} elseif { $frm_bot == [lindex $chan2 0] } {
set recvchan [lindex $chan2 2]
} else {
return 0
}
putquick "PRIVMSG $recvchan :<-- $hlnick[lindex $arg 0]$hlnick has left channel [lindex $arg 1] ([lrange $arg 2 end])"
}
# proc reception of quit
proc recv_quit {frm_bot command arg} {
global chan1 chan2 hlnick
if { $frm_bot == [lindex $chan1 0] } {
set recvchan [lindex $chan1 2]
} elseif { $frm_bot == [lindex $chan2 0] } {
set recvchan [lindex $chan2 2]
} else {
return 0
}
putquick "PRIVMSG $recvchan :-//- $hlnick[lindex $arg 0]$hlnick has quit ([lrange $arg 1 end])"
}
# proc reception of topic changement
proc recv_topic {frm_bot command arg} {
global chan1 chan2 hlnick
if { $frm_bot == [lindex $chan1 0] } {
set recvchan [lindex $chan1 2]
} elseif { $frm_bot == [lindex $chan2 0] } {
set recvchan [lindex $chan2 2]
} else {
return 0
}
putquick "PRIVMSG $recvchan :*** $hlnick[lindex $arg 0]$hlnick changes topic of [lindex $arg 1] to '[lrange $arg 2 end]'"
}
# proc reception of kick
proc recv_kick {frm_bot command arg} {
global chan1 chan2 hlnick
if { $frm_bot == [lindex $chan1 0] } {
set recvchan [lindex $chan1 2]
} elseif { $frm_bot == [lindex $chan2 0] } {
set recvchan [lindex $chan2 2]
} else {
return 0
}
putquick "PRIVMSG $recvchan :*** $hlnick[lindex $arg 1]$hlnick has been kicked from [lindex $arg 2] by [lindex $arg 0]: [lrange $arg 3 end]"
}
# proc reception of mode changement
proc recv_mode {frm_bot command arg} {
global chan1 chan2 hlnick
if { $frm_bot == [lindex $chan1 0] } {
set recvchan [lindex $chan1 2]
} elseif { $frm_bot == [lindex $chan2 0] } {
set recvchan [lindex $chan2 2]
} else {
return 0
}
putquick "PRIVMSG $recvchan :*** $hlnick[lindex $arg 0]$hlnick set mode [lrange $arg 2 end] on [lindex $arg 1]"
}
######################################
# proc for helping
#
# proc status
proc help:status { nick host handle arg } {
global trans_pub trans_act trans_nick trans_join trans_part trans_quit trans_topic trans_kick trans_mode recv_pub recv_act recv_nick recv_join recv_part recv_quit recv_topic recv_kick recv_mode hlnick transmit receive chan1 chan2
putquick "PRIVMSG $nick :\002 Global status\002"
putquick "PRIVMSG $nick :\037type\037 -- | trans -|- recept |"
putquick "PRIVMSG $nick :global -- | -- $transmit -- | -- $receive -- |"
putquick "PRIVMSG $nick :pub -- | -- $trans_pub -- | -- $recv_pub -- |"
putquick "PRIVMSG $nick :act -- | -- $trans_act -- | -- $recv_act -- |"
putquick "PRIVMSG $nick :nick -- | -- $trans_nick -- | -- $recv_nick -- |"
putquick "PRIVMSG $nick :join -- | -- $trans_join -- | -- $recv_join -- |"
putquick "PRIVMSG $nick :part -- | -- $trans_part -- | -- $recv_part -- |"
putquick "PRIVMSG $nick :quit -- | -- $trans_quit -- | -- $recv_quit -- |"
putquick "PRIVMSG $nick :topic -- | -- $trans_topic -- | -- $recv_topic -- |"
putquick "PRIVMSG $nick :kick -- | -- $trans_kick -- | -- $recv_kick -- |"
putquick "PRIVMSG $nick :mode -- | -- $trans_mode -- | -- $recv_mode -- |"
putquick "PRIVMSG $nick :nicks appears as $hlnick$nick$hlnick"
putquick "PRIVMSG $nick :[lindex $chan1 0] is on [lindex $chan1 1] and transmit to [lindex $chan1 2]"
putquick "PRIVMSG $nick :[lindex $chan2 0] is on [lindex $chan2 1] and transmit to [lindex $chan2 2]"
putquick "PRIVMSG $nick :\002 END of STATUS"
}
# proc help
proc help:cmds { nick host handle arg } {
global botnick
putquick "NOTICE $nick :/msg $botnick trans <type> on|off to change the transmissions"
putquick "NOTICE $nick :/msg $botnick recv <type> on|off ti change the receptions"
putquick "NOTICE $nick :/msg $botnick status to see my actual status"
putquick "NOTICE $nick :/msg $botnick help for this help"
}
# End !
putlog "Loaded: chanrelay.tcl \($mver\)"