[RPG-MAKER.FR] Oniromancie: tout l'univers de RPG Maker en français - Tutoriels - Comment économiser pas mal d'event de téléportations


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace

Apprendre
RPG Maker

Guides
Tutoriels
Astuces
Making-of


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Nylu
Par NanakyTim

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

Sortie: RME 2.0.0 pour VX Ace / Tutos: Game design: ouvrir son jeu aux (...) / Guides: Cinq derniers conseils (...) / Guides: Cinq nouveaux conseils (...) / Guides: Cinq conseils généralistes pour (...) /

Chat  

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

111 connectés actuellement

10245687 visiteurs
depuis l'ouverture

726 visiteurs
aujourd'hui



Barre de séparation

Partenaires






TOP
GAMEMAKING


Les 5 plus
visités

Akademiya RPG Maker

Alex d'Or

Blog of Chaos17

BloGecko

ConsoleFun

Au hasard

ConsoleFun

Alex d'Or

New RPG Maker

Les deux derniers

Zarok

Akademiya RPG Maker

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs




Comment économiser pas mal d'event de téléportations
Ecrit par Perséphone

Puisque je n'utilise pas RMXP, ce tuto s'applique à RM03 mais il est probable qu'il fonctionne également pour le jeunnot^^.

- Ce qu'on voit d'habitude -

Comment fait-on, lorsqu'on atteint le bord d'une map, pour téléporter sur une autre map? En général, on se retrouve avec le bord de ces 2 maps tartiné d'événements:

image

On a là 26 événements. Vous vous retrouvez donc à faire du copier-coller sur tout le bord de la map, en modifiant à chaque fois le point de téléportation. Assez gonflant, non?

- Ce qu'on va faire -

Alors effacez-moi tout ça et ne gardez qu'un seul événement, sur la 1ère map, qu'on appellera "Map 1".
Mettez-le ds un coin de votre map, en Processus Parallèle, Au dessus ou Sous le héros afin qu'il n'interfère pas avec le jeu.
Parfait, on va pouvoir passer à la prog maintenant. Mémorisez la position du héros ds des variables appelées respectivement "ID map", "X map", "Y map".
A présent, admettons que map 1 fasse 20 sur 15 et que vous souhaitez envoyer votre personnage sur la map 2 (qui fait la même taille), et ce sur tout le bord droit (sur le dessin, de toute la partie bleue de map 1 vers toute la partie violette de map 2).

image

Lorsque votre personnage se trouve sur l'une des cases de la dernière colonne (en bleu), il a pour coordonnées Y=(un nombre quelconque) X=19 (en effet, la première colonne compte pour 0). Puisque votre événement parallèle enregistre ces coordonnées, Y map=(nombre quelconque), X map=19 et ID map=1 (<- le numéro de la map).
A l'inverse, les coordonnées des points d'arrivées sur la colonne gauche de la map2 sont Y=(nombre quelconque), X=0 et ID=2.
Nous allons alors donner les deuxièmes coordonnées comme position mémorisée à la base, afin que lorsqu'on reviendra à la position mémorisée elle correspondra aux coordonnées d'arrivée et non à celles de départ.

