[RPG-MAKER.FR] Oniromancie: tout l'univers de RPG Maker en français - Tests de jeux RPG Maker - Gérer plusieurs terrain de combats sur une seul map


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

Jeux: Inexistence / Tutos: Faire de la neige facilement en (...) / Jeux: ARCH ULTRA / Sorties: ARCH ULTRA / News: Alex d'Or 2019 : Les Vainqueurs ! /

Chat  

Bienvenue
visiteur !





Désactiver
la neige


publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

135 connectés actuellement

10318163 visiteurs
depuis l'ouverture

99 visiteurs
aujourd'hui



Barre de séparation

Partenaires






TOP
GAMEMAKING


Les 5 plus
visités

Akademiya RPG Maker

Alex d'Or

BloGecko

ConsoleFun

Eclipso

Au hasard

Le bazar à Omega

Indiexpo

Guelnika & E-magination

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




Gérer plusieurs terrain de combats sur une seul map
Ecrit par luminou

Bonjour et bienvenue à tous dans mon premier tuto.
Dans ce tuto, je vais tenter de vous expliquer comment créer différentes zones de combats, à l’aide des numéros des types de terrains. Des hautes herbes dans Pokémon pour ainsi dire.
Ce tuto va se séparé en trois parties (un peu confondue les une dans les autres) :
- La détection du terrain (une variable).
- Le nombre de pas effectué sur le terrain (5 variable).
- Le déclanchement d’un combat en fonction du nombre de pas (1 variable).
Le tout assemblé avec une tonne de condition (je plaisante).
I La détection du terrain :
Pour commencer nous allons assigner un N° de type au terrain désiré, personnellement j’ai choisie de l’herbe (Pokémon quand tu nous tien !!!!!). Je vais donc conservé mon exemple :
Tout d’abord pressons la touche F9, puis l’onglet « Gestion des chipsets », Terrain et enfin nous assignons a l’herbe la valeur 1, comme ceci :
image
Maintenant créons un événement en processus parallèle dans lequel on insère la variable [0001] appelé « carré » et assignons lui la valeur du N° du type du terrain où se trouve le héro, comme ceci :
image
Et pour finir nous allons détecter si le héro se trouve dans le terrain en question ou pas, avec une simple condition :

Portion de code:

Si la variable [0001 : carré] a pour valeur 1
	Sinon :
	Fin.

II Calcule du nombre de pas effectué sur le terrain.
Nous voici dans la partie la plus compliqué de l’algorithme car RMXP ne donne pas directement la possibilité de compté les pas du héros mise a part les pas totaux. Je vous donne donc le code et l’expliquerais par la suite pour les plus courageux :

Portion de code:

Variable [0003 : Pos X héro] rendre égale à la coordonnée X du héro.
Variable [0004 : Pos Y héro] rendre égale à la coordonnée Y du héro.
Si la valeur de [0003 : Pos X héro] est différente de la valeur de la Variable [0005 : Pos X Pré].
	Si la valeur de [0004 : Pos Y] héro est différente de la valeur de la Variable [0006 : Pos Y Pré].
		[0005 : Pos X Pré] rendre égale à [0003 : Pos X héro].
		[0006 : Pos Y Pré] rendre égale à [0004 : Pos Y héro].
		[0002 : Nombre pas] ajouté 1.
		Condition : si la variable [0007 : Pas requis] est égale à 0.
			Variable [0007 : Pas requis] rendre égale à une valeur aléatoire entre 20 et 30.
			Variable [0007 : Pas requis] rendre égale à [0007 : Pas requis].
		Sinon :
		Fin.
	Sinon :
		[0005 : Pos X Pré] rendre égale à [0003 : Pos X héro].
		[0002 : Nombre pas] ajouté 1.
	Fin.
Sinon :
	Condition : si la valeur de [0004 : Pos Y] héro est différente de la valeur de la Variable [0006 : Pos Y Pré]. 
		[0006 : Pos Y Pré] rendre égale à [0004 : Pos Y héro].
		[0002 : Nombre pas] ajouté 1.
	Sinon :
		Variable [0007 : Pas requis] rendre égale à [0007 : Pas requis]. 
	Fin.

