begin process at 2008 08 22 01:58:36
1 229 745 membres
17 nouveaux aujourd'hui
14 267 membres club

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 !

NOTICE POUR HALFOP OPERATEUR DE SALON


Information sur la source

Catégorie :Scripts Classé sous : notice, halfop, operateur, hnotice, moderateur Niveau : Débutant Date de création : 10/05/2006 Date de mise à jour : 11/05/2006 11:36:47 Vu : 3 376

Note :
Aucune note

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

Description

Ce script envoie une notice a tous les utilisateurs halfop et operateur d un salon.
Ceci doit certainement avoir deja été fait. Bref...
Surtout a titre 'educatif', il montre comment utiliser la liste de user sur un salon (c'est un sujet assez recurent) et aussi comment concatener une chaine de caractere.
Code archi commenté pour la bonne comprehension. ;)
NB : Si quelqu un a deja vu ça dans Mirc ou une manière plus simple de le faire, ça m'interesse !!

Source

  • ;; version de base a titre pedagogique et valable dans certains cas (cf le 2ème commentaire de PaDa)
  • /hnotice {
  • ;; syntaxe /hnotice <salon> <message>
  • var %o = 1
  • while ($nick($1,%o) != $null) { ;; pour tous les pseudos presents sur un salon
  • ;; si cen est pas moi et a condition que le pseudo soit halfop ou op
  • if ( ($nick($1,%o) != $me) && ( ($nick($1,%o) isop $1) || ($nick($1,%o) ishop $1) )) {
  • ;; concatenation de la liste des halfop/op avec le pseudo suivant
  • /set %userLs %userLs $+ $nick($1,%o) $+ ,
  • }
  • ;; incrementation (merci RCA ArKanis ;)
  • inc %o
  • }
  • ;; Envoie de la commande en enlevant la ',' de fin (pseudo1,pseudo2...,pseudoN,)
  • /notice $left(%userLs,$calc($len(%userLs) - 1)) $+ $chr(32) $+ <notice moderateur> $+ $chr(32) $+ $2-
  • ;; desallocation des variables
  • unset %o
  • unset %userLs
  • }
  • ;; version PaDa featuring skwi
  • /hnotice {
  • ;; syntaxe /hnotice <salon> <message>
  • /notice @% $+ $1 $+ $chr(32) $+ $2-
  • }
;; version de base a titre pedagogique et valable dans certains cas (cf le 2ème commentaire de PaDa)
/hnotice {
  ;; syntaxe /hnotice <salon> <message>
  var %o = 1
  while ($nick($1,%o) != $null) { ;; pour tous les pseudos presents sur un salon
    ;; si cen est pas moi et a condition que le pseudo soit halfop ou op
    if ( ($nick($1,%o) != $me) && ( ($nick($1,%o) isop $1) || ($nick($1,%o) ishop $1) )) {
      ;; concatenation de la liste des halfop/op avec le pseudo suivant
      /set %userLs %userLs $+ $nick($1,%o) $+ ,
    }
    ;; incrementation (merci RCA ArKanis ;)
    inc %o 
  }
  ;; Envoie de la commande en enlevant la ',' de fin (pseudo1,pseudo2...,pseudoN,) 
  /notice $left(%userLs,$calc($len(%userLs) - 1)) $+ $chr(32) $+ <notice moderateur> $+ $chr(32) $+ $2-
  ;; desallocation des variables
  unset %o
  unset %userLs
}

;; version PaDa featuring skwi
/hnotice {
  ;; syntaxe /hnotice <salon> <message>
  /notice @% $+ $1 $+ $chr(32) $+ $2-
}

Conclusion

