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.