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.

modification

Help for those learning Tcl or writing their own scripts.
Post Reply
p
pilouuu
Halfop
Posts: 82
Joined: Mon Dec 26, 2005 8:03 pm

modification

Post by pilouuu »

Code: Select all

# Basic Request script 

# GNU License 
# 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 

# /* This is a basic request script, It will join the channel, check some settings and stay/part if accepted. 
# *  This does NOT add other bots to that channel. 
# *  If you want it to do that, You will have to make it do that yourself :) 
# *  If you have any questions about this script, feel free to ask me in #v1per on irc.quakenet.org 
# *  Also, if you find any bugs, the same channel, my nickname is metroid 
# *  Also, leave my copyright in, If you want to put your own copyright in MY script, Make your own script completely from scratch. 
# */ 

# /* Installing the request script 
# *  First, put the script into your /home/user/*eggdrop name*/scripts folder. 
# *  Then at the end of your eggdrop.conf, Put: 
# *  source scripts/request.tcl 
# *  Just rehash the bot after you've done this and it should work. 
# */ 

# /* This is a VERY basic idea of what you can use for a request system with eggdrops. 
# *  It's very flexible as it's really easy to just add whatever you want to it :) 
# *  Good luck with making your own request script and if you need some help, you can contact me. 
# */ 

namespace eval request { 
 variable version "1.0" 
 variable author  "metroid" 
  
 # Configuration! 
 # Our homechannel, they can only request here. 
 variable homechan "#v1per" 
 # Ammount of people we require. 
 variable needed   "30" 
 # Do we want a Q or L? 
 variable service  "1" 
  
 # Do we send a message to the homechannel when a request fails? 
 variable tell     "1" 
  
 # End of Config! 
 # Do NOT edit anything below these lines 
  
 variable busy     "0" 
  
 bind PUB  -|-  !request  [namespace current]::request 
} 

proc request::request {nickname hostname handle channel arguments} { 
 if {[string equal -nocase $channel $request::homechan]} { 
  if {!$request::busy} { 
   set chan [lindex [split $arguments] 0] 
   if {$chan != "" && ![validchan $chan]} { 
    if {[string index $chan 0] == "#"} { 
     set request::busy 1 
    bind RAW -|- 315 [namespace current]::who 
    utimer 30 [list [namespace current]::timeout $chan] 
    channel add $chan 
    set ::info "$nickname $chan" 
   } else { 
    putquick "NOTICE $nickname :A channel name starts with an #." 
   } 
   } else { 
    putquick "NOTICE $nickname :You seem to have given an improper syntax for the channel." 
   } 
  } else { 
   putquick "NOTICE $nickname :Sorry, there is already a request in progress." 
  } 
 } 
} 

proc request::who {server raw arguments} { 
unbind RAW -|- 315 [namespace current]::who 
if {$request::busy} { 
 if {![info exists ::info]} { return 0 } 
 set nickname [lindex [split $::info] 0] 
 set channel [lindex [split $::info] 1] 
 unset ::info 
 set request::busy 0 
 if {![onchan $nickname $channel] || ![isop $nickname $channel]} { 
  putquick "NOTICE $nickname :You are not on $channel or you aren't opped." 
  if {$request::tell} { 
   putquick "PRIVMSG $request::homechan :Request for $channel failed. $nickname is not on $channel or is not opped." 
  } 
  channel remove $channel 
  return 0 
 } 
 if {$request::service} { 
   if {![onchan L $channel] && ![onchan Q $channel]} { 
    set busy 0 
    putquick "NOTICE $nickname :Q or L was not found on $channel." 
    if {$request::tell} { 
     putserv "PRIVMSG $request::homechan :Request for $channel failed. There is no Q or L on $channel." 
    } 
    channel remove $channel 
    return 0 
   } 
  } 
  if {[llength [chanlist $channel]] < $request::needed} { 
    putquick "NOTICE $nickname :$channel has less than $request::needed users." 
    if {$request::tell} { 
     putserv "PRIVMSG $request::homechan :Request for $channel failed. There are not enough users on $channel (There are [llength [chanlist $channel]] users)." 
    } 
    channel remove $channel 
    return 0 
  } 
  # Request is accepted 
  putquick "NOTICE $nickname :Your request is accepted. I will stay on $channel." 
  putquick "PRIVMSG $request::home :Request from $nickname for $channel was accepted. The channel has [llength [chanlist $channel]] users." 
  if {![validuser [nick2hand $nickname]]} { 
   adduser $nickname *![getchanhost $nickname] 
   chattr $nickname |+n $channel 
  } else { 
   chattr [nick2hand $nickname] |+n $channel 
  } 
 } 
} 
  
