Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

AUTO JOIN MULTI-SERVEUR


Information sur la source

Catégorie :AddOns Niveau : Débutant Date de création : 18/12/2004 Date de mise à jour : 09/05/2005 07:24:19 Vu : 4 821

Note :
6,6 / 10 - par 5 personnes
6,60 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Voici un auto-join très simple d'utilisation.

Caractéristiques :

- Fonctionne a partir du $network
- Channels stockés en hash-table
- Dialog pas encombrant et assez simple d'utilisation
- Petite aide intégrée
 

Source

  • dialog autojoin {
  • title "Auto Join v1.3 Par MaX_62"
  • size -1 -1 161 104
  • option dbu
  • text "Liste des serveurs :", 1, 6 8 49 8
  • list 2, 5 17 71 54, size vsbar
  • button "Ajouter", 3, 8 72 30 12
  • text "Liste des channels :", 4, 86 8 49 8
  • list 5, 85 17 71 54, size vsbar
  • box "Serveurs", 6, 2 1 77 86
  • box "Channels", 7, 82 1 77 86
  • button "Effacer", 8, 42 72 30 12
  • button "Ajouter", 9, 88 72 30 12
  • button "Effacer", 10, 122 72 30 12
  • button "Fermer", 11, 78 90 37 12, cancel
  • button "Aide", 12, 117 90 37 12
  • check "Activer l'autojoin", 13, 12 90 50 12
  • }
  • dialog -l add.serv {
  • title "Ajouter un serveur"
  • size -1 -1 89 36
  • option dbu
  • text "Network :", 1, 5 6 25 8
  • edit "", 2, 31 5 52 10, autohs
  • button "Ajouter", 3, 26 19 37 12, ok cancel
  • }
  • dialog -l add.chan {
  • title "Ajouter un channel"
  • size -1 -1 89 36
  • option dbu
  • text "Channel :", 1, 5 6 25 8
  • edit "", 2, 31 5 52 10, autohs
  • button "Ajouter", 3, 26 19 37 12, ok cancel
  • }
  • dialog -l help.autojoin {
  • title "Auto Join Par MaX_62 ~ Aide"
  • size -1 -1 130 69
  • option dbu
  • text "Cette add-on vous permettra de joindre les channels que vous souhaitez, dans le(s) serveurs que vous aurez spécifié.", 1, 3 3 125 22
  • text "Pour connaître le network tapez //echo -a $network dans le serveur souhaité.", 2, 3 27 125 16
  • text "Bon t'chat !", 3, 3 45 31 8
  • button "Fermer", 4, 44 54 37 12, cancel
  • }
  • on *:DIALOG:*:*:*:{
  • if ($dname == autojoin) {
  • if ($devent == init) {
  • refresh.list.serv
  • if (%etat.autojoin == on) { did -c autojoin 13 }
  • }
  • elseif ($devent == sclick) {
  • if ($did == 2) { set %actuserv $did(autojoin,2).seltext | lister.channels }
  • elseif ($did == 3) { dialog $+(-,$iif($dialog(add.serv),v,m)) add.serv add.serv }
  • elseif ($did == 8 && $did(autojoin,2).seltext) { hdel autojoin $ifmatch | refresh.list.serv }
  • elseif ($did == 9) { dialog $+(-,$iif($dialog(add.chan),v,m)) add.chan add.chan }
  • elseif ($did == 10 && $did(autojoin,5).sel) { hadd autojoin %actuserv $deltok($hget(autojoin,%actuserv),$ifmatch,32) | refresh.list.serv }
  • elseif ($did == 12) { dialog $+(-,$iif($dialog(help.autojoin),v,m)) help.autojoin help.autojoin }
  • elseif ($did == 13) { set %etat.autojoin $iif($did(autojoin,13).state,on,off) }
  • }
  • }
  • elseif ($dname == add.serv && $devent == sclick && $did == 3 && $did(add.serv,2)) {
  • if (!$hfind(autojoin,$ifmatch)) { hadd autojoin $did(add.serv,2) | hsave autojoin autojoin | refresh.list.serv }
  • else { echo -a [AutoJoin] Ce serveur est déjà dans la liste }
  • }
  • elseif ($dname == add.chan && $devent == sclick && $did == 3 && $did(add.chan,2)) {
  • hadd autojoin %actuserv $addtok($hget(autojoin,%actuserv),$ifmatch,32)
  • hsave autojoin autojoin
  • refresh.list.serv
  • }
  • }
  • on *:START:{
  • hmake autojoin
  • $iif($exists(autojoin),hload,hsave) autojoin autojoin
  • }
  • on *:CONNECT:{
  • if (%etat.autojoin == on && $hget(autojoin,$network)) {
  • var %a 1
  • while ($gettok($hget(autojoin,$network),%a,32)) { join $ifmatch | inc %a }
  • }
  • }
  • on *:LOAD:{
  • echo -a [AutoJoin] v1.3 par MaX_62 chargé ! Utilisation : /autojoin
  • set %etat.autojoin on
  • }
  • alias -l refresh.list.serv {
  • did -r autojoin 2,5
  • var %a 1
  • while ($hget(autojoin,%a).item) { did -a autojoin 2 $ifmatch | inc %a }
  • }
  • alias -l lister.channels {
  • did -r autojoin 5
  • var %a 1
  • while ($gettok($hget(autojoin,%actuserv),%a,32)) { did -a autojoin 5 $ifmatch | inc %a }
  • }
  • alias autojoin dialog $+(-,$iif($dialog(autojoin),v,m)) autojoin autojoin