Certains pourraient se demander pourquoi on ne limite pas la commande seulement si celui qui la passe est au moins halfop:
1 - Ceci va etre l'objet d'une autre version pour un autre alias.
2 - dans le cas de certains salon il est interessant qu'un utiliseur 'Voicé' ou pas puisse avertir les moderateurs
10 mai 2006 17:44:55 :
Changement de categorie tutoriaux script (arf satanée roulette de souris)
11 mai 2006 11:36:48 :
Prise en compte de la remarque de PaDa (ça allège énormément)
  • signaler à un administrateur
    Commentaire de wims le 10/05/2006 20:19:56

    $nick($chan,0,oh) retourne le nombre d'halfop et d'op sur le salon.
    tu fait une boucle la dessus au lieu de faire une boucle sur tout les users, ca ira bien plus vite !

    alias hnotice {
    ;on initialise les variable
    var %a 1 ,%b = $nick($1,0,oh) ,%n
    ;la boucle
    while (%a <= %b) {
    ;si le nick est different du notre on l'ajoute dans la variable
    if ($nick($1,%a,oh) != $me) var %n = $addtok(%nick,$ifmatch,44)
    ;on incremente
    inc %a
    }
    ;on envoi la notice.
    notice %n <notice moderateur> $2-
    }

    T'avais demandé plus court :)

  • signaler à un administrateur
    Commentaire de PaDa le 11/05/2006 09:27:15

    Je n'ai jamais essayé (et je peux pas depuis le taff), mais préfixer le nom du salon par le mode ne suffit pas ?
    Ca, ca marche :
    /notice @#salon blah, envoie blah aux ops du salon
    /notice @+#salon blah, envoie blah aux ops+voices du salon
    /notice +#salon blah, envoie blah aux voices du salon...
    Donc je me demande si :
    /notice @%#salon blah, n'enverrait pas blah aux ops+hops ? non ?
    De toute facon à titre pédagogique c'est bien pour aider les débutants ;)
    Bonne continuation.

  • signaler à un administrateur
    Commentaire de elkwi le 11/05/2006 11:06:37

    Super pour ta remarque WINS ça m apprend des nouveau tips
    mais la remarque de PADA r0>< merci a vous 2, j aime quand ça se passe comme ça surtout que je suis loin de maitriser les commandes Irc :D

  • signaler à un administrateur
    Commentaire de PaDa le 11/05/2006 11:10:15

    Lol, je ne sais pas ce que veut dire ton smiley, mais il faut tester de toute facon, je ne suis pas sur de moi.
    A noter que ta méthode peut être intéressante tout de même, sur un serveur ou je suis, il faut l'utiliser sous peine d'avoir son host décrypté qui apparait.
    Bonne journée ;)

  • signaler à un administrateur
    Commentaire de wims le 12/05/2006 19:16:04

    J'ai essayé ces commandes et il faut minimum le voice sur le salon pour pouvoir s'en servir ( sans access ) mais il voulait que la commande reste accessible pour tous...
    J'ai appris par la même occasion qu'il existe aussi la meme commande pour les privmsg :
    [18:55:47] <oug>y'a aussi /privmsg [mode]#chan
    toujour utile :)

  • signaler à un administrateur
    Commentaire de RCA ArKanis le 13/05/2006 19:07:55

    La solution de Wims est, à mon goût, la bonne
    je m'explique :
    tu fais une boucle avec : tant que nick est non nul, alors ...
    le mieux, c'est de faire comme wims, càd :
    var %i = 1, %max = $nick($1,0,oh) (le oh n'est pas obligé, c'est juste histoire de ne pas faire une boucle trop grande ... tu fais ici déjà une restriction sur le nombre de nicks)

    et donc while (%i <= %max) { ... }

    Tu pourrais stocker le nick dans une variable locale, histoire de ne pas utiliser $nick(#,%i) plusieurs fois. J'pense que t'y gagnerais en temps d'execution.
    Je veux dire par là :
    var %ni = $nick(#,%i,oh)
    if ((%ni != $me) || (%ni ishop $1) || (%ni isop $1))

    set %userLs %userLs => utilise /var
    Essaye aussi de voir si /notice nick1,nick2 fait flooder s'il y a beaucoup nicks.

    Oublie pas de vérifier que $1 est bien un salon. Si ce n'est pas le cas, peut-être que tu pourrais faire en sorte que ce soit le salon actif, si c'est bien un salon bien sûr ($active)

Ajouter un commentaire

Discussions en rapport avec ce code source

Pub



Appels d'offres

Snippets en rapport

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS