Peace & Protection 4.00 — File Browser

PeaceProtection4.00v4.0 / PeaceProtection4.00v4.0 / SCRIPT / CONFIG.MRC

CONFIG.MRC — 24.69 KB — Download this file

; #= P&P.temp -rs
; ########################################
; Peace & Protection
; Main configuration dialog
; ########################################

dialog options {
  title "P&P Options"
  size -1 -1 500 350

  edit "", 244, 1 1 1 1, hide autohs

  text "Configure:", 245, 10 14 55 20

  combo 249, 65 10 200 200, drop

  box "", 250, -10 34 520 274

  box "Show normally:", 1, 20 80 460 47, hide
  check "Network", 2, 29 100 60 16, hide
  check "Nickname", 3, 92 100 70 16, hide
  check "Lag", 4, 163 100 40 16, hide
  check "Active Window", 5, 205 100 110 16, hide
  check "Pager", 6, 317 100 50 16, hide
  check "Time", 7, 369 100 42 16, hide
  check "Idle time", 8, 416 100 60 16, hide
  box "Show when away:", 9, 20 135 460 47, hide
  check "Network", 10, 29 155 60 16, hide
  check "Nickname", 11, 92 155 70 16, hide
  check "Lag", 12, 163 155 40 16, hide
  check "Away", 13, 205 155 50 16, hide
  check "Msg log", 14, 255 155 60 16, hide
  check "Pager", 15, 317 155 50 16, hide
  check "Time", 16, 369 155 42 16, hide
  check "Idle time", 17, 416 155 60 16, hide
  check "Update mIRC titlebar with info:", 18, 30 57 200 16, hide
  text "(note: idle is only shown if over 90 seconds)", 19, 30 195 300 16, hide

  text "These options determine reactions when users send you DCC requests. (chats and files)", 20, 20 58 420 16, hide
  box "When here: (not away)", 21, 20 80 460 71, hide
  box "When away:", 22, 20 159 460 95, hide
  text "DCC from a known user:" 23, 30 100 148 16, right hide
  text "DCC from an unknown user:" 24, 30 124 148 16, right hide
  text "DCC from a known user:" 25, 30 179 148 16, right hide
  text "DCC from an unknown user:" 26, 30 203 148 16, right hide
  text "DCC from user with DCC auth:" 27, 30 227 148 16, right hide
  combo 28, 182 96 145 100, drop hide
  combo 29, 332 96 140 100, drop hide
  combo 30, 182 120 145 100, drop hide
  combo 31, 332 120 140 100, drop hide
  combo 32, 182 175 145 100, drop hide
  combo 33, 332 175 140 100, drop hide
  combo 34, 182 199 145 100, drop hide
  combo 35, 332 199 140 100, drop hide
  combo 36, 182 223 145 100, drop hide
  combo 37, 332 223 140 100, drop hide

  text "Show notifies in:", 39, 30 55 80 16, hide
  check "Show unnotifies in part color", 40, 260 55 200 16, hide
  box "If user matches address check:", 41, 20 76 460 71, hide
  text "When user signs on to IRC:", 42, 30 96 148 16, right hide
  text "When user leaves IRC:", 43, 30 121 148 16, right hide
  combo 44, 182 92 145 100, drop hide
  combo 45, 182 117 145 100, drop hide
  check "and beep / flash", 46, 340 95 140 16, hide
  box "If user has no address check:", 47, 20 151 460 71, hide
  text "When user signs on to IRC:", 48, 30 171 148 16, right hide
  text "When user leaves IRC:", 49, 30 196 148 16, right hide
  combo 50, 182 167 145 100, drop hide
  combo 51, 182 192 145 100, drop hide
  check "and beep / flash", 52, 340 170 140 16, hide
  box "If user fails address check:", 53, 20 226 460 71, hide
  text "When user signs on to IRC:", 54, 30 246 148 16, right hide
  text "When user leaves IRC:", 55, 30 271 148 16, right hide
  combo 56, 182 242 145 100, drop hide
  combo 57, 182 267 145 100, drop hide
  check "and beep / flash", 58, 340 245 140 16, hide
  combo 59, 110 51 130 100, drop hide

  text "Show whois replies in:", 60, 30 55 110 16, hide
  combo 61, 140 51 130 100, drop hide
  check "Minimize @Whois window when opening", 62, 12 80 250 16, hide
  check "Bring @Whois window to front when a reply is shown", 63, 12 105 300 16, hide
  check "Show whois reply in query or chat if open", 64, 12 130 250 16, hide
  check "Store replies for later viewing via @Whois window", 65, 12 155 300 16, hide
  check "Show extended server info", 66, 12 180 250 16, hide
  check "Show seperators around whois reply", 67, 12 205 250 16, hide
  box "Show nicknames in whois replies:", 68, 12 230 400 50, hide
  radio "On all lines", 69, 30 251 80 16, hide group
  radio "On first line only", 70, 110 251 102 16, hide
  radio "Show on first, invisible on remaining", 71, 212 251 230 16, hide

  text "Show bulk ping replies (channels, etc.) to:", 77, 20 80 205 16, right hide
  combo 78, 230 76 130 100, drop hide
  text "Show single ping replies to:", 79, 20 105 205 16, right hide
  combo 80, 230 101 130 100, drop hide
  check "Minimize @Ping window when opening", 81, 30 160 250 16, hide
  check "Bring @Ping window to front when a reply is shown", 82, 30 185 300 16, hide
  check "Store channel pings for later viewing via @Ping window", 83, 30 210 300 16, hide
  check "Show numeric codes of pings you receive", 76, 30 235 300 16, hide

  check "CTCP flood protection enabled", 86, 29 70 220 16, hide
  check "Change nick randomly on personal flood", 84, 251 70 220 16, hide
  check "DCC protections enabled (invalid, flood)", 87, 29 95 220 16, hide
  check "Close DCC chat if extreme flood detected:", 88, 29 125 220 16, hide
  edit "", 89, 250 122 40 22, hide
  text "lines of text in", 90, 293 126 70 16, hide
  edit "", 91, 365 122 40 22, hide
  text "seconds", 92, 408 126 40 16, hide
  check "Ignore queries if query flood detected:", 93, 29 150 220 16, hide
  edit "", 94, 250 147 40 22, hide
  text "new queries in", 95, 293 151 70 16, hide
  edit "", 96, 365 147 40 22, hide
  text "seconds", 97, 408 151 40 16, hide
  check "Ignore notices if notice flood detected:", 98, 29 175 220 16, hide
  edit "", 99, 250 172 40 22, hide
  text "notices in", 100, 293 176 70 16, hide
  edit "", 101, 365 172 40 22, hide
  text "seconds", 102, 408 176 40 16, hide
  check "Verify channels you are invited to", 103, 29 205 220 16, hide
  check "Self lag check every", 104, 29 235 120 16, hide
  edit "30", 105, 150 232 40 22, disable hide
  text "seconds", 106, 193 236 40 16, hide
  check "Self lag warnings at", 107, 29 260 120 16, hide
  edit "30", 108, 150 257 40 22, disable hide
  text "and", 109, 193 261 20 16, hide
  edit "60", 110, 215 257 40 22, disable hide
  text "seconds", 85, 258 261 40 16, hide

  check "Show users who get banned", 111, 229 70 200 16, hide
  check "Show clones when they join", 112, 29 70 200 16, hide
  check "Display note whenever user is 'punished' from channel protection", 113, 29 95 350 16, hide
  box "Banning", 114, 15 120 470 85, hide
  text "Default tempban time:", 115, 30 145 110 16, hide
  edit "", 116, 140 141 50 22, hide
  text "seconds, ban type:", 117, 195 145 100 16, hide
  combo 118, 295 141 175 140, drop hide
  text "Default banmask:", 119, 30 175 90 16, hide
  combo 120, 120 171 105 100, drop hide
  combo 121, 230 171 240 120, drop hide
  text "Default usermask:", 122, 30 220 90 16, hide
  combo 123, 120 216 105 100, drop hide
  combo 124, 230 216 240 120, drop hide
  text "(see help for details on default masks)", 125, 120 243 200 16, hide
  check "Add delay between multiple kicks (but not bans, etc.)", 126, 29 270 300 16, hide

  text "If mIRC is not the current application, the icon will flash on the following events.", 127, 35 58 420 16, hide
  box "Flash mIRC on:", 128, 20 90 460 100, hide
  text "New query window:", 129, 39 111 110 16, hide
  text "Private message:", 130, 39 136 110 16, hide
  text "Message in DCC chat:", 131, 39 161 110 16, hide
  check "if here (not away)", 132, 162 110 120 16, hide
  check "if away", 133, 283 110 70 16, hide
  check "if here (not away)", 134, 162 135 120 16, hide
  check "if away", 135, 283 135 70 16, hide
  check "if here (not away)", 136, 162 160 120 16, hide
  check "if away", 137, 283 160 70 16, hide
  check "If here, limit flashing to:", 138, 29 220 130 16, hide
  edit "20", 139, 165 217 40 22, disable hide
  text "seconds", 140, 208 221 50 16, hide
  check "If away, limit flashing to:", 141, 29 245 130 16, hide
  edit "20", 142, 165 242 40 22, disable hide
  text "seconds", 143, 208 246 50 16, hide

  text "Show CTCPs, DNS, etc. to:", 145, 20 75 140 16, right hide
  combo 146, 165 71 160 100, drop hide
  text "Show names list on join:", 147, 20 100 140 16, right hide
  combo 148, 165 96 160 100, drop hide
  text "Show MOTD on connect:", 149, 20 125 140 16, right hide
  combo 150, 165 121 160 100, drop hide
  text "Display MOTD in:", 151, 20 150 140 16, right hide
  combo 152, 165 146 160 100, drop hide
  check "Show function keys with common events", 153, 165 180 250 16, hide
  text "Time display format:", 154, 20 210 140 16, right hide
  edit "", 155, 164 206 162 22, autohs hide
  text "Date display format:", 156, 20 235 140 16, right hide
  edit "", 157, 164 231 162 22, autohs hide
  text "Time+date display format:", 158, 20 260 140 16, right hide
  edit "", 159, 164 256 162 22, autohs hide

  text "These options determine which server notices you will see when usermode +s is enabled.", 161, 20 54 420 16, hide
  text "Select one or more items and press '>>' to hide or '<<' to show the notices.", 162, 20 69 420 16, hide
  text "(Note: Many notices may only occur on certain networks, or only for IRCops.)", 170, 20 84 420 16, hide
  check "Enable PnP server notice filtering:", 163, 29 106 420 16, hide
  text "Shown server notices:", 164, 20 127 130 16, hide
  text "Hidden server notices:", 165, 270 127 130 16, hide
  list 166, 20 145 200 135, hide extsel sort
  list 167, 270 145 200 135, hide extsel sort
  button ">>", 168, 230 172 30 23, hide
  button "<<", 169, 230 212 30 23, hide
  text "Show server notices to:", 171, 20 278 115 16, hide
  combo 172, 135 274 130 100, drop hide

  text "Activate channel nick completion on:", 174, 28 70 175 16, hide right
  edit "", 175, 208 66 30 22, autohs hide
  text "Activate inline nick completion on:", 190, 28 92 175 16, hide right
  edit "", 191, 208 88 30 22, autohs hide
  check "Use nick completion in commands", 176, 29 114 190 16, hide
  check "Ask if more than one nick matches", 177, 250 70 200 16, hide
  check "Ask if more than one nick matches", 192, 250 92 200 16, hide
  check "Ask if more than one nick matches", 178, 250 114 200 16, hide
  check "Strip all colors/etc. from all script messages sent to IRC", 179, 29 136 280 16, hide
  box "Use /b as:", 180, 22 162 150 70, hide
  radio "/ban", 181, 40 183 50 16, hide group
  radio "/back", 182, 40 203 50 16, hide
  box "FKeys for recent events: (such as CtrlF1)", 183, 182 162 250 70, hide
  radio "Cycle through multiple choices", 184, 200 183 200 16, hide group
  radio "Automatically use most recent", 185, 200 203 200 16, hide
  box "Script can use:", 186, 22 240 410 50, hide
  radio "F10 keys only", 187, 40 261 85 16, hide group
  radio "F7 keys only", 188, 152 261 80 16, hide
  radio "Both F7 and F10 keys", 189, 267 261 230 16, hide

  text "These options determine which wallops you will see when usermode +w is enabled.", 194, 20 54 420 16, hide
  text "Select one or more items and press '>>' to hide or '<<' to show the wallops.", 195, 20 69 420 16, hide
  text "(Note: Many wallops may only occur on certain networks, or only for IRCops.)", 196, 20 84 420 16, hide
  check "Enable PnP wallop filtering:", 197, 29 106 420 16, hide
  text "Shown wallops:", 198, 20 127 130 16, hide
  text "Hidden wallops:", 199, 270 127 130 16, hide
  list 200, 20 145 200 135, hide extsel sort
  list 201, 270 145 200 135, hide extsel sort
  button ">>", 202, 230 172 30 23, hide
  button "<<", 203, 230 212 30 23, hide
  text "Show wallops to:", 204, 20 278 115 16, hide
  combo 205, 135 274 130 100, drop hide

  button "OK", 241, 30 316 55 25, OK default
  button "Cancel", 242, 100 316 55 25, cancel
  button "Help", 243, 170 316 55 25, disable
}
on *:DIALOG:options:init:*:{
  ; load the categories
  loadbuf -otcfgcat $dname 249 script\dlgtext.dat

  ; load all the settings
  if (%`title.bar) did -c $dname 18
  else _bulkdid -b options 1 17
  var %opt,%num = 1,%here = $_cfgi(title.here),%away = $_cfgi(title.away)
  :loop1
  if ($mid(%here,%num,1)) did -c $dname $calc(%num + $iif(%num > 4,0,1))
  if ($mid(%away,%num,1)) did -c $dname $calc(%num + 9)
  if (%num < 8) { inc %num | goto loop1 }

  %num = 28
  :loop2
  loadbuf -otchatauth $dname %num script\dlgtext.dat
  did -c $dname %num $calc(1 + $mid(%`dcc.opt,$calc(%num - 27),1))
  inc %num
  loadbuf -otsendauth $dname %num script\dlgtext.dat
  did -c $dname %num $calc(1 + $mid(%`dcc.opt,$calc(%num - 27),1))
  if (%num < 36) { inc %num | goto loop2 }

  %num = 44
  %opt = 1
  :loop3
  loadbuf -otnotify $dname %num script\dlgtext.dat
  did -c $dname %num $findtok(show ext hide,$_cfgi(notify. [ $+ [ $gettok(match nocheck fail,%opt,32) ] ] ),1,32)
  inc %num
  loadbuf -otunnotify $dname %num script\dlgtext.dat
  did -c $dname %num $findtok(show ext hide,$_cfgi(unotify. [ $+ [ $gettok(match nocheck fail,%opt,32) ] ] ),1,32)
  if ($_cfgi(notifybeep. [ $+ [ $gettok(match nocheck fail,%opt,32) ] ] )) did -c $dname $calc(%num + 1)
  if (%num < 55) { inc %opt | inc %num 5 | goto loop3 }
  if ($_cfgi(unotify.part)) did -c $dname 40
  loadbuf -otnotifywin $dname 59 script\dlgtext.dat
  did -c $dname 59 $findtok(-ai2 -si2 none off,%`notify.win,1,32)

  loadbuf -otwhoiswin $dname 61 script\dlgtext.dat
  did -c $dname 61 $findtok(-ai2 -si2 @Whois *,%`whois.win,1,32)
  if (%`whois.win != @Whois) { did -b $dname 62 | did -b $dname 63 }
  if ($_cfgi(whois.focus) == min) did -c $dname 62
  if ($_cfgi(whois.focus) == front) did -c $dname 63
  if ($_cfgi(whois.q)) did -c $dname 64
  if ($_cfgi(whois.retain)) did -c $dname 65
  if ($_cfgi(whois.serv)) did -c $dname 66
  if ($_cfgi(whois.sep)) did -c $dname 67
  did -c $dname $calc(68 + $findtok(on off hide,%`whois.nick,1,32))

  loadbuf -otpingwin1 $dname 78 script\dlgtext.dat
  did -c $dname 78 $findtok(-ai2 -si2 @Ping * none,%`ping.bulk,1,32)
  loadbuf -otpingwin2 $dname 80 script\dlgtext.dat
  did -c $dname 80 $findtok(-ai2 -si2 *,%`ping.one,1,32)
  if (%`ping.bulk != @Ping) { did -b $dname 81 | did -b $dname 82 }
  if (%`ping.focus == min) did -c $dname 81
  if (%`ping.focus == front) did -c $dname 82
  if (%`ping.retain) did -c $dname 83
  if (%`show.pingcode) did -c $dname 76

  if (%`myflood.prot & 1) did -c $dname 86
  if (%`myflood.prot & 2) did -c $dname 87
  if (%`myflood.prot & 4) did -c $dname 84
  if ($gettok(%`xchat.cfg,1,32)) did -c $dname 88
  else { did -b $dname 89 | did -b $dname 91 }
  did -a $dname 89 $gettok(%`xchat.cfg,2,32)
  did -a $dname 91 $gettok(%`xchat.cfg,3,32)
  %opt = $_cfgi(xquery.cfg)
  if ($gettok(%opt,1,32)) did -c $dname 93
  else did -b $dname 94,96
  did -a $dname 94 $gettok(%opt,2,32)
  did -a $dname 96 $gettok(%opt,3,32)
  if ($gettok(%`xnotice.cfg,1,32)) did -c $dname 98
  else did -b $dname 99,101
  did -a $dname 99 $gettok(%`xnotice.cfg,2,32)
  did -a $dname 101 $gettok(%`xnotice.cfg,3,32)
  if ($_cfgi(verify.inv)) did -c $dname 103
  if ($_cfgi(sptime) > 0) { did -c $dname 104 | did -oe $dname 105 1 $ifmatch }
  if (($_cfgi(spwarn1) > 0) || ($_cfgi(spwarn2) > 0)) {
    did -c $dname 107
    did -oe $dname 108 1 $_cfgi(spwarn1)
    did -oe $dname 110 1 $_cfgi(spwarn2)
  }

  loadbuf -ottempban $dname 118 script\dlgtext.dat
  loadbuf -otidentmask $dname 120 script\dlgtext.dat
  loadbuf -otidentmask $dname 123 script\dlgtext.dat
  loadbuf -othostmask $dname 121 script\dlgtext.dat
  loadbuf -othostmask $dname 124 script\dlgtext.dat

  if (%`show.banned) did -c $dname 111
  if (%`clone.join) did -c $dname 112
  if (%`show.punish) did -c $dname 113
  did -a $dname 116 $_cfgi(tempban.time)
  did -c $dname 118 $mid(123004567,$_cfgi(tempban.type),1)
  did -c $dname 120 $gettok(4 1 2 3,$calc(%`ban.id + 1),32)
  did -c $dname 121 %`ban.dom
  did -c $dname 123 $gettok(4 1 2 3,$calc(%`mask.id + 1),32)
  did -c $dname 124 %`mask.dom
  if (%`delay.kicks) did -c $dname 126

  %num = 1
  :loop6
  if ($mid(%`flash.opt,%num,1)) did -c $dname $calc(131 + %num)
  if (%num < 6) { inc %num | goto loop6 }
  if ($_cfgi(flash.here)) { did -c $dname 138 | did -oe $dname 139 1 $ifmatch }
  if ($_cfgi(flash.away)) { did -c $dname 141 | did -oe $dname 142 1 $ifmatch }

  loadbuf -oteroute $dname 146 script\dlgtext.dat
  did -c $dname 146 $findtok(-ai2 -si2,$_cfgi(eroute),1,32)
  loadbuf -otnames $dname 148 script\dlgtext.dat
  did -c $dname 148 $calc($_cfgi(show.names) + 1)
  loadbuf -otmotdwhen $dname 150 script\dlgtext.dat
  did -c $dname 150 $findtok(on off changes,$_cfgi(motd.disp),1,32)
  loadbuf -otmotdwhere $dname 152 script\dlgtext.dat
  did -c $dname 152 $findtok(-si2 @MOTD,$_cfgi(motd.win),1,32)
  if (%`show.fkeys) did -c $dname 153
  did -a $dname 155 $_cfgi(format.time)
  did -a $dname 157 $_cfgi(format.date)
  did -a $dname 159 $_cfgi(format.datetime)

  if (%`snotice.on) did -c $dname 163
  window -h @.snotice
  loadbuf @.snotice script\snotice.dat
  %num = $line(@.snotice,0)
  :loop7
  did -a $dname $iif($mid(%`snotice.f,%num,1),166,167) $line(@.snotice,%num)
  if (%num > 1) { dec %num | goto loop7 }
  window -c @.snotice
  loadbuf -otsnotice $dname 172 script\dlgtext.dat
  did -c $dname 172 $findtok(-ai2 -si2 @SNotice,%`snotice.win,1,32)

  did -a $dname 175 %`nc.char
  did -a $dname 191 %`nci.char
  if (%`nc.cmd) did -c $dname 176
  if ($_cfgi(nc.askchan)) did -c $dname 177
  if ($_cfgi(nc.askcmd)) did -c $dname 178
  if ($_cfgi(nc.askin)) did -c $dname 192
  if (%`strip.auto) did -c $dname 179
  did -c $dname $iif($_cfgi(b.ban),181,182)
  did -c $dname $calc($_cfgi(reserve.fkey) + 187)
  did -c $dname $iif($_cfgi(recent.auto),185,184)

  if (%`wallop.on) did -c $dname 197
  window -h @.wallop
  loadbuf @.wallop script\wallop.dat
  %num = $line(@.wallop,0)
  :loop8
  did -a $dname $iif($mid(%`wallop.f,%num,1),200,201) $line(@.wallop,%num)
  if (%num > 1) { dec %num | goto loop8 }
  window -c @.wallop
  loadbuf -otwallop $dname 205 script\dlgtext.dat
  did -c $dname 205 $findtok(-ai2 -si2 @Wallop,%`wallop.win,1,32)

  ; remember and show last selected category (or allow selection via cmd line)
  if ($findtok(ch dc di fl mi no pe pr pi se sn ti wa wh,$left(%.optcateg,2),1,32)) _optcateg $gettok(1 2 3 4 5 6 7 7 8 9 9 10 11 12,$ifmatch,32)
  elseif ($_dlgi(cfg)) _optcateg $ifmatch
  else _optcateg 1

unset %.optcateg
}
alias -l _clickopt if ($did($did).state) did -e $dname $1 $+ , $+ $2 | else did -b $dname $1 $+ , $+ $2
on *:DIALOG:options:sclick:18:_bulkdid $iif($did(18).state,-e,-b) options 1 17
on *:DIALOG:options:sclick:88:_clickopt 89 91
on *:DIALOG:options:sclick:93:_clickopt 94 96
on *:DIALOG:options:sclick:98:_clickopt 99 101
on *:DIALOG:options:sclick:104:_clickopt 105 105
on *:DIALOG:options:sclick:107:_clickopt 108 110
on *:DIALOG:options:sclick:138:_clickopt 139 139
on *:DIALOG:options:sclick:141:_clickopt 142 142
on *:DIALOG:options:sclick:61:if ($did(61).sel == 3) did -e $dname 62,63 | else did -b $dname 62,63
on *:DIALOG:options:sclick:78:if ($did(78).sel == 3) did -e $dname 81,82 | else did -b $dname 81,82
on *:DIALOG:options:dclick:166:_dsmove 166 167
on *:DIALOG:options:dclick:167:_dsmove 167 166
on *:DIALOG:options:sclick:168:_dsmove 166 167
on *:DIALOG:options:sclick:169:_dsmove 167 166
on *:DIALOG:options:dclick:200:_dsmove 200 201
on *:DIALOG:options:dclick:201:_dsmove 201 200
on *:DIALOG:options:sclick:202:_dsmove 200 201
on *:DIALOG:options:sclick:203:_dsmove 201 200
alias -l _dsmove :loop | if ($did($1).sel) { did -a $dname $2 $did($1,$did($1).sel) | did -d $dname $1 $did($1).sel | goto loop }
on *:DIALOG:options:sclick:249:_optcateg $did(249).sel
alias -l _optcateg {
  if ($did(249).sel != $1) did -c $dname 249 $1
  var %range = $gettok(111-126 20-37 145-159 127-143 174-192 39-59 84-110 76-83 161-172 1-19 194-205 60-71,$1,32)
  if ($did(244) == %range) return
  if ($did(244)) _bulkdid -h $dname $replace($did(244),-,$chr(32))
  did -o $dname 244 1 %range
  _bulkdid -v $dname $replace($did(244),-,$chr(32))
}
on *:DIALOG:options:sclick:241:{
  ; save options
  `set title.bar $did(18).state
  if ($did(18).state == 0) titlebar
  var %opt,%dirty,%num = 1,%here,%away
  :loop1
  %here = %here $+ $did($calc(%num + $iif(%num > 4,0,1))).state
  %away = %away $+ $did($calc(%num + 9)).state
  if (%num < 8) { inc %num | goto loop1 }
  if (($_cfgi(title.here) != %here) || ($_cfgi(title.away) != %away)) {
    _cfgw title.here %here
    _cfgw title.away %away
    %!title = $_cfgi($iif(%!away,title.away,title.here))
    _broadcastp % $+ !title = $ $+ _cfgi($ $+ iif(% $+ !away,title.away,title.here))
  }

  %num = 1
  :loop2
  %opt = %opt $+ $calc($did($calc(%num + 27)).sel - 1)
  if (%num < 10) { inc %num | goto loop2 }
  `set dcc.opt %opt

  %num = 44
  %opt = 1
  :loop3
  _cfgw notify. $+ $gettok(match nocheck fail,%opt,32) $gettok(show ext hide,$did(%num).sel,32)
  _cfgw unotify. $+ $gettok(match nocheck fail,%opt,32) $gettok(show ext hide,$did($calc(%num + 1)).sel,32)
  _cfgw notifybeep. $+ $gettok(match nocheck fail,%opt,32) $did($calc(%num + 2)).state
  if (%num < 55) { inc %opt | inc %num 6 | goto loop3 }
  _cfgw unotify.part $did(40).state
  `set notify.win $gettok(-ai2 -si2 none off,$did(59).sel,32)

  `set whois.win $gettok(-ai2 -si2 @Whois *,$did(61).sel,32)
  _cfgw whois.focus $iif($did(63).state,front,$iif($did(62).state,min,norm))
  _cfgw whois.q $did(64).state
  _cfgw whois.retain $did(65).state
  _cfgw whois.serv $did(66).state
  _cfgw whois.sep $did(67).state
  `set whois.nick $iif($did(69).state,on,$iif($did(70).state,off,hide))

  `set ping.bulk $gettok(-ai2 -si2 @Ping * none,$did(78).sel,32)
  `set ping.one $gettok(-ai2 -si2 *,$did(80).sel,32)
  `set ping.focus $iif($did(82).state,front,$iif($did(81).state,min,norm))
  `set ping.retain $did(83).state
  `set show.pingcode $did(76).state

  `set myflood.prot $calc($did(86).state + $did(87).state * 2 + $did(84).state * 4)
  `set xchat.cfg $did(88).state $iif($did(89) isnum,$did(89),150) $iif($did(91) isnum,$did(91),3)
  _cfgw xquery.cfg  $did(93).state $iif($did(94) isnum,$did(94),10) $iif($did(96) isnum,$did(96),5)
  `set xnotice.cfg $did(98).state $iif($did(99) isnum,$did(99),50) $iif($did(101) isnum,$did(101),5)
  _cfgw verify.inv $did(103).state
  if ($did(104).state) _cfgw sptime $iif(($did(105) isnum) && ($did(105) >= 10),$did(105),20)
  else _cfgw sptime 0
  if ($did(107).state) { _cfgw spwarn1 $iif($did(108) isnum,$did(108),0) | _cfgw spwarn2 $iif($did(110) isnum,$did(110),0) }
  else { _cfgw spwarn1 0 | _cfgw spwarn2 0 }

  `set show.banned $did(111).state
  `set clone.join $did(112).state
  `set show.punish $did(113).state
  _cfgw tempban.time $did(116)
  _cfgw tempban.type $mid(1236789,$did(118).sel,1)
  `set ban.id $gettok(1 2 3 0,$did(120).sel,32)
  `set ban.dom $did(121).sel
  `set mask.id $gettok(1 2 3 0,$did(123).sel,32)
  `set mask.dom $did(124).sel
  `set delay.kicks $did(126).state

  %num = 132
  var %opt
  :loop6
  %opt = %opt $+ $did(%num).state
  if (%num < 137) { inc %num | goto loop6 }
  `set flash.opt %opt
  if (($did(138).state) && ($did(139)) && ($did(139) isnum)) _cfgw flash.here $did(139)
  else _cfgw flash.here 0
  if (($did(141).state) && ($did(142)) && ($did(142) isnum)) _cfgw flash.away $did(142)
  else _cfgw flash.away 0

  if ($gettok(-ai2 -si2,$did(146).sel,32) != $_cfgi(eroute)) { _cfgw eroute $ifmatch | %dirty = 1 }
  _cfgw show.names $calc($did(148).sel - 1)
  _cfgw motd.disp $gettok(on off changes,$did(150).sel,32)
  _cfgw motd.win $gettok(-si2 @MOTD,$did(152).sel,32)
  `set show.fkeys $did(153).state
  _cfgw format.time $did(155)
  _cfgw format.date $did(157)
  _cfgw format.datetime $did(159)

  `set snotice.on $did(163).state
  window -h @.snotice
  loadbuf @.snotice script\snotice.dat
  %opt = $str(0.,$line(@.snotice,0))
  %num = $did(166).lines
  :loop7
  if ($fline(@.snotice,$did(166,%num),1,0)) %opt = $puttok(%opt,y,$ifmatch,46)
  if (%num > 1) { dec %num | goto loop7 }
  window -c @.snotice
  `set snotice.f $remove(%opt,.)
  `set snotice.win $gettok(-ai2 -si2 @SNotice,$did(172).sel,32)

  `set nc.char $iif($left($did(175),1) !isletter,$gettok($did(175),1,32))
  `set nci.char $iif($left($did(191),1) !isletter,$gettok($did(191),1,32))
  `set nc.cmd $did(176).state
  _cfgw nc.askchan $did(177).state
  _cfgw nc.askcmd $did(178).state
  `set strip.auto $did(179).state
  _cfgw b.ban $did(181).state
  _cfgw recent.auto $did(185).state
  _cfgw reserve.fkey $iif($did(187).state,0,$iif($did(188).state,1,2))

  `set wallop.on $did(197).state
  window -h @.wallop
  loadbuf @.wallop script\wallop.dat
  %opt = $str(0.,$line(@.wallop,0))
  %num = $did(200).lines
  :loop8
  if ($fline(@.wallop,$did(200,%num),1,0)) %opt = $puttok(%opt,y,$ifmatch,46)
  if (%num > 1) { dec %num | goto loop8 }
  window -c @.wallop
  `set wallop.f $remove(%opt,.)
  `set wallop.win $gettok(-ai2 -si2 @Wallop,$did(205).sel,32)

  if (%dirty) { _upd.markup | _broadcastp _upd.markup }
  _dlgw cfg $did(249).sel

  _unload config
}
on *:DIALOG:options:sclick:242:_unload config
alias _config set %.optcateg $1 | _dialog -m options options