Autovoice avec possibilité de black-lister

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 279 fois - Téléchargée 21 fois

Contenu du snippet

Autovoice classique avec fonction supplémentaire : vous pouvez empêcher quiconque de bénéficier du voice en ajoutant son host à la liste noire.

Le code principal de la source est à mettre dans la partie remote de mIRc.

Mettez cette ligne dans la partie popup pour ajouter un raccourci graphique au lancement du script :
Gérer l'autovoice:/dialog -m avoice avoice

Sinon, tapez /dialog -m avoice avoice pour le lancer.

Source / Exemple :


on *:JOIN:*:{
  if ($chan == $readini(chanVoice.ini,$chan,avoice) && $address($nick,2) != $readini(chanVoiceBlack.ini,$address($nick,2),novoice)) mode $chan +v $nick
}

dialog avoice {
  title "Gestion de l'autovoice"
  size -1 -1 359 195
  option pixels
  tab "Gestion des salons", 1, 4 2 351 189
  button "Supprimer", 4, 148 61 66 23, tab 1
  text "Ajoutez ou supprimer un salon de la liste permet de voicer toutes les personnes qui y rentrent. N'oubliez pas de vous appliquer les modes +h, +o, +a ou +q pour que ce script fonctionne.", 5, 221 28 129 139, tab 1
  button "Ajouter", 7, 149 35 66 22, tab 1
  edit "#", 3, 14 33 127 22, tab 1
  list 13, 14 59 125 116, tab 1 size
  tab "Gestion de la liste noire", 2
  text "La liste noire permet d'empécher certaines personnes de profiter de l'avoice sur les salons configurés. Les membres listés ne seront voicés sur un aucun salon ou ce script est actif.", 8, 234 33 109 143, tab 2
  button "Ajouter", 11, 163 35 66 23, tab 2
  button "Supprimer", 12, 164 62 65 22, tab 2
  edit "*!*@", 6, 16 35 140 20, tab 2
  list 14, 16 57 140 110, tab 2 size
}

on *:dialog:avoice:init:0:{
  %i = 1
  while ( %i <= $ini(chanVoice.ini,0)) {
    did -a  $dname 13 $ini(chanVoice.ini,%i)
    inc %i
  }
  %i = 1
  while ( %i <= $ini(chanVoiceBlack.ini,0)) {
    did -a  $dname 14 $ini(chanVoiceBlack.ini,%i)
    inc %i
  }
}
on *:dialog:avoice:sclick:*:{
  if ($did == 7) { 
    //writeini -n chanVoice.ini $did(3) avoice $did(3)
    did -r  $dname 13
    did -r  $dname 3
    %i = 1
    while ( %i <= $ini(chanVoice.ini,0)) {
      did -a  $dname 13 $ini(chanVoice.ini,%i)
      inc %i
    }
  }
  if ($did == 4) { 
    //remini -n chanVoice.ini $did(13).seltext
    did -r  $dname 13
    %i = 1
    while ( %i <= $ini(chanVoice.ini,0)) {
      did -a  $dname 13 $ini(chanVoice.ini,%i)
      inc %i
    }
  }

  if ($did == 11) { 
    //writeini -n chanVoiceBlack.ini $did(6) novoice $did(6)
    did -r  $dname 14
    did -r  $dname 6
    %i = 1
    while ( %i <= $ini(chanVoiceBlack.ini,0)) {
      did -a  $dname 14 $ini(chanVoiceBlack.ini,%i)
      inc %i
    }
  }
  if ($did == 12) { 
    //remini -n chanVoiceBlack.ini $did(14).seltext
    did -r  $dname 14
    %i = 1
    while ( %i <= $ini(chanVoiceBlack.ini,0)) {
      did -a  $dname 14 $ini(chanVoiceBlack.ini,%i)
      inc %i
    }
  }
}

Conclusion :


L'adresse à black-lister est comparé sous la forme *!*@host.
Il est donc obligatoire de mettre une host sous cette forme (c'est $addresse($nick,2))

A voir également

Ajouter un commentaire Commentaires
Messages postés
264
Date d'inscription
lundi 19 mai 2003
Statut
Membre
Dernière intervention
7 juillet 2009

while ( %i <= $ini(chanVoice.ini,0)) {

.. tu sais que la tu demande a mirc de compter le fichier ini a CHAQUE iteration de ta boucle ?
pas tres optimisé
les / au debut de tes lignes ne servent a rien
regroupe tes events dans un seul appel a on *dialog genre:

on *:dialog:avoice:*:*:{
if ($devent == init) {

}
elseif ($devent == sclick) {
if ($did == ...) {

}
}
}

si tu ne vérifie pas que les lignes de tes edit ne soient pas = a $null met $$did() dans ce cas, tu évitera des bugs

lors de ton init, %i = ... NON NON ET NONNNNNNNNNN
var %i = ...
la plupart des scripts utilisent %i lors des boucles, ton script qui set un %i comme ca en plein millieu d'une boucle dun autre script et c'est le bug !

pensse a utiliser elseif au lieu d'enchainer les if a la suite aussi

ca:
# did -r $dname 13
# did -r $dname 3

devien
# did -r $dname 3,13

niveau initié ? LOL
sur une échelle de 0 a 100 ton code ne dépasse pas les 15...
et au passage jette un oeil a $iif()
Messages postés
3
Date d'inscription
dimanche 17 décembre 2000
Statut
Membre
Dernière intervention
13 août 2008

Il marche tres bien et je ne comprend pas ton probleme MODSERV
Messages postés
435
Date d'inscription
jeudi 27 avril 2006
Statut
Membre
Dernière intervention
17 octobre 2008

# %i = 1
# while ( %i <= $ini(chanVoice.ini,0)) {
# did -a $dname 13 $ini(chanVoice.ini,%i)
# inc %i
# }

didtok ?
Messages postés
2466
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
1 août 2010
1
Je n'ai pas parlé de la source en elle même, je ne m'amuse pratiquement plus a commenter les sources que je juge inutile (celle ci a le bonus d'être en initié :))
Messages postés
99
Date d'inscription
mardi 22 août 2006
Statut
Membre
Dernière intervention
9 septembre 2014

Non mais... le sujet n'est pas encore clot ? mIRC fait deja les autovoice sur le pseudo qu'on veut et la blacklist... Donc cassé vous pas la tête ... si vous êtes pas capable de la loader ou d'écrire une source dans le sens du monde utilisé mIRC avant de faire des sources inutiles...
Afficher les 10 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.