proc request::timeout {chan} { 
 if {[validchan $chan] && ![botonchan $chan]} { 
  channel remove $chan 
  putquick "PRIVMSG $request::homechan :Request for $chan failed. Bot cannot join $chan." 
  if {[info exists ::info]} { unset ::info } 
 } 
} 

proc request::version {} { 
 putlog "Basic Request script version: $request::version by $request::author was loaded successfully." 
} 
    
request::version

Hi it possible to change the request cmd !request #chan By !request <nickbot> #chan

expl:

set botnicks "botnick1 botnick2 botnick3 etc etc etc"

!request botnick1 #chan
!request botnick2 #chan

Thx and copyright respected just modif.
User avatar
demond
Revered One
Posts: 3073
Joined: Sat Jun 12, 2004 9:58 am
Location: San Francisco, CA
Contact:

Post by demond »

Code: Select all

proc request {n u h c t} {
   foreach {bn chan} [split $t] break
   if ![isbotnick $bn] return
   ...
connection, sharing, dcc problems? click <here>
before asking for scripting help, read <this>
use

Code: Select all

 tag when posting logs, code
p
pilouuu
Halfop
Posts: 82
Joined: Mon Dec 26, 2005 8:03 pm

Post by pilouuu »

set botnicks "Bot Bot2"

Code: Select all

proc request {n u h c t} { 
   foreach {bn chan} [split $t] break 
   if ![$botnicks $bn] return  
 if {[string equal -nocase $channel $request::homechan]} { 
  if {!$request::busy} { 
   set chan [lindex [split $arguments] 0] 
...

!request Bot #chan


no reponse...

Prbl is?

thx
p
pilouuu
Halfop
Posts: 82
Joined: Mon Dec 26, 2005 8:03 pm

Post by pilouuu »

no solution? :(
User avatar
demond
Revered One
Posts: 3073
Joined: Sat Jun 12, 2004 9:58 am
Location: San Francisco, CA
Contact:

Post by demond »

dude, go learn Tcl's basics before posting here, you are supposed to know that [$botnicks $bn] is a nonsense
connection, sharing, dcc problems? click <here>
before asking for scripting help, read <this>
use

Code: Select all

 tag when posting logs, code
p
pilouuu
Halfop
Posts: 82
Joined: Mon Dec 26, 2005 8:03 pm

Post by pilouuu »

Code: Select all

bind PUB  -|-  !request [namespace current]::request 
} 

proc request {n u h c t} { 
foreach {botnicks chan} [split $t] break
   if {$requestbot == ""} {
      putserv "NOTICE $nick :Wrong !request-format."
      putserv "NOTICE $nick :To request use: 4!request <bot-nick> #channel"
if {[string first $requestbot $botnicks] != -1} {
 if {[string equal -nocase $channel $request::homechan]} { 
  if {!$request::busy} { 
   set chan [lindex [split $arguments] 0] 
   if {$chan != "" && ![validchan $chan]} { 
    if {[string index $chan 0] == "#"} { 
     set request::busy 1
:( no reponse , help me please
p
pilouuu
Halfop
Posts: 82
Joined: Mon Dec 26, 2005 8:03 pm

Post by pilouuu »

Code: Select all

set botnicks "bot bot2 bot3"


Code: Select all

bind PUB  -|-  !request [namespace current]::request 
} 

proc request::request {nickname hostname handle channel arguments} { 
 if {[string equal -nocase $channel $request::homechan]} {
  if {[string equal -nocase $botnicks $request::homechan]} { 
  if {!$request::busy} { 
   set chan [lindex [split $arguments] 0] 
   if {$chan != "" && ![validchan $chan]} { 
    if {[string index $chan 0] == "#"} {

... alway no good ... I try but i can't.

!request bot #chan

no reponse
no error dcc
User avatar
De Kus
Revered One
Posts: 1361
Joined: Sun Dec 15, 2002 11:41 am
Location: Germany

Post by De Kus »

check your var names in the if expressions. You are comparing $channel and $botnicks with $request::homechan which will hardly be both true.
De Kus
StarZ|De_Kus, De_Kus or DeKus on IRC
Copyright © 2005-2009 by De Kus - published under The MIT License
Love hurts, love strengthens...
p
pilouuu
Halfop
Posts: 82
Joined: Mon Dec 26, 2005 8:03 pm

Post by pilouuu »

ok, thx but what must I make... i am lost :( that would be sympathetic to help me.
p
pilouuu
Halfop
Posts: 82
Joined: Mon Dec 26, 2005 8:03 pm

Post by pilouuu »

help me!!!! :(
Post Reply