Advertisement
Guest User

Untitled

a guest
Nov 18th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. bool Combat::CombatManaFunc(Creature* caster, Creature* target, const CombatParams& params, void* data)
  2. {
  3. int64_t change = 0;
  4. if(Combat2Var* var = (Combat2Var*)data)
  5. {
  6. change = var->change;
  7. if(!change)
  8. change = random_range(var->minChange, var->maxChange, DISTRO_NORMAL);
  9. }
  10.  
  11. Player* targetPlayer = target->getPlayer();
  12. Player* casterPlayer = NULL;
  13.  
  14. if (caster)
  15. casterPlayer = caster->getPlayer();
  16.  
  17.  
  18. if(targetPlayer && casterPlayer) {
  19. std::string value;
  20. std::string value2;
  21. casterPlayer->getStorage(25092, value);
  22. int64_t cchance = atoi(value.c_str());
  23. casterPlayer->getStorage(25093, value2);
  24. int64_t cdmg = atoi(value2.c_str());
  25. int64_t chancee = g_config.getNumber(ConfigManager::CHANCE_CRIT_TALENT);
  26. int64_t crit = g_config.getNumber(ConfigManager::HIGHER_CRIT_TALENT);
  27. int64_t number = random_range(1, 1000, DISTRO_NORMAL);
  28. int64_t pallyOrRogue = 1.15;
  29.  
  30. if (targetPlayer->getVocationId() == 3 || targetPlayer->getVocationId() == 7 || targetPlayer->getVocationId() == 9){
  31. pallyOrRogue = 1.10;
  32. }
  33.  
  34.  
  35. if(params.isSpell && casterPlayer && random_range(1, 1000, DISTRO_NORMAL) <= (SPELL_CRITICAL + (cchance * chancee * 10))) {
  36. change = (int64_t)(change * (pallyOrRogue + ((cdmg * crit) * 0.01)));
  37. g_game.addAnimatedText(caster->getPosition(), COLOR_BLUE, "CRITICAL!");
  38. }
  39. }
  40.  
  41. if(change < 0 && caster && caster->getPlayer() && target->getPlayer())
  42. change = change / 2;
  43.  
  44. if(!g_game.combatChangeMana(caster, target, change))
  45. return false;
  46.  
  47. CombatConditionFunc(caster, target, params, NULL);
  48. CombatDispelFunc(caster, target, params, NULL);
  49. return true;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement