Custom level system help!

Discussion in 'Plugin Development' started by EnchantedMiners, Sep 23, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    EnchantedMiners

    So i am trying to make a custom level system i have made most of the things just that i cant figure out the equation or whatever its called to set the player exp progress show on bar here is my stuff
    Event to add exp to player:
    Code:java
    1. @EventHandler
    2. public void addExpOnZombieKill(EntityDeathEvent e){
    3. Entity entity = e.getEntity();
    4. if(e.getEntity().getKiller() instanceof Player){
    5. Player p = e.getEntity().getKiller();
    6. if(!(entity instanceof LivingEntity))return;
    7. LivingEntity le = (LivingEntity)entity;
    8. if(PlayerHandlers.allPlayers.containsKey(p.getUniqueId()))return;
    9. float expdropped = randNumber(2, 40);
    10. float expneeded = Level.getNeededExp(p);
    11. float exp = p.getExp() / (float)Main.player_data.getInt(p.getUniqueId() + ".exp");
    12. float newexp = exp + expdropped;
    13. p.setExp(newexp/expneeded);
    14. LevelUp.ifPlayerLevelUp(p.getUniqueId(), (float)newexp);
    15. le.setCustomName("§7[§b+"+expdropped+"§7]");
    16. }
    17. }

    LevelUp Method:
    Code:java
    1. public static void ifPlayerLevelUp(UUID uuid, float expadded){//I allways fail doing this **caugh** not good at math xD
    2. Player player = Bukkit.getPlayer(uuid);
    3. int level = Main.player_data.getInt(uuid + ".level");
    4. int skills = Main.player_data.getInt(uuid + ".skills.available");
    5. float expneeded = Level.getNeededExp(player);
    6. float exp = player.getExp() / (float)Main.player_data.getInt(uuid + ".exp");
    7.  
    8. if(level == 70)return;
    9. if(exp + expadded >= expneeded){
    10. Main.player_data.set(uuid + ".skills.available", skills + 2);
    11. Main.player_data.set(uuid + ".level", level + 1);
    12. Main.savePlayerData();
    13. player.setLevel(level + 1);
    14. int newlvl = level + 1;
    15. player.sendMessage("");
    16. player.sendMessage("");
    17. player.sendMessage(" §6§lYOU ARE NOW LEVEL §e§l" + newlvl);
    18. player.sendMessage(" §d§lCONGRATULATIONS!");
    19. player.sendMessage("§8§l>> §cYou have been awarded with §a2 skills!");
    20. }
    21. }

    Level class *getNeededExp and getLastExpNeeded methods* (Pastebin too big):
    http://pastebin.com/hJLfDsQd
    If someone can help improve my methods and make it more efficient i would appreciate thanks for reading and trying to help :D
     
  2. Use giveExp(), lol :D
     
Thread Status:
Not open for further replies.

Share This Page