Pacifik multiserver autojoin 1.2b

Contenu du snippet

c'est une partie de mon script (http://pacifik.dabug.com)
il permet de ce connecter a plusieur serveur avec chan différent pour ces serveurs

Source / Exemple :


alias joinall msaj_joinall 
alias dlg { var %dlg = $$1 $+ .dlg | if ($dialog(%dlg) == $null) { dialog -domr %dlg %dlg } } 
alias -l dlg_p { var %dlg = $$1 $+ .dlg | if ($dialog(%dlg) == $null) { dialog -amrov %dlg %dlg } } 
alias -l dlg_close { dialog -x $dname $dname } 
alias -l msaj_save { hsave -bo msaj_data pacifiKdata } 
alias -l msaj_load { if ($hget(msaj_data) != msaj_data) { hmake msaj_data 1 } | if ($exists(pacifiKdata) == $true) { hload -b msaj_data pacifiKdata } } 
alias -l msaj_err { $dlg_p(msaj_err) } 
alias -l msaj_errmsg { did -ra msaj_err.dlg 1 $$1- } 
alias -l msaj_hget { return $hget(msaj_data,$$1) } 
alias -l msaj_hgetitem { return $hget(msaj_data,$$1).item } 
alias -l msaj_hgetsize { return $hget(msaj_data,$$1).size } 
alias -l msaj_connect { server $$1 $2 $3 -j $4- } 
alias -l msaj_connectm { server -m $$1 $2 $3 -j $4- } 
alias -l msaj_closeall { scon -a partall | scon -at1 quit | scon -a window -c "Status Window" } 
alias -l msaj_delist { var %i = $did(msaj.dlg,$$1).lines | while (%i != 0) { did -r msaj.dlg $$1 %i | dec %i } } 
alias -l msaj_refresh_srvlist { var %i = $msaj_hgetitem(0) | while (%i != 0) { if (.msaj !isin $msaj_hgetitem(%i)) { did -a msaj.dlg 2 $msaj_hgetitem(%i) } | dec %i } } 
alias -l msaj_refresh_chanlist { var %temp = $did(msaj.dlg,2).seltext $+ .msajchan, %list.chan, %i | %list.chan = $msaj_hget(%temp) | %i = $numtok(%list.chan,44) | while (%i != 0) { did -a msaj.dlg 7 $gettok(%list.chan,%i,44) | dec %i } } 

alias -l msaj_joinall {
  var %first = 1, %i = $msaj_hgetitem(0), %srv, %srv.activ, %port, %passwd, %chan
  while (%i != 0) {
    %srv = $msaj_hgetitem(%i)
    %port = %srv $+ .msajport
    %port = $msaj_hget(%port)
    %passwd = %srv $+ .msajpasswd
    %passwd = $msaj_hget(%passwd)
    %chan = %srv $+ .msajchan
    %chan = $msaj_hget(%chan)
    if (.msaj !isin %srv) {
      %srv.activ = $msaj_hget(%srv)
      if (%srv.activ == 1 && %first == 1) {
        $msaj_connect(%srv,%port,%passwd,%chan)
        %first = 0
      }
      elseif (%srv.activ == 1) {
        $msaj_connectm(%srv,%port,%passwd,%chan)
      }
    }
    dec %i
  }
}

