Personally, I'd find not using 'one/two/three' but using '1/2/3' instead, purely because they are easier to work with as you can use them easily in a loop, for example;

The following, for the INIT, just loops from 2 till 13 (your check ids), checks the var (%sounds.N) if they are set, if so, check the checkbox

On *:Dialog:Sounds:init:0:{
var %i = 2
while (13 >= %i) {
if ($eval($+(%,sounds.,%i),2) == on) { did -c sounds %i }
inc %i
}
}

and for the 'accept button, we do this, loop around the ids again (2-13) if the state is 1, set the var on, else off.

on *:dialog:sounds:sclick:100:{
var %i = 2
while (13 >= %i) {
if ($did(sounds,%i).state == 1) { set $+(%,sounds.,%i) on }
else { set $+(%,sounds.,%i) off }
inc %i
}
}

Will do exactly what your 2 events above do, but looks alot bette, however, that isnt to say yours is wrong, as it isnt, it purely comes down to what you find easier and confortable.

The rest of your coding, isnt worth touching really they look find, except to mention you can do;

On [color:red]me:*
:Join:#:{
[/color]
and not have to use, if ($nick == $me), lil tip for you, note that it doesnt replace the userlevel, but prefixes it.

Eamonn.