Aide - Recherche - Membres - Calendrier
Version complète : Commande Aléatoire Sur Plusieurs Lignes
CCS Forums > Scripting mIRC > Scripting mIRC
Lucky_Joice
J'ai une petite colle pour vos neurones ... :blink:

j'aimerais posséder une commande aléatoire de plusieurs lignes et je vais faire mon possbile pour être clair ! lol.gif

Avant toutes choses, prenons une exemple déjà existant sur CCScript:

"ta mère"

si je dis ta mère ... le script me donne comme réponse une phrase aléatoire ...


ex:

Lucky : ta mère

Script : ta mère est gentille

Lucky : ta mère

Script : ta mère a de la moustache

Lucky : ta mère

Script : et ton père ?

etc ...

jusqu'ici tout va bien !

Etape 2 maintenant ...

j'aimerais une commande similaire a celle la mais il faudrait que le script me donne plus d'une phrase ...


ex:

Lucky : !blague

Script : blague 1, ligne 1

Script : blague 1, ligne 2

Script : blague 1, ligne 3

Lucky : !blague

Script : blague 14, ligne 1

Script : blague 14, ligne 2

Script : blague 14, ligne 3

Script : blague 14, ligne 4

Script : blague 14, ligne 5

Lucky : !blague

Script : blague 6, ligne 1

Script : blague 6, ligne 2

Script : blague 6, ligne 3

Script : blague 6, ligne 4

etc ...

J'espère que ma requête est claire ...

J'aimerais que pour une commande unique le script puisse répondre aléatoirement et sur plusieurs lignes
dry.gif
Orus
hello...

tu utilise un ccscript ou un autres? parce que j'ai un truc mais il marche pas sur ccscript ..
Lucky_Joice
yep Orus j'utilise CCScript evidemment rolleyes2.gif

mais si tu as un élément de réponse à m'apporter je pourrais sans doute l'adapter pour le CCscript

qui ne tente rien n'a rien wink.gif
Orus
CITATION(Lucky_Joice @ 03/03/2006, 01:59) *
yep Orus j'utilise CCScript evidemment rolleyes2.gif

mais si tu as un élément de réponse à m'apporter je pourrais sans doute l'adapter pour le CCscript

qui ne tente rien n'a rien wink.gif

Hello...

Bah ecoute essaie de partir avec une commande genre

on *:text: ----------- avec ton !blague... après utilise un $read sur un fichier text..

il existe surement des raccourcies mais tu peux tricher un peu en faisant dans ton fichier text :

par exemple (blague pourri lol)

tu connais la blague de toto dans les wc? | /msg $chan moi non plus sad.gif | /msg $chan la porte était fermé à clé tongue.gif


essaie ça...

Au pire si tu as du mal... je te "pondrai ça"

à plus
Rose.Warda
Bonjour

J'ai trouvé quelque chose qui pourrait correspondre a ce que tu cherches, mais par contre je n'utilise pas de fichier.txt donc le bot ne peut pas renvoyer de phrases de manière aléatoire comme tu le souhaitais.

En résumé ça donne ceci :

»« - Řøšε åиğεŁ - »« : !blague1
BIS0US : première ligne de la blague1
BIS0US : seconde ligne de la blague1
BIS0US : troisième ligne de la blague1
BIS0US : quatrième ligne de la blague1

»« - Řøšε åиğεŁ - »« : !blague2
BIS0US : première ligne de la blague2
BIS0US : seconde ligne de la blague2
BIS0US : troisième ligne de la blague2
BIS0US : quatrième ligne de la blague2



- Les commandes seront forcément différentes
(avec des chiffres différents : !blague1, !blague2, etc..)

- Et la commande !blague1 renverra toujours la même blague, la commande !blague2 aussi et ainsi de suite

Je ne suis pas sure que ce soit ce que tu cherches.

@+
Lucky_Joice
non orus c'est pas du tout ce que je recherche

un $read te renvoit vers un fichier texte et la d'office tu es limité en nombre de carctères

cette blague ci ne passerait jamais avec ta manière:

Un français et un belge sont dans une discothèque et aperçoivent deux superbes créatures. Le français dit alors :

-On va les draguer !

-Moi j'veux bien, mais je suis très très timide et je ne sais vraiment pas quoi faire pour emballer une fille ...

