- Mesaj
- 698
- Çözümler
- 56
- Beğeni
- 741
- Puan
- 949
- Ticaret Puanı
- 0
Öncelikle selamın aleyküm.
X forumda paylaşıldı alıntı olduğunu belirtmek istiyorum.
Lakin sistemde sadece [ 72705 ve 72706] kodlu itemlerde aktifti.
Ben 72703 ve 72704 adlı itemlerede efekt ekledim ve anlatımı yapmak istiyorum.
Var olan efektler;
Yeni eklenen efektler;
Başlıyalım..
Client src içerisinde Locale_inc.h açılır ve eklenir.
Ardından InstanceBase.h açılır ve aratılır.
Üstüne eklenir;
PythonApplicationModule.cpp açılır ve aratılır.
Altına eklenir;
PythonCharacterModule.cpp açılır ve aratılır.
Altına eklenir;
Client ile işimiz bitti.
Game srcye geçelim.
Service.h açılır ve eklenir.
Affect.h açılır ve aratılır.
Üstüne eklenir;
Aratılır;
Üstüne eklenir;
Char_affect.cpp açılır ve aratılır.
Altına eklenir;
Char_item.cpp açılır ve aratılır.
Altına eklenir;
Aratılır;
Altına eklenir;
İtem.cpp açılır ve aratılır.
Üstüne eklenir;
Aratılır.
Üstüne eklenir;
Unique_item.h açılır ve aratılır.
Altına eklenir;
Game src ile işimiz bitti.
playerSettingsModule.py açılır ve aratılır.
Üstüne eklenir;
Bu eix epkyi indirip pack içine atın.
Ardından indexe ekleyin.
*
kemik_efekt
*
##################################################################################################
Dipnot; Öncelikle burda dikkat etmeniz gereken yer InstanceBase.h dosyasıdır.
Gifte görüldüğü gibi örnek vermem gerekirse;
AFFECT_DBONE1 üstüne geldiğimde 42 yazmaktadır.
Diğerleride sırasıyla gitmektedir. Sizde nasıl gidiyorsa rakamlar ona göre
Playersettingsmodule.py'de editlemeniz gerekir. Umarım anlamışsınızdır
X forumda paylaşıldı alıntı olduğunu belirtmek istiyorum.
Lakin sistemde sadece [ 72705 ve 72706] kodlu itemlerde aktifti.
Ben 72703 ve 72704 adlı itemlerede efekt ekledim ve anlatımı yapmak istiyorum.
Var olan efektler;
Yeni eklenen efektler;
Başlıyalım..
Client src içerisinde Locale_inc.h açılır ve eklenir.
C++:
#define DBONE_EFFECTS // Kemik efekt sistemi
Ardından InstanceBase.h açılır ve aratılır.
C++:
AFFECT_NUM = 64,
Üstüne eklenir;
C++:
#if defined DBONE_EFFECTS
AFFECT_DBONE1,//xx
AFFECT_DBONE2,//xx
AFFECT_DBONE3,//xx
AFFECT_DBONE4,//xx
#endif
PythonApplicationModule.cpp açılır ve aratılır.
C++:
#ifdef ENABLE_ENERGY_SYSTEM
PyModule_AddIntConstant(poModule, "ENABLE_ENERGY_SYSTEM", 1);
#else
PyModule_AddIntConstant(poModule, "ENABLE_ENERGY_SYSTEM", 0);
#endif
Altına eklenir;
C++:
#if defined DBONE_EFFECTS
PyModule_AddIntConstant(poModule, "DBONE_EFFECTS", 1);
#else
PyModule_AddIntConstant(poModule, "DBONE_EFFECTS", 0);
#endif
PythonCharacterModule.cpp açılır ve aratılır.
C++:
PyModule_AddIntConstant(poModule, "NEW_AFFECT_DRAGON_SOUL_DECK2", CInstanceBase::NEW_AFFECT_DRAGON_SOUL_DECK2);
Altına eklenir;
C++:
#if defined DBONE_EFFECTS
PyModule_AddIntConstant(poModule, "AFFECT_DBONE1", CInstanceBase::AFFECT_DBONE1);
PyModule_AddIntConstant(poModule, "AFFECT_DBONE2", CInstanceBase::AFFECT_DBONE2);
PyModule_AddIntConstant(poModule, "AFFECT_DBONE3", CInstanceBase::AFFECT_DBONE3);
PyModule_AddIntConstant(poModule, "AFFECT_DBONE4", CInstanceBase::AFFECT_DBONE4);
#endif
Client ile işimiz bitti.
Game srcye geçelim.
Service.h açılır ve eklenir.
C++:
#define DBONE_EFFECTS // Kemik efekt sistemi
Affect.h açılır ve aratılır.
C++:
AFFECT_QUEST_START_IDX = 1000
Üstüne eklenir;
C++:
#if defined DBONE_EFFECTS
AFFECT_DBONE_1=703,
AFFECT_DBONE_2=704,
AFFECT_DBONE_3=705,
AFFECT_DBONE_4=706,
#endif
Aratılır;
C++:
AFF_BITS_MAX
Üstüne eklenir;
C++:
#if defined DBONE_EFFECTS
AFF_DBONE1,
AFF_DBONE2,
AFF_DBONE3,
AFF_DBONE4,
#endif
Char_affect.cpp açılır ve aratılır.
C++:
if ( IS_NO_CLEAR_ON_DEATH_AFFECT(pkAff->dwType) || IS_NO_SAVE_AFFECT(pkAff->dwType) )
{
++it;
continue;
}
Altına eklenir;
C++:
#if defined DBONE_EFFECTS
if(pkAff->dwType==AFFECT_DBONE_1 || pkAff->dwType==AFFECT_DBONE_2 || pkAff->dwType==AFFECT_DBONE_3 || pkAff->dwType==AFFECT_DBONE_4){/**/++it;/**/continue;}
#endif
Char_item.cpp açılır ve aratılır.
C++:
if (item->GetVnum() == UNIQUE_ITEM_HIDE_ALIGNMENT_TITLE)
ShowAlignment(false);
Altına eklenir;
C++:
#if defined DBONE_EFFECTS
if (item->GetVnum() == DBONE_VNUM_1){
if (!IsAffectFlag(AFFECT_DBONE_2))
AddAffect(AFFECT_DBONE_1, POINT_NONE, 0,AFF_DBONE1, INFINITE_AFFECT_DURATION, 0, false);
}
if (item->GetVnum() == DBONE_VNUM_2){
if (!IsAffectFlag(AFFECT_DBONE_2))
AddAffect(AFFECT_DBONE_2, POINT_NONE, 0,AFF_DBONE2, INFINITE_AFFECT_DURATION, 0, false);
}
if (item->GetVnum() == DBONE_VNUM_3){
if (!IsAffectFlag(AFFECT_DBONE_2))
AddAffect(AFFECT_DBONE_3, POINT_NONE, 0,AFF_DBONE3, INFINITE_AFFECT_DURATION, 0, false);
}
if (item->GetVnum() == DBONE_VNUM_4){
if (!IsAffectFlag(AFFECT_DBONE_2))
AddAffect(AFFECT_DBONE_4, POINT_NONE, 0,AFF_DBONE4, INFINITE_AFFECT_DURATION, 0, false);
}
#endif
Aratılır;
C++:
if (item->GetVnum() == UNIQUE_ITEM_HIDE_ALIGNMENT_TITLE)
ShowAlignment(true);
Altına eklenir;
C++:
#if defined DBONE_EFFECTS
if (item->GetVnum() == DBONE_VNUM_1){RemoveAffect(AFFECT_DBONE_1);}
if (item->GetVnum() == DBONE_VNUM_2){RemoveAffect(AFFECT_DBONE_2);}
if (item->GetVnum() == DBONE_VNUM_3){RemoveAffect(AFFECT_DBONE_3);}
if (item->GetVnum() == DBONE_VNUM_4){RemoveAffect(AFFECT_DBONE_4);}
#endif
İtem.cpp açılır ve aratılır.
C++:
sys_log(0, "UNIQUE_ITEM: expire %s %u", pkItem->GetName(), pkItem->GetID());
pkItem->SetUniqueExpireEvent(NULL);
ITEM_MANAGER::instance().RemoveItem(pkItem, "UNIQUE_EXPIRE");
return 0;
Üstüne eklenir;
C++:
#if defined DBONE_EFFECTS
if (pkItem->GetVnum() == DBONE_VNUM_1){
//if(pkItem->GetOwner()->IsAffectFlag(AFFECT_DBONE_1))
pkItem->GetOwner()->RemoveAffect(AFFECT_DBONE_1);
}
if (pkItem->GetVnum() == DBONE_VNUM_2){
//if(pkItem->GetOwner()->IsAffectFlag(AFFECT_DBONE_2))
pkItem->GetOwner()->RemoveAffect(AFFECT_DBONE_2);
}
if (pkItem->GetVnum() == DBONE_VNUM_3){
//if(pkItem->GetOwner()->IsAffectFlag(AFFECT_DBONE_2))
pkItem->GetOwner()->RemoveAffect(AFFECT_DBONE_3);
}
if (pkItem->GetVnum() == DBONE_VNUM_4){
//if(pkItem->GetOwner()->IsAffectFlag(AFFECT_DBONE_2))
pkItem->GetOwner()->RemoveAffect(AFFECT_DBONE_4);
}
#endif
Aratılır.
C++:
pkItem->SetUniqueExpireEvent(NULL);
ITEM_MANAGER::instance().RemoveItem(pkItem, "UNIQUE_EXPIRE");
return 0;
Üstüne eklenir;
C++:
#if defined DBONE_EFFECTS
if (pkItem->GetVnum() == DBONE_VNUM_1){
//if(pkItem->GetOwner()->IsAffectFlag(AFFECT_DBONE_1))
pkItem->GetOwner()->RemoveAffect(AFFECT_DBONE_1);
}
if (pkItem->GetVnum() == DBONE_VNUM_2){
//if(pkItem->GetOwner()->IsAffectFlag(AFFECT_DBONE_2))
pkItem->GetOwner()->RemoveAffect(AFFECT_DBONE_2);
}
if (pkItem->GetVnum() == DBONE_VNUM_3){
//if(pkItem->GetOwner()->IsAffectFlag(AFFECT_DBONE_1))
pkItem->GetOwner()->RemoveAffect(AFFECT_DBONE_3);
}
if (pkItem->GetVnum() == DBONE_VNUM_4){
//if(pkItem->GetOwner()->IsAffectFlag(AFFECT_DBONE_2))
pkItem->GetOwner()->RemoveAffect(AFFECT_DBONE_4);
}
#endif
Unique_item.h açılır ve aratılır.
C++:
DRAGON_HEART_VNUM = 100000,
Altına eklenir;
C++:
#if defined DBONE_EFFECTS
DBONE_VNUM_1=72705,
DBONE_VNUM_2=72706,
DBONE_VNUM_3=72703,
DBONE_VNUM_4=72704,
#endif
Game src ile işimiz bitti.
playerSettingsModule.py açılır ve aratılır.
Python:
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+1, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_7.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+2, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_8.mse")
chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+3, "PART_WEAPON", "D:/ymir work/pc/common/effect/sword/sword_9.mse")
Üstüne eklenir;
Python:
if app.DBONE_EFFECTS:
chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+42, 'Bip01 R Hand', 'd:/ymir work/effect/etc/buff/dragonbone.mse')
chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+43, 'Bip01 L Hand', 'd:/ymir work/effect/etc/buff/dragonbone2.mse')
chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+44, 'Bip01 R Hand', 'd:/ymir work/effect/etc/buff/dragonbone3.mse')
chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+45, 'Bip01 L Hand', 'd:/ymir work/effect/etc/buff/dragonbone4.mse')
Bu eix epkyi indirip pack içine atın.
Linkleri görebilmek için
giriş yap veya kayıt ol.
Ardından indexe ekleyin.
*
kemik_efekt
*
##################################################################################################
Dipnot; Öncelikle burda dikkat etmeniz gereken yer InstanceBase.h dosyasıdır.
Gifte görüldüğü gibi örnek vermem gerekirse;
AFFECT_DBONE1 üstüne geldiğimde 42 yazmaktadır.
Diğerleride sırasıyla gitmektedir. Sizde nasıl gidiyorsa rakamlar ona göre
Playersettingsmodule.py'de editlemeniz gerekir. Umarım anlamışsınızdır
Python:
chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+42, 'Bip01 R Hand', 'd:/ymir work/effect/etc/buff/dragonbone.mse')