NON FATE DOMANDE ETEROGENEE TRA LORO IN UNA SOLA DISCUSSIONE.
Prendere spunto da una discussione per fare una domanda e originare una concatenazione di domande diverse tra loro è controproducente per tutti:
1) Perché la discussione diventa poco fluida, molto confusa, e chi legge si disorienta
2) Perché, in virtù di questa poca fluidità, si rischia di creare una confusione generale che rischia di danneggiare anche le stesse persone che hanno bisogno di aiuto
3) Perché poi, le domande che fate, risultano avere poca visibiltà e si rischiano di confondere nella massa di interventi rendendo impossibile individuare ogni richiesta
PERTANTO
se avete domande da fare diverse da quella che è nata per prima, fatelo solo se essa ha già ricevuto una risposta esauriente (completata) e non vi sono altre domande lasciate in sospeso (extrema ratio). Altrimenti evitatelo. E' molto meglio piuttosto aprire una nuova discussione con la vostra domanda: la vostra richiesta sarà più "visibile" ed inoltre non "confonderete le acque" all'interno della discussione da cui avete preso spunto.
ORA RIPRENDO IL FILO DA QUELLA CHE MI PARE ESSERE LA PRIMA DOMANDA IRRISOLTA
williamwilson, su Dec 20 2006, 14:41, detto:
x nobun...
grazie del tuo intervento,
lo state def -2 nei chars di mk project non l'ho trovato,
cmq ti invito a leggere se non lo avessi fatto, gli ultimi sviluppi.
con il blokko di programma(che ho postato) che ho aggiunto a questi chars,
molti problemi si sono risolti, gli avversari non si bloccano, barcollano nel momento delle fatality,
e subiscono anche le fatality.
Il problema è che prendendo scorpion per esempio, esegue la fatality, compare lo scheletro infiammato,
ma il chars avversario invece di scomparire resta a terra, come mostra un immagine precedentemente postata.
se potessi darci il tuo parere su questo...
te ne sarei grato
bye bye
grazie del tuo intervento,
lo state def -2 nei chars di mk project non l'ho trovato,
cmq ti invito a leggere se non lo avessi fatto, gli ultimi sviluppi.
con il blokko di programma(che ho postato) che ho aggiunto a questi chars,
molti problemi si sono risolti, gli avversari non si bloccano, barcollano nel momento delle fatality,
e subiscono anche le fatality.
Il problema è che prendendo scorpion per esempio, esegue la fatality, compare lo scheletro infiammato,
ma il chars avversario invece di scomparire resta a terra, come mostra un immagine precedentemente postata.
se potessi darci il tuo parere su questo...
te ne sarei grato
bye bye
Avevo capito benissimo il problema e mi ero concentrato su come rimuovere lo sprite avversario che lo raffigura disteso.
Comunque lascia perdere quanto ti avevo detto prima e proviamo con queste altre istruzioni che qui a seguito riporto (elimina mentalmente quanto ti ho detto nel messaggio precedente, come non lo avessi mai scritto).
---------------
Alla base di tutto c'è una difficolta tecnica.
Fondamentalmente, quando si esegue la Fatality:
1) Dapprima si evita la morte del nemico
2) in seguito alla mossa lo si lascia morire
---------
Quando un char "muore", l'evento normalmente viene gestito dal common1.cns che fa eseguire una sucessione di eventi predefinita (l'avversario si sdraia). Cambiare il common1.cns può essere una soluzione, ma è estremamente complessa (e poi bisognerebbe conoscere la programmazione, in questo caso, del common di ogni singolo char AVVERSARIO di scorpion). Pertanto, istintivamente, sconsiglierei questa strada.
---------------
Quando scorpion esegue la sua fatality egli dovrebbe riuscire a fare queste operazioni (almeno io sceglierei questa strada):
1) Rendere invisibili i frame della morte avversaria (la caduta di default dove il char alla fine rimane sdraiato)
2) "Rimpiazzarli" con degli explod che si posizionano al posto dell'avversario
---------------
Fare la seconda operazione è facile (basta un explod posizionato con gli assi dell'avversario) e da quello che ho visto e sentito questo c'è già.
Fare la prima operazione invece è un po' più complicato.
Per rendere invisibile il char avversario bisogna agire su quest'ultimo. Personalmente propenderei per la scelta di inserire un AsserSpecial (flag=invisible) ma anche metterci un ChangeAnim può essere una buona soluzione (e forse potrebbe essere più semplice).
Proviamo con il ChangeAnim e vediamo se (modificando principalmente scorpion modificando il common1.cns degli avversari in maniera minima) riusciamo a risolvere il problema.
--------------------
Ecco cosa suggerisco di fare (in parte riprendo quanto già detto, ma spiegandolo - spero - meglio).
-----------------------
PROBLEMA 1: Far Fare all'avversario ciò che pare a noi mentre eseguiamo la fatality.
-------------------
Per fare questo dobbiamo creare un "custom state" all'interno del personaggio di Scorpion, che però venga letto da chi subisce la presa. Per ottenere questo scopo dobbiamo programmare l'inizio del colpo come fosse una presa. Pertanto dobbiamo avere almeno 3 states
1) Un primo state che programmi il "tentativo di presa". Ovvero uno state con un HitDef che, qualora colpisca l'avversario, obblighi l'avversario a leggere il custom state da te programmato e che si trova nel CNS di scorpion (ti consiglio di dare una occhiata anche il mio tutorial sulle prese se qualcosa di questi concetti ti è poco chiaro. Lo trovi nella sezione tutorial di questo forum. Lì troverai anche un esempio pronto di un tipico state di "tentare la presa").
2) Un secondo state dove invece programmare ciò che scorpion farà se il tentativo di presa va a buon segno e l'HitDef colpisce l'avversario. In poche parole qui ci andrà tutta la programmazione vera e propria della fatality di scorpion
3) Un terzo state destinato ad essere letto da chi subisce la fatality e che io - provvisoriamente - programmerei così (non testato lo sto scrivendo "a braccio")
[StateDef X] type = S movetype = H physics = N [State X, 1] type = SelfState value = 6000 ctrl = 0 trigger1 = time = ?
----------
Come vedi l'avversario andrà allo state 6000 dopo ? tick di tempo che devi inserire e misurare tu.
Ho proposto lo state 6000, ma devi usare uno state che non sia usato da nessuno dei personaggi che sono destinati a subire la presa, perché lo devi programmare tu e lo devi inserire nel common1.cns (così ce lo hanno tutti una volta per tutte).
Nel mio esempio cmq lo state è il 6000
[StateDef 6000] type = L movetype = H physics = N [State 6000, 1] type = LifeAdd value = -4000 trigger1 = time = 0 [State 6000, 2] type = AssertSpecial flag = invisible trigger1 = 1
Nota: questo codice più o meno funziona, ma blocca per qualche secondo i chars dopo l'annuncio "KO" prima che la win pose venga eseguita. Ho provato ad eliminare il problema, ma ammetto una carenza personale. Bisognerebbe capire alla perfezione come viene gestita la sconfitta dal common1.cns (copiare lo state 5150 comunque produce lo stesso tipo di errore), ma ancora oggi non conosco tutto. Forse Slay sa qualcosa in più. In alternativa seguite il secondo metodo spiegato nella prossima risposta

Aiuto










