Forum MUGENATION: Fissare posizione Char - Forum MUGENATION

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

Fissare posizione Char

#1 L   Fleshdoom 

  • Chan
  • Punto
  • Gruppo: Membro
  • Messaggi: 75
  • Iscritto: 23-June 09

Inviato 01 February 2010 - 21:33

Ciao, ho scritto una nuova mossa per un personaggio ma quando questo la esegue con un particolare salto, se colpisce il bersaglio, stranamente continua a sollevarsi verso l'alto. Non ho ben capito a cosa sia dovuto, dato che ho rimosso praticamente ogni cosa tranne che l'hitdef, vorrei quindi sapere se esiste qualche codice che fissa il char durante l'esecuzione della mossa.

Se vi serve il codice eccolo, c'è una valanga di helper, ma non è dovuto a loro.

Spoiler

0

#2 L   Squall LionHeart 

  • Programmatore M.U.G.E.N.
  • Gruppo: Moderatore
  • Messaggi: 1097
  • Iscritto: 23-July 07

Inviato 02 February 2010 - 11:04

mmm non vedo un changestate finale XD fai un changestate che porti allostate 50, che la discesa dopo un salto.

Saluti

Squall
0

#3 L   Fleshdoom 

  • Chan
  • Punto
  • Gruppo: Membro
  • Messaggi: 75
  • Iscritto: 23-June 09

Inviato 02 February 2010 - 13:55

Il problema non si risolto, comunque ho fatto un video per farti capire meglio cosa succede...

http://uploading.com...Rec%252308.rar/

Il fatto che dopo aver compiuto la mossa ci metta di pi a scendere perch ho messo un trigger in pi, non dovuto al problema presente nel filmato.
0

#4 L   Fleshdoom 

  • Chan
  • Punto
  • Gruppo: Membro
  • Messaggi: 75
  • Iscritto: 23-June 09

Inviato 04 February 2010 - 18:30

@Ricky 88, nel video c' anche una piccola anteprima del mio screenpack.
0

#5 L   ricky88 

  • Kohai
  • PuntoPunto
  • Gruppo: Membro
  • Messaggi: 437
  • Iscritto: 10-June 06

Inviato 05 February 2010 - 16:51

scusa se non sono in grado di risolvere il tuo problema.... ma lo screenpack spettacolare!!!! x favore rilascialo al + presto perch vederlo in video mi ha fatto venire voglia di usarlo!!!
0

#6 L   Nobun 

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

Inviato 08 February 2010 - 23:33

Squall, scusa se ti correggo, ma di norma - nelle mosse aeree (salvo particolari casi) - NON vi sono changestate, perch la gestione del ritorno e dell'atterraggio automatica...
...ovviamente se si usa il parametro physics = A

In questo codice noto molte confusioni di fondo... sono pronto a scommettere che stato usato come base un codice pre-esistente che si cercato di riadattare.

Il problema di questo "andare in alto" dipende da questo, secondo me:
Lo state inizia con un physics = N (nessuna frizione, quindi la velocit - se non con codici appositi che non ci sono - risulta sempre invariata). Se l'animazione non raggiunge il frame 15

[state 3];�ύX
type = StatetypeSet
trigger1 = Animelem = 15
physics = A


