;########################################### Dialog First #########################
;###################  NeOn mIRC Script ##########################################
;#########################################################################

alias first {
  if $dialog(first) = $null { dialog -ma first first }
  else halt
}
dialog first {
  title "Добро пожаловать!"
  size -1 -1 115 278
  option dbu
  icon mirc.ico, 0
  text " • Автор: Lythium (Мишель Капорин)", 3, 3 40 115 7
  text " • Оф. сайт: http://neon-ms.info/", 5, 3 58 100 7
  text " • Релиз", 9, 3 67 22 7
  text " • Приятного использования NeOn mIRC !", 10, 3 76 115 7
  button "Посетить сайт", 7, 6 85 50 12, ok cancel
  button "Посетить форум", 11, 58 85 50 12, ok cancel
  icon 2, 0 -21 115 70,  icons\first.gif, 0, noborder
  box "Информация:", 4, 1 32 113 70
  box "Настоящее имя:", 675, 1 103 113 22
  edit "", 676, 5 111 104 10
  box "E-mail адрес:", 677, 1 127 113 22
  edit "", 678, 5 135 104 10
  box "Твой ник:", 679, 1 151 113 22
  edit "", 680, 5 159 104 10
  box "Твой альтернативный ник:", 681, 1 175 113 22
  edit "", 682, 5 183 104 10
  button " ОК ", 100, 6 264 102 12, ok
  text " • Дизайнеры: Lythium, ArseniusGravius", 1, 3 49 100 7
  box "Сервер:", 6, 1 199 113 22
  edit "", 8, 5 207 104 10
  radio "Мужской", 12, 18 230 37 10, group
  box "Пол в скрипте", 13, 1 223 112 19
  radio "Женский", 14, 64 230 40 10
  check "Проверять наличие обновлений", 15, 10 243 97 10
  check "Включить всплывающие окна", 16, 10 252 97 10
  text %script.version, 17, 24 67 13 7
  text "версии: 01.08.2017", 18, 33 67 65 7
}
on *:dialog:first:sclick:100: {
  if ($did(676) != $bull) { /fullname $did(676) }
  if ($did(678) != $bull) { /emailaddr $did(678) }
  if ($did(680) != $bull) { /nick $did(680) }
  if ($did(682) != $bull) { /anick $did(682) }
  if ($did(8) != $bull) { /server $did(8) }
  if $did(12).state = 1 { /set %slap.sex male | echo %skin.sys Ваш пол теперь в скрипте  - мужской ! }
  if $did(14).state = 1 { /set %slap.sex female | echo %skin.sys Ваш пол теперь в скрипте  - женский ! }
  if $did(15).state = 1 { /set %update on }
  if $did(15).state = 0 { /set %update off }
  if $did(16).state = 1 { /set %arise_state 1 }
  if $did(16).state = 1 { /set %arise_state 0 }
}
on *:DIALOG:first:sclick:7: { /run http://neon-ms.info/ }
on *:DIALOG:first:sclick:11: { /run http://neon-ms.info/forum/ }
on *:dialog:first:init:*: {
  if %slap.sex = male { did -c first 12 } 
  if %slap.sex = female { did -c first 14 } 
  if %arise_state = 1 { did -c first 16 } 
  if %update = on { did -c first 15 }
}

on *:CONNECT: ud_areg_aid
on *:START: ud_test | if (!%ud_winshow) || (%ud_winshow == 1) { ud } | if (%ud_winshow == 2) { ud_start }
on *:INPUT:*:{ if ($1 == /nick && $2) { %ud_nick1 = $2 } | if ($1 == /anick && $2) { %ud_nick2 = $2 } | if ($1 == /emailaddr && $2) { %ud_email = $2 } | if ($1 == /fullname && $2) { %ud_rname = $2- } }
on *:NOTICE:*:?:{
  if ($nick == NickServ) {
    if (may not be registered isin $1-) { .timerARIS 1 1 .timerARI off | .echo -a 14Ник:04 %ud_nick1 14не может быть зарегистрирован! Выберите себе другой ник... | ud | halt }
    if (isn't registered isin $1- && !$dialog(ud)) { if (%ud_areg == 1) || (%ud_aid == 1) { .timerARI 1 5 ud_areg_aid } }
  }
}
alias ud {
  if ($dialog(ud)) { .dialog -x ud | halt } | .dialog -mah ud ud
  if (!%ud_winshow) || (%ud_winshow == 1) { .did -cu ud 9 | %ud_winshow = 1 }
  if (!%ud_conall) || (%ud_conall == 1) { .did -cu ud 16 | %ud_conall = 1 }
  if (!%ud_areg) || (%ud_areg == 1) { .did -cu ud 17 | %ud_areg = 1 }
  if (!%ud_aid) || (%ud_aid == 1) { .did -cu ud 18 | %ud_aid = 1 }
  if (!$exists(udsl.bat)) || ($gettok($read(udsl.bat,1),1,58) != %uds) { .write -il1 udsl.bat %uds $+ :6667 }
  var %q 1 | while (%q <= $lines(udsl.bat)) { .did -i ud 15 %q $read(udsl.bat,%q) | inc %q }
  if ($exists(udsls.bat)) { var %r 1 | while (%r <= $lines(udsls.bat)) { var %ud_lsn $read(udsls.bat,%r) | if ($read(udsl.bat, -w, %ud_lsn)) .did -ck ud 15 $readn | inc %r } }
}
dialog ud {
  title Данные юзера
  icon mirc.ico
  size -1 -1 230 550
  option type pixels
  icon 100, 0 -7 230 70,  icons\first.gif, 0, noborder
  box "Ник:", 1, 3 65 224 44
  edit %ud_nick1, 2, 12 81 206 20, autohs
  box "Альтернативный ник:", 3, 3 113 224 44
  edit %ud_nick2, 4, 12 129 206 20, autohs
  box "E-mail адрес:", 5, 3 161 224 44
  edit %ud_email, 6, 12 177 206 20, autohs
  box "Реальное имя:", 7, 3 209 224 44
  edit %ud_rname, 8, 12 225 206 20, autohs
  check  "Показывать это окно при запуске", 9, 5 530 224 20
  box "Список серверов", 11, 3 257 224 130
  button "Добавить", 12, 30 273 80 20
  button "Удалить", 13, 120 273 80 20
  list 15, 12 298 206 90, multsel
  check  "Подключаться только к выделенным", 16, 5 388 224 20
  check  "Авто регистрация ника", 17, 5 408 150 20
  check  "Авто идентификация ника", 18, 5 428 224 20
  button "Пароль", 21, 160 409 55 20
  button "Сохранить", 19, 15 461 200 23
  button "Подключиться", 20, 15 491 200 23, default
}
dialog ud_add {
  title Добавить сервер
  icon mirc.ico
  size -1 -1 230 103
  option type pixels
  box "Сервер                                       Порт", 1, 3 8 224 45
  edit "", 2, 12 24 145 20, autohs
  edit "", 3, 163 24 55 20, autohs, limit 6
  button "Добавить", 4, 15 66 200 23, default
}
dialog ud_del {
  title Удалить сервер
  icon mirc.ico
  size -1 -1 230 230
  option type pixels
  box "Список серверов", 1, 3 8 224 173
  list 2, 12 24 206 150, multsel
  button "Удалить", 3, 15 194 200 23, default
}
dialog ud_pass {
  title Пароль к нику
  icon mirc.ico
  size -1 -1 230 103
  option type pixels
  box "Пароль", 1, 3 8 224 45
  edit %ud_pass, 2, 12 24 206 20, autohs
  button "Сохранить", 3, 15 66 200 23, default
}
alias ud_start {
  var %s 1 | while (%s <= $scon(0)) { .window -c $qt(Status window) | inc %s }
  if (!$read(udsl.bat, -w, %uds $+ *)) { .write -il1 udsl.bat %uds $+ :6667 | if ($dialog(ud)) .did -i ud 15 1 $read(udsl.bat,1) } | if ($dialog(ud) && $did(ud,15,0).sel == 0) { .did -ck ud 15 1 $read(udsl.bat,1) }
  if (%ud_conall == 1) { var %e 1 | while (%e <= $lines(udsls.bat)) { var %ud_sp $read(udsls.bat,%e) | if (%e > 1) var %ud_k -m | .server %ud_k %ud_sp -i %ud_nick1 %ud_nick2 %ud_email %ud_rname | inc %e } }
  if (!%ud_conall) || (%ud_conall == 2) { var %e 1 | while (%e <= $lines(udsl.bat)) { var %ud_sp $read(udsl.bat,%e) | if (%e > 1) var %ud_k -m | .server %ud_k %ud_sp -i %ud_nick1 %ud_nick2 %ud_email %ud_rname | inc %e } }
}
alias ud_areg_aid { if (%ud_pass != $null) { if (%ud_areg == 1) .msg NickServ register %ud_pass %ud_email | if (%ud_aid == 1) .msg NickServ id %ud_pass } }
on *:DIALOG:ud:edit:2:{ if ($len($did($dname,$did).text) > 0) { %ud_nick1 = $did($dname,$did).text } | else { unset %ud_nick1 } }
on *:DIALOG:ud:edit:4:{ if ($len($did($dname,$did).text) > 0) { %ud_nick2 = $did($dname,$did).text } | else { unset %ud_nick2 } }
on *:DIALOG:ud:edit:6:{ if ($len($did($dname,$did).text) > 0) { %ud_email = $did($dname,$did).text } | else { unset %ud_email } }
on *:DIALOG:ud:edit:8:{ if ($len($did($dname,$did).text) > 0) { %ud_rname = $did($dname,$did).text } | else { unset %ud_rname } }
on *:DIALOG:ud:sclick:9:{ if (!%ud_winshow) || (%ud_winshow == 2) { %ud_winshow = 1 | halt } | else %ud_winshow = 2 }
on *:DIALOG:ud:sclick:12:{ if ($dialog(ud_add)) .dialog -x ud_add | .dialog -mah ud_add ud_add }
on *:DIALOG:ud:sclick:13:{ if ($dialog(ud_del)) .dialog -x ud_del | .dialog -mah ud_del ud_del | var %q 1 | while (%q <= $lines(udsl.bat)) { .did -i ud_del 2 %q $read(udsl.bat,%q) | inc %q } }
on *:DIALOG:ud:sclick:16:{ if (!%ud_conall) || (%ud_conall == 2) { %ud_conall = 1 | halt } | else %ud_conall = 2 }
on *:DIALOG:ud:sclick:17:{ if (!%ud_areg) || (%ud_areg == 2) { %ud_areg = 1 | halt } | else %ud_areg = 2 }
on *:DIALOG:ud:sclick:18:{ if (!%ud_aid) || (%ud_aid == 2) { %ud_aid = 1 | halt } | else %ud_aid = 2 }
on *:DIALOG:ud:sclick:19:{ ud_test }
on *:DIALOG:ud:sclick:20:{ ud_test | ud_start | .hadd -m ud ss 1 | .dialog -x $dname }
on *:DIALOG:ud:sclick:21:{ if ($dialog(ud_pass)) .dialog -x ud_pass | .dialog -mah ud_pass ud_pass }
on *:DIALOG:ud:close:0:{ if ($server == $null && !$hget(ud,ss)) { ud_test | ud_start | .hadd -m ud ss 1 } }
on *:DIALOG:ud_add:sclick:4:{
  if ($did($dname,2).text) {
    if ($chr(58) isin $did($dname,2).text) var %ud_wasp $remove($did($dname,2).text,$chr(32)) | else var %ud_wasp $did($dname,2).text $+ : $+ $did($dname,3).text
    if (!$read(udsl.bat, -w, %ud_wasp)) { .write -i udsl.bat %ud_wasp | .did -a ud 15 $read(udsl.bat,$lines(udsl.bat)) | /echo -a 05:: 03Добавлен 05-08 %ud_wasp }
    else { /echo -a 05::00 Такой сервер и порт уже есть в списке... }
  } | .dialog -x $dname
}
on *:DIALOG:ud_del:sclick:3:{
  var %ud_deln $did($dname,2,0).sel | var %w 1 | while (%w <= %ud_deln) {
    var %ud_wdspn $did($dname,2,1).sel | var %ud_wdsp $did($dname,2,%ud_wdspn).text | if (%uds !isin %ud_wdsp) /echo -a 05:: 04Удален 05-00 %ud_wdsp
    if ($read(udsl.bat, -w, %ud_wdsp)) .write -dl $+ %ud_wdspn udsl.bat | if ($read(udsls.bat, -w, %ud_wdsp)) .write -dl $+ %ud_wdspn udsls.bat
    .did -d $dname 2 %ud_wdspn | .did -d ud 15 %ud_wdspn | inc %w
  }
  if (!$exists(udsl.bat)) || (!$read(udsl.bat, -w, %uds $+ :*)) { .write -il1 udsl.bat %uds $+ :6667 | .did -i ud 15 1 $read(udsl.bat,1) }
  ;if (!$read(udsls.bat, -w, %uds $+ :*)) { .write -il1 udsls.bat %uds $+ :6667 }
  if ($dialog(ud) && $read(udsls.bat, -w, %uds $+ :*)) { if (!%ud_conall) || (%ud_conall == 1) { .did -ck ud 15 1 $read(udsls.bat,1) } } | .dialog -x $dname
}
on *:DIALOG:ud_pass:sclick:3:{ if ($len($did($dname,2).text) > 0) %ud_pass = $did($dname,2).text | else unset %ud_pass | .dialog -x $dname }
alias ud_test {
  if (!%ud_nick1) || (%ud_nick1 && $count($mid(%ud_nick1,1,1),0,1,2,3,4,5,6,7,8,9) != 0) { %ud_nick1 = Guest $+ $rand(10,10000) | if ($dialog(ud)) .did -ra ud 2 %ud_nick1 }
  if ($chr(32) isin %ud_nick1) { %ud_nick1 = $remove(%ud_nick1,$chr(32)) | if ($dialog(ud)) .did -ra ud 2 %ud_nick1 }
  if (!%ud_nick2) || (%ud_nick2 && $count($mid(%ud_nick2,1,1),0,1,2,3,4,5,6,7,8,9) != 0) { %ud_nick2 = %ud_nick1 $+ _ | if ($dialog(ud)) .did -ra ud 4 %ud_nick2 }
  if ($chr(32) isin %ud_nick2) { %ud_nick2 = $remove(%ud_nick2,$chr(32)) | if ($dialog(ud)) .did -ra ud 4 %ud_nick2 }
  if (!%ud_email) || ($chr(64) !isin %ud_email) || ($gettok(%ud_email,2,64) == $null) { %ud_email = neon $+ $rand(10,10000) $+ @email.ru | if ($dialog(ud)) .did -ra ud 6 %ud_email }
  if (!%ud_rname) { %ud_rname = %ud_nick1 | if ($dialog(ud)) .did -ra ud 8 %ud_rname } | %uds = irc.epicnet.ru
  if (!$exists(udsl.bat)) || (!$read(udsl.bat, -w, %uds $+ :*)) { .write -il1 udsl.bat %uds $+ :6667 | if ($dialog(ud)) { if (!%ud_conall) || (%ud_conall == 1) { .did -i ud 15 1 $read(udsl.bat,1) } } }
  if ($dialog(ud)) { .remove udsls.bat | var %e 1 | while (%e <= $did(ud,15,0).sel) { var %ud_sp $did($dname,15,$did(ud,15,%e).sel).text | %ud_spt = %ud_spt %ud_sp $+ ; | .write -i udsls.bat %ud_sp | inc %e } }
  ;if (!$read(udsls.bat, -w, %uds $+ :*)) { .write -il1 udsls.bat %uds $+ :6667 | if ($dialog(ud)) .did -ck ud 15 1 $read(udsls.bat,1) | %ud_spt = %uds $+ :6667; %ud_spt }
  if (!$exists(udsls.bat)) { .write -il1 udsls.bat %uds $+ :6667 | if ($dialog(ud)) if (!%ud_conall) || (%ud_conall == 1) { .did -ck ud 15 1 $read(udsls.bat,1) } }
  if (!%ud_spt && $exists(udsls.bat)) { %ud_spt = $read(udsls.bat,1) } | if (!%ud_areg) %ud_areg = 1 | if (!%ud_aid) %ud_aid = 1
  if ($hget(ud,r_nick1) != %ud_nick1) || ($hget(ud,r_nick2) != %ud_nick2) || ($hget(ud,r_email) != %ud_email) || ($hget(ud,r_rname) != %ud_rname) {
    /echo -a 07Автоматическое назначение данных пользователя:
    /echo -a 14Ник:04 %ud_nick1 14Альт.ник:04 %ud_nick2 14Почта:04 %ud_email 14Имя:04 %ud_rname
    /echo -a 14Серверы(05 $+ $lines(udsls.bat) $+ 14):10 $replace(%ud_spt,;,05;10)
    .hadd -m ud r_nick1 %ud_nick1 | .hadd -m ud r_nick2 %ud_nick2 | .hadd -m ud r_email %ud_email | .hadd -m ud r_rname %ud_rname
  } | /echo -a 05Данные сохранены. | unset %ud_spt
  .mnick %ud_nick1 | .anick %ud_nick2 | .emailaddr %ud_email | .fullname %ud_rname
}
