PlasmaVNGaming

Untitled

Feb 23rd, 2021
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. public static boolean xp_take(Player p, int var) {
  2. int exp = 0;
  3. if ((exp = getTotalExperience(p)) < var) return false;
  4. setTotalExperience(p, exp - var);
  5. return true;
  6. }
  7.  
  8. private static int getExpAtLevel(int level) {
  9. return level <= 15 ? 2 * level + 7 : level <= 30 ? 5 * level - 38 : 9 * level - 158;
  10. }
  11.  
  12. private static int getExpAtLevel(Player player) {
  13. return getExpAtLevel(player.getLevel());
  14. }
  15.  
  16. private static void setTotalExperience(Player player, int exp) {
  17. player.setExp(0);
  18. player.setLevel(0);
  19. player.setTotalExperience(0);
  20.  
  21. int amount = exp;
  22. while (amount > 0) {
  23. int expToLevel = getExpAtLevel(player);
  24. amount -= expToLevel;
  25. if (amount >= 0) player.giveExp(expToLevel);
  26. else {
  27. amount += expToLevel;
  28. player.giveExp(amount);
  29. amount = 0;
  30. }
  31. }
  32. }
  33.  
  34. private static int getTotalExperience(Player player) {
  35. int exp = Math.round(getExpAtLevel(player) * player.getExp());
  36. int currentLevel = player.getLevel();
  37. while (currentLevel > 0) {
  38. currentLevel--;
  39. exp += getExpAtLevel(currentLevel);
  40. }
  41. if (exp < 0) exp = Integer.MAX_VALUE;
  42. return exp;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment