EpicFriend

EpicFriend est un script utilisateur s'appuyant sur l'extension GreaseMonkey pour Mozilla Firefox, utilisable dans le cadre du MMO Epic War.
Il ajoute de nombreuses fonctionnalités nouvelles, certaines inédites par rapport à d'autres extensions consacrées au jeu, et également de nombreux raccourcis pour écourter les manipulations de l'interface et vous permettre de consacrer plus de temps aux actions du jeu lui-même.
Vous pouvez trouver ici la dernière version du script d'EpicFriend.
Enfin inscrivez l'adresse du forum d'EpicFriend dans vos signets/marque-pages, vous pouvez y discuter du projet, signaler des bugs, poser des questions, etc.

Historique du script

J'ai commencé à écrire des bouts de code dans des scripts individuels dès mon inscription au jeu, il y a deux ans environ. Au début mon attention a tout de suite porté sur la vue du joueur, dont les informations étaient riches, complexes, et parfois difficiles à organiser de manière globale et systématique.
A l'époque une autre extension existait déjà, EpiKbar, elle-même un portage de la NainWakBar conçue pour le jeu Nainwak. Elle permettait essentiellement de voir dans une barre d'outils les informations essentielles du joueur: son nombre de points d'action, les événements survenus depuis la dernière connexion au personnage, le nombre de messages, ses points de vie, et un accès direct sans identification aux différents serveurs du jeu.
Dans un second temps EpiKbar s'est enrichie d'une fonctionnalité baptisée "Sourligneur", qui permettait d'annoter visuellement à même la vue du joueur les informations essentielles des autres joueurs, à savoir leurs points de vie, leur niveau, et la possibilité de repérer visuellement certains joueurs sur des critères tels que l'escouade, le nom.
Dans les mêmes temps je "travaillais" moi-même à un type d'annotation similaire. J'ai pris contact avec Kuba, le créateur de l'EpiKbar, et lui ai proposé ma toute dernière version de l'annoteur, qui l'a intéressé et qu'il a adaptée pour son extension.

Puis avec le temps vint la seconde extension majeure du jeu: EpicZilla, qui reprit le principe d'annotation de la vue et y ajouta ce qui pour moi fut LA fonctionnalité majeure de l'extension: la carte d'escouade, représentant sur une petite carte de tout le monde du jeu tous les joueurs de l'escouade par des petits points de couleur, avec une infobulle détaillant les informations vitales (position précise, nom, classe, niveau, points de vie).
A ce moment-là déjà j'avais développé de nombreux scripts s'attaquant de manière beaucoup plus profonde à l'analyse des données de la vue et j'avais commencé à m'intéresser à l'analyse des données issues de la page des membres de l'escouade, ainsi que j'avais réservé de nombreuses idées soumises par d'autres joueurs sur le forum officiel, que je trouvais bonnes mais qui, pour une raison ou une autre, n'avait pas retenu l'attention des développeurs du jeu.

Et puis le Cataclysme arriva: avec l'avènement (glorieux certes) de la version 3 du navigateur Mozilla Firefox, les deux extensions furent momentanément KO. Au final EpicZilla fut mise à jour par son développeur (FreddyP/Ysmiad), EpiKbar n'ayant plus son mainteneur fut adaptée un peu plus tard par Or, qui y avait elle-aussi déjà apporté sa contribution.
Toutefois pendant ce laps de temps trop long où je me retrouvais avec le jeu "nu", et où je disposais moi-même de beaucoup de temps libre, je décidais de reprendre de manière cohérente et homogène le développement d'un seul script global et monolithique regroupant toutes les améliorations déjà codées, et implémentant de nombreuses autres qui étaient sur ma "todo-list" (liste de choses à faire).
J'ai alors choisi de tout écrire de manière orientée objet, avec définition d'un espace de nom clair, afin d'assurer dans le futur la meilleure cohabitation possible avec les autres extensions, qui elles aussi injectaient leur code Javascript dans les pages du jeu.
Très rapidement EpicFriend fut écrit, rassemblant plus de mille lignes de code, que je nommais d'abord EpicVision puis EpicPlus et enfin EpicFriend, en raison de l'existance du programme EpicVision de Jfo (qui a un tout autre objectif), et du fait qu'EpicPlus ne me plaisait pas non plus.