il physics non si "trasforma" e non permette di passare a physics = A (ovvero... con physics = A viene attivata la forza di gravit e viene attivata la gestione automatica dell'atterraggio dalla caduta).

Ora questa scelta di passare da uno physics = N ad un physics = A (e fatta in questo modo) mi sembra un po' insensata. Non che non ci siano situazioni in cui importante usare diversi tipi di physics, per... fate gli state pi SEMPLICI ed ordinati... non andate ad impelagarvi in cose strane.

Prova a confrontare questo tuo codice con il codice di un mio char... prendi ad esempio Ranmaru che ha anche un paio di special aeree (una delle due pure a combinazione)... e guarda i miei codici... sono molto pi semplici.

Qui ci vedo 3 helper (di cui non si capisce l'utlit), un playsound che incomincia daccapo a partire ad ogni frame della animazione da 3 a 13 (mi pare strano non faccia un effetto "disco rotto"), un damage del colpo calcolato con una forma complicatissima che involve ceil e diverse variabili float (devi chiederti... a che serve ceil? se non lo sai, evita di complicarti la vita)

Io dico... la complessit viene in un secondo momento, se vuoi rendere pi "flessibile" il tuo char. Per, a mio modesto avviso, la complessit deve essere ridotta ai minimi termini: le cose semplici sono quelli pi facili da controllare (si sbaglia meno, si capisce di pi).

Tornando a noi il tuo problema si dovrebbe risolvere semplicemente modificando il parametro iniziale physics (sotto statedef) da N ad A (poi il comando che cambia il physics al frame 15 diventa inutile. ma pazienza).
La soluzione che ti ho appena dato solo una "toppa" (che dovrebbe funzionare), ma ritorno a quanto detto prima. Prova a scriverti il codice da solo. Non copiare da nessuno (e se vuoi copiare da qualcuno prendi i miei codici che sono tendenzialmente semplici... io evito arzigogoli se non sono indispensabili... inoltre seguo un sistema ORDINATO... le mie righe [state x,y] sono scritte con criterio... non metto numeri a caso... mettendo al posto di x SEMPRE il numero effettivo dello state (e non mettendoci il primo numero che mi passa per la testa, come invece fanno quasi tutti gli altri) rendo il codice anche molto pi semplice da leggere (si capisce subito, in qualunque punto del codice, in che state ci si trova... senza dover far alcun tipo di scorrimento)
0

#7 L   Fleshdoom 

  • Chan
  • Punto
  • Gruppo: Membro
  • Messaggi: 75
  • Iscritto: 23-June 09

Inviato 09 February 2010 - 09:54

Visualizza MessaggiNobun, su 08 February 2010 - 23:33, detto:

Squall, scusa se ti correggo, ma di norma - nelle mosse aeree (salvo particolari casi) - NON vi sono changestate, perch la gestione del ritorno e dell'atterraggio automatica...
...ovviamente se si usa il parametro physics = A

In questo codice noto molte confusioni di fondo... sono pronto a scommettere che stato usato come base un codice pre-esistente che si cercato di riadattare.

Il problema di questo "andare in alto" dipende da questo, secondo me:
Lo state inizia con un physics = N (nessuna frizione, quindi la velocit - se non con codici appositi che non ci sono - risulta sempre invariata). Se l'animazione non raggiunge il frame 15

[state 3];�ύX
type = StatetypeSet
trigger1 = Animelem = 15
physics = A


il physics non si "trasforma" e non permette di passare a physics = A (ovvero... con physics = A viene attivata la forza di gravit e viene attivata la gestione automatica dell'atterraggio dalla caduta).

Ora questa scelta di passare da uno physics = N ad un physics = A (e fatta in questo modo) mi sembra un po' insensata. Non che non ci siano situazioni in cui importante usare diversi tipi di physics, per... fate gli state pi SEMPLICI ed ordinati... non andate ad impelagarvi in cose strane.

Prova a confrontare questo tuo codice con il codice di un mio char... prendi ad esempio Ranmaru che ha anche un paio di special aeree (una delle due pure a combinazione)... e guarda i miei codici... sono molto pi semplici.

Qui ci vedo 3 helper (di cui non si capisce l'utlit), un playsound che incomincia daccapo a partire ad ogni frame della animazione da 3 a 13 (mi pare strano non faccia un effetto "disco rotto"), un damage del colpo calcolato con una forma complicatissima che involve ceil e diverse variabili float (devi chiederti... a che serve ceil? se non lo sai, evita di complicarti la vita)

Io dico... la complessit viene in un secondo momento, se vuoi rendere pi "flessibile" il tuo char. Per, a mio modesto avviso, la complessit deve essere ridotta ai minimi termini: le cose semplici sono quelli pi facili da controllare (si sbaglia meno, si capisce di pi).

Tornando a noi il tuo problema si dovrebbe risolvere semplicemente modificando il parametro iniziale physics (sotto statedef) da N ad A (poi il comando che cambia il physics al frame 15 diventa inutile. ma pazienza).
La soluzione che ti ho appena dato solo una "toppa" (che dovrebbe funzionare), ma ritorno a quanto detto prima. Prova a scriverti il codice da solo. Non copiare da nessuno (e se vuoi copiare da qualcuno prendi i miei codici che sono tendenzialmente semplici... io evito arzigogoli se non sono indispensabili... inoltre seguo un sistema ORDINATO... le mie righe [state x,y] sono scritte con criterio... non metto numeri a caso... mettendo al posto di x SEMPRE il numero effettivo dello state (e non mettendoci il primo numero che mi passa per la testa, come invece fanno quasi tutti gli altri) rendo il codice anche molto pi semplice da leggere (si capisce subito, in qualunque punto del codice, in che state ci si trova... senza dover far alcun tipo di scorrimento)


Ringrazio per il post esauriente, appena posso far le modifiche:

Comunque rispondo ad alcune tue perplessit:


Il codice stato interamente copiato da una mossa preesistente: l'unica differenza con questa che sono stati aggiunti trigger in pi in all'hitdef e il playsound. Quest'ultimo chiama un suono di movimento: dall'animelem 3-13 il char muove molto velocemente le braccia.
La formula complicatissima dell'hitdef dovuta al fatto che ci sono altre mosse che modicano lo stato del personaggio: a seconda che queste siano state attivate o meno, il danno ne verr influenzato.
Gli helper non hanno nulla a che fare con la riuscita della mossa: sono degli accorgimenti grafici con molti modifyExplod e modifiche al background per rendere la mossa pi spettacolare.
Il fatto che la ho copiata da una mossa preesistente era semplicemente il fatto che nelle meccaniche (a quanto risultava nel gameplay) funzionava e rappresentava in maniera logica quella che volevo. Non ho detto il fatto che la mossa che ho copiato era gi presente nello stesso char, non che la ho presa da un altro personaggio. L'idea era quella che se c'erano certe condizioni disattivate il personaggio faceva la mossa presente, altrimenti eseguiva la versione modificata.


Il personaggio il Toki di Nericya, immagino lo conosci, la mossa il Tenshou Hyakuretsu ken...
La mossa appare in questo video al secondo 5:
0

#8 L   Nobun 

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

Inviato 09 February 2010 - 10:53

Il fatto che ho visto parecchi utenti usare questo tipo di approccio (copiare i codici, cercando di modificarli, ma partendo da codici base complessi col risultato di non capirci nulla).
Noto con piacere che hai un approccio razionale e non del tutto casuale. Rimane il fatto che tendenzialmente io consiglio di rimanere sul semplice. Fammi sapere poi se il problema si risolto o meno
0

#9 L   Fleshdoom 

  • Chan
  • Punto
  • Gruppo: Membro
  • Messaggi: 75
  • Iscritto: 23-June 09

Inviato 09 February 2010 - 11:18

Visualizza MessaggiNobun, su 09 February 2010 - 10:53, detto:

Il fatto è che ho visto parecchi utenti usare questo tipo di approccio (copiare i codici, cercando di modificarli, ma partendo da codici base complessi col risultato di non capirci nulla).
Noto con piacere che hai un approccio razionale e non del tutto casuale. Rimane il fatto che tendenzialmente io consiglio di rimanere sul semplice. Fammi sapere poi se il problema si è risolto o meno


Ho risolto il problema in una maniera molto originale:

Il nuovo statedef lo ho cancellato, bensì ho messo molti più trigger nello statedef originale, in questo modo a seconda della situazione il personaggio esegue una animazione o un'altra, idem per gli hitdef, gli helper e tutti i soundfile.

Presentata in questa maniera con le condizioni presenti la AI sarà in grado di eseguire sia la mossa originale che la mossa speciale senza subire modifiche di alcun genere.

Unico neo a cui dovrò dare un certo peso:

Se i trigger soddisfano la condizione per la mossa speciale, ne l'AI nè tantomeno il player saranno in grado di eseguire la mossa originale...
Non è un gravissimo problema dato che la mossa fa tanto male ed è abbastanza bella da vedere. E' comunque un problema rilevante per un programmatore.
Se esiste un trigger legato alla sequenza dei tasti utilizzata il problema dovrebbe risolversi. Ti ringrazio ancora per la disponibilità.

Ti posto il codice intero stavolta è la mossa originale con in più la maggior parte del codice precedentemente presente:

[Statedef 1100]
type = A
movetype = A
physics = N
ctrl = 0
anim = 0
sprpriority = 2
velset = 0,0

[State 1100, 0]
type = ChangeAnim
trigger1 = time = 0 && (var(58)!=1 || (var(58) = 1 && power < 1000))

value = 1100

[State 1100, 0]
type = ChangeAnim
trigger1 = time = 0 && var(58)=1 && power > 999 ( Essendo una mossa speciale deve avere un suo costo)
value = 4900

[State 1100, 2]
type = PowerAdd
trigger1 = anim = 4900
value = -1000

;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡[ƒu[ƒXƒgŠÖŒW]

[state boost]
type = veladd
triggerall = var(16) >= 100 || var(16) < 100 && var(17) = 1
triggerall = animelem = 2,<=0
Trigger1 = !var(59)
trigger1 = command = "z"
x = 7

[State st, 0];‘®«•ÏX
type = StateTypeSet
triggerall = var(16) >= 100 || var(16) < 100 && var(17) = 1
triggerall = animelem = 2,<=0
Trigger1 = !var(59)
trigger1 = command = "z"
physics = A

[State Pal, 1];–{‘̐F
type = PalFX
triggerall = var(16) >= 100 || var(16) < 100 && var(17) = 1
triggerall = animelem = 2,<=0
Trigger1 = !var(59)
trigger1 = command = "z"
time = 5
add = 180,180,180

;---------------------[ƒu[ƒXƒgƒQ[ƒW‘‰Á]
[state a] ;var17‚̓Q[ƒWŽ©“®Œ¸­’†‚Ì ‘‰Á–hŽ~
type = VarAdd
triggerall = var(17) = 0
trigger1 = movecontact = 1
v = 16
value = 1
ignorehitpause = 1
;persistent = 0 ;’ˆÓ

[state a];ƒu[ƒXƒgƒQ[ƒWŒ¸­
type = varadd
triggerall = var(16) >= 100 || var(16) < 100 && var(17) = 1
triggerall = animelem = 2,<=0
Trigger1 = !var(59)
trigger1 = command = "z"
v = 16
value = -40
ignorehitpause = 1
persistent = 0

;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡¡¡

;----------------------------š¯Žæ‚èŠÖŒW
[State hoshi, 0]
type = VarAdd
triggerall = Var(52) = 0
trigger1 = movehit = 1
trigger1 = Var(19)
v = 21
value = ifelse(var(11)=0,1,2)
ignorehitpause = 1
persistent = 0

[State hoshi, 0]
type = VarAdd
triggerall = !Var(52)
triggerall = !Var(22)
trigger1 = Var(19)
trigger1 = movehit = 1 ;ƒOƒŒƒCƒu”»’è‚n‚m‚ÌŽž
trigger1 = RoundState = 2 ;í“¬’†‚Ì‚Ý
v = 20
value = ifelse(var(11)=0,-1,-2) ;™‹ŠˆEŽžš2‚ÂŽæ‚è
ignorehitpause = 1
persistent = 0
;-----------------------------

;-------------------------Œø‰Ê‰¹
[State a, 0]
type = PlaySnd
triggerall = (anim = 1100)
trigger1 = time = 0
value = S1100,0 ;u“VãÄ•S—ôŒIv
volume = 255
channel = -1

[State a, 0]
type = PlaySnd
triggerall = (anim = 1100)
trigger1 = Animelem = 3
trigger2 = Animelem = 4
trigger3 = Animelem = 7
value = 300,1 ;‘fU‚艹
volume = 255
channel = 2
ignorehitpause = 1

[State 1100, StateType]
type = StateTypeSet
trigger1 = AnimElem = 9 && (anim = 1100)
movetype = I

[state 3];‘®«•ÏX
type = StatetypeSet
trigger1 = Animelem = 9 && (anim = 1100)
physics = A

[State 1100, StateType]
type = StateTypeSet
trigger1 = AnimElem = 15 && (anim = 4900)
movetype = I

[state 3];‘®«•ÏX
type = StatetypeSet
trigger1 = Animelem = 15 && (anim = 4900)
physics = A

;---------------------------------ƒqƒbƒg’è‹`
[State 1100, Hit]
type = HitDef
triggerall = (anim = 1100)
trigger1 = Animelem = 3
trigger2 = Animelem = 4
trigger3 = Animelem = 5
attr = A,SA
hitflag = MAF
guardflag = HA
animtype = light ;light,medium,hard,back,up,diagup
air.animtype = light
;fall.animtype = Back
;priority = 4,Hit
damage = ceil(24*fvar(6)*fvar(7)*fvar(8)),ceil(6*fvar(6))
pausetime = 7,8
guard.pausetime = 5,6;7,8
sparkno = -1;S6070+(random%3)
;sparkxy = -8, -60
guard.sparkno = -1
hitsound = S200,0
guardsound = 6,0
ground.type = High ;Low,Trip,None
air.type = High
ground.slidetime = 0
guard.slidetime = 0
ground.hittime = 20
guard.hittime = 12
air.hittime = 20
ground.velocity = -2,0
guard.velocity = -1
air.velocity = -0.2,-4.6-ifelse(var(41)>20,20,var(41)-1)*0.2;-4.2
airguard.velocity = -1,0.5
fall = 0
fall.recover = 1
fall.recovertime = 45
air.fall = 1
id = 1150
numhits = 1
getpower = ifelse(var(30)=0,34,ceil(34/3)),ifelse(var(30)=0,ceil(34/2),ceil(34/3))
p2facing = 1
fall.yvelocity = -7-ifelse(var(41)>35,35,var(41)-1)*0.1
yaccel = 0.45+(var(41)-1)*0.03;0.45+(var(41)-1)*0.05

[State 1100, Hit2];ƒ‰ƒXƒgƒqƒbƒg•”•ª
triggerall = (anim = 1100)
type = HitDef
trigger1 = Animelem = 7
attr = A,SA
hitflag = MAF
guardflag = HA
animtype = back ;light,medium,hard,back,up,diagup
air.animtype = hard
;fall.animtype = Back
;priority = 4,Hit
damage = 38,8
pausetime = 7,8
guard.pausetime = 7,13
sparkno = -1;S6070+(random%3)
;sparkxy = -8, -60
guard.sparkno = -1
hitsound = S200,0
guardsound = 6,0
ground.type = High ;Low,Trip,None
air.type = High
ground.slidetime = 0
guard.slidetime = 0
ground.hittime = 12
guard.hittime = 12
air.hittime = 20
ground.velocity = -2,0
guard.velocity = -1
air.velocity = -0.2,-1.2-ifelse(var(41)>20,20,var(41)-1)*0.2
airguard.velocity = -1,0.5
fall = 1
fall.recover = 1
fall.recovertime = 60
air.fall = 1
fall.xvelocity = -2
fall.yvelocity = -7-ifelse(var(41)>35,35,var(41)-1)*0.1
id = 1151
numhits = 1
getpower = ifelse(var(30)=0,34,ceil(34/3)),ifelse(var(30)=0,ceil(34/2),ceil(34/3))
p2facing = 1
yaccel = 0.45+(var(41)-1)*0.03

;-------------------------‰æ–ʂ̐U“®
[State 1100, EnvShake]
type = EnvShake
trigger1 = movehit = 1
time = 7
freq = 60
ampl = 3
phase = 90

;newmove

[State 9000, 4]
type = SuperPause
triggerall = Anim = 4900
trigger1 = Animelem = 1
time = 70
anim = -1
sound = -1
pos = 0,0
movetime = 270
darken = 0



[State a, 0]
type = PlaySnd
triggerall = (anim = 4900)
trigger1 = time = 0
value = S191,2 ;u“VãÄ•S—ôŒIv
volume = 255
channel = -1

[State a, 0]
type = PlaySnd
triggerall = (anim = 4900)
trigger1 = Animelem = 3
trigger2 = Animelem = 4
trigger3 = Animelem = 5
trigger4 = Animelem = 6
trigger5 = Animelem = 7
trigger6 = Animelem = 8
trigger7 = Animelem = 9
trigger8 = Animelem = 10
trigger9 = Animelem = 11
trigger10 = Animelem = 13
value = 300,1 ;‘fU‚艹
volume = 255
channel = 2
ignorehitpause = 1

[State 2300,haikei]
type = Helper
triggerall = (anim = 4900)
trigger1 = animelem = 1
persistent = 0
id = 7500
name = "haikei"
pos = 0,0
postype = P1
stateno = 7500
helpertype = normal
keyctrl = 0
ownpal = 1
under = 1
ignorehitpause = 1

[State 2000,haikei];“ÁŽêKO‰‰o
type = Helper
triggerall = (anim = 4900)
trigger1=winko
id = 7850
name = "haikei-tokushu"
pos = 0,0
postype = left
stateno = 7850
helpertype = normal
keyctrl = 0
ownpal = 1
supermovetime = 999999
pausemovetime = 999999
size.xscale = .5
size.yscale = .5
ignorehitpause = 1 ;d’¼–³Ž‹
persistent = 0


[State 2200, 0]
type = Helper
triggerall = (anim = 4900)
trigger1 = AnimElem = 1
helpertype = normal
name = "ougi-1"
ID = 2050
stateno = 2050
pos = 1,-95
postype = p1 ;p2,front,back,left,right
facing = 1
keyctrl = 0
ownpal = 0
supermovetime = 99999
pausemovetime = 99999
size.xscale = 0.5
size.yscale = 0.5

;---------------------------------ƒqƒbƒg’è‹`

[State 4900, Hit]
type = HitDef
triggerall = (anim = 4900)
trigger1 = Animelem = 3
trigger2 = Animelem = 4
trigger3 = Animelem = 5
trigger4 = Animelem = 6
trigger5 = Animelem = 7
trigger6 = Animelem = 8
trigger7 = Animelem = 9
trigger8 = Animelem = 10
trigger9 = Animelem = 11
attr = A,SA
hitflag = MAF
guardflag = HA
animtype = Hard ;light,medium,hard,back,up,diagup
air.animtype = Hard
damage = 3*ceil(24*fvar(6)*fvar(7)*fvar(8)),ceil(6*fvar(6))
pausetime = 7,8
guard.pausetime = 5,6;7,8
sparkno = -1;S6070+(random%3)
guard.sparkno = -1
hitsound = S200,0
guardsound = 6,0
ground.type = High ;Low,Trip,None
air.type = HIGH
ground.slidetime = 0
guard.slidetime = 0
ground.hittime = 20
guard.hittime = 12
air.hittime = 20
ground.velocity = 0,0
guard.velocity = 0
air.velocity = -0.2,-4.6-ifelse(var(41)>20,20,var(41)-1)*0.2;-4.2
airguard.velocity = -1,0.5
fall = 0
fall.recover = 1
fall.recovertime = 45
air.fall = 1
id = 50
numhits = 1
getpower = ifelse(var(30)=0,34,ceil(34/3)),ifelse(var(30)=0,ceil(34/2),ceil(34/3))
p2facing = 1
fall.yvelocity = -7-ifelse(var(41)>35,35,var(41)-1)*0.1
yaccel = 0.45+(var(41)-1)*0.03;0.45+(var(41)-1)*0.05

[State 4900, Hit2];ƒ‰ƒXƒgƒqƒbƒg•”•ª
type = HitDef
trigger1 = Animelem = 13
attr = A,SA
hitflag = MAF
guardflag = HA
animtype = back ;light,medium,hard,back,up,diagup
air.animtype = hard
;fall.animtype = Back
;priority = 4,Hit
damage = 38,8
pausetime = 7,8
guard.pausetime = 7,13
sparkno = -1;S6070+(random%3)
;sparkxy = -8, -60
guard.sparkno = -1
hitsound = S200,0
guardsound = 6,0
ground.type = High ;Low,Trip,None
air.type = High
ground.slidetime = 0
guard.slidetime = 0
ground.hittime = 12
guard.hittime = 12
air.hittime = 20
ground.velocity = -2,0
guard.velocity = -1
air.velocity = -0.2,-1.2-ifelse(var(41)>20,20,var(41)-1)*0.2
airguard.velocity = -1,0.5
fall = 1
fall.recover = 1
fall.recovertime = 60
air.fall = 1
fall.xvelocity = -2
fall.yvelocity = -7-ifelse(var(41)>35,35,var(41)-1)*0.1
id = 51
numhits = 1
getpower = ifelse(var(30)=0,34,ceil(34/3)),ifelse(var(30)=0,ceil(34/2),ceil(34/3))
p2facing = 1
yaccel = 0.45+(var(41)-1)*0.03

;-------------------------‰æ–ʂ̐U“®
[State 4900, EnvShake]
type = EnvShake
trigger1 = movehit = 1
time = 7
freq = 60
ampl = 3
phase = 90

;------------------------------------------------------[ƒqƒbƒgƒGƒtƒFƒ Nƒg]

[State a]
type = Helper
trigger1 = UniqHitCount = 1
helpertype = normal
name = "EFECT"
ID = 16095
pos = -8,-80
postype = p2
stateno = 16095
keyctrl = 0
ownpal = 0
supermovetime = 100
pausemovetime = 100
persistent=0
ignorehitpause=1

[State a]
type = Helper
trigger1 = UniqHitCount = 2
helpertype = normal
name = "EFECT"
ID = 16095
pos = -8,-80
postype = p2
stateno = 16095
keyctrl = 0
ownpal = 0
supermovetime = 100
pausemovetime = 100
persistent=0
ignorehitpause=1

[State a]
type = Helper
trigger1 = UniqHitCount = 3
helpertype = normal
name = "EFECT"
ID = 16095
pos = -8,-80
postype = p2
stateno = 16095
keyctrl = 0
ownpal = 0
supermovetime = 100
pausemovetime = 100
persistent=0
ignorehitpause=1

[State a]
type = Helper
trigger1 = UniqHitCount = 4
helpertype = normal
name = "EFECT"
ID = 16095
pos = -8,-80
postype = p2
stateno = 16095
keyctrl = 0
ownpal = 0
supermovetime = 100
pausemovetime = 100
persistent=0
ignorehitpause=1

[State a]
type = Helper
trigger1 = UniqHitCount = 5
helpertype = normal
name = "EFECT"
ID = 16095
pos = -8,-80
postype = p2
stateno = 16095
keyctrl = 0
ownpal = 0
supermovetime = 100
pausemovetime = 100
persistent=0
ignorehitpause=1

[State a]
type = Helper
trigger1 = UniqHitCount = 6
helpertype = normal
name = "EFECT"
ID = 16095
pos = -8,-80
postype = p2
stateno = 16095
keyctrl = 0
ownpal = 0
supermovetime = 100
pausemovetime = 100
persistent=0
ignorehitpause=1

[State a]
type = Helper
trigger1 = UniqHitCount = 7
helpertype = normal
name = "EFECT"
ID = 16095
pos = -8,-80
postype = p2
stateno = 16095
keyctrl = 0
ownpal = 0
supermovetime = 100
pausemovetime = 100
persistent=0
ignorehitpause=1


[State a]
type = Helper
trigger1 = UniqHitCount = 8
helpertype = normal
name = "EFECT"
ID = 16095
pos = -8,-80
postype = p2
stateno = 16095
keyctrl = 0
ownpal = 0
supermovetime = 100
pausemovetime = 100
persistent=0
ignorehitpause=1

[State a]
type = Helper
trigger1 = UniqHitCount = 9
helpertype = normal
name = "EFECT"
ID = 16095
pos = -8,-80
postype = p2
stateno = 16095
keyctrl = 0
ownpal = 0
supermovetime = 100
pausemovetime = 100
persistent=0
ignorehitpause=1

[State a]
type = Helper
trigger1 = UniqHitCount = 10
helpertype = normal
name = "EFECT"
ID = 16095
pos = -8,-80
postype = p2
stateno = 16095
keyctrl = 0
ownpal = 0
supermovetime = 100
pausemovetime = 100
persistent=0
ignorehitpause=1


[State 200, 2];‘åƒK[ƒhƒGƒtƒFƒNƒg
type = Explod
trigger1 = moveguarded = 1
anim = 6020
pos = -5, -65
Postype = p2
facing = -1
sprpriority = 9
random = 30,30
ownpal = 1
ontop = 1
pausemovetime = 99999
supermovetime = 99999
supermove = 1
bindtime = 1
scale = 0.5,0.5

;£££££££££££££££ £££
;------------------ƒGƒtƒFƒNƒg
[State 4900, 0];Žè“•”•ªƒI[ƒ‰
type = Explod
triggerall = (anim = 4900)
trigger1 = animelem = 13
anim = 6052
ID = 6052
pos = 48,-38 ;44,-48‚±‚ê‚Å‚à‚¢‚¢‚©‚ à
postype = p1 ;p2,front,back,left,right
facing = 1
vfacing = 1
bindtime = -1 ;-1‚Å–{‘̂ɌŒè
vel = 0,0
accel = 0,0
random = 0,0
removetime = -2
supermovetime = 0
pausemovetime = 0
scale = 0.3,0.3
sprpriority = 5
ontop = 0
shadow = 0,0,0
ownpal = 0 ;ƒpƒŒƒbƒg‰e‹¿‚n‚e‚e
removeongethit = 0
;ignorehitpause =
;persistent =

[State 4900, 0];•I•”•ªƒI[ƒ‰
type = Explod
triggerall = (anim = 4900)
trigger1 = animelem = 12
anim = 6051
ID = 6051
pos = -2,-120 ;0,-110©‚¾‚ÆŒ´ì‚ɋ߂¢
postype = p1 ;p2,front,back,left,right
facing = 1
vfacing = 1
bindtime = -1 ;-1‚Å–{‘̂ɌŒè
vel = 0,0
accel = 0,0
random = 0,0
removetime = -2
supermovetime = 0
pausemovetime = 0
scale = 0.5,0.5
sprpriority = 5
ontop = 0
shadow = 0,0,0
ownpal = 0 ;ƒpƒŒƒbƒg‰e‹¿‚n‚e‚e
removeongethit = 0
;ignorehitpause =
;persistent =
;£££££££££££££££ £££

;¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¡¡¡
;ƒGƒtƒFƒNƒgƒwƒ‹ƒp[(‚Ä‚ñ‚µ ‚傤‚P)ŒÄ‚Ño‚µ
[State 1000, 0];Žè“(‚uŽš)ƒI[ƒ‰
type = Helper
triggerall = (anim = 4900)
trigger1 = animelem = 13
helpertype = normal
name = "tenshou-helper1"
ID = 1101
stateno = 1101
pos = 46,-35
postype = p1 ;p2,front,back,left,right
facing = 1
keyctrl = 0
ownpal = 0
supermovetime = 0
pausemovetime = 0
size.xscale = 0.5;0.37
size.yscale = 0.5;0.37

;--------------------------ƒGƒtƒFƒNƒgƒwƒ‹ƒp[(‚Ä ‚ñ‚µ‚傤‚Q)ŒÄ‚Ño‚µ
[State 1000, 0];Žè“(‚uŽš)‚©‚ço‚éƒI[ƒ ‰(‰E)
type = Helper
triggerall = (anim = 4900)
trigger1 = animelem = 13
helpertype = normal
name = "tenshou-helper2"
ID = 1102
stateno = 1102
pos = 47,-35
postype = p1 ;p2,front,back,left,right
facing = 1
keyctrl = 0
ownpal = 0
supermovetime = 0
pausemovetime = 0
size.xscale = 0.35
size.yscale = 0.35

;--------------------------ƒGƒtƒFƒNƒgƒwƒ‹ƒp[(‚Ä ‚ñ‚µ‚傤‚R)ŒÄ‚Ño‚µ
[State 1000, 0];Žè“(‚uŽš)‚©‚ço‚éƒI[ƒ ‰(¶)
type = Helper
triggerall = (anim = 4900)
trigger1 = animelem = 13
helpertype = normal
name = "tenshou-helper3"
ID = 1103
stateno = 1103
pos = 45,-37
postype = p1 ;p2,front,back,left,right
facing = 1
keyctrl = 0
ownpal = 0
supermovetime = 0
pausemovetime = 0
size.xscale = 0.35
size.yscale = 0.35
0

#10 L   Nobun 

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

Inviato 09 February 2010 - 13:24

Faccio un po' fatica a seguire... sono (o sarebbe meglio dire ero) abituato ad avere un approccio molto "diretto ed empirico" col mugen... anche quando mi occupavo di fixing io prendevo i personaggi, li testavo, provavo il codice e vedevo cosa succedeva... con un approccio diretto riuscivo meglio ad isolare i problemi, ed anche ad avere una idea sui problemi pi frequenti e come risolverli.
Ora non avrei pi il tempo di farlo.
Questo per dirti... non mi ben chiaro, dal codice (anche perch non l'ho letto attentamente, ma solo ho dato una scorsa veloce) e da quello che mi hai detto, esattamente qual il problema e cosa hai fatto esattamente.
Non saprei bene cosa fare se nello stesso state vi sono due mosse (cosa che non appartiene al mio stile di programmazione, quindi mi risulta arduo dare consigli... io di solito preferisco fare il contrario... ogni mossa pi state, ognuno dei quali dirige una determinata situazione isolata - faccio poi un esempio in fondo al messaggio)
Cio avendo un approccio diametralmente opposto ho un po' di difficolt ad inquadrare la cosa... il trigger per la sequenza dei comandi il trigger "command", che per nel contesto di uno state di una mossa, non ha quello scopo che a te servirebbe... in poche parole... se in uno state di una mossa inserisci un trigger command ti aspetti che un utente esegua UN ALTRO comando mentre il personaggio si trova in quello dato state - comando valido SOLO fino a quando ci si trova in quello state... questa tecnica, ad esempio, l'ho usata in Ranmaru per la combo Oka-Dugen-Gensu (devi premere quarto di cerchio-indietro+calcio ad ogni fase - es. per passare da Oka a Dugen - per continuare la combo, altrimenti la combo si ferma in quel punto).

Se invece vuoi distinguere due mosse sullo stesso state a seconda che si attivi un comando o l'altro, probabilmente la soluzione usare una var dedicata.

nel command...

[state -1, Var(0) 1]
type = VarSet
trigger1 = command = (comando mossa 1)
v = 0 ; usa indice variabile libero
value = 1;

[state -1, Var(0) 2]
type = VarSet
trigger1 = command = (comando mossa 2)
v = 0; usa indice variabile libero = stesso di prima
value = 2;

[state -1, Passa a mossa 1 o 2]
type = ChangeState
value = 1100
ctrl = 0
trigger1 = command = (comando mossa 1)
trigger2 = command = (comando mossa 2)


Nello state... distingui i punti che gestiscono la mossa 1 e la mossa 2 con il trigger adeguat

triggerall = var(0) = 1
oppure
triggerall = var(0) = 2

(l'indice 0, ripeto, esemplificativo).

Credo che questa soluzione possa andare bene... ma come ti ho detto... il mio stile di programmazione usa un approccio totalmente diverso, quindi prendi con le pinze ci che ora ho detto
0

Condividi questa discussione:


Pagina 1 di 1
  • 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