Special in aria xk poi il char non scende?
#1
Inviato 30 December 2007 - 19:03
Ho un problema da risolvere nella programmazione, credo semplice per chi ci sa, ma a cui io non trovo soluzione.Menjoso mi ha indicato un topic col mio stesso problema, ma la soluzione non mi ha risolto il problema.
Ho programmato una special di tipo proiettile semplicissima da fare in aria, e succede che dopo aver sparato il proiettile, il char rimane sospeso in aria, nel punto in cui ha sparato il proiettile, e fa tutto come se fosse sul suolo, cammina, corre fa tutte le mosse, e l’unico modo per farlo tornare a terra è farlo saltare. come faccio a farlo tornare sul pavimento vero dopo che ha sparato il proiettile? Metto qui di seguito la programmazione, che non è altro che un proiettile qualsiasi, e infatti è ovvio che resti lassù, perché nn c’è nessun comando che gli dica di tornare sul pavimento. Ma credevo che tornasse giù in “automatico” come dopo un salto… Provai con Gravity e Velset, ma non mi funzionano, magari programmai male. Mi sapete aiutare? Ho messo type=A e physics=A, xk il gioco sappia che si tratta di una mossa aerea, però poi rimane là dove ha sparato il colpo.
[Statedef 1111]
type = A
movetype = A
physics = A
juggle = 4
poweradd = 90
ctrl = 0
velset = 0,0
anim = 1111
[State 1111, 1]
type = Projectile
trigger1 = AnimElem = 1
projanim = 1005
projhitanim = 1114
projhits = 1
velocity = 4.5, 3
attr = S, SP
animtype = M
offset = 0,0
damage = 50
guardflag = MA
pausetime = 0, 17
sparkxy = 0, -20
guard.sparkno = 352
guardsound = S10, 0
ground.type = Low
ground.slidetime = 20
ground.hittime = 21
ground.velocity = -4.7, 0
air.velocity = -3,-3
air.type = Low
air.hittime = 12
[State 1111, 2]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1
#2
Inviato 30 December 2007 - 19:35
#3
Inviato 01 January 2008 - 11:19
[State 1111, 2]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1
Questa istruzione va cancellata o sostituita in maniera diversa. Qui abbiamo infatti un errore di concetto. Quando infatti il personaggio torna allo state 0 (standing animation) si trova ad essere su una posa di tipo stand. In quel momento quindi considera la sua attuale posizione come linea di suolo (anche perché la standing animation fa stare "fermo" il personaggio, bloccandolo quindi sulla posizione attuale).
Quello che ti suggerisco è una cosa di questo genere. Dato che, se ho capito bene, dopo l'esecuzione di questo proiettile in aria, vuoi che il personaggio atterri io ti consiglio di fare uno state di atterraggio aggiuntivo che potrai usare per tutte le mosse come questa che, dopo essere state eseguite in aria, richiedono atterraggio
[Statedef 605] type = A movetype = I physics = A ctrl = 0 anim = 605 sprpriority = 1 [State 605, 1] type = Null trigger1 = time = 0
Come vedi non c'è alcun codice (però è necessario mettere almeno una istruzione in uno statedef e quindi si mette Null perché non abbiamo bisogno di codice). Perché gestirà tutto da solo.
---
Vai sul file Air e crea la tua animazione 605 prendendo gli ultimi frame del salto (quelli che vede il char nella discesa). Se è un solo frame metti quello.
---
fatto questo puoi sostituire il tuo changestate errato con questo
[State 1111, 2]
type = ChangeState
trigger1 = AnimTime = 0
value = 605
ctrl = 0
#4
Inviato 01 January 2008 - 17:13
In effeti a intuito mi sembava che non ci fosse nella programmazione un "qualcosa" che dicesse al char di atterrare sul pavimento vero e proprio, ma non ci saltavo fuori eheh.
appena ho tempo provo a sostituire il changestate come mi hai detto!
e ti so dire!
grazie, buone feste!
#5
Inviato 01 January 2008 - 20:39
#6
Inviato 01 January 2008 - 21:59
grazie nobun!
hai capito che storia menjoso?
dai, ormai ci sai abbastanza per programmare qualche mossa pure tu eh!
#7
Inviato 01 January 2008 - 22:11
#8
Inviato 02 January 2008 - 22:54
però che bravo, vedi che non ci vuol niente? volere, è potere!!!!!! :ehhh: :ehhh: :ehhh: :ehhh:
#9
Inviato 05 January 2008 - 06:11
Ora ho avuto un problemino simile, vediamo se se ne viene a capo :D
Questo è lo state del mio pugno aereo semplice:
[Statedef 315];Air punch Type = A Movetype = A Physics = A Ctrl = 0 Anim = 315 Velset = 0,0 Poweradd = 10 [State 315, 1] Trigger1 = Time = 0 Type = PlaySnd Value = 400,1 [State 315, hit] type = HitDef trigger1 = AnimElem = 3 attr = S, NA hitflag = MAF guardflag = MA animtype = Light air.animtype = Light priority = 3,Hit damage = 20 pausetime = 8,8 sparkno = 0 sparkxy = 0,-86 hitsound = S400,2 guardsound = S3,0 ground.type = High air.type = High ground.slidetime = 10 guard.slidetime = 10 ground.hittime = 10 guard.hittime = 10 air.hittime = 10 ground.velocity = -4,0 air.velocity = -4,-2 [State 315, 2] type = ChangeState trigger1 = Animtime = 0 value = 42 ctrl = 1
A regola il codice dovrebbe essere esatto ma c'è un problemino. Quando uso sto pugno in aria mi fa il loop, ovvero mi ripete il pugno fino a quando scendo a terra.. Io ho usato il Value 42 (salto avanti) per far si che tornasse in quella posizione, però ho capito che non dipende da questo. Infatti il pugno me lo ripete lo stesso.. C'è un modo per evitare sto loop?
Posto anche la parte del Cmd che secondo me è questa che va modificata:
;Air Punch [State -1, Air Punch] type = ChangeState value = 315 triggerall = command = "a" triggerall = command != "holddown" trigger1 = statetype = A trigger1 = ctrl
PS: Ho guardato in kfm e ho notato un po di differenza, ma forse voi me lo potete spiegare menjo :)
#10
Inviato 05 January 2008 - 10:14
Poi, menjo, consiglio se possibile di utilizzare la numerazione consigliata dal Mugen (vedi tutorial air.txt). Quindi per gli attacchi di base
200-399 Attacchi Normali tipo stand
400-599 Attacchi Normali tipo crouch (da abbassati)
600-799 Attacchi Normali tipo air
800-999 Prese + varie ed eventuali
E poi
1000-2999 Mosse Speciali
3000-4999 Mosse Hyper
(dal 6000 in poi è libero ma io le uso generalmente per gli effetti particolari)
#11
Inviato 05 January 2008 - 10:26
Per le numerazioni piu o meno ho seguito quello schema.. I pugni (crouch, stand, in aria) li sto mettendo tutti tra il 200 e il 350. Poi ho messo uno state per caricare aura con il numero 705.. Insomma, siamo lì.
#12
Inviato 05 January 2008 - 10:57
Quote
PS ricordati che l'animazione deve essere infinita e quindi devi cambiare il tempo dell'ultimo frame a -1 e devi rimuovere i trigger animelem sostituendoli con altro trigger (es. trigger time)
#13
Inviato 05 January 2008 - 13:07
Comunque ora sto facendo un po "al volo" il char.. Ha moltissimi bug, uno di questi era appunto il calcio che si ripete. Poi finita la base cerco di correggere il tutto, e sottolineo cerco. Se non riesco apro un topic per i miei problemi sul Cns, sperando che un buon Nobun passi di lì 0:)
PS: Che bello, mi sto divertendo non poco :rotfl: :rotfl:
#14
Inviato 05 January 2008 - 19:27
sei riuscito menjo a risolvere il problema del pungo in aria?
#15
Inviato 05 January 2008 - 19:32

Aiuto