Fin (De réserve).
Voilà maintenant je vous donne les EXPLICATION :
Pour commencer vous avez pu constater que la partie III empiète un peu sur notre partie II ce qui est normal car certain chose doivent être faites a un moment précis et cela offre une sécurité.
Entrons dans le vif du sujet :
Tout d’abord nous devons compter les pas du héro comme RMXP ne le fourni pas directement nous allons détecter un mouvement par un changement de position (c’est bête à dire mais bon …).
Nous créons donc 4 variable, 2 pour détecter la position actuel du héro et 2 pour sauvegarder la position précédente du héro. Si la position actuel est différente de la position précédente c’est donc qu’il ya eu déplacement. On assigne donc aux variables [0003 : Pos X Héro] et [0004 : Pos Y Héro] les coordonnées en X et en Y du héro, comme ceci (pour X) :
image
Ensuite nous devons comparais ces coordonnées avec les coordonnées précédente appelé [0005 : Pos X Pré] et [0006 : Pos Y Pré]. (Pour la 1ère fois elles sont initialisées à zéro) à l’aide d’une condition par coordonnée et ajouté si nécessaire +1 à la variable [0002 : Nombre pas] (qui compte les pas^^). Tout les cas de figures doivent être envisagés comme sur ce tableau :
image
Analysons maintenant ce tableau et rapportons-le au code :
Dans le code nous imbriquons des conditions pour avoir tous les cas de figures
Cas N°1 : Y oui et X non. Cela ce traduit par un déplacement de gauche à droite rien de compliqué la dedans on compare la position actuel avec la position précédente, mètre à jour la position précédente (avec [0006 : Pos Y Pré] rendre égale à [0004 : Pos Y héro].) et incrémenté la variable [0002 : Nombre pas].
Cas N°2 : X oui et Y non. Cela ce traduit par un déplacement de haut en bas toujours rien de compliqué la encore on compare la position actuel avec la position précédente, mètre à jour la position précédente (avec [0005 : Pos X Pré] rendre égale à [0003 : Pos X héro].) et incrémenté la variable [0002 : Nombre pas].
Cas N°3 : X non Y non. Cela veut tout simplement dire que vous n’avais pas bougé ou que vous êtes sortie du terrain. Vous avez remarqué qu’à ce j’ai mis : « La variable [0007 : pas requis] rendre égale à [0007 : pas requis].» et bien oui ceci permet de la sauvegardé et vous comprendrai pourquoi juste après.
Cas N°4 : X oui Y non. Le cas le plus compliqué car à première vue il traduit un mouvement en diagonal (Nous supposons bien entendu ne pas disposer des déplacements de ce type), mais il ne traduit pas que ça il traduit aussi le fait de rentré dans l’herbe car les coordonnée étant initialisé à 0 et n’étant prisent en compte que lorsque le héro est dans les herbe la modification des deux coordonnée est synonyme d’entré dans les herbe (j’espère ne pas vous avoir embrouillé).
Bien nous disions donc le cas N°4 est l’entré dans l’herbe il faut donc :
- Mètre à jour les coordonnées précédentes des deux variables.
- Incrémenté la variable [0002 : Nombre pas] de +1.
- Et vous avez vu une condition supplémentaire avec la

Portion de code:

variable [0007 : Pas Requis] :
Condition : si la variable [0007 : Pas requis] est égale à 0.
		Variable [0007 : Pas requis] rendre égale à une valeur aléatoire entre 20 et 30.
		Variable [0007 : Pas requis] rendre égale à [0007 : Pas requis].
Sinon :
Fin.

Comme le cas N°4 traduit l’entrée dans l’herbe nous devons empiéter sur la partie III et générer un nombre de pas aléatoire pour nos combats. La condition permet juste d’évité que le jeu ne génère un nombre a chaque passage dans l’algorithme (100 fois/sec je crois) mais juste une fois qu’il en a un (différent de 0) il arrête d’en chercher un. La seconde ligne permet de générer un nombre aléatoire (j’ai choisie entre 20 et 30 pas), et la troisième permet de le sauvegarder temporairement.
FIN DE L’EXPLICATION.
Voilà pour la partie II nous venons de compté le nombre de pas fait par le héro et de généré un nombre de pas nécessaire à la rencontre d’un combat.
III Le déclanchement d’un combat en fonction du nombre de pas.
Partie très simple elle aussi. Vous l’aurez deviné nous allons juste comparais le nombre de pas effectués par rapport au nombre de pas requis.

Portion de code:

Condition : Si la variable [0002 : Nombre Pas] est supérieur ou égale à [0007 : Pas Requis].
	Déclencher un combat :….
	La variable [0002 : Nombre Pas] rendre égale à 0.
Sinon :
Fin.

