Module pour les serveurs favorits

Soyez le premier à donner votre avis sur cette source.

Vue 3 112 fois - Téléchargée 63 fois

Description

Tout d'abord merci à SornDrixer pour l'aide.
Ce module s'inspire du menu "connection" de mIRC. Il aura pe l'avantage d'être en francais et de ne s'occuper que des serveurs.
Je l'ai fait pcq moi ca m'interessait mais si ca peut aider qqun tant mieux.

Ce sera la premiere "vrai" source que je posterais, les precedentes n'etant que des traductions d'evenements.

Source / Exemple :


dialog GServ1 {
  title "Gestion des serveurs"
  size -1 -1 195 150
  option dbu
  list 1, 5 20 85 120, size
  text "Liste des serveurs", 2, 7 7 85 10
  button "Joindre", 3, 100 20 90 12, ok
  button "Ajouter", 4, 100 40 90 12
  button "Editer", 5, 100 60 90 12
  button "Supprimer", 6, 100 80 90 12
  box "Mode de connection", 7, 100 100 90 40
  radio "Dans la fenêtre active", 8, 112 110 69 10
  radio "Dans une autre fenêtre", 9, 112 125 69 10
}

dialog GServ2 {
  title "Ajout d'un serveur"
  size -1 -1 120 106
  option dbu
  text "Nom du serveur", 1, 12 5 80 8
  edit "", 2, 10 15 100 12, autohs
  text "Adresse du serveur", 3, 12 30 80 8
  edit "", 4, 10 40 100 12, autohs
  text "Port du serveur", 5, 12 55 80 8
  edit "", 6, 10 65 100 12, autohs
  button "Ajouter", 7, 10 85 45 12, ok
  button "Annuler", 8, 65 85 45 12, cancel
}

dialog GServ3 {
  title "Edition du serveur"
  size -1 -1 120 106
  option dbu
  text "Nom du serveur", 1, 12 5 80 8
  edit "", 2, 10 15 100 12, autohs
  text "Adresse du serveur", 3, 12 30 80 8
  edit "", 4, 10 40 100 12, autohs
  text "Port du serveur", 5, 12 55 80 8
  edit "", 6, 10 65 100 12, autohs
  button "Editer", 7, 10 85 45 12, ok
  button "Annuler", 8, 65 85 45 12, cancel
}

dialog GServ4 {
  title "Supprimer un serveur"
  size -1 -1 130 46
  option dbu
  text "Etes-vous sûr de vouloir effacer ce serveur ?", 1, 10 10 109 10
  button "Confirmer", 2, 10 25 45 12, ok
  button "Anuller", 3, 72 25 45 12, cancel
}

dialog GServError {
  title "Erreur"
  size -1 -1 200 70
  text "Tous les champs doivent être remplis", 1, 10 15 180 15
  button "Ok", 2, 65 40 70 20, cancel
}

on *:dialog:GServ1:*:*: {
  if ($devent == init) {
    if ($exists(GServ.ini)) {
      var %GServ.nbr 1
      while (%GServ.nbr <= $ini(GServ.ini,Descript,0)) {
        did -a GServ1 1 $ini(GServ.ini,Descript,%GServ.nbr)
        inc %GServ.nbr
      }
    }
    did -b GServ1 3,5,6
    did -c GServ1 8
  }
  elseif ($devent == sclick) {
    if ($did == 1) { did -e GServ1 3,5,6 | set %GServ.sel $did(GServ1,1).seltext }
    if ($did == 3) {
      if ($did(8).state == 1) { server $readini(GServ.ini,Addr,%GServ.sel) $readini(GServ.ini,Port,%GServ.sel) }
      elseif ($did(9).state == 1) { server -m $readini(GServ.ini,Addr,%GServ.sel) $readini(GServ.ini,Port,%GServ.sel) }
    }
    if ($did == 4) { dialog -m GServ2 GServ2 }
    if ($did == 5) { dialog -m GServ3 GServ3 }
    if ($did == 6) { dialog -m GServ4 GServ4 }
  }
}

on *:dialog:GServ2:*:*: {
  if ($devent == init ) {
    did -a GServ2 6 6667
  }
  elseif ($devent == sclick) {
    if ($did == 7) {
      if (!$did(2)) || (!$did(4)) || (!$did(6)) {
        dialog -m GServError GServError
      }
      else {
        writeini -n GServ.ini Descript $did(2) $did(2)
        writeini -n GServ.ini Addr $did(2) $did(4)
        writeini -n GServ.ini Port $did(2) $did(6)
        did -a GServ1 1 $did(GServ2,2)
      }
    }
  }
}

on *:dialog:GServ3:*:*: {
  if ($devent == init) {
    if (%GServ.sel) { 
      did -a GServ3 2 $readini(GServ.ini,Descript,%GServ.sel)
      did -a GServ3 4 $readini(GServ.ini,Addr,%GServ.sel)
      did -a GServ3 6 $readini(GServ.ini,Port,%GServ.sel)
    }
  }
  elseif ($devent == sclick) {
    if ($did == 7) {
      if (!$did(2)) || (!$did(4)) || (!$did(6)) {
        dialog -m GServError GServError
      }
      else {
        writeini -n GServ.ini Descript $did(2) $did(2)
        writeini -n GServ.ini Addr $did(2) $did(4)
        writeini -n GServ.ini Port $did(2) $did(6)
      }
    }
  }
}

