________________________ LANCEUR DE DÉS POUR MIRC ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ v 1.1 par CXZman v1.1 : correction bug mineur, correction orthographe superficielle v1.0 : script terminé Téléchargeable ici : http://cxzman.free.fr/JDR/LanceurIRC.txt DESCRIPTION : ¯¯¯¯¯¯¯¯¯¯¯¯¯ Ceci est un petit remote script conçu pour mIRC, le plus répandu des clients IRC, permettant de simuler un jet de dés, du d1 au d100 et jusqu'à 45 dés simultanément (ce sont des limites que l'on peut modifier à souhait, elles ont uniquement pour but de bloquer les abus). Tout joueur peut, à tout moment, lancer ses dés à l'aide d'un ordre écrit. Il lui suffira de dire, dans le salon de discussion, "!roll 5d10", et il lancera cinq dés à 10 faces. Les résultats de chaque dé sont affichés les uns à la suite des autres, du plus gros résultat au plus petit. Utilisable sur un salon ou en discussion privée, si le jet doit être tenu secret, ou tout simplement pour ne pas ternir le roleplay en cours. Le code est commenté. L'aide de mIRC complètera les réponses à vos interrogations techniques. Il est conçu pour fonctionner immédiatement. UTILISATION : ¯¯¯¯¯¯¯¯¯¯¯¯¯ Toute personne connectée* pourra, à tout moment, effectuer le jet voulu. Il suffit d'écrire, sur un salon ou en privé, le message suivant, en guise de demande : !roll XdY X = nombre de dés à jeter Y = nombre de faces sur chaque dé NB : il vous faudra respecter la présence du point d'exclamation, celle de l'espace et la casse du "d" (l'écrire en minuscule). Bien entendu, il faut aussi respecter l'orthographe du mot "roll", mais quatre lettres ne devraient pas vous causer beaucoup de problèmes. Lorsque quelqu'un* écrira une demande de jet, vous allez automatiquement envoyer un message contenant le résultat sur le salon ou dans la discussion privée de laquelle on vous a réclamé un jet. Si la demande a été faite sur un salon, vous allez automatiquement répondre sur ce salon, si la demande a été faite en privé, vous répondrez automatiquement en privé avec cette même personne. Exemples : !roll 1d100 Eric lance 1 dé à 100 faces et obtient : 55 La première ligne est écrite en toute lettre par "Eric", la seconde ligne est automatiquement formulée et envoyée par "Maitre_de_jeu". !roll 5d6 Eric lance 5 dés à 6 faces et obtient : 4 3 2 2 1 Notez comment les résultats ont été rangés : en ordre décroissant. Il ne tient qu'à vous et vos joueurs de faire la somme de tête, si vous avez besoin de la somme, ou de comparer aux seuils de réussite que vous leur fournirez. * : voir PRÉCAUTIONS D'EMPLOI, premier tiret. INSTALLATION : ¯¯¯¯¯¯¯¯¯¯¯¯¯¯ 1. Conservez ce fichier ouvert afin de faciliter l'installation. Vous trouverez, à la fin de ce fichier, le script complet du lanceur de dés, commenté. 2. Ouvrez mIRC si ce n'est pas déjà fait. Vous n'avez pas besoin d'être connecté à un serveur pour installer le lanceur de dés, être connecté n'affecte en rien l'installation. 3. Appuyez sur Alt+R // Tools > Scripts Editor // Outils > Éditeur de Scripts 4. Rendez-vous à l'onglet "Remote" 5. Allez à la ligne pour y copier/coller la totalité du texte de la partie "SCRIPT", à la fin de ce document. 6. Appuyez sur OK pour valider et enregistrer les scripts de mIRC. 7. Connectez-vous, c'est déjà prêt ! PRÉCAUTIONS D'EMPLOI : ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ - Il est malheureusement IMPOSSIBLE pour le possesseur de ce lanceur de dés de lancer lui-même les dés avec. Ainsi donc, tout le monde peut utiliser ce lanceur, sauf vous-même. C'est une contrainte imposée par le logiciel que j'aurais pu contourner en créant une commande réservée au MJ mais qui n'a que peu d'utilité pour deux raisons : - Si vous souhaitez effectuer un jet caché, faites le chez vous avec de vrais dés. Discrétion assurée. - Si vous souhaitez que le jet soit public, vous pouvez toujours demander à l'un de vos joueurs de lancer les dés pour vous. J'espère simplement que cette contrainte n'affectera pas le bon déroulement de vos parties. - Il arrive de rencontrer, sur IRC, des gens idiots qui ne chercheront qu'à s'amuser pendant quelques temps avec votre nouveau script ou qui auront simplement pour but de vous nuir. Étant donné que le nombre de jets possible n'est ni limité dans le temps, ni limité dans le nombre consécutif, vous risquez d'être exposé à ces cas. Il y a plusieurs solutions contre ces problèmes, dont deux inclues dans le code. - Le lanceur est, d'office, limité à des dés de 100 faces (inutile de réclamer !roll 1d1500). Il est également limité à 45 dés lancés simultanément (à voir à la hausse face à de GROS personnages). Pour modifier ces limites, intéressez vous aux cinq première lignes du script : on *:TEXT:!roll*:*:{ var %limitX 45 ; >> nombre de dés lancés maximum var %limitY 100 ; >> nombre de faces maximum À CET ENDROIT DU SCRIPT ET SEULEMENT À CET ENDROIT, le 45 est la limite de dés, le 100 est la limite de faces. Partout ailleurs, le nombre 45 a un autre sens et vous ne devriez le modifier à ces endroits que si vous aviez bien cerné son rôle. Exemple : on *:TEXT:!roll*:*:{ var %limitX 1200 ; >> nombre de dés lancés maximum var %limitY 9 ; >> nombre de faces maximum Ici, j'ai spécifié qu'on pouvait lancer jusqu'à mille deux cent dés en même temps et que ces dés ne pouvaient pas avoir plus de neuf faces. Pas très utile, configuré comme ça, mais c'est pour l'exemple. Notez qu'à partir d'un certains nombre de dés lancés en même temps, vous ne pourrez plus afficher tous les résultats en une seule fois. 45 (par défaut) est un bon chiffre. - Lorsqu'un utilisateur du réseau IRC vous embête avec ses innombrables demandes de jet, ignorez-le avec la fonction intégrée à mIRC (sans les crochets) : /ignore [nom_du_jeune_imbécile] Ceci fait, vous ne pourrez plus le lire ou recevoir ses messages privés, ainsi ne pourra-t-il plus déclencher le lanceur de dés et vous importuner. Pour cesser d'ignorer quelqu'un, consultez l'aide de mIRC. - Si vous souhaitez empêcher l'exécution du lanceur de dés pendant votre absence devant votre poste informatique alors que votre connection est toujours établie, vous pouvez placer un ";" (point-virgule) devant la première ligne (on *:TEXT: ...) ainsi que devant la dernière ligne (celle qui contient uniquement une accolade fermée). Ainsi faisant, votre script sera inutilisable tant que ces deux ";" seront en place. Pour réactiver le lanceur de dés, retirez ces deux ";" ET UNIQUEMENT CES DEUX-LÀ. TOUS LES AUTRES ";" SONT UTILES ET JUDICIEUSEMENT PRÉSENTS. - Il est POSSIBLE que, lors du copier/coller de l'installation, des sauts de lignes s'ajoutent seuls, empêchant le lanceur de dés de s'exécuter normalement. Ceci est dû au Blocnote (Notepad) de Windows qui insère parfois des sauts de lignes lui-même. Pour corriger ce problème, dans le Blocnote (ce document ouvert), choisissez "Format > Retour automatique à la ligne" afin de DÉCOCHER l'option. Enregistrez à nouveau ce document (avec l'option décochée bien sûr) et effectuez à nouveau les opérations 2 à 6 de l'installation après avoir SUPPRIMÉ l'ancien Lanceur de dés dans mIRC. SI VOUS INSTALLEZ DEUX FOIS LE LANCEUR DE DÉS, À LA SUITE, SANS EFFACER L'ANCIEN AU PRÉALABLE, IL S'EXÉCUTERA MAL, VOIRE PAS DU TOUT. - Hormis ce que j'ai écris ici bas, vous invitant à modifier vous-même le script, je vous DÉCONSEILLE FORTMENT de le modifier, ne serait-ce que d'un caractère. Aussi, afin de ne pas perdre le Lanceur de dés à cause d'une mauvaise manipulation, conservez ce document en sûreté pour pouvoir tout réinstaller si nécessaire. Maintenant, si vous savez ce que vous faites, ne vous gênez surtout pas ! :) DIFFUSION, DROITS, AUTRES JOYEUSETÉS ... ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Soyons honnêtes, même si j'ai les droits d'auteurs sur ce script, je n'en attends que le plaisir qu'il procurera à ses utilisateurs de par sa praticité. Donc il est évident qu'il vous est laissée la liberté de le diffuser, de l'échanger, de le copier, de le modifier et d'en faire une exploitation commerciale si ça vous tente. Néanmoins, quitte à améliorer le script, autant faire partager la nouvelle version à tout le monde. Aussi aprécierais-je, si vous pensez avoir apporté au script une modification conséquente, pratique, utile et splendide de simplicité d'usage, de m'en envoyer une copie afin que je mette à jour mon propre lanceur ainsi que la version disponible online sur mon ftp. Mon mail : cxzman@free.fr SCRIPT (commentaires intégrés) : ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ;$replace($2,d,-) = premier traitement créant le token ASCII:45 (- tiret) ;$gettok(...,1/2,45) = retourne le premier ou le second nombre ; 1 = nombre de dés = $gettok($replace($2,d,-),1,45) ; 2 = nombre de face par dé = $gettok($replace($2,d,-),2,45) ;syntaxe : !roll XdY ;%jets contient les résultats des dés ; $replacex(%jets,$chr(45),$chr(160)) = remplace tous les tirets du token par des espaces (ASCII:160) ; $sorttok(...,160,nr) = range les valeur par ordre décroissant en prennant l'ASCII de l'espace ;On a donc comme résultats des jets : $sorttok($replacex(%jets,$chr(45),$chr(160)),160,nr) on *:TEXT:!roll*:*:{ var %limitX 45 ; >> nombre de dés lancés maximum var %limitY 100 ; >> nombre de faces maximum var %valid 0 if ($gettok($replace($2,d,-),1,45) > %limitX) { .notice $nick Trop de dés, limité à %limitX inc %valid 1 } if ($gettok($replace($2,d,-),2,45) > %limitY) { .notice $nick Maximum %limitY inc %valid 1 } if (%valid > 0) halt ; >> protections de rigueur. if ($gettok($replace($2,d,-),1,45) > 1) var %dés dés else var %dés dé if ($gettok($replace($2,d,-),2,45) > 1) var %faces faces else var %faces face ; >> Pluralité des termes var %nbdés $gettok($replace($2,d,-),1,45) ; >> Stock du nombre de dés pour la boucle while (%nbdés > 0) { ; >> Tant qu'il reste au moins un 1 dé à lancer dans le %nbdés ... var %jets $instok(%jets,$rand(1,$gettok($replace($2,d,-),2,45)),0,45) ; >> On stock dans le token de %jets un nombre aléatoire entre 1 et le nombre de faces dec %nbdés 1 ; >> On n'oublie pas de comptabiliser ce dé lancé } msg $chan $nick lance $gettok($replace($2,d,-),1,45) %dés à $gettok($replace($2,d,-),2,45) %faces et obtient : $sorttok($replacex(%jets,$chr(45),$chr(160)),160,nr) ; >> Affichage des résultats }