[Tutoriel] Le maplink
I - Introduction a) AvertissementL'utilisation de Pokémon Script Project nécessite les connaissance des bases de RM XP, si vous ne les avez pas veuillez les acquérir avant de lire et utiliser ce tutoriel.
b) Mot de l'auteurOn m'a proposé dans la petite boîte verte au dessus de partager mes connaissance sur PSP, donc me voilà ^O^
Bon tuto !
b) Le maplink, c'est quoi ? A quoi sert-il ?Le "maplink" ou "liaison de carte" est utilisé pour produire un effet de grande carte. Le fait d'utiliser cette méthode fait en sorte que le héros reste toujours au centre même si il est en bord de map vu qu'une autre s'y "attache".
Ceux qui ont déjà jouer à Pokémon connaissent en général l'effet produit sinon jouer à une *** et constaté par vous même que le héros se trouve toujours au centre.
Un exemple de jeu qui ne fait pas ce maplink : Zelda. Regardez bien, quand vous arrivez en bout de zone/map vous vous rapprochez du bord de l'écran et hop téléporté en bordure d'une autre zone/map.
Si vous n'avez toujours pas compris regardez des vidéos sur le net.
II - Le maplink en script 1 - Le système logique a) ExplicationsChaque carte n'as le droit d'avoir que 4 cartes voisines, 1 de chaque côté seulement !
Une à l'ouest (à gauche), une au nord (en haut), une à l'est (à droite) et une au sud (en bas).
Les cartes ne doivent pas se chevaucher, mais elle peuvent être décalées.
Schèma : [spoiler]

[/spoiler]
Pour finir, les cartes qui doivent être liées avec celle du centre doivent se chevaucher de 3 lignes/colonnes.
Comme ça : [spoiler]
Map nord (haut) qui doit se liée avec la map centrale :

La map centrale qui doit se liée avec la map nord :

[/spoiler]
b) UtilisationDans les trois lignes identiques à chaque maps il faut mettre les évents de téléports tel que le téléport doit téléporter derrière l'autre téléport sinon le joueur serait retéléporter !
[spoiler]
En bleu et rouge les téléports avec leurs destinations respectives.
Map nord (haut) qui doit se liée avec la map centrale :

La map centrale qui doit se liée avec la map nord :

[/spoiler]
Si vous avez des doutes, véréfiés que le résultats soit tel que :
Résultat :
[spoiler]

[/spoiler]
Maintenant, la jonction script, très simple si on observe bien !
jonction_map(n_id, n_x, e_id, e_y, s_id, s_x, o_id, o_y)
Mais que vont donc dire ce charabia ?
Dans l'ordre nous trouvons :
n_id qui signifie ID de la carte NORD, celle que vous voulez mettre au dessus.
n_x signifie le nombre qui corrigera le décalage de carreaux horizontal vu que c'est une carte qu'on attache en haut (n) (vertical)
e_id qui signifie ID de la carte EST, celle que vous voulez mettre à droite.
e_y signifie le nombre qui corrigera le décalage de carreaux vertical vu que c'est une carte qu'on attache à droite (e) (horizontal)
s_id qui signifie ID de la carte SUD, celle que vous voulez mettre en dessous.
s_x signifie le nombre qui corrigera le décalage de carreaux horizontal vu que c'est une carte qu'on attache en bas (s) (vertical)
o_id qui signifie ID de la carte OUEST, celle que vous voulez mettre à droite.
o_y signifie le nombre qui corrigera le décalage de carreaux vertical vu que c'est une carte qu'on attache à gauche (o) (horizontal)
Maintenant que mettre à ses emplacement pour notre exemple ?
Déjà on sait que l'on veut maplinké la carte au dessus, au nord, avec l'autre.
Sachez qu'il faut mettre les coordonnés sur les deux cartes, donc on va commencer par l'évent de la carte centrale.
Event à mettre en processus parallèle sur la map centrale [spoiler]
Donc on va s'intéresse à : n_id, n_x le reste on en à pas besoin vu qu'on maplink avec qu'une carte.
On en est là :
jonction_map(n_id, n_x, 0, 0, 0, 0, 0, 0)
On va compléter l'ID de la carte NORD.
Il faut relevé cette ID sur le logiciel, en sélectionnant la carte, ici celle qui sera au NORD, et en regardant ici :
[spoiler]

[/spoiler]
Maintenant, il reste à trouver quoi mettre ici : n_x
Erreur possible de votre part, assez courante : [spoiler]Beaucoup de monde croient qu'il faut mettre le nombre de carreaux de différence en largeur !
Pas besoins d'un screen pour vous dire où trouvez la largeur des maps, soit à côte l'ID en bas de l'écran soit dans les paramètre de la map, clique droit sur le nom de la map, propriété.
Ma map nord fait 50 de largeur et ma map centrale 43. Logiquement, beaucoup diraient il faut mettre -7 pour décalé la map nord vers la droite et faire en sorte "que cela fasse 43 aussi". Mais bizarre : C'est comme même décalé.[/spoiler]
Mais moi, je vais vous démontré le nombre correct à mettre !
Il ne faut pas prendre comme basse la largeur mais la différence entre le bord gauche de la map et jusqu'au dernier carreaux avant les téléports. Et faire pareille sur les deux maps, voici les résultats :
[spoiler]
Map nord :

