Informations pratiques |
Avant toute question, consultez la FAQ en fin de forum !
|
| | Problème de Combo et de Variable | |
Chok
Créateur/Créatrice Mugen
Inscrit le: 31 Déc 2004 |
Messages: 53Karma: 2 plus / moins
|
Localisation: |
|
|
Bonjour,
Je voudrais crée des combos sur mes coups en stand (surtout en crouch).
Par exemple j'ai associer le crouch strong kick avec le air strong kick vel x!=0 (celui qui se fait avec le saut avant). Le combo s'exécute mais le crouch strong kick se fait en l'air. En fait dés que je l'active il s'exécute même quand c'est en l'air.
Voila le state -1 de mon CMD:
Citation: | ;Crouch strong kick
[State -1]
type = ChangeState
value = 430
triggerall = command = "crouch strong kick"
trigger1 = statetype = C && ctrl
trigger2 = stateno = 430
trigger2 = time > 70
trigger3 = StateNo = 665 && MoveContact |
Le state 665 c'est celui du air strong kick velx!=0.
J'ai éssayer d'ajouter:
trigger3 = StateType != A
Le problème n'était plus là mais le combo ne marchais plus.
---------------------------------------------------------------------------------
J'ai un autre problème: je voudrais crée un mode spécial pour mon perso, mais je sais pas vraiment comment m'y prendre avec les variable.
J'ai crée un state dans mon CNS:
Citation: | [Statedef 12000]
StateType = S
MoveType = A
Physics = S
sprpriority = 2
velset = 0,0
ctrl = 1
juggle = 1
poweradd = 0
[state 100, afterimage]
type = afterimage
trigger1 = time = 0
palbright = 40,40,40
palcontrast = 150,150,150
trans = add1
length = 12
time = 200
[State 200, var set]
type = VarSet
trigger1 = time = 0
v = 10
value = 1
[State 218, end state]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1 |
Je sais pas quoi faire pour que le perso puisse donner plusieurs coups en même temps pendant 200 tick.
|
|
| |
| | | |
Mike Werewolf
Loup-garou
Site Admin
Inscrit le: 07 Oct 2004 |
Messages: 1676Karma: 52 plus / moins
|
Localisation: |
|
|
Pour ton premier problème, ça vient du fait que la condition du statetype (C) ne s'applique que sur un seul trigger (en l'occurrence, trigger1). Pour bien faire, il faudrait passer la vérif du statetype en triggerall, soit :
Citation: | ;Crouch strong kick
[State -1]
type = ChangeState
value = 430
triggerall = command = "crouch strong kick"
triggerall = statetype = C
trigger1 = ctrl
trigger2 = stateno = 430
trigger2 = time > 70
trigger3 = StateNo = 665 && MoveContact |
Mais bon, avec ça, tu risques de retomber sur le second problème (le combo qui ne se déclenche pas, car ton perso n'est pas au sol quand tu déclenches le second coup, alors que c'est une condition à remplir).
Pour y remédier, il faudrait garder ton state -1 tel qu'il est, et modifier ton state 430, de façon à détecter si ton perso est au sol ou pas au début du state, et le cas échéant, le remettre au niveau du sol :
Code: | [State 430]
type = PosSet
trigger1 = Pos Y != 0
trigger1 = !Time
y = 0 |
Citation: | Je sais pas quoi faire pour que le perso puisse donner plusieurs coups en même temps pendant 200 tick. |
Tu veux dire, annuler n'importe quel coup par n'importe quel autre ? Ca se passe au niveau des states -1 du CMD, en te basant sur la valeur de ta var(10). Par exemple, pour sortir un crouch strong kick pendant n'importe quel coup au sol quand ton mode est activé, ça donnerait :
Citation: | ;Crouch strong kick
[State -1]
type = ChangeState
value = 430
triggerall = command = "crouch strong kick"
trigger1 = statetype = C && ctrl
trigger2 = stateno = 430
trigger2 = time > 70
trigger3 = StateNo = 665 && MoveContact
[b]trigger4 = Statetype != A && var(10) |
Donc, quand Mugen analyse ton trigger4, alors que tu es en train de faire un autre coup, vu que tu es sol, la partie "Statetype != A" est vraie, et vu que ta var(10), dans ce mode, est différente de 0, la partie "&& var(10)" est vraie aussi, donc le trigger4 se déclenche, et ton coup sort. A reproduire sur tous les coups que tu veux rendre disponibles dans ce mode.
Quant à la durée du mode : là, ça se passe d'abord dans le state qui initialise la var(10) : il faut que tu mettes une value de 200 (la durée voulue) et non de 1. Ensuite, il suffit de diminuer la var de 1 à chaque tick tant qu'elle vaut plus de 0, via un state -2 :
Code: | [state -2]
type = VarAdd
trigger1 = var(10)
value = -1 |
Dès que ta var(10) vaut plus de 0 (càd dès qu'elle est initialisée à 200), elle va se réduire de 1, jusqu'à atteindre 0, où le trigger ne se déclenchera plus, et la var restera à 0 jusqu'à la prochaine utilisation.
Mike Werewolf.
|
|
| |
| | | |
| |
| | | |
Mike Werewolf
Loup-garou
Site Admin
Inscrit le: 07 Oct 2004 |
Messages: 1676Karma: 52 plus / moins
|
Localisation: |
|
|
Citation: | J'ai mis un Pos Y >= -5 pour y résoudre mais ça reste assez bizarre. |
Yep, forcément, ça "téléporte" ton perso au niveau du sol, donc le rendu peut être bizarre. Ton "Pos Y >= -5", tu l'as bien mis en trigger dans le state -1, pas dans le state 430 ?
Citation: | Pour le mode spécial, une fois enclencher il ne veux plus se désactiver. J'ai peut être mal placer le state -2 (je l'ai mis juste en dessous de mon VarSet et j'ai éssayer de le mettre sous un [Statedef -2]). |
C'est moi, ça fait trop longtemps que je ne code plus... Donc il faut que ce soit sous un [Statedef -2], mais surtout, j'ai oublié un truc essentiel : dire sur quelle var s'applique le VarAdd ; du coup, là, ta var ne décrémente pas, et reste à 200 (donc ça dure infiniment, logique).
Version corrigée :
Code: | [state -2]
type = VarAdd
trigger1 = var(10)
var(10) = -1 |
Mike Werewolf.
|
|
| |
| | | |
Chok
Créateur/Créatrice Mugen
Inscrit le: 31 Déc 2004 |
Messages: 53Karma: 2 plus / moins
|
Localisation: |
|
|
Citation: | C'est moi, ça fait trop longtemps que je ne code plus... Donc il faut que ce soit sous un [Statedef -2], mais surtout, j'ai oublié un truc essentiel : dire sur quelle var s'applique le VarAdd ; du coup, là, ta var ne décrémente pas, et reste à 200 (donc ça dure infiniment, logique).
Version corrigée :
[state -2]
type = VarAdd
trigger1 = var(10)
var(10) = -1 |
Exact, cette fois ça marche.
Citation: | Yep, forcément, ça "téléporte" ton perso au niveau du sol, donc le rendu peut être bizarre. Ton "Pos Y >= -5", tu l'as bien mis en trigger dans le state -1, pas dans le state 430 ? |
J'ai essayer dans le state -1 mais c'est pareil.
J'ai mis mon Pos Y >= -7 et le perso se "téléporte" trop. Normalement je doit l'augmenter, mais le prob c'est que si je met -8, ça va trop diminuer la possibilité de faire le combo (ça va devenir impossible de le faire).
Voila ce que ça donne:
Je pense que je vais laisser tomber les air combo, parce que je crois pas qu'il y ai une soluce à ce problème, et c'est pas très important (enfin je pense).
Edit: J'ai un problème avec mon mode spécial, quand je met un PalFX a mon personnage il change aussi la couleur de mes fireballs, et je vois pas comment désactiver ça (je ne peux pas mettre de ownpal sur mes projectiles).
|
|
| |
| | | |
Mike Werewolf
Loup-garou
Site Admin
Inscrit le: 07 Oct 2004 |
Messages: 1676Karma: 52 plus / moins
|
Localisation: |
|
|
Citation: | J'ai mis mon Pos Y >= -7 et le perso se "téléporte" trop. Normalement je doit l'augmenter, mais le prob c'est que si je met -8, ça va trop diminuer la possibilité de faire le combo (ça va devenir impossible de le faire). |
Tu ne dois pas l'augmenter, tu dois le réduire (si tu mets à -8, ça veut dire que ton perso pourra faire le combo en étant à 8 pixels au-dessus du sol, alors que si tu mets -5, le combo ne pourra se faire qu'à 5 pixels au-dessus du sol, ce qui réduira l'impression de téléportation).
Par contre, le problème final reste le même : réduire la distance par rapport au sol pour sortir le combo réduit le timing pour faire ce combo.
La seule possibilité que je verrai, ce serait de mémoriser le coup dans une var quand tu es dans le state du premier coup, et de déclencher automatiquement le state du second coup quand tu arrives à la hauteur voulue.
Un truc dans ce style :
Code: | [State 665] ; initialise la var en début de state
type = VarSet
trigger1 = Time = 0
trigger1 = var(0) != 0
var(0) = 0
[State 665] ; mémorise le second coup
type = VarSet
trigger1 = var(0) = 0
trigger1 = (Vel Y > 0 && (Pos Y >= {y})
trigger1 = command = "crouch strong kick"
var(0) = 1
[State 665] ; passe automatiquement dans le second coup s'il a été effectué
type = ChangeState
trigger1 = var(0) = 1
trigger1 = Pos Y >= -3
value = 430 |
Le trigger1,2 du deuxième VarSet sert à régler le "timing" du combo (faut pas non plus qu'on puisse le mémoriser trop tôt, style : alors qu'on est encore dans la phase montante du coup aérien). Du coup, on vérifie que la Vel Y est bien positive (donc le perso retombe) et qu'il soit à une certaine distance du sol (à déterminer en fonction du timing que tu veux, plus ta valeur sera élevée, plus tôt tu pourras "mémoriser" le combo).
Citation: | J'ai un problème avec mon mode spécial, quand je met un PalFX a mon personnage il change aussi la couleur de mes fireballs, et je vois pas comment désactiver ça (je ne peux pas mettre de ownpal sur mes projectiles). |
La solution qui me vient tout de suite à l'esprit, c'est de remplacer tes Projectiles par des Helpers ; tu auras plus de contrôle sur tes fireballs (par contre, faut tout coder : le déplacement, les changements d'animations, etc.), et tu pourras appliquer un ownpal.
Mike Werewolf.
|
|
| |
| | | |
Chok
Créateur/Créatrice Mugen
Inscrit le: 31 Déc 2004 |
Messages: 53Karma: 2 plus / moins
|
Localisation: |
|
|
Citation: | Tu ne dois pas l'augmenter, tu dois le réduire (si tu mets à -8, ça veut dire que ton perso pourra faire le combo en étant à 8 pixels au-dessus du sol, alors que si tu mets -5, le combo ne pourra se faire qu'à 5 pixels au-dessus du sol, ce qui réduira l'impression de téléportation). |
Le problème c'est que si je met -7 par exemple, le combo devient impossible à faire, si je met -8 ya trop de téléportation, et si je met -9 c'est pire. Ca vient peut être aussi des clns1 qui sont assez grands mais je peux pas vraiment modifier ça. Sinon pour le code que tu m'a donner, ça ne marche pas, il y a une erreur avec le trigger 1,2 d'un state 665 (je sais pas lequel). Mais je vais laisser tomber les combos aériens (pas très important).
Citation: | La solution qui me vient tout de suite à l'esprit, c'est de remplacer tes Projectiles par des Helpers ; tu auras plus de contrôle sur tes fireballs (par contre, faut tout coder : le déplacement, les changements d'animations, etc.), et tu pourras appliquer un ownpal. |
Ok. J'ai finalement désactiver mon PalFX, je trouve que ça fait mieux sans.
Merci.
|
|
| |
| | | |
Mike Werewolf
Loup-garou
Site Admin
Inscrit le: 07 Oct 2004 |
Messages: 1676Karma: 52 plus / moins
|
Localisation: |
|
|
Citation: | Le problème c'est que si je met -7 par exemple, le combo devient impossible à faire, si je met -8 ya trop de téléportation, et si je met -9 c'est pire. |
Yep, c'est ce que je disais avant :
* soit tu autorises le combo loin du sol, dans ce cas, le timing est bon mais ça fait un effet de téléportation,
* soit tu n'autorises le combo que près du sol, et dans ce cas, tu n'as plus d'effet de téléportation, mais le timing est trop serré pour être réalisable.
D'où ma suggestion d'utiliser une var qui va enregistrer l'exécution du combo dans un timing jouable, mais ne déclencher le passage au coup suivant que lorsque le perso sera suffisamment près du sol.
C'est le principe qu'on retrouve un peu dans le Gouki Chain, le coup inédit que j'ai rajouté à Neo Gouki SVC (cf. tuto correspondant).
Citation: | Sinon pour le code que tu m'a donner, ça ne marche pas, il y a une erreur avec le trigger 1,2 d'un state 665 (je sais pas lequel) |
Yep, ça vient d'ici :
Code: | trigger1 = (Vel Y > 0 && (Pos Y >= {y}) |
Il manque une fermeture de parenthèse après Vel Y > 0 : "(Vel Y > 0) &&" au lieu de "(Vel Y > 0 &&".
Mike Werewolf.
|
|
| |
| | | |
Chok
Créateur/Créatrice Mugen
Inscrit le: 31 Déc 2004 |
Messages: 53Karma: 2 plus / moins
|
Localisation: |
|
|
Ça me fait la même erreur.
|
|
| |
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 1 sur 1
Télécharger le sujet
|
|
|
|