Sei sulla pagina 1di 18

GUIDA: modding delle mappe, by BlackYuko

Premessa La guida stata fatta interamente da me quindi, se la postate altrove, mettete i crediti per favore. Aggiungere/modificare gli oggetti In questa guida cercher di insegnarvi come modificare le mappe aggiungendo oggetti e modificando laltezza del terreno. Vi dico subito che non una cosa banalissima, cercher di essere il pi chiaro possibile. Occorrente: Granny Viewer Notepad++ (non indispensabile ma velocizza e cose <.<) un decriptatore/criptatore per file epk (e saperlo usare) PhotoShop CS4 o Gimp Plug-in per aprire i file dds, per PhotoShop o Gimp WinSCP

Allora, la prima cosa da fare capire in quale file epk si trova la mappa che vogliamo modificare e decriptarla. Considerate che i decriptatori che si trovano adesso su internet non riescono ancora a decriptare tutte le mappe che ci sono, quindi non potrete modificare tutte quelle che vorrete. Un metodo abbastanza veloce per capire in che file si trova la mappa sapere il nome della cartella che ha nella cartella maps del server: se la sappiamo basta aprire il file Index che troviamo nella cartella pack del client con Notepad++. Dove c lelenco delle mappe, troverete nella prima riga il nome della cartella che ha sul server, e nella seconda il nome del file epk in cui si trova. Ad esempio, il villo 1 di Jinno nella cartella metin2_map_c1, e aprendo Index troveremo:
metin2_map_c1/ outdoorc1

questo vuol dire che il villo 1 di Jinno contenuto nel file outdoorc1.epk . Oppure il villo 2 di Shinsoo nella cartella metin2_map_a3, e su Index troveremo:
metin2_map_a3/ outdoora3

quindi si trover nel file outdoora3.epk. Se non trovate il nome della mappa nel file Index probabile che la mappa si trovi in season1, quindi decriptate season1.epk e controllate (ad esempio le mappe di atlantide si trovano l). Come gi detto, una volta trovato il file non detto che riusciate a decriptarlo se non ce la fate purtroppo non c niente da fare, se non aspettare una nuova versione del decriptatore sperando che sia in grado di decriptare il file che vi serve. Fatto ci, decriptate ancora questi due file:

Zone.epk Property.epk

adesso abbiamo tutto, possiamo iniziare. Aprendo il file decriptato della mappa vi troverete davanti a numerose cartelle, che hanno come nome un numero. In ogni cartella sono contenute le informazioni di un pezzettino della mappa. Ovviamente pi la mappa grande pi cartelle avrete. Le dimensioni della mappa le troverete nel file setting.txt che c nella cartella principale, alla voce MapSize (il primo numero la larghezza, il secondo laltezza). Avrete tante cartelle quanto la grandezza della mappa: ad esempio, se grande 4x5 (come il villo 1 di Jinno), vi troverete 4*5=20 cartelle. La cartella con il nome 000000 contiene il quadratino in alto a sinistra della mappa e andando avanti con i numeri scenderete verso il basso. Praticamente, se la mappa ad esempio alta 5, le cartelle da 000000 a 000004 rappresenteranno la prima striscia verticale a partire da sinistra, quelle da 001000 a 001004 la seconda, da 002000 a 002004 la terza e cos via. Sapere questo vi servir a sapere pi o meno in che cartella si trova in pezzo di mappa che vorrete modificare, altrimenti impazzirete a cercarlo. Per sapere a che pezzo si riferisce una certa cartella aprite il file minimap.dds che troverete dentro con PhotoShop o Gimp: nel file contenuta limmagine della minimappa che vedrete visualizzata nel radar, quindi capirete velocemente in che parte della mappa siete. Gli oggetti che ci sono in un certo pezzo di mappa sono contenuti nel file areadata.txt, che si trova nella cartella relativa a quella parte di mappa. Ogni oggetto dichiarato in questo modo: Start Object000 9110.353516 -112302.492188 21316.455078 486960621 0.000000#0.000000#0.000000 -50.000000 End Object in ordine trovate: Start Object000 nome delloggetto 9110.353516 -112302.492188 21316.455078 coordinate x, y e z delloggetto 486960621 numero identificativo delloggetto 0.000000#0.000000#0.000000 rotazione angolare in gradi delloggetto (vi faccio vedere screen dopo) -50.000000 un offset sullaltezza delloggetto (vi faccio vedere screen dopo) End Object per aggiungere un nuovo oggetto basta aggiungerne uno nuovo al fondo del file, seguendo la sintassi precedente. Vi consiglio di fare copia/incolla da un oggetto che c gi, e poi modificare il nome e i vari parametri. Le coordinate sono un po strane a vedersi: infatti, non sono numeri interi come accade normalmente quando giochiamo, ma sono numeri con la virgola. Ovviamente, essendo collocati nello spazio e non nel piano, gli oggetti avranno tre coordinate invece di due: la terza la coordinata z, cio laltezza delloggetto. Pi metterete un valore di z grande, pi loggetto si trover in alto (ad esempio se volete metterlo in cima a una montagna) e viceversa. La coordinata y (il secondo numero) negativa: questo penso dipenda dal sistema di assi utilizzato nelle mappe, ma voi fregatevene e mettetela sempre negativa, cos siete tranquilli. Ultima cosa: le coordinate sono tutte moltiplicate per 100, quindi per capire quali sono le coordinate reali di un certo oggetto dovete dividerle per 100. Ad esempio loggetto precedente:

9110.353516 -112302.492188 21316.455078 si trover alle coordinate (troncando i numeri dopo la virgola per semplicit): x = 91 y = -1123 z = 213

quindi nella mappa bidimensionale di Metin lo troveremo alle coordinate: 91, 1123 . Ora viene il problema: come faccio a sapere il numero identificativo delloggetto? Avete due strade: se loggetto compare gi in unaltra mappa, potete recuperare lidentificativo da l. Ad esempio: voglio trovare lidentificativo del portale che porta ad Atlantide: o so che questo oggetto si trova al villo 1 di Jinno, quindi sar nel file outdoorc1.epk e lo decripto. o loggetto si trova nellultima fascia in basso quindi, essendo la mappa alta 5, di sicuro si trova in una cartella che finisce per 4. o si trova verso il centro quindi, essendo la mappa larga 4, sar o nella cartella 001004 o nella cartella 002004. Avete capito adesso cosa serve sapere come funzionano i numeri delle cartelle? Ho previsto in una decina di secondi in quale cartelle si trover loggetto che mi serve. o guardando i file minimap.dds vedo che il pezzo di mappa che mi interessa nella cartella 001004. o dal gioco vedo che il portale per atlantide si trova alle coordinate 396, 1148. Di conseguenza, loggetto sar pi o meno alle coordinate 39600 -114800 (ricordate sempre di moltiplicare per 100 e mettere la y con segno negativo). Nel file areadata.txt trovo due oggetti che si trovano circa a quelle coordinate: Start Object004 39737.300781 -115403.437500 19975.212891 1175413186 0.000000#0.000000#195.000000 0.000000 End Object Start Object002 39595.953125 -114793.578125 19964.011719 929619867 0.000000#0.000000#195.000000 0.000000 End Object uno dei due il portale rosso, laltro ledificio in pietra con la porta. Eliminandone uno, recriptando il file e sostituendolo in pack posso riuscire a distinguerli. Facendo cos ricavo che il primo ledificio in pietra (che quindi avr numero identificativo 1175413186) e il secondo il portale rosso (che quindi avr numero identificativo 929619867). In realt lo si capiva gi senza recriptare niente, era ovvio che il secondo fosse il portale rosso perch era esattamente alle coordinate del portale di Atlantide, ma facendo cos siete sicuri al 100%.

se volete scegliere voi loggetto da mettere, dovete utilizzare gli altri due file epk decriptati. Andate nella cartella del file Zone.epk decriptato, Zone\ymir work\zone: nelle vare cartelle troveremo i modelli 3d di tutti gli oggetti del gioco (tranne gli alberi che sono in Tree.epk), in formato gr2. Usate Granny Viewer per aprirli velocemente e vedere quali sono. Una volta scelto loggetto, potete trovare il numero identificativo nella cartella del file Property.epk decriptato, Property\property. L troverete pi o meno le stesse cartelle presenti in zone, ma dentro ci saranno dei file prb. Cercate il file con lo stesso nome delloggetto che avete scelto e apritelo con Notepad++: nella seconda riga ci sar il numero identificativo. Se dovete aggiungere degli alberi non perdete tempo a decriptare Tree.epk: non ci sono file gr2 l dentro, quindi andate direttamente a cercare il file prb in property. I file degli alberi li riconoscerete quasi immediatamente dal nome (ad esempio baobab.prt), comunque nella cartella Property\property\a\ ce ne sono alcuni.

Esempio: mettiamo al posto della piazza del villo 1 di Jinno unarea per duellare, come quelle che ci sono nellarena. Allora, so che quelloggetto si trova nella mappa arena, che si chiama metin2_map_duel, quindi vado direttamente a cercare nella cartella duel che c in zone. Con Granny Viewer vedo che il file che contiene loggetto ring.gr2 . Ottimo, ora vado nella cartella property, di nuovo nella cartella duel e trovo il file ring.prb . Aprendolo troviamo questo: YPRT 1242965725 buildingfile propertyname propertytype shadowflag

"d:/ymir work/zone/duel/ring.gr2" "ring" "Building" "1"

quindi il numero identificativo delloggetto 1242965725. Adesso sappiamo qual loggetto, dobbiamo solo decidere dove metterlo. Per le coordinate x e y bisogna andare un po a tentativi, proviamo 385, 646. Per la coordinata z prendete quelle di un oggetto gi esistente che si trova pi o meno alla stessa di altezza di quello che volete mettere (poi la ritoccate dopo se c bisogno), ad esempio ledificio dietro alla bottegaia: troviamo loggetto nel file areadata.txt (la cartella dove si trova quella parte di mappa 001002) usando le coordinate come riferimento: Start Object025 38342.726563 -70193.296875 17767.000000 293332305 0.000000#0.000000#0.000000 -5.000000 End Object quindi prendiamo come altezza 17767.000000. Avremmo anche potuto mettere laltezza di un oggetto qualunque e poi ritoccare modificando loffset (lultimo campo) dopo averlo inserirto, fate come vi pi comodo. Perfetto, ora aggiungiamo al fondo del file areadata.txt il nostro nuovo oggetto: Start Object199 38500.441406 -64600.082031 17767.000000

1242965725 0.000000#0.000000#0.000000 0.000000 End Object per il nome continuiamo la numerazione gi presente. Nellultima riga del file, alla voce ObjectCount sostituite 199 con 200, dato che abbiamo aggiunto un nuovo oggetto. Ora salviamo il file, recriptiamo outdoorc1 e rimettiamolo nella cartella pack del client. Riapriamo il client, logghiamo ed ecco la nostra arena al villo 1:

volendo potete ancora rifinire la posizione per centrare meglio loggetto rispetto alla piazza, ma per un esempio va benissimo cos. Fatto ci potremmo ad esempio fare un npc, chiamandolo tipo Organizzatore Duelli, che teletrasporta due pg nellarena e li fa combattere tra loro, e avremo fatto una sorta di arena per duelli nel villo 1! Capite che le possibilit sono infinite, basta usare la fantasia (e saper programmare bene gli script <.<). B, adesso che sapete in che file epk si trovano gli oggetti, potete sbizzarrirvi. Se siete bravi con 3ds Max 7 potete modificare quelli gi esistenti, creando ad esempio nuovi edifici da mettere al villo 1 al posto di quelli che ci sono gi, oppure potete modificare le texture degli oggetti gi esistenti. Per farlo, vi baster aprire con PhotoShop o Gimp il file dds contenente la texture e ricolorarlo come pi vi piace. Per sapere quale o quali texture sono associate a un certo file gr2 vi baster aprirlo con Granny Viewer:

cliccando su Texture List vi apparir la lista di tutte le texture associate al file, con tanto di percorso e informazioni:

Aggiungere un nuovo oggetto una cosa abbastanza difficile infatti, non basta creare il file gr2 con il modello 3d e il file dds con la texture in una cartella dentro zone e il file prb (inserendo un nuovo identificativo per loggetto e il percorso del file gr2) nella cartella di property. Questo perch, se notate, nelle varie cartelle dentro zone ad ogni oggetto associato un file mdart, che non pu essere aperto con un editor di testo normale. Aprendolo in esadecimale, vedrete che parla di collisionPlane, heightstep ed heightPlane, quindi penso che serva per delimitare i contorni di collisione delloggetto (quelli contro cui il pg sbatte), ma modificarlo la vedo dura. Rotazioni e offset Adesso vi faccio vedere in che modo ruota loggetto modificando i valori della posizione angolare, mettiamo una rotazione di 135 per ogni campo. Cambiando il primo campo: Start Object199 38500.441406 -64600.082031 17767.000000 1242965725 135.000000#0.000000#0.000000 0.000000 End Object

Cambiando il secondo campo: Start Object199 38500.441406 -64600.082031 17767.000000 1242965725 0.000000#135.000000#0.000000 0.000000 End Object

Cambiando il terzo campo (quello pi utile): Start Object199 38500.441406 -64600.082031 17767.000000 1242965725 0.000000#0.000000#135.000000 0.000000 End Object

Ora modifichiamo il valore delloffset. Mettendo -200: Start Object199 38500.441406 -64600.082031 17767.000000 1242965725 0.000000#0.000000#0.000000 -200.000000 End Object

Come vedete affonda nel terreno, cio scende rispetto allaltezza specificata allinizio. Mettiamo ora 200: Start Object199 38500.441406 -64600.082031 17767.000000 1242965725 0.000000#0.000000#0.000000 200.000000 End Object

Come vedete rimane sospesa in aria. Rimuovere gli oggetti Per rimuovere oggetto ovviamente basta cancellarlo dal file areadata.txt, ma non basta. Se infatti provassimo a fare cos, riloggando vedremmo che effettivamente loggetto non c pi, ma la sua ombra rimasta! Perch succede questo? Perch le ombre degli oggetti, a differenza di quelle dei mob e dei pg, non sono calcolate in tempo reale, ma sono semplicemente disegnate, leggendole dai file shadowmap.dds e shadowmap.raw. Per eliminare lombra delloggetto, quindi, sufficiente aprire i due file con PhotoShop e cancellare con il pennello bianco lombra delloggetto eliminato. Ma non basta ancora. Di solito gli oggetti sono visualizzati anche nella minimappa che si vede nel radar: dunque, per fare le cose bene, meglio aprire anche il file minimap.dds con PhotoShop (o Gimp) e cancellare loggetto anche l. Ovviamente se aggiungiamo un nuovo oggetto e vogliamo visualizzarne lombra dobbiamo fare nel modo opposto, cio disegnarla nei due file. Modificare il terreno Le informazioni sulla forma terreno sono contenute nel file height.raw .Per modificarle, aprite il file con PhotoShop, abilitate la visualizzazione del canale alfa 2 e disabilitate il canale alfa 1 e modificate il disegno come volete:

