Forum MUGENATION: problema hyper - Forum MUGENATION

Salta al contenuto

  • 6 Pagine +
  • « Primo
  • 3
  • 4
  • 5
  • 6
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

problema hyper

#81 L   demongorne 

  • Senpai
  • PuntoPuntoPunto
  • Gruppo: Membro
  • Messaggi: 533
  • Iscritto: 07-November 06

Inviato 03 July 2008 - 14:52

Visualizza MessaggiPaToS, su Jul 3 2008, 01:17, detto:

Allora il problema penso che sia proprio il physics. Mettendo physics S in poche parole applica l'attrito ma non la accelerazione verticale. Infatti il p2 continua ad andare in alto e si sposta di pochissimo sull'asse orizzontale.

Al posto di S metti U (che sta per unchanged), in modo che mantiene lo stesso physics cha aveva nello state precedente (S se è colpito quando è a terra, A se in aria).


ho cambiato i phisic dei seguenti statedef

[statedef 9999]
type = S
movetype = I ; necessario per non farlo cadere
physics = U

[state 9999, 1]
type = changeanim2
trigger1 = time = 0
value = 5002

[state 9999, 2]
type = changeanim2
trigger1 = time = 40
value = 5300

[state 9999, 3]
type = selfstate
trigger1 = time = 120
value = 0

----------------------------------------------------------------------------------------
[statedef 9998]
type = S
movetype = I ; necessario per non farlo cadere
physics = U

[state 9998, 1]
type = changeanim2
trigger1 = time = 0
value = 5300

[state 9998, 2]
type = changeanim2
trigger1 = time = 8
value = 5012


[state 9998, 3]
type = selfstate
trigger1 = time = 120
value = 0

ma continua a nn funzionare :unsure:
0

#82 L   PaToS 

  • Kohai
  • PuntoPunto
  • Gruppo: Membro
  • Messaggi: 117
  • Iscritto: 17-May 08

Inviato 03 July 2008 - 15:27

Prova a mettere A, almeno vediamo se effettivamente il problema è quello. Se non lo fa più vuol dire che stiamo guardando la cosa giusta.

Nel caso con A funzioni, non capisco perchè non debba andare anche con U. Una possibile causa che mi viene in mente è se prima di entrare in questi statedef il personaggio passa per un altro in cui il physics è S, in tal caso anche mettendo U assumerebbe sempre il valore S.

Ora che ci penso forse devi agire anche sul type. Fai così:

1- Prova con physics = A.

Se funziona sappiamo di dover agire sul physics, quindi passa al 4
Se non funziona...

2- Prova mettendo anche il type = A

Se non funziona.... non lo so
Se funziona sappiamo di dover agire sia sul type che sul physics, quindi...

3- Metti type = ifelse((pos Y = 0), S, A)

4- Metti physics = ifelse((pos Y = 0), S, A)

NOTA: ho scritto il codice pensando che pos Y rilevi la posizione del personaggio che in quel momento è in quello state (quindi il p2).
Se invece rileva sempre e comunque quella del p1, allora in teoria ti darebbe lo stesso problema di prima. In questo caso bisognerà usare un altro trigger.

Tu prova e dimmi se qualcosa ha funzionato, fino a che punto, se è cambiato qualcosa.

Inoltre se usi questi stessi statedef penso tu debba rivedere anche le animazioni. Mi spiego, se colpisci il p2 mentre è in aria non dovrebbe usare la stessa animazione di quando è colpito per terra (è un discorso puramente visivo, non è che non possa farlo in assoluto).
0

#83 L   demongorne 

  • Senpai
  • PuntoPuntoPunto
  • Gruppo: Membro
  • Messaggi: 533
  • Iscritto: 07-November 06

Inviato 03 July 2008 - 16:11

col phisics = A nn esce + dallo skermo xò c'è un'altro problema guarda questo video

link
0

#84 L   PaToS 

  • Kohai
  • PuntoPunto
  • Gruppo: Membro
  • Messaggi: 117
  • Iscritto: 17-May 08

Inviato 03 July 2008 - 19:30

Bè, almeno sappiamo che dobbiamo lavorare lì.
Se metti il physics e il type con l'ifelse come ti ho detto prima che succede??
0

