mirror of
https://github.com/2006-Scape/2006Scape.git
synced 2026-07-03 00:31:51 +00:00
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
This commit is contained in:
committed by
Daniel Ginovker
parent
a176bfa9cb
commit
ff75851cad
@@ -4,7 +4,6 @@ import java.io.BufferedReader;
|
|||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
import redone.Constants;
|
import redone.Constants;
|
||||||
import redone.Server;
|
import redone.Server;
|
||||||
import redone.game.content.combat.npcs.NpcAggressive;
|
import redone.game.content.combat.npcs.NpcAggressive;
|
||||||
@@ -418,20 +417,16 @@ public class NpcHandler {
|
|||||||
* Attacking player
|
* Attacking player
|
||||||
**/
|
**/
|
||||||
|
|
||||||
if (NpcAggressive.isAggressive(i) && !npcs[i].underAttack && !npcs[i].isDead && !switchesAttackers(i)) {
|
Client client = (Client) PlayerHandler.players[NpcData.getCloseRandomPlayer(i)];
|
||||||
Client client = (Client) PlayerHandler.players[NpcData.getCloseRandomPlayer(i)];
|
if (client != null) {
|
||||||
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) {
|
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);
|
npcs[i].killerId = NpcData.getCloseRandomPlayer(i);
|
||||||
}
|
} else if (aggressive && !npcs[i].underAttack && !npcs[i].isDead && switchesAttackers(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) {
|
|
||||||
npcs[i].killerId = NpcData.getCloseRandomPlayer(i);
|
npcs[i].killerId = NpcData.getCloseRandomPlayer(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
* Attacking player
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (System.currentTimeMillis() - npcs[i].lastDamageTaken > 5000) {
|
if (System.currentTimeMillis() - npcs[i].lastDamageTaken > 5000) {
|
||||||
npcs[i].underAttackBy = 0;
|
npcs[i].underAttackBy = 0;
|
||||||
|
|||||||
@@ -934,7 +934,7 @@ public class Client extends Player {
|
|||||||
@Override
|
@Override
|
||||||
public void process() {
|
public void process() {
|
||||||
|
|
||||||
if (playerEnergy < 100&& System.currentTimeMillis() - lastIncrease >= getPlayerAssistant().raiseTimer()) {
|
if (playerEnergy < 100 && System.currentTimeMillis() - lastIncrease >= getPlayerAssistant().raiseTimer()) {
|
||||||
playerEnergy += 1;
|
playerEnergy += 1;
|
||||||
lastIncrease = System.currentTimeMillis();
|
lastIncrease = System.currentTimeMillis();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,62 +1,62 @@
|
|||||||
package redone.game.players;
|
package redone.game.players;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
|
||||||
import static redone.game.players.PlayerSave.loadPlayerInfo;
|
import static redone.game.players.PlayerSave.loadPlayerInfo;
|
||||||
|
|
||||||
public class HighscoresHandler {
|
public class HighscoresHandler {
|
||||||
public ArrayList<Client> players = new ArrayList<>();
|
public ArrayList<Client> players = new ArrayList<>();
|
||||||
|
|
||||||
public HighscoresHandler() {
|
public HighscoresHandler() {
|
||||||
File dir = new File("./data/characters");
|
File dir = new File("./data/characters");
|
||||||
File[] directoryListing = dir.listFiles();
|
File[] directoryListing = dir.listFiles();
|
||||||
for (File child : directoryListing) {
|
for (File child : directoryListing) {
|
||||||
Client player = new Client(null, -1);
|
Client player = new Client(null, -1);
|
||||||
player.playerName = child.getName().split("\\.")[0];
|
player.playerName = child.getName().split("\\.")[0];
|
||||||
loadPlayerInfo(player, child.getName().split("\\.")[0], "", false);
|
loadPlayerInfo(player, child.getName().split("\\.")[0], "", false);
|
||||||
players.add(player);
|
players.add(player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getRank(int i, String sortBy) {
|
public String getRank(Client player, int i, String sortBy) {
|
||||||
if (players.size() <= i)
|
if (players.size() <= i || player.playerRights >= 2) {
|
||||||
return "Nobody";
|
return "Nobody";
|
||||||
|
}
|
||||||
switch (sortBy)
|
|
||||||
{
|
switch (sortBy) {
|
||||||
case "level":
|
case "level":
|
||||||
players.sort(new totalLevelComparator());
|
players.sort(new totalLevelComparator());
|
||||||
return players.get(i).playerName + ": " + players.get(i).getPlayerAssistant().getTotalLevel();
|
return players.get(i).playerName + ": " + players.get(i).getPlayerAssistant().getTotalLevel();
|
||||||
case "gold":
|
case "gold":
|
||||||
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 globalDmgComparator());
|
players.sort(new globalDmgComparator());
|
||||||
return players.get(i).playerName + ": " + players.get(i).globalDamageDealt;
|
return players.get(i).playerName + ": " + players.get(i).globalDamageDealt;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class totalLevelComparator implements Comparator<Client> {
|
private class totalLevelComparator implements Comparator<Client> {
|
||||||
@Override
|
@Override
|
||||||
public int compare(Client client, Client t1) {
|
public int compare(Client client, Client t1) {
|
||||||
return - client.getPlayerAssistant().getTotalLevel() + t1.getPlayerAssistant().getTotalLevel();
|
return - client.getPlayerAssistant().getTotalLevel() + t1.getPlayerAssistant().getTotalLevel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class totalGoldComparator implements Comparator<Client> {
|
private class totalGoldComparator implements Comparator<Client> {
|
||||||
@Override
|
@Override
|
||||||
public int compare(Client client, Client t1) {
|
public int compare(Client client, Client t1) {
|
||||||
return - client.getPlayerAssistant().totalGold() + t1.getPlayerAssistant().totalGold();
|
return - client.getPlayerAssistant().totalGold() + t1.getPlayerAssistant().totalGold();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class globalDmgComparator 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.globalDamageDealt + t1.globalDamageDealt;
|
return - client.globalDamageDealt + t1.globalDamageDealt;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -430,10 +430,14 @@ public class PlayerAssistant {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void writeEnergy() {
|
public void writeEnergy() {
|
||||||
if (player.playerEnergy > 0) {
|
if (player.playerEnergy >= 100) {
|
||||||
sendFrame126((int) Math.ceil(player.playerEnergy) + "%", 149);
|
sendFrame126("100%", 149);
|
||||||
} else {
|
} else {
|
||||||
sendFrame126("0%", 149);
|
if (player.playerEnergy > 0 && player.playerEnergy < 100) {
|
||||||
|
sendFrame126((int) Math.ceil(player.playerEnergy) + "%", 149);
|
||||||
|
} else if (player.playerEnergy <= 0) {
|
||||||
|
sendFrame126("0%", 149);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -166,13 +166,13 @@ public class Commands implements PacketType {
|
|||||||
"@dre@Highscores",
|
"@dre@Highscores",
|
||||||
"",
|
"",
|
||||||
"Top 5 Total Level:",
|
"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:",
|
"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:",
|
"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++) {
|
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.playerLevel[skill] = player.getPlayerAssistant().getLevelForXP(player.playerXP[skill]);
|
||||||
player.getPlayerAssistant().refreshSkill(skill);
|
player.getPlayerAssistant().refreshSkill(skill);
|
||||||
player.getPlayerAssistant().levelUp(skill);
|
player.getPlayerAssistant().levelUp(skill);
|
||||||
} catch (Exception ಠ_ಠ) {}
|
} catch (Exception e) {}
|
||||||
break;
|
break;
|
||||||
case "spellbook":
|
case "spellbook":
|
||||||
if (player.inWild()) {
|
if (player.inWild()) {
|
||||||
@@ -506,7 +506,7 @@ public class Commands implements PacketType {
|
|||||||
} else {
|
} else {
|
||||||
player.getActionSender().sendMessage("No such item.");
|
player.getActionSender().sendMessage("No such item.");
|
||||||
}
|
}
|
||||||
} catch (Exception ಠ_ಠ) {}
|
} catch (Exception e) {}
|
||||||
break;
|
break;
|
||||||
case "master":
|
case "master":
|
||||||
for (int i = 0; i < 25; i++) {
|
for (int i = 0; i < 25; i++) {
|
||||||
@@ -626,7 +626,7 @@ public class Commands implements PacketType {
|
|||||||
} else {
|
} else {
|
||||||
player.getActionSender().sendMessage("Npc " + newNPC + " does not exist.");
|
player.getActionSender().sendMessage("Npc " + newNPC + " does not exist.");
|
||||||
}
|
}
|
||||||
} catch (Exception ಠ_ಠ) {}
|
} catch (Exception e) {}
|
||||||
break;
|
break;
|
||||||
case "cantattack":
|
case "cantattack":
|
||||||
player.npcCanAttack = !player.npcCanAttack;
|
player.npcCanAttack = !player.npcCanAttack;
|
||||||
@@ -685,7 +685,7 @@ public class Commands implements PacketType {
|
|||||||
PlayerHandler.updateAnnounced = false;
|
PlayerHandler.updateAnnounced = false;
|
||||||
PlayerHandler.updateRunning = true;
|
PlayerHandler.updateRunning = true;
|
||||||
PlayerHandler.updateStartTime = System.currentTimeMillis();
|
PlayerHandler.updateStartTime = System.currentTimeMillis();
|
||||||
} catch (Exception ಠ_ಠ) {}
|
} catch (Exception e) {}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user