Laltitudine del terreno viene calcolata in base al colore: pi chiaro pi alta. Il bianco corrisponder a una montagna altissima, il nero al mare profondo. Fate attenzione ad evitare passaggi netti di colore: fate in modo che siano sempre graduali, altrimenti vi ritroverete delle montagne con pareti verticali, che non sono molto realistiche. Ad esempio, riferendoci sempre al centro dello villo 1 Jinno (vi ricordo che la cartella 001002), prendendo con lo strumento contagocce il colore dellaltezza del terreno dove c il fiume, possiamo fare un bel cerchio con il pennello dove c la piazza, poi scuriamo ancora il colore e facciamo un altro cerchietto al centro del precedente. Ecco cos la piazza che sprofonda nel terreno:

Modificare/aggiungere minimappa Prima abbiamo visto come modificare la minimappa che vediamo nel radar, ma non quella grande che compare premendo il tasto M. Per modificare quella decriptiamo etc.epk, andiamo nella cartella etc\ymir work\ui, cerchiamo la minimappa che ci interessa tra i vari file dds che ci sono e modifichiamola con PhotoShop o Gimp. Per aggiungerla invece (ad esempio a una mappa nuova creata da noi) il procedimento leggermente pi complicato. Per prima cosa creiamo la minimappa in formato dds, e salviamola in etc\ymir work\ui. Poi spostiamoci nella directory etc\ymir work\ui\atlas, creiamo una cartella con il nome della mappa a cui vogliamo aggiungere la minimappa, copiamoci dentro un file atlas.sub che troviamo in una delle altre cartelle, apriamolo con Notepad++ e: alla riga image mettiamo tra virgolette il nome del file dds contenente la minimappa alla riga right mettiamo la larghezza dellimmagine contenente la minimappa alla riga bottom mettiamo laltezza dellimmagine contenente la minimappa Recriptiamo il file etc.epk e sostituiamolo al vecchio. Ricordiamoci, prima di recriptare, di aggiungere il percorso dei nuovi file aggiunti nel file xml. Ad esempio: aggiungiamo la minimappa al bosco rosso. La mappa del bosco rosso si chiama metin2_map_trent02. Creiamo il file metin2_map_trent02.dds con la minimappa (io lho scaricata dalla

Wiki di Metin2) e mettiamolo in etc\ymir work\ui. Creiamo la cartella metin2_map_trent02 e mettiamoci dentro il file atlas.sub con scritto: title subImage version 1.0 image " metin2_map_trent02.dds " left 0 top 0 right 256 bottom 256 e mettiamo la cartella in etc\ymir work\ui\atlas. I valori su right e bottom potrebbero essere diversi, dipendono dallimmagine che avete fatto nel file dds, la mia era 256x256 quindi ho messo 256 per entrambi i campi. Aggiungiamo il percorso dei nuovi file nel file xml , recriptiamo etc.epk ed ecco fatto, il bosco rosso con la minimappa:

Come immaginavo limmagine 256x256 un po troppo grande, ma baster ridurla per avere una minimappa meno ingombrante. Texture del terreno ed ambiente

Le informazioni sulle texture del terreno e sulle condizioni ambientali si trovano nel file setting.txt, che presente nella directory principale della mappa decriptata. Nelle ultime due righe del file trovate le voci TextureSet ed Environment, che sono appunto i file dove recuperare le texture e lambiente. Le texture del terreno si trovano in textureset.epk, e sono semplicemente dei file di testo dove, per ogni texture, indicato il percorso del file dds corrispondente. I file dds contenenti le texture si trovano in terrain.epk: se volete modificarle vi baster decriptare il file e modificare con PhotoShop o Gimp le texture che volete. Il file msenv, invece, contiene informazioni sulle condizioni ambientali, ovvero: luce, nebbia ecc modificando il file msenv si modifica in pratica latmosfera della mappa: si pu fare una mappa luminosa e allegra oppure tetra e misteriosa (ad esempio aggiungendo nebbia). Questi file si trovano in etc.epk, alla directory etc\ymir work\environment. Se ne aprite uno, vedrete che contiene informazioni sulla direzione della luce, la nebbia, il cielo, le nuvole (ci sono anche le texture delle nuvole che potete modificare se volete) e il riflesso del sole noterete subito che da modificare sono estremamente complicati quindi lasciateli come sono, usatene uno gi fatto se volete cambiare atmosfera alla mappa. Non devo neanche dirvi che vi baster modificare quelle due voci nel file setting.txt per cambiare le texture e latmosfera di una mappa. Non immaginate neanche quanto radicalmente pu cambiare una mappa, modificando semplicemente il nome dei file dove recuperare le texture e il file msenv (modifica che richiede pochi secondi). Ad esempio: rendiamo il villo 1 di Jinno pi oscuro e tetro. Per far ci, ho deciso di mettere le texture del villo 2 Jinno (che hanno laspetto desolato) e il file ambiente della terra del fuoco, che ha molta nebbia e poca luce. Per trovare i nomi dei file di queste due mappe potete andare ad intuito (cosa che vi verr quasi automatica dopo un po) oppure recuperarli direttamente dai file setting.txt di quelle due mappe. Per fare in questo ultimo modo, non decriptate i file delle mappe solo per leggere il contenuto del setting.txt, altrimenti ci impiegate uninfinit di tempo! Sfruttate il fatto che il file setting.txt presente anche sul server, quindi accedeteci con WinSCP, andate nella cartella: /usr/rain (o game)/channel/share_data/locale/english (o hongkong)/map e cercate la cartella contente la mappa che vi serve. Nel mio caso, il villo 2 Jinno nella cartella metin2_map_c3, e aprendo il file setting.txt ricavo che le texture del villo 2 sono nel file metin2_C3.txt. La terra del fuoco nella cartella metin2_map_n_flame_01, e dal setting.txt ricavo che le informazioni sullambiente sono nel file map_n_flame_01.msenv. Ora abbiamo tutto: decriptiamo outdoorc1.epk (che sarebbe il villo 1 Jinno), entriamo nella directory della mappa e nel file setting.txt modifichiamo le ultime due righe:
TextureSet Environment textureset\metin2_C1.txt C1.msenv

con:
TextureSet Environment textureset\metin2_C3.txt map_n_flame_01.msenv

ora salviamo, recriptiamo il file, rimettiamolo nella cartella pack, rilogghiamo ed ecco fatto:

ora la mappa ha le texture del terreno del villo 2 e latmosfera infuocata della terra del fuoco. Visto che differenza? Modificare il terreno e lacqua Siamo arrivati verso la fine, ormai sappiamo fare quasi tutto con le mappe. Manca una sola cosa: modificare il terreno e lacqua. Per modificare il terreno intendo mettere i sentieri, lerba o le pietre. B, penso abbiate gi capito come fare: tra i vari file che ci sono nelle cartelle delle mappe, ce ne sono solo due che non abbiamo ancora aperto: tile.raw e water.wtr . In tile.raw c la mappa del terreno, le cose funzionano come nel file height.raw: il colore scuro equivale alla terra, il colore grigio chiaro alle pietre del terreno delle montagne. La cosa migliore provare ad aprirne uno, modificarlo, recriptare tutto e vedere in gioco come sono cambiate le cose. Una buona idea fare con il pennello tante pozzettine vicine di colore diverso, in modo che (in game) possiate vedere ogni colore a che texture corrisponde. Poi, usando lo strumento contagocce, prendete i colori a seconda della texture che volete mettere e modificate la mappa come volete. Ad esempio, potete fare la piazza del villo 1 cos:

oppure mettere i sentieri in pietra:

sono lavori fatti in 5 minuti, non saranno un granch ma solo per farvi vedere degli esempi.