Un script, qu’est-ce que c’est ?
Les scripts peuvent servir à plusieurs choses, communiquer, rechercher, informer, temporiser, … En les enrichissant avec de la couleur et/ou un peu de HTML, ils deviendront plus visibles et personnifiés. On peut les envoyer dans tous les canaux du jeu (sous réserve que le script ne soit pas trop lourd). Basiquement un script n’est rien d’autre qu’un fichier texte (*.txt) avec un nom unique qui sert à l’appeler.
Comment réaliser son premier script (facile)?
Il faut se rendre dans le dossier du jeu puis dans le dossier “Scripts” (si ce dossier n’est pas présent il faut le créer !). Tous les scripts devront y être déposés directement (pas de sous dossier).
Créer ensuite un “nouveau fichier texte” dans ce dossier et le nommer “exemple.txt”, l’ouvrir et y écrire “Bonjour le Monde !”
Retourner en jeu, écrire “/exemple.txt” dans le chat souhaité et valider comme on le ferait pour envoyer du texte dans le chat.
Et voilà, “Bonjour le Monde !” apparaît dans le chat.
Comment réaliser son premier script (avancé)?
Le chat Age of Conan tolère le formatage du texte comme de la couleur, une police de caractère spécifique. Pour réaliser cela il faut avoir quelques notions (minime) dans le langage HTML et connaître les quelques polices de caractères autorisées dans le chat d’Age of Conan.
Le HTML autorisé est très pauvre, car il n’autorise que le formatage du texte. De même, le nombre de police de caractères est limité. De plus, l’indentation du code du script n’est pas autorisé, l’intégralité du code doit tenir sur UNE SEULE LIGNE. Concernant les tableaux, n’y pensez même pas.
En résumé, les balises HTML autorisées se limitent à “A”, “BR“, “DIV“, “FONT”, “IMG” et “U”.
La balise A
Lie une commande ou une fenêtre. Elle accepte les attributs suivants :
- HREF : qui aura pour valeur :
- Une commande avec la valeur “chatcmd:///L_EMOTE_ICI” (à noter qu’il y a 3 “/”, 2 pour “chatcmd://” et 1 pour l’emote). Les commandes fonctionnent uniquement dans une fenêtre.
- Une fenêtre avec la valeur “text:// LE_TEXTE_OU_LA_FENETRE_ICI”.
- STYLE : qui permet de supprimer la décoration par défaut d’un lien (en bleu et souligné) grâce à la valeur “text-decoration:none”. Néanmoins il est fortement recommandé de souligner le terme lié pour indiquer qu’il est cliquable. Je n’ai aucune idée des styles autorisés et je dois avouer que je n’ai pas du tout envie de les recenser.
Exemple de balise A ouvrant une fenêtre :
Code : Tout sélectionner
<A HREF="text://Bonjour le Monde !" STYLE=text-decoration:none ><U>exemple d'un lien ouvrant une fenêtre contenant du texte</U></A>
Exemple de balise A pour une emote :
Code : Tout sélectionner
<A HREF="text:// <A HREF=”chatcmd:///saluer” STYLE=text-decoration:none ><U>un lien avec une commande</U></A> " STYLE=text-decoration:none ><U>exemple d'un lien ouvrant une fenêtre contenant une commande</U></A>
La balise BR
Ajoute un saut de ligne.
Exemple de balise B :
Code : Tout sélectionner
Bonjour<BR>le<BR> Monde !
La balise DIV
Elle sert principalement à créer un “bloc” qui prendra toute la largeur de la fenêtre quelques soit sa largeur. Il n’est pas possible de lui donner une bordure visible ou encore un fond coloré, tout juste gérer l’alignement du texte contenu à l’aide de l’attribut :
- ALIGN : qui peut avoir pour valeur “right”, “center” ou “left”. Cette dernière étant la valeur par défaut.
La balise FONT
Formate une portion de texte à l’aide des attributs :
- COLOR qui permet la coloration du texte. Cet attribut autorise l’emploi d’un nom de couleur, à noter que le rendu de couleur peut varier suivant l’interface que possède le joueur car elles peuvent avoir étaient personnalisées par le créateur de l’UI, de plus certaines couleurs utilisent le même code couleur qu’une autre déjà existante. Il existe une centaine de couleurs dont voici la liste :
- black
- green
- silver
- lime
- gray
- olive
- white
- yellow
- maroon
- navy
- red
- blue
- purple
- teal
- fuchsia
- aqua
- orange
- html_link_color
- eldritch
- occult
- chaos
- divine
- blessed
- onslaught
- kuthcheman
- unknown1
- unknown2
- active
- actv_disabled
- standard
- std_disabled
- negative
- positive
- paperstd
- standard_bright
- tooltip_positive
- tooltip_negative
- friends
- mundane
- superior
- enchanted
- rare
- epic
- legendary
- enchantedlight
- rarelight
- epiclight
- money_gold
- money_silver
- money_copper
- money_tin
- gold_rank
- silver_rank
- bronze_rank
- ct_error
- ct_system
- ct_cmd_feedback
- ctch_admin_name
- ctch_admin_text
- ctch_clan_name
- ctch_clan_text
- ctch_emote_name
- ctch_emote_text
- ctch_gm_name
- ctch_gm_text
- ctch_misc_name
- ctch_misc_text
- ctch_newbie_name
- ctch_newbie_text
- ctch_news_name
- ctch_news_text
- ctch_pgroup_name
- ctch_pgroup_text
- ctch_seekingteam_name
- ctch_seekingteam_text
- ctch_vicinity_name
- ctch_vicinity_text
- ctch_whisper_name
- ctch_whisper_text
- ctch_shout_name
- ctch_shout_text
- ctch_team_name
- ctch_team_text
- ctch_raid_name
- ctch_raid_text
- ctch_tell_name
- ctch_tell_text
- ctch_mehit_name
- ctch_mehit_text
- ctch_mehealed_name
- ctch_mehealed_text
- ctch_mypet
- ctch_otherpet
- ctch_megotxp_name
- ctch_megotxp_text
- ctch_
- renown_valor
- renown_glory
- renown_artistry
- aa_general
- aa_archetype
- aa_class
- pvp
- pve
- quest_selected_active
- quest_selected_inactive
- quest_tracked_active
- quest_tracked_inactive
- quest_nonetracked_active
- quest_nonetracked_inactive
- d’un code hexadécimal (non raccourci) donnant le choix parmis 16 777 217 de couleurs. L’emploi de l’hexadécimal assure le bon rendu de la couleur quelques soit l’interface de l’utilisateur.
- FACE qui permet le changement de police de caractère parmi 19 choix :
- chat
- small
- normal
- normal_italic
- normal_bold
- huge
- large
- large_sc
- large_bold
- scaled
- 3d_text_small
- 3d_text_arial
- 3d_text
- 3d_text_bold
- 3d_text_hyb
- hyboriansmall
- hyborianlarge
- headline
- combat_feedback
Exemple de balise FONT :
Code : Tout sélectionner
<FONT COLOR=white FACE=headline>Bonjour le Monde !</FONT>
La balise IMG
Affiche une image. Son attribut est :
- SRC qui contiendra le nom de l’image. Le protocole ne peut être que “rdb://”, ce qui veut dire qu’il n’est pas possible d’utiliser un protocole internet tel que “http://”, ou encore “ftp://”, ni même un protocole local de type “file://”. En français, cela veut dire que l’image doit provenir obligatoirement du jeu, il n’est pas possible d’utiliser une image du web ou une image locale. De plus, cette balise fonctionne uniquement dans les fenêtres.
Par défaut, les images ne s’affichent pas à la première ouverture de la fenêtre. il est nécessaire de la recharger en cliquant à nouveau sur le lien d’ouverture de la fenêtre. Il existe néanmoins une technique pour ne pas avoir ce souci.
Pour qu’une image s’affiche dès la première ouverture de la fenêtre il faut l’ajouter à côté du lien d’ouverture de la fenêtre dans le chat. Cela à pour effet d’appeler une première fois l’image pour la rendre visible dans la fenêtre. Le bug subsiste si l’on change de zone avec la fenêtre contenant l’image ouverte, il faudra alors la recharger. Cette technique à un inconvénient, il faut mettre 2 fois la balise IMG pour une même image ce qui peut rapidement rendre un script lourd au risque de ne pas pouvoir l’afficher dans certain chat…
Pour savoir où trouver les images, c’est “assez simple”, le protocole “rdb://” le dit lui-même. il faut regarder dans les fichiers portant l’extension “*.rdb”. Malheureusement ces fichiers ne sont pas ouvrable à moins d’utiliser un logiciel de type “RDB Extractor”.
Exemple de balise IMG :ce code affichera l’icône d’un oeil.Code : Tout sélectionner
<IMG SRC=rdb://12325>
La balise U
Souligne une portion de texte.
Exemple de balise U :
Code : Tout sélectionner
<U>Bonjour le Monde !</U>
Les cas de la mise en gras et de l’italique
Aucune balise autorisé dans AoC ne permet de mettre une portion de texte en gras ou en italique… Cela est implémenté directement sous forme de police de caractères qui est déjà en gras ou en italique.
Les variables
Les scripts sont très limités, mais il est possible de les rendre dynamiques ! C’est ce que permettent les variables. Une variable (dans AoC) est une commande spécifique qui permet d’afficher une information précise.
Ci-dessous la liste des variables disponibles dans AoC :
- %0 : le nom du script courant. Si le script s’appelle “exemple.txt”, alors %0 vaudra “exemple”.
- %1, %2, %3, … %n : les paramètres donné dans l’ordre lors de l’appel du script. Exemple pour un script appelé “/exemple 1 2 3”, %1 vaudra 1, %2, vaudra 2 et %3 vaudra 3. Le nombre de variables est illimité.
- %* : contient l’intégralité des paramètres qui suivent la commande
- %f : le nom de votre cible en cour de combat
- %m : le nom du personnage qui envoie le script
- %t : le nom de la cible courante
Les commandes
- /afk : permet de mettre un message d’absence
- /camp : déconnecte le personnage
- /chsay <CANAL> <TEXTE> : envoie du texte dans le canal choisi. <CANAL> équivaut au canal dans lequel on veut envoyer du <TEXTE> sans changer de canal
- /g <TEXTE> : envoie un message dans le canal groupe sans changer de canal
- /global <TEXTE> : envoie un message au canal “global” sans changer de canal
- /global(français) <TEXTE> : envoie un message au canal “global(français)” sans changer de canal. A noter que pour envoyer un message dans le chat d’une langue spécifique, le jeu doit être lancé dans la même langue
- /group <TEXTE> : envoie un message dans le canal groupe sans changer de canal
- /gu <TEXTE> : envoie un message dans le canal guilde sans changer de canal
- /guild <TEXTE> : envoie un message dans le canal guilde sans changer de canal
- /ignore <PSEUDO> : bloque un personnage dans les canaux. Refaire la commande pour débloquer le personnage
- /me : envoie du texte à votre proximité immédiate via le canal “dire” sans changer de canal
- /r <TEXTE> : envoie un message au canal raid sans changer de canal
- /raid <TEXTE> : envoie un message au canal raid sans changer de canal
- /reloadui : recharger l’interface. Cette commande est utile si l’on souhaite stopper une macro
- /s <TEXTE> : “cri” le <TEXTE> à la proximité immédiate du personnage
- /say <TEXTE> : dit le <TEXTE> à la proximité immédiate du personnage
- /selectself : sélectionne son propre personnage
- /setoption <OPTION> : permet de changer un paramètre (<OPTION>) du jeu
- /t <PSEUDO> <TEXTE>: envoie un message au pseudo sans changer de canal
- /tell <PSEUDO> <TEXTE>: envoie un message au pseudo sans changer de canal
- /text <TEXTE> : envoie un message dans son propre canal de discussion. Personne ne le voit sauf soi-même. L’utilité réside dans le fait de pouvoir appeler un script personnel
- /quit : déconnecte le personnage
- delay <TEMPS_EN_MILLISECONDE> : temporise une macro, cela ne fonctionne pas dans un script, ceci n’est pas une commande valide dans le chat !
Les macros
Une macro est un peu différente d’un script de part son format “multi-ligne” et la possibilité de temporiser ce qui s’y passe pour automatiser certaines tâches. Ce qui ne veut pas dire qu’il est possible de faire combattre son personnage face à un monstre (du moins dans le sens AoC d’une macro).
Le côté “multi-ligne” rend une macro différente d’un script qui est “mono-ligne”. Lors de l’exécution d’une macro, le moteur de chat lit la macro ligne par ligne, une ligne étant une action différente de la ligne précédente, si il y en a une. Si il n’y a pas de délai entre chaque action, elles seront alors exécutées les une a la suite des autres jusqu’au prochain délai ou la dernière ligne de la macro
Exemple d’une macro via le fichier “auto_login” :
Code : Tout sélectionner
/logcombat off
/setoption SplashScreenFadeOutTime 0
/setoption SplashScreenFadeInTime 0
/setoption dailyLogin_window false
/setoption itemshop_window false
/StrangeUI2015_Fassmod_on
delay 2000
/logcombat on
delay 50000
/guild Bonjour le Monde !
La macro “auto_login” réalise ici plusieurs tâches qui sont (par ordre de ligne):
- Fermer le log de combat
- Supprimer l’effet de “fade out” quand on quitte une zone
- Supprimer l’effet de “fade in” quand on entre dans une zone
- Ne pas ouvrir la fenêtre des “récompenses journalières”
- Ne pas ouvrir la boutique
- Activer un mod contenu dans l’UI “Strange UI”
- Temporiser la macro durant 2000ms (2s)
- Activer le log de combat
- Temporiser la macro durant 50000ms (50s)
- Envoyer le message “Bonjour le Monde !” au chat de guilde
Plus d’informations sur le fichier “auto_login” dans ce post du forum.