Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool Combat::CombatHealthFunc(Creature* caster, Creature* target, const CombatParams& params, void* data)
- {
- if(!caster->getPlayer() && !caster->isPlayerSummon() && !target->getPlayer() && !target->isPlayerSummon() && caster != target)
- {
- g_game.addMagicEffect(target->getPosition(), MAGIC_EFFECT_POFF);
- return false;
- }
- int32_t change = 0;
- if(Combat2Var* var = (Combat2Var*)data)
- {
- change = var->change;
- if(!change)
- change = random_range(var->minChange, var->maxChange, DISTRO_NORMAL);
- }
- if(g_game.combatBlockHit(params.combatType, caster, target, change, params.blockedByShield, params.blockedByArmor, params.itemId != 0))
- return false;
- CombatParams _params = params;
- if(_params.element.damage && _params.element.type != COMBAT_NONE)
- g_game.combatBlockHit(_params.element.type, caster, target, _params.element.damage, params.blockedByShield, params.blockedByArmor, params.itemId != 0, true);
- if(caster && caster->getPlayer() && target->getPlayer() && target->getSkull() != SKULL_BLACK)
- {
- _params.element.damage *= 2;
- if(change < 0)
- change *= 2;
- }
- if(!g_game.combatChangeHealth(_params, caster, target, change, false))
- return false;
- CombatConditionFunc(caster, target, params, NULL);
- CombatDispelFunc(caster, target, params, NULL);
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment