Partagez
Aller en bas
avatar
pinguino21v
Membre

Nombre de messages : 199
Age : 28
Localisation : Vous êtes ici
Distinction : aucune
Date d'inscription : 22/07/2008

Des monstres sur la carte

le Jeu 24 Juil 2008 - 1:04
Pour mon premier tutoriel (et premier post sans considérer la présentation), je vais vous expliquer comment gérer des monstres agressifs sur la carte qui attaque à une certaine portée.
Ca a été testé, c'est fonctionnel, il est tout à fait possible d'y coller vos propres envies.
En vert, quelques indications/conseils.
Edit: Deuxième cas installé: apparition soudaine de monstre. Un petit truc sympathique et relativement simple.

I ) DES MONSTRES SUR LA CARTE

Utilisable pour: rencontres aléatoires, gardes, phases d'infiltration...

L'évènement se décompose en 4 pages :
- En premier, l'ennemi ne bouge pas, fait une patrouille, ou ce que vous voulez
- En deuxième, le héros passe un peu trop près de lui et il se met à courir dans sa direction
- (Facultatif) Une troisième page permet d'arrêter le déplacement de l'ennemi lors du déclenchement d'un interrupteur (utile par exemple lorsque le héros fouille un tonneau, ouvre une carte...)
- Et une dernière avec le monstre mort

Suivez les images pour écrire l'évènement... Attention à bien respecter l'ordre des pages!

Page 1 - En attente



Munissez-vous donc d'un évènement situé au même niveau que le héros et en déclenchement parallèle. Donnez-lui l'apparence d'un monstre. Vous pouvez lui faire faire des déplacements tant qu'il ne suit pas le héros (ici, mon orc effectue un déplacement gauche gauche attente droite droite attente).

On commence par insérer une étiquette puis on sauvegarde dans 4 variables les coordonnées du monstres et celles du héros.
Créez une variable X et une Y pour le héros et une X et une Y pour chaque monstre de la carte, autrement, il risque de se créer des chevauchements de calcul. Vous pouvez cependant réutiliser ces variables dans d'autres zones, elles ne servent qu'à calculer la distance.
On calcule la distance qui sépare les X, les Y, puis les X+Y (déterminer la distance qui sépare ces deux évènements que sont le monstre et le héros).
On entre alors dans la condition, si cette distance est inférieure ou égale à celle voulue (ici 3), alors on active un interrupteur (Orc01c, global afin de pouvoir relancer l'évènement si vous sortez de la zone).
Il est possible de se servir d'interrupteur local si vous souhaitez laisser le monstre sur le qui-vive même une fois sorti de la zone. En y revenant, il retournera à sa position initiale et vous poursuivra directement.
Sinon, on retourne à l'étiquette.

Page 2 - Course-poursuite




Dans cette partie, il faut gérer la course du monstre en direction du héros ainsi que le lancement d'un combat. Suivez donc l'exemple ci-dessus: en condition l'interrupteur précédemment utilisé, et en déplacement "Suit le héros". Préférez une fréquence de 5 (pas d'arrêt brusque entre chaque pas). Enfin, la vitesse 4 est la vitesse de base du héros, et la 5 celle de course.

Vous pouvez commencer par effectuer une petite animation (exclamation, saut, flash, son...).
On effectue cette animation au début de la page 2 et non durant la condition de la page 1 afin de l'activer pour chaque monstre qui pourrait être lié sur la carte (imaginons un campement de 3 orcs, si vous passez trop près de l'un d'eux, les autres réagiront aussi).
Placez une étiquette ensuite, et recopiez le début du code de la première page, càd le calcul de la distance.
La condition est la même également, à la différence qu'il faut tester une distance de 1 (le héros est à côté du monstre).
Si l'ennemi est proche, le combat débute. Sinon, on retourne à la première étiquette.
On peut évidemment éventuellement créer une petite animation, du genre le monstre qui saute sur le héros, à vous de vous débrouiller.
Lorsque le combat prend fin, on active un deuxième interrupteur (Orc01m, comme groupe d'Orcs numéro 1, morts)

Page 3 - Petite pause
Cette partie est facultative mais apporte un plus non négligeable pour pas grand chose.



Assez peu de chose à dire, cette page s'active si le monstre vous court après (interrupteur Orc01c) et que vous avez activé un interrupteur (Pause monstres) pour l'occasion.
L'évènement ne bouge pas, est animé à l'arrêt, et se tourne vers le héros.
L'interrupteur "Pause monstres" peut être utilisé lorsque vous ouvrez un coffre, que vous parlez à quelqu'un, ou que vous lancez un quelconque évènement. N'oubliez pas de le désactiver ensuite pour retourner en page 2.



Page 4 - RIP



L'image parle d'elle même, la page 4 correspond au monstre mort.
Il est tout à fait possible de laisser un butin au sol derrière lui, vous êtes suffisement grands pour gérer ça seuls.

Quelques notes



N'oubliez pas qu'une fois un monstre placé en état de course-poursuite ou tué, les interrupteurs liés sont toujours activés. Pensez à les désactiver en sortant de la zone si vous souhaitez faire réapparaitre les monstres.
Il faut désactiver les interrupteurs dans un évènement parallèle dans la carte voisine, si vous les désactivez dans l'évènement de téléport, les monstres réapparaitront un court instant dans la carte actuelle.

Les variables utilisés lors des calculs sont réutilisables dans chaque nouvelle carte. Faites juste attention à ce que deux monstres dans une même carte n'aient pas les même.
Les interrupteurs utilisés pour activer course-poursuite et mort sont réutilisables dans chaque nouvelle carte. Sur une même carte, utilisez les mêmes uniquement pour des monstres liés. Notez que si vous souhaitez que les monstres disparaissent une bonne fois pour toute une fois morts, vous pouvez utiliser un interrupteur local pour gérer la mort (remplacer Orc01m dans mon cas).
Ici, pour les interrupteurs, j'utilise le terme carte mais si vous souhaitez que les monstres ne réapparaissent qu'une fois passés par la carte du monde ou en changeant de "région" (une région étant composées de plusieurs cartes), il faudra utiliser deux interrupteurs par groupe de monstre, dans la région, et pas que dans la carte (les variables peuvent par contre être réutilisées sur chaque carte). Passer par la carte peut également faciliter la réinitialisation des monstres, en désactivant les quelques interrupteurs une unique fois pour toutes les régions (rappelez-vous que les interrupteurs peuvent être réutilisés si vous souhaitez un repop des monstres).

Il est tout à fait possible de gérer d'autres idées, par exemple un monstre endormi ne se mettra en mode "course-poursuite" que si le joueur s'approche de lui en courant (il faudra peut-être aussi penser à gérer le cas ou le joueur "parle" au monstre endormi, par exemple en lançant un autre combat où l'on active une altération d'état sommeil dès le premier tour). Vous pouvez aussi vous amuser à créer un groupe de monstres liés voués à encercler le héros, créer des monstres très lents mais terriblement dangereux ou bien créer un monstre fuyard (si vous avez atteint un certain niveau).
Libre à vous d'imaginer d'autres choses.

Autre note: une fois le premier évènement écrit, copiez-collez le une fois et, si ce nouveau monstre est destiné à la même zone, modifiez les variables de coordonnées et les interrupteurs si vous ne voulez pas les lier (créez vous une petite carte vierge stockant chaque numéro de monstre (variables), il n'y aura plus qu'à changer son apparence, la distance de détection et sa vitesse). Ca peut paraitre laborieux (et ça l'est) mais je n'ait pas d'autre méthode à vous proposer.

II ) APPARITION SOUDAINE

Utilisable pour : combats surprises de monstres cachés, de brigands, ou d'évènements moins belliqueux comme une amie furieuse envers le héros qui l'a surpris en train de fuir :p

On va étudier le cas général où le héros arrive dans un carrefour, par l'un des 4 côtés. Le monstre surgit sur son chemin, le regarde, puis saute dessus.

Rien de compliqué. Commencez par créer un évènement vide qui servira de monstre. Créez juste l'évènement, ne touchez à rien d'autre qu'au nom. Placez-le ensuite dans un endroit que le héros ne peut atteindre (si le monstre saute d'un bosquet, mettez-le dedans tant qu'à faire). Cet évènement est réutilisable pour chaque occurrence du monstre et même pour des monstres différents.
Vous pouvez cependant changer sa priorité d'affichage pour le mettre au dessus du héros afin que, lors du saut, l'évènement paraisse logique (le monstre lui saute dessus, pas dessous).

Créez un deuxième évènement qui sera le déclencheur: lorsque le héros pose le pied dessus, le monstre apparait.






Epluchons cet évènement.
Il est invisible (mais ça, vous pouvez en changer, comme créer un piège), ne bouge pas, est sous le héros et se déclenche au contact du héros.

Image 1
Les deux premières lignes enregistrent la position de l'évènement "monstre" pour le replacer dans un endroit qui ne gène pas à la fin.
Les deux suivantes enregistrent la position du héros. Puis on entre dans une grande condition afin de placer le monstre correctement suivant le côté où arrive le personnage.
Il est tout à fait possible d'en enlever si vous êtes certain du chemin de votre héros.
Les commentaires signifient que le monstre arrive par le côté mentionné. Pour le faire arriver de l'autre côté, changez ce qui est indiqué.


Images 2-3-4
On place ensuite l'évènement "monstre" et on joue un son d'arrivée (un cri).
Vient la grosse partie de la mise en scène, avec les mêmes conditions que précédemment. Tout d'abord le déplacement du monstre (on "n'attend pas la fin" pour jouer le déplacement du héros en même temps), dont on change le charset. On le fait regarder la route, le fait sauter dessus, le fait regarder le héros. Un petit instant de pause, puis le monstre se prépare à bondir avec un pas en arrière.
Parallèlement, on joue une exclamation au héros, qui, surpris, sautera en arrière ("Attendre la fin" est activé).
Notons que lorsque le héros doit sauter à gauche ou à droite, il faut le bloquer en direction fixe le temps du saut.
On peut rejouer un son. Puis on fait faire au monstre un double bond pour atterrir sur le héros.
Les conditions se terminent...

Image 4
Avant de démarrer le combat, on modifie le charset du monstre en "invisible". Placez ce morceau après et on verra le monstre un court instant après le combat. Mieux vaut le supprimer avant.
Le combat démarre.
Ensuite, on déplace le monstre à l'emplacement enregistré dans les variables au tout début.
Vous pouvez bloquer le joueur quelques instants en sortie de combat en attendant la fin du déplacement de l'évènement déclencheur, et par la même occasion, le transformer en coffre (pas besoin de le bouger, le héros a sauté en arrière).
En dernier point, un interrupteur: local si vous ne souhaitez pas relancer l'évènement, global autrement (interrupteur a désactiver sur un autre carte, limitrophe, voir notes du premier tuto).

L'évènement est tout à fait personnalisable. Ici, je me suis inspiré de l'arrivée des boss dans Golden Sun.

Encore une fois, si vous êtes certains du côté où arrive le héros, vous pouvez supprimer un grand nombre de choses. C'est juste qu'avec cet évènement, un copier-coller suffit pour le relancer (en changeant l'interrupteur).

J'aimerai éviter les fameux combats dits aléatoires dans mon projet. J'espère avoir été suffisement clair, n'hésitez pas à poser vos questions et à faire des remarques.


Dernière édition par pinguino21v le Jeu 24 Juil 2008 - 12:31, édité 3 fois (Raison : Modif 2ème tuto)
avatar
Invité
Invité

Re: Des monstres sur la carte

le Jeu 24 Juil 2008 - 1:19
Merci, ce tuto va m'être vraiment utile même si il a l'aire un brin compliqué ( bon je suis pas fut fut non plus )
Je le testerais ,... et bonne nuit lol!
avatar
oliver25a
Membre

Nombre de messages : 107
Age : 40
Localisation : Orléans (45)
Distinction : aucune
Date d'inscription : 17/05/2008
http://doh45.free.fr

Re: Des monstres sur la carte

le Jeu 24 Juil 2008 - 1:54
merci beaucoup !!!!
très utiles pour les phrases d'infiltrations de mon projet (justement là ou j'en suis ) ...
le retour des 700 variables car il va y avoir plus d'un monstre et plus d'un garde sur la carte
avatar
pinguino21v
Membre

Nombre de messages : 199
Age : 28
Localisation : Vous êtes ici
Distinction : aucune
Date d'inscription : 22/07/2008

Re: Des monstres sur la carte

le Jeu 24 Juil 2008 - 2:02
hirios a écrit:Merci, ce tuto va m'être vraiment utile même si il a l'aire un brin compliqué ( bon je suis pas fut fut non plus )
Si tu copies exactement les images, rien de difficile. La seule chose qui peut l'être, c'est gérer correctement les interrupteurs/variables, pour ne pas avoir d'erreurs de monstres qui repop ou pas, ou de monstres inactifs ou trop actifs.

hirios a écrit:Je le testerais ,... et bonne nuit lol!
Ah oui tiens, quand on s'amuse, on ne voit pas le temps passer...

@oliver25a a écrit:merci beaucoup !!!!
Un plaisir!

J'ajoute de suite le cas d'une apparition soudaine (elle est largement améliorable, je regarderai ça demain).
Edit: elle a été améliorée


Dernière édition par pinguino21v le Jeu 24 Juil 2008 - 12:29, édité 1 fois
avatar
DarkAngelMik
Membre

Nombre de messages : 220
Age : 27
Localisation : Thetford Mines (Québec)
Distinction : aucune
Date d'inscription : 04/03/2008
http://rpgmania-vx.forumperso.com/

Re: Des monstres sur la carte

le Jeu 24 Juil 2008 - 9:52
Super le tuto
Il sera certainement utile à plus d'uns :P
Merci du partage
avatar
constantine
Membre

Nombre de messages : 15
Age : 24
Localisation : Tournai
Distinction : aucune
Date d'inscription : 08/03/2008

Re: Des monstres sur la carte

le Jeu 24 Juil 2008 - 13:06
Super tuto!!
Ca tombe bien je fai un donjon et je cherchais un systême dans le genre il va m'etre TRES utile.
Merci.
avatar
freezia
Staffeux retraité

Nombre de messages : 1734
Distinction : Elu membre de l'année 2009 haut la main.
Inventeur du Mapping Show.

caricaturatationeur de la comu'
[ Dudu']
Date d'inscription : 18/02/2008

Re: Des monstres sur la carte

le Jeu 24 Juil 2008 - 13:39
J'ai réaliser un tuto du même genre ICI .
Moins difficile à mettre en place mais peut être un peu plus laborieux pour l'organisation .

En gros c'est pour ceux qui ne veulent pas se casser la tête avec des variables .
Mais ce tuto a un système plus développer que le mien .

Alors si vous voulez faire un système de monstres sur cartes durant tout votre jeu ... je vous conseil celui de pinguino21v .
Mais si c'est seulement pour un passage éphémère dans le jeu, le mien offre moins de complexe . Si vous êtes du genre pas trop casse tête .
avatar
pinguino21v
Membre

Nombre de messages : 199
Age : 28
Localisation : Vous êtes ici
Distinction : aucune
Date d'inscription : 22/07/2008

Re: Des monstres sur la carte

le Jeu 24 Juil 2008 - 14:40
Je suis du même avis freezia.
Cependant ta version fonctionne sous xp mais sous vx, il y a un soucis: au "contact du héros". Ca ne marche que si le héros se déplace en direction de l'évènement. Donc si on ne bouge pas le héros et que le monstre se rapproche, rien ne se déclenche. Sous xp, il y a "contact event/héros" (que tu utilises), pas sous vx. Il faut donc effectuer le calcul que j'ai indiqué plus haut pour tester la proximité.
Et oui, j'y avait pas pensé, mais "effacer cet évènement" doit pouvoir rendre le repop moins compliqué à gérer (en enlevant le second interrupteur, de mort).
avatar
Asterite
Membre

Nombre de messages : 9
Distinction : aucune
Date d'inscription : 06/07/2008

Re: Des monstres sur la carte

le Jeu 24 Juil 2008 - 14:56
Je pense adopter le tiens, Freezia.

Pas mal en tout cas le tutoriel Smile
Contenu sponsorisé

Re: Des monstres sur la carte

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum