; Sound addon for mIRC 5.5+ ; Version 0.59 ; Original Date: 12 Nov 97 ; Last Updated : 28 Apr 2000 ; Author: Bekar (bekar@virtual.net.au) ; Home Page: http://www.virtual.net.au/~bekar/mirc_body.html ; ; This file adds support for Mpeg layer 3 audio files to be played using the ; standard type commands (/splay, /sound, and the sound request). It requires ; you to have an MP3 player already installed on your system. My recomendations ; in that reguard are WinAmp and MS's Media Player 5.01.52+. ; ; To load this file, it's as simple as going to your remotes section in mIRC ; and then going to the File/Load/Script, and selecting this file. ; ; For the automatic retreival, it would also be a good idea to make your DCC Options/ ; Dirs, *.mp3 directory the same as your $MP3Dir (whatever you answered to that question). ; ; ; ToDo List: ; ; 1. Figure out a way to find out if $1 of a /sound is a nick that ; is currently on IRC (figure I could possibly use .RAW ISON but ; that prospect is rather ugly... Currently can only send to a nick ; if a /sound is done from a query window.) ; 2. Break up the /soundsetup command so the different pieces can ; be done seperately. ; 3. Create an easier to follow /soundsetup, possibly using ; /window -e or dialogs ; 4. figure out why other path'd mp3's arn't werk'n.. (only $mp3dir ones ; seem to work at the moment with the /sound command) ; 5. fix bug with long file-names that have more than one ".m" ; ; Version History: ; ; 0.59 ; 1. Fixed the problem with the !nick requests not sending long ; files out. Quoted them.. works.. ; 0.58 ; 1. Fixed problem with other peoples /sound requesting *.MP3 ; not actually sending the ! properly. Turns out that ; if people quoted the long file name, the quote stripping routine ; stripped a little more than needed.. Would you beleive I missed ; a $ ? :) ; ; 0.57 ; ; 1. Did general code improvments for newer versions of mIRC. ; 2. Fixed up the $returnini() sections of code to work properly in ; mIRC v5.6 ; ; 0.56 ; ; 1. Re-worked all re-ocurring variables into identifiers, storing infomation ; in the $mircini ; 2. Fixed a loose ) (Dratted little thing!) ; 3. Removed the Play options from popup menu's when sounds are disabled ; 4. Ask whether you wish you play to the active window, or privately, when using ; popup menus. ; 5. Worked in default answer for above question. (No thanks to $iif screw ups *pout*) ; 6. Fixed a /ctcp sound with no filename triggering event. ; 7. Query Popup menu no longer shows "Play ".. options for the Notify List. ; ; 0.55: ; ; 1. Simplified the Yes/No dialogs with new mIRC 5.4 features. ; ; 0.546: ; ; 1. Simplified the Require Qutes, and auto-Request popup ; selections. ; 2. Fixed the missing } in the /soundsetup. ; 3. Removed some reliance on the Aliases section, and ; started removing the relance on permanently residing ; %Variables (%MP3.*) ; 4. Stopped sending full path names to sound files. (More ; security aware). ; ; 0.541: ; 1. Added the ability to use the -q switch to /splay. ; 2. Fixed repeating target in sound requests. ; 3. Fixed it using the directory as the CTCP request ; ; 0.54: ; 1. Fixed the /sound with DCC chats properly. ; 2. Fixed showing full path names when receiving a ctcp sound (now ; only shows "file.whateveR" instead of "c:\wherever\whatever.file") ; 3. Fixed comments not showing properly when using channel based ; /sound commands. Turned out to be a misplaced (.. go figure. ; 4. Also fixed a minor prolbem with a variable unsetting too early. ; 5. Fixed various path errors here and there. ; 6. Added basic popups to Channel and Menu. ; 7. Fixed problem when /splay is used with a path (ie. /splay ; c:\somepath\file.ext) ; 8. Made /soundsetup skip questions if the answer is already in place. ; ; 0.53: ; 1. Quick fix with /sound & DCC chats. Still have to impliment ; this properly (ie. dont just strip the = but send the ctcp via ; the dcc (:^1SOUND file.ext comment^1) but hey! this was quick, ; easy, and I needed it quickly!). ; ; 0.52: ; 1. Fixed the problem with /sound not sending out the /ctcp sound ; 2. Fixed the "'s being sent out (if used). ; 3. Removed last bit of the debuging code. Now just looks neater. ; (see if YOU can spot the difference!) ; 4. Fixed the $SoundRequest identifier. Now returns $true properly. ; 5. Fixed the %Sound.comment. %Sound.File and %Sound.Comment dont ; get confused any more with the /sound command. ; 6. Fixed the problem with supplying comment on the /sound command. ; 7. Ok so I just fixed lots of things, and didnt really add anything! ; So sue me! :) ; 8. Fixed the \'s in %Sound.File annoyance.. ; ; 0.51: ; 1. Fixed SoundSetup routine so it wouldnt barf on Long File names ; for the external program. ; 2. Added the 'Comment' field to the /sound command, and handling ; to the CTCP Sound request to show the comment if given. ; 3. Fixed problem with executing WinAmp and long file names. (See ; the information about quotes around the filename) ; 4. Fixed Long file name support in both CTCP Sound and the /sound ; commands. ; 5. Added support for the /splay stop, and /sound on|off commands. ; ; 0.50: ; 1. Added basic support for Long File names. ; 2. Added support to allow for command-line switches to be used ; (Such as -play -close for museArc) ; 3. Created the breif help window, trying to keep as close to ; the inbuilt mIRC commands as possible. ; 4. Added SoundSetup routine for easy configuration. ; on 1:LOAD: { writeini $mircini athing SoundScript.Version v0.59 SoundSetup if ($SoundAskTarget == $null) { writeini $mircini athing Sound.Ask $true } if ($SoundAskDefault == $null) { writeini $mircini athing Sound.DefaultCommand splay } SoundHelp } alias SoundSetup { echo -ta $SoundScript Executing SoundSetup routine. if ($MP3Player != $Null) { echo -ta $SoundScript Current setup : echo -ta $SoundScript     MP3 Player : $MP3Player echo -ta $SoundScript     MP3 Switch : $MP3Switches echo -ta $SoundScript     MP3 Folder : $MP3Dir echo -ta $SoundScript To change these settings, please use the "Sound Setup" option in your Popup menus. } else { :Player set %Sound.Temp $dir="Please select your MP3's Player." C:\*.EXE if ((%Sound.temp == $null) && ($?!="Do you want to continue?" == $false)) { goto Player } if (%Sound.Temp != $Null) { writeini $mircini athing MP3.Player %Sound.Temp } else { echo -ta $SoundScript No program entered. The rest of the setup questions will be skipped. echo -ta $SoundScript To re-run setup questions, use the popups, or type /SoundSetup } Unset %Sound.Temp } if ($mp3Switches == $null) { :Switches set %Sound.Temp $?="Please enter the command line Paramters (ie. -play -close)" if ((%Sound.temp == $null) && ($?!="Do you want to continue?" == $false)) { goto Switches } else { remini $mircini athing MP3.Switches } if (%Sound.Temp != $null) { writeini $mircini athing MP3.Switches %Sound.Temp } Unset %Sound.Temp } if ($mp3dir == $null) { %Sound.temp = $sdir="Where is your MP3 Dir" if (%Sound.Temp == $null) { writeini $mircini athing MP3.Dir $wavedir } else { if ($right(%Sound.Temp,1) != \) { %Sound.Temp = %Sound.Temp $+ \ } writeini $mircini athing MP3.Dir %Sound.Temp } unset %Sound.Temp } if ($soundneedquote == $null) { if ($?!="Does the filename need Quotes' around it?") { writeini $mircini athing Sound.Needquote $true } | else { writeini $mircini athing Sound.Needquote $false } } if ($soundrequest == $Null) { if ($?!="Auto-Request Sound files?") { writeini $mircini athing Sound.Request $true } | else { writeini $mircini athing Sound.Request $false } } } alias soundhelp { window -ar @Sound Addon Help 100 10 420 480 8 Arial aline @Sound Addon Help Sound Addon Help section. $SoundScript(Version) aline @Sound Addon Help   aline @Sound Addon Help Welcome to err, well, this. This addon allows you to use MP3 files aline @Sound Addon Help with the /sound and /splay commands. aline @Sound Addon Help To put it simply, you just use the the same as the /sound and aline @Sound Addon Help /splay commands. ie. aline @Sound Addon Help   aline @Sound Addon Help   /sound [on|off|channel] aline @Sound Addon Help   /splay aline @Sound Addon Help   aline @Sound Addon Help If you have any questions or problems related to this scirpt, please aline @Sound Addon Help contact bekar@virtual.net.au (Bekar on the EFNet). aline @Sound Addon Help   aline @Sound Addon Help Bekar (@#mIRC EFNet) aline @Sound Addon Help   aline @Sound Addon Help Note: Some MP3 programs require you to use long file names without aline @Sound Addon Help "" around them. If you have errors when trying to play MP3 files aline @Sound Addon Help try changing the setup (/soundsetup) and say No in the apropriate aline @Sound Addon Help question. Tested programs include WinAmp (Requires), MuseArc aline @Sound Addon Help (doesnt require). aline @Sound Addon Help If you leave the MP3 Dir blank, it will use your $chr(36) $+ wavedir var aline @Sound Addon Help instead. (currently set to $Wavedir $+ ). aline @Sound Addon Help   aline @Sound Addon Help  Example Settings: aline @Sound Addon Help       Winamp: Needs Quotes. No Switches. aline @Sound Addon Help       MS MPlayer2: Needs Quotes. Switches: /Play /Close aline @Sound Addon Help       Musearc: Doesn't need Quotes. Switches: -Play -Close aline @Sound Addon Help   aline @Sound Addon Help You can change your setup in the Channel Popup, Menu Popup, aline @Sound Addon Help or the Status Window Popup. } ctcp 1:SOUND: { if ($gettok($returnini($mircini, options, n3), 19, 44) != 0) { if ($comchan($nick,0) != 0) { %sound.count = 0 :loop inc %sound.count %Sound.Chan = $addtok(%Sound.Chan,$Comchan($nick,%Sound.Count),44) if (%Sound.Count < $comchan($nick,0)) { goto loop } } else { %Sound.Chan = Private Request } if (*.wav* iswm $2-) { %Sound.File = $left($2-,$calc($pos($2-,.wav) + 3)) %Sound.Comment = $right($2-,$calc($len($2-) - $pos($2-,.wav) - 3)) } elseif ((*.mid* iswm $2-) || (*.mp3* iswm $2-)) { %Sound.File = $left($2-,$calc($pos($2-,.m) + 3)) %Sound.Comment = $right($2-,$calc($len($2-) - $pos($2-,.m) - 3)) } if ($left(%Sound.File, 1) == ") { %Sound.File = $right(%Sound.File, $calc($len(%Sound.File) - 1)) %Sound.Comment = $left(%Sound.Comment, $calc($len(%Sound.comment) - 2)) } if (*.wav iswm %Sound.File) { %Sound.Dir = $WaveDir } | elseif (*.mid iswm %Sound.File) { %Sound.Dir = $MidiDir } | elseif (*.mp3 iswm %Sound.File) { %Sound.Dir = $MP3Dir } if (\ isin %Sound.File) { set %Sound.File $nopath(%sound.file) } if ($exists($findfile(%Sound.dir,%Sound.File,1))) { %Sound.Message = Sound Not Played. } else { if ($SoundRequest) { %Sound.Message = File does not exist, Requesting it. .msg $nick ! $+ $nick %Sound.File } else { %Sound.Message = File does not exist. } } if (%Sound.File != $null) { %Sound.Request = Yes splay %Sound.File if ($result) { %Sound.Message = Playing file. } %Sound.File = " $+ $remove($nopath(%sound.file),") $+ " echo 4 -ts $chr(91) $+ $nick SOUND $+ $chr(93) $+ : Sound request sent to $target for %Sound.File $+ . %Sound.Message - %Sound.Comment unset %sound.* halt } unset %sound.* } } CTCP *:GET *.mp3:?: { echo -s ctcp get triggered.. if ($gettok($returnini($mircini,options,n1),20,44) == 1) { if ($exists($findfile($mp3dir,$2-,1))) { .dcc send $nick " $+ $mp3dir [ $+ $findfile($mp3dir,$2-,1) ] $+ " echo -ts $SoundScript $nick requested $findfile($mp3dir,$2-,1) $+ . Sending it to them. halt } } } ON *:TEXT:!* *.mp3:*: { if ($gettok($returnini($mircini,options,n1),20,44) == 1) { if ($1 == ! [ $+ [ $me ] ] ) { if ($exists($findfile($mp3dir,$2-,1))) { .dcc send $nick " $+ $findfile($mp3dir,$2-,1) $+ " echo -ts $SoundScript $nick requested $findfile($mp3dir,$2-,1) $+ . Sending it to them. halt } } } } alias sound { if ((($1 == on) || ($1 == off)) && ($2 == $null)) { sound $1 | halt } if (*.wav* iswm $1-) { if (# !isin [ $1 ] ) { %Sound.Target = $active if (\ isin $1-) { %Sound.File = $left($1-,$calc($pos($1-,.wav) + 3)) %Sound.Comment = $right($1-,$calc($len($1-) - $pos($1-,.wav) - 3)) } else { %Sound.File = $sounddir $+ $left($1-,$calc($pos($1-,.wav) + 3)) %Sound.Comment = $right($1-,$calc($len($1-) - $pos($1-,.wav) - 3)) } } | else { %Sound.Target = $1 if (\ isin $1-) { %Sound.File = $left($1-,$calc($pos($1-,.wav) + 3)) %Sound.Comment = $right($1-,$calc($len($1-) - $pos($1-,.wav) - 3)) } else { %Sound.File = $sounddir $+ $left($2-,$calc($pos($2-,.wav) + 3)) %Sound.Comment = $right($2-,$calc($len($2-) - $pos($2-,.wav) - 3)) } } } elseif ((*.mid* iswm $1-) || (*.mp3* iswm $1-)) { if (# !isin [ $1 ] ) { %Sound.Target = $active if (\ isin $1-) { %Sound.File = $left($1-,$calc($pos($1-,.m) + 3)) %Sound.Comment = $right($1-,$calc($len($1-) - $pos($1-,.m) - 3)) } else { %Sound.File = $iif(*.mid iswm $1-,$mididir,$mp3dir) $+ $left($1-,$calc($pos($1-,.m) + 3)) %Sound.Comment = $right($1-,$calc($len($1-) - $pos($1-,.m) - 3)) } } | else { %Sound.Target = $1 if (\ isin $1-) { %Sound.File = $left($1-,$calc($pos($1-,.m) + 3)) %Sound.Comment = $right($1-,$calc($len($1-) - $pos($1-,.m) - 3)) } else { %Sound.File = $iif(*.mid iswm $2-,$mididir,$mp3dir) $+ $left($2-,$calc($pos($2-,.m) + 3)) %Sound.Comment = $right($2-,$calc($len($2-) - $pos($2-,.m) - 3)) } } } %Sound.Request = No if (\ isin %Sound.File) { %Sound.File = $nopath(%sound.file) } splay %Sound.File if ($result) { .msg %Sound.Target $chr(1) $+ SOUND " $+ $nopath($remove(%Sound.File,$chr(34))) $+ " %Sound.Comment $+ $chr(1) } unset %Sound.* } alias splay { if ($1 != $null) { if (($1 == stop) && ($2 == $null)) { splay stop | halt } if (*.wav iswm $1-) { %Sound.Dir = $WaveDir } | elseif (*.mid iswm $1-) { %Sound.Dir = $MidiDir } | elseif (*.mp3 iswm $1-) { %Sound.Dir = $MP3Dir } if ($left($1,1) != -) { if (\ isin $1-) { set %Sound.File $1- } else { %Sound.File = %Sound.Dir $+ $1- } } else { if (\ isin $1-) { %Sound.Switches = $1 %Sound.File = $2- } else { %Sound.Switches = $1 %Sound.File = %Sound.Dir $+ $2- } } if ($exists(%Sound.File) == $false ) { echo 2 -ta $SoundScript File does not exist ( $+ $nopath(%Sound.File) $+ ) return $false } if (*.mp3 iswm %Sound.File) { if ($exists($MP3Player)) { if ($soundneedquote) { %Sound.File = " $+ %Sound.File $+ " } SoundAgent %Sound.File .run $MP3Player $MP3Switches %Sound.File } else { echo 2 -ta $SoundScript MP3 Player does not exist. Please verify by typing /SoundSetup. return $false } } else { if ($SoundUseAgent != $False) { SoundAgent %Sound.File %Sound.Comment } else { splay %Sound.Switches %Sound.File } } if (%Sound.Request != $null) { if (%sound.request != yes) { echo 2 -ta $SoundScript Playing Sound $remove(%Sound.File,$chr(34)) } } else { unset %sound.* } return $true } else { echo 2 -ta $SoundScript No File Specified. } } menu channel { .- $iif($gettok($returnini($mircini, options, n3), 19, 44) == 1,Play MP3) : { if ($SoundAskTarget) { $iif($?!="Play to [ $active ] ?", sound $active, splay) $$dir="Select a file" [ $mp3dir $+ *.mp3 ] } | else { [ $SoundAskDefault ] $$dir="Select a file" [ $mp3dir $+ *.mp3 ] } } $iif($gettok($returnini($mircini, options, n3), 19, 44) == 1,Play WAV) : { if ($SoundAskTarget) { $iif($?!="Play to [ $active ] ?", sound $active, splay) $$dir="Select a file" $wavedir [ $+ *.wav ] } | else { [ $SoundAskDefault ] $$dir="Select a file" $wavedir [ $+ *.wav ] } } $iif($gettok($returnini($mircini, options, n3), 19, 44) == 1,Play MID) : { if ($SoundAskTarget) { $iif($?!="Play to [ $active ] ?", sound $active, splay) $$dir="Select a file" $mididir [ $+ *.mid ] } | else { [ $SoundAskDefault ] $$dir="Select a file" $mididir [ $+ *.mid ] } } Sound Setup .Sound ( $+ $iif($gettok($returnini($mircini, options, n3), 19, 44) == 1, Enabled, Disabled) $+ ) : { if ($gettok($returnini($mircini, options, n3), 19, 44) == 1) { writeini $mircini options n3 $puttok($returnini($mircini, options, n3), 0, 19, 44) flushini $mircini } else { writeini $mircini options n3 $puttok($returnini($mircini, options, n3), 1, 19, 44) flushini $mircini } } .- .MP3 Dir ( $+ $mp3dir $+ ): { unset %Sound.Temp %Sound.temp = $sdir="Where is your MP3 Dir" c:\ if (%Sound.Temp == $null) { writeini $mircini athing mp3.dir $wavedir } else { if ($right(%Sound.Temp,1) != \) { %Sound.Temp = %Sound.Temp $+ \ } writeini $mircini athing mp3.dir %Sound.Temp } unset %Sound.Temp } .MP3 Program ( $+ $nopath($MP3Player) $+ ): { :Player set %Sound.Temp $dir="Please select your MP3's Player." C:\*.EXE if (%Sound.temp == $null) { goto Player } if (%Sound.temp != $Null) { writeini $mircini athing MP3.Player %Sound.Temp } Unset %Sound.Temp } .MP3 Program Switches ( $+ $iif($mp3switches != $null, $MP3Switches,None) $+ ): { :Switches set %Sound.Temp $?="Please enter the command line Paramters (ie. -play -close)" if ((%Sound.temp == $null) && ($?!="Do you want to continue?" == $false)) { goto Switches } else { remini $mircini athing MP3.Switches } if (%Sound.Temp != $null) { writeini $mircini athing MP3.Switches %Sound.Temp } Unset %Sound.Temp } .Auto-Request ( $+ $iif($SoundRequest,Yes,No) $+ ): { if ($SoundRequest) { writeini $mircini athing Sound.Request $false } | else { writeini $mircini athing Sound.Request $true } } .Requre Quotes ( $+ $iif($soundneedquote,Yes,No) $+ ): { if ($soundneedquote) { writeini $mircini athing Sound.NeedQuote $false } | else { writeini $mircini athing Sound.NeedQuote $true } } .- .Ask for Popup Sound target ( $+ $iif($soundasktarget,Yes,No) $+ ): { if ($soundasktarget) { writeini $mircini athing Sound.Ask $false } | else { writeini $mircini athing Sound.Ask $true } } .$iif($SoundAskTarget == $false,Default Command ( [ $+ [ $gettok($SoundAskDefault,1,32) ] $+ ] )) { if ($soundaskDefault == splay) { writeini $mircini athing Sound.DefaultCommand SOUND $chr(36) $+ !active } | else { writeini $mircini athing Sound.DefaultCommand SPLAY } } } menu query { .- $iif(($gettok($returnini($mircini, options, n3), 19, 44) == 1) && ($gettok($active,2,32) == $null), Play MP3) : { if ($SoundAskTarget) { $iif($?!="Play to [ $active ] ?", sound, splay) $$dir="Select a file" [ $mp3dir $+ *.mp3 ] } | else { $gettok($SoundAskDefault,1,32) $$dir="Select a file" [ $mp3dir $+ *.mp3 ] } } $iif(($gettok($returnini($mircini, options, n3), 19, 44) == 1) && ($gettok($active,2,32) == $null),Play WAV) : { if ($SoundAskTarget) { $iif($?!="Play to [ $active ] ?", sound, splay) $$dir="Select a file" $wavedir [ $+ *.wav ] } | else { $gettok($SoundAskDefault,1,32) $$dir="Select a file" $wavedir [ $+ *.wav ] } } $iif(($gettok($returnini($mircini, options, n3), 19, 44) == 1) && ($gettok($active,2,32) == $null),Play MID) : { if ($SoundAskTarget) { $iif($?!="Play to [ $active ] ?", sound, splay) $$dir="Select a file" $mididir [ $+ *.mid ] } | else { $gettok($SoundAskDefault,1,32) $$dir="Select a file" $mididir [ $+ *.mid ] } } Sound Setup .Sound ( $+ $iif($gettok($returnini($mircini, options, n3), 19, 44) == 1, Enabled, Disabled) $+ ) : { if ($gettok($returnini($mircini, options, n3), 19, 44) == 1) { writeini $mircini options n3 $puttok($returnini($mircini, options, n3), 0, 19, 44) flushini $mircini } else { writeini $mircini options n3 $puttok($returnini($mircini, options, n3), 1, 19, 44) flushini $mircini } } .- .MP3 Dir ( $+ $mp3dir $+ ): { unset %Sound.Temp %Sound.temp = $sdir="Where is your MP3 Dir" c:\ if (%Sound.Temp == $null) { writeini $mircini athing mp3.dir $wavedir } else { if ($right(%Sound.Temp,1) != \) { %Sound.Temp = %Sound.Temp $+ \ } writeini $mircini athing mp3.dir %Sound.Temp } unset %Sound.Temp } .MP3 Program ( $+ $nopath($MP3Player) $+ ): { :Player set %Sound.Temp $dir="Please select your MP3's Player." C:\*.EXE if (%Sound.temp == $null) { goto Player } if (%Sound.Temp != $Null) { writeini $mircini athing MP3.Player %Sound.Temp } Unset %Sound.Temp } .MP3 Program Switches ( $+ $iif($mp3switches != $null, $MP3Switches,None) $+ ): { :Switches set %Sound.Temp $?="Please enter the command line Paramters (ie. -play -close)" if ((%Sound.temp == $null) && ($?!="Do you want to continue?" == $false)) { goto Switches } else { remini $mircini athing MP3.Switches } if (%Sound.Temp != $null) { writeini $mircini athing MP3.Switches %Sound.Temp } Unset %Sound.Temp } .Auto-Request ( $+ $iif($SoundRequest,Yes,No) $+ ): { if ($SoundRequest) { writeini $mircini athing Sound.Request $false } | else { writeini $mircini athing Sound.Request $true } } .Requre Quotes ( $+ $iif($soundneedquote,Yes,No) $+ ): { if ($soundneedquote) { writeini $mircini athing Sound.NeedQuote $false } | else { writeini $mircini athing Sound.NeedQuote $true } } .- .Ask for Popup Sound target ( $+ $iif($soundasktarget,Yes,No) $+ ): { if ($soundasktarget) { writeini $mircini athing Sound.Ask $false } | else { writeini $mircini athing Sound.Ask $true } } .$iif($SoundAskTarget == $false,Default Command ( [ $+ [ $gettok($SoundAskDefault,1,32) ] $+ ] )) { if ($soundaskDefault == splay) { writeini $mircini athing Sound.DefaultCommand SOUND $chr(36) $+ !Active } | else { writeini $mircini athing Sound.DefaultCommand SPLAY } } } menu menubar,status { .- Sound Setup .Sound ( $+ $iif($gettok($returnini($mircini, options, n3), 19, 44) == 1, Enabled, Disabled) $+ ) : { if ($gettok($returnini($mircini, options, n3), 19, 44) == 1) { writeini $mircini options n3 $puttok($returnini($mircini, options, n3), 0, 19, 44) flushini $mircini } else { writeini $mircini options n3 $puttok($returnini($mircini, options, n3), 1, 19, 44) flushini $mircini } } .- .MP3 Dir ( $+ $mp3dir $+ ): { %Sound.temp = $sdir="Where is your MP3 Dir" if (%Sound.Temp == $null) { writeini $mircini athing MP3.Dir $wavedir } else { if ($right(%Sound.Temp,1) != \) { %Sound.Temp = %Sound.Temp $+ \ } writeini $mircini athing MP3.Dir %Sound.Temp } unset %Sound.Temp } .MP3 Program ( $+ $nopath($MP3Player) $+ ): { :Player set %Sound.Temp $dir="Please select your MP3's Player." C:\*.EXE if (%Sound.temp == $null) { goto Player } if (%Sound.temp != $Null) { writeini $mircini athing MP3.Player %Sound.Temp } unset %Sound.Temp } .MP3 Program Switches ( $+ $iif($mp3switches != $null, $MP3Switches,None) $+ ): { :Switches set %Sound.Temp $?="Please enter the command line Paramters (ie. -play -close)" if ((%Sound.temp == $null) && ($?!="Do you want to continue?" == $false)) { goto Switches } else { remini $mircini athing MP3.Switches } if (%Sound.Temp != $null) { writeini $mircini athing MP3.Switches %Sound.Temp } Unset %Sound.Temp } .Auto-Request ( $+ $iif($SoundRequest,Yes,No) $+ ): { if ($SoundRequest) { writeini $mircini athing Sound.Request $false } | else { writeini $mircini athing Sound.Request $true } } .Requre Quotes ( $+ $iif($soundneedquote,Yes,No) $+ ): { if ($SoundNeedquote) { writeini $mircini athing Sound.Needquote $false } | else { writeini $mircini athing Sound.Needquote $true } } .- .Ask for Popup Sound target ( $+ $iif($soundasktarget,Yes,No) $+ ): { if ($soundasktarget) { writeini $mircini athing Sound.Ask $false } | else { writeini $mircini athing Sound.Ask $true } } .$iif($SoundAskTarget == $false,Default Command ( [ $+ [ $gettok($SoundAskDefault,1,32) ] $+ ] )) { if ($soundaskDefault == splay) { writeini $mircini athing Sound.DefaultCommand SOUND $chr(36) $+ !Active } | else { writeini $mircini athing Sound.DefaultCommand SPLAY } } } alias returnini return $readini $$1 $$2 $$3 on 1:FILERCVD:*.wav,*.mid,*.mp3: splay $filename alias MP3Dir return $readini $mircini athing MP3.Dir alias SoundRequest return $readini $mircini athing Sound.Request alias SoundNeedquote return $readini $mircini athing Sound.NeedQuote alias MP3Switches return $readini $mircini athing MP3.Switches alias MP3Player return $readini $mircini athing MP3.Player alias SoundAskTarget return $readini $mircini athing Sound.Ask alias SoundAskDefault return $readini $mircini athing Sound.DefaultCommand alias SoundUseAgent return $readini $mircini athing Sound.UseAgent alias SoundScript { if ($1 == VERSION) { return $readini $mircini athing SoundScript.Version } else { return 6[2A-Thingy6] } } alias -l SoundAgent { if ($SoundUseAgent != $False) { if ($agent($SoundUseAgent) == $Null) { .gload $SoundUseAgent $SoundUseAgent .gshow $SoundUseAgent 50 50 } .gtalk -w $SoundUseAgent $1 For my next act, I will play $replace($nopath($1), -, $chr(44) $+ $chr(32), _, $chr(32)) . $2- } }