Pas besoin de vous inscrire pour télécharger / No need to register for downloading.
Une fois inscrit, vous devez m'envoyer un mail pour valider votre compte / Once registered, you must send me an email for validating your account.
 S'enregistrer  |  FAQ  |  Lexique  |  Rechercher  |  Liste des Membres  |  Groupes d'utilisateurs 

 Annuaire  |  Connexion 

 Ce forum en page de démarrage

 Informations pratiques 
 Even if it's a french forum, english language is allowed here !  

   Télécharger le sujet
Anji



Inscrit le: 11 Oct 2006
Messages: 101
Karma: 5
plus / moins

Localisation: Hungary
Répondre en citant
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 est absent Kicker ce membre de ce sujet
Mike Werewolf
Loup-garou

Site Admin


Inscrit le: 07 Oct 2004
Messages: 1676
Karma: 52
plus / moins

Localisation: France
Répondre en citant
Anji a écrit:
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.

Exactement. Par contre, mieux vaut, en général, éviter que tu puisses déclencher le cancel n'importe quand pendant l'attaque précédente, sans quoi on pourrait l'annuler dès le début (ça peut être chiant si c'est ça le fait quand le perso est contrôlé par l'ordi). L'idéal, c'est de repérer dans l'anim du state à partir de quel élément tu veux pouvoir faire ton cancel. Les triggers deviennent ainsi :
Code:
trigger1 = AnimElem = 3, >0
trigger1 = StateNo = 1000

En admettant que tu veuilles pouvoir faire le cancel à partir du 3ème élément de l'anim du state 1000.

Pour P2 qui reste bloqué : a priori, peu importe le state dans lequel se trouve P2 (que ce soit dans le CNS de P1 ou non), à moins que tu n'aies mis des conditions relatives au state de P1.

Mike Werewolf.
Mike Werewolf est absent 
Anji



Inscrit le: 11 Oct 2006
Messages: 101
Karma: 5
plus / moins

Localisation: Hungary
Répondre en citant
Mike a écrit:
peu importe le state dans lequel se trouve P2
Enfin c'est relativement important si P2 est dans un State dont il ne peut sortir ! Mr. Green
Deux petites vérifications :

    1. Quels sont les triggers des StateControllers de type ChangeState dans le StateDef que subit P2 ?
    2. P2 peut-il être touché ? (A-t-il des boîtes de colision au moment ou tu essaies de le frapper ? A-t-il un StateController de type NothitBy ? etc.)
Anji est absent Kicker ce membre de ce sujet
Mike Werewolf
Loup-garou

Site Admin


Inscrit le: 07 Oct 2004
Messages: 1676
Karma: 52
plus / moins

Localisation: France
Répondre en citant
Anji a écrit:
Enfin c'est relativement important si P2 est dans un State dont il ne peut sortir !

Normalement, pour sortir P2 d'un custom state, on utilise un Self State directement dans le state de P2 (en général, avec des triggers qui détectent si P2 touche le sol => renvoi en state 5100). Du coup, le retour de P2 dans son CNS est indépendant de ce que fait P1. Wink

Renvoyer P2 dans son CNS en se basant sur le StateNo de P1 est risqué car si on combat une équipe, le partenaire de P2 peut très bien frapper P1 alors que P2 est dans un custom state. P1 est alors envoyé dans un state 5000 (ou pire, dans un custom state du partenaire de P2...).

Mike Werewolf.
Mike Werewolf est absent 
Anji



Inscrit le: 11 Oct 2006
Messages: 101
Karma: 5
plus / moins

Localisation: Hungary
Répondre en citant
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 ?
Anji est absent Kicker ce membre de ce sujet
Mike Werewolf
Loup-garou

Site Admin


Inscrit le: 07 Oct 2004
Messages: 1676
Karma: 52
plus / moins

Localisation: France
Répondre en citant
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.
Mike Werewolf est absent 
tombston
tombston