#85 L   demongorne 

  • Senpai
  • PuntoPuntoPunto
  • Gruppo: Membro
  • Messaggi: 533
  • Iscritto: 07-November 06

Inviato 03 July 2008 - 19:40

con ifelse((pos Y = 0), S, A) mi da messaggio di errore
0

#86 L   PaToS 

  • Kohai
  • PuntoPunto
  • Gruppo: Membro
  • Messaggi: 117
  • Iscritto: 17-May 08

Inviato 03 July 2008 - 20:29

azz allora non lo accetta.

prova a mettere sia il type che il physics uguali a U.

In teoria, essendo il p2 in salto, una volta colpito dovrebbe mantenere il type e il physics uguali ad A. E stessa cosa quando il p2 è a terra dovrebbe mantenere type e physics uguali a S.

Se con entrambi i parametri uguali a U da lo stesso il problema, vuol dire che il p2 tra lo statedef del salto e quello stabilito da te (9999 o 9998), passa da un altro statedef che ha i due parametri uguali a S. Il problema sta nel capire che statedef è. Anche perchè se non è così non so proprio cosa dirti.

Prova a fare questo. Attiva la modalità debug, fai uno scontro in versus mode e scegli come p1 quello che subisce la mossa (in modo che puoi vedere tutti gli statedef in cui entra) e come p2 il tuo personaggio.

Ora fai la mossa mentre il p1 salta e poi scorri frame per frame per vedere quali statedef vengono attivati. Segnati i numeri in modo da poterli controllare.
0

#87 L   demongorne 

  • Senpai
  • PuntoPuntoPunto
  • Gruppo: Membro
  • Messaggi: 533
  • Iscritto: 07-November 06

Inviato 03 July 2008 - 21:12

Visualizza MessaggiPaToS, su Jul 3 2008, 21:29, detto:

azz allora non lo accetta.

prova a mettere sia il type che il physics uguali a U.

In teoria, essendo il p2 in salto, una volta colpito dovrebbe mantenere il type e il physics uguali ad A. E stessa cosa quando il p2 è a terra dovrebbe mantenere type e physics uguali a S.

Se con entrambi i parametri uguali a U da lo stesso il problema, vuol dire che il p2 tra lo statedef del salto e quello stabilito da te (9999 o 9998), passa da un altro statedef che ha i due parametri uguali a S. Il problema sta nel capire che statedef è. Anche perchè se non è così non so proprio cosa dirti.

Prova a fare questo. Attiva la modalità debug, fai uno scontro in versus mode e scegli come p1 quello che subisce la mossa (in modo che puoi vedere tutti gli statedef in cui entra) e come p2 il tuo personaggio.

Ora fai la mossa mentre il p1 salta e poi scorri frame per frame per vedere quali statedef vengono attivati. Segnati i numeri in modo da poterli controllare.


in questo modo presenta di nuovo il problema di prima
0

#88 L   PaToS 

  • Kohai
  • PuntoPunto
  • Gruppo: Membro
  • Messaggi: 117
  • Iscritto: 17-May 08

Inviato 03 July 2008 - 21:30

Le cose son 2.

O riesci a capire in che statedef entra il p2 tra il salto e quello da te stabilito (9999 o 9998), in modo da poter modificare il type e il physics anche lì, se possibile.

Oppure crei altri 2 statedef, uguali, per esempio 9996 e 9997, in cui physics e type siano uguali a A. Nei due statedef originali invece li lasci uguali a S. Poi nei projectile che rimandano a questi state scrivi

p2stateno = ifelse((p2statetype = A), 9996, 9998)

In questo modo se il p2 ha type = A, allora lo mette dello state 9996 (quello con i 2 parametri uguali ad A), altrimenti lo mette nello state 9998 (quello coi parametri uguali ad S)
0

#89 L   demongorne 

  • Senpai
  • PuntoPuntoPunto
  • Gruppo: Membro
  • Messaggi: 533
  • Iscritto: 07-November 06

Inviato 03 July 2008 - 22:14

inquesto modo il p2subisce i colpi ma nn cade mai al suolo e quando p2 salta e viene colpito continua a dare lo stesso problema
0

#90 L   PaToS 

  • Kohai
  • PuntoPunto
  • Gruppo: Membro
  • Messaggi: 117
  • Iscritto: 17-May 08

Inviato 04 July 2008 - 00:05

