Advertisement
Guest User

Untitled

a guest
Nov 20th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. exp_t Creature::getGainedExperience(Creature* attacker)
  2. {
  3. int32_t totaldamage = getTotalInflictedDamage();
  4. int32_t attackerdamage = getInflicatedDamage(attacker);
  5. exp_t lostexperience = getLostExperience();
  6. exp_t gainexperience = 0;
  7. Player* player = dynamic_cast<Player*>(attacker);
  8.  
  9. if(attackerdamage > 0 && totaldamage > 0)
  10. {
  11. //gainexperience = (int32_t)std::floor(((double)attackerdamage / totaldamage) * lostexperience);
  12. gainexperience = (exp_t)(attackerdamage * lostexperience / totaldamage);
  13. }
  14.  
  15. #ifdef HUCZU_STAGE_EXP
  16. if(g_config.STAGE_EXP)
  17. {
  18. int32_t multipiler = 0;
  19. if(player)
  20. {
  21. if(player->getVocation() == VOCATION_NONE)
  22. return gainexperience * g_config.EXP_ROOK;
  23. #ifdef _BBK_ITEM_ATTRIBUTES
  24. std::vector<Attribute>::iterator it;
  25. for(it = player->attributes.begin(); it != player->attributes.end(); ++it)
  26. {
  27. if((*it).getKey() == "increaseExperience")
  28. multipiler += multipiler*(0.01*(double)(*it).getValue());
  29. if((*it).getKey() == "decreaseExperience")
  30. multipiler -= multipiler*(0.01*(double)(*it).getValue());
  31. }
  32. #endif //_BBK_ITEM_ATTRIBUTES
  33. std::cout << g_game.getStageExp(player->getLevel(), false) << std::endl;
  34. if(!dynamic_cast<Player*>(this))
  35. multipiler = g_game.getStageExp(player->getLevel(), false); //brak enfo
  36. else
  37. multipiler = g_game.getStageExp(player->getLevel(), true); //enfo
  38.  
  39. if(multipiler > 0)
  40. return gainexperience * multipiler;
  41. }
  42. }
  43. else
  44. {
  45. if (dynamic_cast<Player*>(this))
  46. return gainexperience * g_config.EXP_MUL_PVP;
  47. else
  48. return gainexperience * g_config.EXP_MUL;
  49. }
  50. #endif
  51. return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement