I get error on this code:
ERROR:
Thanks for the help!
Code:
void Player::drainHealth(Creature* attacker, CombatType_t combatType, int32_t damage)
{
Creature::drainHealth(attacker, combatType, damage);
sendStats();
char buffer[150];
//HEAL WHEN HITTED
int32_t rnd = random_range(0, 100);
if(rnd <= getHitreghpchance())
{
int32_t heal = getPlayerInfo(PLAYERINFO_HEALTH) + getHitreghp();
if(heal > getPlayerInfo(PLAYERINFO_MAXHEALTH))
{
heal = getPlayerInfo(PLAYERINFO_MAXHEALTH);
}
int32_t healamount = getPlayerInfo(PLAYERINFO_MAXHEALTH) - heal;
if(healamount > 0)
{
//g_game.addMagicEffect(player->getPosition(), NM_ME_HOLYDAMAGE);
//player->sendTextMessage(MSG_STATUS_SMALL, "Healed: " << healamount);
changeHealth(heal);
}
}
//HEAL ON ATTACK
rnd = random_range(0, 100);
const Player* targetPlayer = dynamic_cast<const Player*>(attacker);
if(targetPlayer)
if(rnd <= targetPlayer->getHitreghpchance())
{
int32_t heal = targetPlayer->getPlayerInfo(PLAYERINFO_HEALTH) + targetPlayer->getHitreghp();
if(heal > targetPlayer->getPlayerInfo(PLAYERINFO_MAXHEALTH))
{
heal = targetPlayer->getPlayerInfo(PLAYERINFO_MAXHEALTH);
}
int32_t healamount = targetPlayer->getPlayerInfo(PLAYERINFO_MAXHEALTH) - heal;
if(healamount > 0)
{
//g_game.addMagicEffect(attacker->getPosition(), NM_ME_HOLYDAMAGE);
//attacker->sendTextMessage(MSG_STATUS_SMALL, "Healed: " << healamount);
>>>>>ERROR>>>>>>>>>>>>>> targetPlayer->changeHealth(heal);
}
}
if(attacker)
sprintf(buffer, "You lose %d hitpoint%s due to an attack by %s.", damage, (damage != 1 ? "s" : ""), attacker->getNameDescription().c_str());
else
sprintf(buffer, "You lose %d hitpoint%s.", damage, (damage != 1 ? "s" : ""));
sendTextMessage(MSG_EVENT_DEFAULT, buffer);
}
ERROR:
Code:
C:\Users\Christer\Documents\Server\Sources 3.5\Sources 3.0\Sources 3.0\player.cpp In member function `virtual void Player::drainHealth(Creature*, CombatType_t, int32_t)':
1959 C:\Users\Christer\Documents\Server\Sources 3.5\Sources 3.0\Sources 3.0\player.cpp passing `const Player' as `this' argument of `virtual void Player::changeHealth(int32_t)' discards qualifiers
1959 C:\Users\Christer\Documents\Server\Sources 3.5\Sources 3.0\Sources 3.0\player.cpp *** [../player.o] Error 1
Thanks for the help!