-Bon, OK ! Laisse moi faire...Tu regardes comment je fais et tu fais pareil." Le français s'approcha alors de la plus belle des 2 filles et dit: "Salut, choisissez un chiffre entre 1 et 9 !

-Je n'sais pas moi, 5

-Bravo, vous venez de gagner le droit de danser avec moi toute la soirée ! Le belge, voyant son copain avec la 1ère fille, se décide à aborder l'autre fille et dit:

-Salut, choisissez un chiffre entre 1 et 9 !

-ben... 8

-Ah, dommage, c'est perdu !



par contre ca pourrait fonctionner avec la méthode de rose.


mais je ne veux pas de 1 ou de 2 ou de 3

je veux une seule et unique commande qui est !blague
SvenSider
Salut ;o)

pour simplifier et en gros tu dois utiliser:
• $read sur un fichier que tu auras prepa en mettant une blague par ligne.
• $rand pour permettre un choix aléatoire dans le txt.
• $chr(N) (par exemple TAB, $chr(9)) comme étant un retour à la ligne dans ton txt (blague.txt dans cet exemple).
• $numtok/$gettok les bon vieux tokens qui serviront donc à décortiquer les lignes de ta blague.

rapido ça devrait donner un truc dans cette optique ...
CODE
ON *:TEXT:*!blague*:#:{
  var %i = 1, %u = $rand(1,$lines($scriptdir $+ blague.txt)), %n = $numtok($read($scriptdir $+ blague.txt,%u),9)
  while (%i <= %n) {
    msg # $gettok($read($scriptdir $+ blague.txt,%u),%i,9)
    inc %i
  }
}


Je ne l'ai pas test mais ça devrait aller, gaffe tout de meme a ne pas flood ;o)

Sven ^^
ßoa
salut




une autre soution :

comme la commande ta mère , il faut mettre les réponses dans un fichier texte , mais pour un texte en plusieurs ligne il faut l’écrire en une seule ligne
les phrases seront séparées par des timers (qui pourront être réglé comme on le désire)

voilà par exemple 3 blagues qui s’afficheront chacune sur plusieurs lignes en salle, mais qui s’ écriront sur une seule lignes dans le fichier texte

1-Un français et un belge sont dans une discothèque et aperçoivent deux superbes créatures. | .timer1 1 4 amsg Le belge dit alors : On va les draguer ! | .timer2 1 5 amsg -Moi j'veux bien, mais je suis très très timide et je ne sais vraiment pas quoi faire pour emballer une fille ... répondit le francais | .timer3 1 6 amsg -Bon, OK ! Laisse moi faire...Tu regardes comment je fais et tu fais pareil." Le belge s'approcha alors de la plus belle des 2 filles et dit: "Salut, choisissez un chiffre entre 1 et 9 ! | .timer4 1 7 amsg -Je n'sais pas moi, 5 | .timer5 1 8 amsg -Bravo, vous venez de gagner le droit de danser avec moi toute la soirée ! Le francais, voyant son copain avec la 1ère fille, se décide à aborder l'autre fille et dit: | .timer6 1 9 amsg -Salut, choisissez un chiffre entre 1 et 9 ! | .timer7 1 10 amsg -ben... 8 | .timer8 1 11 amsg -Ah, dommage, c'est perdu !
2-Qu'est ce qui est jaune et qui traverse les murs ? | .timer2 1 3 amsg Une banane magique.
3-Un pere dit a son fils : | .timer2 1 2 amsg - Finalement, ma mere et moi on a ete heureux pendant 25 ans. | .timer3 1 3 amsg - Et apres ? demande le fils | .timer4 1 4 amsg - Apres, on s'est rencontre



ßoa
SvenSider
Bonne idée les timers, ça évite le flood deja ^^
Cela dit, histoire d'avoir un fichier blague relativement "clean" il vaut mieux qu'un script agisse dessus histoire, par exemple, d'éviter les bugs d'oublis...
Pour la lisibilité il est en effet préférable d'utiliser le | au lieu du tab ... donc $chr(124)
sur le script que j'ai post plus haut, ça donne ceci:

CODE
ON *:TEXT:*!blague*:#:{
  if (%timer.blague) { halt }
  set %timer.blague enable
  var %i = 1, %u = $rand(1,$lines($scriptdir $+ blague.txt)), %n = $numtok($read($scriptdir $+ blague.txt,%u),124)
  while (%i <= %n) {
    .timer 1 %i msg # $gettok($read($scriptdir $+ blague.txt,%u),%i,124)
    inc %i
  }
  .timer -o 1 %i unset %timer.blague
}


J'y ai mis également une condition qui empeche de lancer le script quand les timer sont encore en cours wink.gif

Le fichier blague.txt ressemble à ça:
blague1-ligne1|blague1-ligne2|blague1-ligne3|blague1-ligne4
blague2-ligne1|blague2-ligne2|blague2-ligne3|blague2-ligne4
blague3-ligne1|blague3-ligne2|blague3-ligne3|blague3-ligne4
blague4-ligne1|blague4-ligne2|blague4-ligne3|blague4-ligne4
blague5-ligne1|blague5-ligne2|blague5-ligne3|blague5-ligne4


Sven ^^
Lucky_Joice
Merci Sven ta réponse se rapproche très fort de l'idée que je me faisais de la commande.
Pour ce qui est du flood il n'y a pas de soucis j'ai une commande qui offre une paire de lunette ou un toc surprise pour calmer celles et ceux qui font des fixettes sur une même commande.

En ce qui concerne la commande aléatoire sur plusieurs lignes je vais la tester et vous dirai ce qu'il en est au plus vite.

Merci !
Lucky_Joice
Ok j'ai testé la commande et elle fonctionne !
J'ai juste rencontré un petit soucis ... la première ligne ne passait pas à cause d'un conflit avec une autre commande, j'ai donc bidouiller le conflit pour que la commande puisse passer sans devoir me prendre trop la tête ...

Procédure:

1. J'ai créé un fichier texte que j'ai nommé "lol.txt" et je l'ai placé dans mon dossier "paroles" (je mets tous mes fichiers texte dans ce dossier pour y retrouver mes jeunes ...).
==> C:/programs files/CCScript/paroles/lol.txt

Contenu:

CODE
1) | .timer1 1 3 amsg Un $msn.encode(français et un belge sont dans une discothèque et aperçoivent deux superbes créatures). | .timer2 1 4 amsg Le belge dit alors : On va les draguer ! | .timer3 1 5 amsg - Moi j'veux bien, mais je suis $msn.encode(très très timide et je ne sais vraiment pas quoi faire pour emballer une fille ... répondit le français) | .timer4 1 6 amsg - Bon, OK ! Laisse moi faire ... Tu regardes comment je fais et tu fais pareil." Le belge s'approcha alors de la plus belle des 2 filles et dit: "Salut, choisissez un chiffre entre 1 et 9 ! | .timer5 1 7 amsg - Je n'sais pas moi, 5 | .timer6 1 8 amsg - Bravo, vous venez de gagner le droit de danser avec moi toute $msn.encode(la soirée ! Le français), voyant son copain avec la $msn.encode(1ère) fille, se $msn.encode(décide à aborder l'autre fille) et dit: | .timer7 1 9 amsg - Salut, choisissez un chiffre entre 1 et 9 ! | .timer8 1 10 amsg - ben ... 8 | .timer9 1 11 amsg - Ah, dommage, c'est perdu !
2) | .timer1 1 3 amsg Qu'est ce qui est jaune et qui traverse les murs ? | .timer2 1 4 amsg Une banane magique.
3) | .timer1 1 3 amsg Un $msn.encode(père dit à son fils) : | .timer2 1 4 amsg - Finalement, $msn.encode(ta mère et moi on a été heureux) pendant 25 ans. | .timer3 1 5 amsg - Et $msn.encode(après ? demande) le fils | .timer4 1 6 amsg - $msn.encode(Après ... on s'est rencontré).


Notez que pour chaque blague j'ai mis un chiffre pour contrer mon conflit de commande "x)", autrement ma première ligne ne passait jamais.

2. J'ai créé un fichier mrc que j'ai nommé blague.mrc
==> C:/programs files/CCScript/blague.mrc

Contenu:

CODE
ON *:TEXT:*loll*:#:{
  if (%timer.lol) { halt }
  set %timer.lol enable
  var %i = 1, %u = $rand(1,$lines($+ paroles/lol.txt)), %n = $numtok($read($+ paroles/lol.txt,%u),124)
  while (%i <= %n) {
    .timer 1 %i msg # $gettok($read($+ paroles/lol.txt,%u),%i,124)
    inc %i
  }
  .timer -o 1 %i unset %timer.lol
}


