//service.h #define ENABLE_NOT_BUFF_CLEAR // char.h -> Arat void ClearAffect(bool bSave=false); //Altına ekle #ifdef ENABLE_NOT_BUFF_CLEAR void ClearAffect_New(bool bSave=false); #endif //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 // 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