Atunci cand mori, buff-urile de la Shaman nu vor mai disparea.
Acestea vor ramane in continuare pe tine, pana cand le dezactivezi tu sau expira timpul.
*Poze / Video:
*Link download / Code:
#define KEEP_BUFFS_PVM_AFTER_DIE
void __ClearAffects();
#ifdef KEEP_BUFFS_PVM_AFTER_DIE
void __HideAffectEffects();
void __RestoreAffectEffects();
#endif
void CInstanceBase::Revive()
{
m_isGoing=FALSE;
m_GraphicThingInstance.Revive();
__AttachHorseSaddle();
#ifdef KEEP_BUFFS_PVM_AFTER_DIE
__RestoreAffectEffects();
#endif
////////////////////////////////////////
__ClearAffects();
////////////////////////////////////////
#ifdef KEEP_BUFFS_PVM_AFTER_DIE
__HideAffectEffects();
#else
////////////////////////////////////////
__ClearAffects();
////////////////////////////////////////
#endif
void CInstanceBase::__SetNormalAffectFlagContainer(const CAffectFlagContainer& c_rkAffectFlagContainer)
#ifdef KEEP_BUFFS_PVM_AFTER_DIE
void CInstanceBase::__HideAffectEffects()
{
if (IsStone())
return;
for (int i = 0; i < CAffectFlagContainer::BIT_SIZE; ++i)
{
if (m_kAffectFlagContainer.IsSet(i))
__SetAffect(i, false);
}
}
void CInstanceBase::__RestoreAffectEffects()
{
if (IsStone())
return;
for (int i = 0; i < CAffectFlagContainer::BIT_SIZE; ++i)
{
if (m_kAffectFlagContainer.IsSet(i))
__SetAffect(i, true);
}
}
#endif
#define KEEP_BUFFS_PVM_AFTER_DIE
void ClearAffect(bool bSave = false);
#ifdef KEEP_BUFFS_PVM_AFTER_DIE
void ClearAffect(bool bSave = false, bool letBuffs = false);
#else
void ClearAffect(bool bSave = false);
#endif
bool IsGoodAffect(BYTE bAffectType) const;#ifdef KEEP_BUFFS_PVM_AFTER_DIE
bool IsKeepBuffAfterDieAffect(BYTE bAffectType) const;
#endifvoid CHARACTER::ClearAffect(bool bSave)#ifdef KEEP_BUFFS_PVM_AFTER_DIE
void CHARACTER::ClearAffect(bool bSave, bool letBuffs)
#else
void CHARACTER::ClearAffect(bool bSave)
#endif if (bSave)
{
if ( IS_NO_CLEAR_ON_DEATH_AFFECT(pkAff->dwType) || IS_NO_SAVE_AFFECT(pkAff->dwType) )
{
++it;
continue;
}
#ifdef KEEP_BUFFS_PVM_AFTER_DIE
if (letBuffs && IsKeepBuffAfterDieAffect(pkAff->dwType))
{
++it;
continue;
}
#endif
void CHARACTER::RemoveGoodAffect()
{
[...]
}
#ifdef KEEP_BUFFS_PVM_AFTER_DIE
bool CHARACTER::IsKeepBuffAfterDieAffect(BYTE bAffectType) const
{
switch (bAffectType)
{
case SKILL_HOSIN:
case SKILL_REFLECT:
case SKILL_GICHEON:
case SKILL_KWAESOK:
case SKILL_JEUNGRYEOK:
return true;
}
return false;
}
#endif
SetPosition(POS_DEAD);
ClearAffect(true);
SetPosition(POS_DEAD);
#ifdef KEEP_BUFFS_PVM_AFTER_DIE
if (IsPC())
ClearAffect(true, true);
else
ClearAffect(true);
#else
ClearAffect(true);
#endif
if (GetDesc() != NULL) {
itertype(m_list_pkAffect) it = m_list_pkAffect.begin();
while (it != m_list_pkAffect.end()) {
CAffect* pkAff = *it++;
#ifdef KEEP_BUFFS_PVM_AFTER_DIE
if (IsKeepBuffAfterDieAffect(pkAff->dwType))
continue;
#endif
if (GetDesc() != NULL) {
itertype(m_list_pkAffect) it = m_list_pkAffect.begin();
while (it != m_list_pkAffect.end()) {
CAffect* pkAff = *it++;
#ifdef KEEP_BUFFS_PVM_AFTER_DIE
if (IsKeepBuffAfterDieAffect(pkAff->dwType))
continue;
#endif
SendAffectAddPacket(GetDesc(), pkAff);
}
}
Trebuie să fii membru pentru a răspunde
Membrii pot crea subiecte noi și pot descărca resurse Metin2 Gratuit!
Te poți înregistra sau conecta rapid utilizând contul tău de Discord, Github sau Google.
Utilizatori ce navighează pe acest forum: Andreas Verucher, Hound, Zendaya și 4 vizitatori