Peace!részben azért nyitom a témát,mert eshetőségek szerint vagy bővíteni fogom majd vagy valakit bevonok a release-be és ezzel remélem változást hozok az eddigi fejlesztők nézeteiben+részben pedig tuti mindenki gondolt már arra,hogy hogy is lehetne simábbá tenni a régi vagy régiből megújított mobok,npc-k vagy npcként kezelt objektek átszínezését vagy egyéb tuningolását.:(szal más textúrát bevágni rájuk+ effekteket elhelyezni rajtuk!)
#ha nem lenne világ mi ez:
~Van egy model, amire új textúrát tennénk,de nekünk a régi változatra is szükség van,na most ezt vezetem le a szöveg első részében.
~A második rész levési h kb h a francba tudunk effekteket tenni a modellek csontjaihoz/ra
1.Rész: Új textúra rendelése egy meglévő npc-hez v mobhoz...
A példánk egy pet lesz!
Eredetileg volt egy leopard_young1_yellow.msm -ünk,ezt másoltuk és a másolatot átneveztük leopard_young1_white.msm -re.
Megnyitás után kb ezt láttuk.:
ScriptType RaceDataScript
[hr]
BaseModelFileName "D:\Ymir Work\npc2\leopard_young1\leopard_young1_yellow.GR2"
Group ShapeData
{
PathName ""
ShapeDataCount 0
}
Group AttachingData
{
AttachingDataCount 2
Group AttachingData00
{
AttachingDataType 1
isAttaching 1
AttachingModelIndex 0
AttachingBoneName "Bip01"
CollisionType 1
SphereDataCount 1
Group SphereData00
{
Radius 28.000000
Position 0.000000 0.000000 0.000000
}
}
Group AttachingData01
{
AttachingDataType 1
isAttaching 1
AttachingModelIndex 0
AttachingBoneName "Bip01"
CollisionType 3
SphereDataCount 1
Group SphereData00
{
Radius 37.000000
Position 0.000000 0.000000 0.000000
}
}
}
Az msm első fele
+magyarázat a kövi.
BaseModelFileName -> model elérése és neve.gr2 például az előbbi esetben D:\Ymir Work\npc2\leopard_young1\leopard_young1_yellow.GR2
Ezt többnyire nem szerkesztjük,ha csak nem alkotunk egy új npc-hez valamit.
A második fele+ a magyarázatok lentebb.:
Group ShapeData --> modelhez való textúrarendelés
Két féle változat létezik a textúrák modelhez való rendeléséhez
Az egyik.:
Group ShapeData
{
PathName ""
ShapeDataCount 1
Group ShapeData00
{
ShapeIndex 0
Model "D:\Ymir Work\npc2\leopard_young1\leopard_young1_yellow.GR2"
SourceSkin "D:\Ymir Work\npc2\leopard_young1\leopard_young1_yellow.dds"
TargetSkin "D:\Ymir Work\npc2\leopard_young1\leopard_young1_white.dds"
}
}
Vagy más esetben:
Group ShapeData
{
PathName "d:/ymir work/npc2/leopard_young1/"
ShapeDataCount 1
Group ShapeData00
{
ShapeIndex 0
Model "leopard_young1_yellow.gr2"
SourceSkin "leopard_young1_yellow.dds"
TargetSkin "leopard_young1_white.dds"
}
}
A dolog egyik magyarázata:
Group ShapeData ->ez itt egy textúrabetöltéshez kellő group
{ <-megnyitjuk a csoport elemeit
PathName-> ha van ilyen akkor ez még leírja,hogy honnan a fenéből töltjük be a modelt és a textúrákat
{ <-megnyitjuk az adott részen lévő csoport elemeit
ShapeDataCount -> nekünk most 1(mert csak a karik hajai és vértjei/kosztümjei bírnak több elemmel[azaz ott több lekérhető modell+textúra van])
ShapeIndex -> az értéke 0 ,mert ez dettó az előző okból kifolyólag egy "alap" jellegű lekérés.
Model ->értelemszerűen a lekérés+a modell vagy szimplán a model , ha van pathname csak szimplán a model,azaz modelnév.gr2
(GR2 viewerünkkel a gr2-es model'ünk texturelistjén megnézhetjük,hogy mégis milyen textúrát kér a model)
SourceSkin -> a textúra (GR2 viewerben célszerű megnézni,hogy mégis honnan akarja betölteni a dolgokat,mert az elérés fontos lesz ha újabb textúrát akarunk betölteni)
TargetSkin -> a textúra helyére betöltendő textúra (elv az msm mellé szoktuk tenni az adott elérésen levő dds-t)
[spoiler=Több textúra esetén]
SourceSkin2 -> a model 2.textúrájának neve.kiterjesztése
TargetSkin2 -> a 2.textúra helyére betöltendő újabb textúra
SourceSkin3 -> a model 3.textúrájának neve.kiterjesztése
TargetSkin3 -> a 3.textúra helyére betöltendő újabb textúra
És így tovább...
[/spoiler]
} -group ShapeData00 lezárása
} group ShapeData lezárása
A kapcsoszárójelek olyan sémát alkotnak,amit ha megszegünk kaputt a fájl betöltésének!
A kliens dds,tga,jpg és png képeket is kezel (tudtommal) ,szóval emez a példa
A harmadik részlete a magyarázattal együtt:
Group AttachingData <---Csoport csatolása a modelhez (pl mounton való csücsülés pozíciója vagy effektek vagy csontokra csatolt effektek)
{ <--nyitás
AttachingDataCount 2 <--csoport csatolmányainak száma,ha növeljük akk amennyi effekt vagy extra kerül rá annyival kell megnövelni.
Group AttachingData00 <-- első csatolmánya
{ <--nyitás
AttachingDataType 1 <--csatolmány típúsa
isAttaching 1 <--csatolva van
AttachingModelIndex 0 <--az érték,amit ritkán láthatunk 1-es értékkel
AttachingBoneName "Bip01" <--adott csont neve (GR2viewerbe skeleton menüpontban Bone Names-el hozhatjuk elő emezeket)
CollisionType 1 <--"ütközés/csatlakozás értéke" ~én úgy tom h mindig 1-es az elsőnél
SphereDataCount 1 <-" kiindulási adataiank száma "~dettó úgy tom,h mindig 1-es ,de emezt nem csak az elsőnél láthatjuk így...
Group SphereData00 <-" kiindulási adataiank első azaz 0.eleme"
{ <- SphereData00 nyitása
Radius 28.000000 <-hatótáv\hatósugár értéke
Position 0.000000 0.000000 0.000000 <pozíciója ~x y z-n ha jól rémlik ez az elsőnél mindig a nullásoknál van
} <-SphereData00 lezárása
} <- első AttachingData00 lezárása
Group AttachingData01 <--második csatolmány
{ <--AttachingData01 nyitása
AttachingDataType 1 <--csatolmány típúsa
isAttaching 1 <--csatolva van
AttachingModelIndex 0 <--az érték,amit ritkán láthatunk 1-es értékkel
AttachingBoneName "Bip01" <--adott csont neve (szintén GR2viewerbe skeleton menüpontban Bone Names-el hozhatjuk elő emezeket)
CollisionType 3 <--"ütközés/csatlakozás értéke" ~én úgy tom h mindig 1-es az elsőnél
SphereDataCount 1 <-" kiindulási adataiank száma "~fentebb leírtam a jelentését.
Group SphereData00 <-" kiindulási adataiank első azaz 0.eleme"
{ <-- nyitás
Radius 37.000000 <-hatótáv\hatósugár értéke
Position 0.000000 0.000000 0.000000 <pozíciója ~x y z-n ha jól rémlik ez az elsőnél mindig a nullásoknál van
} <--lezárás
} <--AttachingData01 lezárása
} <-- -Csoport csatolása lezárása
Ha megkérdeznétek mért magyaráztam el majdnem minden egyes pontját azt feleném,hogy meg kell érteni mi a franc okozhat hibát,ha az ember kifelejti vagy valahol véletlenül törli...a syserr nem úgy jelzi nekünk az msm-eket,hogy jajj ebben a sorban vagy abban a sorban valami hiba van,hanem szimplán nem fogadja el és nem tudja betölteni az adott msm-et...Sőt ha az msm fájl üres a kliens bezárul és ez már elég jó ok a hibakeresésre.
Az effektek berakása
a csatolt elemeknél első dolgunk bővíteni az attachingdatacount értékét,a téma elején levő kettest 4-el növeltem és így összesen 6 elemet fogok az adott állathoz hozzácsatolni!
Group AttachingData02 <-- harmadik csatolmány (mert ugyé 00-al kezd mindegyik msm és volt 01,értelemszerűen most jön 02 aztán 03 ... 99-ig,majd 100-ig)
{ <--nyitás
AttachingDataType 2 <--csatolmány típúsa
isAttaching 1 <--csatolva van
AttachingModelIndex 0 <--tudtommal megint egy állandó nullás érték,miután ezen belül nincs több extra csatolható elem
AttachingBoneName "Bip01 L Hand" <--adott csont neve (GR2viewerbe skeleton menüpontban Bone Names-el hozhatjuk elő emezeket és az adott "L Hand" környékén láthatjuk a helyét)
EffectScriptName "D:\ymir work\npc2\leopard_young1\wit.mse" <-betötendő effekt
EffectPosition 0.000000 0.000000 0.000000 <-effekt pozíciója
EffectRotation 0.000000 0.000000 0.000000 <-effekt forgatása
} <-lezárás
Az effektekkel megtoldott Group AttachingData a fenti fájlnál
Group AttachingData
{
AttachingDataCount 6
Group AttachingData00
{
AttachingDataType 1
isAttaching 1
AttachingModelIndex 0
AttachingBoneName "Bip01"
CollisionType 1
SphereDataCount 1
Group SphereData00
{
Radius 28.000000
Position 0.000000 0.000000 0.000000
}
}
Group AttachingData01
{
AttachingDataType 1
isAttaching 1
AttachingModelIndex 0
AttachingBoneName "Bip01"
CollisionType 3
SphereDataCount 1
Group SphereData00
{
Radius 37.000000
Position 0.000000 0.000000 0.000000
}
}
Group AttachingData02
{
AttachingDataType 2
isAttaching 1
AttachingModelIndex 0
AttachingBoneName "Bip01 L Hand"
EffectScriptName "D:\Ymir Work\npc2\leopard_young1\wit.mse"
EffectPosition 0.000000 0.000000 0.000000
EffectRotation 0.000000 0.000000 0.000000
}
Group AttachingData03
{
AttachingDataType 2
isAttaching 1
AttachingModelIndex 0
AttachingBoneName "Bip01 R Hand"
EffectScriptName "D:\Ymir Work\npc2\leopard_young1\wit.mse"
EffectPosition 0.000000 0.000000 0.000000
EffectRotation 0.000000 0.000000 0.000000
}
Group AttachingData04
{
AttachingDataType 2
isAttaching 1
AttachingModelIndex 0
AttachingBoneName "Bip01 R Toe0"
EffectScriptName "D:\Ymir Work\npc2\leopard_young1\wit.mse"
EffectPosition 0.000000 0.000000 0.000000
EffectRotation 0.000000 0.000000 0.000000
}
Group AttachingData05
{
AttachingDataType 2
isAttaching 1
AttachingModelIndex 0
AttachingBoneName "Bip01 L Toe0"
EffectScriptName "D:\Ymir Work\npc2\leopard_young1\wit.mse"
EffectPosition 0.000000 0.000000 0.000000
EffectRotation 0.000000 0.000000 0.000000
}
}
Ha sikerült megkűzdenünk a szerkesztéssel vagy az msm-ünk összerakásával;
az msm-et értelemszerűen abba a mappába kell tennünk,ahonnan majd az msm a dolgokat betölti;
az npclistbe úgy kerül be az új msm-ünk,hogy az npclist elején megadjuk a következőket:
0TABULÁTORnév.msmnélkülTABULÁTORmappaneve
azaz a példámmal szemléltetve:
0 leopard_young1_white leopard_young1
npclist végére:
IDTABULÁTORnév.msmnélkül
azaz a példámmal.:
34062 leopard_young1_white
eztán ha az npclist végén nincs üres sor az előbb bevágott sorunk után csinálunk 1 új üres sort!
#Megjegyézés: SZÓKÖZÖKKEL TABULÁTOR NÉLKÜL A JÁTÉKOT SZABOTÁLNI SZOKTA A KLIENS!
#Második fontos dolog: az utolsó sort direkt üresen kell hagyni,ezért is harap a drága kliens!
Esetleges értelmezési problémák vagy kérések esetén szerkeszteni fogom a témát ill mint fentebb írtam tervezem,hogy másokat is bevonjak ennek az adott téma bővítésébe!
Tisztelettel Hatvanhatdragonkilencvenkilenc / 66Dragon99
#Amennyiben kifogást emelnél ellenem kérlek először privátban konzultálj velem!