• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

absorb system

Xadio

New Member
Joined
Aug 6, 2019
Messages
5
Reaction score
1
Insufficient Formatting
hi.
i got problem with my absorb system i dont know where put addSkillAdvance(SKILL_FISH, 1);
C++:
if(combatType == COMBAT_FIREDAMAGE && target && target->getPlayer()) 
                { 
                    double absorbPower = 0, damageChange = 0;
                    int32_t skillFish = target->getPlayer()->getSkill(SKILL_FISH, SKILL_LEVEL); 
                    if(skillFish >= 10) 
                    {
                        absorbPower = (std::floor(skillFish)) * 0.2;
                        damageChange = std::ceil((damage * absorbPower) / 100);
                    }                       
                         
                    if((int32_t)damageChange != 0) 
                    { 
                        damage -= (int32_t)damageChange; 
                        char buffer[150]; 
                        sprintf(buffer, "%d hitpoint%s has been absorbed by your resistance.", (int32_t)damageChange, ((int32_t)damageChange == 1 ? "" : "s")); 
         
                        target->getPlayer()->sendTextMessage(MSG_EVENT_DEFAULT, buffer); 
                    } 
                }
 
Last edited:

Read Support board rules before posting a thread and learn how to display a code properly.
 
please close the problem solved
the solution maybe useful to someone
C++:
            if(combatType == COMBAT_ENERGYDAMAGE && target->getPlayer())

            {

                double damageChange = 0;

                int32_t skillFish = target->getPlayer()->getSkill(SKILL_FISH, SKILL_LEVEL);

               

                if(skillFish >= 10)

                    damageChange = std::ceil(skillFish * 0.1 * damage / 100);

 

                if((int32_t)damageChange != 0)

                {

                    damage -= (int32_t)damageChange;

                    char buffer[150];

                    sprintf(buffer, "%d hitpoint%s has been absorbed by your resistance.", (int32_t)damageChange, ((int32_t)damageChange == 1 ? "" : "s"));

 

                    target->getPlayer()->sendTextMessage(MSG_EVENT_DEFAULT, buffer);

                }

               

                target->getPlayer()->addSkillAdvance(SKILL_FISH, 1, true);
           }
 

Similar threads

Back
Top