Une semaine tournée vers la chasse MVP: un carnet de respawn partagé entre amis, la zone des sorts dessinée au sol, un monde dépouillé sans installer le moindre GRF — et quatre instances entières qui prennent enfin du service.
✨ Nouveautés
- Le Carnet de chasse MVP. Un journal de respawn partagé entre les comptes d'un même groupe de chasse : on met ses observations en commun, et chacun voit ce que les autres ont vu. La règle est simple et assumée — le carnet connaît la loi (les deux chiffres publics du script de spawn) mais jamais le tirage du serveur, sauf payé d'un Convex Mirror. Une ligne annonce donc presque toujours une fenêtre (« 1h57 – 2h07 ») plutôt qu'une heure. Une même clé par MVP et par carte — Atroce vit sur quatre cartes, et « Atroce » tout seul ne désigne rien. Chaque observation dit désormais qui l'affirme, vieillit, et quand sa fenêtre est passée le bouton propose de la remplacer plutôt que de la relire : une information périmée qui a l'air fraîche est pire qu'une information absente. Ouverture par le menu Échap -> Moonlight Settings -> Interface de Jeu -> Carnet de chasse, une icône de Menu ou un raccourci.
- Partager un respawn dans le chat. Clic droit sur une ligne du carnet → « Partager le respawn dans le chat », et l'observation part dans la conversation : « [MVP: Baphomet (gef_dun03) — retour 21:12–21:22] », avec la position de la tombe quand on l'a. C'est le seul moyen de dire à quelqu'un hors de votre groupe ce que vous savez — le carnet, lui, ne franchit jamais la frontière du groupe. Le lien vieillit : il se recompose tout seul et s'éteint quand sa fenêtre est passée. Il traverse aussi le relais Discord et la shoutbox du site, avec un horodatage affiché dans le fuseau de chaque lecteur.
- La zone d'un sort se dessine au sol pendant l'incantation. Le client savait le faire, mais rien ne l'allumait : seuls 24 sorts de MVP portaient le drapeau, aucun sort de joueur. 125 sorts le portent désormais, et le carré tombe là où l'on vise — le serveur transmettait jusqu'ici la position du lanceur, ce qui ne se voyait pas chez kRO où les rares sorts concernés se lancent sur soi.
- Le monde dépouillé, sans installer un seul GRF. Ce que la communauté RO se passe en .grf pour la WoE, mais à l'exécution — donc sur toutes les cartes, sans rien remplacer sur votre disque, et réversible d'un clic. Quatre leviers sous un interrupteur : les décors 3D masqués, le quadrillage du sol lu dans la carte de collisions (marchable, mur, infranchissable mais tirable — trois dessins au choix, plus un filtre « contour des obstacles » dix fois moins cher), le sol d'une seule couleur. En prime, « aplatir le relief » met toute la carte à une seule altitude. Et @refreshmap recharge la carte sur place pour voir le changement tout de suite, au lieu d'attendre le prochain warp.
- Une visite guidée « Découvrir Bourgeon ». Une page par nouveauté, un gif qui montre le geste, un texte qui l'explique. Elle s'ouvre à la première entrée en jeu, retient la page où vous vous êtes arrêté, et se rouvre depuis le panneau de réglages. Le contenu est une simple donnée livrée par le patcher : de nouvelles pages arriveront sans mise à jour du client. Déjà traduite en espagnol.
- Le Para Market ouvre ses portes — 68 PNJ, et surtout le premier commerce du serveur où le stock peut s'épuiser : chaque article a une réserve finie partagée par tout le serveur, réapprovisionnée à minuit, avec une rotation selon le jour de la semaine. Un puits à zeny avec de la rareté, et une raison de se connecter à heure fixe. On y trouve enfin de façon fiable les parchemins de Meteor Storm, Storm Gust et Lord of Vermilion niveau 10 (100 000 z, 100 par jour), et les monnaies de farm des villes renewal — Mora Coin, Proof of Sapha's Honor, Splendide Coin, Manuk Coin. Le Warp Agent y va directement (menu « Autre »), au lieu des deux écrans de marche qu'il fallait traverser.
- Le marché à stock limité passe à la nouvelle interface, avec sa réserve affichée article par article.
- Un onglet « Probabilités » dans la fiche d'objet. Le bouton ouvrait jusqu'ici la fenêtre du client, qui s'affichait sous la description. Le contenu devient un onglet : les taux d'un coffre se lisent au même endroit que le reste, au pourcentage près de l'original. Et comme suivre un lien remplace l'objet affiché, un bouton « Retour : nom » apparaît au-dessus des onglets — on peut désormais plonger dans une carte sertie ou un membre de combo et revenir sur ses pas.
- Qui s'absente peut le dire. Passé cinq minutes sans rien toucher, les autres joueurs voient le « zzz » du jeu flotter au-dessus de votre personnage et « [AFK] » devant votre pseudo. Deux cases distinctes, et un délai à part de celui de l'écran de veille : prévenir ses amis ne coûte plus de perdre son interface et sa caméra. Purement cosmétique — vous gardez tous vos moyens et repartez sans transition.
- Le compteur de dégâts est refait de fond en comble : DPS en gros caractères, pastille qui bat en combat, courbe en aire dégradée avec son pic marqué, et un bilan PIC / MOY / TOTAL. Hors combat le bilan reste lisible avec la durée du dernier affrontement, au lieu d'un « (pas en combat) » à la place de tout.
- Le champ de chat grandit avec la phrase et affiche la place restante dès la deuxième ligne. Le serveur coupe à 254 caractères et jetait le message sans un mot au-delà ; la barre le retient maintenant et vous le dit. Les accents ne bloquent plus la frappe avant la vraie limite.
- L'Atlas des recettes gagne le clic droit sur ses lignes : base de données du site, lien de chat, vote shop, alootid, @iteminfo, @whodrops — tout ce que l'inventaire propose, et qui n'était joignable nulle part depuis l'Atlas.
- Un menu de PNJ se valide aussi par un bouton « OK », à côté d'« Annuler ». Qui naviguait aux flèches lisait la liste comme inerte.
⚖️ Équilibrage & jeu
- Quatre instances prennent du service. Elles dormaient dans le dépôt, jamais branchées, et il leur manquait à chacune de quoi fonctionner en pré-renewal :
- Temple of the Demon God — les six quêtes de fin (dont celle qui porte le cooldown de 3 h) et les deux apôtres manquaient. L'accès direct par le Warp Agent déposait les joueurs devant un PNJ infranchissable, faute de la quête que la chaîne 14.3 donne en amont : corrigé. Brinaranea et Muspellskoll avaient perdu leur statut de Boss au portage — stunnables, gelables, repoussables et insensibles aux bonus « contre Boss » : rendu.
- Infinite Space — 58 monstres portés, et le script annonce désormais les monstres restants à chaque kill, à la façon d'Endless Tower. Les délais avant l'ouverture du passage et la chute du coffre sont supprimés : on pouvait franchir le warp avant même que les objets n'apparaissent.
- Edda Half Moon in the Daylight — dix-sept monstres, cinq objets, quatre quêtes et 98 lignes de compétences de boss.
- Sky Fortress — onze monstres absents, et les treize qui n'avaient aucune compétence : un boss sans ses lignes se contente de taper au corps à corps, en silence. Stefan.J.E.Wolf, boss final, était même chargé sous le nom et les stats d'un gabarit.
- Dix-sept parchemins de mercenaire ne faisaient rien du tout. La base des mercenaires n'était jamais chargée : le dialogue annonçait que le renfort vous rejoignait, et il ne se passait strictement rien, sans le moindre message d'erreur. Kasa, Salamander, Eddga, Ktullanux, Chepet et les autres fonctionnent, ainsi que les escortes d'instance.
- La carte Nidhoggur Shadow ne donnait que +5 INT. Son second effet — la réduction de temps d'incantation fixe — n'existe tout simplement pas sur un serveur pré-renewal : le code qui le lit n'est pas compilé. Il devient -10 % d'after-cast delay pour High Wizard et Warlock, ce qui accélère le mage dans le seul sens qui ait encore du sens ici, et entre en concurrence avec le reste de l'équipement au lieu de trivialiser quoi que ce soit.
- Vingt-deux cartes d'instances n'étaient dans aucun album. Temple du Dieu Démon, Infinite Space, Tournoi Magique de Geffen, Pyramide Nightmare, Sarah & Fenrir : les mobs les lâchaient bien, mais les Old Card Album et Magic Card Album avaient pris du retard sur les portages. Douze rejoignent le palier de Thanatos et Randgris.
- Quarante-quatre butins pointaient vers des groupes d'options aléatoires absents — des drops de Bakonawa et du donjon de magma, commentés faute de mieux. Les 74 groupes manquants sont portés.
- @whodrops ignorait trente et un monstres. Le préfixe « E_ » était lu comme « event » et les monstres concernés écartés d'office ; chez les hors-la-loi de Rock Ridge, il veut dire Elite. Résultat : la commande répondait « cet objet n'est droppé par aucun monstre » sur les trois cartes Elite Buffalo Bandit, qui tombent pourtant bel et bien.
- Six nouvelles évolutions de familiers : Teddy Bear → Aliot et Alicel, Nightmare Terror et Wanderer vers leurs formes supérieures, Desert Wolf et Fire Golem. Elles étaient écrites depuis longtemps, mais dans un fichier que le serveur ne lisait pas.
- Neuf destinations manquaient à la navigation : Para Market, Flame Bassin et les sept salles PvP/GvG du Warp Agent n'avaient aucun itinéraire.
- @storecard rangeait dans le vide au premier appel de la session — rien n'était rangé, et le coffre s'ouvrait tout seul un instant plus tard. Au second appel tout marchait, ce qui rendait le défaut d'autant plus déroutant.
- @users affichait « 0889#000004 » au lieu du nom lisible d'une carte d'instance.
- L'autotrade est autorisé à Gonryun (gon_in), comme sur les cartes voisines.
- @partybuff est retirée : elle basculait un affichage qui n'a jamais existé, et vous répondait que c'était fait.
💬 Chat, Discord & Sting-Bot
- Sting-Bot ne renvoie plus un joueur vers lui-même. Une ligne de ses consignes désignait un joueur comme « le spécialiste stuff du serveur » ; dès que cette personne lui parlait, son propre nom réveillait l'association et le bot lui conseillait d'aller se demander à elle-même — sur un sujet que personne n'avait abordé.
- Sting-Bot récitait ses consignes traduites en chinois au milieu d'une réplique. Une longue directive en français adressée à un modèle chinois peut ressortir telle quelle, traduite, au lieu d'être appliquée. Corrigé, avec au passage un seuil de détection des répétitions qui donnait deux réponses différentes selon le sens de la comparaison.
- Le « zzz » d'absence ne s'évaporait plus au bout de quelques secondes. Une altération d'état qui expirait suffisait à l'effacer chez tous les voisins : il semblait avoir une durée.
- Un mot entre chevrons dans un dialogue de PNJ n'est plus avalé. « Enter ^6B9900<Wave Mode - Forest>^000000. » s'affichait « Enter . » — la moitié de la phrase escamotée, sans trace. Seules les vraies balises du client sont désormais interprétées ; le reste s'affiche tel que le script l'a écrit.
- La recherche de navigation coupe le nom de PNJ à son dièse. Les scripts nomment leurs PNJ « Visible#interne », et le client n'affiche jamais ce qui suit — mais un lien de chat relayait le nom brut, et la recherche ne trouvait alors rien du tout.
🛠 Confort & corrections
- Le décor vivant de l'écran de connexion affiche enfin les vraies couleurs des joueurs qui passent : ils s'y montraient tous en palette d'origine, jamais dans le style choisi par leur propriétaire.
- Deux clients sur la même machine ne se disputent plus le décor. Le second s'ouvre simplement sur l'écran de connexion ordinaire, tout de suite et sans rien afficher, au lieu d'attendre plusieurs secondes une boîte d'erreur que personne n'a demandée. La place se libère dès que le premier joueur se connecte.
- L'identifiant technique du décor ne traîne plus dans le champ de connexion — le repli « Login classique » s'ouvrait sur un formulaire déjà rempli avec lui, et on pouvait entrer en jeu sur un personnage qui ne peut ni marcher ni parler.
- Le décor rend sa connexion tout seul au bout de cinq minutes : la scène reste simplement figée, au lieu d'une coupure serveur qui affiche une boîte par-dessus le formulaire. Il a par ailleurs été privé de tout ce dont il n'a pas besoin — il ne parle plus, n'écoute plus les canaux, ne rejoint aucun groupe et n'agit plus sur le monde.
- La fenêtre de journal se figeait passé 2000 lignes — exactement au moment où un diagnostic devient long.
- Le panneau d'autoloot porte le cadre du client et ne mord plus sur la description qu'il prolonge.
- L'infobulle d'une altération d'état pose sa propre marge : survolée depuis la barre d'états, son texte touchait le bord du panneau.
- « Partager la recette » se grise et dit pourquoi quand la chatbox moderne est éteinte, au lieu d'un clic sans effet ni explication.
- L'icône du cash shop ne réclame plus au client un fichier qui n'existe pas.
- Optimisations : la réception réseau ne recalcule plus trois fois par paquet, les caches de textures et de noms n'allouent plus à chaque image, et les tables triables comme la recherche du chat ne repartent plus de zéro à chaque frame.
- Localisation : le compteur d'images du choix de personnage, et plusieurs textes manquants en anglais et en espagnol.
🔧 Sous le capot
- Le data.grf de 5 Go se lit. Le format d'archive « Event Horizon » n'a jamais été chiffré : c'est l'ancien format étendu aux fichiers de plus de 4 Go. Il est désormais lisible par nos outils, ce qui débloque le travail sur les ressources du serveur.
- Deux outils pour le portage d'instances : un audit qui déroule toute la checklist (monstres, compétences, quêtes, cartes, options, warp agent) et un vérificateur de cellules. Quatre instances portées en deux jours, chacune avec ses manques silencieux qui ne font échouer aucun démarrage — la checklist est maintenant du code.
- Relevés du client poursuivis : le système de clan, les fenêtres ouvertes par une touche, celles ouvertes par une compétence, et un recensement des zones du client encore inexplorées.
Merci à tous ceux qui remontent les bugs en jeu (Ctrl+Alt+B) — et bonne chasse à ceux qui inaugurent le carnet MVP. 🌱