Forum Solarus-Games francophone

Jeux amateurs => Aide & support => Discussion démarrée par: Linkeur le 05 Décembre 2010 à 14:26

Titre: Amélioration Monstre A-RPG(Event)
Posté par: Linkeur le 05 Décembre 2010 à 14:26
Bonjour à tous !

Donc voila je me tourne a nouveau vers vous parce que, ce n'est pas vraiment un problème mais j'aimerai adapté mon système de combat.

Pour le moment en processus parallèle sur la map :

On détecte à quel distance est le héros du monstre et désactive un interrupteur 'Distance Monstre' (la poursuite du monstre) via la condition (1) Voir image en dessous.
Je détecte si les coordonnées de l'épée sont égale aux coordonnées du monstre (2) et si le monstre n'est pas mort (interrupteur "Mort Monstre 1" désactivé).
Si oui :   J'affiche une animation de dégât sur le monstre et je lui retire un PV.
Si PV monstre = 0 ... j'active l'interrupteur "Mort Monstre 1" qui renvoie a une page blanche dans l'évènement du monstre (qui "tue" le monstre).


En processus parallèle dans l'événement du monstre :

Si le monstre est a une distance inférieure à 5 cases (3), on active un interrupteur 'Distance Monstre' qui enclenche la deuxième page de l'évent du monstre et donc la suivie du Héros par le monstre.
Dans la deuxième page, on a en condition :
- Si l'interrupteur 'Distance Monstre' est activé.
- Suit le héros, au contact événement/Héros
Le héros perd 1 PV au contact.


Donc en gros ce que je veux faire c'est grouper les informations pour faire un monstre général que je n'aurai plus qu'à copier coller sur les autres maps.
Le seul truc que je ne peux pas grouper et que je ne veux pas grouper, c'est la détection de la position du monstre par rapport au Héros (savoir si il va le suivre ou non)

(http://img208.imageshack.us/img208/7889/explication.png)

Juste si vous n'êtes pas familiariser avec les conditions que j'utilise :

- $Game_map.events [event_id].x = coordonnées x de l'événement n°ID
        --> Si on le laisse comme ça c'est l'événement ou il est, qui est ciblé (Cet Évènement).

- $Game_player.x = coordonnées x du héros

- $Game_Variable[1] = coordonnées x de l'épée
- $Game_Variable[2] = coordonnées y de l'épée

Merci à tous pour vos futures réponse en espérant que vous ayez compris quelque chose ^^'
Si vous avez besoin d'en savoir plus, je serais heureux de vous répondre ;)
Titre: Re : Amélioration Monstre A-RPG(Event)
Posté par: Daru13 le 05 Décembre 2010 à 15:53
Déjà, commence par ne faire qu'un évent, et rajoute simplement une page en processus parallèle sur ton monstre (en y incluant le contenu de ton event placé sur la map).
Utilise aussi un interrupteur local au lieu de global, il sera propre à chaque monstre et te laissera tes interrupteurs globaux libres :).

Là où je ne sais pas trop par contre, c'est pour les variables utilisées :/.
Y'a pas de variable locale qui existe, alors regarde peut-être du côté du RUBY si ça existe, il doit bien y avoir une solution de toute façon ^^.

En espérant avoir déjà pu t'aider un peu :).

Titre: Re : Amélioration Monstre A-RPG(Event)
Posté par: Linkeur le 05 Décembre 2010 à 16:25
Rebonjour,

Merci de ta réponse, mais je pense pas que ça puisse aller.

Si je met la détection de la collision Épée/Évent en processus parallèle dans l'évent monstre, quand je suis prés du monstre, l'interrupteur 'Distance ennemi' bascule en ON et la page sur laquelle je retombe est en "contact Héros/Évènement" du coup la détection de la collision entre Épée/Évent ne se fait plus (car sur la page précédente).

Le problème revient à :
Il faudrait que la partie où Link attaque, s'exécute en processus parallèle ET dans la même page que la partie où le monstre attaque s'exécute en "contact Héros/Évent" ...
J'ai vraiment pas d'idée sur ce coup ^^'

Merci pour vos futures réponses !