Guest User

Untitled

a guest
Jan 13th, 2018
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.30 KB | None | 0 0
  1. bool Combat::CombatHealthFunc(Creature* caster, Creature* target, const CombatParams& params, void* data)
  2. {
  3.     if(!caster->getPlayer() && !caster->isPlayerSummon() && !target->getPlayer() && !target->isPlayerSummon() && caster != target)
  4.     {
  5.         g_game.addMagicEffect(target->getPosition(), MAGIC_EFFECT_POFF);
  6.         return false;
  7.     }
  8.  
  9.     int32_t change = 0;
  10.     if(Combat2Var* var = (Combat2Var*)data)
  11.     {
  12.         change = var->change;
  13.         if(!change)
  14.             change = random_range(var->minChange, var->maxChange, DISTRO_NORMAL);
  15.     }
  16.  
  17.     if(g_game.combatBlockHit(params.combatType, caster, target, change, params.blockedByShield, params.blockedByArmor, params.itemId != 0))
  18.         return false;
  19.  
  20.     CombatParams _params = params;
  21.     if(_params.element.damage && _params.element.type != COMBAT_NONE)
  22.         g_game.combatBlockHit(_params.element.type, caster, target, _params.element.damage, params.blockedByShield, params.blockedByArmor, params.itemId != 0, true);
  23.  
  24.     if(caster && caster->getPlayer() && target->getPlayer() && target->getSkull() != SKULL_BLACK)
  25.     {
  26.         _params.element.damage *= 2;
  27.         if(change < 0)
  28.             change *= 2;
  29.     }
  30.  
  31.     if(!g_game.combatChangeHealth(_params, caster, target, change, false))
  32.         return false;
  33.  
  34.     CombatConditionFunc(caster, target, params, NULL);
  35.     CombatDispelFunc(caster, target, params, NULL);
  36.     return true;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment