diff --git a/2006Redone Server/src/redone/game/content/combat/CombatAssistant.java b/2006Redone Server/src/redone/game/content/combat/CombatAssistant.java index 6aa88336..bfdf107b 100644 --- a/2006Redone Server/src/redone/game/content/combat/CombatAssistant.java +++ b/2006Redone Server/src/redone/game/content/combat/CombatAssistant.java @@ -133,6 +133,11 @@ public class CombatAssistant { if (NpcHandler.npcs[i].HP - damage <= 0 && damage2 > 0) { damage2 = 0; } + c.globalDamageDealt += damage; + if (damage2 > 0) + { + c.globalDamageDealt += damage2; + } if (c.fightMode == 3) {//range shared c.getPlayerAssistant().addSkillXP(damage * Constants.RANGE_EXP_RATE / 3, 4); c.getPlayerAssistant().addSkillXP(damage / 3, 1); @@ -219,6 +224,7 @@ public class CombatAssistant { } //magic c.getPlayerAssistant().addSkillXP(MagicData.MAGIC_SPELLS[c.oldSpellId][7] + damage * Constants.MAGIC_EXP_RATE, 6); + c.totalDamageDealt += damage; if (MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1161 && MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1153 && MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1157 && MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1542 && MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1543 && MagicData.MAGIC_SPELLS[c.oldSpellId][0] != 1562) { c.getPlayerAssistant().addSkillXP(damage * Constants.MAGIC_EXP_RATE / 3, 3); } @@ -315,13 +321,14 @@ public class CombatAssistant { damage = 0; } } - if (NpcHandler.npcs[i].HP - damage > 0) { - if (NpcHandler.npcs[i].npcType == FightCaves.TZTOK_JAD && NpcHandler.npcs[i].spawnedBy == c.getId() && ((NpcHandler.npcs[i].HP > (FightCaves.getHp(FightCaves.TZTOK_JAD)/2)) && - (NpcHandler.npcs[i].HP-damage < (FightCaves.getHp(FightCaves.TZTOK_JAD)/2)))) { - if (c.canHealersRespawn) - FightCaves.spawnHealers(c, i, 4-c.spawnedHealers); - } - } + c.globalDamageDealt += damage; + if (NpcHandler.npcs[i].HP - damage > 0) { + if (NpcHandler.npcs[i].npcType == FightCaves.TZTOK_JAD && NpcHandler.npcs[i].spawnedBy == c.getId() && ((NpcHandler.npcs[i].HP > (FightCaves.getHp(FightCaves.TZTOK_JAD)/2)) && + (NpcHandler.npcs[i].HP-damage < (FightCaves.getHp(FightCaves.TZTOK_JAD)/2)))) { + if (c.canHealersRespawn) + FightCaves.spawnHealers(c, i, 4-c.spawnedHealers); + } + } boolean guthansEffect = false; if (c.getPlayerAssistant().fullGuthans()) { if (Misc.random(3) == 1) { diff --git a/2006Redone Server/src/redone/game/players/HighscoresHandler.java b/2006Redone Server/src/redone/game/players/HighscoresHandler.java index 0c4202db..2b8688b5 100644 --- a/2006Redone Server/src/redone/game/players/HighscoresHandler.java +++ b/2006Redone Server/src/redone/game/players/HighscoresHandler.java @@ -2,7 +2,6 @@ package redone.game.players; import java.io.File; import java.util.ArrayList; -import java.util.Collections; import java.util.Comparator; import static redone.game.players.PlayerSave.loadPlayerInfo; @@ -31,8 +30,8 @@ public class HighscoresHandler { players.sort(new totalGoldComparator()); return players.get(i).playerName + ": " + players.get(i).getPlayerAssistant().totalGold() + "gp"; default: - players.sort(new totalDmgComparator()); - return players.get(i).playerName + ": " + players.get(i).totalDamageDealt; + players.sort(new globalDmgComparator()); + return players.get(i).playerName + ": " + players.get(i).globalDamageDealt; } } @@ -50,10 +49,10 @@ public class HighscoresHandler { } } - private class totalDmgComparator implements Comparator { + private class globalDmgComparator implements Comparator { @Override public int compare(Client client, Client t1) { - return - client.totalDamageDealt + t1.totalDamageDealt; + return - client.globalDamageDealt + t1.globalDamageDealt; } } diff --git a/2006Redone Server/src/redone/game/players/Player.java b/2006Redone Server/src/redone/game/players/Player.java index 8cc50641..280a1d50 100644 --- a/2006Redone Server/src/redone/game/players/Player.java +++ b/2006Redone Server/src/redone/game/players/Player.java @@ -94,7 +94,7 @@ public abstract class Player { dialogueAction = 0, autocastId, followDistance, followId2, barrageCount = 0, delayedDamage = 0, delayedDamage2 = 0, pcPoints = 0, magePoints = 0, desertTreasure = 0, - lastArrowUsed = -1, autoRet = 1, pcDamage = 0, xInterfaceId = 0, + lastArrowUsed = -1, autoRet = 0, pcDamage = 0, xInterfaceId = 0, xRemoveId = 0, xRemoveSlot = 0, tzhaarToKill = 0, tzhaarKilled = 0, waveId, frozenBy = 0, poisonDamage = 0, teleAction = 0, bonusAttack = 0, lastNpcAttacked = 0, killCount = 0, witchspot, @@ -397,7 +397,7 @@ public abstract class Player { playerIndex, oldPlayerIndex, lastWeaponUsed, projectileStage, crystalBowArrowCount, playerMagicBook, teleGfx, teleEndAnimation, teleHeight, teleX, teleY, rangeItemUsed, killingNpcIndex, - totalDamageDealt, oldNpcIndex, fightMode, attackTimer; + totalDamageDealt, globalDamageDealt, oldNpcIndex, fightMode, attackTimer; public boolean magicFailed, oldMagicFailed; public int bowSpecShot, clickNpcType, clickObjectType, objectId, objectX, objectY, objectXOffset, objectYOffset, objectDistance; diff --git a/2006Redone Server/src/redone/game/players/PlayerSave.java b/2006Redone Server/src/redone/game/players/PlayerSave.java index 60ccc77e..ec7a8871 100644 --- a/2006Redone Server/src/redone/game/players/PlayerSave.java +++ b/2006Redone Server/src/redone/game/players/PlayerSave.java @@ -39,6 +39,11 @@ public class PlayerSave { if (File1) { // new File ("./characters/"+playerName+".txt"); } else { + if (playerName.equals("")) + { + //it's the .gitignore :P + return 0; + } Misc.println(playerName + ": character file not found."); player.newPlayer = false; return 0; @@ -135,6 +140,9 @@ public class PlayerSave { case "debugMode": player.debugMode = Boolean.parseBoolean(token2); break; + case "global-damage": + player.globalDamageDealt = Integer.parseInt(token2); + break; case "skull-timer": player.skullTimer = Integer.parseInt(token2); break; @@ -622,6 +630,10 @@ public class PlayerSave { characterfile.write(Boolean.toString(player.isBotting), 0, Boolean.toString(player.isBotting).length()); characterfile.newLine(); + characterfile.write("global-damage = ", 0, 16); + characterfile.write(Integer.toString(player.globalDamageDealt), 0, Integer + .toString(player.globalDamageDealt).length()); + characterfile.newLine(); characterfile.write("brightness = ", 0, 13); characterfile.write(Integer.toString(player.brightness), 0, Integer .toString(player.brightness).length()); diff --git a/2006Redone Server/src/redone/net/packets/impl/Commands.java b/2006Redone Server/src/redone/net/packets/impl/Commands.java index a4ef610b..97d1ffb6 100644 --- a/2006Redone Server/src/redone/net/packets/impl/Commands.java +++ b/2006Redone Server/src/redone/net/packets/impl/Commands.java @@ -2,11 +2,10 @@ package redone.net.packets.impl; import redone.Connection; import redone.Constants; +import redone.Server; import redone.game.items.ItemAssistant; import redone.game.npcs.NpcHandler; -import redone.game.players.Client; -import redone.game.players.HighscoresHandler; -import redone.game.players.PlayerHandler; +import redone.game.players.*; import redone.net.packets.PacketType; import redone.util.GameLogger; import redone.util.Misc; @@ -53,6 +52,15 @@ public class Commands implements PacketType { return; } + if (playerCommand.startsWith("gfx100")) + { + player.gfx100(Integer.parseInt(playerCommand.split(" ")[1])); + } + if (playerCommand.startsWith("gfx0")) + { + player.gfx0(Integer.parseInt(playerCommand.split(" ")[1])); + } + String message = null; switch (playerCommand) { @@ -83,30 +91,39 @@ public class Commands implements PacketType { player.getActionSender().sendMessage(message); break; case "highscores": - HighscoresHandler hs = new HighscoresHandler(); - String[] highscores = new String[]{ - "@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"), - "", - "Top 5 Wealthiest Players:", - hs.getRank(0, "gold"), hs.getRank(1, "gold"), hs.getRank(2, "gold"), hs.getRank(3, "gold"), hs.getRank(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"), - }; + for (Player p : PlayerHandler.players) { + if (p == null) { + continue; + } + PlayerSave.saveGame((Client) p); + System.out.println("Saved game for " + p.playerName + + "."); + Server.lastMassSave = System.currentTimeMillis(); + } + HighscoresHandler hs = new HighscoresHandler(); + String[] highscores = new String[]{ + "@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"), + "", + "Top 5 Wealthiest Players:", + hs.getRank(0, "gold"), hs.getRank(1, "gold"), hs.getRank(2, "gold"), hs.getRank(3, "gold"), hs.getRank(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"), + }; - for (int i = 8144; i < 8195; i++) { + for (int i = 8144; i < 8245; i++) { player.getPlayerAssistant().sendFrame126("", i); } for (int i = 8144; i < 8144 + highscores.length; i++) { - player.getPlayerAssistant().sendFrame126(highscores[i - 8144], i+3); - } - player.getPlayerAssistant().showInterface(8134); + player.getPlayerAssistant().sendFrame126(highscores[i - 8144], i+3); + } + player.getPlayerAssistant().showInterface(8134); - break; + break; } diff --git a/2006Redone_Server/redone/game/content/combat/CombatAssistant.class b/2006Redone_Server/redone/game/content/combat/CombatAssistant.class index 4bc71e3b..acccccb6 100644 Binary files a/2006Redone_Server/redone/game/content/combat/CombatAssistant.class and b/2006Redone_Server/redone/game/content/combat/CombatAssistant.class differ diff --git a/2006Redone_Server/redone/game/globalworldobjects/DoubleDoors.class b/2006Redone_Server/redone/game/globalworldobjects/DoubleDoors.class index ec86e643..64fc76c1 100644 Binary files a/2006Redone_Server/redone/game/globalworldobjects/DoubleDoors.class and b/2006Redone_Server/redone/game/globalworldobjects/DoubleDoors.class differ diff --git a/2006Redone_Server/redone/game/players/HighscoresHandler$globalDmgComparator.class b/2006Redone_Server/redone/game/players/HighscoresHandler$globalDmgComparator.class new file mode 100644 index 00000000..935e6efc Binary files /dev/null and b/2006Redone_Server/redone/game/players/HighscoresHandler$globalDmgComparator.class differ diff --git a/2006Redone_Server/redone/game/players/HighscoresHandler$totalDmgComparator.class b/2006Redone_Server/redone/game/players/HighscoresHandler$totalDmgComparator.class deleted file mode 100644 index 8e795276..00000000 Binary files a/2006Redone_Server/redone/game/players/HighscoresHandler$totalDmgComparator.class and /dev/null differ diff --git a/2006Redone_Server/redone/game/players/HighscoresHandler$totalGoldComparator.class b/2006Redone_Server/redone/game/players/HighscoresHandler$totalGoldComparator.class index c18142bf..89c00f0b 100644 Binary files a/2006Redone_Server/redone/game/players/HighscoresHandler$totalGoldComparator.class and b/2006Redone_Server/redone/game/players/HighscoresHandler$totalGoldComparator.class differ diff --git a/2006Redone_Server/redone/game/players/HighscoresHandler$totalLevelComparator.class b/2006Redone_Server/redone/game/players/HighscoresHandler$totalLevelComparator.class index 9a3cb3d7..46616830 100644 Binary files a/2006Redone_Server/redone/game/players/HighscoresHandler$totalLevelComparator.class and b/2006Redone_Server/redone/game/players/HighscoresHandler$totalLevelComparator.class differ diff --git a/2006Redone_Server/redone/game/players/HighscoresHandler.class b/2006Redone_Server/redone/game/players/HighscoresHandler.class index 0df15c7e..6f60e3dd 100644 Binary files a/2006Redone_Server/redone/game/players/HighscoresHandler.class and b/2006Redone_Server/redone/game/players/HighscoresHandler.class differ diff --git a/2006Redone_Server/redone/game/players/Player.class b/2006Redone_Server/redone/game/players/Player.class index 21dac709..cbf54d2a 100644 Binary files a/2006Redone_Server/redone/game/players/Player.class and b/2006Redone_Server/redone/game/players/Player.class differ diff --git a/2006Redone_Server/redone/game/players/PlayerSave.class b/2006Redone_Server/redone/game/players/PlayerSave.class index 486db7e1..94f4a0ae 100644 Binary files a/2006Redone_Server/redone/game/players/PlayerSave.class and b/2006Redone_Server/redone/game/players/PlayerSave.class differ diff --git a/2006Redone_Server/redone/net/packets/impl/Commands.class b/2006Redone_Server/redone/net/packets/impl/Commands.class index 1b35371c..26ff0250 100644 Binary files a/2006Redone_Server/redone/net/packets/impl/Commands.class and b/2006Redone_Server/redone/net/packets/impl/Commands.class differ diff --git a/artifacts/client/client.jar b/artifacts/client/client.jar index 2c3d6ee1..9313cc6d 100644 Binary files a/artifacts/client/client.jar and b/artifacts/client/client.jar differ