Ciao!! Forse ho già scritto da qualche parte ma non importa!!
Ho un char ryuzito!! che sarebbe un pocket ryu che quando lancia l'hadoken appena colpisc l'avversario và in crash il mugen!! Non sò da cosa possa dipendere ve lo posso postare!?
Pagina 1 di 1
bug di ryuzito nel dettaglio winmugen!!
#2
Inviato 12 May 2007 - 11:20
Non nel forum.
Mandamelo via mail a nobun@mugenation.com che ci do un occhio.
(oggetto mail: [Emiliux Mugen] Ryuzito).
Importante l'oggetto mail perché visto che ricevo molta spam, con l'oggetto da me suggerito sono sicuro che la mail non è spam e quindi non rischi che per sbaglio la cancelli.
Mandamelo via mail a nobun@mugenation.com che ci do un occhio.
(oggetto mail: [Emiliux Mugen] Ryuzito).
Importante l'oggetto mail perché visto che ricevo molta spam, con l'oggetto da me suggerito sono sicuro che la mail non è spam e quindi non rischi che per sbaglio la cancelli.
#4
Inviato 12 May 2007 - 15:21
Allora... pur essendo l'errore in sè una banalità non era affatto banale trovarlo...
Sono dovuto andare a tentativi (non ne ho fatti molti ho avuto un po' di :chiappe: )
Allora... devo dire che se non avessi avuto il char, con il solo codice probabilmente non sarei riuscito a trovare il problema... così invece ho avuto la possibilità di testarlo e andare a tentoni... premetto che ti ho fatto spedire il personaggio perché ho visto che avevi provato (correttamente) a chiedere in forum prima ma senza successo... effettivamente, lo ripeto. avere il char sotto mano era indispensabile...
Il problema stava nell'helper posizionato allo [statedef 1001]. Questo Helper viene creato contemporaneamente al proiettile.
questo è il punto in cui devi fare la modifica (codice originale)
ed il problema si risolve semplicemente invertendo l'ordine delle due istruzioni
Ora per rendere solo esteticamente più ordinato il codice ho cambiato la label da "10" a "8bis" (così la numerazione delle istruzioni rimane in ordine: 1,2,3,4,5,6,7,8,8 bis, 9)
--------------------
Questo problema è interessante da analizzare.
A quanto pare, non solo è CONSIGLIABILE mettere l'istruzione DestroySelf di un Helper come ultima istruzione dello state, ma è pure FONDAMENTALE (se non lo si fa, quando l'helper si deve distruggere il Mugen crasha).
Probabilmente il Mugen continua a leggere l'istruzione, ma impazzisce perché all'atto di verificare l'istruzione che si trova dopo il DestroySelf il Mugen si impalla perché non riece a trovare più l'oggetto di riferimento che nel frattempo è stato distrutto... insomma una istruzione che fa riferimento ad un oggetto inesistente e per questo il Mugen va in errore fatale e si chiude... questa è la mia interpretazione del problema, non so se corretta (puro intuito).
Non ho visto se ci sono altri states con problemi simili però questo è risolto ;)
Sono dovuto andare a tentativi (non ne ho fatti molti ho avuto un po' di :chiappe: )
Allora... devo dire che se non avessi avuto il char, con il solo codice probabilmente non sarei riuscito a trovare il problema... così invece ho avuto la possibilità di testarlo e andare a tentoni... premetto che ti ho fatto spedire il personaggio perché ho visto che avevi provato (correttamente) a chiedere in forum prima ma senza successo... effettivamente, lo ripeto. avere il char sotto mano era indispensabile...
Il problema stava nell'helper posizionato allo [statedef 1001]. Questo Helper viene creato contemporaneamente al proiettile.
questo è il punto in cui devi fare la modifica (codice originale)
[state 1001, 9] type = destroyself trigger1 = parent,numprojID(1003) = 0 && parent,numprojID(1020) = 0 trigger2 = screenpos X > 380 || screenpos X < -60 trigger3 = parent,var(59)=3 && animtime = 0 [state 1001, 10] type = explod trigger1 = parent,var(59) != 3 trigger1 = parent,numprojID(1003) = 0 && parent,numprojID(1020) = 0 pos = 0,0 postype = p1 anim = 1002 ignorehitpause = 1 scale = .5,.5 sprpriority = 2
ed il problema si risolve semplicemente invertendo l'ordine delle due istruzioni
[state 1001, 10] type = explod trigger1 = parent,var(59) != 3 trigger1 = parent,numprojID(1003) = 0 && parent,numprojID(1020) = 0 pos = 0,0 postype = p1 anim = 1002 ignorehitpause = 1 scale = .5,.5 sprpriority = 2 [state 1001, 9] type = destroyself trigger1 = parent,numprojID(1003) = 0 && parent,numprojID(1020) = 0 trigger2 = screenpos X > 380 || screenpos X < -60 trigger3 = parent,var(59)=3 && animtime = 0
Ora per rendere solo esteticamente più ordinato il codice ho cambiato la label da "10" a "8bis" (così la numerazione delle istruzioni rimane in ordine: 1,2,3,4,5,6,7,8,8 bis, 9)
[state 1001, 8 bis] type = explod ...
--------------------
Questo problema è interessante da analizzare.
A quanto pare, non solo è CONSIGLIABILE mettere l'istruzione DestroySelf di un Helper come ultima istruzione dello state, ma è pure FONDAMENTALE (se non lo si fa, quando l'helper si deve distruggere il Mugen crasha).
Probabilmente il Mugen continua a leggere l'istruzione, ma impazzisce perché all'atto di verificare l'istruzione che si trova dopo il DestroySelf il Mugen si impalla perché non riece a trovare più l'oggetto di riferimento che nel frattempo è stato distrutto... insomma una istruzione che fa riferimento ad un oggetto inesistente e per questo il Mugen va in errore fatale e si chiude... questa è la mia interpretazione del problema, non so se corretta (puro intuito).
Non ho visto se ci sono altri states con problemi simili però questo è risolto ;)
#5
Inviato 12 May 2007 - 20:15
Grosso Nobun!! Allora basta che copi il testo nel cns del char!? Copio quello con il 10 o con l'8 bis!?
Problema risolto!! :wow:
un ultima domanda!! Cos'è il Destroyself!? :unsure:
Problema risolto!! :wow:
un ultima domanda!! Cos'è il Destroyself!? :unsure:
#6
Inviato 14 May 2007 - 14:32
Il DestroySelf è il comando che viene programmato all'interno di un helper per distruggerlo.
Ad esempio... io creo il mio helper che è uno striker. Creando un helper io creo un oggetto nuovo ed aggiunto (es. uno striker) che è indipendente rispetto al personaggio genitore e quindi mi "ciuccia" memoria.
Quindi quando l'helper ha finito il suo compito (ad es. lo striker esce di scena) l'helper stesso va distrutto in modo da non sprecare inutilmente memoria (non è questo l'unico motivo, ma sto cercando di semplificare).
Ed un helper si distrugge con il comando DestroySelf (= distruggi te stesso)
PS. Nel codice di ryuzuto ci sono un altro po' di errori simili dove il destroyself non è messo come ultima istruzione (quindi devi spostare il destroyself all'ultima posizione nello state con funzione taglia-incolla). Quindi devi trovare pure quelli. Se hai difficoltà entro fine settimana ti mando via PM il cns totalmente riparato.
Ad esempio... io creo il mio helper che è uno striker. Creando un helper io creo un oggetto nuovo ed aggiunto (es. uno striker) che è indipendente rispetto al personaggio genitore e quindi mi "ciuccia" memoria.
Quindi quando l'helper ha finito il suo compito (ad es. lo striker esce di scena) l'helper stesso va distrutto in modo da non sprecare inutilmente memoria (non è questo l'unico motivo, ma sto cercando di semplificare).
Ed un helper si distrugge con il comando DestroySelf (= distruggi te stesso)
PS. Nel codice di ryuzuto ci sono un altro po' di errori simili dove il destroyself non è messo come ultima istruzione (quindi devi spostare il destroyself all'ultima posizione nello state con funzione taglia-incolla). Quindi devi trovare pure quelli. Se hai difficoltà entro fine settimana ti mando via PM il cns totalmente riparato.
#7
Inviato 15 May 2007 - 16:46
mah!! io apparte l'haduken che crashava non mi dava nessun'altro problema!! :wacko:
cmq, se si ricrasha te lo farò sapere!! :ehhh:
cmq, se si ricrasha te lo farò sapere!! :ehhh:
Condividi questa discussione:
Pagina 1 di 1

Aiuto










