- 29 Mar 2020
- 24
- 25
- Çevrimiçi zamanı
- 3h 43m
- 3
- Best answers
- 0

C:
//service.h
#define ENABLE_NOT_BUFF_CLEAR
[CODE=C]
// char.h -> Arat
void ClearAffect(bool bSave=false);
//Altına ekle
#ifdef ENABLE_NOT_BUFF_CLEAR
void ClearAffect_New(bool bSave=false);
#endif
C:
//char_battle.cpp -> //Arat
SetPosition(POS_DEAD);
ClearAffect(true);
//Değiştir
SetPosition(POS_DEAD);
#ifdef ENABLE_NOT_BUFF_CLEAR
if (!pkKiller && IsPC())
ClearAffect_New(true);
else
ClearAffect(true);
#endif
C:
// char_affect.cpp -> Arat
void CHARACTER::ClearAffect(bool bSave)
// Kod bloğunun altına ekle
#ifdef ENABLE_NOT_BUFF_CLEAR
void CHARACTER::ClearAffect_New(bool bSave)
{
TAffectFlag afOld = m_afAffectFlag;
WORD wMovSpd = GetPoint(POINT_MOV_SPEED);
WORD wAttSpd = GetPoint(POINT_ATT_SPEED);
itertype(m_list_pkAffect) it = m_list_pkAffect.begin();
while (it != m_list_pkAffect.end())
{
CAffect * pkAff = *it;
if (bSave)
{
int new_aff[] = {AFFECT_18385, AFFECT_18386, AFFECT_18387, AFFECT_18388, AFFECT_18389, AFFECT_18390, AFFECT_ATT_SPEED, AFFECT_MOV_SPEED};
if ((pkAff->dwType == new_aff[0]) || (pkAff->dwType == new_aff[1]) || (pkAff->dwType == new_aff[2]) ||
(pkAff->dwType == new_aff[3]) || (pkAff->dwType == new_aff[4]) || (pkAff->dwType == new_aff[5]) ||
(pkAff->dwType == new_aff[6]) ||
(pkAff->dwType == new_aff[7]))
{
++it;
continue;
}
if (IS_NO_CLEAR_ON_DEATH_AFFECT(pkAff->dwType) || IS_NO_SAVE_AFFECT(pkAff->dwType) )
{
++it;
continue;
}
if (IsPC())
{
SendAffectRemovePacket(GetDesc(), GetPlayerID(), pkAff->dwType, pkAff->bApplyOn);
}
}
ComputeAffect(pkAff, false);
it = m_list_pkAffect.erase(it);
CAffect::Release(pkAff);
}
if (afOld != m_afAffectFlag ||
wMovSpd != GetPoint(POINT_MOV_SPEED) ||
wAttSpd != GetPoint(POINT_ATT_SPEED))
UpdatePacket();
CheckMaximumPoints();
if (m_list_pkAffect.empty())
event_cancel(&m_pkAffectEvent);
}
#endif