arakya
Inscrit le: 04 Jan 2008 |
Messages: 26Karma: 0 plus / moins
|
Localisation: |
|
|
Bonsoir je souhaiterai créer une attaque : l'amaterasu de Itachi qui est un feu qui ne s'éteint pas quand il brule. Il agit donc comme un poison.
J'ai bien compris comment lier un explod à un joueur mais malgré l'exemple des flèches empoisonnées de Link je ne comprend pas comment faire perdre des vies à intervalles régulier de manière automatique.
Je croyais que c'était:
[State 9100, CumulHit]
type = VarAdd
trigger1 = IsHelper
trigger1 = MoveHit
var(0)=1
qui crée l'effet de poison après Hit def mais visiblement ça ne marche pas quand je l'utilise.
Quelqu'un aurait il la gentillesse de m'expliquer car j'y ai vraiment passé des heures dessus et je ne comprend toujours pas même avec le code sous les yeux!
Merci d'avance pour votre patience!
|
|
arakya
Inscrit le: 04 Jan 2008 |
Messages: 26Karma: 0 plus / moins
|
Localisation: |
|
|
Je crois que j'ai à moitié compris c'est en relisant l'un des sujets du forum sur comment lier un helper avec un ps2 que j'ai compris. Faut créer un helper puis utiliser le code de "recherche de la cible" pour que le l'helper reste fixé sur elle. J'ai fait des essais et cela marche, sauf que moi le poison reste pas vraiment sur la cible mais apparait plûtot à proximité et bouge en fonction du playeur 1. Bon c'est pas un résultat parfait mais c'est un bon début.
|
|
Anji
Inscrit le: 11 Oct 2006 |
Messages: 101Karma: 5 plus / moins
|
Localisation: |
|
|
Des flammes persistantes ?...
Avant de voir l'adéquation technique, petite précision sur ce que tu veux faire : le rendu final risque d'être compliqué car tu ne peux pas deviner les contours de P2 pour y mettre des flammes alors, visuellement, où comptes-tu "accrocher" les flammes ???
|
|
arakya
Inscrit le: 04 Jan 2008 |
Messages: 26Karma: 0 plus / moins
|
Localisation: |
|
|
Oui en fait je voudrai créer des flammes qui blessent l'ennemi sans interruption et accrocher les flammes sur l'ennemi! Où? Bah au centre de l'ennemi par exemple, y a bien des persos qui le font plus ou moins je crois : sodom de street fighter qui lorsqu'il écrase l'adversaire au sol fait apparaître des flammes sur lui quelques secondes...
|
|
Mike Werewolf
Loup-garou
Site Admin
Inscrit le: 07 Oct 2004 |
Messages: 1676Karma: 52 plus / moins
|
Localisation: |
|
|
Désolé pour la réponse tardive (j'ai vraiment décroché de Mugen, et je ne passe plus que de temps en temps sur les forums...).
Donc, l'idée, c'est effectivement de créer un Helper qui va "s'accrocher" à la cible. Ensuite, cet helper va déclencher un HitDef selon un certain intervalle de temps, et c'est ce HitDef qui va enlever de la vie à l'ennemi.
Pour Link, voici le "décryptage" du code :
* State 9000 :
* On utilise un "Projectile" (la flèche) qui vient toucher P2 et lui enlever de la vie comme n'importe quel projectile style fireball. Dans le code de Link, il y a 2 projectiles car il peut tirer debout ou accroupi, et les données ne sont pas les mêmes.
* On stocke dans une var(49) l'ID de l'ennemi touché (là encore, on a 2 VarSet, selon qu'il s'agit de Enemy(0) ou de Enemy(1) qui a été touché, dans l'hypothèse d'un Team Simul). On réutilisera cette valeur plus tard pour retrouver le joueur empoisonné.
* On crée un helper "PsnArr" qu'on positionne sur l'axe de l'ennemi touché (là encore, 2 sctrl Helper, selon l'ennemi touché) et qu'on envoie dans un state 9100.
Quelques précisions sur l'Helper : il ne doit pas être visible lui-même, donc on utilisera une anim "vide" (qui n'affiche aucun sprite). De même il doit être "immatériel" et n'aura donc pas de Clsn2. En revanche, il devra posséder une Clsn1 pour que le HitDef puisse toucher l'adversaire.
* State 9100 :
* Pour fixer l'helper en permanence sur l'adversaire touché, on déclenche en continu (trigger1 = 1) un PosSet. Pour placer le poison sur le bon joueur, on utilise le trigger PlayerID(), avec en argument la valeur stockée dans la var(49) du joueur (qui contient l'ID du perso touché, cf. avant). Ce qui donne :
X = Floor(PlayerID(parent,var(49)),Pos X), et idem avec Y.
* On utilise un explod (ou plusieurs au besoin) pour afficher les volutes de poison (donc les flammes dans ton cas). A toi de placer correctement cet helper. Tu peux essayer de reprendre les valeurs Const(size.mid.pos.x) et Const(size.mid.pos.y) redirigées sur EnemyNear, mais tous les créateurs ne remplissent pas correctement les constantes de leurs persos. Sur la plupart des persos, ce n'est pas gênant, mais sur les persos géants, ça risque d'afficher l'explod au niveau des genoux plutôt qu'à la ceinture... C'est malheureusement un paramètre qu'on ne peut pas franchement contrôler...
* On utilise un HitDef qui se déclenche selon les paramètres voulus (de façon aléatoire pour Link). Comme l'helper est fixé sur le joueur empoisonné, on est sûr de lui faire perdre de la vie.
* On prévoit une "fin" pour le poison pour éviter qu'il dure indéfiniment (ici, je l'envoie dans un state 9200, qui fera disparaître les volutes, et affichera "healed" (guéri).
Voilà !
Mike Werewolf.
|
|
arakya
Inscrit le: 04 Jan 2008 |
Messages: 26Karma: 0 plus / moins
|
Localisation: |
|
|
Merci beaucoup Mike pour toutes ces précisions j'ai plus qu'à m'y mettre!
Bonnes vacances si t'en prends!!
|
|