Mettez ds l'événement une fourchette de condition:
<>Si variable (X map) 19
<>Variable(s): (X map) =, 0
<>On ne change pas Y
<>Variable(s): (ID map) =, 2
<>Attendre 0,2 sec. ( sinon à peine le bord du charset et non du personnage aura toucher une case de la colonne qu'il sera téléporté. Il faut lui laisser le tps de terminer son pas.)
<>Revenir à la position: ID (ID map), X (X map), Y map (Y)
<>
<>Fin

Normalement, depuis n'importe quel point de la colonne de coordonnée X=19 vous devriez arriver sur la case correspondante sur l'autre map.
A présent nous allons nous occuper du retour.

Créez un événement parallèle sur la deuxième map et mettez-y la même chose que précedemment, en utilisant les mêmes variables:
<>Mémoriser la position : ID (ID map), X (X map), Y (Y map)
<>Si variable (X map) 0
<>Variable(s): (X map) =, 19
<>On ne change pas Y
<>Variable(s): (ID map) =, 1
<>Attendre 0,2 sec.
<>Revenir à la position: ID (ID map), X (X map), Y map (Y)
<>
<>Fin

Voilà! Notre système de téléportation simplifié est fait, ce qui vous permet d'économiser un max d'événements! Normalement, tout fonctionne à merveille et quand votre héros arrive au... Quoi? Un bug?
En effet: vous remarquerez sans doute qu'une fois votre personnage arrivé sur la 2e map, il fait immédiatement demi-tour et se retrouve téléporté sur la 1ere map qui le retéléporte à nouveau sur la 2e et ainsi de suite. C'est tout simplement que lorsqu'il arrive sur l'autre map, il se retrouve "détecté" par l'autre événement de téléportation qui se déclenche. C'est pourquoi il nous faut modifier légèrement les coordonnées, pour qu'il arrive une case plus loin:
Dans l'événement de la map 1:
<>Si variable (X map) 19
<>Variable(s): (X map)=, 1")
<>On ne change pas Y
<>Variable(s): (ID map) =, 2
<>Attendre 0,2 sec.
<>Revenir à la position: ID (ID map), X (X map), Y map (Y)
<>
<>Fin

Dans le 2e:
<>Mémoriser la position : ID (ID map), X (X map), Y (Y map)
<>Si variable (X map) 0
<>Variable(s): (X map)=, 18
<>On ne change pas Y
<>Variable(s): (ID map) =, 1
<>Attendre 0,2 sec.
<>Revenir à la position: ID (ID map), X (X map), Y map (Y)
<>
<>Fin

C'est réglé! Ce système marche également à la verticale où là ce sont les Y que vous devez modifier et laissez intacts les X.

- "Et si mes deux maps ne font pas la même taille?" -

Ce système de téléportation se complexifie un peu si vos maps ne sont pas de la même taille. En effet vous devrez calculer la différence de coordonnées qui existent entre les deux maps. Je vous donne un exemple:
Ma map1 fait 40 sur 40 tandis que ma map2 en fait 25 sur 25, qui est un pont, et qui se situe à droite de ma 1ère carte.
Je souhaite que lorsque mon personnage se retrouve sur le point de s'engager sur la pont, il s'y téléporte. Je devrais donc me retrouver avec cet événement:
<>Mémoriser la position : ID (ID map), X (X map), Y (Y map)
<>Si variable (X map) 39
<>Variable(s): (X map)=, 1
<>Je ne change pas Y
<>Variable(s): (ID map) =, 2
<>Attendre 0,2 sec.
<>Revenir à la position: ID (ID map), X (X map), Y map (Y)
<>
<>Fin

Mais le problème, c'est que puisque ma map2 fait 25x25, si mon personnage a Y≠zone d'interface entre les 2 maps (zone bleue) le point d'arrivée n'existe pas et donc le programme plantera ^^'. Et si, dans la première map, le personnage n'a rien pour être bloqué (zone jaune), je risque de le retrouver dans l'eau lorsqu'il passera sur la 2e map:
image

Alors comment faire? Simplement limiter la zone de téléportation au début du pont (zone rouge) avec les coordonnées. Bien sûr, à ce nv, 2 cases à configurer, on peut utiliser la façon de faire traditionnelle mais cela pourra vous servir pour exclure d'autres endroits, comme par exemple, empêcher le joueur de terminer sur le mur d'une maison qui ne commence que sur la 2e map.
Attention!
- primo, nous n'allons plus utiliser la fonction "=" en ce qui concerne le changement de X et maintenant de Y mais "-" ou "+"
- secundo, étant donné la différence de taille des maps, le pont n'est pas considéré comme étant aux mêmes coordonnées:

Coordonnées du début du pont (map1): Y=(19 et 20)
Coordonnées de la suite du pont (map2): Y=(13 et 14)

<>Mémoriser la position : ID (ID map), X (X map), Y (Y map)
<>Si variable (X map) 39
<>Si variable (Y map) 19 ou plus
<>Si variable (Y map) 20 ou moins (<- vous pourriez mettre "=" tant que vous y êtes, mais il s'agit vraiment de chercher à délimiter une zone qui pourrait être plus grande)
<>Variable(s): (X map)= -, 38
<>Variable(s): (Y map)= -, 6 (<- 19 - 13 = 20 - 14 = 6)
<>Variable(s): (ID map) =, 2
<>Attendre 0,2 sec.
<>Revenir à la position: ID (ID map), X (X map), Y map (Y)
<>
<>Fin

Pour le retour vous inversez: vous soustrayez au lieu d'ajouter et vice-versa.

Ouf enfin fini!
Ce système peut être utilisé ds de nombreux cas, à vous de faire preuve d'imagination!
Je dois avoir fait le tour, si vous avez un problème ou que vous voulez que je vous aide pour des cas particuliers, n'hésitez: MP ou mail!


Bastienre4 - posté le 07/07/2008 à 20:50:14 (21 messages postés)

Petit Maker ^^

bai moi je trouve beaucoup de simple le copier coller enfin apres c mon avid :)

J'apprends le C++ (c'est pas gagner :F)