Principes fonctionnels

L'enrichissement de l'interface du joueur

L'interface utilisateur d'Epic War se résume, soyons franc, à un minimum de liens en haut de la vue et d'autres accessibles par un menu contextuel en cliquant sur son propre avatar au centre de sa vue. C'est peu, et ça oblige à passer son temps à enchaîner plusieurs clics de souris pour arriver à des actions simples.
J'ai donc très simplement rajouté des liens directs à la suite de ceux déjà présents, notamment l'accès direct à la page "Info/carte", à la page d'escouade et de manière générale à toutes les fonctionnalités nouvelles introduites par mon add-on.
J'ai aussi ajouté un lien direct vers l'affichage des derniers messages du forum officiel, lesquels n'apparaissent que dans le cas où il n'y a pas de nouveaux messages dans la messagerie interne du jeu depuis la dernière connexion (dans ce cas c'est la messagerie interne qui apparaît).

L'annotation de la vue

Première précision: elle est hautement configurable, c'est important pour certains joueurs à qui l'ajout de trop d'informations déplairait, et qui pourraient ne choisir de ne montrer qu'une ou quelques informations seulement sur toutes celles disponibles.
Deuxième précision: elle ne concerne que les créatures joueurs ou contrôlées par des joueurs, et donc ne concerne logiquement pas les monstres qui, avouons-le, ne capteront l'intérêt des joueurs que dans leurs plus jeunes heures.
Ainsi vous aurez accès, à même l'image de chaque avatar (joueur/familier/squelette):

Chacune de ces annotations peut être désactivée individuellement, ou bien on peut encore tout désactiver, dans le souci de préserver la préférence de certains joueurs pour un système d'annotation d'une autre extension, et favoriser une cohabitation respectueuse entre mon extension et les autres.
Enfin il est possible de spécifier dans les préférences spécifiques du bloc de niveau+race, de PV et d'enchantements, des éléments de style CSS spécifiques pour encore plus de souplesse de personnalisation.

Les fonctionnalités externes

Elles reposent sur des micro-scripts instantanés ou des pages disponibles en ligne sur ce site:

Le rapport de vue: EpicVue

Il est accessible par le lien "EpicVue" en haut de la vue du joueur et affiche dans un nouvel onglet les informations de toutes les "créatures joueurs" (joueurs, familiers, squelettes) visibles par le joueur, à raison d'une par ligne et regroupées par race.
Le nom est annoté en gras lorsqu'il s'agit d'un joueur, en non-gras lorsqu'il s'agit d'un familier ou d'un squelette. Il est de plus colorisé dans une certaine couleur lorsqu'il s'agit d'un membre de son escouade, dans une autre lorsqu'il s'agit d'un dieu.
Dans le cas d'un joueur, l'alignement y figure, coloré en bleu, vert ou violet selon qu'il appartient respectivement à la branche combattant, rôdeur ou apprenti, le niveau, l'escouade d'appartenance, les points de vie et les enchantements actifs, selon les mêmes codes courts que ceux directement annotés sur la vue.
Dans le cas d'un familier, on y verra le nom de son propriétaire à la place de l'alignement.
Dans le cas d'un squelette, son alignement (il n'a pas de propriétaire spécifique au sein de la race qui le contrôle).
La partie messagerie est particulièrement importante, donnant des listes de destinataires préformatées pour la messagerie interne du jeu, selon plusieurs catégories: tous les membres visibles de sa race, ceux n'appartenant pas à son escouade (dans le cas où l'on prend le temps de faire un rapport complet à son escouade et plus sommaire aux autres joueurs), les joueurs sans escouade (utile pour compléter la liste des destinataires des chefs des escouades présentes), et enfin les escouades présentes (à utiliser avec EsCoal, par exemple).
En-dessous vous trouverez trois zones de formulaires contenant du code préformaté pour chacun des trois systèmes de forums suivant: BBCode (forums phpBB et nombreux autres, messagerie interne du jeu), CoolForum (système du forum officiel) et les-forums (autre système que j'utilise personnellement), permettant de copier-coller rapidement et d'avoir ainsi la mise en forme correspondante: couleurs, gras, etc.

La page d'escouade / page de clergé (dieux)

Tout en haut de la page sont insérés trois nouveaux liens:

Ensuite la liste des membres/fidèles est elle aussi remaniée:

La page de messagerie

Le log : registre des actions et événements

Toutes les actions principales faites ou subies par le personnage sont gardées en mémoire, de manière permanente.
Vous ne perdrez rien, même si vous fermez l'onglet ou Firefox lui-même, même si vous redémarrez l'ordinateur ou même si vous mettez à jour ou désinstallez-réinstallez Firefox, sauf changement technique majeur concernant celui-ci.
Une fonction d'exportation du log brut, non trié non mis en forme, est disponible dans le menu contextuel de l'icône Greasemonkey (en bas et à droite de la barre d'état de Firefox) pour faire une copie de sécurité dans un fichier de texte, si vous le désirez.
Les familles bénéficient d'un affichage de log séparé, le joueur est automatiquement identifié et le log trié pour n'afficher que les informations le concernant.
Le format d'affichage du log permet toujours de copier-coller des portions de celui-ci dans EpicLog (cf. ci-dessus les fonctionnalités externes), la fonction de mise en forme des logs d'EpicFriend.

Accessible par le lien "Log" en haut de la vue.

Installation

  1. Installer l'extension GreaseMonkey pour Mozilla Firefox ; une fois fait, vous pouvez voir l'icône d'une petite tête de singe brune à droite de la barre d'état de votre navigateur
  2. Aller sur la page du projet d'EpicFriend et cliquez sur le bouton "Installer"
  3. Si vous affichez déjà le site d'Epic War, rafraîchissez la page (F5 ou Control-R ou le bouton "Actualiser" de la barre d'outils)

Mise à jour

Elle est proposée automatiquement dès qu'une nouvelle version est disponible en ligne.
Un lien apparaîtra en-dessous des liens d'actions, au-dessus de la vue du personnage, proposant d'installer directement la nouvelle version.
Une fois cela fait, vous n'avez qu'à recharger toute la page pour profiter des nouveautés.

Configuration

Elle se fait de manière totalement graphique depuis la version 2.0 d'EpicFriend, grâce au lien "EF.Conf" à côté du lien d'options natives du jeu.
En cliquant vous faîtes apparaître une boîte de dialogue virtuelle par-dessus le cadre de la vue.
La partie supérieure comprend les commandes : une série de boutons et de cases à cocher. N'hésitez pas à balader le curseur de la souris sur les éléments interactifs pour lire les infobulles d'aide rapide.
Les boutons vous conduiront aux différents onglets: configuration générale, ajout d'une nouvelle cible, copie d'une cible existante, modification des critères d'une cible existante, suppression d'une cible, ajout d'une liste de messagerie, suppression d'une liste de messagerie.
La case à cocher "Continuer" permet de garder l'interface ouverte après avoir cliqué sur le bouton de validation. Si elle est décochée, l'interface se ferme automatiquement après chaque validation (vous devez cliquez à nouveau sur le lien d'ouverture "EF.Conf").
La case à cocher "Déployer" permet de déployer les sections de toutes les rubriques, qui par défaut sont "repliées" ne laissant apparaître que les titres.
En-dessous la partie principale est composée des sections de l'onglet en cours. Un clic sur le titre d'une section permet de le déployer et de l'afficher ou inversement de le replier et de le cacher.

En bas finalement, un seul gros bouton permettant la validation des changements de l'onglet en cours. Si vous changez d'onglet avant de l'avoir cliqué, les changements seront perdus.
Un petit dialogue vous informe que les modifications ont bien été effectuées. Selon l'état de la case à cocher "Déployer", l'interface restera ouverte ou se fermera après la validation de cet ultime dialogue.

N'oubliez pas que vous pouvez fermer l'interface à tout moment en cliquant sur la petite croix en haut et à droite. Pour réafficher l'interface, servez-vous du même lien "EF.Conf". Toutes les préférences de configuration *actuelles* seront rechargées, effaçant les modifications non sauvegardées.

Les préférences en détail

MesEscouades

Le nom de votre escouade sur chacun des trois serveurs actuels (Venice, Xaeno, Babel).

MesCibles

Nota bene v1.60 : cette partie est obsolète, je ne la cite plus que pour raison "historique".
Ce sont des cibles additionnelles, en plus de celles prédéfinies: les membres de votre escouade, les dieux, les fidèles d'un dieu.
Un cible est définie par un critère et un seul: soit un nom de personnage (prioritaire), soit un nom d'escouade (moins prioritaire) soit un alignement de personnage (le moins prioritaire). Vous pouvez définir autant de cibles que vous le souhaitez.
L'autre paramètre d'une cible est la couleur de la bordure, que vous pouvez définir par un nom de couleur "web" ou un code hexadécimal (n'oubliez pas de le faire précéder d'un dièse "#" : par exemple "#FF0000" est un rouge vif).
Bien sûr, les cibles sont distribuées par serveur.

MesListesMessagerie

Des listes prédéfinies de destinataires, toujours sous la main, sur lesquelles vous pouvez cliquer pour les insérer dans le champ des destinataires dans le formulaire de messagerie, soit en créant un nouveau message, soit en répondant à un message.
Elles sont séparées par serveur, bien évidemment.
Tous les destinataires doivent avoir leur nom écrit tel qu'apparaissant dans le jeu, mais sans souci de casse (majuscules/minuscules), et séparés par des point-virgules (avec ou sans espace avant et après, aucune importance).
Le nom de la liste est important, il apparaîtra sous forme d'un lien, il doit donc être à la fois explicite et court, sachant qu'une infobulle sur ce lien rappellera la liste des destinataires correspondante.
Exemple : liste de destinataires comprenant Thorkel, la déesse Baidi et votre serviteur, Helloser, sur Venice ; on va la nommer "Torkhel+Baidi+Helloser". Et une deuxième sur Venice nommée "ADP" et comprenant juste Tony :
Nota bene : il faut mettre "Thorkel+Baidi+Helloser" entre guillemets du fait du caractère "plus" ("+"), ou d'un espace, ou d'un signe de ponctuation. Néanmoins, je déconseille fortement d'utiliser des caractères accentués. "ADP" étant un mot composé uniquement de caractères non accentués et de chiffres, sans espace ni signe de ponctuation ou caractère avancé, il peut être écrit tel quel sans guillemets.
Si vous n'êtes pas certain, mettez des guillemets, ça ne fera jamais de mal.

MobilEpic

Les préférences de l'utilitaire externe MobilEpic, le calculateur de rush.
Il est déjà pré-configuré pour une utilisation basique, dont voici les paramètres:

Vue

Tout ce qui se rapporte spécifiquement à la configuration des éléments ajoutés à la vue par EpicFriend : le marquage de l'escouade du personnage, des dieux, des fidèles si votre personnage est un dieu, les éléments génériques tels que l'affichage des PV, des enchantements, du niveau et de la race, etc.

BordureCible

Nota bene v1.60 : cette partie est obsolète, je ne la cite plus que pour raison "historique".
Les éléments d'apparence de la bordure des cibles, définies plus haut dans "MesCibles". La couleur est définie pour chaque cible, on retrouve ici les préférences communes d'apparence de la bordure, soit:

MemeEscouade

Les éléments d'apparence du marquage des joueurs de votre escouade (dont votre personnage). Il y a trois styles prédéfinis, qui peuvent être modulés ou totalement changés par des paramètres de style CSS additionnels, si vous avez de bonnes connaissances. Sinon la configuration par défaut vous offre déjà pas mal de liberté.

Exemple 1 : marquer son escouade d'un fond bleu très transparent (opacité de 0.3 au maximum) :
	type: "fond",
	couleurFond : "blue",
	couleurBord : "",
	styleBord : "",
	epaisseurBord : "",
	opacite : "0.3",
	CSS : "",
	Afficher: true
							
Exemple 2 : marquer son escouade d'un point bleu assez opaque avec liseré noir, et le déporter sur la gauche du personnage :
	type: "point",
	couleurFond : "cyan"
	couleurBord : "black",
	styleBord : "",
	epaisseurBord : "",
	opacite : "0.75",
	CSS : "left: 2px !important;",
	Afficher: true
							
Exemple 3 : marquer son escouade d'une bordure bleue claire de 2px en tirets :
	type: "bordure",
	couleurFond : "",
	couleurBord : "cyan",
	styleBord : "dashed",
	epaisseurBord : "2px",
	opacite : "",
	CSS : "",
	Afficher: true
							

BordureFidele

Nota bene v1.60 : cette partie est obsolète, je ne la cite plus que pour raison "historique".
Les éléments d'apparence de la bordure des fidèles, si votre personnage est un dieu. Si vous n'êtes pas un dieu, même si tout est configuré, rien n'apparaîtra (forcément).

Dieu

Les éléments d'apparence du marquage des dieux. Ce marquage suit la même configuration que le marquage des cibles v2.
Exemple : marquer les dieux avec un fond transparent à 30% coloré en jaune :

	type: "fond",
	couleurFond : "yellow",
	couleurBord : "",
	styleBord : "",
	epaisseurBord : "",
	opacite : "0.33",
	CSS : "",
	Afficher: true
							

Fidele

NOUVEAU VERSION 1.60 !

Les éléments d'apparence du marquage des fidèles si vous êtes un dieu. Ce marquage suit la même configuration que le marquage des cibles v2.
Exemple : marquer les fidèle d'une bordure de 1px d'épaisseur, orange et solide :

	type: "bordure",
	couleurFond : "",
	couleurBord : "orange",
	styleBord : "solid",
	epaisseurBord : "1px",
	opacite : "",
	CSS : "",
	Afficher: true
							

Enchantements

L'apparence de la ligne de codes abrégés d'enchantements en bas de chaque avatar dans la vue.

NiveauRace

L'apparence du bloc coloré en haut et à gauche, indiquant le niveau par un chiffre, de taille proportionnelle à ce dernier, et la race par la couleur de fond.
La configuration est la même qu'Enchantements, hormis l'absence de SeparateurCodesAbreges (spécifique à ce dernier).

PV

L'apparence du bloc jaune en haut et à droite, indiquant le nombre de points de vie restants, de taille proportionnelle aux blessures du personnage.
La configuration est la même que NiveauRace ci-dessus.

Divers

Divers paramètres d'affichage des annotations de la vue:

Rapport

La configuration du rapport de vue EpicVue :

CouleursRaces

Ce réglage est utilisé dans toute l'extension. Les valeurs par défaut ont été choisies pour donner meilleur affichage possible partout où elles sont utilisées, et pour être le plus proches possible de celles utilisées par la carte stratégique magique dans le jeu.
Pour assurer une compatibilité avec d'anciennes versions, je vous conseille de faire figurer deux fois le réglage des morts-vivants, avec le tiret ("Mort-vivant" avec les guillemets) et sans (MortVivant sans tiret).
Si vous modifiez l'une des valeurs, modifiez de la même manière celle de la propriété "jumelle".

CodesAbregesEnchantements

La correspondance entre le nom simplifié de l'enchantement (le nom de la propriété) et la valeur du code abrégé utilisé à la fois dans l'annotation des joueurs dans la vue et dans le rapport de vue EpicVue.
Tous les enchantements du jeu n'y figurent pas, c'est volontaire: seuls les plus importants stratégiquement et les plus utiles et utilisés le sont, pour des raisons de gain de place dans les annotations et pour ne pas polluer inutilement la vue.
Nota bene : en ajoutant un astérisque "*" à la suite immédiat du code abrégé, vous le ferez apparaître coloré en rouge dans la barre d'enchantements des annotations de la vue ainsi que dans EpicVue. C'est un code permettant de différencier les enchantements négatifs des positifs, comme la configuration par défaut le montre: EntravePsychique, Poison, Faiblesse, etc.

CouleursAlignements

De même que pour CouleursRaces, ce réglage est utilisé à de nombreux endroits : le rapport de vue EpicVue, la page d'escouade ou de clergé, le résumé d'inventaire...
De même que pour CouleurRaces également, l'une des propriétés est en double: rodeur : ... et "rôdeur" : ... afin d'assurer la compatibilité rétrograde. Changez toujours de manière identique les deux valeurs.

CouleursBlessureEscouadeEpicVue

Ce réglage détermine la couleur utilisée dans le rapport de vue EpicVue et la page d'escouade/clergé pour mettre en valeur les blessures.
Les réglages par défaut font aller progressivement du noir (non blessé) au rouge vif (mourant), par paliers successifs, correspondant respectivement à :

CouleursBlessureVue

Comme ci-dessus, mais concernant les annotations de PV dans la vue.

VuePartagee

Le module de vue partagée est aussi configuré depuis l'interface d'EpicFriend.
Le seul réglage actuellement est de l'activer ou pas. En fait vous activez ou désactivez l'envoi de vos données au serveur, mais disposez quoi qu'il arrive des données de votre race.
Il est évident que plus de gens partagent leurs données, meilleur est l'outil. :)

Cibles v2

Cet élément représente le nouveau système de cibles, amené à remplacer dès la version 1.60 d'EpicFriend l'ancien système appelé "MesCibles".

Quelles différences ?

L'ancien système permettait d'associer à une cible: un critère (soit un nom de joueur, soit un nom d'escouade, soit un alignement de classe) et un seul trait d'apparence (une bordure dont le style et l'épaisseur étaient fixés et dont on pouvait changer la couleur).
Le nouveau système est bien plus souple, il associe à une cible plusieurs critères possibles et un ensemble prédéfini de plusieurs traits d'apparence.

La configuration en détail

Les critères

Il peut également accepter plusieurs même critères, sur le mode "ET" ou "OU" :

Les traits d'apparence

L'un des traits, "type", détermine en fait les autres à remplir obligatoirement.

Le détail de chacun des critères possibles hormis type déjà détaillé ci-dessus :

Afficher

Chaque cible peut être désactivée individuellement.
Un bug fait qu'une nouvelle cible créée est désactivée, n'oubliez pas d'aller ensuite dans la configuration générale pour l'activer.

Limitations

Un joueur ne peut recevoir qu'un seul marquage.

Bug connus

Liste des améliorations

Version 2.2.4

Version 2.2.3

Version 2.2.1

Version 2.01

Version 2.0

Bonus

Une feuille de style modifiant l'affichage natif d'EpicFriend en rappelant à la fois EpiKbar et EpicZilla (basé en fait sur le premier style d'EpicVision, l'ancêtre d'EpicFriend) : EpicFriend-AltStyle, à utiliser par exemple à l'aide de l'extension Stylish qui permet d'appliquer un style externe à n'importe quel site affiché.
Et une autre de Garneuil qui modifie sensiblement aussi l'apparence d'EF : EpicFriendly.

Liens