Inserire l'animazione di un nuovo mostro/animale

Da Tomo della conoscenza - UOShards Wiki.

Jump to: navigation, search
[:50pxbroomiconsvgod1.png] Questa pagina necessita di una revisione per diventare più chiara e di conseguenza più utile!

Se vuoi occupartene da un occhiata alle Regole di partecipazione

andiamo con ordine : solitamente uno per aggiungere un nuovo mostro carica i file anim.mul e anim.idx col mulpatcher versione 10.1 e quindi li carica da una cartella dove li ha messi prima oppure li carica direttamente da un file con estensione .vd su una locazione vuota segnalata dal mulpatcher sul Anim e basta ( perchè anim2.anim3 ecc ecc non sono utilizzabili per caricare nuove animazioni o per lo meno il mulpatcher 10.1 NON lo consente ).

secondo passo : mi faccio un bello scriptino per il mostro nuovo e come body metto il valore che in decimali corrisponde o almeno dovrebbe ma in realtà potete mettere anche un numero completamente fittizio basta che non sia maggiore di 2048.

terzo passo : avvio il server e poi il client e faccio [add mostromio. il mostro non è visibile.

quarto passo : mi lego una macina da frantoio alle bolas e la lancio dal 3 piano.

cosa bisogna fare allora per visualizzare il nuovo mostro ?

innanzitutto partiamo dal presupposto che i programmatori CANI della EAGames sono un gruppo di gente a cui piace complicarsi la vita e non sono persone normali difatti che hanno pensato : quando è uscita la versione di UO Lord Blackthorne revenge ( LBR ) invece di addare al vecchio file anim.mul e anim.idx le nuove grafiche dei mostri, loro hanno creato un nuovo anim2.mul e anim2.idx, ma UDITE UDITE, hanno lasciato che l'indice delle animazioni ( cioò l' .idx ) principale, LETTO DAL CLIENT, fosse solo l'anim.idx !!! quindi per dire all'anim.idx 'vai a caricare l'animazione 11 dell'anim2.mul invece che quella dell'anim.mul hanno creato il file txt BODYCONV.def. detto così pare una mossa astuta, invece è una @#*§!!! innanzitutto anche così facendo non è possibile aumentare il numero delle animazioni su ultima oltre 2048 e quindi tanto valeva aggiungere tutto sull'anim.mul principale. secondo il programma UOinside che è molto utile per tante cose diventa all'improvviso nocivo e controproducente, in quanto non legge il file bodyconv, bensì gli anim.idx di tutti gli anim e quindi se andate a controllare troverete che esistono ben 3 se non addirittura 4 mostri con l'ID esadecimale 0xE e con l'ID decimale identico, perchè 0xE può avere un solo corrispettivo in decimali. e già così l'unica cosa che potete fare coll'UOinside è cancellarlo dall'HDD tanto non vi servirà a nulla con gli anim.

QUINDI NON USATE MAI UOINSIDE QUANDO LAVORATE CON LE ANIMAZIONI DEI MOBILES.

in terzo luogo il file bodyconv è di una scomodità assoluta perchè i numeri non sono manco in ordine crescente o decrescente.

cmq vediamo di capire qualcosa :

- il bodyconv contiene una serie di numeri incolonnati

il primo numero è quello dell'ID nell'indice principale, cioè quello letto dal client e cioè l'anim.idx. i numeri a seguire sono gli ID dei mostri nei file anim.idx numerati ( 2,3,4,5 ) a ogni numero corrisponde un espansione ( 2 LBR, 3 AOS, 4 SE, 5 ML ) se il numero a seguire è -1 vuol dire che NON ESISTE un riferimento negli altri indici o NON SI VUOLE che SI LEGGA. quindi il valore -1 non significa "scalare di 1, o passo indietro di 1" ma significa VALORE NULLO. le # prima di una riga significano riga di commento che il client non legge.