menu menubar,status,channel,query { 
Multi-Serveur Auto-Join
.Dialog:/dlg msaj 
} 
on *:load:{ msaj_load } 
on *:start:{ msaj_load | msaj_closeall | msaj_joinall } 
dialog msaj.dlg { 
  title "PacifiK MSAJ v1.2b" 
  size -1 -1 230 280 
  option pixels 
  box "Liste des serveurs", 1, 10 10 210 80 
  combo 2, 20 30 190 160, sort size drop 
  button "+", 3, 150 60 20 20 
  button "-", 4, 180 60 20 20 
  check "Activer l'autojoin", 5, 20 60 110 20 
  box "Liste des channels", 6, 10 100 210 140 
  list 7, 20 120 160 110, sort size vsbar 
  button "+", 8, 190 120 20 20 
  button "-", 9, 190 150 20 20 
  button "&Quitter", 100, 80 250 80 25, default cancel 
} 
on *:dialog:msaj.dlg:init:*: { msaj_refresh_srvlist } 
on *:dialog:msaj.dlg:sclick:*: { 
  if ($did == 2) { $msaj_delist(7) | msaj_refresh_chanlist | var %srv = $did($dname,2).seltext | if ($msaj_hget(%srv) == 1) { did -c $dname 5 } | else { did -u $dname 5 } } 
  if ($did == 3) { dlg_p msaj.addsrv } 
  if ($did == 4) { if ($did($dname,2).seltext) { var %srv = $did($dname,2).seltext $+ * | hdel -w msaj_data %srv | $msaj_delist(2) | msaj_refresh_srvlist | $msaj_delist(7) | did -u msaj.dlg 5 | msaj_save } | else { msaj_err | $msaj_errmsg(Tu dois sélectionner un serveur) } } 
  if ($did == 5) { if ($did($dname,2).seltext) { var %srv = $did($dname,2).seltext, %state | %state = $did($dname,5).state | hadd msaj_data %srv %state | msaj_save } | else { msaj_err | $msaj_errmsg(Tu dois sélectionner un serveur) } } 
  if ($did == 8) { if ($did($dname,2).seltext) { dlg_p msaj.addchan } | else { msaj_err | $msaj_errmsg(Tu dois sélectionner un serveur) } } 
  if ($did == 9) { if ($did(msaj.dlg,7).sel) { var %chan = $did($dname,7).seltext, %srv, %list.chan, %pos, %new.list | %srv = $did($dname,2).seltext $+ .msajchan | %list.chan = $msaj_hget(%srv) | %pos = $findtok(%list.chan,%chan,1,44) | %new.list = $deltok(%list.chan,%pos,44) | hdel msaj_data %srv | hadd msaj_data %srv %new.list | did -d msaj.dlg 7 $did($dname,7,1).sel | msaj_save } | else { msaj_err | $msaj_errmsg(Tu dois sélectionner un channel) } } 
  if ($did == 99) { msaj_closeall | msaj_joinall | dlg_close } 
} 
dialog msaj.addsrv.dlg { 
  title "PacifiK MSAJ v1.2b" 
  size -1 -1 260 170 
  option pixels 
  text "Nom du serveur : ", 1, 25 10 90 16, right 
  edit "", 2, 125 8 100 21, autohs center 
  text "Port : ", 3, 25 40 90 16, right 
  edit "6667", 4, 125 38 100 21, autohs center 
  text "Mot de passe : ", 5, 25 70 90 16, right 
  edit "", 6, 125 66 100 21, pass autohs center 
  check "Activer l'auto-join pour ce serveur", 7, 35 100 190 20 
  button "&Ajouter", 98, 45 135 75 25, default 
  button "A&nnuler", 99, 125 135 75 25, cancel 
} 
on *:dialog:msaj.addsrv.dlg:sclick:98 { if ($did($dname,2).text && $did($dname,4).text) { var %nom.srv = $did($dname,2).text, %activ.srv | if ($did($dname,7).state == 0) { %activ.srv = 0 } | else { %activ.srv = 1 } | hadd -m msaj_data %nom.srv %activ.srv | hadd -m msaj_data %nom.srv $+ .msajport $did(msaj.addsrv.dlg,4).text | if ($did($dname,6).text) { hadd -m msaj_data %nom.srv $+ .msajpasswd $did(msaj.addsrv.dlg,6).text } | $msaj_delist(2) | $msaj_delist(7) | msaj_refresh_srvlist | msaj_save | dlg_close } | else { msaj_err | $msaj_errmsg(Tu dois entrer le nom d'un chan et un port) } } 
dialog msaj.addchan.dlg { 
  title "PacifiK MSAJ v1.2b" 
  size -1 -1 260 110 
  option pixels 
  text "Nom du cahnnel : ", 1, 25 10 90 16, right 
  edit "", 2, 125 8 100 21, autohs center 
  text "Mot de passe : ", 3, 25 40 90 16, disable right 
  edit "", 4, 125 38 100 21, disable autohs center 
  button "&Ajouter", 98, 45 75 75 25, default 
  button "A&nnuler", 99, 125 75 75 25, cancel 
} 
on *:dialog:msaj.addchan.dlg:sclick:98: { var %srv = $did(msaj.dlg,2).seltext, %chan, %temp, %list.chan | if ($did($dname,2).text) { %chan = $did($dname,2).text | if ($left(%chan,1) != $chr(35)) { %chan = $chr(35) $+ %chan } | %temp = %srv $+ .msajchan | %list.chan = $msaj_hget(%temp) | %list.chan = $addtok(%list.chan,%chan,44) | hadd -m msaj_data %temp %list.chan | $msaj_delist(7) | msaj_refresh_chanlist | msaj_save | dlg_close } | else { msaj_err | $msaj_errmsg(Tu dois entrer un chan) } } 
dialog msaj_err.dlg { 
  title "PacifiK MSAJ Error" 
  size -1 -1 240 70 
  option pixels 
  text "", 1, 10 10 222 16, center 
  button "&OK", 99, 80 40 75 25, default cancel 
}

Conclusion :


suffit de faire /load -rs chemin_du_script/msaj.mrc
ce script utilise le "base de donnée" mIRC et créé un fichier pacifikdata a la racine du rep d'install de mIRC
Je n'ai pas trouvé de bug, la gestion des mot de passe pour les chan et srv n'est pas encore géré

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.