L’ors de la comparaison nous mettons supérieur ou égale comme ça en cas de problème (0002 > 0007) le combat se déclenche et 0002 est remis à 0.
La partie III est terminer il ne reste plus qua assemblé l’algorithme :
Nous mettons la partie II et III dans la première partie de la condition de la partie I et dans la deuxième partie de la condition (le sinon) nous réinitialisons les variables de position précédente à 0 (si le héro sort de l’herbe sa position précédente est égale a 0.
Au finale le code donne ceci :

Portion de code:

Variable [0003 : Pos X héro] rendre égale à la coordonnée X du héro.
Variable [0004 : Pos Y héro] rendre égale à la coordonnée Y du héro.
Si la variable [0001 : carré] a pour valeur 1
Si la valeur de [0003 : Pos X héro] est différente de la valeur de la Variable [0005 : Pos X Pré].
		Si la valeur de [0004 : Pos Y] héro est différente de la valeur de la Variable [0006 : Pos Y Pré].
			[0005 : Pos X Pré] rendre égale à [0003 : Pos X héro].
			[0006 : Pos Y Pré] rendre égale à [0004 : Pos Y héro].
			[0002 : Nombre pas] ajouté 1.
			Condition : si la variable [0007 : Pas requis] est égale à 0.
				Variable [0007 : Pas requis] rendre égale à une valeur aléatoire entre 20 et 30.
				Variable [0007 : Pas requis] rendre égale à [0007 : Pas requis].
			Sinon :
			Fin.
		Sinon :
			[0005 : Pos X Pré] rendre égale à [0003 : Pos X héro].
			[0002 : Nombre pas] ajouté 1.
		Fin.
Sinon :
		Condition : si la valeur de [0004 : Pos Y] héro est différente de la valeur de la Variable [0006 : Pos Y Pré]. 
			[0006 : Pos Y Pré] rendre égale à [0004 : Pos Y héro].
			[0002 : Nombre pas] ajouté 1.
		Sinon :
			Variable [0007 : Pas requis] rendre égale à [0007 : Pas requis]. 
		Fin.
	Fin.
Condition : Si la variable [0002 : Nombre Pas] est supérieur ou égale à [0007 : Pas Requis].
		Déclencher un combat :….
		La variable [0002 : Nombre Pas] rendre égale à 0.
Sinon :
Fin.

Sinon :
	La variable [0005 : Pos X Pré] rendre égale à 0.
	La variable [0006 : Pos Y Pré] rendre égale à 0.
Fin.

Voilà j’espère que ce tuto vous a plus malgré sa taille j’ai aussi fait une démo : http://www.megaupload.com/fr/?d=5R92ZUQP
PS : Dans la démo les hommes vous indique :
Position actuel
Position sauvegardé
Nombre de pas effectué
Nombre de pas nécessaire
Merci.



e314 - posté le 16/06/2008 à 11:33:48 (183 messages postés)

❤ 0

Thinking out loud.

Euh, optimisable
Dans le compte du nombre de pas, on lit

Portion de code : Tout sélectionner

1
Variable [0007 : Pas requis] rendre égale à [0007 : Pas requis]. 



On n'en a pas besoin, c'est déjà "sauvegardé"!
(rendre égale...= sauvegarder!)

Portion de code : Tout sélectionner

1
Variable [0007 : Pas requis] rendre égale à une valeur aléatoire entre 20 et 30.

Il y a trois sortes de mathematiciens : ceux qui savent compter et ceux qui ne savent pas. Personne n'est jamais assez fort pour ce calcul!


Palamecia - posté le 16/06/2008 à 14:53:02 (22 messages postés)

❤ 0

Je re-aime les CMS...

Sinn je peu aussi vous proposer un tuto qui demande 0 variables, 0 intérupteurs et 0 conditions...

Tout d'abor il fau ouvrir sa bonne vieille vértion de RM2K3
Ensuit il sufit de créer des types de térain (F8) ou de garder ce qui sont proposés.

Il faut ensuit créer des groupes de monstres et gérer les types de terrain ou on peu les rencontrés dans un petit réctangle en bas à droite de la fenétre.

Si vous voulez que sur deux terrains de même type on afronte des monstres diférents, il faut créer une zone...

voila en quelques lignes j'ai réussi à décrir un moyen tout aussi efficasse... parcontre pour XP... ba je pensse pouvoir scripter sa assé facilemen...


luminou - posté le 17/06/2008 à 12:47:45 (1 messages postés)

❤ 0

salut

Palamecia:

j'ai ni RM2K3, ni les capapcitées en script ce tuto ets donc pour les personnes dans le meme cas que moi.

Les screens shoots ne sont pas visibles, je vais tenter d'y remedier.

Edit : Effectivement e314 la commande 0007 = 0007 est inutile je suis désoler c'est un vieu reste d'une ancienne solution que je cherche avant d'utiliser la condition qui le précéde on peut donc le suprimée.
Je ne sais pas comment réédité mon tuto je suis donc désoler pour les image ( et l'érreur) mais pour les image elle sont dans ma galerie Numéroté de 1 à 4 ( oniro-1 etc ...).

S'adapter ou mourir


Adronéus - posté le 29/07/2010 à 17:44:30 (1508 messages postés)

❤ 0

C'est un bon tuto, mais ça n'a rien à faire dans la rubrique "test".
Isn't it ?

Meilleur pour critiquer que pour maker.

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