Visualizza Messaggidemongorne, su Jul 3 2008, 23:14, detto:

inquesto modo il p2subisce i colpi ma nn cade mai al suolo e quando p2 salta e viene colpito continua a dare lo stesso problema


Allora non so che dirti... così non riesco a capire dove sta il problema. Dovrei provare sul personaggio ma ora non ho molto tempo. Comunque sapere già che il problema sta nel physics è un passo avanti. Se dopo che avrò dato il mio esame, oppure se troverò un po' di tempo, nonhai ancora risolto ci proverò volentieri!! (ormai è una sfida).
Per adesso non so dirti che altro tentare.

Prova a postare per l'ultima volta il projectile della tua prima palla di fuoco e lo statedef a cui fa riferimento il p2stateno (se gli hai modificati) giusto per vedere se si trova qualche altro errore, altrimenti per il momento non so che farti provare.
0

#91 L   demongorne 

  • Senpai
  • PuntoPuntoPunto
  • Gruppo: Membro
  • Messaggi: 533
  • Iscritto: 07-November 06

Inviato 04 July 2008 - 10:26

[State 1000, Proj]
type = Projectile
trigger1 = Time = 1
projanim = 7250
Projhitanim = -1
projremanim = -1
projcancelanim = -1
projmisstime = 0
projhits = ifelse(!var(5), 2, ifelse(var(5) = 1, 3, 5))
offset = 0, 0
projpriority = 1
projsprpriority = 4
velocity = vel X, vel Y
attr = S, HP
damage=ceil(ifelse(((ifelse(!Var(5),81,ifelse(Var(5)=1,84,70)))*fvar(10))<7,7,((ifelse(!Var(5), 81,ifelse(Var(5)=1,84,70)))*fvar(10)))),ceil(ifelse((77*fvar(10)/8)<7,7,(77*fvar(10)/8)))
animtype = Heavy
hitflag = MAF
guardflag = MA
pausetime = 3,4
sparkno = -1
guard.sparkno = S8105
sparkxy = 0, 0
hitsound = S2,15
guardsound = S1,1
ground.type = Low
ground.slidetime = 18
ground.hittime = 18
air.hittime = 18
guard.ctrltime = 18
ground.velocity = -5, -6.67
guard.velocity = -8
air.velocity = -5, -6.67
airguard.velocity = -6.67,-1
air.juggle = ifelse(parent,fvar(4)||parent,fvar(27)>0||parent,fvar(35)=-1,0,8)
fall = 0
fall.recover = 0
air.fall = 0
air.recover = 0
envshake.time = 12
envshake.ampl = 2
ProjID = 3005
getpower = 0,0
givepower = 35, 35
palfx.time = 12*var(41)
palfx.add = 255,255,255
palfx.mul = 128,128,128
forcestand = 1
supermovetime = ifelse(!var(5), 3, ifelse(var(5) = 1, 5, 7))
yaccel = .5
p2stateno = 9998


[statedef 9998]
type = S
movetype = I ; necessario per non farlo cadere
physics = A

[state 9998, 1]
type = changeanim2
trigger1 = time = 0
value = 5300

[state 9998, 2]
type = changeanim2
trigger1 = time = 8
value = 5012


[state 9998, 3]
type = selfstate
trigger1 = time = 120
value = 0
0

#92 L   Nobun 

  • Horse Rider Skull Phantom. Rarely Here.
  • Gruppo: SuperModeratore
  • Messaggi: 4898
  • Iscritto: 11-July 04

Inviato 06 July 2008 - 16:07

Scusatemi ragazzi, ma mi sono perso in tutto questo discorso.

Potete farmi un riassunto breve di ciò che è il problema da risolvere e quali sono gli inconvenienti incontrati?
0

#93 L   demongorne 

  • Senpai
  • PuntoPuntoPunto
  • Gruppo: Membro
  • Messaggi: 533
  • Iscritto: 07-November 06

Inviato 06 July 2008 - 18:27

Certo dunque il problema iniziale era matenere fermo il p2 durante l'hyper in modo tale ke cadesse alla terza palla di fuoco cosa alla quale Patos è arrivato aggiungendo questi statedef -

[statedef 9998]
type = S
movetype = I ; necessario per non farlo cadere
physics = S

