From ff75851cad6340e18419e9a213d700c99299eba4 Mon Sep 17 00:00:00 2001 From: Mr Extremez Date: Wed, 6 Nov 2019 09:55:08 -0600 Subject: [PATCH] Fixes run energy, aggressiveness, and highscores (#137) * Update ShopAssistant.java Adds ability to sell tokkul items back to shop for tokkul * Fixes npc aggressiveness closes #132 * Fixes highscores for admin + ingame. Closes #131 * Caps run energy at 100%. Closes #135 --- .../src/redone/game/npcs/NpcHandler.java | 17 +-- .../src/redone/game/players/Client.java | 2 +- .../game/players/HighscoresHandler.java | 124 +++++++++--------- .../redone/game/players/PlayerAssistant.java | 12 +- .../src/redone/net/packets/impl/Commands.java | 14 +- 5 files changed, 84 insertions(+), 85 deletions(-) diff --git a/2006Redone Server/src/redone/game/npcs/NpcHandler.java b/2006Redone Server/src/redone/game/npcs/NpcHandler.java index 9e8f947e..4d0213a9 100644 --- a/2006Redone Server/src/redone/game/npcs/NpcHandler.java +++ b/2006Redone Server/src/redone/game/npcs/NpcHandler.java @@ -4,7 +4,6 @@ import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; - import redone.Constants; import redone.Server; import redone.game.content.combat.npcs.NpcAggressive; @@ -418,20 +417,16 @@ public class NpcHandler { * Attacking player **/ - if (NpcAggressive.isAggressive(i) && !npcs[i].underAttack && !npcs[i].isDead && !switchesAttackers(i)) { - Client client = (Client) PlayerHandler.players[NpcData.getCloseRandomPlayer(i)]; - if (client != null && getNpcListCombat(npcs[i].npcType) * 2 > client.combatLevel || npcs[i].npcType == 1265 || npcs[i].npcType == 1267 || npcs[i].npcType == 96 || npcs[i].npcType == 97 || npcs[i].npcType == 141) { + Client client = (Client) PlayerHandler.players[NpcData.getCloseRandomPlayer(i)]; + if (client != null) { + boolean aggressive = NpcAggressive.isAggressive(i) || getNpcListCombat(npcs[i].npcType) * 2 > client.combatLevel; + if (aggressive && !npcs[i].underAttack && !npcs[i].isDead && !switchesAttackers(i)) { npcs[i].killerId = NpcData.getCloseRandomPlayer(i); - } - } else if (NpcAggressive.isAggressive(i) && !npcs[i].underAttack && !npcs[i].isDead && switchesAttackers(i)) { - Client c = (Client) PlayerHandler.players[NpcData.getCloseRandomPlayer(i)]; - if (c != null && getNpcListCombat(npcs[i].npcType) * 2 > c.combatLevel) { + } else if (aggressive && !npcs[i].underAttack && !npcs[i].isDead && switchesAttackers(i)) { npcs[i].killerId = NpcData.getCloseRandomPlayer(i); } } - /* - * Attacking player - */ + if (System.currentTimeMillis() - npcs[i].lastDamageTaken > 5000) { npcs[i].underAttackBy = 0; diff --git a/2006Redone Server/src/redone/game/players/Client.java b/2006Redone Server/src/redone/game/players/Client.java index 99466140..b56d2539 100644 --- a/2006Redone Server/src/redone/game/players/Client.java +++ b/2006Redone Server/src/redone/game/players/Client.java @@ -934,7 +934,7 @@ public class Client extends Player { @Override public void process() { - if (playerEnergy < 100&& System.currentTimeMillis() - lastIncrease >= getPlayerAssistant().raiseTimer()) { + if (playerEnergy < 100 && System.currentTimeMillis() - lastIncrease >= getPlayerAssistant().raiseTimer()) { playerEnergy += 1; lastIncrease = System.currentTimeMillis(); } diff --git a/2006Redone Server/src/redone/game/players/HighscoresHandler.java b/2006Redone Server/src/redone/game/players/HighscoresHandler.java index df764970..d49fcaf1 100644 --- a/2006Redone Server/src/redone/game/players/HighscoresHandler.java +++ b/2006Redone Server/src/redone/game/players/HighscoresHandler.java @@ -1,62 +1,62 @@ -package redone.game.players; - -import java.io.File; -import java.util.ArrayList; -import java.util.Comparator; - -import static redone.game.players.PlayerSave.loadPlayerInfo; - -public class HighscoresHandler { - public ArrayList players = new ArrayList<>(); - - public HighscoresHandler() { - File dir = new File("./data/characters"); - File[] directoryListing = dir.listFiles(); - for (File child : directoryListing) { - Client player = new Client(null, -1); - player.playerName = child.getName().split("\\.")[0]; - loadPlayerInfo(player, child.getName().split("\\.")[0], "", false); - players.add(player); - } - } - - public String getRank(int i, String sortBy) { - if (players.size() <= i) - return "Nobody"; - - switch (sortBy) - { - case "level": - players.sort(new totalLevelComparator()); - return players.get(i).playerName + ": " + players.get(i).getPlayerAssistant().getTotalLevel(); - case "gold": - players.sort(new totalGoldComparator()); - return players.get(i).playerName + ": " + players.get(i).getPlayerAssistant().totalGold() + "gp"; - default: - players.sort(new globalDmgComparator()); - return players.get(i).playerName + ": " + players.get(i).globalDamageDealt; - } - } - - private class totalLevelComparator implements Comparator { - @Override - public int compare(Client client, Client t1) { - return - client.getPlayerAssistant().getTotalLevel() + t1.getPlayerAssistant().getTotalLevel(); - } - } - - private class totalGoldComparator implements Comparator { - @Override - public int compare(Client client, Client t1) { - return - client.getPlayerAssistant().totalGold() + t1.getPlayerAssistant().totalGold(); - } - } - - private class globalDmgComparator implements Comparator { - @Override - public int compare(Client client, Client t1) { - return - client.globalDamageDealt + t1.globalDamageDealt; - } - } - -} +package redone.game.players; + +import java.io.File; +import java.util.ArrayList; +import java.util.Comparator; + +import static redone.game.players.PlayerSave.loadPlayerInfo; + +public class HighscoresHandler { + public ArrayList players = new ArrayList<>(); + + public HighscoresHandler() { + File dir = new File("./data/characters"); + File[] directoryListing = dir.listFiles(); + for (File child : directoryListing) { + Client player = new Client(null, -1); + player.playerName = child.getName().split("\\.")[0]; + loadPlayerInfo(player, child.getName().split("\\.")[0], "", false); + players.add(player); + } + } + + public String getRank(Client player, int i, String sortBy) { + if (players.size() <= i || player.playerRights >= 2) { + return "Nobody"; + } + + switch (sortBy) { + case "level": + players.sort(new totalLevelComparator()); + return players.get(i).playerName + ": " + players.get(i).getPlayerAssistant().getTotalLevel(); + case "gold": + players.sort(new totalGoldComparator()); + return players.get(i).playerName + ": " + players.get(i).getPlayerAssistant().totalGold() + "gp"; + default: + players.sort(new globalDmgComparator()); + return players.get(i).playerName + ": " + players.get(i).globalDamageDealt; + } + } + + private class totalLevelComparator implements Comparator { + @Override + public int compare(Client client, Client t1) { + return - client.getPlayerAssistant().getTotalLevel() + t1.getPlayerAssistant().getTotalLevel(); + } + } + + private class totalGoldComparator implements Comparator { + @Override + public int compare(Client client, Client t1) { + return - client.getPlayerAssistant().totalGold() + t1.getPlayerAssistant().totalGold(); + } + } + + private class globalDmgComparator implements Comparator { + @Override + public int compare(Client client, Client t1) { + return - client.globalDamageDealt + t1.globalDamageDealt; + } + } + +} diff --git a/2006Redone Server/src/redone/game/players/PlayerAssistant.java b/2006Redone Server/src/redone/game/players/PlayerAssistant.java index 535f59c6..ea2285dc 100644 --- a/2006Redone Server/src/redone/game/players/PlayerAssistant.java +++ b/2006Redone Server/src/redone/game/players/PlayerAssistant.java @@ -430,10 +430,14 @@ public class PlayerAssistant { } public void writeEnergy() { - if (player.playerEnergy > 0) { - sendFrame126((int) Math.ceil(player.playerEnergy) + "%", 149); - } else { - sendFrame126("0%", 149); + if (player.playerEnergy >= 100) { + sendFrame126("100%", 149); + } else { + if (player.playerEnergy > 0 && player.playerEnergy < 100) { + sendFrame126((int) Math.ceil(player.playerEnergy) + "%", 149); + } else if (player.playerEnergy <= 0) { + sendFrame126("0%", 149); + } } } diff --git a/2006Redone Server/src/redone/net/packets/impl/Commands.java b/2006Redone Server/src/redone/net/packets/impl/Commands.java index 0ab2f2f2..a3ba0817 100644 --- a/2006Redone Server/src/redone/net/packets/impl/Commands.java +++ b/2006Redone Server/src/redone/net/packets/impl/Commands.java @@ -166,13 +166,13 @@ public class Commands implements PacketType { "@dre@Highscores", "", "Top 5 Total Level:", - hs.getRank(0, "level"), hs.getRank(1, "level"), hs.getRank(2, "level"), hs.getRank(3, "level"), hs.getRank(4, "level"), + hs.getRank(player, 0, "level"), hs.getRank(player,1, "level"), hs.getRank(player,2, "level"), hs.getRank(player,3, "level"), hs.getRank(player,4, "level"), "", "Top 5 Wealthiest Players:", - hs.getRank(0, "gold"), hs.getRank(1, "gold"), hs.getRank(2, "gold"), hs.getRank(3, "gold"), hs.getRank(4, "gold"), + hs.getRank(player,0, "gold"), hs.getRank(player,1, "gold"), hs.getRank(player,2, "gold"), hs.getRank(player,3, "gold"), hs.getRank(player, 4, "gold"), "", "Top 5 Highest Total Damage:", - hs.getRank(0, "damage"), hs.getRank(1, "damage"), hs.getRank(2, "damage"), hs.getRank(3, "damage"), hs.getRank(4, "damage"), + hs.getRank(player,0, "damage"), hs.getRank(player,1, "damage"), hs.getRank(player,2, "damage"), hs.getRank(player, 3, "damage"), hs.getRank(player, 4, "damage"), }; for (int i = 8144; i < 8245; i++) { @@ -470,7 +470,7 @@ public class Commands implements PacketType { player.playerLevel[skill] = player.getPlayerAssistant().getLevelForXP(player.playerXP[skill]); player.getPlayerAssistant().refreshSkill(skill); player.getPlayerAssistant().levelUp(skill); - } catch (Exception ಠ_ಠ) {} + } catch (Exception e) {} break; case "spellbook": if (player.inWild()) { @@ -506,7 +506,7 @@ public class Commands implements PacketType { } else { player.getActionSender().sendMessage("No such item."); } - } catch (Exception ಠ_ಠ) {} + } catch (Exception e) {} break; case "master": for (int i = 0; i < 25; i++) { @@ -626,7 +626,7 @@ public class Commands implements PacketType { } else { player.getActionSender().sendMessage("Npc " + newNPC + " does not exist."); } - } catch (Exception ಠ_ಠ) {} + } catch (Exception e) {} break; case "cantattack": player.npcCanAttack = !player.npcCanAttack; @@ -685,7 +685,7 @@ public class Commands implements PacketType { PlayerHandler.updateAnnounced = false; PlayerHandler.updateRunning = true; PlayerHandler.updateStartTime = System.currentTimeMillis(); - } catch (Exception ಠ_ಠ) {} + } catch (Exception e) {} break; } }