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.