Kedves Fórumozók!
Tudom, sokatok számára ez rutin dolog, de vannak még nagyon sokan, akiknek nem :)
Íme egy leírás, amit ha helyesen csináltok végig, akkor 100%, hogy sikerülni fog a fegyver berakása.
Kezdjük a kliensoldallal. Ugye minden fegyver a Metin2-ben egy .gr2 kiterjesztésű modellből, és különálló textúrákból áll. A modellt Granny Viewer (http://www.4shared.com/rar/Nc1qkzHl/granny_viewer.html) segítségével tekintheted meg. Sok modell nem látszódik Grannyben, in-game viszont igen, és ez néha fordítva is igaz, ezért mindenképp
tesztelni kell őket használat előtt.
A fegyverek modelleit általában az item.eix/epk-ban a ymir work/item/weapon mappába szoktuk helyezni, de ennek ellenére
bárhova rakhatod, csak a
textúrára kell figyelni, hogy jó helyre kerüljön, ugyanis annak az elérési útvonalának a megváltoztatása már kissé nehezebb, ezért mindenképpen először ellenőrizzük le, hogy az jó helyre kerül.
Nyissuk meg a modellt Granny Viewerrel, majd kattintsunk a
Texture list fülre.
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fimg838.imageshack.us%2Fimg838%2F97%2Fgrannyk.png&hash=2e064fa52e8cd18eed2ca71dc10172cd9200fa35)
Ahol aláhúztam, ott láthatjuk a textúra elérési útvonalát. Ha több textúra van, azokat egymás alatt listázza, és kiírja mindnek az elérési útvonalát, ahova kell őket tennünk a megadott néven.
Na de mit csináljunk, ha hiányzik a textúra?
Ha a modellbe "bele van égetve a textúra" (mint a képen láthatón, tehát nem egy fehér valami), akkor igen egyszerű dolgunk van, ha nem, akkor meg szívás.
Nézzük meg először, mekkora méretű textúrára lesz szükségünk:
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fimg442.imageshack.us%2Fimg442%2F7418%2Fgranny2.png&hash=d973e108c3cb1320c174a25bb627e29d0bf56e8c)
Az aláhúzott helyen írja, ez a modell éppenséggel 256x256 pixel méretű textúrát használ, ahogy a modellek többsége úgyszintén.
Ezután kattintsunk felül a
Texture Inspection fülre, ahol látjuk kinagyítva a textúrát, amire egészen rázoomolhatunk a jobb minőség érdekében:
(https://board.ddmt2.net/proxy.php?request=http%3A%2F%2Fimg804.imageshack.us%2Fimg804%2F8503%2Fgranny3.png&hash=e83b67f1551c61874e88f68221f36313812e43b2)
Készítsünk róla egy screenshotot, vágjuk körbe, majd átméretezés után valamilyen képszerkesztő program vagy DDS converter segítségével mentsük el a megadott formátumba, a megadott helyre.
Mielőtt becsomagolnánk a fájlokat,
ne felejtsük el a becsomagoló XML-be pontosan beleírni az összes új fájlunk elérési útvonalát, különben azok kimaradnak a csomagolásból!
A következő lépésként keressük meg a locale_hu.eix/epk-ban (locale_de is lehet, teljesen mindegy, amelyiket használja a kliens), az
item_list.txt-t. Ez a fájl társítja a tárgyakhoz az ikonokat és modelleket (vérteknél ez kicsit más tészta, majd egyszer írok arról is).
Fontos, hogy itt minden különálló részt
TAB segítségével válasszunk el. Szóközzel is elválaszthatjuk, viszont az elég sok logot fog generálni a syserrünkbe, ami nem túl jó.
Az item_list formátuma a következő:
ID[tab]típus[tab]ikon elérési útja[tab]modell elérési útja (ha van)
A típus lehet
ARMOR (vért),
WEAPON (fegyver), és
ETC (egyéb).
Példa:
10 WEAPON icon/item/00010.tga d:/ymir work/item/weapon/00010.gr2
Mivel már korábban említettem, hogy elég sok modell amit publikálnak, nem látszik in-game (vagy hibás), ezért tesztelnünk kell először. Erre a legegyszerűbb módszer, ha a modelljét egy már létező fegyver helyére berakjuk, majd in-game megnézzük, és ha működik, tetszik is, akkor lehet folytatni a berakását.
Például berakhatjuk a kard+0 helyére, aminek az item_list sorát az imént kimásoltam. Csak ki kell cserélni a modell útvonalát az új modellére, visszacsomagolni a fájlokat, felmenni a szerverünkre, és felvenni egy kard+0-t. Ne felejtsünk el
biztonsági mentést csinálni az item_list-ről előtte!
Példa:
10 WEAPON icon/item/00010.tga d:/ymir work/item/uj_fegyok/fegyo1.gr2
A fegyverhez ha volt ikon, azt az icon.eix/epk-ban az item mappába szokás tenni, de ezt is ugyanúgy tehetjük bárhova, csak az item_list-ben a megfelelő elérési utat kell neki megadnunk. Ha nincs hozzá, lefotózhatjuk pl. Granny Viewerben, vagy 3dsMax-ban, körbevághatjuk, és csinálhatunk belőle ikont.
Keressünk 10 egymás utáni szabad ID-t (ha nem +9-ig fejleszthető fegyvert akarunk csinálni, akkor persze kevesebb is elég), és helyezzük el rajta a fegyvert. Az item_listet ugye már meg tudjuk írni, így jöhet az item_proto.
Szerintem a legegyszerűbb megcsinálni a kliensoldalit, és onnét visszakonvertálni szerveroldalra.
A legcélszerűbb, ha
lemásolsz egy már létező fegyvert, ami olyan típusú mint amit csinálni akarsz (ha kardot, akkor kardot, ha tőrt, akkor tőrt, stb.), és átírod a tulajdonságait, amit meg akarsz változtatni, de akár teljesen kézzel is megírhatod, ha ügyesebb vagy.
Ugye így néz ki egy általános fegyver XML:
<Item vnum="10" name="'µµ+0'" gb2312name="kard+0" type="1" subtype="0" weight="0" size="2" antiflag="32" flag="1" wearflag="16" immuneflag="0" gold="0" buy_price="0" limittype0="1" limitvalue0="0" limittype1="0" limitvalue1="0" applytype0="7" applyvalue0="22" applytype1="0" applyvalue1="0" applytype2="0" applyvalue2="0" value0="0" value1="15" value2="19" value3="13" value4="15" value5="0" socket0="0" socket1="64832" socket2="127" socket3="65008" socket4="21631" socket5="4855" refine_vnum="11" refine_set="1" magic_pct="15" specular="0" socket_pct="1" />
Nézzük hát meg, hogy mi micsoda.
Item vnum: a fegyver ID-je
Name: az első name oszlop, amit a drop táblázatok olvasnak ki (ha ezt adod meg a dropban, ügyelj rá, hogy ne legyen benne ékezet, de megadhatod ott az ID-t is, az XML-be pedig teljesen mindegy, mi kerül.)
gb2312name: az a név, amit kiírva látunk (az újabb szerver protokban ez már locale_name, úgyhogy visszakonvertáláskor majd figyelj rá.)
Type: típus (fegyvereknél mindig 1)
Subtype: altípus, tehát fegyvereken belül micsoda (kard=0, tőr=1, íj=2, kétkezes=3, harang=4, legyező=5)
Weight: nem tudom, mi akar ez lenni, de mindig 0.
Size: méret (hány darab kockányi helyet foglal el a leltárban egymás alatt)
Antiflag: ez szabályozza, hogy kik vehetik fel az adott tárgyat, eldobható-e, kereskedhető-e, eladható-e, stb. Itt célszerű lemásolni egy olyan tárgyról, aminek ezen tulajdonságait örökíteni akarod rá.
Flag: hát, ezt most meg nem mondom, pontosan micsoda, de fegyverek esetében 1.
Wearflag: ez szabályozza, hogy ha felveszed a tárgyat, hova kerüljön a leltáradban. Fegyverek esetében 16.
Immuneflag: szintén nem tudom, micsoda, de mindig 0.
Gold: vételár
Buy_price: eladási ár
Limitetype(szám): kritérium ID-je (1 a szinthatár)
Limitevalue(szám): az előző kritérium értéke
Applytype(szám): bónusz ID-je
Applyvalue(szám): az előző bónusz értéke
Value0: nem tudom, de 0-t szokás írni oda, valami sebzéssel kapcsolatos, lehet kísérletezni.
Value1: minimum mágikus sebzés
Value2: maximum mágikus sebzés
Value3: minimum normál sebzés
Value4: maximum normál sebzés
Value5: hozzáadódik az összes eddigi sebzéshez
Socketek: nem tudom, de ezekkel nem kell törődni XML-nél.
Refine_vnum: annak a fegyvernek az ID-je, amire lehet majd a fegyvert fejleszteni
Refine_set: a kovácsolási módszer ID-je (refine_proto-ban találod meg)
Magic_pct: Ezt se tudom, de mindig 15.
Specular: fénylés (0-100-ig)
Socket pct: kliensoldalon a csillogás ID-jének kiszámításához kell, szerveroldalon a behelyezhető kövek száma.
Bónuszok ID-i és hatása:0 Nincs bónusz
1 Max TP
2 Max MP
3 VIT
4 INT
5 ERŐ
6 ÜGY
7 Támadó sebesség
8 Mozgási sebesség
9 Varázs sebesség
10 TP regenerálódás
11 MP regenerálódás
12 Mérgezési esély
13 Ájulási esély
14 Lelassulás esélye
15 Esély kritikus találatra
16 Esély átható találatra
17 Félemberek elleni erő
18 Állatok elleni erő
19 Ork elleni erő
20 Ezotéria elleni erő
21 Nemhalottak elleni erő
22 Ördög elleni erő
23 Veszteségek a TP-böl eltűnnek
24 Veszteségek az MP-böl eltűnnek
25 Esély az ellenség Mp-inek átvételére
26 Esély hogy az MP-t találatnál megtartsd
27 Esély a testi támadás kivédésére
28 Esély a nyilak elkerülésére
29 Kard védelem
30 Kétkezes védelem
31 Tőr védekezés
32 Harang védelem
33 Legyező védekezés
34 Nyíl ellenállás
35 Tűz ellenállás
36 Villám ellenállás
37 Mágia ellenállás
38 Szél ellenállás
39 Esély közvetlen testi támadás visszaverésére
40 Esély az átok visszaverésére
41 Méreg ellenállás
42 Esély MP visszaállítására
43 Esély EXP bónuszra
44 Esély dupla mennyiségű Yang eldobására
45 Esély dupla mennyiségű tárgy eldobására
46 Ital hatásnövekedés
47 Esély TP visszaállítására
48 Immunis az ájulás ellen
49 Immunis a lelassulás ellen
50 Immunis a leesésre
52 Íjjász hatótávolság
53 Támadó érték
54 Védekezés
55 Mágikus támadó érték
56 Mágikus védelem
58 Max. Kitartás
59 Harcosok elleni erő
60 Ninzsák elleni erő
61 Sura elleni erő
62 Sámán elleni erő
63 Szörny elleni erő
64 Támadó érték2
65 Védekezés2
66 EXP
67 Tárgy ledobási esély
68 Yang eldobási esély
71 Készség károk
72 Átlagos károk
73 Készség károkkal szembeni ellenállás
74 Átlagos veszteség ellenállás
76 EXP-Bónusz3
77 Tárgy zsákmányolási esély plusz
78 Védekezési esély harcos támadás ellen
79 Védekezési esély nindzsatámadás ellen
80 Védekezési esély Sura támadás ellen
81 Védekezési esély sámántámadás ellen
Sebzés, value5 teszt:Idézetet írta: Alissa Dátum 2012-06-14, 10:56:00
Nos, többször felvetődött már a kérdés, hogy vajon a value5 mennyire számítódik mindehhez. Hallottam már olyan verziókat, hogy a skillekre nem hat, vagy épp csak azokra hat, stb, így gondoltam, utánajárok magam egy egyszerű teszt segítségével.
Vegyünk egy alap kardot, és állítsuk át az értékeit. A tesztalany egy 80-as, statok nélküli harcos, P száguldással. A kard kapott 1111-1113-as sebzést úgy, hogy a value5 0 volt.
A sebzés vad kutyákra a következőképpen alakult:
Száguldás: 5k körülÜtés: 1,5k körülA teszt következő állomása, hogy ugyanaz a kard megkapta ugyanezt a sebzést, csak éppenséggel úgy, hogy value3 1 lett, value4 3, és value5 pedig 1110 (ez is 1111-1113 sebzést produkál papíron.)
A sebzés vad kutyákra a következőképpen alakult:
Száguldás: 7,5k körülÜtés: 2,5k körül
A teszt bebizonyítja, hogy 2, papíron teljesen megegyező sebzésérték másképpen megadva teljesen más valós sebzést produkál, mivel a value5 sokkal jobban hat a skillekre és az ütésekre egyaránt, mint a másik 4 value.
Tipp: ha új fegyvereket csinálsz, ne egy előző szetthez képest növeld folyamatosan a value5-öt, vagy épp hagyd az eddigi formáiban és a többit növeld, hanem arányosan mindet, és így megmaradnak az eddigi sebzésarányok.
Nos, ha kész vagy az XML résszel, akkor például ezzel a konverterrel (http://www.mediafire.com/?s1nafocr7axq7t4) csinálhatsz belőle
queryt, amit csak be kell másolnod Navicat konzolba, vagy a kidumpolt SQL fájlba, és visszatölteni (utóbbinál nem rontja el az ékezeteket).
Érdemes utólag szerver item_protoban
leellenőrizni, hogy minden helyesen szerepel-e, a
socket_pct részt (mivel ez ugye eltérhet), és amiről idáig nem beszéltünk, mivel csak szerver oldalon van:
Addon_type: ha 0, akkor nincs átlag/készségkár a fegyverben, ha -1, akkor pedig van.
Ha mindennel kész vagyunk, csomagoljuk vissza a kliensbe a fájljainkat, tartsunk szerver restartot, vagy írjuk be in-game GM karakterrel, hogy /reload p, várjuk meg, amíg végez, és készen is vagyunk.
Remélem, hasznos volt a leírás.
Üdvözlettel: Alissa