==> ça marche à la perfection !

Merci pour votre aide, j'obtiens exactement le résultat escompté !
SvenSider
Salut ;o)

Dans ce code il y a des erreurs...
$+ paroles/lol.txt => le $+ est inutile
pour les timer dans le fichier lol.txt je ne comprend pas comment tu ne les vois pas s'afficher en salle, vu que le script gere déja les timer il ne faut avoir que le texte de la blague dans ce fichier, aussi pour éviter de devoir systématiquement mettre les $msn.encode dans le texte, il te suffit de faire un alias msg

CODE
alias msg {
  if ($2 != $null) {
    msg $1 $msn.encode($2-)
  }
}


Note: vérif si un on *:input n'encode pas déjà ton texte sortant.

Donc, pour moi, le fichier texte devrait plutot être comme ça:
CODE
1) | Un $msn.encode(français et un belge sont dans une discothèque et aperçoivent deux superbes créatures.) | Le belge dit alors : On va les draguer ! | Moi j'veux bien, mais je suis $msn.encode(très très timide et je ne sais vraiment pas quoi faire pour emballer une fille ... répondit le français) | Bon, OK ! Laisse moi faire ... Tu regardes comment je fais et tu fais pareil." Le belge s'approcha alors de la plus belle des 2 filles et dit: "Salut, choisissez un chiffre entre 1 et 9 ! | Je n'sais pas moi, 5 | Bravo, vous venez de gagner le droit de danser avec moi toute $msn.encode(la soirée) | $msn.encode(Le français), voyant son copain avec la $msn.encode(1ère) fille, se $msn.encode(décide à aborder l'autre fille) et dit: | Salut, choisissez un chiffre entre 1 et 9 ! | ben ... 8 | Ah, dommage, c'est perdu !
2) | Qu'est ce qui est jaune et qui traverse les murs ? | Une banane magique.
3) | Un $msn.encode(père dit à son fils) : | Finalement, $msn.encode(ta mère et moi on a été heureux) pendant 25 ans. | Et $msn.encode(après ? demande) le fils | $msn.encode(Après ... on s'est rencontré).



Sven ^^
C•Dryk™
Tout à fait d'accord...

Il ne devrait y avoir que du texte dans ce fichier puisque en effet le script gère déjà les timers ici:

CODE
.timer 1 %i msg # $gettok($read($+ paroles/lol.txt,%u),%i,124)


Je ne sais pas, là de suite, si mirc a annulé le timer ou comment les timers du fichier texte ne s'affichent pas sur la salle mais ils sont obselètes.

Ensuite, le $+ est en effet un non-sens ici, on peux le supprimer:

CODE
.timer 1 %i msg # $gettok($read(paroles/lol.txt,%u),%i,124)


Puis enfin, au lieu de te prendre la tête avec $msn.encode tu peux l'inclure dans le timer:

CODE
.timer 1 %i msg # $msn.encode($gettok($read(paroles/lol.txt,%u),%i,124))


si ça ne fonctionne pas tu peux forcer à re-évaluer comme ceci:

CODE
.timer 1 %i msg # $!msn.encode($gettok($read(paroles/lol.txt,%u),%i,124))


Et pour le fichier texte des blagues, faire comme montre Sven, mais sans les $msn.encode vu qu'ils sont centralisés dans le timer.


CITATION
Note: vérif si un on *:input n'encode pas déjà ton texte sortant.


Si je me souviens bien, *:input gère ce que tu entre directement dans une boîte d'edition de mIRC, du genre:

CODE
on *:INPUT:#:/echo J'ai ecris sur le salon # le message: $1-


et *:INPUT:?: c'est la variante pour les boîte d'édition des apartés.

Enfin faire un alias /msg peut-être dangereux, car sur certains scripts cela pourrais réencoder de l'utf8 en utf8 lol et là c'est pas genial tongue.gif Par exemple pour toutes les variables de type $nick, qui sont traitées en utf8 par msn et par le script.
Lucky_Joice
De toute évidence j'ai eu du bol avec les timers mais je vous assure qu'ils n'apparaissent pas ...
D'ailleurs j'avais déjà tenter une commande similaire avec des timers dans mes fichiers texte et la ils s'affichaient.
Il est donc envisageable que par le biais de la commande que m'a donné sven, mes timers aient étés annulés.
Mon problème de première ligne pourrait être lié à mes erreurs dans la commande, je vais donc refaire cela correctement et vous donnerai de mes nouvelles après modification des erreurs.
En ce qui concerne l'alias msg j'en avais fait un à l'époque et effectivement ça me posait des problèmes d'encodage.
Pour ce qui est de cette commande:
CITATION
.timer 1 %i msg # $msn.encode($gettok($read(paroles/lol.txt,%u),%i,124))

Je l'ai tenté et ça n'a pas fonctionné, c'est pour cette raison que je me suis pris la tete dans mon fichier texte ...
Je vais donc tenter la seconde méthode.
Je vous tiens au courant une fois que j'aurai rectifier le tir.
Lucky_Joice
Bon !

Suite à deux heures de prise de tête, je suis parvenu à un résultat plus ou moins similaire à ce que vous espériez, mis à part un ou deux détails ...

Après une première tentative de modification du fichier mrc ça donnait ceci:

CODE
ON *:TEXT:*loll*:*:{
  if (%timer.lol) { halt }
  set %timer.lol enable
  var %i = 1, %u = $rand(1,$lines(paroles/lol.txt)), %n = $numtok($read(paroles/lol.txt,%u),124)
  while (%i <= %n) {
    .timer 1 %i msg # $msn.encode($gettok($read(paroles/lol.txt,%u),%i,124))
    inc %i
  }
  .timer -o 1 %i unset %timer.lol
}


Rien ne se passait ...

Deuxième tentative, je remplace mes "/" par des "\":

CODE
ON *:TEXT:*loll*:*:{
  if (%timer.lol) { halt }
  set %timer.lol enable
  var %i = 1, %u = $rand(1,$lines(paroles\lol.txt)), %n = $numtok($read(paroles\lol.txt,%u),124)
  while (%i <= %n) {
    .timer 1 %i msg # $msn.encode($gettok($read(paroles\lol.txt,%u),%i,124))
    inc %i
  }
  .timer -o 1 %i unset %timer.lol
}


La, je recevais en écho "un n'est pas en salle" ... certainement du à un conflit avec une autre de mes commandes ...

La troisième tentative a été la bonne j'ai modifié "msg #" par "amsg".
La ça a fonctionné et les timers apparaissaient comme vous l'esperiez, j'ai donc modifié mon fichier texte comme espéré ...


Au final j'ai donc retiré les "$+" mais j'ai du modifier mes "/" par des "\" et le "msg #" par "amsg".
J'ai également ajouté le "$msn.encode" sur mon fichier mrc.
Et j'ai donc pu supprimer tous les "$msn.encode" de mon fichier texte ainsi que les "timers" et les "amsg".
De cette manière la première ligne s'affiche sans problème.


Résultat final:

Fichier mrc:

CODE
ON *:TEXT:*loll*:*:{
  if (%timer.lol) { halt }
  set %timer.lol enable
  var %i = 1, %u = $rand(1,$lines(paroles\lol.txt)), %n = $numtok($read(paroles\lol.txt,%u),124)
  while (%i <= %n) {
    .timer 1 %i amsg $msn.encode($gettok($read(paroles\lol.txt,%u),%i,124))
    inc %i
  }
  .timer -o 1 %i unset %timer.lol
}


Fichier texte:

CODE
Un français et un belge sont dans une discothèque et aperçoivent deux superbes créatures. | Le belge dit alors : On va les draguer ! | Moi j'veux bien, mais je suis très très timide et je ne sais vraiment pas quoi faire pour emballer une fille ... répondit le français | Bon, OK ! Laisse moi faire ... Tu regardes comment je fais et tu fais pareil." Le belge s'approcha alors de la plus belle des 2 filles et dit: "Salut, choisissez un chiffre entre 1 et 9 ! | Je n'sais pas moi, 5 | Bravo, vous venez de gagner le droit de danser avec moi toute la soirée | Le français, voyant son copain avec la 1ère fille, se décide à aborder l'autre fille et dit: | Salut, choisissez un chiffre entre 1 et 9 ! | ben ... 8 | Ah, dommage, c'est perdu !
Qu'est ce qui est jaune et qui traverse les murs ? | Une banane magique.
Un père dit à son fils : | Finalement, ta mère et moi on a été heureux pendant 25 ans. | Et après ? demande le fils | Après ... on s'est rencontré.



Un grand merci à vous tous pour votre aide !
C•Dryk™
CITATION
Au final j'ai donc retiré les "$+" mais j'ai du modifier mes "/" par des "\" et le "msg #" par "amsg".
J'ai également ajouté le "$msn.encode" sur mon fichier mrc.
Et j'ai donc pu supprimer tous les "$msn.encode" de mon fichier texte ainsi que les "timers" et les "amsg".
De cette manière la première ligne s'affiche sans problème.


Alors déjà d'une part, c'est sur internet que l'on utilise le / lol ... Le truc c'est que XP est tolérant, alors ça pourrait passer mais attention aux autres windows... (je me suis fait avoir dans ccscript V2 lol). Donc pour un chemin sur un pc c'est bien \ wink.gif

Pour le message c'est logique lucky... La commande /amsg envoie le message sur tous les channels où tu es connecté, cependant c'est vrai que c'est le plus simple pour les timers. Pourquoi ? Parceque au moment ou le timer s'execute, # ou $chan ne sont plus évalués, ils sont devenus obselètes sur le temps du timer, et mirc les "oublie"... Donc si ton message était /msg # un coucou à tous, dans un timer, à l'execution il perd # donc il tente en fait /msg un coucou ... et en effet il peut te dire "un n'est pas une salle"... lol Dans le cas de /amsg, mirc cherche lui même tous les channels où tu es connecté sur un serveur commun au moment de l'execution et y transmet le message.

Il y a quelques petites astuces pour contrer la perte des variables dans les timers, on peut sur mirc remplacer:

CODE
.timer.test 1 1 /msg # test 123


par:

CODE
.timer.test 1 1 /msg $!comchan($nick,1) test 123


On peut aussi feinter en enregistrant la salle dans une petite variable avant le timer et reconstruire la variable:

CODE
set %chan #
.timer.test 1 1 /msg % $+ chan test 123


Cette méthode est très pratique: à la 1ère auto-évaluation, le timer va seulement "coller" le % et le chan pour avoir %chan, et au moment de l'execution, le timer trouvera bien le channel par la variable.

Quand on a en plus vincula, on peut simplifier comme ceci:

CODE
.timer.test 1 1 /msg  $!msn.get($cid,fullroom) test 123


Notez que le ! oblige mIRC a re-évaluer $msn.get à la fin du timer... Cette fonction d'eXonyte permet de retrouver le channel en fonction du CID actif.

On pourrais donc imaginer ce genre de solutions:

CODE
ON *:TEXT:*loll*:*:{
  if (%timer.lol) { halt }
  set %timer.lol enable
  var %i = 1, %u = $rand(1,$lines(paroles\lol.txt)), %n = $numtok($read(paroles\lol.txt,%u),124)
  while (%i <= %n) {
    .timer 1 %i /msg $!msn.get($cid,fullroom) $msn.encode($gettok($read(paroles\lol.txt,%u),%i,124))
    inc %i
  }
  .timer -o 1 %i unset %timer.lol
}


ou

CODE
ON *:TEXT:*loll*:*:{
  if (%timer.lol) { halt }
  set %timer.lol enable | set %chan #
  var %i = 1, %u = $rand(1,$lines(paroles\lol.txt)), %n = $numtok($read(paroles\lol.txt,%u),124)
  while (%i <= %n) {
    .timer 1 %i /msg % $+ chan $msn.encode($gettok($read(paroles\lol.txt,%u),%i,124))
    inc %i
  }
  .timer -o 1 %i unset %timer.lol
}


Une dernière solution serait aussi par exemple d'utiliser un alias pour la commande en salle, et que le timer, au lieu d'executer la commande, execute l'alias (donc non-évalué) qui trouver bien le channel.

Bon courage tongue.gif
Lucky_Joice
ha ok ... tout s'explique biggrin.gif

je te remercie pour tes explications et tes astuces si bien détaillées B)
Ceci une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquez ici.
Invision Power Board © 2001-2012 Invision Power Services, Inc.