Kliens szerkesztés - ALAPOK

Started by Mr.Joeker, 2014-08-21, 15:18:46

2014-08-21, 15:18:46 Last Edit: 2014-09-14, 23:02:14 by Mr.Joeker
Kliens szerkesztés - ALAPOK


Nyugodtan lehet kérdezni a Segitség topicban!



Kellékek:


_________________________________________________________________________________

Ebben a tutorialban,az alapokat szeretném bemutatni.Ilyen jellegü tutorialból találhatunk itt a fórumon is egy párat,de az egyik vagy ősrégi,vagy magában rossz az egész...
A tutorialban a fájlokról szeretnék beszélni + 1-2 dologról.
_________________________________________________________________________________

A kliensünkben sok dolog található.
Kezdjük a kliensünk bélrendszerénél,az az a Pack mappánál.
ABC sorrend:

BGM.e** - Ebben a kliens zenéi találhatók,amit ha le is cserélünk,akkor az lesz helyette.

Effect.e** - Ahogy a neve is elárulja,hogy ebben az effecketről van szó.Ebben találhatóak pl: mobok effectjei,a zászlók ami az ellenséges birodalom feje fölött található...stb

ETC.e** -
-environment mappa - az égboltokhoz tartozó scriptek,képek találhatóak benne.
-special mappa - ebben pedig a víz texturája...stb
-ui mappa - ebben pedig a dizájnhoz való dolgok találhatóak

Guild.e** - A céhekhez tartozó dolgok,pl: a skillek,céh házak...stb

Icon.e** -
-action mappa - az érzelmek iconjai
-face mappa - a karakterekhez tartozó iconok
-hair mappa - ebben a hajak hoz tartozó képek,és a képekhez tartozó sub fájlok találhatóak
-item mappa - ebben a fegyverekhez,és egyéb dolgokhoz az iconok találhatóak

Index - Ez a pack mappa központja.Ebből a fájlból olvassa be a kliens,hogy melyik fájlokat használja.

Item.e** -
-etc mappa - Ebben a kisebb dolgok vannak,mint pl: a pénzérme modellje
-quest mappa - hajakhoz tartozó dolgok
-weapon mappa - fegyverek modelljei,és a hozzájuk tartozó texturák

locale_xy.e** -
-Effect mappa - ebben található a GM logo,és a hozzá tartozó script is.
-Icon - A küldetés tekercs  található benne,de azt a season1 ből nézi.
-ui - Ebben található a legtöbb dolog,login kép,betöltő képek...stb
empiredesc fájlok - A karakter készitésnél lévő birodalom bemutatás
guildbuildinglist.txt - A céh telkekhez szükséges
insult.txt - a legtöbbször trágár szavak szerepelnek benne,amit ingame kicsillagoz
item_list.txt - Egyéb tárgyak,fegyverek modelljének,iconnak ez elérése.A vérteknél csak icon...
item_proto - Vértek,fegyverek,és egyéb tárgyak kliens oldali tulajdonságai ebben vannak.
itemdesc.txt - ebben pedig a tárgyakhoz való szövegelés van...
jobdesc fájlok - a karakterekhez tartozó bemutató
locale_game.txt - ezek pedig a kliens üzenetek
locale_interface.txt - ez meg a kliens dizájnhoz tartozó szövegek...stb
mob_proto - hasonló kaliberű mint az item_proto,csak hogy ez a mobok neveit tartalmazza ...stb
skilldesc.txt - a skillekhez tartozó szövegek
skilltable.txt - a kliens oldali skillek bónuszai

Monster,Monster2.e** - Ezekben  a szörnyek találhatóak...

NPC,NPC2.e** - Ezekben pedig 1-2 mount,és npc-k...

Outdoors fájlok - Az ilyen kezdődésü fájlokban a mappok találhatóak.

Property.e** - Ebben .prb fájlok találhatóak.A .prb fájlok által tölti be a kliens az

objecteket,effecteket,növényeket.Amiket majd később lerakhatunk a mapokra...stb

Psyco.e** - Ez egy teljesen felesleges fájl,semmit nem csinál.

root.e** - Ez a kliens agya,a játék egyik legfontosabb része.

Season fájlok - Ezek egy afféle patch fájlként szolgálnak a kliensünkben.Az eloszlás benne elég vegyes.

Sound,Sound2.e** - A kliensben található hangok,pl: mobok hangjai...stb

Terrain - Ebben a talaj textúrák találhatóak.

Textureset.e** - Ebben pedig a mappokhoz hozzá rendelt texturesetek találhatóak,amik segitségével a kliens betölti a texturákat.

Tree.e** - Fák,és egyéb növények találhatóak benne.

uiloading.e** - Ebben is betöltő képek találhatóak.34k-40k nál már ez teljesen felesleges fájl,mivel a locale ből nézi a képeket.

uiscript.e** - ez pedig a kliensünk maradék python scriptjét tartalmazza...stb

Zone.e** - Házakat és még sok más dolgot tartalmaz...

Alap formátumok:

Első látásra a nagyon kezdőknek,elég bonyolúltnak tünhet.De nem kell egyből a rákapni a látványtól,a Whiskyre...
Mint más játék,a metin is több formátumot használ.Lehet az a modellekhez kapcsolódó,vagy különböző képformátumokhoz...stb
A kliens 2 formátumot használ,a modellek terén(SPT,GR2).Az SPT a "növényekhez",a gr2-t pedig a vértek,fegyverek,objectek használják.
A képekhez pedig a dds,jpg,tga.De ha van egy png képünk,és átnevettük .tga ra,akkor azt is beveszi a kliensünk.
Valamint van külön formátumjaik,az effecteknek is(.mse).
A Property.e** ben láthatunk pl: prb,prt formátumokat.A prb az objectekhez,tehát a gr2 es modellekhez.A prt pedig,az spt fájlokhoz,az az a "növényekhez" tartozik.
Az objectekhez tartoznak az mdatr fájlok is,amik a házakba való bemenetelt,és hogy ne tudjunk átmenni rajta.
Az ATR fájlok is befolyásolják,hogy hol tudjunk menni,és hol nem.
Valamint találhatunk python scripteket is(pyc,py).A .pyc a tömörtített,a .py pedig a sima script.

_____________________
Alap műveletek:

A kliensünk felső tálcáján megjelenő név módosítása:

Kicsomagoljuk a kliensünk PACK mappájában található root.e**-t,a fentebb linkelt bontóval.
Megkeressük benne,a locale.py fájlt.Amiben az "APP_TITLE = "Kliens név"  részt megkeressük,és átírjuk a  nevet.Tehát ebből "APP_TITLE = "Kliens név" lett ez "APP_TITLE = "Teszt kliens" ...

Szerver berakása a kliensbe:

Az előbb kibontott root fájlban,megkeressük,a serverinfo.py-t.
Nálam így néz ki:
import app

app.ServerName = None

STATE_NONE = '...'

STATE_DICT = {
0 : '....',
1 : 'NORM',
2 : 'BUSY',
3 : 'FULL' }

SERVER1_CHANNEL_DICT = {
1:{'key':11,'name':'CH1   ','ip':'37.221.209.72','tcp_port':13070,'udp_port':13070,'state':STATE_NONE,},
2:{'key':12,'name':'CH2   ','ip':'127.0.0.1','tcp_port':62210,'udp_port':62210,'state':STATE_NONE,},
4:{'key':14,'name':'CH3   ','ip':'127.0.0.1','tcp_port':62310,'udp_port':62310,'state':STATE_NONE,},
3:{'key':13,'name':'CH4   ','ip':'127.0.0.1','tcp_port':62410,'udp_port':62410,'state':STATE_NONE,},
5:{'key':13,'name':'CH5   ','ip':'127.0.0.1','tcp_port':62410,'udp_port':62410,'state':STATE_NONE,},
6:{'key':13,'name':'CH6   ','ip':'127.0.0.1','tcp_port':62410,'udp_port':62410,'state':STATE_NONE,},
7:{'key':13,'name':'CH7   ','ip':'127.0.0.1','tcp_port':62410,'udp_port':62410,'state':STATE_NONE,},
8:{'key':13,'name':'CH8   ','ip':'127.0.0.1','tcp_port':62410,'udp_port':62410,'state':STATE_NONE,},
}
REGION_NAME_DICT = {
0 : 'TAIWAN',
}

REGION_AUTH_SERVER_DICT = {
0 : {
1 : { 'ip':'37.221.209.72', 'port':11002, },

}
}

REGION_DICT = {
0 : {
1 : { 'name' : 'Teszt', 'channel' : SERVER1_CHANNEL_DICT, },
},
}

MARKADDR_DICT = {
10 : { 'ip' : '37.221.209.72', 'tcp_port' : 13070, 'mark' : '10.tga', 'symbol_path' : '10', },
}

TESTADDR = { 'ip' : '37.221.209.72', 'tcp_port' : 50000, 'udp_port' : 50000, }

#DONE

Szóval megfogjuk a 37.221.209.72 ip-t,és lecseréljük a sajátunkra.
Valamint a REGION_DICT alatt lévő Teszt szöveg a minimap alatt megjelenő név,ezt is nyugodtan átírhatjuk.

Kis térkép letiltása:

A már kicsomagolt root ban,megnyitjuk az uiminimap.py-t-
Rákeresünk erre:
CANNOT_SEE_INFO_MAP_DICT = {
Ez alá beírjuk a mapünket,így:
"metin2_map_xy" : FALSE,
És valahogy így fog kinézni:
CANNOT_SEE_INFO_MAP_DICT = {
"metin2_map_monkeydungeon" : FALSE,
"metin2_map_monkeydungeon_02" : FALSE,
"metin2_map_monkeydungeon_03" : FALSE,
"metin2_map_devilsCatacomb" : FALSE,
                "metin2_map_xy" : FALSE,


Alap kliens levédés:

Kibontod az összes fájlt.
Hex editorban rákeresel az inditóban,bontóban az LZO keyre(ąž°oic˜›(y v. hexben: B9 9E B0 02 6F 69 81 05 63 98 9B 28 79 18 1A 00)
Átírod amire akarod.(16 os számrendszer:A=10;B=11;C=12;D=13;E=14;F=15)
Vissza csomagolod a fájlokat.
Az indítóban is átírod ugyan így az LZO key-t, arra amire a csomagolóban írtad.

Kiterjesztés módosítása:

Szükségünk van egy levédetlen inditóra,Hex Editorra.
Nyissuk meg az inditónkat a Hex Editorban.Ha már megnyitottuk,akkor a CTRL + F billentyűkombinációval  keressünk rá a .eix,.epk ra és átírhatjuk nyugodtan.Figyelj arra,hogy csak 3 betü lehet.
Ha már ezt megcsinátad,akkor mentsd le az inditót.Már csak a pack mappában kellesz átírni őket.

Runtime Error:

A runtime errort az okozza,hogy a kliens kevés memóriát foglal le.Ami oda vezet,hogy a kliensünk öngyilkos lesz,ha eléri azt a korlátot.Az egészet kellőképpen csak a forrásban tudjuk javítani.
_________________________
Egyéb leírások:
_________________________

A téma még idővel bővűlni fog.