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.

help with request script

Requests for complete scripts or modifications/fixes for scripts you didn't write. Response not guaranteed, and no thread bumping!
Post Reply
w
whiteshark
Halfop
Posts: 62
Joined: Sun Jun 12, 2005 3:23 am
Location: netherlands
Contact:

help with request script

Post by whiteshark »

Hello i have this request script found and it works great.
But i have one question.
When somebody request the bot and have the Q or L in his channel. Must the user give +amo to the bot.Do the user not give +amo flags must the bot leave the channel .
Thnx

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 "#trivia.nl" 
  # 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 
 
User avatar
Sir_Fz
Revered One
Posts: 3794
Joined: Sun Apr 27, 2003 3:10 pm
Location: Lebanon
Contact:

Re: help with request script

Post by Sir_Fz »

amstelbier wrote:Hello i have this request script found and it works great.
But i have one question.
When somebody request the bot and have the Q or L in his channel. Must the user give +amo to the bot.Do the user not give +amo flags must the bot leave the channel .
Thnx
Ok, now can you describe this in english please?
R
R-WaT
Halfop
Posts: 79
Joined: Fri Jan 06, 2006 7:45 pm

Post by R-WaT »

<R-WaT|Eggdrop> Request for #mouseskills failed. There are not enough users on #mouseskills (There are 8 users).


it says that in channel. is there anyway to make it PM me?

and instead of checking for Q or L can you make it check to see if it has a ChanServ?
Last edited by R-WaT on Thu May 11, 2006 4:40 pm, edited 1 time in total.
w
whiteshark
Halfop
Posts: 62
Joined: Sun Jun 12, 2005 3:23 am
Location: netherlands
Contact:

Post by whiteshark »

sorry for my bad englisch.

as soon as request are done must the bot check if in the canal Q or L sit then must the bot the flags + amo get, when the bot not get +amo then must the bot the leave the channel.
Post Reply