- Service.h
- ekle
- #define ENABLE_BUFF_DEAD_MONSTER_NOT_CLEAR
- char.h
- arat:
- void ClearAffect(bool bSave=false);
- altına ekle
- #ifdef ENABLE_BUFF_DEAD_MONSTER_NOT_CLEAR
- void ClearAffect_New2(bool bSave=false);
- #endif
- char_affect.cpp
- arat
- int CHARACTER::ProcessAffect()
- üstüne ekle
- #ifdef ENABLE_BUFF_DEAD_MONSTER_NOT_CLEAR
- void CHARACTER::ClearAffect_New2(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)
- {
- if ((pkAff->dwType == 610) || (pkAff->dwType == 611) || (pkAff->dwType == 612) ||
- (pkAff->dwType == 96) || (pkAff->dwType == 95) || (pkAff->dwType == 94) ||
- (pkAff->dwType == 111) || (pkAff->dwType == 110) || (pkAff->dwType == 233) ||
- (pkAff->dwType == 613) || (pkAff->dwType == 614)
- )
- {
- ++it;
- continue;
- }
- //
- // int pkAff_blend[] = {AFFECT_POTION_1, AFFECT_POTION_2, AFFECT_POTION_3, AFFECT_POTION_4, AFFECT_POTION_5, AFFECT_POTION_6, AFFECT_POTION_7, AFFECT_POTION_8, AFFECT_POTION_9, AFFECT_POTION_10, AFFECT_POTION_11, AFFECT_POTION_12, AFFECT_POTION_13};
- // if ((pkAff->dwType == pkAff_blend[0]) || (pkAff->dwType == pkAff_blend[1]) || (pkAff->dwType == pkAff_blend[2]) ||
- // (pkAff->dwType == pkAff_blend[3]) || (pkAff->dwType == pkAff_blend[4]) || (pkAff->dwType == pkAff_blend[5]))
- // {
- // ++it;
- // continue;
- // }
- //
- 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
- char_battle.cpp
- arat
- ClearAffect(true);
- değiştir
- #ifdef ENABLE_BUFF_DEAD_MONSTER_NOT_CLEAR
- if (!pkKiller && IsPC())
- ClearAffect_New2(true);
- else
- ClearAffect(true);
- #endif