File Server v1.1 — File Browser
FileServerv1.1 / FileServerv1.1 / fserv.mrc
fserv.mrc — 27.58 KB — Download this file
on 1:load:fserve.init
#Ratio off
#Ratio end
#Custom off
#Custom end
on 1:connect: {
.disable #offer
}
alias fserve.init {
if %color1 == $null || %color2 == $null || %color3 == $null || %color4 == $null {
set %color1 12 | set %color2 2 | set %color3 10 | set %color4 14
}
.events on
.ctcps on
if $exists($mircdirdata) == $false run command.com /c md $mircdirdata
if $exists($mircdircredits) == $false run command.com /c md $mircdircredits
if %ratio == $null set %ratio 2
if %maxgets == $null set %maxgets 5
if %maxsends == $null set %maxsends 5
if %free.credits == $null set %free.credits 300000
if %validfiles == $null set %validfiles wav, mid, zip, jpg, txt, exe, gif
if %characters == $null set %characters !@
if %max.top == $null set %max.top 10
if %joinad == $null set %joinad off
if %ad.time == $null set %ad.time 180
if $findfile($mircdir,fserv2.mrc,1) != $null .timer 1 10 .load -rs $findfile($mircdir,fserv2.mrc,1)
echo %color2 -s Successfully loaded $+ %color3 File Server v1.1 by Hawkee
echo %color2 -s You may now press $+ %color1 F3 $+ %color2 to set up the script.
}
alias F3 {
if $chat($me).status == $null {
if $window(@Fserve Setup).state == normal window -c @Fserve Setup
else setup
}
else closeemail
}
on 1:text:%command:*:{
if %command == ! $+ $me && $2 != $null {
if $2 == $nopath(%offer.file) && $remove($1,!) == $me {
dcc send $nick %offer.file
.notice $nick $+ %color2 $+ Sending: $+ %color1 $nopath(%offer.file) $+ %color2 $+ Size: $+ %color3 $lof(%offer.file) $+ %color2 $+ bytes
}
else notice $nick 4Error: $+ %color2 Invalid filename, current file being offered: $+ %color3 $nopath(%offer.file)
}
elseif $group(#fserve).status == on && $fserv($nick) == $null {
set %host $readini $mircdircredits\ $+ $convert($nick) $+ .ini Host Address
if %host == $null { writeini $mircdircredits\ $+ $convert($nick) $+ .ini Host Address $mask($fulladdress,4) | set %host $mask($fulladdress,4) }
if %host != $mask($fulladdress,4) {
.notice $nick $+ %color2 Sorry, [ $+ %color1 $+ %host $+ $+ %color2 $+ ] has already taken that nickname
.notice $nick $+ %color2 Please choose a new nickname for access.
halt
}
else {
if $exists(%welcome) == $true fserve $nick 100 %directory %welcome
else fserve $nick 100 %directory
}
}
}
on 1:text:!list:#:.notice $nick You may enter my file server by typing: $+ %color3 %command $+ %color2 $+ Ratio: $+ %color3 1: $+ %ratio
#fserve on
#fserve end
#offer off
on 1:text:!*:*:{
if $2 == $nopath(%offer.file) && $remove($1,!) == $me {
dcc send $nick %offer.file
.notice $nick $+ %color2 $+ Sending: $+ %color1 $nopath(%offer.file) $+ %color2 $+ Size: $+ %color3 $lof(%offer.file) $+ %color2 $+ bytes
}
elseif $remove($1,!) == $me .notice $nick 4Error: $+ %color2 Invalid filename, current file being offered: $+ %color3 $nopath(%offer.file)
halt
}
alias free {
set %files $findfile(%offer.directory,*.*,0)
if %files != $null {
set %offer.file $findfile(%offer.directory,*.*,$r(1,%files))
msg %offer.chan $+ %color2 $+ To get a free random file, you may type $+ %color3 ! $+ $me $nopath(%offer.file) $+ %color2 $+ to receive a copy. File size $+ %color1 $lof(%offer.file) $+ %color2 $+ bytes
}
else {
echo 4 -a Error $+ %color2 No files found in directory
.disable #offer
}
}
#offer end
on 1:text:%command:?:.notice $nick Sorry %command is shut down at the moment.
on 1:sendfail:*.*: {
if $group(#ratio).status == on {
if $readini $mircdircredits\ $+ $nick $+ .ini Files $filename == bought {
remini $mircdircredits\ $+ $nick $+ .ini Files $filename
if $fserv($nick).status == active {
msg = $+ $nick $+ %color2 $+ File: $+ %color1 $nopath($filename) $+ %color2 $+ did not complete.
msg = $+ $nick $+ %color1 $+ [ $+ $lof($filename) $+ ] $+ %color2 credits have been reimbursed to your account.
}
else {
.notice $nick $+ %color2 $+ File: $+ %color1 $nopath($filename) $+ %color2 $+ did not complete.
.notice $nick $+ %color1 $+ [ $+ $lof($filename) $+ ] $+ %color2 credits have been reimbursed to your account.
}
add $nick $lof($filename)
}
}
}
alias mget {
set %file $findfile($2,$3-,%loop)
if $2 $+ \ $+ $nopath(%file) == %file || $2 $+ $nopath(%file) == %file {
if $group(#ratio).status == off || $byte.credits($1) == Unlimited && $gets($1) < %maxgets {
dcc send $1 %file
msg = $+ $1 $+ %color2 $+ Sending [ $+ %color1 $+ $nopath(%file) $+ $+ %color2 $+ ]
}
elseif $byte.credits($1) >= $lof(%file) && $gets($1) < %maxgets && %file != $null {
dcc send $1 %file
del $1 $lof(%file)
writeini $mircdircredits\ $+ $convert($1) $+ .ini Files %file bought
msg = $+ $1 $+ %color2 $+ Sending [ $+ %color1 $+ $nopath(%file) $+ $+ %color2 $+ ] Credits remaining: $+ %color1 $byte.credits($1)
}
else {
if $gets($1) >= %maxgets msg = $+ $1 $+ %color2 $+ File transfer limit of $+ %color1 %maxgets $+ %color2 $+ files has been reached.
elseif $byte.credits($1) <= $lof(%file) msg = $+ $1 $+ %color2 $+ Sorry, credit limit has been reached. You have $+ %color1 $byte.credits($1) $+ %color2 $+ credit(s) remaining
halt
}
}
if ( %loop == %files && %files >= 2 ) || ( $2 $+ \ $+ $nopath(%file) != %file && $2 $+ $nopath(%file) != %file ) || %file == $null { msg = $+ $1 $+ %color2 $+ End of listing for [ $+ %color1 $+ $3- $+ $+ %color2 $+ ] | halt }
}
on 1:serv:*: {
if $byte.credits($nick) == banned {
msg = $+ $nick $+ %color2 $+ Sorry, you have been banned from this fserve
close -f $nick
halt
}
if $1 == get {
unset %file
set %files $findfile($fserv($nick).cd,$2-,0)
if %files == 0 || $2- == $null { .msg = $+ $nick $+ %color2 $+ No file(s) found. Use form < $+ %color1 $+ get filename.ext $+ %color2 $+ > or < $+ %color1 $+ get file*.ex* $+ %color2 $+ > | halt }
else for 1 %files mget $nick $cd $2-
halt
}
elseif $1 == dir || $1 == ls {
if $group(#ratio).status == on msg = $+ $nick $+ %color2 $+ Credit status: $+ %color3 $byte.credits($nick)
msg = $+ $nick $+ %color2 $+ Type $+ %color1 Help $+ %color2 for Commands
if $group(#custom).status == on {
msg = $+ $nick $+ %color2 $+ Directory listing for: $+ %color1 $remove($cd,$left(%directory,3))
set %loop 1
:loop
if %loop > $readini $mircdirdata\cat.ini directories total goto done
set %directory.check $readini $mircdirdata\cat.ini directories %loop
if %directory.check == $remove($cd,$left(%directory,3)) directory $nick
elseif $remove($cd,$left(%directory,3)) isin %directory.check {
set %directory.check %directory.check $+ \
set %slashes $count(%directory.check,$chr(92))
set %directory.check $gettok(%directory.check,%slashes,92)
set %length $len(%directory.check)
set %distance 20 - %length
set %check $cd $+ \ $+ %directory.check
if ($exists(%check)) msg = $+ $nick $+ %color2 %directory.check $str(%distance,$chr(160)) $+ %color1 <DIR>
}
inc %loop
goto loop
:done
set %total $readini $mircdirdata\cat.ini $remove($cd,$left(%directory,3)) files
if %total == $null set %total 0
msg = $+ $nick $+ %color2 $+ End of list for: $+ %color1 $remove($cd,$left(%directory,3)) $+ %color2 $+ with $+ %color1 %total $+ %color2 $+ file(s)
unset % $+ $nick $+ ~ $+ *
halt
}
}
elseif $1 == help {
msg = $+ $nick $+ %color2 $+ File serving commands:
msg = $+ $nick $+ %color1 $+ Dir, ls: $+ %color2 Displays the directory listing
msg = $+ $nick $+ %color1 $+ Get: $+ %color2 Gets a file or mutiple files
msg = $+ $nick $+ %color2 $+ Syntax: < $+ %color1 $+ get *.mid $+ %color2 $+ > < $+ %color1 $+ get song.mid $+ %color2 $+ > < $+ %color1 $+ get s*.* $+ %color2 $+ > etc.
msg = $+ $nick $+ %color1 $+ Read: $+ %color2 Reads the contents of a file
msg = $+ $nick $+ %color1 $+ Cd: $+ %color2 Change directory, similar syntax to Dos
msg = $+ $nick $+ %color1 $+ Stats: $+ %color2 Use Stats < $+ %color1 $+ Filename.ext $+ $+ %color2 $+ > for number of downloads
msg = $+ $nick $+ %color1 $+ Stats: $+ %color2 Displays your credit and ratio status
msg = $+ $nick $+ %color1 $+ Top: $+ %color2 Top %max.top downloaded files
halt
}
elseif $1- == cd {
msg = $+ $nick $+ %color2 $+ Current Directory $+ %color1 $cd
}
elseif $1 == top {
if $2 == $0 {
msg = $+ $nick $+ %color2 $+ Top $+ %color1 %max.top $+ %color2 $+ downloaded files
for 1 %max.top top.downloads $nick
msg = $+ $nick $+ %color2 $+ Type $+ %color1 Top $+ %color2 < $+ %color1 $+ Number $+ %color2 $+ > to download file
halt
}
set %stat $read -l $+ $2 $mircdirdata\top.ini
set %file $gettok(%stat,1,32)
if $2 !isnum || $2 > %max.top || $2 < 1 {
msg = $+ $nick 4Error: $+ %color2 Invalid input, please select a number $+ %color1 1- $+ %max.top
halt
}
if $exists(%file) {
set %dir $nofile(%file)
set %file $nopath(%file)
set %files 1 | set %loop 1
mget $nick %dir %file
}
else {
msg = $+ $nick $+ %color2 $+ [ $+ %color1 $+ %file $+ $+ %color2 $+ ] could not be found in that location
}
halt
}
elseif $1 == stats {
if $2 == $0 {
msg = $+ $nick $+ %color2 $+ Current ratio: $+ %color1 1: $+ %ratio
msg = $+ $nick $+ %color2 $+ You have $+ %color1 $byte.credits($nick) $+ %color2 $+ credit(s).
msg = $+ $nick $+ %color2 $+ Files sent to you: $+ %color1 $downloads($nick)
msg = $+ $nick $+ %color2 $+ Files received from you: $+ %color1 $uploads($nick)
set %nick $readini $mircdirdata\address.ini Users $fserv($nick).ip
if %nick != $nick && $byte.credits($nick) == 0 msg = $+ $nick $+ %color2 $+ You have $+ %color1 $byte.credits(%nick) $+ %Color2 $+ credits under this nick: $+ %color1 %nick
halt
}
set %file $cd $+ \ $+ $2
set %downloads $readini $mircdirdata\download.ini Files %file
if %downloads == $0 msg = $+ $nick $+ %color2 $+ No record found for: $+ %color1 $2
else msg = $+ $nick $+ %color2 $+ [ $+ %color1 $+ $2 $+ $+ %color2 $+ ] has been downloaded $+ %color1 %downloads $+ %color2 $+ Time(s).
halt
}
elseif $1 != cd && $1 != cd.. && $1 != exit && $1 != bye && $1 != quit && $1 != read && $1 != s && $1 != c halt
}
on 1:filesent:*.*: {
newfile $nick download
if $readini $mircdircredits\ $+ $convert($nick) $+ .ini Files $filename == bought remini $mircdircredits\ $+ $convert($nick) $+ .ini Files $filename
flushini $mircdircredits\ $+ $convert($nick) $+ .ini
increment $filename
}
on 1:filercvd:*.*: {
if $group(#ratio).status == on {
%temp = %ratio * $lof($filename)
add $nick %temp
if $fserv($nick).status == active {
msg = $+ $nick $+ %color2 $+ Upload of $+ %color1 $nopath($filename) $+ %color2 $+ complete: Credit(s) earned: $+ %color1 %temp $+ %color2 $+ Total Credits: $+ %color1 $byte.credits($nick) $+ %color2 $+ credit(s)
}
else .notice $nick $+ %color2 $+ Upload of $+ %color1 $nopath($filename) $+ %color2 $+ complete: Credit(s) earned: $+ %color1 %temp $+ %color2 $+ Total Credits: $+ %color1 $byte.credits($nick) $+ %color2 $+ credit(s)
}
newfile $convert($nick) uploads
write $mircdirupload.log Received $filename from $nick
}
on 1:servclose:unset % $+ $nick $+ cd
alias h2 return $+ $$1 $+ $+ %color2 $+ H14a $+ %color3 $+ w14k $+ %color3 $+ e $+ $$1 $+ e Pro
alias v return $+ $$1 $+ v2.5 $+ $$2
alias check.custom {
if $group(#custom) == on {
set %check %number.of.files + 1
if $findfile(%directory,*.*,%check) != $null || $findfile(%directory,*.*,%number.of.files) == $null {
echo %color2 -a Directory structure of $+ %color1 Custom Fserve $+ %color2 has changed
echo %color2 -a Please type $+ %color1 /compile $+ %color2 to re-compile
echo %color2 -a Press $+ %color1 F3 $+ %color2 and switch to $+ %color1 Normal $+ %color2 mode to avoid this message.
}
unset %check
}
}
on 1:servopen: {
check.custom
if $group(#custom).status != on msg = $+ $nick $h2(%color2) $v(4,%color1)
else msg = $+ $nick $h2(%color2) $v(4,%color1) Custom File-Serve Mode
msg = $+ $nick $+ %color2 $+ Available at: $+ %color1 http://www.hawkee.com
msg = $+ $nick $+ %color2 $+ Type $+ %color1 Help $+ %color2 for Commands
if $group(#custom).status == on {
set %directory.letters $len(%directory)
dec %directory.letters 3
set %current.directory $right(%directory,%directory.letters)
dec %directory.letters
set %current.directory $left(%current.directory,%directory.letters)
set % $+ $nick $+ cd %current.directory
}
if $group(#ratio).status == on {
set %check $readini $mircdirdata\address.ini Users $fserv($nick).ip
if %check == $0 && $byte.credits($nick) == 0 {
writeini $mircdirdata\address.ini Users $fserv($nick).ip $convert($nick)
writeini $mircdircredits\ $+ $convert($nick) $+ .ini Credits Credits %free.credits
}
elseif %check != $convert($nick) && %check != $null {
msg = $+ $nick $+ %color2 $+ Free credits denied, your record lies under this nick: $+ %color1 %check
.remove $mircdircredits\ $+ $convert($nick) $+ .ini
halt
}
}
}
alias newfile incini credits $1 Transfer $2 1
alias uploads return $check($1,Transfer,uploads)
alias downloads return $check($1,Transfer,download)
alias check {
set %number $readini $mircdircredits\ $+ $convert($1) $+ .ini $2 $3
if %number == $null {
return 0
goto end
}
return %number
:end
}
alias incini {
set %credits $readini $mircdir $+ $1 $+ \ $+ $convert($2) $+ .ini $3 $4
if %credits == $null || $5 == Unlimited || $5 == Banned {
writeini $mircdir $+ $1 $+ \ $+ $convert($2) $+ .ini $3 $4 $5
goto end
}
inc %credits $5
writeini $mircdir $+ $1 $+ \ $+ $convert($2) $+ .ini $3 $4 %credits
:end
}
alias add incini Credits $1 Credits Credits $2
alias byte.credits return $check($1,Credits,Credits)
alias del {
set %credits $readini $mircdircredits\ $+ $convert($1) $+ .ini Credits Credits
if %credits == $null {
writeini $mircdircredits\ $+ $convert($1) $+ .ini Credits Credits 0
goto end
}
dec %credits $2
if %credits < 0 set %credits 0
writeini $mircdircredits\ $+ $convert($1) $+ .ini Credits Credits %credits
:end
}
alias delete {
remini $mircdircredits\ $+ $convert($1) $+ .ini Credits
}
alias convert {
set %nickname $left($1,8)
set %nickname $replace(%nickname,[,_)
set %nickname $replace(%nickname,],_)
set %nickname $replace(%nickname,|,_)
set %nickname $replace(%nickname,^,_)
set %nickname $replace(%nickname,\,_)
set %nickname $replace(%nickname,-,_)
return %nickname
}
alias increment {
incini data download Files $1 1
set %downloads $readini $mircdirdata\download.ini Files $1
add.file $1 %downloads
}
alias add.file for 1 %max.top insert $1 $2
alias insert {
if ($exists($mircdirdata\top.ini)) set %file.check $read -l $+ %loop $mircdirdata\top.ini
if %file.check == $null set %file.check None 0
if $gettok(%file.check,1,32) == $1 { write -l $+ %loop $mircdirdata\top.ini $1 $2 | set %loop %max.top | if $window(@Top Downloads).state == normal display.top | goto done }
elseif $gettok(%file.check,2,32) < $2 {
write -ds $+ $1 $mircdirdata\top.ini
write -il $+ %loop $mircdirdata\top.ini $1 $2
set %limit %max.top + 1
write -dl $+ %limit $mircdirdata\top.ini
set %loop %max.top
if $window(@Top Downloads).state == normal display.top
goto done
}
:done
unset %file.check
}
alias top.downloads {
unset %stat
if ($exists($mircdirdata\top.ini)) set %stat $read -l $+ %loop $mircdirdata\top.ini
if %stat == $null msg = $+ $1 $+ %color1 $+ [ $+ %loop $+ ] $+ %color2 None
else {
set %filename $gettok(%stat,1,32)
set %downloads $gettok(%stat,2,32)
if %downloads > 1 msg = $+ $1 $+ %color1 $+ [ $+ %loop $+ ] $+ %color3 $nopath(%filename) $+ %color2 $+ with $+ %color1 %downloads $+ %color2 $+ downloads
else msg = $+ $1 $+ %color1 $+ [ $+ %loop $+ ] $+ %color3 $nopath(%filename) $+ %color2 $+ with $+ %color1 %downloads $+ %color2 $+ download
}
}
alias des {
set %file.for.description $$dir="Please Select a file for new description" %directory
set %des $$?="Enter description for selected file"
writeini $mircdirdata\describe.ini Files %file.for.description %des
echo %color2 -s Added [ $+ %color1 $+ %des $+ $+ %color2 $+ ] as description for $+ %color1 $nopath(%file.for.description)
unset %file.for.description
unset %des
}
alias directory {
set %directory.loop 1
:start
if %directory.loop > $readini $mircdirdata\cat.ini $remove($fserv($1).cd,$left(%directory,3)) files goto end
set %file $readini $mircdirdata\cat.ini $remove($fserv($1).cd,$left(%directory,3)) %directory.loop
set %length $gettok(%file,2,32)
set %file $gettok(%file,1,32)
set %size $len(%file)
set %distance 15 - %size
set %fullpath $fserv($1).cd $+ \ $+ %file
set %path $fserv($1).cd $+ $chr(92) $+ %file
set %description $readini $mircdirdata\describe.ini Files %fullpath
if $exists(%path) {
if %description != $null .msg = $+ $1 $+ %color2 %file $str(%distance,$chr(160)) $+ %color3 %length bytes $+ %color4 %description
else .msg = $+ $1 $+ %color2 %file $str(%distance,$chr(160)) $+ %color3 %length bytes
}
inc %directory.loop
goto start
:end
}
;################## Required for the Compilation of the File Serving Directory Structure ##################
alias compile {
echo %color2 -a Compiling directory structure of: $+ %color1 %directory
flushini $mircdirdata\cat.ini
.remove $mircdirdata\cat.ini
set %number.of.files $findfile(%directory,*.*,0)
unset %current.directory
if %number.of.files < 200 {
set %incrementation $round($calc(200 / %number.of.files),0)
if %incrementation > 1 dec %incrementation
set %newloop %incrementation
}
else {
set %incrementation $round($calc(%number.of.files / 200),0)
set %newloop 0
set %spot 0
}
for 1 %number.of.files writefile
rline %window 2 $+ %color1 $+ [ $+ %directory $+ ] $+ %color2 has been successfully compiled
}
menu @Progress Meter {
dclick window -c @Progress Meter
}
alias progress {
set %window @Progress Meter
if $window(%window).state != normal {
window %window 95 120 430 70 %window Arial bold 12
for 1 4 aline %window 0-
set %loop 1
}
rline %window 1 $+ %color2 $+ Creating directory structure for [ $+ %color1 $+ %directory $+ $+ %color2 $+ ]
rline %window 2 $+ %color2 $+ Files complete: $+ %color1 %loop $+ %color2 $+ of $+ %color1 %number.of.files
if %number.of.files < 200 {
inc %newloop %incrementation
set %string 1,1|
set %position $line(%window,0)
rline %window %position $str(%newloop,%string)
dec %position
rline %window %position $str(%newloop,%string)
}
else {
if %newloop > %incrementation {
set %string 1,1|
set %position $line(%window,0)
inc %spot
rline %window %position $str(%spot,%string)
dec %position
rline %window %position $str(%spot,%string)
set %newloop 0
}
inc %newloop
}
}
alias writefile {
set %current.file $findfile(%directory,*.*,%loop)
set %slash.count $count(%current.file,$chr(92))
if %slash.count > 2 set %slash.count 2- [ $+ [ %slash.count ] ]
if %current.directory != $gettok(%current.file,%slash.count,92) newdirectory $gettok(%current.file,%slash.count,92)
set %current.directory $gettok(%current.file,%slash.count,92)
addfile $gettok(%current.file,%slash.count,92)
set %file.number $readini $mircdirdata\cat.ini %current.directory files
writeini $mircdirdata\cat.ini %current.directory %file.number $nopath(%current.file) $lof(%current.file)
progress
}
alias addfile incini data cat $1 files 1
alias newdirectory {
set %directories $readini $mircdirdata\cat.ini directories total
if %directories == $null {
writeini $mircdirdata\cat.ini directories total 1
writeini $mircdirdata\cat.ini directories 1 $1
goto end
}
inc %directories
writeini $mircdirdata\cat.ini directories total %directories
writeini $mircdirdata\cat.ini directories %directories $1
:end
}
;############################## Initialize Custom F-Serve Mode ##############################
alias custom {
set %window @Important
window -c %window
window %window 120 30 400 305 @Important Arial bold 12
if $line(%window,0) == 0 for 1 7 aline -c0 %window -
echo %window $+ %color2 $+ The Custom Fserve will allow you to utilize a more professional looking Fserve while at the same time giving descriptions to any of the files within your Fserve. This is not recommended for newer users who may not know how an Fserve works. This will first need to compile the directory structure of your Fserve directory to text so that it can be displayed to users. This process could take several minutes on slower computers. If you tend to change around the files within your fserve, this may not be a good idea to
echo %window $+ %color2 $+ use, for it will require you to re-compile the directory structure every time you add or delete files to your File Serving directory. If you wish to activate this feature, you will need to double click on this window. If not, you may simply close this window. Upon confirmation, your fserve directory will be compiled, so please be aware that a long pause may take place.
rline %window 6 $+ %color2 $+ Custom File Server 4(Please Read)
rline %window 7 $+ %color3 $+ ===========================================================
aline %window $+ %color3 $+ ================== $+ %color4 $+ Double click to Proceed $+ %color3 $+ ===================
}
alias activatecustom {
window -c @Important
if $right(%directory,1) != $chr(92) set %directory %directory $+ $chr(92)
.disable #custom
compile
.enable #custom
set %description.popup File descriptions
}
menu @Important {
dclick activatecustom
Activate:activatecustom
Cancel:window -c @Important
}
;############################### Menus and Settings ###################################
menu query {
-
Info Center:info $1
}
menu nicklist {
-
Info Center:info $1
}
menu menubar {
File Serving
.Fserve Settings:setup
.Top Downloads:display.top
}
menu status {
File Serving
.Fserve Settings:setup
.Top Downloads:display.top
}
on 1:part:#: {
if $nick == $me {
close.timer ad $chan
if %offer.chan == $chan {
.disable #offer
.timer50 off
unset %offer.chan
}
}
}
alias close.timer {
unset %timer
for 1 $timer(0) find.timer $1-
if %timer != $null .timer $+ %timer off
}
alias find.timer {
unset %timer
if $timer(%loop).com == $1- { set %timer $timer(%loop) | set %loop $timer(0) }
}
menu channel {
File Serving
.Fserve Settings (F3):F3
.-
.Advertise Fserve
..Activate Ad: {
if $group(#fserve) == off { echo -a 4Error: $+ %color2 Fserve is not active, please press $+ %color1 F3 $+ %color2 if you wish to activate it | halt }
unset %timer
for 1 $timer(0) find.timer ad #
if %timer != $null { echo %color2 -a Advertisement already running in: $+ %color1 # | halt }
ad #
.timer 0 %ad.time ad #
echo %color2 -a Advertisement activated in: $+ %color1 #
}
..Deactivate Ad: {
unset %timer
for 1 $timer(0) find.timer ad #
if %timer == $null { echo %color2 -a No advertisement running in: $+ %color1 # | halt }
else {
echo %color2 -a Advertisement deactivated in: $+ %color1 #
.timer $+ %timer off
}
halt
}
..-
..Information:echo %color1 -a Channel Ad: $+ %color2 This will run a timed advertisement for your fserve in any channel from which this is activated, advertisements will run in4 5 $+ %color2 minute intervals.
.Random File Offer
..Activate Offer: {
set %offer.directory $$?="What directory would you like to offer from?"
:back
if ($exists(%offer.directory)) set %offer.chan #
else { set %offer.directory $$?="Invalid directory, please reenter" | goto back }
set %time $$?="How many seconds between each new file?"
.enable #offer
free
if %files != $null .timer50 0 %time free
unset %files
}
..Deactivate Offer: {
.disable #offer
.timer50 off
echo %color2 -a Deactivated free file offer to $+ %color1 %offer.chan
unset %offer.chan
halt
}
..-
..Information:echo %color1 -a File offer: $+ %color2 This will pick a random file from the directory you specify and offer it to the channel for free 4Note: $+ %color2 You may only offer to one channel at any given time.
}
alias setup {
if $findfile($mircdir,fserv2.mrc,1) != $null .load -rs $findfile($mircdir,fserv2.mrc,1)
else {
echo 4 -s Error: $+ %color2 fserv2.mrc was not found in $mircdir
echo %color2 -s Please make sure you copy that file into the appropriate directory and re-install.
}
set %window @Fserve Setup
if $window(%window).state == $null window %window 160 55 310 253 %window Arial bold 12
else window %window $window(%window).x $window(%window).y 310 253 %window Arial bold 12
if $line(%window,0) == 0 for 1 14 aline -c0 %window -
rline %window 1 $+ %color3 ============== $+ %color4 Fserve Setup $+ %color3 ==============
if %command != $null rline %window 2 $+ %color2 Fserve Trigger command: $+ %color1 %command $+ %color2 Active: $+ %color1 $group(#fserve)
else rline %window 2 $+ %color2 Fserve Trigger command: $+ %color1 None $+ %color2 Active: $+ %color1 $group(#fserve)
if $group(#custom).status == on rline %window 3 $+ %color2 Fserve Mode: $+ %color1 Custom
else rline %window 3 $+ %color2 Fserve Mode: $+ %color1 Normal
if %directory != $null rline %window 4 $+ %color2 Serving directory: $+ %color1 %directory
else rline %window 4 $+ %color2 Serving directory: $+ %color1 None
if %welcome == $null rline %window 5 $+ %color2 Fserve welcome file: $+ %color1 None
else rline %window 5 $+ %color2 Fserve welcome file: $+ %color1 %welcome
rline %window 6 $+ %color2 Ratio: $+ %color1 1: $+ %ratio $chr(160) $+ %color2 $+ Ratio status: $+ %color1 $group(#ratio).status
rline %window 7 $+ %color2 Join Notice: $+ %color1 %joinad
rline %window 8 $+ %color2 Max outgoing transferrs to each user: $+ %color1 %maxgets
rline %window 9 $+ %color2 Max incoming transferrs per user: $+ %color1 %maxsends
rline %window 10 $+ %color2 Starting credits for new users: $+ %color1 %free.credits
rline %window 11 $+ %color2 Acceptable file types: $+ %color1 %validfiles
rline %window 12 $+ %color2 Deny files starting with: $+ %color1 %characters
rline %window 13 $+ %color2 Record top $+ %color1 %max.top $+ %color2 $+ downloaded file(s) for fserve
rline %window 14 $+ %color3 ======== $+ %color4 $+ Right click to change settings $+ %color3 $+ ========
}
alias for {
set %loop $1
:loop
if %loop > $2 goto end
$3-
inc %loop
goto loop
:end
}
alias ad {
msg # $+ %color2 $+ To get into my file server, you may type: $+ %color1 %command $+ %color2 $+ Ratio: $+ %color3 1: $+ %ratio
}