Poniamo come esempio che aggiungiamo la nosta nuova animazione di mostro nella posizione vuota 0xB ( dec 11 ). così facendo ci aspetteremmo che mettendo il valore body = 11 sullo script del mostro esso appaia come l'abbiamo messo noi. ED EFFETTIVAMENTE E' COSì. ne volete la prova ? cancellate dalla cartella di ML o quello che avete voi i due file BODY.def e BODYCONV.def, come per magia apparirà il mostro tanto agognato. Ma che è successo ? semplicissimo, il client non riesce a leggere gli anim2, anim3, anim4 e anim5. mul SE non è presente il file BODYCONV. il che è un bel casino, perchè il client leggerà solo le anim anche di vestiti e oggetti e animali presenti nell'anim.mul che poi alla fine risultano QUELLE BASI DEL PRIMO ULTIMA ( o forse contengono fino a quelle del RENAISSANCE ). a questo proposito comunque se volete un anim singolo dove inserire solo quello che volete voi, potete lavorare sull'anim.mul e inserire le grafiche degli altri anim usando sempre il MULPATCHER 10.1 estraendo ( con SAVE in DIRECTORY ) mostri e oggetti e animali come file BMP e poi ricaricandoli sull'anim.mul. cmq è abbastanza un lavoraccio che a questo punto conviene tenersi il BODYCONV e modificarlo. purtroppo quindi il file BODYCONV è indispensabile per utilizzare tutti e 5 gli anim.

ALLORA come fare ? apriamo il file BODY, in alto leggeremo una nota di commento che almeno a casa mia era completamente sbagliata. sul body compaiono 3 valori il primo è l'ID dell'animazione che dovrà ESSERE LETTO come indice PRINCIPALE. es. 274 il secondo è l'ID in decimale dello slot VUOTO che avete usato sul MULPATCHER ( esadecimale 0xB ... in decimale 11 ) es. {11} il terzo è un valore che indica l'HUE, cioè il colore. A CHE CAVOLO SERVE L'HUE ? è presto detto, se per caso doveste fare un'arma nuova con gump diverso e animazione standard oppure volete fare il 'classico' hellhound, allora andate a vedere l'ID del lupo, poi inserite un numero come ID nuovo, e tra le parentesi mettete l'ID del lupo, gli cambiate quindi il valore dell'HUE con quello legato al rosso e avete l'hellhound, prendete il ID che compare nella prima colonna e lo inserite nel valore BODY dello script dell'hellhound.

cmq sempre per esempio aggiungete la linea 274 {11} 0 ( 0 in hue vuol dire che mantiene la colorazione originale ) in BODY.def e poi salvate e rimettetelo nella cartella di ML.

adesso aprite il BODYCONV e aggiungete una linea scritta così 274 -1 -1 -1 -1

il numero 274 è totalmente indicativo, perchè potevate mettere pure un qualsiasi altro numero che NON compaia nella prima colonna di BODYCONV. adesso però cercatevi il numero 11 nella prima colonna. infatti il valore di 11 è già stato assegnato dal bodyconv anche se in realtà il file anim.mul ha la posizione vuota su 11. trovando il numero 11 quindi dovete cambiare tutti i valori che lo seguono in -1.

vi dico subito che in questo modo il dread spider invece di vedersi come il dread apparirà come un ragno gigante. il problema può essere risolto andando ad aprire lo script del deathspider e cambiando il body da 11 a 19.

in realtà se riusciste a trovare un valore libero in BODYCONV non ci sarà bisogno neanche di questa modifica, ma purtroppo il bodyconv è ostile e quindi conviene prima fare le prove togliendolo dalla folder di ML.

adesso bisogna aggiornare il CORPSE.DEF che funziona quasi come il body.def solo che si riferisce ai corpi morti. quindi scrivete prima l'anim ID del copro da VIVO ( 274 ) e tra parentesi l'animID del CADAVERE al quale volete abbinarlo ( quindi dovete abbianare il corpo vivo a un cadavere ). il terzo numero è come sempre il colore HUE. Siccome ancora non ho capito come inserire un NUOVO corpse all'interno delle grafiche del gioco, tenete presenti i cadaveri dei mostri già esistenti.Ad esempio il cadavere degli elementali (tranne quello di terra ) è lo stesso degli slime e cioè quella specie di pozzangherina ed è indicato col numero 51.

P.S.: a mio ragionare credo che il gioco ultima sia programmato per prendere come corpse l'ultimo frame delle animazioni della morte del mostro stesso per assegnargli il valore di ID 8198(0x2006) ( se aprite Uoinside o anche il mulpatcher a questa posizione trovate una BMP con la scritta "corpse" e in gioco tutti i cadaveri corrispondono a questo ID ), questo significa che il BMP del CORPSE non dovrebbe essere inseribile in modo disgiunto dall'inserimento dell'anim del mostro stesso ma è contenuto in esso a meno che col CORPSE.DEF non lo andiamo a cambiare. cmq appena avrò capito come funziona cercherò di essere + chiaro

Articolo originale a cura di JRRT raggiungibile qui
Personal tools