on *:dialog:GServ4:sclick:2: {
  remini GServ.ini Descript %GServ.sel
  remini GServ.ini Addr %GServ.sel
  remini GServ.ini Port %GServ.sel
  did -r Gserv1 1
  var %GServ.nbr 1
  while (%GServ.nbr <= $ini(GServ.ini,Descript,0)) {
    did -a GServ1 1 $ini(GServ.ini,Descript,%GServ.nbr)
    inc %GServ.nbr
  }
}

Conclusion :


Voila je modifierais p-e encore un truc ou l'autre mais pour l'instant, il me semble que ca fonctionne très bien.

PS : j'ai mis niveau 2 pas pour me faire mousser mais uniquement pcq ca me semble faire appel à des connaissances que les débutants n'ont pas nécessairement (ce qui etait mon cas avant de me lancer dans sa conception).

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
72
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
12 septembre 2004

Pour la gestion des chans elle sera faite mais dans un autre module vu que je fais mon script au petit à petit et que j'ajoute ici des parties qui pourraient servir à d'autres.

Pour le connexion dans la meme fenetre ou dans une autre fenetre :

radio "Dans la fenêtre active", 8, 112 110 69 10
radio "Dans une autre fenêtre", 9, 112 125 69 10

if ($did(8).state == 1) { server $readini(GServ.ini,Addr,%GServ.sel) $readini(GServ.ini,Port,%GServ.sel) }
elseif ($did(9).state == 1) { server -m $readini(GServ.ini,Addr,%GServ.sel) $readini(GServ.ini,Port,%GServ.sel) }

Voila
Messages postés
74
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
9 avril 2005

C'est assez bien. Le dialog est assè simple. Fait aussi un auto-join-chan pour quand tu te connectes a un serveur.

Euh, sinon, une question ( j'ai pas envi de lire la source, pour moi, c'est le résultat qui compte ;) ), comment tu fais pour que ça ouvre une autre fenêtre de connexion ? :$

/!\ Bloock /!\
Messages postés
817
Date d'inscription
mercredi 25 juin 2003
Statut
Membre
Dernière intervention
19 avril 2004

Au niveau du code, on voit que tu touches bien mais au niveau optimisation ... oula... tu pourrais vraiment bcp réduire ton code en regroupant les on dialog car certaines commandes se rejoignent...
on *:dialog:GServ2:*:*: {
....
elseif ($devent == sclick) {
if ($did == 7) {
if (!$did(2)) || (!$did(4)) || (!$did(6)) {
dialog -m GServError GServError
}
else {
writeini -n GServ.ini Descript $did(2) $did(2)
writeini -n GServ.ini Addr $did(2) $did(4)
writeini -n GServ.ini Port $did(2) $did(6)
did -a GServ1 1 $did(GServ2,2)
}
}

et celui là :

on *:dialog:GServ3:*:*: {
...
elseif ($devent == sclick) {
if ($did == 7) {
if (!$did(2)) || (!$did(4)) || (!$did(6)) {
dialog -m GServError GServError
}
else {
writeini -n GServ.ini Descript $did(2) $did(2)
writeini -n GServ.ini Addr $did(2) $did(4)
writeini -n GServ.ini Port $did(2) $did(6)
}
}
}
}


Autre chose... :
if ($did == 4) { dialog -m GServ2 GServ2 }
if ($did == 5) { dialog -m GServ3 GServ3 }
if ($did == 6) { dialog -m GServ4 GServ4 }

tu peux aussi simplifier ...
if $istok(4 5 6,$did,32) { dialog -m $Gs($did) $Gs($did) }
alias Gs { return $+(Gserv,$calc($1 -2)) }

Ce sont des idées comme ça... mais c'est ce qui fait que ton code sera de Niveau 1 OU de Niveau 2 .... Je ne te donne pas des solutions ... ce sont juste des propositions à exploiter au mieux...
Messages postés
72
Date d'inscription
samedi 3 janvier 2004
Statut
Membre
Dernière intervention
12 septembre 2004

Pour ce qui est du menu il est dans mon script mais j'avais fait ce code en remplacement d'un ancien systeme et je n'ai mis que la partie modifiée sinon en effet dans mon script il est mis.

Je vais essayer de tenir compte de tes conseils SornDrixer.

Et pour ce qui est du niveau j'ai mis 2 pcq je doute tout de meme que qu'un qui n'a jamais scripté arrive a faire ca si facilement.
Messages postés
2084
Date d'inscription
jeudi 12 décembre 2002
Statut
Modérateur
Dernière intervention
30 janvier 2011
8
C'est bien codé, par contre, à mon gôut, cet addon n'est pas très utile, car je me sers jamais du menu connexion de mIRC, et tout mes serveurs favoris sont en popup. (accès plus rapide)

Peut-être éventuellement rajouter des options pour la prochaine version ?

Ha oui, et aussi, quand on ajoute un serveur, tu devrais vérifier si il n'existe pas déjà dans GServ.ini, car en avoir un en double, sa sert pas à grand chose.

ReMi34 : le niveau 2 est moyennement justifié, un débutant n'aurait pas pu coder ça je pense. (maitrise des dialogs, des boucles, et code optimisé)
Afficher les 6 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.