dialog autojoin {
  title "Auto Join v1.3 Par MaX_62"
  size -1 -1 161 104
  option dbu
  text "Liste des serveurs :", 1, 6 8 49 8
  list 2, 5 17 71 54, size vsbar
  button "Ajouter", 3, 8 72 30 12
  text "Liste des channels :", 4, 86 8 49 8
  list 5, 85 17 71 54, size vsbar
  box "Serveurs", 6, 2 1 77 86
  box "Channels", 7, 82 1 77 86
  button "Effacer", 8, 42 72 30 12
  button "Ajouter", 9, 88 72 30 12
  button "Effacer", 10, 122 72 30 12
  button "Fermer", 11, 78 90 37 12, cancel
  button "Aide", 12, 117 90 37 12
  check "Activer l'autojoin", 13, 12 90 50 12
}
dialog -l add.serv {
  title "Ajouter un serveur"
  size -1 -1 89 36
  option dbu
  text "Network :", 1, 5 6 25 8
  edit "", 2, 31 5 52 10, autohs
  button "Ajouter", 3, 26 19 37 12, ok cancel
}
dialog -l add.chan {
  title "Ajouter un channel"
  size -1 -1 89 36
  option dbu
  text "Channel :", 1, 5 6 25 8
  edit "", 2, 31 5 52 10, autohs
  button "Ajouter", 3, 26 19 37 12, ok cancel
}
dialog -l help.autojoin {
  title "Auto Join Par MaX_62 ~ Aide"
  size -1 -1 130 69
  option dbu
  text "Cette add-on vous permettra de joindre les channels que vous souhaitez, dans le(s) serveurs que vous aurez spécifié.", 1, 3 3 125 22
  text "Pour connaître le network tapez //echo -a $network dans le serveur souhaité.", 2, 3 27 125 16
  text "Bon t'chat !", 3, 3 45 31 8
  button "Fermer", 4, 44 54 37 12, cancel
}
on *:DIALOG:*:*:*:{
  if ($dname == autojoin) {
    if ($devent == init) {
      refresh.list.serv 
      if (%etat.autojoin == on) { did -c autojoin 13 } 
    }
    elseif ($devent == sclick) {
      if ($did == 2) { set %actuserv $did(autojoin,2).seltext | lister.channels }
      elseif ($did == 3) { dialog $+(-,$iif($dialog(add.serv),v,m)) add.serv add.serv }
      elseif ($did == 8 && $did(autojoin,2).seltext) { hdel autojoin $ifmatch | refresh.list.serv }
      elseif ($did == 9) { dialog $+(-,$iif($dialog(add.chan),v,m)) add.chan add.chan }
      elseif ($did == 10 && $did(autojoin,5).sel) { hadd autojoin %actuserv $deltok($hget(autojoin,%actuserv),$ifmatch,32) | refresh.list.serv }
      elseif ($did == 12) { dialog $+(-,$iif($dialog(help.autojoin),v,m)) help.autojoin help.autojoin }
      elseif ($did == 13) { set %etat.autojoin $iif($did(autojoin,13).state,on,off) }
    }
  }
  elseif ($dname == add.serv && $devent == sclick && $did == 3 && $did(add.serv,2)) {
    if (!$hfind(autojoin,$ifmatch)) { hadd autojoin $did(add.serv,2) | hsave autojoin autojoin | refresh.list.serv }
    else { echo -a [AutoJoin] Ce serveur est déjà dans la liste }
  }
  elseif ($dname == add.chan && $devent == sclick && $did == 3 && $did(add.chan,2)) {
    hadd autojoin %actuserv $addtok($hget(autojoin,%actuserv),$ifmatch,32)
    hsave autojoin autojoin
    refresh.list.serv
  }
}
on *:START:{
  hmake autojoin
  $iif($exists(autojoin),hload,hsave) autojoin autojoin
}
on *:CONNECT:{
  if (%etat.autojoin == on && $hget(autojoin,$network)) {
    var %a 1
    while ($gettok($hget(autojoin,$network),%a,32)) { join $ifmatch | inc %a }
  }
}
on *:LOAD:{ 
  echo -a [AutoJoin] v1.3 par MaX_62 chargé ! Utilisation : /autojoin
  set %etat.autojoin on
}

