Ultima modifica da un moderatore:
Cosa sono le armi in MDE?
Sono degli effetti che includendo l'arma associando a quest'ultima una sorta di animazione.
Questo è stato possibile grazie alla realizzazione dell'exporter mde.
I file che riguardano questo tipo di effect sono i seguenti.
nomefile.msm
nomefile.mse
nomefile.gr2
nomefile.mde
nomefile.tga
Cosa serve ancora?
InstanceBase.cpp
InstanceBase.h
Che si trovano nei source del launcher
playersettingmodule.py
Che si trova nella root del client.
Modifica da fare:
nel InstanceBase.h cercare (circa line 266) **
Alla fine dell'enum dovrete modificare così
dove EFFECT_WEAPON_MDE è la nuova voce che abbiam aggiunto.
Cercate:
sotto aggiungete
Cercate:
sotto aggiungete
Ora nel file IstanceBase.cpp
cercate
sotto aggiungete
cercate
sotto questa funzione aggiungete questo
Screen di esempio:
Subito sotto troverete **
sostituite tutta la funzione con questa
Poi ancora sotto
cercate
e modificate la funzione in questo modo
Salvate e compilate il vostro launcher.
Parte client:
Aprite playersettingmodule.py
cercate
sotto aggiungete
Chiudete e ricompilate la root.
Ora cosa fare?
Implementate l'arma come fate sempre:
Scompattate item:
Ricompattate item
Scompattate pc o pc2
Ricompattate pc o pc2
Nota bene:
-Alcuni dei percosi che vi ho messo nella guida sono indicativi.
-Tramite questo processo aggiungiamo la possibilità di utilizzare una sola arma mde; per aggiungerne più di una basta semplicemente aggiungere un altro effetto alla lista (seguendo i punti nella guida **)
Crediti esclusivamente miei.
Non sono stato il primo a realizzare il metodo, l'ho fatto su richiesta per un amico gratuitamente e penso che possa servire in futuro.
Sono degli effetti che includendo l'arma associando a quest'ultima una sorta di animazione.
Questo è stato possibile grazie alla realizzazione dell'exporter mde.
I file che riguardano questo tipo di effect sono i seguenti.
nomefile.msm
nomefile.mse
nomefile.gr2
nomefile.mde
nomefile.tga
Cosa serve ancora?
InstanceBase.cpp
InstanceBase.h
Che si trovano nei source del launcher
playersettingmodule.py
Che si trova nella root del client.
Modifica da fare:
nel InstanceBase.h cercare (circa line 266) **
Alla fine dell'enum dovrete modificare così
dove EFFECT_WEAPON_MDE è la nuova voce che abbiam aggiunto.
Cercate:
PHP:
void __ClearArmorRefineEffect(); (circa line 912)
sotto aggiungete
PHP:
void __ClearMdeRefineEffect();
Cercate:
PHP:
DWORD m_armorRefineEffect; (circa line 981)
sotto aggiungete
PHP:
DWORD MdeRefineEffect;
Ora nel file IstanceBase.cpp
cercate
PHP:
m_armorRefineEffect = 0; (circa line 9112)
PHP:
MdeRefineEffect = 0;
cercate
PHP:
void CInstanceBase::__ClearArmorRefineEffect() (circa line 2677)
sotto questa funzione aggiungete questo
PHP:
void CInstanceBase::__ClearMdeRefineEffect()
{
if (MdeRefineEffect)
{
__DetachEffect(MdeRefineEffect);
MdeRefineEffect = 0;
}
}
Screen di esempio:
Subito sotto troverete **
PHP:
__GetRefinedEffect(CItemData* pItem)
sostituite tutta la funzione con questa
PHP:
UINT CInstanceBase::__GetRefinedEffect(CItemData* pItem)
{
DWORD refine = max(pItem->GetRefine() + pItem->GetSocketCount(),CItemData::ITEM_SOCKET_MAX_NUM) - CItemData::ITEM_SOCKET_MAX_NUM;
switch (pItem->GetType())
{
case CItemData::ITEM_TYPE_WEAPON:
__ClearWeaponRefineEffect();
__ClearMdeRefineEffect();
if (refine < 7) //ÇöÀç Á¦·Ãµµ 7 ÀÌ»ó¸¸ ÀÌÆåÆ®°¡ ÀÖ½À´Ï´Ù.
return 0;
switch(pItem->GetSubType())
{
case CItemData::WEAPON_DAGGER:
m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_SMALLSWORD_REFINED7+refine-7;
m_swordRefineEffectLeft = EFFECT_REFINED+EFFECT_SMALLSWORD_REFINED7_LEFT+refine-7;
break;
case CItemData::WEAPON_FAN:
m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_FANBELL_REFINED7+refine-7;
break;
case CItemData::WEAPON_ARROW:
case CItemData::WEAPON_BELL:
m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_SMALLSWORD_REFINED7+refine-7;
break;
case CItemData::WEAPON_BOW:
m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_BOW_REFINED7+refine-7;
break;
case CItemData::WEAPON_SWORD:
{
//__ClearMdeRefineEffect();
DWORD vnum = pItem->GetIndex();
if (290 <= vnum && vnum <= 299)
{
MdeRefineEffect = __AttachEffect(EFFECT_REFINED+EFFECT_WEAPON_MDE);
}
break;
}
default:
m_swordRefineEffectRight = EFFECT_REFINED+EFFECT_SWORD_REFINED7+refine-7;
}
if (m_swordRefineEffectRight)
m_swordRefineEffectRight = __AttachEffect(m_swordRefineEffectRight);
if (m_swordRefineEffectLeft)
m_swordRefineEffectLeft = __AttachEffect(m_swordRefineEffectLeft);
break;
case CItemData::ITEM_TYPE_ARMOR:
__ClearArmorRefineEffect();
// °©¿Ê Æ¯È ÀÌÆåÆ®
if (pItem->GetSubType() == CItemData::ARMOR_BODY)
{
DWORD vnum = pItem->GetIndex();
if (12010 <= vnum && vnum <= 12049)
{
__AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL);
__AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL2);
}
}
if (refine < 7) //ÇöÀç Á¦·Ãµµ 7 ÀÌ»ó¸¸ ÀÌÆåÆ®°¡ ÀÖ½À´Ï´Ù.
return 0;
if (pItem->GetSubType() == CItemData::ARMOR_BODY)
{
m_armorRefineEffect = EFFECT_REFINED+EFFECT_BODYARMOR_REFINED7+refine-7;
__AttachEffect(m_armorRefineEffect);
}
break;
}
return 0;
}
Poi ancora sotto
cercate
PHP:
SetWeapon(DWORD eWeapon)
e modificate la funzione in questo modo
Salvate e compilate il vostro launcher.
Parte client:
Aprite playersettingmodule.py
cercate
Codice:
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+19, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-4-2-1.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+20, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-4-2-2.mse")
Codice:
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+21, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/campana.mse")
Chiudete e ricompilate la root.
Ora cosa fare?
Implementate l'arma come fate sempre:
Scompattate item:
Codice:
Il nomefile.gr2 -->> \item\ymir work\item\weapon\
Il nomefile.msm -->> \item\ymir work\item\
Scompattate pc o pc2
Codice:
Il nomefile.MDE -->> \PC\ymir work\pc\common\effect\sword\
Il nomefile.mse -->> \PC\ymir work\pc\common\effect\sword\
Il nomefile.tga -->> \PC\ymir work\pc\common\effect\sword\
Nota bene:
-Alcuni dei percosi che vi ho messo nella guida sono indicativi.
-Tramite questo processo aggiungiamo la possibilità di utilizzare una sola arma mde; per aggiungerne più di una basta semplicemente aggiungere un altro effetto alla lista (seguendo i punti nella guida **)
Crediti esclusivamente miei.
Non sono stato il primo a realizzare il metodo, l'ho fatto su richiesta per un amico gratuitamente e penso che possa servire in futuro.