I'd do it this way.
Code:
#ifdef __MONSTER_STAT_PUSH
if( m_pAttacker->IsPlayer() && !m_pDefender->IsPlayer() )
{
MoverProp* pMoverProp = m_pDefender->GetProp();
if( pMoverProp )
{
int nAddStat = 0;
int nAddAtkMin = 0;
int nAddAtkMax = 0;
float nAddMaxHP = 1.0f; // Has to be 1.0f
if( m_pAttacker->GetLevel() >= 150 )
{
nAddStat = 10;
nAddAtkMin = 100;
nAddAtkMax = 100;
nAddMaxHP = 2.5f; // 250%
}
else if( m_pAttacker->GetLevel() >= 140 )
{
nAddStat = 8;
nAddAtkMin = 80;
nAddAtkMax = 80;
nAddMaxHP = 2.0f; // 200%
}
//....
pMoverProp->dwStr += nAddStat;
pMoverProp->dwSta += nAddStat;
pMoverProp->dwDex += nAddStat;
pMoverProp->dwInt += nAddStat;
pMoverProp->dwAtkMax += nAddAtkMax;
pMoverProp->dwAtkMin += nAddAtkMin;
pMoverProp->dwAddHp *= nAddMaxHP;
}
}
#endif // __MONSTER_STAT_PUSH
and you'd have a logicial error in the if/else statements for missing { and }.
And you shouldn't use an integer for changing the HP max value. Float values would be better and it is more comfortable.