Informations pratiques |
Even if it's a french forum, english language is allowed here !
|
Anji
Inscrit le: 11 Oct 2006 |
Messages: 101Karma: 5 plus / moins
|
Localisation: |
|
|
Concernant le Dream Cancel :
Tombston a écrit: | cette methode ne marche pas [...] car il n'y a pas de contact | Il faut adapter les triggers en conséquence. Commence par supprimer le MoveContact et refais le test : ton personnage devrait pourvoir changer de StateDef sans problème.
Un peu plus loin, Tombston a écrit: | P2 reste dans une seul anim et ca bloque. | Il faudrait peut-être modifier le Sctrl "ChangeState" du StateDef dans lequel P2 se trouve afin de lui dire que si P1 est en train de faire un Dream Cancel, alors ce State doit s'arrêter, non ?
|
|
| |
| | | |
| |
| | | |
| |
| | | |
| |
| | | |
Anji
Inscrit le: 11 Oct 2006 |
Messages: 101Karma: 5 plus / moins
|
Localisation: |
|
|
Mike a écrit: | en général, avec des triggers qui détectent si P2 touche le sol | Oui, c'est pour cela que je voulais jeter un coup d'oeil aux triggers de ChangeState/SelfState car il n'est pas dit que le State dans lequel P2 est coincé correspond à une chute : pour certaines projections, P1 soulève P2 en l'attrapant par le cou et le frappe, donc P2 est figé à une hauteur définie et ne tombe pas.
Un peu plus loin, Mike a écrit: | Renvoyer P2 dans son CNS en se basant sur le StateNo de P1 est risqué | Et si on fonctionne par exception ?
Exemple : P2 est envoyé dans un Custom State quand P1 est dans le State 2000 donc on pourrait dire que si, par le plus grand des hasards, P1 n'est plus dans le State 2000 (imaginons qu'il se fasse frapper par le coéquipier de P2), alors P2 retourne à ses propres States, non ?
|
|
| |
| | | |
Mike Werewolf
Loup-garou
Site Admin
Inscrit le: 07 Oct 2004 |
Messages: 1676Karma: 52 plus / moins
|
Localisation: |
|
|
Anji a écrit: | Exemple : P2 est envoyé dans un Custom State quand P1 est dans le State 2000 donc on pourrait dire que si, par le plus grand des hasards, P1 n'est plus dans le State 2000 (imaginons qu'il se fasse frapper par le coéquipier de P2), alors P2 retourne à ses propres States, non ? |
Le plus simple, dans ce cas, c'est de rendre P1 intouchable pendant la durée de sa chope. (pas de Clsn ou via un NotHitBy). C'est ce qu'on fait les 3/4 du temps. Dès lors, P1 ne peut plus "perdre le contrôle" de P2, et ça évite toute mauvaise surprise.
Sinon, on peut envisager d'autres solutions : déclencher un selfstate dans le custom state avec divers triggers, style : "Enemy, MoveType = H" ou "Time = X", basé sur la durée que devrait normalement durer la chope.
L'idéal, c'est carrément la solution dispo sous Linux, à savoir utiliser le nouveau trigger !gethitvar(isbound), mais il est inutilisable sous DOS et fera même planter le perso.
Mike Werewolf.
|
|
| |
| | | |
| |
| | | |
Anji
Inscrit le: 11 Oct 2006 |
Messages: 101Karma: 5 plus / moins
|
Localisation: |
|
|
Tu pourrais copier le Custom State dans lequel P2 se trouve histoire de voir à quoi il ressemble actuellement ?
tombston a écrit: | il n'y a pas une astuce pour que P2 change de state en même temps que P1 ? | Pourquoi pas : Code: | triggerX = enemy,command = "[nom de la commande de l'hyper]" |
|
|
| |
| | | |
Mike Werewolf
Loup-garou
Site Admin
Inscrit le: 07 Oct 2004 |
Messages: 1676Karma: 52 plus / moins
|
Localisation: |
|
|
Citation: | il ya pas une astuce avec des variable jore pour que p2 change ded state en meme temps que p1 |
Surtout pas de variables, malheureux !!! Si tu utilises une var dans un custom state de P2, ce ne sont pas tes variables que tu vas modifier, mais celles de P2.
Anji > Ton ChangeState devrait marcher dans 90% des cas, mais si P2 affronte une équipe, il y a le risque que Mugen s'emmêle un peu les pinceaux entre P1 et son partenaire, lorsqu'il devra interpréter la redirection "ennemy".
Ce que je pense être le plus sûr, ce serait :
* Utiliser un opérateur d'assignation pour régler une var dans le state -1 du CMD, au moment où on réalise le Dream Cancel.
* Utiliser cette var dans un state -2 avec un sctrl TargetState.
Style :
* CMD :
Code: | [State -1, DreamCancel]
type = ChangeState
trigger1 = command = "[commande de l'hyper]"
{tes autres triggers}
trigger1 = var(0):=1
value = {nouveau state} |
Le dernier trigger fait que si tous les triggers précédents sont remplis, var(0) passera à 1 (un peu comme si y avait un VarSet var(0) = 1 inclus dans le ChangeState). Donc si var(0) vaut 1, c'est que tu viens de réussir ton Dream Cancel ; on peut donc utiliser cette var pour changer le state de P2, via le CNS
* CNS :
Code: | [State -2, BasculeP2]
type = TargetState
trigger1 = var(0)
trigger1 = target, stateno = {state n°1 de P2}
value = {state n°2 de P2}
[State -2, EndVar]
type = VarSet
triggerall = var(0)
trigger1 = !NumTarget
trigger2 = Target, stateno != {state n°1}
var(0) = 0 |
Le premier state -2 envoie P2 dans le nouveau state, a priori en même temps que P1 change de state grâce au Dream Cancel (peut-être à 1 tick près), et le second state -2 remet la var(0) à 0 pour une prochaine utilisation.
Mike Werewolf.
|
|
| |
| | | |
| |
| | | |
| |
| | | |
Mike Werewolf
Loup-garou
Site Admin
Inscrit le: 07 Oct 2004 |
Messages: 1676Karma: 52 plus / moins
|
Localisation: |
|
|
Tu parles du système de saut SNK, où si on appuie une fois rapidement sur "haut", le perso fait un petit saut, et si on laisse appuyé plus longtemps, il va plus haut ?
Si oui, voici ce que je ferai :
* Je coderai le "mini saut" dans le state 40, avec un ChangeState dans ce state 40 si "up" est maintenu, qui mènerait au state 60.
* Coder le saut normal en state 60.
Ou alors, y a peut-être moyen de coder tout dans le state 40 en faisant varier la vitesse du saut (ou la force de la gravité, au choix) selon le temps durant lequel on garde la direction "haut"...
Mike Werewolf.
|
|
| |
| | | |
| |
| | | |
Vil1
Créateur/Créatrice Mugen
Inscrit le: 15 Mar 2005 |
Messages: 143Karma: 10 plus / moins
|
Localisation: |
|
|
Une possibilité très simple est de modifier légèrement un des blocs du state 40, en l'occurence le bloc 40, 4:
Code: | [State 40, 4]
type = VelSet
trigger1 = AnimTime = 0
x = ifelse(sysvar(1)=0, const(velocity.jump.neu.x), ifelse(sysvar(1)=1, const(velocity.jump.fwd.x), const(velocity.jump.back.x)))
y = const(velocity.jump.y) |
Si tu veux détecter de quelle manière tu as a appuyé sur up, tu peux utiliser la commande "holdup". Ce qui donne:
Code: | [State 40, 4]
type = VelSet
trigger1 = AnimTime = 0
x = ifelse(sysvar(1)=0, const(velocity.jump.neu.x), ifelse(sysvar(1)=1, const(velocity.jump.fwd.x), const(velocity.jump.back.x)))
y = ifelse(command != "holdup", nouvelle_valeur ,const(velocity.jump.y)) |
Il y a plusieurs méthodes possibles mais celle-ci est vraiment facile à utiliser.
|
|
| |
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|
Toutes les heures sont au format GMT + 2 Heures
Page 7 sur 8
Télécharger le sujet
|
|
|
|