Játékos karakter kinézetű NPC/MOB

Indította K3zX, 2018-07-03, 17:43:18

2018-07-03, 17:43:18 Utolsó szerkesztés: 2018-07-03, 18:06:41 Szerző: K3zX
Sziasztok,

Egyszer régen még lementettem egy ilyen msm scriptet NPC-hez:

ScriptType            RaceDataScript

Group HairData
{
PathName ""
HairDataCount 1
Group HairData00
{
HairIndex 0
Model "D:\Ymir Work\pc\warrior\hair\hair_1_1.gr2"
SourceSkin "D:\Ymir Work\pc\warrior\hair\hair_1_1.dds"
TargetSkin "D:\Ymir Work\pc\warrior\hair\hair_1_1.dds"
}
}
Group ShapeData
{
    PathName ""
    ShapeDataCount 1
Group ShapeData00
{
ShapeIndex 0
Model "D:\Ymir Work\pc\warrior\warrior_4-1.gr2"
SourceSkin "D:\Ymir Work\pc\warrior\warrior_4-1.dds"
TargetSkin "D:\Ymir Work\pc\warrior\warrior_4-1.dds"
}
}

Group AttachingData
{
    AttachingDataCount 2
   
    Group AttachingData00
    {
        AttachingDataType    1
       
        isAttaching          0
        AttachingModelIndex  0
        AttachingBoneName    "Bip01"
       
        CollisionType        1
       
        SphereDataCount      1
        Group SphereData00
        {
            Radius           40.000000
            Position         0.000000 0.000000 100.000000
        }
    }
   
    Group AttachingData01
    {
        AttachingDataType    1
       
        isAttaching          0
        AttachingModelIndex  0
        AttachingBoneName    "Bip01"
       
        CollisionType        3
       
        SphereDataCount      1
        Group SphereData00
        {
            Radius           70.000000
            Position         0.000000 0.000000 100.000000
        }
    }
}



Ez egy harcos npc/mob lenne. A gond vele az, hogy nem tudom elérni hogy egyszerre látszódjon a haj és a test. A fegyvert még nem is próbáltam, gondolom az sem lenne könnyű.

Alapvetően a hairdata-t nem olvassa be egyáltalán, a shapedata-t igen, de valamiért csak egyet. Ha a csinálok a hajnak egy Group ShapeData01-et, ShapeIndex 1-et, a countot növelem 2-re, akkor sem jó, csak az elsőt olvassa be. Ha a haj van előbb, akkor a haj látszódik de a test nem, ha a test van előbb akkor a test látszódik a haj nem.  Ha a script elejére írok egy BaseModelFileName-t amibe megadom az egyik modellt, akkor csak az látszódik, pl ha odaírom a hajat, akkor a test nem fog, ha odaírom a testet, akkor a haj nem fog.

Valakinek van ötlete? Alapvetően nagyon fun lenne ha lenne map1-en pár olyan npc ami úgy néz ki mint egy karakter, esetleg karakter mobok egy új mapra, de nem akar összejönni :D

Mellesleg effekteket simán elfogad, akár többet is, csak modellt nem akar.

(Nem értek 3dsmaxhoz, illetve nagyon tré megoldás lenne amúgy is ha minden karaktert meg kellene csinálni abban, hisz újracsontozás stb...)

Szerintem inkább C++-ban írd meg a CreateCharacter függvény segítségével, hogy le tudj idézni egy karaktert NPC-ként aminek meg tudod adni, hogy melyik fegyvert/vértet tegye rá.

C++ programmer at Gameloft

C++ megoldásokra is gondoltam, alapvetően egy BaseModelFileName2-t létrehoztam, minden alfunkcióját lemásoltam a végén egy 2-essel hogy ne ütközzön, de valahogy mindig felülírta a sima BaseModelFileName-t és megint csak a test vagy a haj látszódott. Ugyanezt eljátszottam a shapedata-ban a model-el, meg magával a shapedata-val is, egyszerűen felülírják a lemásoltak az eredetit, még akkor is ha az alfunkciók, visszakövetve is le vannak másolva egy 2-es utótaggal :D

