Highscores fix

This commit is contained in:
dginovker
2019-06-28 15:50:51 -04:00
parent 01008c7254
commit e7d5f36880
16 changed files with 70 additions and 35 deletions
@@ -133,6 +133,11 @@ public class CombatAssistant {
if (NpcHandler.npcs[i].HP - damage <= 0 && damage2 > 0) { if (NpcHandler.npcs[i].HP - damage <= 0 && damage2 > 0) {
damage2 = 0; damage2 = 0;
} }
c.globalDamageDealt += damage;
if (damage2 > 0)
{
c.globalDamageDealt += damage2;
}
if (c.fightMode == 3) {//range shared if (c.fightMode == 3) {//range shared
c.getPlayerAssistant().addSkillXP(damage * Constants.RANGE_EXP_RATE / 3, 4); c.getPlayerAssistant().addSkillXP(damage * Constants.RANGE_EXP_RATE / 3, 4);
c.getPlayerAssistant().addSkillXP(damage / 3, 1); c.getPlayerAssistant().addSkillXP(damage / 3, 1);
@@ -219,6 +224,7 @@ public class CombatAssistant {
} }
//magic //magic
c.getPlayerAssistant().addSkillXP(MagicData.MAGIC_SPELLS[c.oldSpellId][7] + damage * Constants.MAGIC_EXP_RATE, 6); 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) { 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); c.getPlayerAssistant().addSkillXP(damage * Constants.MAGIC_EXP_RATE / 3, 3);
} }
@@ -315,13 +321,14 @@ public class CombatAssistant {
damage = 0; damage = 0;
} }
} }
if (NpcHandler.npcs[i].HP - damage > 0) { c.globalDamageDealt += damage;
if (NpcHandler.npcs[i].npcType == FightCaves.TZTOK_JAD && NpcHandler.npcs[i].spawnedBy == c.getId() && ((NpcHandler.npcs[i].HP > (FightCaves.getHp(FightCaves.TZTOK_JAD)/2)) && if (NpcHandler.npcs[i].HP - damage > 0) {
(NpcHandler.npcs[i].HP-damage < (FightCaves.getHp(FightCaves.TZTOK_JAD)/2)))) { if (NpcHandler.npcs[i].npcType == FightCaves.TZTOK_JAD && NpcHandler.npcs[i].spawnedBy == c.getId() && ((NpcHandler.npcs[i].HP > (FightCaves.getHp(FightCaves.TZTOK_JAD)/2)) &&
if (c.canHealersRespawn) (NpcHandler.npcs[i].HP-damage < (FightCaves.getHp(FightCaves.TZTOK_JAD)/2)))) {
FightCaves.spawnHealers(c, i, 4-c.spawnedHealers); if (c.canHealersRespawn)
} FightCaves.spawnHealers(c, i, 4-c.spawnedHealers);
} }
}
boolean guthansEffect = false; boolean guthansEffect = false;
if (c.getPlayerAssistant().fullGuthans()) { if (c.getPlayerAssistant().fullGuthans()) {
if (Misc.random(3) == 1) { if (Misc.random(3) == 1) {
@@ -2,7 +2,6 @@ package redone.game.players;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import static redone.game.players.PlayerSave.loadPlayerInfo; import static redone.game.players.PlayerSave.loadPlayerInfo;
@@ -31,8 +30,8 @@ public class HighscoresHandler {
players.sort(new totalGoldComparator()); players.sort(new totalGoldComparator());
return players.get(i).playerName + ": " + players.get(i).getPlayerAssistant().totalGold() + "gp"; return players.get(i).playerName + ": " + players.get(i).getPlayerAssistant().totalGold() + "gp";
default: default:
players.sort(new totalDmgComparator()); players.sort(new globalDmgComparator());
return players.get(i).playerName + ": " + players.get(i).totalDamageDealt; return players.get(i).playerName + ": " + players.get(i).globalDamageDealt;
} }
} }
@@ -50,10 +49,10 @@ public class HighscoresHandler {
} }
} }
private class totalDmgComparator implements Comparator<Client> { private class globalDmgComparator implements Comparator<Client> {
@Override @Override
public int compare(Client client, Client t1) { public int compare(Client client, Client t1) {
return - client.totalDamageDealt + t1.totalDamageDealt; return - client.globalDamageDealt + t1.globalDamageDealt;
} }
} }
@@ -94,7 +94,7 @@ public abstract class Player {
dialogueAction = 0, autocastId, followDistance, followId2, dialogueAction = 0, autocastId, followDistance, followId2,
barrageCount = 0, delayedDamage = 0, delayedDamage2 = 0, barrageCount = 0, delayedDamage = 0, delayedDamage2 = 0,
pcPoints = 0, magePoints = 0, desertTreasure = 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, xRemoveId = 0, xRemoveSlot = 0, tzhaarToKill = 0, tzhaarKilled = 0,
waveId, frozenBy = 0, poisonDamage = 0, teleAction = 0, waveId, frozenBy = 0, poisonDamage = 0, teleAction = 0,
bonusAttack = 0, lastNpcAttacked = 0, killCount = 0, witchspot, bonusAttack = 0, lastNpcAttacked = 0, killCount = 0, witchspot,
@@ -397,7 +397,7 @@ public abstract class Player {
playerIndex, oldPlayerIndex, lastWeaponUsed, projectileStage, playerIndex, oldPlayerIndex, lastWeaponUsed, projectileStage,
crystalBowArrowCount, playerMagicBook, teleGfx, teleEndAnimation, crystalBowArrowCount, playerMagicBook, teleGfx, teleEndAnimation,
teleHeight, teleX, teleY, rangeItemUsed, killingNpcIndex, teleHeight, teleX, teleY, rangeItemUsed, killingNpcIndex,
totalDamageDealt, oldNpcIndex, fightMode, attackTimer; totalDamageDealt, globalDamageDealt, oldNpcIndex, fightMode, attackTimer;
public boolean magicFailed, oldMagicFailed; public boolean magicFailed, oldMagicFailed;
public int bowSpecShot, clickNpcType, clickObjectType, objectId, objectX, public int bowSpecShot, clickNpcType, clickObjectType, objectId, objectX,
objectY, objectXOffset, objectYOffset, objectDistance; objectY, objectXOffset, objectYOffset, objectDistance;
@@ -39,6 +39,11 @@ public class PlayerSave {
if (File1) { if (File1) {
// new File ("./characters/"+playerName+".txt"); // new File ("./characters/"+playerName+".txt");
} else { } else {
if (playerName.equals(""))
{
//it's the .gitignore :P
return 0;
}
Misc.println(playerName + ": character file not found."); Misc.println(playerName + ": character file not found.");
player.newPlayer = false; player.newPlayer = false;
return 0; return 0;
@@ -135,6 +140,9 @@ public class PlayerSave {
case "debugMode": case "debugMode":
player.debugMode = Boolean.parseBoolean(token2); player.debugMode = Boolean.parseBoolean(token2);
break; break;
case "global-damage":
player.globalDamageDealt = Integer.parseInt(token2);
break;
case "skull-timer": case "skull-timer":
player.skullTimer = Integer.parseInt(token2); player.skullTimer = Integer.parseInt(token2);
break; break;
@@ -622,6 +630,10 @@ public class PlayerSave {
characterfile.write(Boolean.toString(player.isBotting), 0, characterfile.write(Boolean.toString(player.isBotting), 0,
Boolean.toString(player.isBotting).length()); Boolean.toString(player.isBotting).length());
characterfile.newLine(); 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("brightness = ", 0, 13);
characterfile.write(Integer.toString(player.brightness), 0, Integer characterfile.write(Integer.toString(player.brightness), 0, Integer
.toString(player.brightness).length()); .toString(player.brightness).length());
@@ -2,11 +2,10 @@ package redone.net.packets.impl;
import redone.Connection; import redone.Connection;
import redone.Constants; import redone.Constants;
import redone.Server;
import redone.game.items.ItemAssistant; import redone.game.items.ItemAssistant;
import redone.game.npcs.NpcHandler; import redone.game.npcs.NpcHandler;
import redone.game.players.Client; import redone.game.players.*;
import redone.game.players.HighscoresHandler;
import redone.game.players.PlayerHandler;
import redone.net.packets.PacketType; import redone.net.packets.PacketType;
import redone.util.GameLogger; import redone.util.GameLogger;
import redone.util.Misc; import redone.util.Misc;
@@ -53,6 +52,15 @@ public class Commands implements PacketType {
return; 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; String message = null;
switch (playerCommand) switch (playerCommand)
{ {
@@ -83,30 +91,39 @@ public class Commands implements PacketType {
player.getActionSender().sendMessage(message); player.getActionSender().sendMessage(message);
break; break;
case "highscores": case "highscores":
HighscoresHandler hs = new HighscoresHandler(); for (Player p : PlayerHandler.players) {
String[] highscores = new String[]{ if (p == null) {
"@dre@Highscores", continue;
"", }
"Top 5 Total Level:", PlayerSave.saveGame((Client) p);
hs.getRank(0, "level"), hs.getRank(1, "level"), hs.getRank(2, "level"), hs.getRank(3, "level"), hs.getRank(4, "level"), System.out.println("Saved game for " + p.playerName
"", + ".");
"Top 5 Wealthiest Players:", Server.lastMassSave = System.currentTimeMillis();
hs.getRank(0, "gold"), hs.getRank(1, "gold"), hs.getRank(2, "gold"), hs.getRank(3, "gold"), hs.getRank(4, "gold"), }
"", HighscoresHandler hs = new HighscoresHandler();
"Top 5 Highest Total Damage:", String[] highscores = new String[]{
hs.getRank(0, "damage"), hs.getRank(1, "damage"), hs.getRank(2, "damage"), hs.getRank(3, "damage"), hs.getRank(4, "damage"), "@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); player.getPlayerAssistant().sendFrame126("", i);
} }
for (int i = 8144; i < 8144 + highscores.length; i++) { for (int i = 8144; i < 8144 + highscores.length; i++) {
player.getPlayerAssistant().sendFrame126(highscores[i - 8144], i+3); player.getPlayerAssistant().sendFrame126(highscores[i - 8144], i+3);
} }
player.getPlayerAssistant().showInterface(8134); player.getPlayerAssistant().showInterface(8134);
break; break;
} }
Binary file not shown.
Binary file not shown.