Forum MUGENATION: attacchi non funzionanti - Forum MUGENATION

Salta al contenuto

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

attacchi non funzionanti

#1 L   warriorz 

  • Kohai
  • PuntoPunto
  • Gruppo: Membro
  • Messaggi: 220
  • Iscritto: 08-August 07

Inviato 22 September 2008 - 11:16

ho un problema con il file cmd..

premettendo che l'animazione in questione è ok nel file cns, air, sff..

come mai non la esegue se imposto nel cmd questo:

[Command]
name = "whip"
command = B, F, y
time = 15

---

[State -1, whip]
type = ChangeState
value = 3100
triggerall = (command = "whip") && (p2bodydist X >= 115)
trigger1 = statetype = S
triggerall = ctrl


invece se la inserisco così funziona bene:

[State -1]
type = ChangeState
value = 3100
triggerall = (command = "a") && (p2bodydist X <= 115)
trigger1 = statetype = S
triggerall = ctrl


[State -1, whip]
type = ChangeState
value = 3100
triggerall = (command = "a") && (p2bodydist X >= 115)
trigger1 = statetype = S
triggerall = ctrl

solo che così con il tasto A mi esegue 2 attacchi diversi a seconda della distanza, mentre preferirei che l'attacco base A sia eseguito sempre e poi l'attacco "whip" solo a una certa distanza con una combinazione di tasti...

cosa non va?
0

#2 L   Verza 

  • Guerriero Nero
  • Gruppo: Moderatore
  • Messaggi: 1547
  • Iscritto: 20-January 08

Inviato 22 September 2008 - 12:29

Provo a risponderti anche se non sono il più qualificato in questo campo.
Se non ho capito male, prova a mettere nella riga di comando del tasto y(che non so a cosa corrisponda nel tuo char)

triggerall = Command != "whip"

in modo che non ti faccia la mossa del tasto y quando stai eseguendo la mossa whip.

Fammi sapere se funziona o se ho sbagliato tutto. :P
0

#3 L   Squall LionHeart™ 

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

Inviato 22 September 2008 - 12:41

Innanzitutto, hai notato che la tecnica "originaria" è possibile solo a distanza dall'avversario, vero?

se non è questo il problema, e quindi non la provavi da vicino, c'è un'unica altra soluzione:

sei lento a fare la tecnica. prova a cambiare 15 con 30, e vedi cosa accade.

se nemmeno questo funziona, allora ci dev'essere in qualche altro files qualche blocco di qualche genere... vediamo prima se con le diritte date finora se funzica.

Saluti

Squall
0

#4 L   warriorz 

  • Kohai
  • PuntoPunto
  • Gruppo: Membro
  • Messaggi: 220
  • Iscritto: 08-August 07

Inviato 22 September 2008 - 14:32

ho provato tutto ma nulla ancora.. non capisco.. lo stesso identico codice in un altro char funziona..

dunque
- se inserisco l'attacco "y" solo da media-corta distanza e l'attacco "whip" solo a lunga distanza con lo stesso tasto funge..
- se invece provo a mettere l'attacco "y" senza limitazioni di distanza e l'attacco "whip" solo da lontano con 2 comandi diversi non mi fa vedere il "whip".. e il problema succede con tutti gli altri attacchi..
- se elimino il p2bodydist a "whip" non va comunque.. mentre se lo aggiungo a "y" funziona.. sembra che l'attacco base "y" e l'attacco "whip" non vadano d'accordo..

ecco i 2 trigger nei 2 comandi che seppur separati creano scompiglio:

triggerall = (command = "whip") && (p2bodydist X >= 115) <-- se lo elimino sparisce "y" da lontano e sparisce "whip" da vicino
triggerall = (command = "y") && (p2bodydist X <= 115)


triggerall = (command = "whip") && (p2bodydist X >= 115)
triggerall = (command = "y") && (p2bodydist X <= 115) <-- se lo elimino sparisce "whip" completamente
0

#5 L   warriorz 

  • Kohai
  • PuntoPunto
  • Gruppo: Membro
  • Messaggi: 220
  • Iscritto: 08-August 07

Inviato 22 September 2008 - 15:01

non edito il post vecchio x chiunque leggesse dopo e trovi lo stesso problema..

ho risolto.

nella seconda parte del file cmd quella degli state entry ( dopo statedef -1] ) ho semplicemente scritto prima il comando (o meglio lo state) della mossa "whip" e dopo quello della mossa "y".. evidentemente i single attack vanno inseriti per ultimo mentre combo, special e hyper vanno messi prima (sempre nella seconda parte del file cmd dico).. se non è così allora non so, però sta di fatto che ora funziona.. boh..
0

#6 L   Squall LionHeart™ 

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

Inviato 22 September 2008 - 15:41

si, vanno messi per ultimo i basics command, per un semplice motivo: il mugen legge in modo sequenziale. se ci sono due comandi che hanno lo stesso codice di attivazione, viene letto quello scritto per primo. infatti tutti i chars sono scritti in modo discendente (hypers, supers, basics).

Saluti

Squall
0

#7 L   Verza 

  • Guerriero Nero
  • Gruppo: Moderatore
  • Messaggi: 1547
  • Iscritto: 20-January 08