alias -l refresh.list.serv {
  did -r autojoin 2,5
  var %a 1
  while ($hget(autojoin,%a).item) { did -a autojoin 2 $ifmatch | inc %a }
}
alias -l lister.channels {
  did -r autojoin 5
  var %a 1
  while ($gettok($hget(autojoin,%actuserv),%a,32)) { did -a autojoin 5 $ifmatch | inc %a }
}
alias autojoin dialog $+(-,$iif($dialog(autojoin),v,m)) autojoin autojoin

Conclusion

Voila, c'est rien de compliqué, mais assez utile.
Si vous remarquez des bugs ou défauts, merci de me les dire :p

MaX_62
 

Historique

18 décembre 2004 22:16:12 :
Version 1.1 : - Redimensionnement du dialog.
20 décembre 2004 17:12:35 :
Version 1.2 Correction d'un bug au niveau du chargement de la hash table.
26 mars 2005 16:12:30 :
- Version 1.3 grosse mise a jour, optimisation oblige :P
09 mai 2005 07:24:19 :
- Alias et dialogs en local

Commentaires et avis

signaler à un administrateur
Commentaire de J4Gu4R le 18/12/2004 17:52:10

utilisation des hashtable
utilisation simple de la boite de dialog
t'a penser à intégrer une aide
code propre à première vue