Youhouy - posté le 14/08/2008 à 09:09:20 (5 messages postés)

Super !! Seulement il faudrait que ça marche remarques je sais pas ce que tu veux dires par ''Mémoriser la position'' et ''Revenir à la position'' (J'utilises VX c'est pas 1 soucis?)


Mastermanu (visiteur non enregistré) - posté le 31/08/2008 à 23:47:16

Désolé mais je n'ai pas bien compris où je dois aller pour placer les variables et ect...
ça serait sympa de placer les screens des commandes de l'event.
Surtout pour des débutants sachant se servir de Rpg maker.


peron - posté le 25/09/2008 à 12:26:54 (94 messages postés)

Loumia pour paques !

Merci pour le tut aux pouets!!!

Après une ptite galère por comprendre toutes ces variables

Citation:

Youhouy - posté le 14/08/2008 à 09:09:20. (5 messages postés)

Super !! Seulement il faudrait que ça marche remarques je sais pas ce que tu veux dires par ''Mémoriser la position'' et ''Revenir à la position''



Voilà ce que fait (ya peut etre moyen d'optimiser mais bon....):
Pour "mémoriser" il faut:
-créer un evt commun qu'on nomme "memo position hero" par exemple."processus parrallèle" déclanché par le premier événement activé lors du jeux, comme ça l'événement fonctionne tout le temps.
-dedans on "gère une variable" que l'on nomme "position X hero" égale à "événement":cocher "position X" du "zhéros". O.K
-on gère une autre variable qu'on nomme "position Y hero" égale à "événement":cocher "position Y" du "héros"
-on gère la dernière variable qu'on nomme "position ID hero" égale à "autre": cocher "ID carte"
-cliquer sur O.K..et fermer les evts communs.

Ceci permet de "charger les variables de position du héros tout le temps du jeu.

Sur la carte concernée par la pseudo télétransportation, dans l'événement créer pour ça. On appelle l'événement commun "memo position hero", on copie colle le tuto là haut et voilà.

:bave


lloyd-attak - posté le 11/10/2008 à 12:19:00 (3 messages postés)

Comment on fait pour memo l'endroit ou est le perso svp parce que je trouve pas... :-)


catchoun - posté le 30/11/2008 à 16:06:42 (20 messages postés)

Bravo, c'est tout simplement génial et ça aide bien... juste un ch'tit événement dans un coin et le tour est joué pour maîtriser toutes les téléportations dans tous les sens ;)
Merci beaucoup, ça m'a été très très utile :)

c'est un jour de perdu que celui où tu n'as pas souri


bowlde - posté le 03/04/2009 à 19:56:21 (3 messages postés)

j'aimerais juste savoir si ça marche sur RMvx et comment parce que je suis perdu la -_-...


Tata Monos - posté le 04/04/2009 à 06:54:18 (56891 messages postés) - misteroniro

Vive le making libre

oui

Pixner|Offgame | Le comptoire des clikeurs


bowlde - posté le 04/04/2009 à 11:29:43 (3 messages postés)

Comment on fait pour VX ou xp je comprends rien meme avec 2003 image


Florior742 - posté le 12/09/2009 à 17:06:55 (41 messages postés)

Excellent tuto, pour relier de grandes maps ^^ De plus, cette technique est également un excellent exercice de variables, et j'ai trouvé de cette façon des tas d'autres situations pour appliquer ton tuto ^^


Ulquiorra - posté le 03/10/2009 à 20:51:14 (1913 messages postés)

Super tuto, grâce à lui, tous mes téléports d'une map tiennent en un seul event !

Et oui, moi aussi, je vois bien d'autres pistes possibles (planchers piégés, bruitages localisés, toussa ...)