CreateCharacter alapvetően jó ötlet lenne, csakhát az npc-t msm-ből olvassa, az mégcsak nem is python. Oké, megkeresem a forrásban a CreateCharacter funkcióját, de hogy vonom össze az npc_list.txt és az abbóli msm fájl olvasással? Biztos meg lehet csinálni, csak nem mindenki képes rá, valószínűleg én sem ;D

Talán nem a legszebb de beválhat:
Mikor létrehozza az adott akármit (npc, mob, stb), ott van egy feltétel:
if (IsPC())
{
SetHair(c_rkCreateData.m_dwHair);
SetAcce(c_rkCreateData.m_dwAcce);
SetWeapon(c_rkCreateData.m_dwWeapon);
#ifdef ENABLE_EFFECT_SYSTEM
SetSpecialEffectArmor(c_rkCreateData.m_dwBodyEffect);
SetSpecialEffectWeapons(c_rkCreateData.m_dwWeaponEffectRight, c_rkCreateData.m_dwWeaponEffectLeft);
#endif
}

Próbáld ki h megírod bizonyos NPC-kre.
Kicsit macerás, de ha működik akkor sztem elmegy 1 megoldásnak.

2018-07-03, 23:14:50 #4 Utolsó szerkesztés: 2018-07-03, 23:24:52 Szerző: K3zX
Nem nagyon akar működni. Alá írtam egy ilyet:

if (c_rkCreateData.m_dwRace == 3210)
{
SetArmor(3);
SetHair(0);
SetWeapon(10);
}


De nem tölti be. Próbáltam hogy meghagyom az npc_listben a félkészet, meg próbáltam hogy kitörlöm npc_listből.


----------------------------------------

Kaptam PM-be egy ilyen linket:
http://metin2hungary.net/index.php/topic,156996.msg848861.html#msg848861

Csak a letöltés halott. De legalább ezzel már biztos hogy msm-be is meg lehet csinálni :D
Ha valakinek van ötlete hozzá, vagy akár a forrásoshoz, nagyon megköszönném :)

Mivel mobokról beszélünk, és az előbb vitattuk meg, hogy hozzájuk nem lehet rendelni semmit, így játékost kell belőlük varázsolni előtte.
if (c_rkCreateData.m_dwRace == xy)
{
SetInstanceType(CActorInstance::TYPE_PC);
SetRace(0);
SetArmor(0);
SetHair(0);
SetSash(4);
SetWeapon(19);
}


De én is jobban preferálnám az msm-es megoldást, fel kéne térképezni a forrást, és a megfelelő helyeken kiegészíteni + a fegyverek hozzárendelését is bele kéne írni.
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

Hát pedig amikor én szórakoztam a klón rendszerrel az NPC volt és mégis társítottam hozzá dolgokat.

Akkor talán azzal is működik, úgy nem próbáltam. Csak ebben az esetben, ha NPC-t csinálunk egy mobból, akkor lehet sérthetetlen lesz, meg esélyes, hogy támadni sem fog. Le kéne tesztelni.
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

Ó igen, most jut eszembe, kell 1 kis konverzió :P
Kicsit fáradt vagyok ::) mobról szerver oldalon átkonvertáltam NPC-re és úgy sikerült.
Azt nemtom h elég-e ha csak ott indítóban csinálod meg.

Elégnek elég, csak most jut eszembe, mivel játékos, ezért hogy ő is sérthetetlen lesz.. :-X Mondjuk lehet ellene szabadozni, és rangot sem von le, de így sem a legszebb...
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

2018-07-04, 00:05:03 #10 Utolsó szerkesztés: 2018-07-04, 00:07:48 Szerző: K3zX
[VIP]Rin the Exorcist kiegészítésével működik :)
(5310pati neked másik témában lévő hsz-edbe nyomtam thank-et mert 1 témába kettőt nem enged :D)
Köszi mindkettőtöknek  ;D


2018-07-04, 01:09:49 #12 Utolsó szerkesztés: 2018-07-05, 17:49:59 Szerző: K3zX
Zárom :)