Créateur/Créatrice Mugen

Créateur/Créatrice Mugen

Inscrit le: 14 Déc 2005
Messages: 303
Karma: 2
plus / moins

Localisation: Algeria
Répondre en citant
Citation:
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 ?


dapres ce que j'ai essyé p2 reste dans le state de p1 tant qu'il ya pas un self state
mais pour evité ca je fais sois nohitby ou je mais pas de cnsl

pour le dream cancel je l'ai fais un trigger =time=[10,30]
pour que ca s'exsecute dans un moment precis

le probleme que j'ai eu c que j'ai reussi a fair un change state mais seulement pour p1 alors p2 (qui est dans le state dee p1) reste dans le state de p1 car il ya pas un change state

il ya pas une astuce avec des variable jore pour que p2 change ded state en meme temps que p1

Code:
type=changestate
trigger1=var(0)=1 ;var qui detecte la comand du hyper
value = xxx



merci


tombston est absent 
Anji



Inscrit le: 11 Oct 2006
Messages: 101
Karma: 5
plus / moins

Localisation: Hungary
Répondre en citant
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]"
Anji est absent Kicker ce membre de ce sujet
Mike Werewolf
Loup-garou

Site Admin


Inscrit le: 07 Oct 2004
Messages: 1676
Karma: 52
plus / moins

Localisation: France
Répondre en citant
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 est absent 
tombston
tombston

Créateur/Créatrice Mugen

Créateur/Créatrice Mugen

Inscrit le: 14 Déc 2005
Messages: 303
Karma: 2
plus / moins

Localisation: Algeria
Répondre en citant
merci pour cette soulution je l'essyeré de que possible et je vous donne des resultat

encore merci


tombston est absent 
tombston
tombston

Créateur/Créatrice Mugen

Créateur/Créatrice Mugen

Inscrit le: 14 Déc 2005
Messages: 303
Karma: 2
plus / moins

Localisation: Algeria
Répondre en citant
salut a tous

les astuce que vous mavez donné ont bien marché Very Happy a par l'explod (j'ai quelque problem avec)

testé ma MAJ de iori et dit moi ce que vous pensez Mr. Green

a un autre problem


tombston est absent 
tombston
tombston

Créateur/Créatrice Mugen

Créateur/Créatrice Mugen

Inscrit le: 14 Déc 2005
Messages: 303
Karma: 2
plus / moins

Localisation: Algeria
Répondre en citant
salut

tous le monde

je voulai savoir comment fair pour crée un short jumps

car j'ai essyé de crée un state semblan au state 40 mais quand je fais la comande up p1 se derige vers le state 40 au lieu de 60(state de short jumps)
mais quand j'ai changé de command (b) p1 va normalement dans le state 60


pouvai vous m'aidez


merci


tombston est absent 
Mike Werewolf
Loup-garou

Site Admin


Inscrit le: 07 Oct 2004
Messages: 1676
Karma: 52
plus / moins

Localisation: France
Répondre en citant
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.
Mike Werewolf est absent 
tombston
tombston

Créateur/Créatrice Mugen

Créateur/Créatrice Mugen

Inscrit le: 14 Déc 2005
Messages: 303
Karma: 2
plus / moins

Localisation: Algeria
Répondre en citant
oui je parle bien du system de snk

coment je fais pour que mugen reconai que j'ai appuyé vite sur up ou le contraire esque c'est par une nouvelle command ou par le time=


merci


tombston est absent 
Vil1

Créateur/Créatrice Mugen

Créateur/Créatrice Mugen

Inscrit le: 15 Mar 2005
Messages: 143
Karma: 10
plus / moins

Localisation: France
Répondre en citant
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. Wink
Vil1 est absent Kicker ce membre de ce sujet
un nouvau personage=des nouvau probleme..j'ai besoin d'aide
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
  
  
 Poster un nouveau sujet