Map Central :

[/spoiler]
Maintenant une petite opération : 24 - 16 = 8 !
Mais que mettre ? -8 ou 8 pour cela, continuons d'observer : pour aligner la map centrale avec la map nord, il faudrait "retirer" 8 carreaux en partant de la gauche sur la map du dessus ! Il faut mettre -8 !
Le résultat de la fonction dans notre cas est :
jonction_map(7, -8, 0, 0, 0, 0, 0, 0)
[/spoiler]
Event à mettre en processus parallèle sur la map nord :[spoiler]
Maintenant qu'on à fait la map centrale, donc la sud par rapport à celle-ci.
Il suffit de bien placé l'ID de la map sud qui est déjà reliée. Et de récupéré notre -8 et d'inverse sa valeur : 8.
L'ID de ma map centrale, sud si on ce base sur la map nord, est 8.
Donc s_id = 8 et s_x = 8
Pour ceux qui ne se rappelle plus de la formule :
[spoiler]
jonction_map(n_id, n_x, e_id, e_y, s_id, s_x, o_id, o_y)
[/spoiler]
Ce qui donne :
jonction_map(0, 0, 0, 0, 8, 8, 0, 0)
[/spoiler]
2 - L'utilisation concrète a) Un autre exemple concret (1 horizontal / 1 vertical déjà fais au dessus)En bleu et rouge les téléports avec leurs destinations respectives.
En jaune l'écart entre le bord haut et le dernier carreau avant le premier téléport.
Map ouest (gauche) qui doit se liée avec la map Est (droite).
Récapitulatif des données récoltés en images :
[spoiler]

[/spoiler]
Pour ceux qui ne se rappelle plus de la formule :
[hide=Spoiler]
jonction_map(n_id, n_x, e_id, e_y, s_id, s_x, o_id, o_y)
[/hide]
Opération pour la différence de carreaux : 18 - 7 : 11.
ID de ma map Ouest (gauche) : 5
Donc pour l'évent de la map Est (droite) :
jonction_map(0, 0, 0, 0, 0, 0, 5, 11)
Pourquoi 11 et pas -11 ? Tous simplement sur le même principe, on veut que le chemin se poursuive, dont il faudrait éliminer la hauteur en trop pour que les deux bouts soient en face !
Comme tout à l'heure on inverse, le 11 qui nous donne -11.
On récolte l'ID de la map Est (droite) : 4
Et l'évent pour la map Ouest (gauche) est :
jonction_map(0, 0, 4, -11, 0, 0, 0, 0)
Alors c'est si dur le maplink ?
b) Les différences entre les deux méthodesAvec le maplink scripté on ne voit pas les évents de l'autre maps, donc un personnage en bordure apparaîtra brusquement et de même pour tous autres évents.
Cependant vous gagnez un gain énorme en temps à ne pas mapper, et vous cassez la tête, 8/9 lignes/colonnes identiques avec l'autre map !
III - Le maplink en évents 1 - Le système logiquePour le principe en évents, cela repose sur le fait de mapper 8/9 lignes supplémentaires et identiques à la map où vous allez être téléporté et mettre les évents de téléportations juste avant ces 8/9 lignes pour produire un effet de continue.
2 - L'utilisation concrète a) Un exemple concret (Avenir) b) Les différences entre les deux méthodesAvec le maplink en évents vous perdrez un temps incalculable !
Mais l'avantage vous pouvez placer des évents identiques à ceux de l'autre map pour ne pas avoir l'effet d'apparition brusque, cependant cela surcharge la map en évent, et dans le pire des cas provoquera un lag !
Attention au bug graphique, les autotiles en bordure de maps font comme s'ils continuent alors que sur l'autre map, ça se continue pas forcément, il peut y en avoir d'autre que je ne connais pas.
IV - Les problèmes (Avenir) a) Les erreurs de paramétrages, leurs conséquences. b) Les incompatibilités avec certains scripts. c) Les bugs pouvant se produire...V - Remerciement, créditMon tutoriel vous a été utile ? Je ne pourrez le vérifier mais si c'est le cas j'aimerais une petite place dans vos crédit ^o^ pour la simple est bonne raison que ce topic m'a pris un temps fou et que ça se trouve sans moi, vous n'y arriveriez pas !
Ce tuto est fait entièrement par moi (et c'est Palbolsky qui corrige les fautes d'orthographes car le côté tutoriel m'a suffisamment passer le temps xx"). Si vous avez des questions n'hésitez pas à me demander.
PS : Encore des erreurs de spoilers, je verrais plus tard, désolé, je l'ai déjà bien retapé à cause des balises qui ne sont pas les même que sur PSP.