03-21-2025, 01:29 AM
On 3/19/2025 at 11:22 PM, azpirin44 said:
void CTargetInfoUI::UpdateHPInfo()
{
if (m_pImg[eIMG_HP] == NULL)
return;
if (m_bShowHpBar == FALSE)
{
m_pImg[eIMG_HP]->Hide(TRUE);
return;
}
//add 19/03/2025
CTString strHp;
float fHealth, fHealthMax = 0;
//fin add 19/03/2025
// HP
FLOAT fHPRatio = 0;
ObjInfo* pInfo = ObjInfo::getSingleton();
if ( pInfo->GetTargetEntity(eTARGET) != NULL &&
pInfo->GetTargetServerIdx(eTARGET) == _pNetwork->MyCharacterInfo.index)
{
fHPRatio = (float)_pNetwork->MyCharacterInfo.hp / (float)_pNetwork->MyCharacterInfo.maxHP;
}
else
{
fHPRatio = pInfo->GetTargetCurHP(eTARGET) / pInfo->GetTargetMaxHP(eTARGET);
//add 19/03/2025
fHealth = pInfo->GetTargetCurHP(eTARGET);
fHealthMax = pInfo->GetTargetMaxHP(eTARGET);
//fin add 19/03/2025
}
if (fHPRatio > 1.0f)
fHPRatio = 1.0f;
else if (fHPRatio < 0.0f)
fHPRatio = 0.0f;
//hp texto para los monstruos
//add 19/03/2025
strHp.PrintF("%d/%d", (int)fHealth, (int)fHealthMax);
m_pText[eTEXT_HP]->SetText(strHp);
//add 19/03/2025
m_pImg[eIMG_HP]->SetWidth( (m_nAddWidthGap + m_nHpBarWidth) * fHPRatio);
m_pImg[eIMG_HP]->Hide(FALSE);
}
I tried a similar approach, but this one does not update while sitting as I said.
For sitting or other stuff, to update current value of health and mex health a message exchange is required... (maybe)