[state 9998, 1]
type = changeanim2
trigger1 = time = 0
value = 5300

[state 9998, 2]
type = changeanim2
trigger1 = time = 8
value = 5012


[state 9998, 3]
type = selfstate
trigger1 = time = 120
value = 0

[statedef 9999]
type = S
movetype = I ; necessario per non farlo cadere
physics = S

[state 9999, 1]
type = changeanim2
trigger1 = time = 0
value = 5002

[state 9999, 2]
type = changeanim2
trigger1 = time = 40
value = 5300

[state 9999, 3]
type = selfstate
trigger1 = time = 120
value = 0
e aggiungendo altri 2 projectiles uguali al 7201 ma ke avessero la voce p2stateno = 9999 (la prima palla di fuoco) e p2stateno = 9998(la seconda) ke doveva far subire le prime 2 wall energy e poi all 3 cadere al suolo...
il problema è sorge quando il p2 viene colpito dalla palla di fuoco mentre salta infatti succede ke aopppena colpito sale verso l'alto uscendo dallo skermo ho postato un video dimostrativodel problema -

link
0

#94 L   PaToS 

  • Kohai
  • PuntoPunto
  • Gruppo: Membro
  • Messaggi: 117
  • Iscritto: 17-May 08

Inviato 06 July 2008 - 20:47

Cerco di chiarire un attimo meglio.

All'inizio volevamo che durante le tre palle di fuoco previste da una mossa (serie di colpi + 3 palle di fuoco) il p2 non cadesse finchè non era colpito anche dalla terza e tra una palla e l'altra usasse l'animazione prima di quando subisce un colpo, poi di stordimento.

La sequenza era dunque:
-ultimo colpo della serie
-colpito
-stordito
-prima palla
-colpito
-stordito
-seconda palla
-colpito
-stordito
-terza palla
-cade

Il codice della mossa aveva degli state helper. Questo entrava in uno statedef che conteneva un projectile. Questo projectile aveva il parametro p2stateno.
Noi abbiamo create 2 statedef diversi per le prime e per l'ultima palla di fuoco, e sono quelli postati da demongorne.
In questa mossa non c'era il rischio che il p2 fosse colpito mentre era in aria.

Poi demon penso abbia creato, o modificato, un'altra mossa, che spara tre palle di fuoco, in cui il p2 può essere colpito in aria. Nello statedef di questa mossa ci sono ancora una volta gli helper, che portano allo statedef (non so se lo stesso della mossa precedente) contenente il projectile. Questo projectile ha il parametro p2stateno che mette il p2 negli stessi statef usati per la mossa precedente.

Ora avendo quei due statedef il physics = S (e non so se anche a causa del type = S), succedeva che il p2 colpito volasse verso l'alto senza più ricadere e uscendo dallo schermo (non aveva yaccel in sostanza). Se mettiamo il physics = A il p2 non esce più dallo schermo, ma mi sembra che non usasse più le animazioni previste (era colpito ma restava indifferente se non sbaglio).

Le prove sono state:
- cambiare anche il type, ma mi sembra non cambiasse nulla
- mettere il physics = ifelse((pos Y >= 0), S, A), ma dava errore (penso dunque che il physics non riconosca l'ifelse)
- creare 2 statedef uguali a 9999 e 9998, a parte che per il physics e il type uguali ad A invece che a S. Poi mettere nel projectile il parametro

p2stateno = ifelse((p2dist Y >= 0), 9998, 9996)

in modo che se il p2 fosse coi piedi a terra (dato che il p1 dovrebbe avere i piedi per terra) allora entrasse nello state con physics = S (9998), altrimenti in quello con physics = A (9996).

Ma neanche in questo modo non funziona!

Ne approfitto per chiederti 2 cose:
1 - perchè usare gli helper che vanno al projectile, invece che usare direttamente il projectile?? Penso perchè così puoi rifarti sempre ad un unico projectile ma è una cosa davvero vantaggiosa??
2 - se in uno statedef come questi, che creo per fare in modo che siano usati dal p2, scrivo un trigger come Pos Y, il mugen mi riporta la posizione sempre e comunque del p1 o quella del personaggio che in quel momento è in quello statedef, ovvero il p2 in questo caso??
0

#95 L   Nobun 

  • Horse Rider Skull Phantom. Rarely Here.
  • Gruppo: SuperModeratore
  • Messaggi: 4898
  • Iscritto: 11-July 04

Inviato 06 July 2008 - 22:39

Ok credo di aver capito.

Allora... prime correzioni. Qui siamo all'interno di un custom state di tipo gethit.

Quindi dovete sostituire i movetype = I con movetype = H

per il physics dovete usare N (consiglio sempre il physics N nei custom states)

Il type invece deve rispecchiare lo status del personaggio (S se standing, A se AIR)

----------------------------

Detto questo però rimane da capire una cosa... il p2stateno appartiene ad ogni singolo proiettile?

Perché se è così allora bisogna anche ristrutturare un attimo gli HitDef

---------------------------

rispondo ad alcune domande di PaToS

1) ifelse((pos Y >= 0), S, A) perché non funziona? perché ifelse accetta come valori numerici come valori di restituzione. In questo caso i valori di restituzione sarebbero S ed A che non sono numeri, quindi ecco perché era un errore. Per produrre l'effetto, in questi casi, non si può usare quindi ifelse, ma dividere la cosa in due istruzioni

2)

Quote

se in uno statedef come questi, che creo per fare in modo che siano usati dal p2, scrivo un trigger come Pos Y, il mugen mi riporta la posizione sempre e comunque del p1 o quella del personaggio che in quel momento è in quello statedef, ovvero il p2 in questo caso??

Ovviamente, visto che in questo momento chi interpreta il codice è l'avversario e non il char all'interno del quale si trova materialmente il codice (perché lo state è destinato da essere letto dall'avversario che subisce il colpo e non dal char che l'effettua), è ovvio che qualunque trigger si usi (in questo caso Pos Y) viene letto ed interpretato come un normale codice dell'avversario, come se fosse scritto all'interno del char avversario (anche se sta materialmente nel tuo).
Quindi quel Pos Y si riferisce all'avversario (ovviamente questo vale solo ALL'INTERNO degli state destinati ad essere letti dal p2 - i cd. "custom state" - ovvero quelli indirizzati da un p2stateno)

3)

Quote

perchè usare gli helper che vanno al projectile, invece che usare direttamente il projectile?? Penso perchè così puoi rifarti sempre ad un unico projectile ma è una cosa davvero vantaggiosa??

Anche secondo me generalmente è una soluzione senza senso.
In primo luogo perché così si deve scrivere inutilmente più codice.
In secondo luogo perché così si crea SIA un helper CHE un projectile, con uno spreco di memoria RAM.

Devo anche però dire che una volta (in Ranmaru) ho fatto anche io tale scelta, ma avevo un motivo ben preciso.

Se analizzi il codice della Hyper dove ranmaru lancia quella stella che poi viene frammentata in una serie di "triangolini", ho usato una tecnica simile.

Il proiettile (come nel gioco originale) è composto in realtà da 5 proiettili attaccati tra di loro in maniera tale da formare un corpo unico.

Ora, visto che succede che se Ranmaru (come altro char) viene colpito IMMEDIATAMENTE cambia state interrompendo la lettura del codice hyper, avevo necessità di avere la certezza ASSOLUTA che il proiettile (composto da 5 proiettili che compaiono ad un tot di tick di distanza l'uno dall'altro) apparisse in tutte e 5 le sue componenti qualora lanciato.

Ho quindi creato un Helper che lancia i 5 proiettili in questione, perché così facendo, anche qualora Ranmaru venisse colpito in quell'istante, il "proiettile" finale COMUNQUE risultasse correttamente formato nelle sue 5 componenti (l'helper è indipendente dal char e non viene influenzato da un eventuale cambio state del genitore).

(visto che il codice CNS viene letto dall'inizio alla fine - dello state - ad ogni tick di tempo, capirai il perché di questa scelta).

E' una pignoleria forse eccessiva (l'interruzione del proiettile tramite un colpo in quel preciso e breve lasso di tempo è un evento praticamente impossibile per tutta una serie di ragioni) però la scelta è stata dettata dal fatto che volevo con ASSOLUTA CERTEZZA ottenere tale effetto (come nel gioco originale).
0

#96 L   demongorne 

  • Senpai
  • PuntoPuntoPunto
  • Gruppo: Membro
  • Messaggi: 533
  • Iscritto: 07-November 06