par contre j'aime pas trop les dialog avec trop de vide moi je l'aurai plutot réduit (la ligne du "check", l'aide les bordure)voir même utliliser "les tab"
un peu de couleur mais sobre ça peut etre plus attractif
(mais bon tout ça c'est une question de gout)

j'ai pas pris le temps de regarder en détaille si ya des erreurs ou beugue mais ça me plait bien :))

bonne continuation...

-J4Gu4R-

signaler à un administrateur
Commentaire de neo66 le 18/12/2004 19:19:03

Coter positif:
- Hash Table
- Faciliter d'utilisation
- Pas de bug (du moin j'en est pas vu)

Coter negatif:
- comme la dit j4gu4r, moi non plus j'aime pas trop le vide dans les dialogs.


Sinon sa va, j'aime bien toutes les sources où il y a des Hash...
coter utiliter pour moi, mon:
on *:connect:{
  if ($network == server) {
     join #chan1,#chan2,#chan3,#chan4
     msg .. login pass
     }
else if ($network == server2) {
     join #chan1,#chan2,#chan3,#chan4
     msg .. login pass
     }
}

Voilou :P
mais le mien na pas de dialog :]

Bonne continuation

signaler à un administrateur
Commentaire de Asthar le 18/12/2004 20:37:56

Trop de perte dans le dialog, pas de +k =/
Sinon le code est propre =)

signaler à un administrateur
Commentaire de COOLMAN002 le 18/12/2004 20:45:33

~~ AUTO JOIN V1 BY MAX_62 ~~
Chargement réussi !

* /hload: unable to open 'C:\PROGRAM FILES\BOT_6.03\autojoin' (line 94, script5.mrc)

<< Quand j'ai load.

* /hsave: unable to open 'C:\PROGRAM FILES\BOT_6.03\autojoin' (line 73, script5.mrc)
<< Quand j'ai voulu ajouter un "network"
(hadd -s autojoin......)

* /hsave: unable to open 'C:\PROGRAM FILES\BOT_6.03\autojoin' (line 84, script5.mrc)
<<Quand j'ai voulu ajouter un salon.

* /hload: unable to open 'C:\PROGRAM FILES\BOT_6.03\autojoin' (line 94, script5.mrc)
< En ouvrant

ça vient de moi ? :/

signaler à un administrateur
Commentaire de MaX_62 le 18/12/2004 22:06:42

COOLMAN002 je pense que tu n'as pas installé l'add-on dans la racine du script :)

signaler à un administrateur
Commentaire de MaX_62 le 18/12/2004 22:22:13

Je viens de mettre a jour, j'ai redimensionné le dialog ;=)

signaler à un administrateur
Commentaire de tempusus le 19/12/2004 17:02:02 administrateur CS

Bonjour,

a prioris cette 2eme version est sympa et semble fonctionner chez moi.

8/10 pour moi :)

Tempusus
Admin CS

signaler à un administrateur
Commentaire de J4Gu4R le 19/12/2004 21:18:17

c beaucoup mieu :))

bonne continuation sur ta lancée

-J4Gu4R-

signaler à un administrateur
Commentaire de Asthar le 20/12/2004 00:11:39

En effet, beaucoup plus joli ainsi, il ne manque que la prise en compte du mode +k et tout y est :)
Bon boulot :)

signaler à un administrateur
Commentaire de loadation le 20/12/2004 12:17:26

je debute e nscripting quest ce que le +k?
et sinan bah moi marche ils mettent que la table na pas eté trouV
sinan jaime bien le dialog

signaler à un administrateur
Commentaire de MaX_62 le 20/12/2004 14:00:58

le mode +k c'est quand il y a un mot de passe au channel

pour entrer dans un channel +k tu dois faire /join #channel mot-de-passe

signaler à un administrateur
Commentaire de KiNdErMaXi le 20/12/2004 14:30:11

ashtar : "il ne manque que la prise en compte du mode +k et tout y est :)"
au lieu de rajouter un truc exprès +k et bien quand tu rentre ton salon tu met la clé derrière. Exemple : #kinder 1234
voila :) mais c'est vrai que si on veut etre rigoureux et bien on rajouter un truc +k :)
sinon il est très bien ton auto join ;)

signaler à un administrateur
Commentaire de MaX_62 le 20/12/2004 14:42:27

KiNdErMaXi non c'est pas ça, en fait je sépare les tokens avec le $chr(32) donc si tu tapes #kinder 1234 ça t'ajouteras les channels #kinder et 1234
faudra que j'ajoute un truc pour le +k

signaler à un administrateur
Commentaire de MaX_62 le 20/12/2004 17:09:07

loadation -> tu avais raison il y a bien un bug au niveau du chargement de la table.

Je mets a jour tout de suite.

signaler à un administrateur
Commentaire de KiNdErMaXi le 20/12/2004 17:36:44

oupss autant pour moi ashtar

signaler à un administrateur
Commentaire de loadation le 20/12/2004 21:11:35

j compren rien j arrive mm a trouV les bugs  :)

signaler à un administrateur
Commentaire de kev23401 le 06/01/2007 10:25:50

j ai un probleme avec , il marche bien . bien sur
mais il m auth qu apres avoir rejoint tout les chans donc je doit rejoindre tout pour avoir mes @
une solution ?

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,827 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.