Table des Matières Informations Générales Types de Macros Attributs Variables Commandes Informations Générales Différences entre fichiers Mac et Windows Comme le langage macro a été créé à l'origine sur Macintosh, beaucoup de fichiers macros trouvé sur Internet risquent d'être au format Mac (Mac Roman). Malheureusement le programme Windows ne reconnait que les macros au format UTF-8. Pour faciliter la transition au nouveau format, les utilisateurs Windows bénéficient d'un simple utilitaire de conversion, pour transférer de vieilles macros Mac, quasi inéditables sous Windows, en UTF-8 (choisissez Options -> Convert Mac Macro). Sous Windows XP vous devez pouvoir ouvrir directement la macro, choisir "save as", dans le champ "coding" choisir "UTF-8" et tout devrait fonctionner. Au cas où vous prévoyer d'utiliser une macro Mac sans la modifier, il suffit de lui ajouter l'extension .mac — elle sera alors lue comme Mac Roman. Comment Arindal charge les fichiers Macro Quand vous vous connectez au jeu ou quand vous choisissez "Reload Macros" dans le menu Options, Arindal va charger le fichier de même nom que votre personnage depuis le dossier Macros. Si le fichier n'existe pas, il est créé. Le dossier macros et un fichier intitulé "Default" sont aussi créés si ils n'existent pas. Vous pouvez indiquer à Arindal de lire d'autres fichiers situés dans le dossier Macros en incluant une ligne comme: include "Default" include "Macros de Druide" Cette commande charge le fichier choisi exactement comme si il était inséré à l'endroit de "include". Déclarations de Macros Une macro est l'association d'un "déclencheur" qui définit quand elle doit arriver, et une ou plusieurs "commandes" qui décrivent quoi faire. Il y a deux manières possibles de déclarer une macro. Si elle comprend plus d'une commande il faut utiliser la forme longue, avec une seule commande on peut utiliser forme courte ou longue. FORME COURTE déclencheur commande FORME LONGUE déclencheur { commande commande commande (autant de commandes que vous voulez, 1 par ligne) } Contrôler l'Éxécution Dès qu'une macro est éxécutée, la zone de texte affiche un cadre gris. Taper contrôle-échap (sur Mac) ou maj-échap sur Windows (et Java?)) arrêtera l'éxécution de toutes les macros en cours. Il est possible d'utiliser plusieurs macros en même temps. Certaines variables d'environnement peuvent aussi déterminer comment une macro se comporte. Voir la section sur les variables, plus bas. Caractères d'Échappement Afin d'utiliser dans une expression certains caractères qui normalement contrôlent le chargement de macros dans Arindal, vous devez les faire précéder d'un backslash (\). Les plus courants : \\ backslash \" double guillemet \' guillemet simple \r retour NOTE: Quand vous tapez directement une commande dans Arindal, vous pouvez commencer indiféremment par un slash en avant ou en arrière : / et \ marcheront ausi bien. A l'intérieur d'une macro cependant, vous DEVEZ utiliser '/ ': écrivez "/action" et NON "\action" Commentaires Toute ligne ou texte commençant par // est considéré comme commentaire et est ignoré dans l'éxécution. // Ceci est une commentaire Tout texte placé entre /* et */ est aussi un commentaire. Ce type de commentaire peut englober plusieurs lignes. /* Ceci est un commentaire plus long qui occupe plus d'une ligne */ Types de Macros Macro d'Expression "expression" (l'expression entre guillemets - sensible aux minuscules et majuscules) Celles-ci sont déclenchées quand elles commencent la ligne et en tapant la touche Retour. Une expression contenant des espaces ne marchera pas comme déclencheur, car seul le premier mot de la ligne est examiné dans la comparaison. Examples "lol" "/action éclate de rire.\r" "jump" "/action saute gracieusement par-dessus " @text "\r" "grfem" { "Bonjour gente damoiselle" @text "!\r" } Macros de Remplacement 'remplace' (le mot à remplacer entre apostrophes- sensible à la casse) Celles-ci sont déclenchées quand vous tapez toute touche qui n'est pas une lettre ou un chiffre, et que le déclencheur est le dernier mot avant le point d'insertion. Si vous tapez Retour, le dernier mot de la ligne est comparé au déclencheur. Vous pouvez taper un espace ou Retour sans déclencher une macro de remplacement en maintenant enfonçée la touche Contrôle. Les macros de remplacement sont à effet immédiat, vous ne pouvez donc pas utiliser de commandes qui causent un délai, ni caractères de retour (\r). Un bon usage de macros de remplacement consiste en abbréviations qui se complètent automatiquement, comme dans les deux premiers exemples ci-dessous. Exemples 'SF' "Forêt du Sud" 'DOA' "Defenders of Arilon" 'hi' { random "\'lut" or "Hallo" or "Salut" or "B\'jour" end random } Macros de Touches touche modificateur-touche modificateur1-modificateur2-touche (la touche à presser, et autant de modificateurs que vous voulez) Les macros de touches sont déclenchées en tapant la combinaison de touches spécifiée. Si une combinaison faisait normalement quelque chose et que vous lui attribuez une macro, celle-ci sera utilisée à la place de l'action d'origine. Par exemple, une macro Pomme-p prendrait le dessus sur la Commande de menu "Pull" qui est attribuée par défaut à cette combinaison. Pour la plupart des touches, le nom de la touche est celui du caractère imprimé en la tapant, mais certaines ont des noms particuliers : Touches f1 - f15, escape, minus, delete, tab, return, space, help, home, undo, del, end, pageup, pagedown, up, down, left, right, clear, enter, click Modificateurs command, control, numpad, option, shift Touche Option (mac seulement) L'utilisation de la touche Option avec des lettres est un peu délicate car cela a souvent pour effet de changer la lettre. Par exemple: sur la plupart des claviers et systèmes américains, taper option-s produit le simple caractère ß. Pour utiliser option-s comme touche de macro, il faudra utiliser le caractère modifié par option dans la définition de macro. C'est-à-dire que des macros définies comme suit produiront le texte "ceci marche" quand vous tapez option-s: option-s "ceci échoue" option-ß "ceci marche" Note : le logiciel Windows résoud ce problème donc utiliser 'option-s' etc marche comme prévu. Touche"Click" La touche "click" permet de déclencher des actions en cliquant sur un joueur avec certains modificateurs. Ceci marche aussi bien dans la fenêtre de jeu que dans la liste des joueurs. La seule exception est qu'une macro associée à un simple clic ne marchera pas dans la fenêtre de jeu (cela vous rendrait incapable d'utiliser la fenêtre!). Win, Java et OS X seulement: Avec une souris multi-boutons, vous pouvez aussi utiliser les noms "click2", "click3", etc. Ceux-ci sont appelés en pressant le bouton correspondant. Il vous faudra peut-être expérimenter un peu pour trouver à quels numéros correspondent les boutons de votre souris. "Click2" est presque toujours le bouton secondaire ou bouton de droite, mais après ça l'ordre dépend du fabricant. "Right-click" est synonyme de "click2". Exemples f1 "/action remue la queue.\r" command-m "/give " @selplayer.simple_name " 1\r" shift-enter "/action " @text "\r" command-option-µ "/pull " @selplayer.simple_name "\r" // Pour Mac µ au lieu de m, à cause de la touche option) command-control-numpad-option-shift-minus "BEER!\r" control-option-click { if @click.name != "" "Hors de mon chemin " @click.name " !\r" end if } Touches "Roulette" Win, Java et OS X seulement: Si vous avez une souris avec une roulette de défilement, vous pouvez attribuer des macros à cette roulette. Utilisez "wheelup" pour réagir quand vous scrollez vers le haut et "wheeldown" dans la direction inverse. Vous pouvez aussi définir des macros pour "wheelleft" and "wheelright", mais elles ne marcheront que si: (a) vous avez vraiment une roulette horizontale, ou (b) avec OS X 10.2 ou plus récent, vous enfoncez la touche Maj en utilisant la roulette normale (verticale). Macros de Fonctions déclencheur (simplement le mot comme nom de la fonction) Les macros de fonctions sont déclenchées par une commande "call" à l'intérieur d'une autre macro. Voir la section sur les commandes pour plus de détails. Macro "@login" Si vous définissez une fonction intitulée "@login", celle-ci se déclenchera automatiquement lors de votre connexion au jeu, ou à chaque fois que rechargez les macros avec l'article de menu "Reload Macros". Exemples @login { "/action baille et s\'étire\r" pause 4 "/pose sit\r" } Attributs Un attribut est une ligne que vous pouvez insérer dans une macro pour modifier son comportement. Cet attribut n'est pas éxécuté à un point précis de la macro car il contrôle son interaction même avec Arindal, il peut donc être placé n'importe où dans la macro. Tous les attributs commençent avec le caractère $. Attributs Valides $ignore_case N'affecte que les macros d'expression et de remplacement; fait éxécuter la macro sans tenir compte de la casse. $any_click Normalement les macros de clic ne marchent que quand vous cliquez sur un joueur. Une macro utilisant cet attribut fonctionnera au moindre clic dans la fenêtre de jeu. $no_override Normalement l'éxécution de macros prend le dessus sur toute action de touche, clic, ou frappe de texte. Avec cet attribut la macro sera exécutée, ainsi que l'action normale de la touche ou du clic. Exemples shift-click { $no_override $any_click "/pref movement toggle\r" } click { $no_override $any_click "/pref movement hold\r" } // Un duo de macros qui vous permet avec Maj et clic // d'utiliser le mode 'click toggles' et de cliquer normalement // pour le mouvement 'click and hold'. Variables Une variable est le mot en programmation pour un nom qui se voit attribuer une autre valeur. Par exemple, on pourrait avoir une variable appelée race; nous pouvons attribuer à cette variable la valeur "Maqua". Maintenant chaque fois que l'on se référera au nom race, "Maqua" y sera substitué. Plus tard nous pouvons changer race en "Elithren". Nous pouvons alors faire exactement ce qu'on a fait avant, mais chaque référence à race utilisera maintenant "Elithren". Variables Globales Ces variables sont définies pour toutes les macros que vous utilisez. Pour en définir une, il suffit d'une déclaration set qui ne soit pas à l'intérieur d'une macro.. set num 1 set qui "Keriul" Remarquez que si la variable est du texte, elle est entre guillemets; pour une valeur numérique, pas de guillemets.Nous pouvons maintenant utilser ces variables dans n'importe quelle macro: "vartest2" { "Salut" qui" tu es numéro " num "\r" } Cela produira: >Salut Keriul tu es numéro 1 (retour) Variables Locales Ces variables ne sont définies que pour la macro à l'intérieur de laquelle elles sont déclarées. La déclaration est la même que pour une variable globale, sauf qu'elle s'effectue dans une macro. "vartest2" { set num 1 set qui"Keriul" "Salut" qui" tu es numéro " num "\r" } Cela produira: >Salut Keriul tu es numéro 1 (retour) Maintenant imaginons que nous n'avions pas ces déclarations globales comme précédemment, et vartest1 et vartest2 dans le même fichier macro. "vartest1" { "Salut" qui" tu es numéro " num "\r" } "vartest2" { set num 1 set qui"Keriul" "Salut" qui" tu es numéro " num "\r" } vartest1 produira: >Salut tu es numéro (Retour) Dans vartest1 les variables qui et num ne sont pas définies, alors elles ne comptent pour rien! Définir des Variables Globales à l'intérieur d'une macro Supposons que vous ayez une variable globale pour qui et que vous voulez une macro capable de la modifier. Pour cela il faut utiliser la commande setglobal à l'intérieur de la macro: set qui "Kerial" "set1" { setglobal qui "Ternia" } "vartest1" { "Salut" qui"\r" } Utiliser vartest1 produira: >Salut Kerial (retour) Mais si vous tapez >set1 (retour) la macro set1 macro s'éxécute et change la variable globale, et lancer vartest1 à nouveau produira: >Salut Ternia (Retour) Variables Globales et Locales avec le même nom Ceci est plus clair avec un exemple, mais vous pouvez utiliser le même nom pour une variable globale ET une variable locale. Si vous modifiez la variable localement, la globale ne sera pas affectée; elle restera la même dans toutes les autres macros que celle où une variable locale du même nom est maintenant définie. set qui "Kerial" "set1" { set qui "Ternia" "Salut" qui"\r" } "vartest1" { "Salut" qui"\r" } Utiliser set1 produira: >Salut Ternia (retour) Mais vartest1 produira encore: >Salut Kerial (retour) Variables propres à Arindal Certaines variables spéciales vous permettent de contrôler comment Arindal charge et gère les macros. D'autres se rapportent à votre personnage ou aux autres. Toutes ces variables spéciales commencent par un @, en voici une liste: Variables @env Les variables avec un préfixe @env contrôlent le mode d'éxécution des macros. @env.echo (true/false) Quand défini sur true, puis après tout \r dans une macro, remplace le texte dans la zone de frappe par le texte complet produit par la macro. @env.debug (true/false) Quand défini sur true, donne plus de détails sur le chargement et l'éxécution des macros. @env.key_interrupts (true/false) Quand défini sur true, presser une touche stoppe l'éxécution de macros. @env.click_interrupts Quand défini sur true, cliquer dans la fenêtre de jeu (là où ça fait bouger votre perso) stoppe l'éxécution de macros. Variables @my Les variables avec un préfixe @my se réfèrent à votre personnage. @my.name Le nom de votre personnage. @my.simple_name Le nom simplifié de votre personnage (sans espaces ni ponctuation) @my.right_item, @my.left_item Le nom des objets dans votre mains droite ou gauche. @my.forehead_item, @my.neck_item, @my.shoulders_item, @my.arms_item, @my.gloves_item, @my.finger_item, @my.coat_item, @my.cloak_item, @my.torso_item, @my.waist_item, @my.legs_item, @my.feet_item, @my.head_item Les noms d'objets équipés sur d'autres parties du corps. @my.selected_item Le nom de l'objet sélectionné dans la fenêtre d'inventaire. Variables @selplayer Les variables avec un préfixe @selplayer se réfèrent au personnage sélectionné. @selplayer.name Nom du personnage sélectionné. @selplayer.simple_name Nom simplifié du personnage sélectionné (sans espaces ni ponctuation). Variables @click Les variables avec un préfixe @click se réfèrent au personnage sur lequel un clic a déclenché une macro. @click.name Nom du personnage cliqué. @click.simple_name Nom simplifié du personnage cliqué (sans espaces ni ponctuation). @click.button Chiffre (de 1 à 8) qui identifie quel bouton de souris a été pressé. Le bouton principal ou de gauche est #1, le bouton secondaire ou de droite est #2, les autres dépendent du fabricant; il faudra faire des tests pour les déterminer sur votre souris. @click.chord Nombre qui indique l'état de l'ensemble des boutons de souris. Cette valeur est un bitmap tous les boutons enfoncés, avec le bit d'ordre le plus faible correspondant au bouton #1. Variables Diverses @text L'ensemble du texte dans la zone de frappe au moment du déclenchement de la macro. (moins l'expression de la macro le cas échéant) @textsel Le texte sélectionné dans la zone de frappe au moment du déclenchement de la macro. @random Un nombre entre 0 et 9999, généré aléatoirement à chaque appel de cette fonction. Mots et Lettres En ajoutant ces suffixes à la fin de n'importe quelle variable, vous pouvez vous référer à des mots ou lettres de sa valeur. .word[n] Le n-ième mot d'une variable. Le premier mot est numéroté zéro. .num_words Le nombre de mots dans une variable. .letter[n] La n-ième lettre d'une variable. La première lettre est numérotée zéro. .num_letters Le nombre de lettres dans une variable. Noms Courts d'Objets Comme Arindal est multilingue, les objets changent de nom selon le language utilisé, ce qui peut être problématique quand vous voulez utiliser des macros écrites par quelqu'un d'autre (ou pour diffuser les vôtres). La plupart des objets courants ont donc un nom court unique, commençant par la lettre % et en 4 lettres: ex. %lfcy pour le Cristal de Vie. Vous pouvez utiliser le nom court n'importe où dans une macro, en lieu et place du nom complet. Voici une liste temporaire de tous les noms courts actuellement définis. %prse purse, Geldbörse, Beurs, bourse %bram brambleberry cluster, Brombeerstrauch, takje braambessen, baie de ronces %lila lilaberry cluster, Lilabeerstrauch, takje lilabessen, baie des forêts %orga orgaberry cluster, Orgabeerstrauch, takje orgabessen, baie des marais %dggr dagger, Dolch, dolk, dague %shsw short sword, Kurzschwert, kort zwaard, épée courte %wdsh wooden shield, Holzschild, houten schild, bouclier de bois %lfcy lifecrystal(moonstone), Heilkristall, levenskristal, Cristal de vie %club roguewood club, Wurzelholzknüppel, knuppel, gourdin noueux %hlmt leather helmet, Lederhelm, leren helm, casque de cuir %mdcy mindcrystal(sunstone), Gedankenkristall, denkkristal, PensePierre %lcsh lifecrystalshard, Heilkristallsplitter, levenskristalscher, fragment de Cristal de vie %trdg training dagger, Trainingsdolch, trainingsdolk, dague d'entraînement %brkg beer keg, Bierfass, biervat, tonneau de bière %brmg beer mug, Bierkrug, bierkroes, bock de bière %axee axe, Axt, bijl, hache %kdzu kudzu seedling, Kudzusetzling, kudzu zaadje, graine de Kudzu %mgcy strange crystal, Seltsamer Kristall, vreemd kristal, cristal bizarre %mgst staff, Stab, magiërs staf, bâton %tnbx tinderbox, Zunderbüchse, vuurdoos, pierre à briquet %pchm piece of parchment, Stück Pergament, stuk perkament, feuille de parchemin %ltgl leather gloves, Paar Lederhandschuhe, paar leren handschoenen, paire de gants de cuir %trch torch, Fackel, fakkel, torche %inkk bottle of ink, Tintenfass, inktfles, bouteille d'encre %qull quill, Federkiel, schrijfveer, porte-plume Commandes Si une ligne de texte commence avec un mot correspondant à une commande, Arindal effectue des actions spéciales (décrites plus bas pour chaque commande). Autrement, les mots de cette ligne sont interprétés comme du texte simple. Vous ne pouvez utiliser qu'une commande par ligne. Vous pouvez utiliser des variables pour tout paramètres des diverses commandes. Texte "<texte>" <variable> Si le premier mot d'une ligne n'est pas une autre commande, Arindal considère cette ligne comme du texte. Tout texte entre guillemets est inséré tel quel. Toute expression sans guillemets est considérée comme une variable, et la valeur correspondante (si définie) est insérée. Lors de l'éxécution d'une macro, le texte est mémorisé jusqu'à l'apparition d'un caractère de retour de ligne "\r", auquel moment l'ensemble du texte est envoyé, suivi d'une pause d'une frame. Si il y a du texte après le dernier "\r" de la macro, ce texte est inséré dans la zone de frappe. Cela signifie que si il n'y a aucun caractère "\r", le texte est simplement inséré dans la zone de frappe, sans être envoyé au serveur. Exemples "gr" { "Salut" @selplayer.name "!\r" } Produira: >Salut Robert! (Retour) // Si vous avez sélectionné Robert. "/dodo" { "/pose lie\r" "/action s\'allonge et ferme les yeux.\r" pause 10 "/sleep\r" } Produira: >/pose lie (Retour) >/action s\'allonge et ferme les yeux. (Retour) (Attente pendant 10 frames) >/sleep (Retour) f1 "/thinkto " @selplayer.simple_name " " @text "\r" Produira: >/thinkto Thyin Où est-ce que tu chasses? (Retour) // Si vous avez tapé "Où est-ce que tu chasses" et avez sélectionné Thyin. f13 "Tergon d\'Aleria mon\'Savreyte von Wendia" // Insère votre nom très compliqué comme si vous l'aviez tapé. Sortie de texte Multilingue /multi %l<numéro de langue de 1 à 3> Bien que ce soit une commande de client, insérer l'option /multi après n'importe quelle expression de texte (/say, /yell, /ponder etc) cherchera des balises %l et n'affichera le texte suivant la balise qu'à ceux utilisant le langage correspondant. Exemple F1 "/say /multi Hello%l1Hallo%l2Hallo%l3Salut\r" Produira: Hallo en allemand et hollandais, Salut en français Pause pause <nombre> Suspend la macro pendant <nombre> frames. Exemples shift-# { "/pose sit\r" pause 1 "/pose leanleft\r" pause 1 "/pose leanright\r" pause 1 "/pose stand\r" pause 1 } // Fait effectuer une petit danse à votre perso (avec maj-3 sur mac) "pn" { "/action s\'asseoit et se gratte la tête.\r" pause 20 "/ponder " @text "\r" } // Si votre personnage est un peu simplet, ajoute une pause à vos réflexions. Set set <nom de variable> <valeur> OU set <nom de variable> <opérateur> <valeur> <opérateur> doit être + - * / % Définit une variable locale ou effectue une opération sur sa valeur actuelle (voir la section sur les variables). L'opérateur + peut être utilisé pour associer deux chaînes de caractères, mais tous les autres opérateurs assument des variables numériques et retourneront une valeur numérique. chaîne + chaîne = association ("a" + "b" = "ab") nombre + nombre = addition (1 + 2 = 3) chaîne + nombre = association ("a" + 2 = "a2") nombre + chaîne = pas possible (1 + "b" : "Syntax error") SetGlobal setglobal <nom de variable> <valeur> OU setglobal <nom de variable> <opérateur> <valeur> <opérateur> doit être + - * / % Définit une variable globale ou effectue une opération sur sa valeur actuelle. Exemples set @env.echo true f7 { set @env.echo false "/action tourne sur elle-même avant de s\'écrouler.\r" } // Pendant cette macro, le texte ne sera pas reproduit dans la zone de frappe malgré la variable globale. f8 { set num 1 num "\r" set num + 4 num "\r" set num2 6 num2 "\r" set num + num2 num "\r" } help { if @env.debug == true setglobal @env.debug false else setglobal @env.debug true end if } // active et désactive le mode déboguage avec la touche help option-return { set on @text.num_words set on - 1 label mark @text.word[on] if on > 0 " " set on - 1 goto mark end if "\r" } // fait parler à l'envers Call call <fonction> <fonction> doit être une fonction déclarée et valide Exécute la macro de fonction choisie à cet endroit. Cette fonction et la macro qui l'appelle partagent leurs variable locales. Exemples subroutine { qui" est un(e)" prof ".\r" } f6 { set qui "Reizende" set prof "Druidesse" call subroutine set who "Abe" set prof "Mage" call subroutine } Random random <option> <commandes> ou <commandes> ou <commandes> ... end random <option> peut être "no-repeat" Choisit au hasard un des éléments de la liste. Si l'option "no-repeat" est spécifiée, le même élément ne sera pas utilisé deux fois de suite, à moins qu'il n'y ait qu'un seul choix possible (auquel cas "no-repeat" est impossible). Si "no-repeat" n'est pas spécifié, chaque possibilité à la même probabilité. Examples "greet" { random "\'lut " or "Hallo " or "Salut " or "B\'jour " end random @selplayer.name "\r" } f10 { "/action " random no-repeat "sourit." or "grimace." or "ricane." end random "\r" } // la même expression n'apparaîtra jamais deux fois de suite If if <expression> <comparaison> <expression> <commandes> else if <expression> <comparaison> <expression> <commandes> else <commandes> ... end if <expression> peut être une variable, du texte ou un nombre <comparaison> peut être >, <, <=, >=, ==, != == signifie "égal à" != signifie "différent de" Cette déclaration éxécute les commandes après if si la comparaison entre les expressions est satisfaite. Si elle ne l'est pas, elle passe au else suivant. Les expressions peuvent être des valeurs numériques ou des chaînes de caractères (auquel cas < et > sont interprétés comme "est une sous-chaîne de"). Exemples f11 { if @text <= "tue" "/action hurle de rage!\r" else if @text <= "paix" "/action sourit et offre un bouquet de fleurs.\r" else "/action reste assis sans rien faire.\r" end if } // Cherche certains mots dans @text "/give" { "/give " @selplayer.name " " @text "\r" set num @text if @text <= 10 "/action lance à " @selplayer.name " quelques pièces.\r" else if @text <= 100 "/action tend à " @selplayer.name " une bourse bien pleine.\r" else if @text <= 1000 "/action dépose un énorme sac de pièces dans les bras de " @selplayer.name ".\r" else "/action révèle à " @selplayer.name " l'endroit ou est caché son butin secret.\r" end if } // Pour des transactions un peu personnalisées. Label label <nom de label> Définit un endroit dans une macro comme cible possible pour une commande goto. Goto goto <nom de label> Va directement au label spécifié et continue l'éxécution à ce point. Avec les commandes goto et label vous pouvez définir des opération en boucle (si jamais vous êtes coincé dans une boucle sans fin, pensez à control-échap qui arrête toutes les macros). Exemples f12 { set num 0 label mark set num + 1 if num < 10 pause 5 "Compte: " num "\r" goto mark end if } Message message "<texte>" message <variable> Marche tout comme la commande text , mais le résultat apparaît dans la colonne de texte latérale. Il n'est pas nécessaire de spécifier un "\r" en fin de ligne. (Bien sûr le texte ne s'inscrit que dans VOTRE fenêtre latérale, et n'apparaît pas dans les enregistrements). Exemples "msg" { message @text }
|