Inviato 07 July 2008 - 12:41

ho modificato questo

[statedef 9998]
type = S
movetype = H ; necessario per non farlo cadere
physics = N

[statedef 9999]
type = S
movetype = H ; necessario per non farlo cadere
physics = N

statedef 3020 (lancia la prima paalla di fuoco)

[State 1000, Proj]
type = Projectile
trigger1 = Time = 1
projanim = 7250
Projhitanim = -1
projremanim = -1
projcancelanim = -1
projmisstime = 0
projhits = ifelse(!var(5), 2, ifelse(var(5) = 1, 3, 5))
offset = 0, 0
projpriority = 1
projsprpriority = 4
velocity = vel X, vel Y
attr = S, HP
damage=ceil(ifelse(((ifelse(!Var(5),81,ifelse(Var(5)=1,84,70)))*fvar(10))<7,7,((ifelse(!Var(5), 81,ifelse(Var(5)=1,84,70)))*fvar(10)))),ceil(ifelse((77*fvar(10)/8)<7,7,(77*fvar(10)/8)))
animtype = Heavy
hitflag = MAF
guardflag = MA
pausetime = 3,4
sparkno = -1
guard.sparkno = S8105
sparkxy = 0, 0
hitsound = S2,15
guardsound = S1,1
ground.type = Low
ground.slidetime = 18
ground.hittime = 18
air.hittime = 18
guard.ctrltime = 18
ground.velocity = -5, -6.67
guard.velocity = -8
air.velocity = -5, -6.67
airguard.velocity = -6.67,-1
air.juggle = ifelse(parent,fvar(4)||parent,fvar(27)>0||parent,fvar(35)=-1,0,8)
fall = 1
fall.recover = 0
air.fall = 1
air.recover = 0
envshake.time = 12
envshake.ampl = 2
ProjID = 3005
getpower = 0,0
givepower = 35, 35
palfx.time = 12*var(41)
palfx.add = 255,255,255
palfx.mul = 128,128,128
forcestand = 1
supermovetime = ifelse(!var(5), 3, ifelse(var(5) = 1, 5, 7))
yaccel = .5
p2stateno = 9998

statedef 3021(lancia la seconda palla di fuoco)

[State 1000, Proj]
type = Projectile
trigger1 = Time = 1
projanim = 7250
Projhitanim = -1
projremanim = -1
projcancelanim = -1
projmisstime = 0
projhits = ifelse(!var(5), 2, ifelse(var(5) = 1, 3, 5))
offset = 0, 0
projpriority = 1
projsprpriority = 4
velocity = vel X, vel Y
attr = S, HP
damage=ceil(ifelse(((ifelse(!Var(5),81,ifelse(Var(5)=1,84,70)))*fvar(10))<7,7,((ifelse(!Var(5), 81,ifelse(Var(5)=1,84,70)))*fvar(10)))),ceil(ifelse((77*fvar(10)/8)<7,7,(77*fvar(10)/8)))
animtype = Heavy
hitflag = MAF
guardflag = MA
pausetime = 3,4
sparkno = -1
guard.sparkno = S8105
sparkxy = 0, 0
hitsound = S2,15
guardsound = S1,1
ground.type = Low
ground.slidetime = 18
ground.hittime = 18
air.hittime = 18
guard.ctrltime = 18
ground.velocity = -5, -6.67
guard.velocity = -8
air.velocity = -5, -6.67
airguard.velocity = -6.67,-1
air.juggle = ifelse(parent,fvar(4)||parent,fvar(27)>0||parent,fvar(35)=-1,0,8)
fall = 0
fall.recover = 0
air.fall = 0
air.recover = 0
envshake.time = 12
envshake.ampl = 2
ProjID = 3005
getpower = 0,0
givepower = 35, 35
palfx.time = 12*var(41)
palfx.add = 255,255,255
palfx.mul = 128,128,128
forcestand = 1
supermovetime = ifelse(!var(5), 3, ifelse(var(5) = 1, 5, 7))
yaccel = .5
p2stateno = 9999

