Pacifik multiserver autojoin 1.2b

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 524 fois - Téléchargée 25 fois

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é

A voir également

Ajouter un commentaire

Commentaires

Messages postés
5
Date d'inscription
samedi 29 septembre 2007
Statut
Membre
Dernière intervention
18 juillet 2010

Ca marche bien , merci :))
Messages postés
43
Date d'inscription
samedi 16 octobre 2004
Statut
Membre
Dernière intervention
14 août 2005

moi j compren rien au code ms c bo visuellement ms assé simple
Messages postés
23
Date d'inscription
dimanche 8 août 2004
Statut
Membre
Dernière intervention
9 juin 2005

il marche bien merci du service :)
Messages postés
14
Date d'inscription
dimanche 29 août 2004
Statut
Membre
Dernière intervention
29 août 2004

ses cool mais il ne join pas les channel lorsque il y à une reconnection à un autre serveur ou d'une reconnection simple
Messages postés
4
Date d'inscription
mercredi 18 juin 2003
Statut
Membre
Dernière intervention
19 octobre 2003

pas mal du tout il manque juste une option qui fait que l'on peut choisir un nick specifique pour chaque serveur sinon c tres bien
Afficher les 9 commentaires

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.