Sphinx-Maplink

Sphinx-Maplink

Comme tous mes plugins, ce script est publié sous licence CC BY 4.0.

L’utilisation est assez simple. Cependant, pour que le maplink fonctionne, il est nécessaire que les deux cartes à joindre utilisent le même tileset, ou au moins que tous les éléments de chaque carte affichée sur l’autre soient placés de facon identique sur les 2 tilesets.
Une fois jointes, les lignes (pour les maps au dessus et en dessous)/colonnes (pour les maps à gauche et à droite) à proximité de la jointure seront affichées sur la map courante.

Les remarques à insérer dans les propriétés des cartes sont les suivantes :

  • <linkLeft:ID_CARTE> : Pour joindre la carte ID_CARTE à gauche
  • <linkRight:ID_CARTE> : Pour joindre la carte ID_CARTE à droite
  • <linkTop:ID_CARTE> : Pour joindre la carte ID_CARTE au dessus
  • <linkBottom:ID_CARTE> : Pour joindre la carte ID_CARTE en dessous

Voilà un premier schéma expliquant comment joindre différentes cartes ensemble, la map courante étant celle sur laquelle se trouve le joueur.

Un maximum de 4 cartes peuvent être jointes : une au dessus (linkTop), une en dessous (linkBottom), une à gauche (linkLeft) et une à droite (linkRight).

Il n’est pas nécessaire que les cartes jointes fassent la même dimension, mais le côté en commun devrait être de même taille sur les deux cartes pour éviter l’apparition de tiles noirs au niveau de la jointure.

En outre, actuellement, les jointures sont alignées à partir de la gauche de chaque carte pour les jointures horizontales (linkLeft et linkRight) et à partir du haut pour les jointures verticales (linkTop et linkBottom).

Dans l’exemple ci-dessus, le coin en haut à gauche serait rempli de tiles vides. Une solution pourrait être alors d’empêcher le joueur d’approcher de ce coin. Cependant, le maplink peut également remplir ce vide automatiquement, si les cartes 2 et 3 sont elles même jointes à une même carte comme dans le schéma ci-dessous :

En outre, les évents présents dans les zones affichées des cartes jointes seront aussi affichés si ceux-ci ont une apparence sur au moins une page. Les évènements ainsi ajoutés ne seront pas exécutés (dans le cas où ceux-ci sont en démarrage automatique ou en processus parallèle) et leur apparence sur la carte sera conditionné aux mêmes règles que sur leur propre carte.

Ce plugin intègre 2 paramètres :

  • Taille jointure horizontale : Nombre de colonnes de tiles affichées des cartes jointes à gauche ou à droite (par défaut : 9)
  • Taille jointure verticale : Nombre de lignes de tiles affichées des cartes jointes au dessus ou en dessous (par défaut : 7)

Le choix des valeurs par défaut s’explique ainsi : dans le cas de la résolution par défaut des jeux RMMV (soit 17×13 tiles) c’est le nombre de lignes/colonnes qu’il faut ajouter à la carte courante pour que le joueur ait l’impression de se déplacer sur une seule et même carte plutôt que sur plusieurs morceaux de plus petite taille.

Pour un rendu optimal, il est évidemment recommandé de bien penser à faire les jointures sur les 2 cartes (sans quoi, au moment de la téléportation de la première carte à la seconde, le joueur se retrouve totalement au bord de la carte).

Ce plugin est actuellement destiné à être utilisé pour remplacer de grandes cartes (connues pour lagguer) comme de grandes villes ou de longues routes/grottes/… par de plus petites assemblées les unes aux autres.

Ce qui reste à intégrer/améliorer :

  • Fluidifier la transition entre 2 cartes (actuellement, si le joueur se déplace avant la fin de sa téléportation – s’il maintient une touche de déplacement par exemple -, il y a comme un effet saccadé au moment de la transition)
  • Intégrer la possibilité d’un décalage dans la jointure
  • Joindre des maps utilisant des tilesets différents
  • Mettre un tile par défaut pour remplacer les tiles vides

Voici une vidéo montrant ce qu’on peut obtenir avec ce système :

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.