Inviato 22 September 2008 - 16:59

Visualizza MessaggiSquall LionHeart™, su Sep 22 2008, 16:41, detto:

si, vanno messi per ultimo i basics command, per un semplice motivo: il mugen legge in modo sequenziale. se ci sono due comandi che hanno lo stesso codice di attivazione, viene letto quello scritto per primo. infatti tutti i chars sono scritti in modo discendente (hypers, supers, basics).

Saluti

Squall


Io non li ho scritti in questo ordine,ma il char funziona e non da errori nel debug mode,dici che sia un caso o può funzionare lo stesso?
0

#8 L   Nobun 

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

Inviato 22 September 2008 - 18:23

Squall ha ragione, le istruzioni [State -1] vanno messe in ordine decrente di complessità del comando (quindi prima le hyper, che hanno le sequenze di comandi più complesse, poi le sequenze con meno complessità, per arrivare infine ai singoli pulsanti).

quindi se abbiamo

command = D, DF, F, a
e
command = F, a

(ipotizzando che il primo si chiami "comando 1" e il secondo "comando 2")...

[State -1, descrizione primo colpo]
type = ChangeState
value = ....
ctrl = 0
trigger1 = "comando 1"; "D, DF, F, a" va per primo perché è una sequenza più lunga di "F, a"
...

[State -1, descrizione secondo colpo]
type = ChangeState
value = ...
ctrl = 0
trigger1 = "comando 2"; "F, a" va per secondo perché è una sequenza più corta di "D, DF, F, a"


Nell'esempio che ti mostro, se inverti l'ordine dei comandi può capitare che premendo "D, DF, F, a" il Mugen non sarà mai capace di attivare il secondo colpo proprio perché troverà e valuterà come vera anche la condizione "F, a" (perché se è vero il comando "D, DF, F, a" è anche vero il comando "F, a" che è parte del comando più lungo). Il Mugen infatti, nello state -1, si arresta alla prima istruzione che risulta vera in tutte le condizioni, trascurando le successive.

Come buona abitudine ti consiglio di scrivere anche l'elenco dei comandi [Command] in ordine decrescente di difficoltà...

(PS anche io aggiungo le mosse man mano che le faccio... basta avere l'accortezza di scegliere, ogni volta, in che punto collocare lo state -1... di solito, mettere i comandi [Command] in ordine decrescente ti può aiutare a mettere tutto nell'ordine corretto... se inserisci come me i comandi partendo dai colpi normali, per poi passare alle prese normali, per poi passare alle special ed alle hyper, spesso e volentieri ti basterà inserire il nuovo comando nella posizione più alta dello [statedef -1] facendo scorrere gli altri più in basso.
0

#9 L   Squall LionHeart™ 

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

Inviato 22 September 2008 - 18:36

Visualizza MessaggiVerza, su Sep 22 2008, 17:59, detto:

Io non li ho scritti in questo ordine,ma il char funziona e non da errori nel debug mode,dici che sia un caso o può funzionare lo stesso?


come risposto anche da Nobun, è una questione di "casi".

se nel tuo caso, non c'è nessun comando "semplificato" di uno complesso (guarda l'esempio di nobun per capire cosa intendo), allora non capiterà mai che il mugen faccia una tecnica rispetto ad un'altra.

Io, nonostante quanto ho detto io stesso, sono solito mettere un trigger speciale per le hypers.
una cosa tipo:

"triggerall = command != "comandosuper""

in modo tale che a scanso di equivoci, se faccio D, DF, F, a, per la mia hyper, il mugen non lo leggerà mai "F, a", per esempio, anche se questo è il comando di una super.

Saluti

Squall
0

#10 L   Verza 

  • Guerriero Nero
  • Gruppo: Moderatore
  • Messaggi: 1547
  • Iscritto: 20-January 08

Inviato 22 September 2008 - 18:39

Si anche io metto i triggerall per evitare che vengano fatte mosse per sbaglio al posto di quella voluta.
0

#11 L   Nobun 

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

Inviato 22 September 2008 - 18:43

Alla fine è una questione anche di metodo di lavoro. Non esiste un sistema migliore di un altro.
Io preferisco sfruttare i principi dell'ordine di lettura (anche perché cerco sempre di scrivere meno codice possibile) e lo faccio NON solo nello state -1 ma a volte anche in altri casi.

In ogni caso sono personalmente convinto che, essere rigorosi e mantenere il proprio codice ordinato, contribuisca a diminuire le probabilità di errore e rende più facile operare eventuali modifiche.
0

#12 L   warriorz 

  • Kohai
  • PuntoPunto
  • Gruppo: Membro
  • Messaggi: 220
  • Iscritto: 08-August 07

Inviato 23 September 2008 - 11:54

sono perfettamente d'accordo con nobun per quanto riguarda il codice.. nello scrivere meno roba possibile (evitando un sacco di stringhe che nella pratica non cambiano o implementano nulla) e tenerlo bello ordinato così che anche un domani che si dimentica il pastrocchio fatto su quel char riaprendo il file si ha subito un'idea chiara di come è fatto e dove andare a effettuare le modifiche..


cmq tutto risolto.. grazie a tutti vois :D
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