Merci donc >w<


Alioune - posté le 02/11/2009 à 11:10:41 (25 messages postés)

Merci beaucoup, génial ton tuto!

Gain de temps énorme, possibilité de modification rapide(surtout si on veux modifier, par exemple, le bruit de téléport des 50 événements...), gain de place pour les évènements (pages moins fouillies), possibilités multiples, possibilité de marcher là où il y avait anciennement les évent de téléportation(Condition : si le héros regarde vers ...), Programmation pas très compliquée, et surtout, je le répète GAIN DE TEMPS ÉNORME! MERCI!

Bonne continuation! A+


SPIDer++ - posté le 05/01/2010 à 19:00:07 (13 messages postés)

Débutant en Making, C, et Pascal, également Araignée qui poste plus vite que son ombre

Pour ceux qui ont Vx et qui comprennent pas:

Créez Trois Variables: ID Map, X Map, et Y Map.
Créez l'event en parallèle, au dessous du héros.Puis rentrez:

>Opération : Variable [0002 : ID Map] = ID de la carte
>Opération : Variable [0003 : X Map] = Héros : Coordonnée X
>Opération : Variable [0004 : Y Map] = Héros : Coordonnée Y
[Pour gauche/droite:]
>Condition : Si Variable [0003 : X Map] == 0*Tlp A gauche* 19*A droite*
> Opération : Variable [0002 : ID Map] = *ID de la carte où vs voulez aller*
>Opération : Variable [0003 : X Map] = *Indiquez la coord. X ou vs voulez aller*
>Opération : Variable [0004 : Y Map] = *Indiquez la coord. Y ou vs voulez aller*
>Attendre 10 Frames *ou 20, à vs de voir*
>Teleporter l'équipe : ID: [0002], X: [0003], Y: [0004]
>
|Fin Condition
>Condition : Si Variable [0004 : Y Map] == 0*Tlp En haut* 19*En bas*
>*Mettez la portion de code qui est à l'intérieur de l'autre condition*
|Fin condition
>

N.B.:Tout ce qui est entre astérisques est commentaire.
N.B.2: La valeur 19 concerne seulement l'exemple du tuto, une map de 100*100 ce sera 99...
N.B.3:Mettez 0 pour en haut/à gauche ou 19 pour en bas/à droite, question condition.Vous n'arriverez pa à mettre les deux:avert2:D

En espérant que vous comprendrez,

Votre tout sauf dévoué SPIDer++:demon

P.S.:Il faudra mettre un event comme ça pour chaque carte, après à vous de vous adapter:ombre

P.S.2:Au fait, merci pour ce tuto, c'est ce qu'il me fallait!

C'est en Makant qu'on devient Maker, et en disant des trucs débiles qu' on devient diseur de trucs débiles...comme moi XD


chyro - posté le 29/01/2010 à 14:26:59 (93 messages postés)

la légende revient

joli tuto ;)mais quelqu'un pourrait il m'expliquer comment l'adapter pour XP pliz?:help


tampaxor - posté le 11/06/2010 à 11:33:40 (10274 messages postés)

Pratique ça ! Si ça continue, je me remets à maker pour le fun !

Chaîne Youtube | Twitter | Facebook | Blog | Fruity Loops, nouvelles bases | Fruity Loops, les VST | SoC | Flickr


reelie - posté le 23/10/2010 à 22:07:29 (35 messages postés)

Marine

Ce n'est rien d'autre que compliqué !

Hell, it's about time !


masterhunter13 - posté le 17/05/2011 à 19:25:31 (40 messages postés)

(très) jeune maker

euh copier coller je pense que c'est mieu :goutte

j'ai la flemme d'écrire une signature...

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site:

Communauté: Accueil | News | Forum | Flash-news | Sorties | Chat | Commentaires | Galerie | Blogs | Articles perso | Screen de la semaine | Palmarès | Livre d'or | Recherche | Interviews | OST | L'Annuaire | Divers
Apprendre: Le Wiki | Tutoriels | Guides | Gaming-Live | Tests | Making-of
Télécharger: Programmes | Scripts | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | Collection Oniro | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Hébergés: Aëdemphia | Fighting Robots Quest | Geex | Inexistence | La Légende d'Ibabou | Nylu | Sarcia | Super Mario RPG - Lost Souls
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis