Merge pull request #117 from MindRapist/mr-16

Enable tooltip and countdown for all affects
This commit is contained in:
rtw1x1
2026-02-18 20:07:22 +00:00
committed by GitHub
3 changed files with 11 additions and 2 deletions

View File

@@ -16,7 +16,8 @@ This repository contains the source code necessary to compile the game client ex
## 📋 Changelog
### 🐛 Bug fixes
- **Fog update**: Adjusted fog settings to work with the updated official version using the 3 classic options.
- **Affect tooltips**: ALL affects now display realtime countdowns, titles and are wrapped in tooltips! Realtime countdowns does not apply to infinite affects such as the Exorcism Scroll, the Concentrated Reading and the Medal of the Dragon (Death penalty prevention)
- **AFFECT_FIRE**: The Continuous Fire debuff has been added to the affects dictionary by name.
<br>
<br>

View File

@@ -1461,6 +1461,9 @@ void initchr()
PyModule_AddIntConstant(poModule, "AFFECT_KWAESOK", CInstanceBase::AFFECT_KWAESOK);
PyModule_AddIntConstant(poModule, "AFFECT_HEUKSIN", CInstanceBase::AFFECT_HEUKSIN);
PyModule_AddIntConstant(poModule, "AFFECT_MUYEONG", CInstanceBase::AFFECT_MUYEONG);
// MR-16: Added missing AFFECT_FIRE to Affects Shower
PyModule_AddIntConstant(poModule, "AFFECT_FIRE", CInstanceBase::AFFECT_FIRE);
// MR-16: -- END OF -- Added missing AFFECT_FIRE to Affects Shower
PyModule_AddIntConstant(poModule, "AFFECT_GICHEON", CInstanceBase::AFFECT_GICHEON);
PyModule_AddIntConstant(poModule, "AFFECT_JEUNGRYEOK", CInstanceBase::AFFECT_JEUNGRYEOK);
PyModule_AddIntConstant(poModule, "AFFECT_PABEOP", CInstanceBase::AFFECT_PABEOP);

View File

@@ -4031,16 +4031,21 @@ bool CPythonNetworkStream::SendClientVersionPacket()
bool CPythonNetworkStream::RecvAffectAddPacket()
{
TPacketGCAffectAdd kAffectAdd;
if (!Recv(sizeof(kAffectAdd), &kAffectAdd))
return false;
TPacketAffectElement & rkElement = kAffectAdd.elem;
if (rkElement.bPointIdxApplyOn == POINT_ENERGY)
{
CPythonPlayer::instance().SetStatus (POINT_ENERGY_END_TIME, CPythonApplication::Instance().GetServerTimeStamp() + rkElement.lDuration);
__RefreshStatus();
}
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_NEW_AddAffect", Py_BuildValue("(iiii)", rkElement.dwType, rkElement.bPointIdxApplyOn, rkElement.lApplyValue, rkElement.lDuration));
// MR-16: Classic affect duration countdown
PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_NEW_AddAffect", Py_BuildValue("(iiiii)", rkElement.dwType, rkElement.bPointIdxApplyOn, rkElement.lApplyValue, rkElement.lDuration, rkElement.dwFlag));
// MR-16: -- END OF -- Classic affect duration countdown
return true;
}