statedef 3022(lancia l'ultima palla di fuoco e il p2 cade al suolo)
[State 1000, Proj]
type = Projectile
trigger1 = Time = 1
projanim = 7250
Projhitanim = -1
projremanim = -1
projcancelanim = -1
projmisstime = 0
projhits = ifelse(!var(5), 2, ifelse(var(5) = 1, 3, 5))
offset = 0, 0
projpriority = 1
projsprpriority = 4
velocity = vel X, vel Y
attr = S, HP
damage=ceil(ifelse(((ifelse(!Var(5),81,ifelse(Var(5)=1,84,70)))*fvar(10))<7,7,((ifelse(!Var(5), 81,ifelse(Var(5)=1,84,70)))*fvar(10)))),ceil(ifelse((77*fvar(10)/8)<7,7,(77*fvar(10)/8)))
animtype = Heavy
hitflag = MAF
guardflag = MA
pausetime = 3,4
sparkno = -1
guard.sparkno = S8105
sparkxy = 0, 0
hitsound = S2,15
guardsound = S1,1
ground.type = Low
ground.slidetime = 18
ground.hittime = 18
air.hittime = 18
guard.ctrltime = 18
ground.velocity = -5, -6.67
guard.velocity = -8
air.velocity = -5, -6.67
airguard.velocity = -6.67,-1
air.juggle = ifelse(parent,fvar(4)||parent,fvar(27)>0||parent,fvar(35)=-1,0,8)
fall = 1
fall.recover = 0
air.fall = 1
air.recover = 0
envshake.time = 12
envshake.ampl = 2
ProjID = 3005
getpower = 0,0
givepower = 35, 35
palfx.time = 12*var(41)
palfx.add = 255,255,255
palfx.mul = 128,128,128
forcestand = 1
supermovetime = ifelse(!var(5), 3, ifelse(var(5) = 1, 5, 7))
yaccel = .5

ma mi da lo staesso problema :unsure:
0

#97 L   Nobun 

  • Horse Rider Skull Phantom. Rarely Here.
  • Gruppo: SuperModeratore
  • Messaggi: 4898
  • Iscritto: 11-July 04

Inviato 07 July 2008 - 18:45

Ragazzi qui vedo tante complicazioni inutili, più un errore di concetto

(l'utilizzo del reindirizzamento "parent" nel codice del projectile... anche qualora il projectile stia all'interno di un helper, esso appartiene al char e non all'helper, quindi il reindirizzamento "parent" non ha senso)

ORA ANALIZZO IL CODICE E CERCO DI VENIRCI UN ATTIMO A CAPO...

...ATTENDERE
0

#98 L   PaToS 

  • Kohai
  • PuntoPunto
  • Gruppo: Membro
  • Messaggi: 117
  • Iscritto: 17-May 08

Inviato 07 July 2008 - 19:01

Inizialmente il codice era con

movetype = H

ma il personaggio cadeva sempre quando era colpito dalla prima palla di fuoco (nonostante fall = 0). Ecco perchè avevamo messo I. Non so se mettedno H ora, avendo magari risolto alti problemi, possa ridare quello stesso problema. Demon prova la mossa dell'altra volta e controlla che funzioni comunque correttamente.

Per Nobun: però il comando changestate2 agisce sul p2 mentre è in custom state. E' un eccezione?? Oppure anche mettendo semplicemente changestate si ha lo stesso effetto e dunque changestate2 è inutile?

Ci sono 2 statedef (9998 e 9999) che rappresentano le reazioni del p2 alla prima (9998) e alla seconda (9999) palla di fuoco. Dopodichè ci sono 3 statedef (non so i numeri) che contengono ognuno un projectile che ha il p2stateno = 9998, 9999 oppure non lo ha e ha fall = 1 (invece che 0 come negli altri due). Infine c'è lo statedef della mossa in questione che contiene 3 helper: il primo per il primo projectile e così via.

Mossa:
Helper 1 ---> Projectile 1° ---> 9998
Helper 2 ---> Projectile 2° ---> 9999
Helper 3 ---> Projectile 3° ---> cade

Mi sembra che la struttura sia questa.
0

#99 L   Nobun 

  • Horse Rider Skull Phantom. Rarely Here.
  • Gruppo: SuperModeratore
  • Messaggi: 4898
  • Iscritto: 11-July 04

Inviato 07 July 2008 - 19:41

No il Movetype non ha influenza sul "comportamento fisico".

-------------
ChangeState2 no.

Quello di cui tu parli è ChangeAnim2, ma se tu ci pensi è una cosa abbastanza logica.

Mettiamo per ipotesi che il char che fa la presa sia Nobunaga e quello che subisce la presa sia Ranmaru.

Nobunaga con un p2stateno porta Ranmaru a leggere, per ipotesi, uno statedef 7000 contenuto in Nobunaga. Ecco quindi cosa fa Ranmaru

(Ranmaru subisce la presa di Nobunaga)

SFF -> Ranmaru.sff
AIR -> Ranmaru.air
CNS -> (Nobunaga.cns)
...

Quindi ora Ranmaru sta leggendo sì il CNS di Nobunaga, ma per il resto rimane sul suo.
ChangeAnim2 mi dice che io devo andare a leggere NON l'Air di proprietà di Ranmaru (ovvero Ranmaru.air) ma l'AIR di proprietà di Nobunaga (Nobunaga.air).

Dopo l'inserimento di un ChangeAnim2 la situazione sarà la seguente

SFF -> Ranmaru.sff
AIR -> Nobunaga.air (animazione indicata da ChangeAnim2)
CNS -> (Nobunaga.cns)

Questo perchè il ChangeAnim2 dice a chi subisce il colpo (Ranmaru) di andare sull'air del char che contiene materialmente il codice CNS che si sta eseguendo (e quindi l'AIR di Nobunaga che contiene l'animazione di colpo subito che deve essere eseguita da Ranmaru)

Se invece si inserisse un semplice ChangeAnim allora l'avversario (RANMARU) eseguirebbe semplicemente l'animazione scelta dal PROPRIO air (Ranmaru.air). Una cosa sconsigliabile (visto che ogni char ha un suo proprio ed unico ordine di animazioni) a meno che non sia una animazione STANDARD (tipo la 5300 di stordimento).

--------------

In ogni caso ribadisco quanto sopra. Sto avendo dei problemi di collegamento. quindi la mia risposta più specifica può tardare (siamo anche in fase di risoluzione di un problema del sito. Se ne sta occupando TED).

--------------------------

EDIT per demongorne...
Fatti un backup del codice del terzo proiettile. Prova poi ad usare queste istruzioni (sostituisci i parametri che troverai qui - e solo quelli - al posto dei valori originali).

ATTENZIONE: questo va bene solo per l'eventualità di colpo da standing

-----------------------------

attr = S, ST
hitflag = MAFD
guardflag = L
animtype = hard
fall = 1
ground.type = low
ground.slidetime = 20
ground.velocity = -6,-2
air.velocity = -6,-2
ground.cornerpush.veloff = -2
air.cornerpush.veloff = -2
down.bounce = 1
fall.envshake.time = 20
fall.envshake.freq = 60
fall.envshake.ampl = -4
fall.envshake.phase = 90

------------------------

Questo codice l'ho preso dalla presa speciale di Nobunaga e lancia l'avversario MOLTO in orizzontale e poco in verticale. Se invece preferisci più uno stile "uppercut" allora...

------------------------
attr = S, SA
hitflag = MAFD
guardflag = L
animtype = Up
ground.type = Low
forcestand = 1
ground.slidetime = 26
ground.hittime = 26
ground.velocity = -1.3,-12
air.velocity = -1.3,-12
p2facing = 1
fall = 1
fall.recover = 0
fall.envshake.ampl = 6
fall.envshake.freq = 178
fall.envshake.time = 15
mindist = 50,-100
maxdist = 100,-10
-----------------------------

Anche questa seconda eventualità va bene solo per l'eventualità da standing.

(codici presi da Nobunaga)
0

#100 L   demongorne 

  • Senpai
  • PuntoPuntoPunto
  • Gruppo: Membro
  • Messaggi: 533
  • Iscritto: 07-November 06

Inviato 08 July 2008 - 11:39

Bello l'effetto uppercut (in parte era quello ke mi serviva) xò io vorrei ke quando viene colpito dall'utima palla venisse spinto all'indietro a mezz'aria e poi facesse una giravolta su se stesso e poi che cada a terra se (in pratica la caduta ke fa in mr.karate svc)
0

Condividi questa discussione:


  • 6 Pagine +
  • « Primo
  • 3
  • 4
  • 5
  • 6
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

1 utenti stanno leggendo questa discussione
0 utenti, 1 ospiti, 0 utenti anonimi