From 447fc738d9f7035650057ce4211d160de8d004ee Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Fri, 22 Nov 2019 13:03:02 +1300 Subject: [PATCH 01/55] initial bots --- .../src/redone/game/bots/Bot.java | 39 +++++++++++++++++++ .../src/redone/game/bots/BotConstants.java | 6 +++ .../src/redone/game/bots/BotHandler.java | 34 ++++++++++++++++ .../src/redone/game/players/Client.java | 13 ------- .../src/redone/net/packets/impl/Commands.java | 7 ++++ 5 files changed, 86 insertions(+), 13 deletions(-) create mode 100644 2006Redone Server/src/redone/game/bots/Bot.java create mode 100644 2006Redone Server/src/redone/game/bots/BotConstants.java create mode 100644 2006Redone Server/src/redone/game/bots/BotHandler.java diff --git a/2006Redone Server/src/redone/game/bots/Bot.java b/2006Redone Server/src/redone/game/bots/Bot.java new file mode 100644 index 00000000..3834cc16 --- /dev/null +++ b/2006Redone Server/src/redone/game/bots/Bot.java @@ -0,0 +1,39 @@ +package redone.game.bots; + + +import redone.Server; +import redone.game.players.Client; +import redone.game.players.Player; +import redone.game.players.PlayerHandler; + +import static redone.game.players.PlayerSave.loadPlayerInfo; + +public class Bot { + + private Client botClient; + + public Bot(String username) { + botClient = new Client(null, -1); + botClient.playerName = username; + + botClient.playerName = username; + botClient.playerName2 = botClient.playerName; + botClient.playerPass = "bot_password"; + + botClient.saveCharacter = true; + char first = username.charAt(0); + botClient.properName = Character.toUpperCase(first) + username.substring(1, username.length()); + + botClient.saveFile = true; + botClient.saveCharacter = true; + botClient.isActive = true; + botClient.disconnected = false; + System.out.println(botClient.getPlayerAssistant().getTotalLevel()); + Server.playerHandler.newPlayerClient(botClient); + loadPlayerInfo(botClient, username, "bot_password", false); + } + + public Client getBotClient() { + return botClient; + } +} diff --git a/2006Redone Server/src/redone/game/bots/BotConstants.java b/2006Redone Server/src/redone/game/bots/BotConstants.java new file mode 100644 index 00000000..fc64cdff --- /dev/null +++ b/2006Redone Server/src/redone/game/bots/BotConstants.java @@ -0,0 +1,6 @@ +package redone.game.bots; + +public class BotConstants +{ + public static final int MAX_BOTS = 100; +} \ No newline at end of file diff --git a/2006Redone Server/src/redone/game/bots/BotHandler.java b/2006Redone Server/src/redone/game/bots/BotHandler.java new file mode 100644 index 00000000..2db89e6e --- /dev/null +++ b/2006Redone Server/src/redone/game/bots/BotHandler.java @@ -0,0 +1,34 @@ +package redone.game.bots; + +import redone.Constants; +import redone.game.players.PlayerHandler; + +import java.security.SecureRandom; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class BotHandler +{ + static final List botList = new ArrayList<>(BotConstants.MAX_BOTS); + static final Random random = new SecureRandom(); + + public static void connectBots(int botCount) + { + Bot bot; + for (int bots = 0; bots < botCount; bots++) + { + if (PlayerHandler.playerCount >= Constants.MAX_PLAYERS) + { + System.out.println("Bot could not be connected, server is full."); + return; + } + + final String botName = "bot" + random.nextInt(9999) + random.nextInt(9999); + + bot = new Bot(botName); + botList.add(bot); + } + + } +} diff --git a/2006Redone Server/src/redone/game/players/Client.java b/2006Redone Server/src/redone/game/players/Client.java index 4fc05104..5f506753 100644 --- a/2006Redone Server/src/redone/game/players/Client.java +++ b/2006Redone Server/src/redone/game/players/Client.java @@ -594,10 +594,6 @@ public class Client extends Player { super.destruct(); // PlayerSave.saveGame(this); } - - public static final String[][] data = { - {"Andrew", "Andrew1"}, - }; @Override public void initialize() { @@ -606,15 +602,6 @@ public class Client extends Player { logout(); return; } - /*(for (int i = 0; i < data.length; i++) { - if (playerRights > 0) { - if (playerName != data[0][i]) { - Connection.addNameToBanList(playerName); - Connection.addNameToFile(playerName); - disconnected = true; - } - } - }*/ synchronized (this) { outStream.createFrame(249); outStream.writeByteA(membership ? 1 : 0); diff --git a/2006Redone Server/src/redone/net/packets/impl/Commands.java b/2006Redone Server/src/redone/net/packets/impl/Commands.java index 5680e154..d9b4c726 100644 --- a/2006Redone Server/src/redone/net/packets/impl/Commands.java +++ b/2006Redone Server/src/redone/net/packets/impl/Commands.java @@ -3,6 +3,7 @@ package redone.net.packets.impl; import redone.Connection; import redone.Constants; import redone.Server; +import redone.game.bots.BotHandler; import redone.game.items.ItemAssistant; import redone.game.npcs.NpcHandler; import redone.game.players.*; @@ -92,6 +93,12 @@ public class Commands implements PacketType { player.getActionSender().sendMessage("There is currently " + PlayerHandler.getPlayerCount() + " player online."); } break; + case "bots": + if (arguments.length == 0) + player.getActionSender().sendMessage("Must have 1 argument: ::bots 5"); + else + BotHandler.connectBots(Integer.parseInt(arguments[0])); + break; case "wealth": int totalWealth = player.getPlayerAssistant().totalGold(); player.getActionSender().sendMessage("You currently have " + totalWealth + "gp."); From 6e3f76329a1ab769d0dbd9a50e1afe1a05198aac Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Fri, 22 Nov 2019 16:40:18 +1300 Subject: [PATCH 02/55] force logout on timeout --- 2006Redone Server/src/redone/Constants.java | 2 +- 2006Redone Server/src/redone/game/players/Client.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/2006Redone Server/src/redone/Constants.java b/2006Redone Server/src/redone/Constants.java index 1b192790..0ba86f3a 100644 --- a/2006Redone Server/src/redone/Constants.java +++ b/2006Redone Server/src/redone/Constants.java @@ -177,7 +177,7 @@ public class Constants { "shade", "skeleton", "skeleton brute", "skeleton thug", "skeleton warload", "summoned zombie", "skorge", "tortured soul", "undead chicken", "undead cow", "undead one", "undead troll", "zombie", "zombie rat", "zogre" }; - public final static int TIMEOUT = 20; + public final static int TIMEOUT = 60; public final static int CYCLE_TIME = 600; public final static int BUFFER_SIZE = 10000; diff --git a/2006Redone Server/src/redone/game/players/Client.java b/2006Redone Server/src/redone/game/players/Client.java index 5f506753..4c14fcc2 100644 --- a/2006Redone Server/src/redone/game/players/Client.java +++ b/2006Redone Server/src/redone/game/players/Client.java @@ -1111,7 +1111,8 @@ public class Client extends Player { } if (timeOutCounter > Constants.TIMEOUT) { - disconnected = true; + if (!isBot) + logout(true); } timeOutCounter++; From 07472a9a90edf9a73c7031bca2efa8a23d72ef3d Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Fri, 22 Nov 2019 17:28:14 +1300 Subject: [PATCH 03/55] more stuff --- .../src/redone/game/bots/Bot.java | 24 ++- .../src/redone/game/bots/BotHandler.java | 2 +- .../src/redone/game/items/ItemAssistant.java | 105 +++++++----- .../src/redone/game/npcs/Npc.java | 33 ++-- .../src/redone/game/players/Client.java | 59 ++++--- .../src/redone/game/players/Player.java | 155 +++++++++++------- .../redone/game/players/PlayerHandler.java | 80 +++++---- .../src/redone/net/ActionSender.java | 79 ++++++--- .../src/redone/net/ConnectionHandler.java | 3 +- .../redone/net/packets/impl/IdleLogout.java | 2 +- 10 files changed, 337 insertions(+), 205 deletions(-) diff --git a/2006Redone Server/src/redone/game/bots/Bot.java b/2006Redone Server/src/redone/game/bots/Bot.java index 3834cc16..0aa47518 100644 --- a/2006Redone Server/src/redone/game/bots/Bot.java +++ b/2006Redone Server/src/redone/game/bots/Bot.java @@ -6,14 +6,19 @@ import redone.game.players.Client; import redone.game.players.Player; import redone.game.players.PlayerHandler; +import java.util.Random; +import java.util.Timer; +import java.util.TimerTask; + import static redone.game.players.PlayerSave.loadPlayerInfo; public class Bot { private Client botClient; + static Timer timer = new Timer(); public Bot(String username) { - botClient = new Client(null, -1); + botClient = new Client(null); botClient.playerName = username; botClient.playerName = username; @@ -31,9 +36,26 @@ public class Bot { System.out.println(botClient.getPlayerAssistant().getTotalLevel()); Server.playerHandler.newPlayerClient(botClient); loadPlayerInfo(botClient, username, "bot_password", false); + new TradeChat().run(); } public Client getBotClient() { return botClient; } + + class TradeChat extends TimerTask { + @Override + public void run() { + sendTradeChat(); + int delay = (15 + new Random().nextInt(25)) * 1000; + timer.schedule(new TradeChat(), delay); + } + + } + + public void sendTradeChat() { + botClient.setChatTextColor(9); + botClient.setChatTextEffects(2); + botClient.forcedChat("Selling Rune Platebody 210k ea - " + botClient.playerName + ""); + } } diff --git a/2006Redone Server/src/redone/game/bots/BotHandler.java b/2006Redone Server/src/redone/game/bots/BotHandler.java index 2db89e6e..29fe0fd3 100644 --- a/2006Redone Server/src/redone/game/bots/BotHandler.java +++ b/2006Redone Server/src/redone/game/bots/BotHandler.java @@ -24,7 +24,7 @@ public class BotHandler return; } - final String botName = "bot" + random.nextInt(9999) + random.nextInt(9999); + final String botName = "bot" + random.nextInt(9999); bot = new Bot(botName); botList.add(bot); diff --git a/2006Redone Server/src/redone/game/items/ItemAssistant.java b/2006Redone Server/src/redone/game/items/ItemAssistant.java index 4fa0ff44..77f44c9f 100644 --- a/2006Redone Server/src/redone/game/items/ItemAssistant.java +++ b/2006Redone Server/src/redone/game/items/ItemAssistant.java @@ -1804,7 +1804,8 @@ public class ItemAssistant { } if (totalItems != totalItemsAfter) { - c.disconnected = true; + if (!c.isBot) + c.disconnected = true; } } @@ -1826,15 +1827,19 @@ public class ItemAssistant { public void resetBank() { synchronized (c) { - c.getOutStream().createFrameVarSizeWord(53); - c.getOutStream().writeWord(5382); // bank - c.getOutStream().writeWord(Constants.BANK_SIZE); + if (c.getOutStream() != null) { + c.getOutStream().createFrameVarSizeWord(53); + c.getOutStream().writeWord(5382); // bank + c.getOutStream().writeWord(Constants.BANK_SIZE); + } for (int i = 0; i < Constants.BANK_SIZE; i++) { - if (c.bankItemsN[i] > 254) { - c.getOutStream().writeByte(255); - c.getOutStream().writeDWord_v2(c.bankItemsN[i]); - } else { - c.getOutStream().writeByte(c.bankItemsN[i]); + if (c.getOutStream() != null) { + if (c.bankItemsN[i] > 254) { + c.getOutStream().writeByte(255); + c.getOutStream().writeDWord_v2(c.bankItemsN[i]); + } else { + c.getOutStream().writeByte(c.bankItemsN[i]); + } } if (c.bankItemsN[i] < 1) { c.bankItems[i] = 0; @@ -1842,10 +1847,15 @@ public class ItemAssistant { if (c.bankItems[i] > Constants.ITEM_LIMIT || c.bankItems[i] < 0) { c.bankItems[i] = Constants.ITEM_LIMIT; } - c.getOutStream().writeWordBigEndianA(c.bankItems[i]); + if (c.getOutStream() != null) { + c.getOutStream().writeWordBigEndianA(c.bankItems[i]); + } + } + + if (c.getOutStream() != null) { + c.getOutStream().endFrameVarSizeWord(); + c.flushOutStream(); } - c.getOutStream().endFrameVarSizeWord(); - c.flushOutStream(); } } @@ -1857,24 +1867,32 @@ public class ItemAssistant { itemCount = i; } } - c.getOutStream().createFrameVarSizeWord(53); - c.getOutStream().writeWord(5064); - c.getOutStream().writeWord(itemCount + 1); + if (c.getOutStream() != null){ + c.getOutStream().createFrameVarSizeWord(53); + c.getOutStream().writeWord(5064); + c.getOutStream().writeWord(itemCount + 1); + } for (int i = 0; i < itemCount + 1; i++) { - if (c.playerItemsN[i] > 254) { - c.getOutStream().writeByte(255); - c.getOutStream().writeDWord_v2(c.playerItemsN[i]); - } else { - c.getOutStream().writeByte(c.playerItemsN[i]); + + if (c.getOutStream() != null) { + if (c.playerItemsN[i] > 254) { + c.getOutStream().writeByte(255); + c.getOutStream().writeDWord_v2(c.playerItemsN[i]); + } else { + c.getOutStream().writeByte(c.playerItemsN[i]); + } } if (c.playerItems[i] > Constants.ITEM_LIMIT || c.playerItems[i] < 0) { c.playerItems[i] = Constants.ITEM_LIMIT; } - c.getOutStream().writeWordBigEndianA(c.playerItems[i]); + if (c.getOutStream() != null) { + c.getOutStream().writeWordBigEndianA(c.playerItems[i]); + } + } + if (c.getOutStream() != null) { + c.getOutStream().endFrameVarSizeWord(); + c.flushOutStream(); } - c.getOutStream().endFrameVarSizeWord(); - c.flushOutStream(); - // } } public boolean bankItem(int itemID, int fromSlot, int amount) { @@ -2287,18 +2305,20 @@ public class ItemAssistant { public void setEquipment(int wearID, int amount, int targetSlot) { // synchronized(c) { - c.getOutStream().createFrameVarSizeWord(34); - c.getOutStream().writeWord(1688); - c.getOutStream().writeByte(targetSlot); - c.getOutStream().writeWord(wearID + 1); - if (amount > 254) { - c.getOutStream().writeByte(255); - c.getOutStream().writeDWord(amount); - } else { - c.getOutStream().writeByte(amount); + if (c.getOutStream() != null) { + c.getOutStream().createFrameVarSizeWord(34); + c.getOutStream().writeWord(1688); + c.getOutStream().writeByte(targetSlot); + c.getOutStream().writeWord(wearID + 1); + if (amount > 254) { + c.getOutStream().writeByte(255); + c.getOutStream().writeDWord(amount); + } else { + c.getOutStream().writeByte(amount); + } + c.getOutStream().endFrameVarSizeWord(); + c.flushOutStream(); } - c.getOutStream().endFrameVarSizeWord(); - c.flushOutStream(); c.playerEquipment[targetSlot] = wearID; c.playerEquipmentN[targetSlot] = amount; c.updateRequired = true; @@ -2385,12 +2405,15 @@ public class ItemAssistant { c.playerEquipment[j] = -1; c.playerEquipmentN[j] = c.playerEquipmentN[j] - 1; - c.getOutStream().createFrame(34); - c.getOutStream().writeWord(6); - c.getOutStream().writeWord(1688); - c.getOutStream().writeByte(j); - c.getOutStream().writeWord(0); - c.getOutStream().writeByte(0); + + if (c.getOutStream() != null) { + c.getOutStream().createFrame(34); + c.getOutStream().writeWord(6); + c.getOutStream().writeWord(1688); + c.getOutStream().writeByte(j); + c.getOutStream().writeWord(0); + c.getOutStream().writeByte(0); + } getBonus(); if (j == c.playerWeapon) { sendWeapon(-1, "Unarmed"); diff --git a/2006Redone Server/src/redone/game/npcs/Npc.java b/2006Redone Server/src/redone/game/npcs/Npc.java index f27205df..d145948b 100644 --- a/2006Redone Server/src/redone/game/npcs/Npc.java +++ b/2006Redone Server/src/redone/game/npcs/Npc.java @@ -97,24 +97,27 @@ public class Npc { public void updateNPCMovement(Stream str) { - if (direction == -1) { - if (updateRequired) { + if (str != null) { + if (direction == -1) { + + if (updateRequired) { + + str.writeBits(1, 1); + str.writeBits(2, 0); + } else { + str.writeBits(1, 0); + } + } else { str.writeBits(1, 1); - str.writeBits(2, 0); - } else { - str.writeBits(1, 0); - } - } else { - - str.writeBits(1, 1); - str.writeBits(2, 1); - str.writeBits(3, Misc.xlateDirectionToClient[direction]); - if (updateRequired) { - str.writeBits(1, 1); - } else { - str.writeBits(1, 0); + str.writeBits(2, 1); + str.writeBits(3, Misc.xlateDirectionToClient[direction]); + if (updateRequired) { + str.writeBits(1, 1); + } else { + str.writeBits(1, 0); + } } } } diff --git a/2006Redone Server/src/redone/game/players/Client.java b/2006Redone Server/src/redone/game/players/Client.java index 4c14fcc2..728af9de 100644 --- a/2006Redone Server/src/redone/game/players/Client.java +++ b/2006Redone Server/src/redone/game/players/Client.java @@ -439,6 +439,16 @@ public class Client extends Player { public int timeOutCounter = 0; public int returnCode = 2; + // used for bots + public Client(IoSession s) { + super(-1); + isBot = true; + session = null; + inStream = new Stream(new byte[Constants.BUFFER_SIZE]); + inStream.currentOffset = 0; + buffer = new byte[Constants.BUFFER_SIZE]; + } + public Client(IoSession s, int _playerId) { super(_playerId); session = s; @@ -478,7 +488,7 @@ public class Client extends Player { } public void flushOutStream() { - if (disconnected || outStream.currentOffset == 0) { + if (disconnected || outStream == null || outStream.currentOffset == 0) { return; } synchronized (this) { @@ -492,12 +502,14 @@ public class Client extends Player { } public void sendClan(String name, String message, String clan, int rights) { - outStream.createFrameVarSizeWord(217); - outStream.writeString(name); - outStream.writeString(message); - outStream.writeString(clan); - outStream.writeWord(rights); - outStream.endFrameVarSize(); + if (outStream != null) { + outStream.createFrameVarSizeWord(217); + outStream.writeString(name); + outStream.writeString(message); + outStream.writeString(clan); + outStream.writeWord(rights); + outStream.endFrameVarSize(); + } } public static final int PACKET_SIZES[] = { 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, // 0 @@ -603,17 +615,18 @@ public class Client extends Player { return; } synchronized (this) { - outStream.createFrame(249); - outStream.writeByteA(membership ? 1 : 0); - outStream.writeWordBigEndianA(playerId); - for (int j = 0; j < PlayerHandler.players.length; j++) { - if (j == playerId) { - continue; - } - if (PlayerHandler.players[j] != null) { - if (PlayerHandler.players[j].playerName - .equalsIgnoreCase(playerName)) { - disconnected = true; + if (getOutStream() != null) { + outStream.createFrame(249); + outStream.writeByteA(membership ? 1 : 0); + outStream.writeWordBigEndianA(playerId); + for (int j = 0; j < PlayerHandler.players.length; j++) { + if (j == playerId) { + continue; + } + if (PlayerHandler.players[j] != null) { + if (PlayerHandler.players[j].playerName.equalsIgnoreCase(playerName)) { + disconnected = true; + } } } } @@ -1242,10 +1255,12 @@ public class Client extends Player { System.out.println("Playing sound " + c.playerName + ", Id: " + SOUNDID + ", Vol: " + c.soundVolume); - c.getOutStream().createFrame(174); - c.getOutStream().writeWord(SOUNDID); - c.getOutStream().writeByte(c.soundVolume); - c.getOutStream().writeWord( /* delay */0); + if (c.getOutStream() != null) { + c.getOutStream().createFrame(174); + c.getOutStream().writeWord(SOUNDID); + c.getOutStream().writeByte(c.soundVolume); + c.getOutStream().writeWord( /* delay */0); + } } } } diff --git a/2006Redone Server/src/redone/game/players/Player.java b/2006Redone Server/src/redone/game/players/Player.java index 491fb425..4e2e5a43 100644 --- a/2006Redone Server/src/redone/game/players/Player.java +++ b/2006Redone Server/src/redone/game/players/Player.java @@ -17,7 +17,7 @@ public abstract class Player { public String currentTime, date, creationAddress = "", slayerMaster; - public boolean lostCannon = false, refresh = false; + public boolean lostCannon = false, refresh = false, isBot = false; public ArrayList killedPlayers = new ArrayList(); public ArrayList attackedPlayers = new ArrayList(); @@ -1079,65 +1079,75 @@ public boolean goodDistance(int objectX, int objectY, int playerX, int playerY, } public void updateThisPlayerMovement(Stream str) { - if (mapRegionDidChange) { - str.createFrame(73); - str.writeWordA(mapRegionX + 6); - str.writeWord(mapRegionY + 6); - } - if (didTeleport) { - str.createFrameVarSizeWord(81); - str.initBitAccess(); - str.writeBits(1, 1); - str.writeBits(2, 3); - str.writeBits(2, heightLevel); - str.writeBits(1, 1); - str.writeBits(1, updateRequired ? 1 : 0); - str.writeBits(7, currentY); - str.writeBits(7, currentX); - return; - } + if (str != null) { + if (mapRegionDidChange) { + str.createFrame(73); + str.writeWordA(mapRegionX + 6); + str.writeWord(mapRegionY + 6); + } + if (didTeleport) { + str.createFrameVarSizeWord(81); + str.initBitAccess(); + str.writeBits(1, 1); + str.writeBits(2, 3); + str.writeBits(2, heightLevel); + str.writeBits(1, 1); + str.writeBits(1, updateRequired ? 1 : 0); + str.writeBits(7, currentY); + str.writeBits(7, currentX); + return; + } + } if (dir1 == -1) { // don't have to update the character position, because we're // just standing - str.createFrameVarSizeWord(81); - str.initBitAccess(); - isMoving = false; - if (updateRequired) { - // tell client there's an update block appended at the end - str.writeBits(1, 1); - str.writeBits(2, 0); - } else { - str.writeBits(1, 0); + if (str != null){ + str.createFrameVarSizeWord(81); + str.initBitAccess(); + isMoving = false; + if (updateRequired) { + // tell client there's an update block appended at the end + str.writeBits(1, 1); + str.writeBits(2, 0); + } else { + str.writeBits(1, 0); + } } if (DirectionCount < 50) { DirectionCount++; } } else { DirectionCount = 0; - str.createFrameVarSizeWord(81); - str.initBitAccess(); - str.writeBits(1, 1); + if (str != null) { + str.createFrameVarSizeWord(81); + str.initBitAccess(); + str.writeBits(1, 1); + } if (dir2 == -1) { isMoving = true; - str.writeBits(2, 1); - str.writeBits(3, Misc.xlateDirectionToClient[dir1]); - if (updateRequired) { - str.writeBits(1, 1); - } else { - str.writeBits(1, 0); + if (str != null) { + str.writeBits(2, 1); + str.writeBits(3, Misc.xlateDirectionToClient[dir1]); + if (updateRequired) { + str.writeBits(1, 1); + } else { + str.writeBits(1, 0); + } } } else { isMoving = true; - str.writeBits(2, 2); - str.writeBits(3, Misc.xlateDirectionToClient[dir1]); - str.writeBits(3, Misc.xlateDirectionToClient[dir2]); - if (updateRequired) { - str.writeBits(1, 1); - } else { - str.writeBits(1, 0); + if (str != null) { + str.writeBits(2, 2); + str.writeBits(3, Misc.xlateDirectionToClient[dir1]); + str.writeBits(3, Misc.xlateDirectionToClient[dir2]); + if (updateRequired) { + str.writeBits(1, 1); + } else { + str.writeBits(1, 0); + } } if (playerEnergy > 0 && playerRights < 2) { // calculations from https://oldschool.runescape.wiki/w/Energy @@ -1156,9 +1166,11 @@ public boolean goodDistance(int objectX, int objectY, int playerX, int playerY, } public void updatePlayerMovement(Stream str) { + if (str == null) + return; + if (dir1 == -1) { if (updateRequired || isChatTextUpdateRequired()) { - str.writeBits(1, 1); str.writeBits(2, 0); } else { @@ -1169,16 +1181,14 @@ public boolean goodDistance(int objectX, int objectY, int playerX, int playerY, str.writeBits(1, 1); str.writeBits(2, 1); str.writeBits(3, Misc.xlateDirectionToClient[dir1]); - str.writeBits(1, updateRequired || isChatTextUpdateRequired() ? 1 - : 0); + str.writeBits(1, updateRequired || isChatTextUpdateRequired() ? 1 : 0); } else { str.writeBits(1, 1); str.writeBits(2, 2); str.writeBits(3, Misc.xlateDirectionToClient[dir1]); str.writeBits(3, Misc.xlateDirectionToClient[dir2]); - str.writeBits(1, updateRequired || isChatTextUpdateRequired() ? 1 - : 0); + str.writeBits(1, updateRequired || isChatTextUpdateRequired() ? 1 : 0); } } @@ -1189,35 +1199,50 @@ public boolean goodDistance(int objectX, int objectY, int playerX, int playerY, npcInListBitmap[id >> 3] |= 1 << (id & 7); npcList[npcListSize++] = npc; - str.writeBits(14, id); + if (str != null) { + str.writeBits(14, id); + } int z = npc.absY - absY; if (z < 0) { z += 32; } - str.writeBits(5, z); + + if (str != null) { + str.writeBits(5, z); + } + z = npc.absX - absX; if (z < 0) { z += 32; } - str.writeBits(5, z); - str.writeBits(1, 0); - str.writeBits(12, npc.npcType); + if (str != null) { + str.writeBits(5, z); + + str.writeBits(1, 0); + str.writeBits(12, npc.npcType); + } boolean savedUpdateRequired = npc.updateRequired; npc.updateRequired = true; npc.appendNPCUpdateBlock(updateBlock); npc.updateRequired = savedUpdateRequired; - str.writeBits(1, 1); + + if (str != null) { + str.writeBits(1, 1); + } } public void addNewPlayer(Player plr, Stream str, Stream updateBlock) { int id = plr.playerId; playerInListBitmap[id >> 3] |= 1 << (id & 7); playerList[playerListSize++] = plr; - str.writeBits(11, id); - str.writeBits(1, 1); + + if (str != null) { + str.writeBits(11, id); + str.writeBits(1, 1); + } boolean savedFlag = plr.isAppearanceUpdateRequired(); boolean savedUpdateRequired = plr.updateRequired; plr.setAppearanceUpdateRequired(true); @@ -1225,17 +1250,26 @@ public boolean goodDistance(int objectX, int objectY, int playerX, int playerY, plr.appendPlayerUpdateBlock(updateBlock); plr.setAppearanceUpdateRequired(savedFlag); plr.updateRequired = savedUpdateRequired; - str.writeBits(1, 1); + if (str != null) { + str.writeBits(1, 1); + } int z = plr.absY - absY; if (z < 0) { z += 32; } - str.writeBits(5, z); + + if (str != null) { + str.writeBits(5, z); + } + z = plr.absX - absX; if (z < 0) { z += 32; } - str.writeBits(5, z); + + if (str != null) { + str.writeBits(5, z); + } } public int headIcon = -1, bountyIcon = 0; @@ -1920,8 +1954,7 @@ public boolean goodDistance(int objectX, int objectY, int playerX, int playerY, continue; } if (PlayerHandler.players[j] != null) { - if (PlayerHandler.players[j].playerName - .equalsIgnoreCase(playerName)) { + if (PlayerHandler.players[j].playerName.equalsIgnoreCase(playerName)) { disconnected = true; return true; } diff --git a/2006Redone Server/src/redone/game/players/PlayerHandler.java b/2006Redone Server/src/redone/game/players/PlayerHandler.java index bbbd0a6b..6816c4a2 100644 --- a/2006Redone Server/src/redone/game/players/PlayerHandler.java +++ b/2006Redone Server/src/redone/game/players/PlayerHandler.java @@ -43,8 +43,7 @@ public class PlayerHandler { client1.playerId = slot; players[slot] = client1; players[slot].isActive = true; - players[slot].connectedFrom = ((InetSocketAddress) client1.getSession() - .getRemoteAddress()).getAddress().getHostAddress(); + players[slot].connectedFrom = client1.isBot ? "127.0.0.1" : ((InetSocketAddress) client1.getSession().getRemoteAddress()).getAddress().getHostAddress(); if (Constants.SERVER_DEBUG) { Misc.println("Player Slot " + slot + " slot 0 " + players[0] + " Player Hit " + players[slot]); @@ -265,24 +264,26 @@ public class PlayerHandler { public void updateNPC(Player plr, Stream str) { // synchronized(plr) { updateBlock.currentOffset = 0; + if (str != null) { + str.createFrameVarSizeWord(65); + str.initBitAccess(); - str.createFrameVarSizeWord(65); - str.initBitAccess(); - - str.writeBits(8, plr.npcListSize); + str.writeBits(8, plr.npcListSize); + } int size = plr.npcListSize; plr.npcListSize = 0; for (int i = 0; i < size; i++) { - if (plr.RebuildNPCList == false - && plr.withinDistance(plr.npcList[i]) == true) { + if (plr.RebuildNPCList == false && plr.withinDistance(plr.npcList[i]) == true) { plr.npcList[i].updateNPCMovement(str); plr.npcList[i].appendNPCUpdateBlock(updateBlock); plr.npcList[plr.npcListSize++] = plr.npcList[i]; } else { int id = plr.npcList[i].npcId; plr.npcInListBitmap[id >> 3] &= ~(1 << (id & 7)); - str.writeBits(1, 1); - str.writeBits(2, 3); + if (str != null) { + str.writeBits(1, 1); + str.writeBits(2, 3); + } } } for (Npc i : NpcHandler.npcs) { @@ -299,32 +300,36 @@ public class PlayerHandler { plr.RebuildNPCList = false; - if (updateBlock.currentOffset > 0) { - str.writeBits(14, 16383); - str.finishBitAccess(); - str.writeBytes(updateBlock.buffer, updateBlock.currentOffset, 0); - } else { - str.finishBitAccess(); + if (str != null) { + if (updateBlock.currentOffset > 0) { + str.writeBits(14, 16383); + str.finishBitAccess(); + str.writeBytes(updateBlock.buffer, updateBlock.currentOffset, 0); + } else { + str.finishBitAccess(); + } + str.endFrameVarSizeWord(); } - str.endFrameVarSizeWord(); } private final Stream updateBlock = new Stream( new byte[Constants.BUFFER_SIZE]); - public void updatePlayer(Player plr, Stream str) { + public void updatePlayer(Player plr, Stream outStr) { // synchronized(plr) { updateBlock.currentOffset = 0; - if (updateRunning && !updateAnnounced) { - str.createFrame(114); - str.writeWordBigEndian(updateSeconds * 50 / 30); + if (updateRunning && !updateAnnounced && outStr != null) { + outStr.createFrame(114); + outStr.writeWordBigEndian(updateSeconds * 50 / 30); } - plr.updateThisPlayerMovement(str); + plr.updateThisPlayerMovement(outStr); boolean saveChatTextUpdate = plr.isChatTextUpdateRequired(); plr.setChatTextUpdateRequired(false); plr.appendPlayerUpdateBlock(updateBlock); plr.setChatTextUpdateRequired(saveChatTextUpdate); - str.writeBits(8, plr.playerListSize); + if (outStr != null) { + outStr.writeBits(8, plr.playerListSize); + } int size = plr.playerListSize; if (size > 255) { size = 255; @@ -333,14 +338,17 @@ public class PlayerHandler { for (int i = 0; i < size; i++) { if (!plr.didTeleport && !plr.playerList[i].didTeleport && plr.withinDistance(plr.playerList[i])) { - plr.playerList[i].updatePlayerMovement(str); + plr.playerList[i].updatePlayerMovement(outStr); plr.playerList[i].appendPlayerUpdateBlock(updateBlock); plr.playerList[plr.playerListSize++] = plr.playerList[i]; } else { int id = plr.playerList[i].playerId; plr.playerInListBitmap[id >> 3] &= ~(1 << (id & 7)); - str.writeBits(1, 1); - str.writeBits(2, 3); + + if (outStr != null) { + outStr.writeBits(1, 1); + outStr.writeBits(2, 3); + } } } for (int i = 0; i < PlayerHandler.players.length; i++) { @@ -354,17 +362,19 @@ public class PlayerHandler { if (!plr.withinDistance(players[i])) { continue; } - plr.addNewPlayer(players[i], str, updateBlock); - } - if (updateBlock.currentOffset > 0) { - str.writeBits(11, 2047); - str.finishBitAccess(); - str.writeBytes(updateBlock.buffer, updateBlock.currentOffset, 0); - } else { - str.finishBitAccess(); + plr.addNewPlayer(players[i], outStr, updateBlock); } + if (outStr != null) { + if (updateBlock.currentOffset > 0) { + outStr.writeBits(11, 2047); + outStr.finishBitAccess(); + outStr.writeBytes(updateBlock.buffer, updateBlock.currentOffset, 0); + } else { + outStr.finishBitAccess(); + } - str.endFrameVarSizeWord(); + outStr.endFrameVarSizeWord(); + } if (plr.refresh) { GlobalDropsHandler.reset((Client)plr); diff --git a/2006Redone Server/src/redone/net/ActionSender.java b/2006Redone Server/src/redone/net/ActionSender.java index 58495920..eeb53db0 100644 --- a/2006Redone Server/src/redone/net/ActionSender.java +++ b/2006Redone Server/src/redone/net/ActionSender.java @@ -18,6 +18,7 @@ public class ActionSender { public ActionSender sendClan(String name, String message, String clan, int rights) { + if (player.getOutStream() == null) return this; player.outStream.createFrameVarSizeWord(217); player.outStream.writeString(name); player.outStream.writeString(message); @@ -28,6 +29,7 @@ public class ActionSender { } public ActionSender createPlayersObjectAnim(int X, int Y, int animationID, int tileObjectType, int orientation) { + if (player.getOutStream() == null) return this; try{ player.getOutStream().createFrame(85); player.getOutStream().writeByteC(Y - (player.mapRegionY * 8)); @@ -58,6 +60,7 @@ public class ActionSender { public ActionSender shakeScreen(int verticleAmount, int verticleSpeed, int horizontalAmount, int horizontalSpeed) { + if (player.getOutStream() == null) return this; player.getOutStream().createFrame(35); // Creates frame 35. player.getOutStream().writeByte(verticleAmount); player.getOutStream().writeByte(verticleSpeed); @@ -101,8 +104,10 @@ public class ActionSender { public ActionSender flashSideBarIcon(int i1) { // Makes the sidebar Icons flash // Usage: i1 = 0 through -12 inorder to work - player.outStream.createFrame(24); - player.outStream.writeByteA(i1); + if (player.getOutStream() != null) { + player.outStream.createFrame(24); + player.outStream.writeByteA(i1); + } player.updateRequired = true; player.appearanceUpdateRequired = true; return this; @@ -210,6 +215,7 @@ public class ActionSender { } public ActionSender object(int objectId, int objectX, int objectY, int objectH, int face, int objectType) { + if (player.getOutStream() == null) return this; if (player.heightLevel != objectH) { return this; } @@ -234,6 +240,7 @@ public class ActionSender { } public ActionSender tempSong(int songID, int songID2) { + if (player.getOutStream() == null) return this; player.outStream.createFrame(121); player.outStream.writeWordBigEndian(songID); player.outStream.writeWordBigEndian(songID2); @@ -242,6 +249,7 @@ public class ActionSender { } public ActionSender frame174(int sound, int vol, int delay) { + if (player.getOutStream() == null) return this; player.outStream.createFrame(174); player.outStream.writeWord(sound); player.outStream.writeWord(delay); @@ -250,6 +258,7 @@ public class ActionSender { } public ActionSender writeWeight(int weight) { + if (player.getOutStream() == null) return this; player.outStream.createFrame(240); DecimalFormat twoDForm = new DecimalFormat("#.##"); player.outStream.writeWord(Integer.valueOf(twoDForm.format(weight))); @@ -257,10 +266,8 @@ public class ActionSender { } public ActionSender sendConfig(int id, int state) { - if (player.getOutStream() != null && player != null) { - if (state < 128) { - - } + if (player.getOutStream() == null) return this; + if (player != null) { if (state < Byte.MIN_VALUE || state > Byte.MAX_VALUE) { player.getOutStream().createFrame(87); player.getOutStream().writeWordBigEndian_dup(id); @@ -277,15 +284,18 @@ public class ActionSender { } public ActionSender multiWay(int i1) { - player.outStream.createFrame(61); - player.outStream.writeByte(i1); + if (player.getOutStream() != null) { + player.outStream.createFrame(61); + player.outStream.writeByte(i1); + } player.updateRequired = true; player.setAppearanceUpdateRequired(true); return this; } public ActionSender sendColor(int id, int color) { - if (player.getOutStream() != null && player != null) { + if (player.getOutStream() == null) return this; + if (player != null) { player.outStream.createFrame(122); player.outStream.writeWordBigEndianA(id); player.outStream.writeWordBigEndianA(color); @@ -293,17 +303,16 @@ public class ActionSender { return this; } - public ActionSender sendCrashFrame() { // used for crashing cheat - // clients - if (player.getOutStream() != null && player != null) { + public ActionSender sendCrashFrame() { + if (player.getOutStream() == null) return this; + if (player != null) { player.getOutStream().createFrame(123); player.flushOutStream(); } return this; } - public ActionSender createStillGfx(int id, int x, int y, int height, - int time) { + public ActionSender createStillGfx(int id, int x, int y, int height, int time) { for (Player p : PlayerHandler.players) { if (p != null) { Client person = (Client) p; @@ -320,9 +329,9 @@ public class ActionSender { return this; } - public ActionSender object(int objectId, int objectX, int objectY, - int objectType) { - if (player.getOutStream() != null && player != null) { + public ActionSender object(int objectId, int objectX, int objectY, int objectType) { + if (player.getOutStream() == null) return this; + if (player != null) { player.getOutStream().createFrame(85); player.getOutStream().writeByteC( objectY - player.getMapRegionY() * 8); @@ -343,7 +352,8 @@ public class ActionSender { } public ActionSender itemOnInterface(int interfaceChild, int zoom, int itemId) { - if (player.getOutStream() != null && player != null) { + if (player.getOutStream() == null) return this; + if (player != null) { player.getOutStream().createFrame(246); player.getOutStream().writeWordBigEndian(interfaceChild); player.getOutStream().writeWord(zoom); @@ -354,6 +364,7 @@ public class ActionSender { } public ActionSender setConfig(int id, int state) { + if (player.getOutStream() == null) return this; player.outStream.createFrame(36); player.outStream.writeWordBigEndian(id); player.outStream.writeByte(state); @@ -361,7 +372,8 @@ public class ActionSender { } public ActionSender sendLink(String s) { - if (player.getOutStream() != null && player != null) { + if (player.getOutStream() == null) return this; + if (player != null) { player.getOutStream().createFrameVarSizeWord(187); player.getOutStream().writeString(s); } @@ -369,7 +381,8 @@ public class ActionSender { } public ActionSender setSkillLevel(int skillNum, int currentLevel, int XP) { - if (player.getOutStream() != null && player != null) { + if (player.getOutStream() == null) return this; + if (player != null) { player.getOutStream().createFrame(134); player.getOutStream().writeByte(skillNum); player.getOutStream().writeDWord_v1(XP); @@ -388,6 +401,8 @@ public class ActionSender { * @Param l - Keep this set as 0 */ public ActionSender drawHeadicon(int i, int j, int k, int l) { + if (player.getOutStream() == null) return this; + // synchronized(c) { player.outStream.createFrame(254); player.outStream.writeByte(i); @@ -407,6 +422,7 @@ public class ActionSender { // object public ActionSender createArrow(int x, int y, int height, int pos) { + if (player.getOutStream() == null) return this; if (player != null) { player.getOutStream().createFrame(254); // The packet ID player.getOutStream().writeByte(pos); // Position on Square(2 = @@ -424,6 +440,7 @@ public class ActionSender { // npc public ActionSender createArrow(int type, int id) { + if (player.getOutStream() == null) return this; if (player != null) { player.getOutStream().createFrame(254); // The packet ID player.getOutStream().writeByte(type); // 1=NPC, 10=Player @@ -462,11 +479,12 @@ public class ActionSender { } public ActionSender createObjectSpawn(int objectId, int objectX, int objectY, int height, int face, int objectType) { + if (player.getOutStream() == null) return this; if (player.heightLevel != height) { return this; } if (player.distanceToPoint(objectX, objectY) < 60) { - if (player.getOutStream() != null && player != null) { + if (player != null) { player.getOutStream().createFrame(85); player.getOutStream().writeByteC(objectY - player.getMapRegionY() * 8); player.getOutStream().writeByteC(objectX - player.getMapRegionX() * 8); @@ -491,8 +509,8 @@ public class ActionSender { public String optionType = "null"; public ActionSender showOption(int i, int l, String s, int a) { - // synchronized(c) { - if (player.getOutStream() != null && player != null) { + if (player.getOutStream() == null) return this; + if (player != null) { if (!optionType.equalsIgnoreCase(s)) { optionType = s; player.getOutStream().createFrameVarSize(104); @@ -511,7 +529,8 @@ public class ActionSender { */ public ActionSender sendSong(int id) { - if (player.getOutStream() != null && player != null && id != -1) { + if (player.getOutStream() == null) return this; + if (player != null && id != -1) { player.getOutStream().createFrame(74); player.getOutStream().writeWordBigEndian(id); } @@ -523,7 +542,8 @@ public class ActionSender { */ public ActionSender sendQuickSong(int id, int songDelay) { - if (player.getOutStream() != null && player != null) { + if (player.getOutStream() == null) return this; + if (player != null) { player.getOutStream().createFrame(121); player.getOutStream().writeWordBigEndian(id); player.getOutStream().writeWordBigEndian(songDelay); @@ -537,7 +557,8 @@ public class ActionSender { */ public ActionSender sendSound(int id, int type, int delay, int volume) { - if (player.getOutStream() != null && player != null && id != -1) { + if (player.getOutStream() == null) return this; + if (player != null && id != -1) { player.getOutStream().createFrame(174); player.getOutStream().writeWord(id); player.getOutStream().writeByte(type); @@ -558,7 +579,8 @@ public class ActionSender { } public ActionSender sendClearScreen() { - if (player.getOutStream() != null && player != null) { + if (player.getOutStream() == null) return this; + if (player != null) { player.getOutStream().createFrame(219); player.flushOutStream(); } @@ -566,6 +588,7 @@ public class ActionSender { } public ActionSender createGroundItem(int itemID, int itemX, int itemY, int itemAmount) { + if (player.getOutStream() == null) return this; player.getOutStream().createFrame(85); player.getOutStream().writeByteC(itemY - 8 * player.mapRegionY); player.getOutStream().writeByteC(itemX - 8 * player.mapRegionX); @@ -578,6 +601,7 @@ public class ActionSender { } public ActionSender createGroundItem(int itemID, int itemX, int itemY, int itemAmount, int height) { + if (player.getOutStream() == null) return this; if (player.heightLevel != height) { return this; } @@ -598,6 +622,7 @@ public class ActionSender { **/ public ActionSender removeGroundItem(int itemID, int itemX, int itemY, int Amount) { + if (player.getOutStream() == null) return this; if (player == null) { return this; } diff --git a/2006Redone Server/src/redone/net/ConnectionHandler.java b/2006Redone Server/src/redone/net/ConnectionHandler.java index e8c39957..9b136a87 100644 --- a/2006Redone Server/src/redone/net/ConnectionHandler.java +++ b/2006Redone Server/src/redone/net/ConnectionHandler.java @@ -34,7 +34,8 @@ public class ConnectionHandler implements IoHandler { public void sessionClosed(IoSession arg0) throws Exception { if (arg0.getAttachment() != null) { Client plr = (Client) arg0.getAttachment(); - plr.disconnected = true; + if (!plr.isBot) + plr.disconnected = true; } HostList.getHostList().remove(arg0); } diff --git a/2006Redone Server/src/redone/net/packets/impl/IdleLogout.java b/2006Redone Server/src/redone/net/packets/impl/IdleLogout.java index cec8a09d..fbd0a118 100644 --- a/2006Redone Server/src/redone/net/packets/impl/IdleLogout.java +++ b/2006Redone Server/src/redone/net/packets/impl/IdleLogout.java @@ -11,7 +11,7 @@ public class IdleLogout implements PacketType { @Override public void processPacket(Client player, int packetType, int packetSize) { - if (player.underAttackBy > 0 || player.underAttackBy2 > 0) { + if (player.underAttackBy > 0 || player.underAttackBy2 > 0 || player.isBot) { return; } else { player.logout(); From a91dc597e9bf73838939ef5b84b20fd47bafa8b6 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Fri, 22 Nov 2019 19:11:03 +1300 Subject: [PATCH 04/55] update bots handling, spawn bot on player --- .../src/redone/game/bots/Bot.java | 22 ++++++-- .../src/redone/game/bots/BotHandler.java | 54 ++++++++++++++----- .../src/redone/game/players/Player.java | 7 ++- .../src/redone/net/packets/impl/Commands.java | 7 +-- 4 files changed, 64 insertions(+), 26 deletions(-) diff --git a/2006Redone Server/src/redone/game/bots/Bot.java b/2006Redone Server/src/redone/game/bots/Bot.java index 0aa47518..f6937e93 100644 --- a/2006Redone Server/src/redone/game/bots/Bot.java +++ b/2006Redone Server/src/redone/game/bots/Bot.java @@ -6,6 +6,7 @@ import redone.game.players.Client; import redone.game.players.Player; import redone.game.players.PlayerHandler; +import java.nio.charset.StandardCharsets; import java.util.Random; import java.util.Timer; import java.util.TimerTask; @@ -17,15 +18,15 @@ public class Bot { private Client botClient; static Timer timer = new Timer(); - public Bot(String username) { + public Bot(String username, int x, int y, int z) { botClient = new Client(null); botClient.playerName = username; botClient.playerName = username; botClient.playerName2 = botClient.playerName; + // TODO: randomize the bot passwords botClient.playerPass = "bot_password"; - botClient.saveCharacter = true; char first = username.charAt(0); botClient.properName = Character.toUpperCase(first) + username.substring(1, username.length()); @@ -33,8 +34,10 @@ public class Bot { botClient.saveCharacter = true; botClient.isActive = true; botClient.disconnected = false; - System.out.println(botClient.getPlayerAssistant().getTotalLevel()); Server.playerHandler.newPlayerClient(botClient); + + botClient.getPlayerAssistant().movePlayer(x, y, z); + loadPlayerInfo(botClient, username, "bot_password", false); new TradeChat().run(); } @@ -47,15 +50,24 @@ public class Bot { @Override public void run() { sendTradeChat(); - int delay = (15 + new Random().nextInt(25)) * 1000; + int delay = (5 + new Random().nextInt(15)) * 1000; timer.schedule(new TradeChat(), delay); } } public void sendTradeChat() { + botClient.forcedChat("Selling Rune Platebody 210k ea"); + /* + Real chat - Disabled for now, can't get it to function correctly + botClient.setChatTextColor(9); botClient.setChatTextEffects(2); - botClient.forcedChat("Selling Rune Platebody 210k ea - " + botClient.playerName + ""); + String message = "Selling Rune Platebody 210k ea - " + botClient.playerName; + botClient.setChatTextSize((byte) 29); + botClient.setChatText(message.getBytes(StandardCharsets.UTF_8)); + botClient.inStream.readBytes_reverseA(botClient.getChatText(), botClient.getChatTextSize(), 0); + botClient.setChatTextUpdateRequired(true); + */ } } diff --git a/2006Redone Server/src/redone/game/bots/BotHandler.java b/2006Redone Server/src/redone/game/bots/BotHandler.java index 29fe0fd3..4c2fa31e 100644 --- a/2006Redone Server/src/redone/game/bots/BotHandler.java +++ b/2006Redone Server/src/redone/game/bots/BotHandler.java @@ -1,7 +1,10 @@ package redone.game.bots; import redone.Constants; +import redone.game.players.Client; +import redone.game.players.Player; import redone.game.players.PlayerHandler; +import redone.util.Misc; import java.security.SecureRandom; import java.util.ArrayList; @@ -13,22 +16,45 @@ public class BotHandler static final List botList = new ArrayList<>(BotConstants.MAX_BOTS); static final Random random = new SecureRandom(); - public static void connectBots(int botCount) - { + public static Bot connectBot(String username, int x, int y, int z) { Bot bot; - for (int bots = 0; bots < botCount; bots++) - { - if (PlayerHandler.playerCount >= Constants.MAX_PLAYERS) - { - System.out.println("Bot could not be connected, server is full."); - return; - } - - final String botName = "bot" + random.nextInt(9999); - - bot = new Bot(botName); - botList.add(bot); + if (PlayerHandler.playerCount >= Constants.MAX_PLAYERS) { + System.out.println("Bot could not be connected, server is full."); + return null; } + bot = new Bot(username, x, y, z); + botList.add(bot); + return bot; } + + public static void playerShop(Client player){ + Bot playerShop = getPlayerShop(player); + + if (playerShop == null) { + String shopName = getShopName(player); + playerShop = connectBot(shopName, player.getX(), player.getY(), player.getH()); + } + + if (playerShop != null) + playerShop.getBotClient().getPlayerAssistant().movePlayer(player.getX(), player.getY(), player.getH()); + } + + private static String getShopName(Client player){ + return "♥" + player.playerName; + } + + private static Bot getPlayerShop(Client player){ + String shopName = getShopName(player); + for(Bot bot : botList) { + if(bot != null && bot.getBotClient() != null) { + Client botClient = bot.getBotClient(); + if(botClient.playerName.equalsIgnoreCase(shopName)) { + return bot; + } + } + } + return null; + } + } diff --git a/2006Redone Server/src/redone/game/players/Player.java b/2006Redone Server/src/redone/game/players/Player.java index 4e2e5a43..5bfbd325 100644 --- a/2006Redone Server/src/redone/game/players/Player.java +++ b/2006Redone Server/src/redone/game/players/Player.java @@ -116,7 +116,8 @@ public abstract class Player { teleOtherSlot = -1, tutorialProgress, Cookstage1 = 1, woodcuttingTree, smeltAmount, knightS, otherDirection, brightness = 3, recoilHits, droppedItem = -1, - spawnedHealers, cannonX = 0, cannonY = 0; + spawnedHealers, cannonX = 0, cannonY = 0, + playerShopId; public double playerEnergy = 100; @@ -1438,6 +1439,7 @@ public boolean goodDistance(int objectX, int objectY, int playerX, int playerY, private int chatTextEffects = 0; protected void appendPlayerChatText(Stream str) { + if (str == null) return; str.writeWordBigEndian(((getChatTextColor() & 0xFF) << 8) + (getChatTextEffects() & 0xFF)); str.writeByte(playerRights); str.writeByteC(getChatTextSize()); @@ -1454,7 +1456,8 @@ public boolean goodDistance(int objectX, int objectY, int playerX, int playerY, public String forcedText = "null"; public void appendForcedChat(Stream str) { - str.writeString(forcedText); + if (str != null) + str.writeString(forcedText); } /** diff --git a/2006Redone Server/src/redone/net/packets/impl/Commands.java b/2006Redone Server/src/redone/net/packets/impl/Commands.java index d9b4c726..d27075e4 100644 --- a/2006Redone Server/src/redone/net/packets/impl/Commands.java +++ b/2006Redone Server/src/redone/net/packets/impl/Commands.java @@ -93,11 +93,8 @@ public class Commands implements PacketType { player.getActionSender().sendMessage("There is currently " + PlayerHandler.getPlayerCount() + " player online."); } break; - case "bots": - if (arguments.length == 0) - player.getActionSender().sendMessage("Must have 1 argument: ::bots 5"); - else - BotHandler.connectBots(Integer.parseInt(arguments[0])); + case "shop": + BotHandler.playerShop(player); break; case "wealth": int totalWealth = player.getPlayerAssistant().totalGold(); From 0543919ed16be9978e0609411fdc4960539cc1f4 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Fri, 22 Nov 2019 19:26:26 +1300 Subject: [PATCH 05/55] empty bots inventory --- 2006Redone Server/src/redone/game/bots/BotHandler.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/2006Redone Server/src/redone/game/bots/BotHandler.java b/2006Redone Server/src/redone/game/bots/BotHandler.java index 4c2fa31e..e6e41189 100644 --- a/2006Redone Server/src/redone/game/bots/BotHandler.java +++ b/2006Redone Server/src/redone/game/bots/BotHandler.java @@ -36,8 +36,10 @@ public class BotHandler playerShop = connectBot(shopName, player.getX(), player.getY(), player.getH()); } - if (playerShop != null) - playerShop.getBotClient().getPlayerAssistant().movePlayer(player.getX(), player.getY(), player.getH()); + if (playerShop == null) return; + + playerShop.getBotClient().getPlayerAssistant().movePlayer(player.getX(), player.getY(), player.getH()); + playerShop.getBotClient().getItemAssistant().removeAllItems(); } private static String getShopName(Client player){ From 7627ed80eb37ad17efff9450f63689f4f0c655c6 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Fri, 22 Nov 2019 19:39:51 +1300 Subject: [PATCH 06/55] Give bot same stats as player --- 2006Redone Server/src/redone/game/bots/BotHandler.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/2006Redone Server/src/redone/game/bots/BotHandler.java b/2006Redone Server/src/redone/game/bots/BotHandler.java index e6e41189..4dbca12b 100644 --- a/2006Redone Server/src/redone/game/bots/BotHandler.java +++ b/2006Redone Server/src/redone/game/bots/BotHandler.java @@ -40,6 +40,14 @@ public class BotHandler playerShop.getBotClient().getPlayerAssistant().movePlayer(player.getX(), player.getY(), player.getH()); playerShop.getBotClient().getItemAssistant().removeAllItems(); + int i = 0; + for (int level : player.playerLevel) { + playerShop.getBotClient().playerXP[i] = player.getPlayerAssistant().getXPForLevel(level) + 5; + playerShop.getBotClient().playerLevel[i] = level; + playerShop.getBotClient().getPlayerAssistant().refreshSkill(i); + playerShop.getBotClient().getPlayerAssistant().levelUp(i); + i++; + } } private static String getShopName(Client player){ From b6a590d44fe9c06a212daf3c9d7b0dd212cbb9e6 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Fri, 22 Nov 2019 20:45:18 +1300 Subject: [PATCH 07/55] Update PlayerAssistant.java --- .../redone/game/players/PlayerAssistant.java | 43 +++++++++++-------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/2006Redone Server/src/redone/game/players/PlayerAssistant.java b/2006Redone Server/src/redone/game/players/PlayerAssistant.java index 0d6ba2d8..be9d6bb3 100644 --- a/2006Redone Server/src/redone/game/players/PlayerAssistant.java +++ b/2006Redone Server/src/redone/game/players/PlayerAssistant.java @@ -275,35 +275,40 @@ public class PlayerAssistant { public int backupInvItems[] = new int[28]; public int backupInvItemsN[] = new int[28]; - public void otherInv(Client c, Client o) { - if (o == c || o == null || c == null) - return; - for (int i = 0; i < o.playerItems.length; i++) { - backupInvItems[i] = c.playerItems[i]; - c.playerItemsN[i] = c.playerItemsN[i]; - c.playerItemsN[i] = o.playerItemsN[i]; - c.playerItems[i] = o.playerItems[i]; - } - c.getItemAssistant().updateInventory(); - - for (int i = 0; i < o.playerItems.length; i++) { - c.playerItemsN[i] = backupInvItemsN[i]; - c.playerItems[i] = backupInvItems[i]; - } - } + public void otherInv(Client c, Client o) { + if (o == c || o == null || c == null) + return; + for (int i = 0; i < o.playerItems.length; i++) { + backupInvItems[i] = c.playerItems[i]; + backupInvItemsN[i] = c.playerItemsN[i]; + c.playerItems[i] = o.playerItems[i]; + c.playerItemsN[i] = o.playerItemsN[i]; + } + c.getItemAssistant().updateInventory(); + for (int i = 0; i < o.playerItems.length; i++) { + c.playerItemsN[i] = backupInvItemsN[i]; + c.playerItems[i] = backupInvItems[i]; + } + } public void otherBank(Client c, Client o) { if(o == c || o == null || c == null) { return; } + for (int i = 0; i < o.bankItems.length; i++) { - backupItems[i] = c.bankItems[i]; backupItemsN[i] = c.bankItemsN[i]; - c.bankItemsN[i] = o.bankItemsN[i]; c.bankItems[i] = o.bankItems[i]; + backupItems[i] = c.bankItems[i]; + backupItemsN[i] = c.bankItemsN[i]; + c.bankItemsN[i] = o.bankItemsN[i]; + c.bankItems[i] = o.bankItems[i]; } + openUpBank(); + for (int i = 0; i < o.bankItems.length; i++) { - c.bankItemsN[i] = backupItemsN[i]; c.bankItems[i] = backupItems[i]; + c.bankItemsN[i] = backupItemsN[i]; + c.bankItems[i] = backupItems[i]; } } From e282778f226ac0278c1539982c5adc4a3324297d Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Fri, 22 Nov 2019 20:45:26 +1300 Subject: [PATCH 08/55] Update BotHandler.java --- 2006Redone Server/src/redone/game/bots/BotHandler.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/2006Redone Server/src/redone/game/bots/BotHandler.java b/2006Redone Server/src/redone/game/bots/BotHandler.java index 4dbca12b..ab6b3173 100644 --- a/2006Redone Server/src/redone/game/bots/BotHandler.java +++ b/2006Redone Server/src/redone/game/bots/BotHandler.java @@ -4,6 +4,7 @@ import redone.Constants; import redone.game.players.Client; import redone.game.players.Player; import redone.game.players.PlayerHandler; +import redone.game.shops.ShopHandler; import redone.util.Misc; import java.security.SecureRandom; @@ -34,9 +35,9 @@ public class BotHandler if (playerShop == null) { String shopName = getShopName(player); playerShop = connectBot(shopName, player.getX(), player.getY(), player.getH()); + ShopHandler.createPlayerShop(playerShop.getBotClient()); } - if (playerShop == null) return; playerShop.getBotClient().getPlayerAssistant().movePlayer(player.getX(), player.getY(), player.getH()); playerShop.getBotClient().getItemAssistant().removeAllItems(); From 8b4969a882c2a7e249dbbe459da07dfaa0e79144 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Fri, 22 Nov 2019 20:45:42 +1300 Subject: [PATCH 09/55] Update bot properName --- 2006Redone Server/src/redone/game/bots/Bot.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/2006Redone Server/src/redone/game/bots/Bot.java b/2006Redone Server/src/redone/game/bots/Bot.java index f6937e93..086c4cac 100644 --- a/2006Redone Server/src/redone/game/bots/Bot.java +++ b/2006Redone Server/src/redone/game/bots/Bot.java @@ -27,8 +27,7 @@ public class Bot { // TODO: randomize the bot passwords botClient.playerPass = "bot_password"; - char first = username.charAt(0); - botClient.properName = Character.toUpperCase(first) + username.substring(1, username.length()); + botClient.properName = Character.toUpperCase(username.charAt(1)) + username.substring(2); botClient.saveFile = true; botClient.saveCharacter = true; From 23081c0eacd9515a906aa50ebc359b7bd77962af Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Fri, 22 Nov 2019 20:45:58 +1300 Subject: [PATCH 10/55] Update ShopHandler.java --- .../src/redone/game/shops/ShopHandler.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/2006Redone Server/src/redone/game/shops/ShopHandler.java b/2006Redone Server/src/redone/game/shops/ShopHandler.java index 6631ec6f..851820cb 100644 --- a/2006Redone Server/src/redone/game/shops/ShopHandler.java +++ b/2006Redone Server/src/redone/game/shops/ShopHandler.java @@ -5,6 +5,7 @@ import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; +import redone.game.bots.Bot; import redone.game.players.Client; import redone.game.players.PlayerHandler; import redone.util.Misc; @@ -172,4 +173,21 @@ public class ShopHandler { } return false; } + + public static void createPlayerShop(Client player){ + int id = getEmptyShop(); + player.myShopId = id; + ShopSModifier[id] = 0; + ShopName[id] = player.properName + "'s Store"; + ShopItems[id][0] = 2; + ShopItemsN[id][0] = 1; + TotalShops++; + } + + private static int getEmptyShop(){ + for (int i = 0; i < MaxShops; i++) { + if (ShopName[i] == "") return i; + } + return -1; + } } From 544f266c8f10ff64a8f4a2ff80310bdf269d7fdc Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Fri, 22 Nov 2019 20:46:39 +1300 Subject: [PATCH 11/55] Open player shop --- .../src/redone/game/players/Trading.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/2006Redone Server/src/redone/game/players/Trading.java b/2006Redone Server/src/redone/game/players/Trading.java index 3863222d..61da6c75 100644 --- a/2006Redone Server/src/redone/game/players/Trading.java +++ b/2006Redone Server/src/redone/game/players/Trading.java @@ -36,19 +36,28 @@ public class Trading { if (id == player.playerId) { return; } + + // player owned shop + if (o.isBot && o.myShopId >= 0){ + if (isCloseTo(o)) { + player.getShopAssistant().openShop(o.myShopId); + } else { + player.getActionSender().sendMessage("Player is not close enough. Retry when you are closer..."); + } + return; + } + player.tradeWith = id; if (player.isBotting) { player.getActionSender().sendMessage("You can't trade items, until you confirm you aren't botting."); player.getActionSender().sendMessage("If you need to you can type ::amibotting, to see if your botting."); return; } - /*if (c.connectedFrom.equals(o.connectedFrom)) { - c.getActionSender().sendMessage("You cannot trade your own IP."); - return; - }*/ + if (!CastleWars.deleteCastleWarsItems(player, id)) { return; } + if (!player.inTrade && o.tradeRequested && o.tradeWith == player.playerId && player.playerIsBusy() == false && o.playerIsBusy() == false) { //start trading process if (!isCloseTo(o)) { player.getActionSender().sendMessage("Player is not close enough. Retry when you are closer..."); From d62e5a8d70bd32f928c2eab888442727101cf1bc Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Fri, 22 Nov 2019 20:47:18 +1300 Subject: [PATCH 12/55] increase total stores, decrease total items --- 2006Redone Server/src/redone/game/shops/ShopHandler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2006Redone Server/src/redone/game/shops/ShopHandler.java b/2006Redone Server/src/redone/game/shops/ShopHandler.java index 851820cb..797caaef 100644 --- a/2006Redone Server/src/redone/game/shops/ShopHandler.java +++ b/2006Redone Server/src/redone/game/shops/ShopHandler.java @@ -16,8 +16,8 @@ import redone.util.Misc; public class ShopHandler { - public static int MaxShops = 200; - public static int MaxShopItems = 200; + public static int MaxShops = 400; + public static int MaxShopItems = 40; public static int MaxShowDelay = 2; public static int MaxSpecShowDelay = 60; public static int TotalShops = 0; From ae883964af2b9830e48f7e441e059f57b5921fef Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Fri, 22 Nov 2019 20:47:36 +1300 Subject: [PATCH 13/55] Check if shop owned by player to sell items --- .../src/redone/game/shops/ShopAssistant.java | 67 ++++++++++++------- 1 file changed, 44 insertions(+), 23 deletions(-) diff --git a/2006Redone Server/src/redone/game/shops/ShopAssistant.java b/2006Redone Server/src/redone/game/shops/ShopAssistant.java index e46a6b10..ba37f030 100644 --- a/2006Redone Server/src/redone/game/shops/ShopAssistant.java +++ b/2006Redone Server/src/redone/game/shops/ShopAssistant.java @@ -303,16 +303,27 @@ public class ShopAssistant { } } boolean IsIn = false; - if (ShopHandler.ShopSModifier[player.myShopId] > 1) { - for (int j = 0; j <= ShopHandler.ShopItemsStandard[player.myShopId]; j++) { - if (removeId == (ShopHandler.ShopItems[player.myShopId][j] - 1)) { - IsIn = true; - break; + switch (ShopHandler.ShopSModifier[player.myShopId]) { + // Only buys what is in stock + case 2: + for (int j = 0; j <= ShopHandler.ShopItemsStandard[player.myShopId]; j++) { + if (removeId == (ShopHandler.ShopItems[player.myShopId][j] - 1)) { + IsIn = true; + break; + } } - } - } else { - IsIn = true; + break; + // General store + case 1: + IsIn = true; + break; + // Player owned store + case 0: + System.out.println("Is players shop: " + (ShopHandler.ShopName[player.myShopId].equalsIgnoreCase(player.properName + "'s Store") ? "true" : "false")); + IsIn = ShopHandler.ShopName[player.myShopId].equalsIgnoreCase(player.properName + "'s Store"); + break; } + if (IsIn == false) { player.getActionSender().sendMessage("You can't sell " + ItemAssistant.getItemName(removeId).toLowerCase() + " to this store."); } else { @@ -355,25 +366,36 @@ public class ShopAssistant { if(!player.isShopping) { return false; } - if (player.TotalShopItems >= 39) - { + if (player.TotalShopItems >= 39) { player.getActionSender().sendMessage("If you sell more individuals items in this shop, they won't be displayed."); } if (amount > 0 && itemID == (player.playerItems[fromSlot] - 1)) { - if (ShopHandler.ShopSModifier[player.myShopId] > 1) { - boolean IsIn = false; - for (int i = 0; i <= ShopHandler.ShopItemsStandard[player.myShopId]; i++) { - if (itemID == (ShopHandler.ShopItems[player.myShopId][i] - 1)) { - IsIn = true; - break; + boolean IsIn = false; + switch (ShopHandler.ShopSModifier[player.myShopId]) { + // Only buys what is in stock + case 2: + for (int j = 0; j <= ShopHandler.ShopItemsStandard[player.myShopId]; j++) { + if (itemID == (ShopHandler.ShopItems[player.myShopId][j] - 1)) { + IsIn = true; + break; + } } - } - if (IsIn == false) { - player.getItemAssistant(); - player.getActionSender().sendMessage("You can't sell " + ItemAssistant.getItemName(itemID).toLowerCase() + " to this store."); - return false; - } + break; + // General store + case 1: + IsIn = true; + break; + // Player owned store + case 0: + System.out.println("Is players shop: " + (ShopHandler.ShopName[player.myShopId].equalsIgnoreCase(player.properName + "'s Store") ? "true" : "false")); + IsIn = ShopHandler.ShopName[player.myShopId].equalsIgnoreCase(player.properName + "'s Store"); + break; + } + if (IsIn == false) { + player.getItemAssistant(); + player.getActionSender().sendMessage("You can't sell " + ItemAssistant.getItemName(itemID).toLowerCase() + " to this store."); + return false; } if (amount > player.playerItemsN[fromSlot] && (ItemDefinitions.getDef()[player.playerItems[fromSlot] - 1].isNoteable == true || ItemDefinitions.getDef()[player.playerItems[fromSlot] - 1].isStackable == true)) { amount = player.playerItemsN[fromSlot]; @@ -405,7 +427,6 @@ public class ShopAssistant { addShopItem(itemID, amount); //Add item to the shop. if (player.getPlayerAssistant().isPlayer()) { //Logger GameLogger.writeLog(player.playerName, "shopselling", player.playerName + " sold " + itemName + " to store id: " + player.myShopId + " for" + GameLogger.formatCurrency(TotPrice2) + " coins"); - //Remove this later. I added it to push this class because a fuck happened with my last commit. } } else { player.getActionSender().sendMessage("You don't have enough space in your inventory."); From d6ec93b199e973a9f3912164eef156d49746a22e Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Fri, 22 Nov 2019 21:23:36 +1300 Subject: [PATCH 14/55] Fixup shops --- .idea/workspace.xml | 133 ++++-------------- .../src/redone/game/bots/Bot.java | 1 - .../src/redone/game/bots/BotConstants.java | 3 +- .../src/redone/game/bots/BotHandler.java | 2 - .../src/redone/game/shops/ShopAssistant.java | 8 +- .../src/redone/game/shops/ShopHandler.java | 2 - .../2006rebotted/redone/Constants.class | Bin 13866 -> 13871 bytes .../redone/game/bots/Bot$TradeChat.class | Bin 0 -> 795 bytes .../2006rebotted/redone/game/bots/Bot.class | Bin 0 -> 2304 bytes .../redone/game/bots/BotConstants.class | Bin 0 -> 347 bytes .../redone/game/bots/BotHandler.class | Bin 0 -> 3330 bytes .../redone/game/items/ItemAssistant.class | Bin 48178 -> 48364 bytes .../2006rebotted/redone/game/npcs/Npc.class | Bin 10210 -> 10218 bytes .../redone/game/players/Client$2.class | Bin 1103 -> 1103 bytes .../redone/game/players/Client$3.class | Bin 1441 -> 1441 bytes .../redone/game/players/Client$4.class | Bin 1423 -> 1423 bytes .../redone/game/players/Client.class | Bin 41025 -> 42186 bytes .../redone/game/players/Player.class | Bin 53031 -> 53235 bytes .../game/players/PlayerAssistant$1$1.class | Bin 1739 -> 1739 bytes .../game/players/PlayerAssistant$1.class | Bin 1684 -> 1684 bytes .../game/players/PlayerAssistant$2.class | Bin 1395 -> 1395 bytes .../redone/game/players/PlayerAssistant.class | Bin 73300 -> 73312 bytes .../redone/game/players/PlayerHandler.class | Bin 9825 -> 9959 bytes .../redone/game/players/Trading$1.class | Bin 1403 -> 1403 bytes .../redone/game/players/Trading.class | Bin 12577 -> 12825 bytes .../redone/game/shops/ShopAssistant.class | Bin 14865 -> 15558 bytes .../redone/game/shops/ShopHandler.class | Bin 4722 -> 5174 bytes .../redone/net/ActionSender.class | Bin 13066 -> 13481 bytes .../redone/net/ConnectionHandler.class | Bin 2803 -> 2832 bytes .../redone/net/packets/impl/Commands$1.class | Bin 1949 -> 1949 bytes .../redone/net/packets/impl/Commands.class | Bin 21794 -> 21939 bytes .../redone/net/packets/impl/IdleLogout.class | Bin 710 -> 739 bytes 32 files changed, 29 insertions(+), 120 deletions(-) create mode 100644 CompiledServer/production/2006rebotted/redone/game/bots/Bot$TradeChat.class create mode 100644 CompiledServer/production/2006rebotted/redone/game/bots/Bot.class create mode 100644 CompiledServer/production/2006rebotted/redone/game/bots/BotConstants.class create mode 100644 CompiledServer/production/2006rebotted/redone/game/bots/BotHandler.class diff --git a/.idea/workspace.xml b/.idea/workspace.xml index f592c4d5..782dda75 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -8,12 +8,33 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - math.sq - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/2006Redone Server/src/redone/game/bots/Bot.java b/2006Redone Server/src/redone/game/bots/Bot.java index 086c4cac..1816e0e4 100644 --- a/2006Redone Server/src/redone/game/bots/Bot.java +++ b/2006Redone Server/src/redone/game/bots/Bot.java @@ -1,6 +1,5 @@ package redone.game.bots; - import redone.Server; import redone.game.players.Client; import redone.game.players.Player; diff --git a/2006Redone Server/src/redone/game/bots/BotConstants.java b/2006Redone Server/src/redone/game/bots/BotConstants.java index fc64cdff..1ac4b665 100644 --- a/2006Redone Server/src/redone/game/bots/BotConstants.java +++ b/2006Redone Server/src/redone/game/bots/BotConstants.java @@ -1,6 +1,5 @@ package redone.game.bots; -public class BotConstants -{ +public class BotConstants { public static final int MAX_BOTS = 100; } \ No newline at end of file diff --git a/2006Redone Server/src/redone/game/bots/BotHandler.java b/2006Redone Server/src/redone/game/bots/BotHandler.java index ab6b3173..311f11e0 100644 --- a/2006Redone Server/src/redone/game/bots/BotHandler.java +++ b/2006Redone Server/src/redone/game/bots/BotHandler.java @@ -2,10 +2,8 @@ package redone.game.bots; import redone.Constants; import redone.game.players.Client; -import redone.game.players.Player; import redone.game.players.PlayerHandler; import redone.game.shops.ShopHandler; -import redone.util.Misc; import java.security.SecureRandom; import java.util.ArrayList; diff --git a/2006Redone Server/src/redone/game/shops/ShopAssistant.java b/2006Redone Server/src/redone/game/shops/ShopAssistant.java index 1fea7de1..ff219400 100644 --- a/2006Redone Server/src/redone/game/shops/ShopAssistant.java +++ b/2006Redone Server/src/redone/game/shops/ShopAssistant.java @@ -26,7 +26,7 @@ public class ShopAssistant { public static final int RANGE_SHOP = 111, PEST_SHOP = 175, CASTLE_SHOP = 112; public boolean shopSellsItem(int itemID) { - for (int i = 0; i < ShopHandler.ShopItems.length; i++) { + for (int i = 0; i < ShopHandler.ShopItems[player.myShopId].length; i++) { if (itemID == ShopHandler.ShopItems[player.myShopId][i] - 1) { return true; } @@ -82,7 +82,7 @@ public class ShopAssistant { player.getOutStream().writeWord(3900); player.getOutStream().writeWord(player.TotalShopItems); int TotalCount = 0; - for (int i = 0; i < ShopHandler.ShopItems.length; i++) + for (int i = 0; i < ShopHandler.ShopItems[player.myShopId].length; i++) { if (ShopHandler.ShopItems[ShopID][i] > 0 || i <= ShopHandler.ShopItemsStandard[ShopID]) @@ -449,14 +449,14 @@ public class ShopAssistant { if (Item.itemIsNote[itemID]) { itemID = player.getItemAssistant().getUnnotedItem(itemID); } - for (int i = 0; i < ShopHandler.ShopItems.length; i++) { + for (int i = 0; i < ShopHandler.ShopItems[player.myShopId].length; i++) { if (ShopHandler.ShopItems[player.myShopId][i] - 1 == itemID) { ShopHandler.ShopItemsN[player.myShopId][i] += amount; Added = true; } } if (Added == false) { - for (int i = 0; i < ShopHandler.ShopItems.length; i++) { + for (int i = 0; i < ShopHandler.ShopItems[player.myShopId].length; i++) { if (ShopHandler.ShopItems[player.myShopId][i] == 0) { ShopHandler.ShopItems[player.myShopId][i] = itemID + 1; ShopHandler.ShopItemsN[player.myShopId][i] = amount; diff --git a/2006Redone Server/src/redone/game/shops/ShopHandler.java b/2006Redone Server/src/redone/game/shops/ShopHandler.java index 797caaef..efe76307 100644 --- a/2006Redone Server/src/redone/game/shops/ShopHandler.java +++ b/2006Redone Server/src/redone/game/shops/ShopHandler.java @@ -179,8 +179,6 @@ public class ShopHandler { player.myShopId = id; ShopSModifier[id] = 0; ShopName[id] = player.properName + "'s Store"; - ShopItems[id][0] = 2; - ShopItemsN[id][0] = 1; TotalShops++; } diff --git a/CompiledServer/production/2006rebotted/redone/Constants.class b/CompiledServer/production/2006rebotted/redone/Constants.class index e662b84c9999b8bdbf20d60b7d9aaf065a068a02..31ad260241f1c786b2845c8a6d27d5c6d32a82c8 100644 GIT binary patch delta 564 zcmYk(IZFdU6bJD4cG;cvKoAkM5;a=b*l4E+N{SRlOdytaf{@N2BI1hp1r`hOE7*u^ z5nVOjSG;eHCf>HzHsYTRB(In^^ZU=tD`pnri}9-TpO+${Hf~n*rRckqx}2H;vxJy_ zl{1nkv$!7M2E~oePj7XAsUjMT#DbAQjA*DYY;lv@&qIcxqfdvMG_$Nf(X%^e4J&(@ zYH5YS=+=#0jXZc&cnw|`?txRnF?d5b0dESA!dt>)@OIHQjU(782DA(B2~WWL!Uyo7 z@FaXBJO!tPkKq&HY525YTca5SXN5qcbNE8|6220?hHr##;XC1b_(Av)&Ir%rm6`AX zsM$_DdMg%;*=R|UzU2Qx4%PHSonEjm&mW*ydV?%_&);^v%DMpOW;5*}_2FOq{0B|w BU10Hq)1`J1Y&6?2q`Rrh=@oe}HwT*a4Ai2fdneWU}%w38uMjLW}sSJQl)u!>O@l}N$d{;un>xL>c zey#Xe%pz5@RxRQJUI*2sJ0Vm#0r8? z=;iwcR_T=R8l4vIqt}HabVfKvXNAY<4dDrTvuqoa47SPvw&@+=DSB6UkKPxarVoT? z=tJQgeIz_fAD3(!m}78K3JjdmXTs<7h43YPC45ca2;b6o!uRxpaDuUV=t;75w?4wbOR-ww_+llVGu{o^B_K9#Hpve_>8dASPy9q z2u3GxC85yslsr!+LmBqP(C0|G7mS2I5TU2fi=d%J3Hg2~T-h0mm|%C6l3~XeQ6xE4 zTPsz+y1;d%!$k4g(DE5q`r;FTx&-TWkc1=o!qf6O_RxMOJ_s8&Hf>x()kM=q3spi< zC!8eqeCL%=ZZNTNfJZhC(I)J#YsazxO;s@A*f_#t!q$?i?@hG(=slsbj)SlnN#$Ny zA(%>jjJt}vU^Kc-wvdT62cgtkp=H~Jl@NQ3Mq}wF+AcrQN?I3k^0GNVjo*EP$ApSS z-3s2N_-7N~M)2;8&pKkY4!(n0Go-%EF(qEJi~$^!dENep!WQrJXU*BT^|*oRf=lth zX|8tb8)%Aj?h?ku44GnKitL+G`uF(sE6hveE;L|<{NCp&tfgL=?*qp$@dUd(*oS!b epLTnpy^9KVI8Us#$M_U(;`+QI?g>wO1^5ftIi&Ic literal 0 HcmV?d00001 diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/Bot.class b/CompiledServer/production/2006rebotted/redone/game/bots/Bot.class new file mode 100644 index 0000000000000000000000000000000000000000..7d9461b047c793b0c0a9393ce1bec821de75a7e6 GIT binary patch literal 2304 zcmaJ@X?N3B5WPyA$W{~v+LH z2gXtu#CVEQUWPMCyeRWo9WNP3;k1EsC>VGdugG#jmamF*UWN-|dQpbgWVj?lQHIGB zE@R5T6}&EoOdGh0YX;uHn>yYyunpH`csmJ8wo5w71~ND;u~c*@9XB+jCVi`-@-tSb z!7RA0^7D=r1S;TG$qVz2tz2$xpYT=1b5*Wt)l{zTSaZq`a?$RnhOW@ADPP0-iJR7} zm1~5ylbaM3_qtEot{tAzusIv;I+k0_6+_>4tD}WNVQ5N2BJWj{hP4y6tIjuSCFM_A zC5M{ygjcqlDa*HI9V-*zjLrBqE{lo52Dx!Bo*iJ?HI&PV8P}AX>@K87L4tx^< zLXjFKW^voZ9q~PfyC&Y1;XN7N$6XyCnD`JM>G;^hC-~IFXZT#lJriHxOC4XC_!{46 z7-$E;*jlvjdBlf+_}0XCf_0#%9FkJaTxz%~bJ4LvRq`rxnIne}-O4C3@;!cF+8-+# z6GIr*(6`z-8rCgAzfiiV%B;@4*$L0D=B&C^o>94)?OM6ASF3q$uHY3_5ZInODk(Ce zRGx2@M$gjX$fK=`q-kXvTNVsX{&NVV9nJF}}gk1wYo;z+Z>qj$zw3_)ng zmA3B*ZT^@c!y0^YSZ)4{nm4PWmzncye6uZUmU?_|Mpi|Vt6`1fS(QjpaBp}T&ipT& zl_^}QxjMwlZOd{ui+$SagHFHUGV?b)UQ(6l?(bi%u%@t!--_nNGTjV3a zZr+-MxQD&?iJbgQR(>HTIeIu2aezZO%oW+d5ga8$A|1oi1gd40ysU;#Lgv%@(%#CP2p^t v7bEtP#K}iq23wXu&jK>c$F4uITij@Efuw2jJarv7g{L?h+}%b__5%L_MawyL literal 0 HcmV?d00001 diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/BotConstants.class b/CompiledServer/production/2006rebotted/redone/game/bots/BotConstants.class new file mode 100644 index 0000000000000000000000000000000000000000..8a56f8466710ae5d8761702e95e3186e2ad07d97 GIT binary patch literal 347 zcmaJ-O-sW-5Pj2pwK3JUdhsCQO+C05Zxz871R>f(OYkO}WT{)yEF>HMmnXr4KfoU) zPJ)6bFK_0(nR&y^=hyoOfJ+>Na4-%q39wJ--`_kw%@(UAf$j*yxhZQaOPk1|Q4SB} z1pi8x+Flc!)3b!&&P}ced$BInL$gg)wUTMU$|N?KED~Aimj8&ZebzPMIIdJ~N+s5E zt3+ySEoR34ZmXw+aA}$5OBu#W55`)B03Iu=Wn3bu4RYOXBlh|F-BePVTfI3`~t=vM&IO3N>cy; literal 0 HcmV?d00001 diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/BotHandler.class b/CompiledServer/production/2006rebotted/redone/game/bots/BotHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..cb0dfd1473a26d61ed5a9c5fab11c49877d8a877 GIT binary patch literal 3330 zcmai0{d*Kw6@Kr2&1N$BXdr|@LK3KuY_i#wVyuKxLM#wnLTp+}Kr55oAsLv=q%*UT z)Q?t6TeW^xZHrcGs}=mFfSXVh>lZ$cKln%ZSNQm-_}-c6W*3*5JagyHx%ZrN&wJi; z?*8>ZZ{Gm03pZ5^<3s~KhL0C-kCL1%srV$$HgL8qhbQI2r{wTyIeaFK&nkFIMK?~Q@w9w@ zPHy|WoINAmo@>Ojcuo$_tM~%GsNhQqUQn?EUsmuH6&ZQ{EWWDXYYM(Dpv*dc-t>Hd z*8FLGNzavh)5=N7s6fNCIcMvB$u$J}Z(H7zca5TB8@V}s!N}2ym)r07qkE~Aa&^1t zEC{q!={y|B5kc3$up%h(2pk(w27$x^+}{P5B)O z6aKvE33S(WeuyqC!=(?k;MlfN@OdJEY;<%>x94)xzH8cZqZ1Po19fdsIbHG$*Jf0e z0ID?w#92NQe3tn<$v7Ciz=k`SYnt};!kNSRVibb9Xz9y_J3a3#3iR~XsD(>jZrm~r z+aHzqq&;q&3{I1@j3vV&g5frSuJ=;r;Y_kp!8a7VD9|`(_|j)+>Yn%Z8|JMx>?RtR zsyh0v|6`&qJ;*7d6^5tan+m?g2=^4Mh!X0wQ*sN&0aFs7h1rWzIxMNF;r$p<@NEq* zVT^o@9E>}*=j*obDR^1KD>yGONX_1YQ?iP^HfOU2KLS1&#i3p%cgb*jO|SP<$+CtO zd`H7~@v6Z3dMB1nzo#LGdlYSHnB_y@o&FkAz#p zpYUgzUn}%6*VUK9`tPn6eg#~K15dUoQ1y&L$u<4u+_an+VQFi)54!|5*E18Pkx5&N z;mGW1RwzwYE7TT%Kb^r5`s!HDJH}*c(FVYQ=1#i*l1?Q?E|1kyX60j$HO2E;X-(5+)+9 z7mK%93b7g;IL>~_GCUSEPa-2fX2RDY0gYc|epp=sTl#BTTrIW?rY7T(V_r^nhzeG% zAq_(Wh z51MP7at&{O`iyC@K}#t!s|5Y}QNote7Z(kiS*>>$4g62HjS8D*k1mU_X{UYXUH-3U z2Jb_s!dgRh*M^ko)Kc`!E(9CX4-? z#RAzlXL0H^<3o4|2^^p_4$;Pw9>k&Wq~dWdC|tOhSw&-h@Gt1)L_0i`DWi!`GoO}K z{`eX!3@M~eTm6GPx))ui3?1<%%lXgnM9Z%pfPIP zj}H?(nS_h@2=aUus=SFK zR>;IiN_AXE_sj~mwDpt;_f_=qRmN7C|5%WJ$wZKeYb5K4j-kriJu-KLyCumUk{QdB zO4qPW;PB8j+$|Vkj+6HZyaQ!2dlOr-g#RWwzWc5x`O_FUN={3%Od9Vzbvy-SjN_-OB*%Qz#E)P_}Y+rz=2&mVB_`lJt z;HZMf?)@jvp2o3CwcW?0%0EK0W2UvZf`Kb&xQ+~A8oYubnRO9Bqf!xQVePe2GQ)Wc G$NvjWCO?w^ literal 0 HcmV?d00001 diff --git a/CompiledServer/production/2006rebotted/redone/game/items/ItemAssistant.class b/CompiledServer/production/2006rebotted/redone/game/items/ItemAssistant.class index 9c6e4964a0d7f3eb8785fcb23683f6175a010af5..4fee9904485c4d091d24c8468f12b65642c6b310 100644 GIT binary patch delta 14326 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 O%hDw|?~kRN5BM*#G?0@3 delta 13909 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 diff --git a/CompiledServer/production/2006rebotted/redone/game/npcs/Npc.class b/CompiledServer/production/2006rebotted/redone/game/npcs/Npc.class index 8215f6ec32741eddc01223dbbeebafb7b6a41e59..5f102003a45d65aac77fd2f4d18503236a7da543 100644 GIT binary patch delta 937 zcmXAndrZ}37{@=)Nz|Wm!UMuNhuh)&4g!J{==89_$|BS`0vS%gOWLxjU5tPzS(jgv}K27NzWGnysYTZcjC56$gSNj3EFlsTii+J)FH_=`4c!UL}4f>8w_K zEm7{m=N>BPq?-Fl(nUSpETD&0dg-7~g(2tvTBLYeU#iM5$1slQJeD!Oo0(G++&~%| znZV;@(C^mgw0K(>&vQ(|xyrnlyOdKC+AimLCNdzpgKT!X+2O^ZJ)(o6FNnSq#j zhQd|eK2>-{gTLxV!wvSDtB)-8-Vu9O=6hGFeiFGMbO4VJ$mAel4w27c7l}R@`j|ou z=rhE%9How7w?Enu{7k(@ls>NAeeOnMWo}MxMcNmtdD?a6wg$h{=__^oTJ^qhr*m7p zGa_e|_%>CUmuZilV;tv&zSmWMAjFT_&QE%TpVjIDQ~6cxE;5VXsO5KV;tv}5lSVGl z!e6xWH_P~kJNQ>`Fsj{OrrY2l3-Fj-MZcx7$;Pt9#xr0Zdu$^6ES)#(YEqWL`HtUUEmfo}^d6~9K&Drwa;+H_iM28(PaU6!Ortk14vyVbJG>KL@^IcPU>SZv5{ z=2NTJKn*4?u1m9oc6%PiymjZ2eG|*wk+~ty&y%C!2gqC*Fy2K>QpN|XqZ{4Yow~Ne;&cM@(3-IX6lZjdjS4sh;-ZKUBr?VVh93ir zF$gI5%2=F?aEQMIl#+-DqHK{NMvO=TM2(_G4uNPekQfZ!!9QP~_kOPXIenL!&NqFS zDu}G5fHw%UjxzR;WH0yHT*lk8+2(>upV!Y2e8AIgb*QbShFrz-7{+|^SU`w{l(R^- zm#Jn6_tVZqmhw0qG}FmURFFdgW^&nkwqTBX;x zHH8`PO*MLpk!*Ayg`@6fVLIr{&RqwPrSDf+ANI5IVx!W5| zFS*wBBRTve^=EDR3qj87IKS!kzpL9H+|31byu?FXrj{!_!d2?|lScj`!!>5{H_vcg zzu<<>{|}3~$uj=s6>hQ0;5GBH-tJ(N`RTEtY_(zRGLH{z1X;`FK)&6{5zAx1f}F5? zzO|4$Q<|*{maMh^#`)L;#av?+vbs%}2URaeZ8O(VxLO5}4QpBMRp$oV2)6uD63B9SkNTr6^V*%DFhqLzy45Ved7>twVor^;5iUt`U- z(zVA!?umHPx)jygt8TZxue*!!$=*7-*UP=ZZAcWk#ze~7C}oqBx1~%CY}O9ly3Q6U oJ-3-#i8kxawpI4|yluV~JL+q-0hg29=?&6sU+HjPyKFM`A2PAeLjV8( diff --git a/CompiledServer/production/2006rebotted/redone/game/players/Client$2.class b/CompiledServer/production/2006rebotted/redone/game/players/Client$2.class index 38f536392521c748b9e11b2cf0d3a0cf7bda01e2..fc02061cdb93b10e18a4a2bbb064aa08c94621e0 100644 GIT binary patch delta 34 qcmX@lah_vCAu|&z!{lP-C{AVu5mpuk30Bt0*O;9cIVVf9m;nHgWCtby delta 34 qcmX@lah_vCAu|)p-^s tR!4?JRwss3R%eDZR#%2xRyT%nR*%V_SmHRn7`Rxy8TeU!CP%WG0RZkH5NQAa diff --git a/CompiledServer/production/2006rebotted/redone/game/players/Client.class b/CompiledServer/production/2006rebotted/redone/game/players/Client.class index 0905a0ee20bfdf152dee88553dcb60a6582aa7b2..a83e966165596f083aaea8b583df55e668233e5e 100644 GIT binary patch delta 18051 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 delta 17905 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 literal 53031 zcmb@v2Yg(`)iyr2?A|SRrM;57Tyd8h*v1qauq`*?iX~TyS!-9)Vo57jk{j3<;?Qd- z!KS)^>BT{&_s}7Mgcf>BAoLOvy8q8JGk3L;P4fS~-0j=7 zKnO85)Y}RCIc!u1o+rEz0sMubzY<;~yhM1J@CxBo!rvlhzrbtE{5s(c!kdJ*`1NhV zJA`+gzMk`i&gX{^da;m^dsy;=ua5nSnEj#5(Y(3{a}WM5QY*;3Bw4(2_pz2 z38M)6680mECX6ABCG1ZaM>v3RAmJdw!G!UI34}ukhY}7WOe9PqOeT~OrVyqQrV*wS zW)R8=hZANJW)Wr+<`Cu*<`Iq{%qLV3DhUe+3kiz|iwR2zO9@93jv^dQIEJu{a4aD~ zSWc)SBnc@(HKB%3OGp!rBdj3Q5$XvIgbbmPa6BPPXd*NdS_mr%s|c$JYY1xzClF2~ ztRu)7Jc*$Vgp&!U5Pn10Ncb(`RKjV5(+Ot~&Lo^gIGb<|;atLbg!2g(5PnCvkZ=*< zV!|cCiA%7a@ju3X?*uQ6h^Mgb5ZOf7Ot_42IpGSzm4vGZR};1nwi31xwiB))T&@iSRPv6~e28zY$&|yiRz7@Fw9c!rO#* z2=5Z!3kxGC#p44;|4#S^;X}elgntq~CVWEpl<*nhbHW#dF9}}}z9xJ__!r?@!oLas zA$&*pp6~38R|hOA@n5lBJ?KoA@n8mBkV)yPZ&TLNEk#IOc+8KN+=}^ zBMc{uAdDo8BJ4}pk1(1rhA@_}KVcl<0K$QUgF?>1q~i$_2!{|3B^*YWNSH*JOeiBv zAxtGqBTOgEAe0jhC(MK(II|dP-rEW)nsEDkwKSZrw+ks}F5F?uxN7}yNXGQzQh1YtR$ijZXHRPeA5*1kLamQE)G zC(diDznaBs*ppg9nmu_1c7$^rKdd0s5$f5yhA?W&u*$}WbG(x!G!dHF!4`g4$;_*m zc{QVJSYj7mVb7}$1P^=hS^n?2;9=jX6iYn*{sX~@*@t8_II*WnX4&a?+KR@HW4-xE+bq{xPovc;VQz_ge`=vgl&ZF zA?KQqb8X1k5pu2zIoF4r8`!rS+00FZn+dlNZe{-4U=lgEhn=0yA21*+Ie^Es6JeP- zcQDi%adtU(I?i3}^xckgk0GK}E!k|Up}8_$pE5+ztm6_Z6Qk-94K<@GnzQMKn(>CP zlZj@0E3C?<63yvM!=z*~n`&w@gxge?Sd+@mPBb;AvWAG%Wty7H5)BQR216K24dG-{ z)yP?Eh}epBU0o_UPv%F-&Z?c3=5*btN!e^-&8&1&Gnxulq-z=y%`I89H*{}#ChXb4 zLs70U(cGMHjKS-q4(?NoB{gxL1cE%xvGqP+2xn-HcoqOSvI}Q>rp`8H_SK ztuEDERVzOPtH7!9B)GUdkW$VVlF3w7$6~8e%PUa6c1jAffHtb?()G*zi0neDF~iOkFrubvHaeuc zGcS{FVs~QltBh2n8zBUZGF)C?-_qcBv7#}RKnGlzHJfQJZ%);t$I0p@-JTrN!c;?z z9^R5vT^*`!2DheX6MnB^jVL=iQIpc83S=C4+9k|~u=)v-$&;!mrMladwQ2BL_hnY5 zYQ?;C)e3MjQCH=2BHYxNs?tq_lP#$_zd3eiavjR(gjh``iJ{f`8N4Pekh)Y^rha(> zQ!Ck8v`5-#^dy@~wp67mniF8Jhb7UR$;z0|k7!+{Cez~A5nkSsUE_DCI+IE2aHuhp z%aY7wvO2jinQ2*GmzvU+Qn0*b4dxnaQ%}B}iSh=n;3iJe@=SxzvgqP-8O| zW~2_>@+%HiC$jZQ#JncVXjSdp<;SI}{656Uw{)VeGLfxGVPIWmVVJ0RR868jHL9Vp zs%g}m#wskYXu2WYjEw2EDXbNzzNIN$H5U^UtZQkmO`z4nM%mf&rm{?C1$c_-NA>=_XD*=NiG8m}M3Wr<*EPv{3h; z&gyJB)sS4!sPtL5A+<_LIXz#)6_o@#HPf`R9S5zn?UniN%fhQrd-p}s@g>J z)aq*V4Sf$Ms;W|r&6Cn>Aq$3pfk~)D2$|cETHQPa1JBg7pj**IOLL|QYfFwWiW(_R z6yXsjJJZ;zC)TS;bEnconq}3e1A;tz}Vc9s+vaI*=ri|n$B)pO9` zj5N3rY-&;!1fghZ$m|G|0R%8B2ULJgXIdJXr`08DYRDT*(L8)xGe48TN_Fa+maF0s zFlKV10jq{=fzC>0lZ-dYcy&4pO_6Sx%5+1-v#H}-AlyiSXr{Pn6rg*VhGbiwSaWSU zn-?#r&a`BkYuhsTEjF?ROdng542z|ks77qooLBR06op$I7~Z7EUYotH=_Cuh@O1~Sh`WtT(wbLC(TWDp8IqQ=IL zh$s=RXl_BbT@_I~1^AY3T7*?x1%)pAQsj#}wR*koZ4ixOx#TT|Y3Zg~nIBx3iz%18 zaAM)tkN^E72Cn*$i=Cp8~yzCYft)LuCt^bg0E- z|7=R6Ap#_*q7bbtO4O}DE@Yr|cd0@ZDL>AgH(Q;kLJ{y*ZnLr)x2ZO>DwSN&0I}jX z6;(SQScu8Z%bRY>XP%eisN9@obxwV{P60xZBD^v7*yeR3e-Rs3Zt-gHl7X zk8{8Sx$?C5Elkv7H;pE!0;VOD&{F&}T4=%}SKXeCoWm8MnG)P@B1 zMAQ;aVxy>;ok?OA)KDrjoFx=qnQ2bJtU+#AzSxNxparI3Tg|`(l@>&p`+(kMb<4_1 z#I(b9gs}@z3Ufc7UW+w?2C}gEGRL*lr72{gEKH)=a(9ZX#Pq5y8D*=m%}r|JcALZs zsXBs66NQ)8fqOF>lzkV);!o8jX&tY`3QA@ZHJJuggUkA)zsWk?5;4kG$SKT*v-_IDfL#WYH}jWQU%IzpM_1cZhq=` zD34^SI@M5>YD>ZD#Q~+Jxwb8d12DRbJ1!%EjEVv%@(Mqpn4^k%$UhpCzH3$Sx9#+x~ z6)CB3S!Gj7nlf_Vja5NE)TB_|6cxv;!NSSKL)f&WW)7K|-#NTya}pd18D!(1<$P>?2c z1=)?0DNIpt4Qo?bEexr{SpcEM*nq-G?rz$q!G^PZ5^P_JZ2+qXuS z!FEZ}Za9spTfkG6Kk0hqI^Z7u4-*%yu7gpT>v&BTbBt7Fn`(WpVp55sgv&;G@>HV; z`%$!;3$tyW4*g}^0+wf$Kyxt^w2Nbykm|amR5-d4|15_6f}5F+$~{Jh3)!wban6z& z51nq5r)w>@+Tr3WgoxZQW+$>MI0Usf_|BLDRyCI**utl=n|@k z@c0D{R+EBU7OrYDS+N>1Q_&_GNj_Vh6>_7hz{urnO@YzoAH0`mIi(G%Qm(yp9Zn@^ zA)17Z*qBNxHWx@fq>_4*=W>?bBXC`Zz;nItPHjkKYrtk>3LH|6DOT2V&+{hszq(QL z@D-;{9LA{Vk~Dph+oVq>Mza$~#uj}BbaWg&Q`;A0fG5ZT<?QoE25Sg zHfAgoFG15QmCR3*8juGRo`%|YPids4QDra<8tCdOP^L?px`}Gb8}otc1C2b6(Xu0* zgAVGIr9S)X3^SHZVs!F=KVKe>UbuU`V3R6IwN(0s;(d}MXs#EHtSBS zj!-h=Pkk6iNk1%IXJ8Y?RkcEEp#mx!_~KxcG$p7zI;rYsB%0>8nP})VrW@zlm8nVC z(y&MxVW~oDt56~ekAf@@W+ApBwLG!h|K==5_GCE(AyQSFsq&NIgR4o^`LQ^>mr&Ss zDQSAb@&w15j&Di8??PKtCPZaLeu)sBd2_Ivpx#CvWwI(F6&)226&?f$ z;ezrJQEElGDRO>^a!OK+-kY4s00H8#xyfQ0+ExWJ#&wLlvab`hpNl>+GQ^udb;^RW zsmm(nO`SDsS!MZba09!R^o8a5(PH`8D%1#I(adK?NFz?H+`A&ms8c7|NHbQo&m^gq zeRWC|T?r|o>h{B!wGhMF(2>DLXaZ?*Mi`yjs4V^{BWQCGPJ3ul=Jcl;;+!mpH)9^o z8ZkdILmeMt%$c`0%jV|8X$2{tvS8}0W%C!zn!1cKiw&0EI_afx;R%!DQ%;~bcE~AI zkVvG4B$H(hteTqCqEw=hZq1NPnk-#DGB}$DO}U!nc}hn^+-|j1fMEXmbP!jYYk_u0 zNfvX)B5)w&A`XO4O=PGx?R))-kXSW4u^Iztb0|jP=TEKmk4ieGXG9$=q_rPadcao` zXltHw{HcCQ$FmxyGH4624(V`AV;QUCPN%Bu8thPY7``-owcu%uCWk&5n;6!U+`_9@ zgM|!DZAeaPNZ0$v5hl%$b_doqBV6C4kQ8;eApdnIsLe1Vb8`HQ%QKW(hWhm6)zoE{ zC+gazMKQj%Lg8xeiTWH0rHrGVW{~m}OiN&tn1KS6lH>3bU`b17U_~v}hFe8Ni)z&b zD(985wp2$KZXh>tWsy6$_%qZF5oe% zRg#H_+CG_pLiKAHVEJfsmfi)uUcxe_7E-tBOtvbO^LIK)xz@VW3UJ5Pb~OF!yLlEsuP)9Y{1{VBj)5(QrvnfxuwK*%`B<#RrOCouxwz zC>0llR#HATIWLQqDWuik;f*FQ{DeSZTdGs?!4ikyv80Zb88pvFP@(9UyZZ|P;k2v?5EH7~&f ziara>rzS-duGfYnhGmHU?T!MfNYg0AiWw>s@1b;ySUYW%aV0guz7Er5mJu|X3;Q3q za=ECRYBMd^A>|=KFV}pj(ECu{-0PG)8PVSV_LEwyy4FEFwB4*zbE2WG^)?v|tI{*1 zhfamd5PEEu8tNg5G1~Z=WF9dVPxT!o-)XQ^{mdIQRkBzEl{$`_Mi|4^M zuTQL=C)Eq@Pb+XYi)OKBHbKcXFHF?6r11Dfv@K3`%i8P6|FY6}s@2Wqs`T%=8d!dE zy1709o54JCGB=IHYJGdFTBlj6TIt%p6{P2`l64+cq7bq2b~VFc+BiQ|gRK&qOC49XH}vu5JjZi0)xCB;sX ziBMy{Jtfo8XuCLCj;)ek=HrMluNjhEpyG>gGn0}DxC+vn6}m}Fm2QU0464eDaR|wD zvQmG>twxR=Q_{4)u!{JeC!K|ZhXg%~%4a<(t@(J7RG&tzDu4>RR3&hxP0~*Q=W{yM zP-eMWrt_DJNu zgZC5k&S)WLAE9+R`64Qx7g4(;>LHq4s$hLq!n@zTZVG_@0R7?zm3$cxQ#yWSu`>1k zr_hh*UI0Xtam%XFm3kaZ_uF^hl?n1VFNQJTnnHe4LW6Fwz?UOPRmra;La0j zkaOG?;~c|R%MGQhKFM!wF?=g*i&ZqI$d2N+l=6HTqNl5FGL9iqhH^2~QPj{<4~s#6 z*40Fl^0ufFhAbvI4yzRB#Qf(U-G}&mZ~y*d=t9U^nY@21oRw}!&1s>}x{}v(Xo`14 zbqf=4)*!AEZ8*)*@gQC+$cH6yV28%K4H>%k*04UATY8-h(R**%@|}d%kfCtw#juB0 zt(cu?)E!W6L0-n&L(18I3yKCO#I!o67E_=blGBtgQB9yBy5`28FL$yuZm?9pWf zGz)Jedn!}Fa~I(}PYT{mG%H`3?~%m!b_sZq(>xhYb8NJ8d@p5SNcmF9?xb869?Epg zVh3J%k_J?0+@<$ zrtv$y8*mxZIRe9VQ4^eDljQ@b7^7nVe_tRwSw+s5ntAWqxJx zMsQDr5-L(iqj&+27ByMuLFyx&Syiqx>y{EtaK*^ox}$KaJtogZ9KtgcxkK+M$bMe+ z9oh{e(nkK|49&o{xbofE>?D4)14WyLi7#Jp#HP`Zrs=L6urcYPXp4u_4O)DtYa3K1 zXGl5zN8vG6E(BgwQfXh%fB<$3bHat0rW$@wgGXy{=)Ie4l_Pu|xKJ+RC-;=zOSe0^iXciViJP)6b(*2$#am z*%tcD3vi8Ei^1lWU!R;tk{Y>#%y0@r^6F+@9n@107n;op=q43_O8QlWj)Fl-0c)_K zA&|EKL^;&7@l@z*fy#{B#GpM3;CTrks z!aI7*1sz0fqYX*Hl$~8e&rWIiZ4-uOxkqn!k7KEsY`(Rn5qY zLI~4Z?D2FW>6eXd#;B{>RoyYf^!80F9{H!_@q24*Z)tKvYox@;o697h5JJVPEm1X< z@4)JW?Y*j{4n7z4Oje7Bft6~&>1U>?JB}l)Ak+a2h_#tyjJL%x%!@39mpMGQaOZ*) z*)Xv7$K2JeL@i2^upX_{YAmfz`JE}t8F$)FV*<)IOBssmtvu(Rq;pU1?z|g;9k)Q= z6b5UmS0joh5I}JtB4N7RAhe@#Szt6d&b?R(*!;51bcJbWbCAwLE>*i(zOmP=%H_y; z6(eotAia(`8^iB{+YCRD;&5dK%Twj3NHt625Q-JAsdSr#>KhKyeqmi-E(M(Jsxqk> zRX#0JT4AZ{p*XyoiLCn0$)*7PO8UuC|}Ts z*HZZ<0yLM$K!2`EtWh>Erau>1(k_CY;}IGjTVPeH0M=yy&q%rRT8%WdC^N9;atFb7 zapb1b;+h7*3x)uQ^g=-ifj{aH5^am1!3cBupE{{eiX&~S%^o6cug-h>iYkin=FOju zwnCj$#U1OSGTI|IDk(wblYaFy)dN=1uYN2-QGYGujxI%LXOG0fyqxMBWDl9lWnY+= zTYZ2Xiz8C^yaF9Z(hV;>^$P6xi7fWNaeFvYHo}|Vwp5y{Xo1HKKT)5%sW4IPV-rqnHHTXe@ zd`j517fTIaUNLD>nYQOs4dcn(BG{DjteRge_lRI`rBwIkwlwcqt{A^2*fTZK1gEN6 z@7P5eThLRbm0<~}D-U|rA~-$hn=D3fCQrdg8CEqN*Pw`GX@=sBM1V0oCN18MD!~POwgN1NYglx^`Ey z)U^%5Bj#Awewd-n0BZxH)=3CC_t~$zflc;%Zs7NX$%IP**8R+KGT{{KH&}}DM^2KX zxI|PxK5_#G+Fv-%{jU8l`y4kgB{0=>9$*`npqTTZ^N{O2Y`^C?kGRgGfqK{Zqw^Tl z+ulwpu64Jy-fL*Lfyzxa&OY zJm)xna-Bar&%5^T@Y%kQaFVs&4Gar(aRULcC13-rd-!3ZJ;@Dp4s>yx7hLBrfeEhj zS3sbUxrQLWZE-j*zg@~@44nugv>fZ1L1fU%Mw}$D+#Lzs|jleYY8V1P9&@&tS3+~ z%ngK-3BMuymT)TJG{WhGGYDrA&LW&mIEQd9;XK0mgbN6l5w0LyNw|S=-Lij7;CBn;uR|u~X{ziC>@H*iQ!kdJ*2yYYKBfL-e zfbb8(hlGy^Kas0GB*E*ePXAsULoJBaBa1P;I2&{D;;e0m1DYt$H3AHY?e&bq~ z5-#J1D+pH+t|n|DY$a?XT*s=eC)_}|k#G~s-b}c~y4AIABiwGSb*-I*KM-08yV&G? zZ1O=Cdx-fSX6O-?eU8;X&(I4@dk;~YvuJlg)b4?@b_qj+7#hqFC&3;{C?yOd3@3~r zjATAek)XQy^=tQvMEva8p2w_34{{~>j>)!8#tnq38z@=J4l|d*wxPF+NVBv8O?3YfixJfwix6fk=` zqt_6wWpoGOI!3Q&=mx@#to|m3ZYJD9xRqIMXXpQ z1&nf;*%uQo0t9B*U$_p{m-Qq2P~4Dd?yGzoeSNQj<9z5kA36VYosXSQT<25gGehiC z-mnrsGEDZxAwv2XaKnwT^eXf{o)ve$hz5TWuxR!hDHG!+$z-frut@bY0`GH@5 z-=ng>N>v=b^}5pWVj(SWVwOmXxgTt4cTZg6hJefV90R;bucnQA&f0>2hEu4 z2sZ|9as#&qcDkW3ve+STC=|hXLQymma@|lYRDe_S=vo{^-B4jDj%^x0S#4T{H==G} zEjnp;W>X%T3S5aAt-Ba4Le##Ep<;g6%6#0u0xLPT4TKg#mT(FoLD)$6E#Xwc%^dz! zggXOwxq*8K^U2-v0G>BanTGcmbqDt?=ev}KL|xw$JlENS`?koR>GW;R^i8Jlr5^VK zeQ}G#-+jWW?2F%`;+)>EZ{Jmo`yDa_V;kNVV;VXf@zIP&5R_*@MvS3`DAny$)~4D| zecyBwD$ZtG8k_s6+T2j5P-oYot}&O>%s2*MQP%{XLcc>@LS3CuH#gKBiZ;}PoLNIQ zm$;#xp!o6$5^zQt;n1gl&gl8aXHZf_B$W^%d)&(rW)73aHr zJJI(I=?4t-`_Rek-=~s==yfG>?MAR1Xp-4i(7m?$gprKVg+#L zckD47%Kh@Y(q6OWI;6d8IMMSUsni~R*CZW~sCsaR+n4sWE*oaM3AZjd zA;3+o4x{SFCKX7fNm|m@TtljPRQ^Xa(N#Cm@e}k5j%*e9z1ng-qw=3k;rR^RmA(V4 zV04#F_ELyflzi7`;hYE=Py&$7jG71G)CWgY zA5d(z@%aJE)JNGcap&YfRAY1XpxidmE9Ou-szz#~Dt7F0hc zENE+bHhxir+8X(;HZWw$l%dFMHyzJEh+q$qG5q*7_Y((w3j!Yk9NjtMCAl!<8sqEYuG;Q}Y0gdv`vLM?NY%A{Q73=>{)P{^@Qk#fdED3z>PpWx=TGtE2sK=L$l-K|sI$DE)GAFPhssQ}X2%Rd)Uo3D@Wh?O5l@1iCn2U20p40mfgSN4@i&S9I zqHv$4u+3Qsi?qYbK>_3g#w}bxhHI#aLI;v5=pu%$JLn^+N#F`tPKi~f= zKb*j-4ysxC2R8H{d(l4^8S($SGWF{$SL!L%AMmivUDodEO360dWp+QK+Uzfcd7d!L z0p>uwvN6m-n!@2A<3lus??J}levlL%2;?4#uxXA$2+oLHd_RQXm&nEW9miE!ZhuX2 zUX}3!G==v<#t$~fOFBW*Lo_{9)5A2KsOcn4Cu>@!=@d<;YC28R>6*e(BHJm~^l(jQ zYC22P*_zJLbgriJG(AGo`I=T}TB+#*O&4mqNYlldF3}Y38rh#CH9bnxqcw$LCBHAz z^jJ+3n!@^$->WoDYMRotTGJX$Yc)-4dYq;!G==9#)>p47oJfe9^eD>oXr6l7` znl@_+FOy7Psp%?B;ck-Y@Hj~dr<0`cJ4p)HlcexINeTy)r0_vW3OAIb@I*;^il%T% z$vB)8lEP0RDO^;N!b>IT>6*eN9()40YFVXb(nqI2uCQUbM3U`>S?{ZDy8Iy51$0WT<)2lVbIaa1`)pVPtIMB*; zoM|P!R?{7t;&3a|uh$fQHyMZPP12h*g%?i7Z_yMdUKzhl)7v%0AxEa;94sl0!jiUX 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 IOwq6YA6`6YzW@LL diff --git a/CompiledServer/production/2006rebotted/redone/game/players/PlayerAssistant$1$1.class b/CompiledServer/production/2006rebotted/redone/game/players/PlayerAssistant$1$1.class index efaf8cd0a3a0a1923a9caf747253e3351414d978..f80b943a39aa94b0d047f5de4cba8cb23821d98b 100644 GIT binary patch delta 57 zcmX@jdzyDc4lASIo=4Gw3izGT1RjGdMEFGK4V3F@!TF NFk~?%Pi|!M0sy1^4MqR} delta 57 zcmX@jdzyDc4lASQSiK0sx+N4G#bS diff --git a/CompiledServer/production/2006rebotted/redone/game/players/PlayerAssistant$1.class b/CompiledServer/production/2006rebotted/redone/game/players/PlayerAssistant$1.class index 9b311e7b982e4cc99f6463600236e0729d74fa12..abc70394718a3f13e6e16519ee1cf240c232d6f0 100644 GIT binary patch delta 53 zcmbQjJB4>c3M-@Ic3M-?{lRX7C DcGwTG delta 45 zcmV+|0Mh^S3iArEYy<)5lWhcV73%;E1MC111ML731MdJS1MmPX1M!pb1WN(+lRX7C DbC3^- diff --git a/CompiledServer/production/2006rebotted/redone/game/players/PlayerAssistant.class b/CompiledServer/production/2006rebotted/redone/game/players/PlayerAssistant.class index 6e3c5d7c7d33e7f886746a672b44256095ca60b6..c4d2411310ab722cbb57d53ba110146b4c9d5ab3 100644 GIT binary patch delta 8024 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 delta 8044 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
  • _YHowaeO#u=DQSdSWlk0~WVrb*^75k=Zaa=L1T5Tc;SM6R!@`|ZN`aM|7ZIsTC0H?X z@UZ4RLixU;iu43?8VXpSON#TT!1*Z0ITXpc6hQ;GK99m!FN}jIu#C%iOXii{YKf8~KpS)z6JSeN}QX zU@3LAjMmzS(O6FHEyYBv>Sf39^`Y!k>w5xAWhaQhQ5aI?adSVq{xxn)pPRsm+%%JN z3%OZOZq6e&&E)2Se~BB>ySm4X^*h(1V7@>hjHo$)KqpS`6;q|JP1`ML@dd7g-pC;s z-r(hMv&%;@z<74xx&Fqc`-< zl*}PjmupF5opOx3daL=9>bf!6t@`aL-Kg*1p4yFR{?K&uZVai*Vn&_cab^}X{pzfOyWQ~O zH_z(N%Gp`W?!v4bru9YCS0L-CeAh=n>?n!7ODrIN*>PAc>GTYhV?UoP>>rGB}r3k54FgXL-( z$9~sq8pZB-j~sW)oN4^oZT-J#{2w)qoSClJi($V0o7|GIVMUjFAdZ}##mWITL7lJa z)KI&6FN(~^v6_Et+`f^nYp-?oV_jL`H*HtnawiIENGg!CBH#0RTyg1H;szKD@zjM;A4YOXZbpwWET>^2WEg1g5JAN}Ht&>toKMLae_sK92P z#bHL$5RaTz%t9M+qs&Fx8E50fO7Mkp8}pVlkG}1U?>q1{?7|U#?0TJ_D1XMB=uPHA zf8opWF-iA;X}KOZ@+I^pzIWa%_v02m zSKi9E$Mt;B0&=unaE+TJY^a1TP1YcqMQJUJdNQcLUes`+@uMgFqHP3_O9?0?*-oS&zGblF`U&ces3Z_uDE)~kepUWK= z;bEo6z2<61u+i%?lJZlJ3U}jEF&d4*9u@O&uFt%YS)8Aym@o88Q+8t7Q54H?<^@L~ zQgsxwnT!R@`U%7SffW;t=|?f09b?`_S@CgZhD_3K=cg$Pk7yG2K~qM*3u}RoJA|~k zz;eII6aOoC)I0Z$9n5SBncc1D`I*loyQQuN!|F;KvRKbxeqLQ^0rT1oS)8xMIkm*t z5SV3Fm{t3*hg}=@VsS0Y3o1JG?frAxUWe>VviDB;WXTx0hLi=1o1fOAj2an&8B)&A{uOAEq1enz%B3=b;i3|E%1G>!QFwr% zka2ifPQ&+QJbo;v;~kkOc~UKUP4>|=mc0%}bj> z?x!N_UPCn5tw! zkBU)^&^;B#x+g^?r9ZT;G?m2`W>@Po)x80W^r+?r?#!NRcvrd zv1hr&RLhO2$(G^xy(l1@WvW_ZfmwMKc@^e9+(eA_y;#d4UXjPsg^fjO)!ND;(dins zHn?We@6WAAEH&zwYt%7+&^Kz2+O}Ew>`qnWdq$mqYNO7h$t7I2D0f~@Vl2374?gTw zcHv~PC}&%RHq^-#DE*Tx6?ZQst*dvwv8Pc-qOGV6b5;@nxL z6D74wcG*%Lcq88}XW4fIrBE_zOSTzAYcYd;Ab= z@>6W7glYc~+Wi)p&rh*yrHxj9v4mtRd)p;VoL&6Tf0-oZld_E;I8*$tndaBL4t_4& zDf{ITIV_jTGsO5hKewv4T*wgln(r<7ykg(tdP|)4e3tpse;NCdpAohNH0PKAY5i^x{}^6yv1iT?}G-Y9KI} zKF5!(Uiij~q@+(7P1M8oyt}Z#oIi^CrtO@~ViZkBQ?*gO8Iul<%3VQ9cpKWmiQDKv zJNFp0gC086u0H+M@QMk!lKQ)feC?sHUyW*hW}e2c%roU$G_Zduzb~(l8(cZ*v&1z1 zE0=o+bMAasCVJ&=%E^Q^FM{;m)Pqu`XCMR8)4AIyvndS_z@*a1Q`r4DEPYzg`X!H} zA~3g7pBPHGl}c&e1M>anKAuNwBq0w4eBfZ59Oox U(hFf6WkBXx%b~Ba)4((T0~%=&X8-^I literal 9825 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 diff --git a/CompiledServer/production/2006rebotted/redone/game/players/Trading.class b/CompiledServer/production/2006rebotted/redone/game/players/Trading.class index 7e5547978b3df13ea3d1b5adcdf9b1427dc8c409..2c81539e8a6ec71d4b9109b790a008ec6a94b463 100644 GIT binary patch literal 12825 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 literal 12577 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 Pv*e>W=t~)6`uo2C+{B|5 delta 6332 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 IJQf!J3wPXCXaE2J diff --git a/CompiledServer/production/2006rebotted/redone/net/ActionSender.class b/CompiledServer/production/2006rebotted/redone/net/ActionSender.class index 640c5433bd866ebf54e2fb643156619017a7dab3..8aa150594ca6987a945efb9cd73b88eabd949802 100644 GIT binary patch literal 13481 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 YIt?hD_{ij#3`3C(DENO*vgoJ(0j{ph!~g&Q literal 13066 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 diff --git a/CompiledServer/production/2006rebotted/redone/net/ConnectionHandler.class b/CompiledServer/production/2006rebotted/redone/net/ConnectionHandler.class index d16c8c7b85055b5c562f9f868772d8c4191b9f94..7bdece02a17449a212c1ecab16655cc62886179a 100644 GIT binary patch delta 1174 zcmZ{k$x;(h6o$W>4s@r}OaX#{s30=|K}1lDpg1EajtCB*fEv-DfW6Gjj?xs&FP_vlBD%_|(MQ)Z~(tGwn%i6L*A_SY^p5R3&bgRjZ6j z#+;^Q)PhVr?2wr2ZrbdWxsytuk}6p#c2O-^y0}+9L+@=ZEOHAgQ-`{+NwRcp4Yh7J zMIH6hr9pPRvePJE6A|4v8MayynnOTNpcEfLalcGRhupSJvR^DRnrU$X!t2ZsQ5*fk z(to#fYn2WLs$vsRTM9^y{wE+IKw5g10$FVppaHT4?4ex?ki1tiYGdjnD|i$?2&E=# z7=z6p$(_e)_I|?rf))9UPupj>zL$&hP@NFbH6pTBZmdq2G)QbrGb)xV(c(QCAuYas zUHrOaU6k>5Z<^Y)AnC%Y6t+E2o^bOkhTl^V2{?=7t&qq!7|yUt-9!tvcv?c6K(@PN zf~ihv3RPJYym(6dn>ci^Px7@r{c_vd9%~&r^L%W#V`l=BuC!kLW>b$(&o-{u5>GlM zJzHj1TIPfp>G~5{q@XamLZN}66)6INRfGL>8#Q|oWNO5NOir#`C62#qGQHn*5lL^9hdl9@5W6Z71*xx-zPdp7r3 zuz5hA%|jA4i!2FNGBuT4T{C%P^Oz?#NuHW4+dQM+<~b>w6<%br#zG*%OOsbNtE^>O zyxTSQVsbUHl1eQl)|M6(YJM|Pw(LpQixr9n@x>>z@RG4fcD*tynag5X)VeG@?3J6Gsv zF^!w)@pY#)hoGE59e%=Mdc9C?aA0E+4~dL8T~33hJTrvTKl~=a?-sNkK`>B_I~w)6 zjpXQm0@4DhrI#p>-EIN8L8*X4^l1T-_eN%IOf;UuqxebCUHrh9?(%-7{3~Ys3qI|e z;TRsKOxCR;woSyP+vU1CghXe7Mo1F0VvmL`D30b8=XL6$qM?Tie3qq)E^K!D`ae)1 zge=AEC#vGXzy@}X3WM1^p|s?>_IF{4k+t$pqJpM93A;!I3e6=Hym)E@J2)JX|Iqbh zQm$Bg;>&j~z8T9w?8jsvFE{NZ7FzfU_v({-?U(dYnF9rx33<0#W=DL3%Ic9ERR+?n zS`n<-A~?52Xf8`_mbx5agCc`UhuIJThUHm~(pwa&Zy_p}f|_Sh+WVNqJskfFNS|zp diff --git a/CompiledServer/production/2006rebotted/redone/net/packets/impl/Commands$1.class b/CompiledServer/production/2006rebotted/redone/net/packets/impl/Commands$1.class index 3949d210444266f27625cc458f3731652543edf4..32aa5c0869827bae981343d3a1f1073157f90ea3 100644 GIT binary patch delta 63 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 M@UVoJ@`MiU^6}+{ zCPIl-p;Qb8HWqj$D#26d>UwA-FWaTOe;mb@;xc|MXL}odz)!~<+nL&PGb^%pC$-#& zq#HWwo>M-#ioJ`4(Kzf*9Lp;@jgGmSIznQd`W0>|Hj$cWsxl6HKN^A6(rwV-Y+FsK zSRIEUfkzv`Oz$~ZY#J!6&bkU+QFVU@0u}9KLmdZ^1`g_2I=GX7VpcY$Bg91`&DdV@ zsuB&&b5|`uWE9)kkU_ciT={WWwi7IPgawS)&r%pBIDR@~0%`vHNnN=mO%&hM*NRqZWiwV zqssrKZEzDcy@8wVxpTRoDQ*H%(5f4-=2$O!iMa~ZJE zgd6+*q~uvRUUOYA!$b!P+qREN1asZh(g6D+3UEK=b(h(A)@}~c%CeEdE{^omTnRW?-uZKe_D1}wYl+{ zW_WuTv`RFwq+Et$iPCwvMM|}9;%>OEJsLXPz(jR8*xPLnSqVe5g_*Ur2xsAJ9I1S> zhMnaIY@E2POU=fGoy$G}}e!R+Yvz)eRI{g6A~Gk@r6)efg|k2oM5x{alj^fFGq)CvAa9KQS;CwQ_h>7Xv}O(yr*Gn%UmmF zkW6HW}je3)DxK?4+V?dEiwvv5Co>a338F8RnPb@j5DT#2IF)>lZ^T(S^ zCnpmhd&Zkxl;FLW@8GfT;_s*U>5);xHHpT$>QYp1C|wY(F^j_sZnB28FVmD+l%5!@XMh@xOuyh_kjQHv_s?<63~gTDP{MOALHVE8LS|`xa5eDSFCQ@5Qj^=2rLsmWeVlnIZzn_Yhq~iRdbN ziUUP2u}mBwP7{5^I?-2LB>IW#fZZeph+m6?#QkERcv1`!zZXNq%i<967ZEn{oaxFe zBTq<=Drmfs@tZV(4i%CmN(fd7g}z>(!)OxZ+*LeFlWB^u(ZjVyE3b%+pzeZim=3Z{%Hk-r`H4CCr1DIE5Ln3`P93R9&4v7z6Aaqd-GKb0l(n6F#md_ zH+K8-ajti7=(FKdk$zs+T+02%SKs<#cck0H!M-gbw1Fn8aw|>a!@+(AEVCFK8V(+4 z!2ULay~Dx&2JGr#uuC{Nz<{;`Q0xl_4`NV!r5XGp96Z>79|f3N><$M98u+zS1a z4l?jF0Ykqd92{)m2LoQF-y9AOF>pHIWBBH95VA(|R|oPKzBC*hYT)$&Kf`B+g8>7t z3FI@}5DsEaKwlH+!tn9o;4lL(4HPguFB~j2@Qgr!;Ys1(a08DC6f!(K92{Zbfq@{y zp>VLwz}*8y3-Iwup&K(^eq^nMEHw3=19gCbfvk!6|NjD(4S(Hvm&Z{WY!L z+$N@3H;F;Hb*F;{XeOVLOTIamXl5HxWiHW$L$-+{(rO)OF_I(8?c7SUKv|4EXmW6N zZk?q=w_hs)Oc=X;p%8E(|U*Gj-h1?e<2| z#Wb~;X}1jB?zvg?Wp3OShg#h3P}^;NNm}&WzYNVSZ4pb-az};7G_=fgDz`9@mG5%! z&;8~MLte@)wTKmId9JBj{aXgg z{;Kx%YjW$S?-R8+oIKmh9aXN2buo^D$`VhpF01gCc%KoTv=~+5-63Mz#0g996DMYc zR)5T02~*na0>hGVnG&$ zMsE~dSr39^igk-P%?Rah+0wqdN}TP-Zxp?mqQn7x-(A&Z#oBXxmh>$yDeSwmMV!7x zNOg~TRDCOsQrp!YPTeD!CW^V(qlU{mF;XVQD7jjc%d^B7xn7Ku8^j!Wy_hR+7xU$v zVzGQ(ERlZ^N6ELva`}N+p?u;PHB=m@N<~DC6f0G^s8)xGs5)M(QdOc>)ry#E5+|xN zM4dWY#MOF{P*;kR)QzH1-6B%z9#agvpoUEP_r>NcHG_^;Z2@X$J--$CU zk2urvinFbOVx2WaoNJ8`>#b4Zd~2e(z?v*BvQ~*-S}}2n)hsTx&JmYc=Znj&OT`t| z72+yulepU2C9bhv7S~ztiRc{nuO}u-XbwuXXT3Ps&DpDAmdvGj!h_xx(tH>u zFbO@|j8TKhL5|H9GPwmPm29?ve)9KX2W%GVV*U!+{rUHbYVSe*5%Q1$o}q>QLjM8% zx=nFtVV98CKXCAo4lUY;rfsCI)x+%w36S=|80&~%?9h^Z;9p6d`A(2#w*hN4GI&Ev(Nxm%CkggSF71NPU5F;0qAYCrTo_`V2Bg4Tn%n>)A%{T_nG~g6A zMzR?v!r|aq1{`1vvp(VA*#;~&c3D9V<%TFqdIT5_TJu&~R%I#uiVEab#9+G0a zY^V5>o5AUWr+rpi6Voh{fg~oo8JxEn z@eg+qEE=c8$q~sF8D?@v?p^0Wx4%hKDkF5*9xyX0+Q!AN+Huj!z!_Nv8un-4xGdtT zZQ|-&CAbDXXUo_+$jIMC{V)8UnHEpA<5z5L<99>n{4RF8*(s*CvXBwj=qv*KUYpDB zb)ECes>)KkD=j9r=c2TYi|gBQ!E<**nhktzKWK!!1&-&l;x!x|M~T;QoFJ7)%H{G2 zq$}{bH>WSk-Kr7kJ1W7cI!j%uzD9bP`jS)2vAW>^J<95C4d66$^e-1nu(p4P)}P0J zFNoK~AI0n9MX_7Fg#Ghn?3I6_eDMl(6|Z8?dkr4;>oi%sfy3t|Izs#voV-PI#oM$@ z?53l|yHqRQqm#t@bgKA()`<`4G4T;SBR-Z=d?J0~Z*q!wSI!il%Ol0VfS=3jZ zOCfbB^;4Hof3<-Is7-W`x|6&^)-dnw=~SMXt?FjD9cZy zt!`9qb*HgbUm9l(pb6GMs;~yrcxxo$4IK4(TXci$hSSlIoDUMMq+{3wfP7D&W7$-I z^jrhMhRk*vIu9KuKB42-e1HrNG&o0|C>9x0!2?+xO~-Rx`Bb*9n$b%4sW>M?_lY>y zrBkU^y6eRKeE}ta1ZUh0yad)CjkV-+9u=77h&{KO*zl#Vzfqv*%H|RsBi_!rbf$t+moKl1|E=KRc z$tx$?TNAsG4zr*5#ca@r?C-n?Dv5u4#%>)1IPST%;#H)Dy}zsCek z%;%hN@J2r3=@t|8xh@>M$$*!epwC5N4lAPc924|8EgZbrfGHF7iHC!?7%TeF#C7+YQ{^1bqlWmA(dcOwb4S z!of7dVvig2`63*=!@wW8L7&~>;GG73%?>3J32u@R&e%hKGlP4;Xl0pa;XDaB!=Ey9Y`b4upd(26h5HTdgn8-!QlQ z*Aox)N&EtH3EiTr@w|)YQ_LxXd2&3Sqw%c6^A4WByARwg!H?z3d8Q(NIv(hgg+L&_ktbwN#H>xREQ`Pq`EXADk=*0* zxBDHJ!AEltSM7h^!}Qy3j?r_|_Vc;tV%px`#_412IOSt>2frR~*U6Pp55aYZMMTOz1*Spxk!D zQso?KdZyUJ(XnUK)~ju#&l%DTmBWn{!*n}6ZQa*K^SfLcJ%mFC3)0qQZ3Ms1CGZX@ z#_~VjX5zMf5CNnzsCIHwbCUHgPnG8t=V3}<#YcE%@?g6za5HSX`i$#fjM=<0wgtJ#EWaiG%=N~LZBtMJS7;QE z0S_DB;AhFYJeXzIr`2h$^AUWBIY_H`8&5C)7*ED3WS++C&(py?HW%6A`W<-)Ait6& zdlmg|F&#gc!*TF6aLR)!3clXPb6UQK(B-C%(MV-NkvqAk&I6e8E-uR*u7z;WlH4BO zKtHY=Cbxy%FnpQFty)+jsx#91S(VFjD|1Dw`e*h_dvdFy-{b#>e(B*MUB#cbiZ|1= zIValtR<4HUxl!J7f3ZJMb*u0Ns>=Ookyq@$UU;l>KYDw+*sRN9sLEgU@pFOM?PA=r zVJ+gFxy)p7UW<4)n|UuyhgRgJX)F-$;~H-Zh(EYi3?71=#S?(7uH5P*Sd$+Tbt>8Yb#w~Jw_K= zJLs3zvvjfbB3)wri7vC=pv$fI=nCt7`jz!5U1j}?uC~6U4c51Gt!>eDwoNzK`E;XQ zL^s(z>1Mk(ZM4VJCVLs(YOkT&?2{>NpG9}r>*#L#e7eWJg6_4iq|NsAw8g%I?z6Yh z{q_^|fc-pewLhg6Ty<~pc<8qtFFowZqenc&^r)u??eO%b$2|k-3C|#U$}^mv_DrCi zo@w-qX9+#)Sxe7(nt?lmp7-303(QUQlIKo(*|URQ@w`E=dfuehJ^!RPoUZg|r#rpr z45PQ4`SiB42){TI!@qmKh~9NBq4%BJ=>z9E`q23UeeAqUpE$45r_P)7ne!oi?tDaF zIRC&;jO@WblK+AJt!?^`#!rgqeA=V?(${(veWMShZ}oKAtB<7b^c?y@FUAjyEWyu< z9D|=0S&82kN#Mstn(^x*=SYvfP&)b={J6*s_;ryqeqQ8m{JuyFeo*8QS*V}J&vNX< zkBPh>i}h~VO@D?T6!}K>@CsStb!0E^SlQb(>*Q7JVG2e?XT7Atf?c&`T0AcS_y=^|?>Q;yFd(o9^ z4rxW4$iZ-LLC=Dsf}J9Z4e6}|5h_}Vt zg#59p`^2ygb-uv|Enfcj`>r$XpNzp5*6JJU-%=RL>HbvOT>O0eO9SpSA@UvJ;8zBG(1gghgoAqwc!&9NVPiP>wE;J{ zUpibK4t`_c^W85U&JG8^HE^^0r9)#lxYxij_e+PB;ox@$#=RpufeXUH?+sk(I=xfE z!5<7f&UJdr!oht89_%{32ZoDC7(@@(>n#L=48mcz*97tHKS2ik2iXV&4a~!GGyx7c zij(kMfCpbFsEhG%ilBrA8C!5Ht$A<`H{jWX>tT|u*TW=ptcD_jK?-A%a8u|lB8#@(xC3c>78@-ET&0K*cF(yfX!XpFXA7Al)brg;TZDR&i!c%2cD=&oac>EV2+mEm zw-N{5Y?l(p%3Kq0?DeL!^;|m-%z8M7BRD>tag+&6@5~0z+c-Mx$2jt3Im)$|N*vg8 z`!RHL+8W!Qp}{!}!M^N_q5nS-!K!N$5scIQIJzmVZg0ntx;lrWe8Uk--*q@(-L-mB zD&T9OE=xNW1bj+uqk^=Wozqg_r&@xQ)mcL-(~h0fPN8Wh;{xNxXB!0rzB=4@aIV~O z6K#?kGap5idyDNG#oQsqc02Z&rU+g(?#_$7V3_aPvj%Yy;m!x2r);Bc*x!)No!GQs zXRnR4yCH?~Ttq$Egq@aiD(tkZ zPmY0V2(K^hVs_^UDdZBlQrb%W()2`5>4EJ;$owGEK>g9i^$Zlz046Y=6&;kO_3$Rj zJ%KKd(!tA={afEM{J6l7xyvk|=i-Bm4CatljGe&@ZN+#pm~bn`$zX=HVsr*m+KLHe zs|{~MW$TS-LuD(LwV}M3wnnz0d>PcJHdI~)HM$Mu&!EcNQ28#(`8811+=YBuR-sGu z_HwT(_Z9n!y&J`#5?$;otH>+KQ^U&rC3)7ca`u%TEcO>;{d~FF44RVG)cQSxXtQ68%%%ZQpTSE~84N-dC4wOp=J)v`v_%UX51jH&bG3F>Zn zqPkDksco`eJ%aMbWl}vQPf|N&quM1?>SeiFy)M_N_vBjjzC76?d5YCjo@(`$r&|Zg zGpw*Y(;6nvwvLeJSS#f^D=ODpC&=@xCV9TKT3%?KE-$jqlfSeskr!K6$xE!;koxM_CZ%5^g_6hPPyGh<`ua+C_^>UMafxOMW zMBZ*+E7SIM@=p6Ud6#{MyxYD<-eYf*_u3E1&GzGRi;Z8CvtN)8*l)?M1)8+4-8S;5&u6)5+ zB>(6fC3iVT%NL!M@+GH6zLIq?(o@s-UQ>Eq~ literal 21794 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 j1^#fx_~(nJ$V8z-~1lH delta 279 zcmXYryG{Z@7=^!?-DTKuxrob(*A>u6#L~yHw;>@RQu`1zHu?@E#)86r^3}6> zuN$-Z%Y6CDkW3VV6Vl3cA@!@;R&Ph@g&BAXX%TZqi?%95hi=$aUdU53aGtQ9mKDdU2<%>yF+rCzO%nFL^5vN82lB~;2ORzEPDDq9BsnB*5m From bff9e44d8f42f967e1c951349bf0b7eace03b3d3 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Fri, 22 Nov 2019 21:25:57 +1300 Subject: [PATCH 15/55] remove logging --- 2006Redone Server/src/redone/game/shops/ShopAssistant.java | 1 - 1 file changed, 1 deletion(-) diff --git a/2006Redone Server/src/redone/game/shops/ShopAssistant.java b/2006Redone Server/src/redone/game/shops/ShopAssistant.java index ff219400..54c658d6 100644 --- a/2006Redone Server/src/redone/game/shops/ShopAssistant.java +++ b/2006Redone Server/src/redone/game/shops/ShopAssistant.java @@ -319,7 +319,6 @@ public class ShopAssistant { break; // Player owned store case 0: - System.out.println("Is players shop: " + (ShopHandler.ShopName[player.myShopId].equalsIgnoreCase(player.properName + "'s Store") ? "true" : "false")); IsIn = ShopHandler.ShopName[player.myShopId].equalsIgnoreCase(player.properName + "'s Store"); break; } From 3afb44615ec3d05836801de8820f89093e8e9541 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sat, 23 Nov 2019 01:43:52 +1300 Subject: [PATCH 16/55] Update shops.cfg --- 2006Redone Server/data/cfg/shops.cfg | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/2006Redone Server/data/cfg/shops.cfg b/2006Redone Server/data/cfg/shops.cfg index 09564332..e71daedf 100644 --- a/2006Redone Server/data/cfg/shops.cfg +++ b/2006Redone Server/data/cfg/shops.cfg @@ -134,8 +134,7 @@ shop = 133 Gianne's_Restraunt 2 2 2223 10 2225 10 2221 10 2219 10 2227 10 2233 1 shop = 134 Gulluck_and_Sons 2 2 882 1000 841 10 39 100 40 100 41 100 42 100 1349 10 1353 10 1369 10 1307 10 1309 10 1311 10 1313 10 1315 10 1317 10 shop = 135 Tony's_Pizza_Bases 2 2 2283 10 shop = 136 Wilderness_General_Store 1 1 1931 30 1935 10 1735 10 1925 30 1923 10 590 10 1755 10 2347 10 550 10 946 10 -shop = 137 Neil's_Wilderness_Cape_Shop 2 2 4327 10 - 4347 10 4367 10 4387 10 4407 10 +shop = 137 Neil's_Wilderness_Cape_Shop 2 2 4327 10 4347 10 4367 10 4387 10 4407 10 shop = 138 Tzhaar_Hur_Tel's_Equipment_Store 2 2 6522 10 6523 10 6524 10 6525 10 6526 10 6527 10 6528 10 6568 10 shop = 139 Tzhaar_Hur_Lek's_Ore_and_Gem_Store 2 2 438 5 436 5 453 2 1623 1 1621 1 6571 1 shop = 140 William's_Wilderness_Cape_Shop 2 2 4315 10 4335 10 4355 10 4375 10 4395 10 From ca12809861bebaf0a7f655744f2c4295198dde90 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sat, 23 Nov 2019 01:44:57 +1300 Subject: [PATCH 17/55] Semi functional player shops --- .../src/redone/game/bots/Bot.java | 14 +- .../src/redone/game/bots/BotHandler.java | 12 + .../src/redone/game/items/ItemAssistant.java | 22 +- .../redone/game/players/PlayerAssistant.java | 7 +- .../src/redone/game/shops/ShopAssistant.java | 435 +++++------------- .../src/redone/game/shops/ShopHandler.java | 47 +- .../src/redone/util/GameLogger.java | 1 - 2006Redone Server/src/redone/util/Misc.java | 6 + .../redone/game/bots/Bot$TradeChat.class | Bin 795 -> 795 bytes .../2006rebotted/redone/game/bots/Bot.class | Bin 2304 -> 3187 bytes .../redone/game/bots/BotHandler.class | Bin 3330 -> 3597 bytes .../redone/game/items/ItemAssistant.class | Bin 48364 -> 48402 bytes .../redone/game/players/PlayerAssistant.class | Bin 73312 -> 73331 bytes .../redone/game/shops/ShopAssistant.class | Bin 15558 -> 12414 bytes .../redone/game/shops/ShopHandler.class | Bin 5174 -> 6169 bytes .../2006rebotted/redone/util/GameLogger.class | Bin 4589 -> 4589 bytes .../2006rebotted/redone/util/Misc.class | Bin 8408 -> 8837 bytes 17 files changed, 213 insertions(+), 331 deletions(-) diff --git a/2006Redone Server/src/redone/game/bots/Bot.java b/2006Redone Server/src/redone/game/bots/Bot.java index 1816e0e4..068fad70 100644 --- a/2006Redone Server/src/redone/game/bots/Bot.java +++ b/2006Redone Server/src/redone/game/bots/Bot.java @@ -1,11 +1,15 @@ package redone.game.bots; import redone.Server; +import redone.game.items.ItemAssistant; import redone.game.players.Client; import redone.game.players.Player; import redone.game.players.PlayerHandler; +import redone.util.GameLogger; +import redone.util.Misc; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.Random; import java.util.Timer; import java.util.TimerTask; @@ -55,7 +59,15 @@ public class Bot { } public void sendTradeChat() { - botClient.forcedChat("Selling Rune Platebody 210k ea"); + ArrayList items = new ArrayList(); + for (int slot = 0; slot < 40; slot++){ + if(botClient.bankItems[slot] > 0) + items.add(botClient.bankItems[slot] - 1); + } + int item_id = Misc.randomArrayListItem(items); + String item_name = ItemAssistant.getItemName(item_id); + int value = botClient.getShopAssistant().getItemShopValue(item_id); + botClient.forcedChat("Selling " + item_name + " " + GameLogger.formatCurrency(value) + "ea"); /* Real chat - Disabled for now, can't get it to function correctly diff --git a/2006Redone Server/src/redone/game/bots/BotHandler.java b/2006Redone Server/src/redone/game/bots/BotHandler.java index 311f11e0..b8f0c0c8 100644 --- a/2006Redone Server/src/redone/game/bots/BotHandler.java +++ b/2006Redone Server/src/redone/game/bots/BotHandler.java @@ -66,4 +66,16 @@ public class BotHandler return null; } + public static void addTobank(int shop, int item, int itemN){ + for(Bot bot : botList) { + if(bot != null && bot.getBotClient() != null) { + Client botClient = bot.getBotClient(); + if(botClient.myShopId == shop) { + botClient.getItemAssistant().addItemToBank(item, itemN); + return; + } + } + } + } + } diff --git a/2006Redone Server/src/redone/game/items/ItemAssistant.java b/2006Redone Server/src/redone/game/items/ItemAssistant.java index 77f44c9f..9eae7446 100644 --- a/2006Redone Server/src/redone/game/items/ItemAssistant.java +++ b/2006Redone Server/src/redone/game/items/ItemAssistant.java @@ -2426,17 +2426,23 @@ public class ItemAssistant { } public void deleteItem(int id, int amount) { - if (id <= 0) { + if (id <= 0 || amount <= 0) { return; } - for (int j = 0; j < c.playerItems.length; j++) { + id++; + for (int slot = 0; slot < c.playerItems.length; slot++) { if (amount <= 0) { break; } - if (c.playerItems[j] == id + 1) { - c.playerItems[j] = 0; - c.playerItemsN[j] = 0; - amount--; + if (c.playerItems[slot] == id) { + if (c.playerItemsN[slot] > amount) { + c.playerItemsN[slot] -= amount; + break; + } else { + amount -= c.playerItemsN[slot]; + c.playerItems[slot] = 0; + c.playerItemsN[slot] = 0; + } } } resetItems(3214); @@ -2462,9 +2468,6 @@ public class ItemAssistant { public void deleteItem2(int id, int amount) { int am = amount; for (int i = 0; i < c.playerItems.length; i++) { - if (am == 0) { - break; - } if (c.playerItems[i] == id + 1) { if (c.playerItemsN[i] > amount) { c.playerItemsN[i] -= amount; @@ -2472,7 +2475,6 @@ public class ItemAssistant { } else { c.playerItems[i] = 0; c.playerItemsN[i] = 0; - am--; } } } diff --git a/2006Redone Server/src/redone/game/players/PlayerAssistant.java b/2006Redone Server/src/redone/game/players/PlayerAssistant.java index be9d6bb3..24e1d69c 100644 --- a/2006Redone Server/src/redone/game/players/PlayerAssistant.java +++ b/2006Redone Server/src/redone/game/players/PlayerAssistant.java @@ -1642,8 +1642,7 @@ public class PlayerAssistant { switch (spellId) { case 1162: // low alch if (player.inTrade) { - player.getActionSender().sendMessage( - "You can't alch while in trade!"); + player.getActionSender().sendMessage("You can't alch while in trade!"); return; } if (player.isBotting == true) { @@ -1667,7 +1666,7 @@ public class PlayerAssistant { } } if (canAlch) { - int value = player.getShopAssistant().getItemShopValue( itemId) / 3; + int value = (int) Math.floor(player.getShopAssistant().getItemShopValue(itemId) * 0.4); String itemName = ItemAssistant.getItemName(itemId).toLowerCase(); if (player.getPlayerAssistant().isPlayer()) { GameLogger.writeLog(player.playerName, "alchemy", player.playerName + " cast Low Alchemy on " + itemName + " for " + GameLogger.formatCurrency(value) + " coins"); @@ -1740,7 +1739,7 @@ public class PlayerAssistant { } } if (canAlch) { - int value = (int) (player.getShopAssistant().getItemShopValue(itemId) * .75); + int value = (int) Math.floor(player.getShopAssistant().getItemShopValue(itemId) * 0.75); String itemName = ItemAssistant.getItemName(itemId).toLowerCase(); if (player.getPlayerAssistant().isPlayer()) { GameLogger.writeLog(player.playerName, "alchemy", player.playerName + " cast High Alchemy on " + itemName + " for" + GameLogger.formatCurrency(value) + " coins"); diff --git a/2006Redone Server/src/redone/game/shops/ShopAssistant.java b/2006Redone Server/src/redone/game/shops/ShopAssistant.java index 54c658d6..2905faed 100644 --- a/2006Redone Server/src/redone/game/shops/ShopAssistant.java +++ b/2006Redone Server/src/redone/game/shops/ShopAssistant.java @@ -1,6 +1,8 @@ package redone.game.shops; import redone.Constants; +import redone.game.bots.Bot; +import redone.game.bots.BotHandler; import redone.game.items.Item; import redone.game.items.ItemAssistant; import redone.game.items.ItemDefinitions; @@ -25,15 +27,6 @@ public class ShopAssistant { public static final int RANGE_SHOP = 111, PEST_SHOP = 175, CASTLE_SHOP = 112; - public boolean shopSellsItem(int itemID) { - for (int i = 0; i < ShopHandler.ShopItems[player.myShopId].length; i++) { - if (itemID == ShopHandler.ShopItems[player.myShopId][i] - 1) { - return true; - } - } - return false; - } - /** * Shops **/ @@ -67,17 +60,11 @@ public class ShopAssistant { public void resetShop(int ShopID) { synchronized (player) { player.TotalShopItems = 0; - for (int i = 0; i < ShopHandler.MaxShopItems; i++) - { //adds items in store when items are sold until max value. - if (ShopHandler.ShopItems[ShopID][i] > 0) - { + for (int i = 0; i < ShopHandler.MaxShopItems; i++) { //adds items in store when items are sold until max value. + if (ShopHandler.ShopItems[ShopID][i] > 0) { player.TotalShopItems++; } } - if (player.TotalShopItems > 40){ - player.TotalShopItems = 40; //sets the number of stack of item sold to max possible value if the resulting amount is higher than max value. - //Items sold when shops are full will dissapears. Much more code would be needed if we want to restrict selling while still permitting selling items already in shops and such. - } player.getOutStream().createFrameVarSizeWord(53); player.getOutStream().writeWord(3900); player.getOutStream().writeWord(player.TotalShopItems); @@ -89,13 +76,11 @@ public class ShopAssistant { { if (ShopHandler.ShopItemsN[ShopID][i] > 254) { player.getOutStream().writeByte(255); - player.getOutStream().writeDWord_v2( - ShopHandler.ShopItemsN[ShopID][i]); + player.getOutStream().writeDWord_v2(ShopHandler.ShopItemsN[ShopID][i]); } else { - player.getOutStream().writeByte( - ShopHandler.ShopItemsN[ShopID][i]); + player.getOutStream().writeByte(ShopHandler.ShopItemsN[ShopID][i]); } if (ShopHandler.ShopItems[ShopID][i] > Constants.ITEM_LIMIT || ShopHandler.ShopItems[ShopID][i] < 0) { @@ -114,29 +99,26 @@ public class ShopAssistant { } } - public double getItemShopValue(int ItemID, int Type, boolean isSelling) { + public int getItemShopValue(int ItemID, int Type, boolean isSelling) { double ShopValue = 1; double TotPrice = 0; double sellingRatio = isSelling ? 0.85 : 1; for (int i = 0; i < Constants.ITEM_LIMIT; i++) { if (ItemDefinitions.getDef()[i] != null) { ShopValue = ItemDefinitions.getDef()[ItemID].highAlch/3.0 *5.0 * sellingRatio; - ShopValue = ShopValue <= 0 ? 1 : ShopValue; //Don't let the value be 0 } } TotPrice = ShopValue; - if (ShopHandler.ShopBModifier[player.myShopId] == 1) { - TotPrice *= 1; - TotPrice *= 1; - if (Type == 1) { - TotPrice *= 1; - } + // General store + if (isSelling && ShopHandler.ShopBModifier[player.myShopId] == 1) { + TotPrice *= 0.90; } else if (Type == 1) { TotPrice *= 1; } - return (int) Math.round(TotPrice); + // Minimum value of 1 + return (int) Math.max(1, Math.floor(TotPrice)); } public int getItemShopValue(int itemId) { @@ -334,7 +316,9 @@ public class ShopAssistant { } else if (ShopValue >= 1000000) { ShopAdd = " (" + (ShopValue / 1000000) + " million)"; } - if (player.myShopId != RANGE_SHOP && player.myShopId != PEST_SHOP && player.myShopId != CASTLE_SHOP && player.myShopId != 138 && player.myShopId != 58 && player.myShopId != 139) { + if (ShopHandler.ShopName[player.myShopId].equalsIgnoreCase(player.properName + "'s Store")) { + player.getActionSender().sendMessage(ItemAssistant.getItemName(removeId) + ": set your sell price."); + } else if (player.myShopId != RANGE_SHOP && player.myShopId != PEST_SHOP && player.myShopId != CASTLE_SHOP && player.myShopId != 138 && player.myShopId != 58 && player.myShopId != 139) { player.getActionSender().sendMessage(ItemAssistant.getItemName(removeId) + ": shop will buy for " + ShopValue + " coins." + ShopAdd); } else if (player.myShopId == 138 || player.myShopId == 139 || player.myShopId == 58) { player.getActionSender().sendMessage(ItemAssistant.getItemName(removeId) + ": shop will buy for " + tokkulValue + " tokkul."); @@ -349,11 +333,8 @@ public class ShopAssistant { } public boolean sellItem(int itemID, int fromSlot, int amount) { - - player.getItemAssistant(); for (int i : Constants.ITEM_SELLABLE) { if (i == itemID) { - player.getItemAssistant(); player.getActionSender().sendMessage("You can't sell " + ItemAssistant.getItemName(itemID).toLowerCase() + "."); return false; } @@ -365,76 +346,82 @@ public class ShopAssistant { if(!player.isShopping) { return false; } - if (player.TotalShopItems >= 39) { - player.getActionSender().sendMessage("If you sell more individuals items in this shop, they won't be displayed."); + // We can only store 40 items per shop + if (player.TotalShopItems >= 40) { + player.getActionSender().sendMessage("This shop is out of space!"); return false; } - - if (amount > 0 && itemID == (player.playerItems[fromSlot] - 1)) { - boolean IsIn = false; + // Check we have the item in our inventory + int inventoryAmount = player.getItemAssistant().getItemAmount(itemID); + if (amount > 0 && inventoryAmount > 0) { + boolean canSellToStore = false; + // Type of store switch (ShopHandler.ShopSModifier[player.myShopId]) { - // Only buys what is in stock + // Only buys what they sell case 2: for (int j = 0; j <= ShopHandler.ShopItemsStandard[player.myShopId]; j++) { if (itemID == (ShopHandler.ShopItems[player.myShopId][j] - 1)) { - IsIn = true; + canSellToStore = true; break; } } break; - // General store + // General store - buys anything case 1: - IsIn = true; + canSellToStore = true; break; - // Player owned store + // Player owned store - only "buys" from the player whos store it is case 0: - System.out.println("Is players shop: " + (ShopHandler.ShopName[player.myShopId].equalsIgnoreCase(player.properName + "'s Store") ? "true" : "false")); - IsIn = ShopHandler.ShopName[player.myShopId].equalsIgnoreCase(player.properName + "'s Store"); + canSellToStore = ShopHandler.ShopName[player.myShopId].equalsIgnoreCase(player.properName + "'s Store"); break; } - if (IsIn == false) { + if (canSellToStore == false) { player.getItemAssistant(); player.getActionSender().sendMessage("You can't sell " + ItemAssistant.getItemName(itemID).toLowerCase() + " to this store."); return false; } - if (amount > player.playerItemsN[fromSlot] && (ItemDefinitions.getDef()[player.playerItems[fromSlot] - 1].isNoteable == true || ItemDefinitions.getDef()[player.playerItems[fromSlot] - 1].isStackable == true)) { - amount = player.playerItemsN[fromSlot]; - } else if (amount > player.getItemAssistant().getItemAmount(itemID) && ItemDefinitions.getDef()[player.playerItems[fromSlot] - 1].isNoteable == false && ItemDefinitions.getDef()[player.playerItems[fromSlot] - 1].isStackable == false) { - amount = player.getItemAssistant().getItemAmount(itemID); + if (amount > inventoryAmount) { + amount = inventoryAmount; } String itemName = ItemAssistant.getItemName(itemID).toLowerCase(); - int TotPrice2 = 0; + int value = 1; + int currency = 995; if (player.myShopId == 138 || player.myShopId == 58 || player.myShopId == 139) { - TotPrice2 = (int) Math.floor(getTokkulValue(itemID) * .85) * amount; + value = (int) Math.floor(getTokkulValue(itemID) * .85); + currency = 6529; } else { - TotPrice2 = (int) Math.floor(getItemShopValue(itemID, amount, true) * amount); //Something about total price of item? + value = (int) Math.floor(getItemShopValue(itemID, amount, true)); + currency = 995; } - if (player.getItemAssistant().freeSlots() > 0 || player.getItemAssistant().playerHasItem(995) || player.getItemAssistant().playerHasItem(6529)) { //Checks to see if player has room for coins. - if (!ItemDefinitions.getDef()[itemID].isNoteable) { //Check to see if its notable. - player.getItemAssistant().deleteItem2(itemID, amount); - } else { - player.getItemAssistant().deleteItem2(itemID, amount); - String ItemNameUnNotedItem = ItemAssistant.getItemName(itemID - 1).toLowerCase(); - if (itemName.contains(ItemNameUnNotedItem)) { - itemID = itemID - 1; //Replace the noted item by it's un-noted version. - } - } - if (player.myShopId == 138 || player.myShopId == 139 || player.myShopId == 58) { - player.getItemAssistant().addItem(6529, TotPrice2); //Add the tokkul to your inventory. - } else { - player.getItemAssistant().addItem(995, TotPrice2); //Add the coins to your inventory. - } - addShopItem(itemID, amount); //Add item to the shop. - if (player.getPlayerAssistant().isPlayer()) { //Logger - GameLogger.writeLog(player.playerName, "shopselling", player.playerName + " sold " + itemName + " to store id: " + player.myShopId + " for" + GameLogger.formatCurrency(TotPrice2) + " coins"); - } - } else { + + boolean isStackable = ItemDefinitions.getDef()[itemID].isStackable; + + if (!player.getItemAssistant().playerHasItem(currency) && isStackable && amount < inventoryAmount && player.getItemAssistant().freeSlots() <= 0) { player.getActionSender().sendMessage("You don't have enough space in your inventory."); } + + player.getItemAssistant().deleteItem(itemID, amount); + String ItemNameUnNotedItem = ItemAssistant.getItemName(itemID - 1).toLowerCase(); + if (itemName.contains(ItemNameUnNotedItem)) { + itemID = itemID - 1; //Replace the noted item by it's un-noted version. + } + + if (ShopHandler.ShopName[player.myShopId].equalsIgnoreCase(player.properName + "'s Store")) { + // Add items to players store + player.getActionSender().sendMessage("You sent " + amount + " " + itemName + " to your store."); + BotHandler.addTobank(player.myShopId, itemID, amount); + } else { + // Add currency to players inventory + int totalValue = value * amount; + player.getItemAssistant().addItem(currency, totalValue); + player.getActionSender().sendMessage("You sold " + amount + " " + itemName + " for " + totalValue + " " + ItemAssistant.getItemName(itemID).toLowerCase() + "."); + } + + // Add item to the shop + addShopItem(itemID, amount); player.getItemAssistant().resetItems(3823); resetShop(player.myShopId); updatePlayerShop(); - player.getActionSender().sendMessage("You sold " + amount + " " +itemName + " for " + TotPrice2 + " coins." ); return true; } return true; @@ -470,266 +457,88 @@ public class ShopAssistant { private static final int FISHING_ITEMS[] = {383, 371, 377, 359, 321, 341, 353, 345, 327, 317}; public boolean buyItem(int itemID, int fromSlot, int amount) { - int iValue = 0; - int boughtQty = 0; - boolean boughtItem = false; + int shopID = player.myShopId; + boolean isStackable = ItemDefinitions.getDef()[itemID].isStackable; + int freeSlots = player.getItemAssistant().freeSlots(); + int storeQty = ShopHandler.getStock(shopID, itemID); + System.out.println("Item " + itemID + " stock = " + storeQty); if (amount > 0) { - //S4 - if (ShopHandler.ShopItemsN[player.myShopId][fromSlot] == 0) { + if (storeQty <= 0) { + // none in stock, or not sold here player.getActionSender().sendMessage("You can't buy that right now!"); return false; } - if (amount > ShopHandler.ShopItemsN[player.myShopId][fromSlot] && ShopHandler.ShopItemsN[player.myShopId][fromSlot] > 0) { - amount = ShopHandler.ShopItemsN[player.myShopId][fromSlot]; + if (amount > storeQty) { + // buy all that the store has + amount = storeQty; } - - if (amount % 23 == 0) { - amount = amount / 23; - iValue = 23; } - else if (amount % 19 == 0) { - amount = amount / 19; - iValue = 19; - } else if (amount % 17 == 0) { - amount = amount / 17; - iValue = 17; - } else if (amount % 13 == 0) { - amount = amount / 13; - iValue = 13; - } else if (amount % 11 == 0) { - amount = amount / 11; - iValue = 11; - } else if (amount % 7 == 0) { - amount = amount / 7; - iValue = 7; - } else if (amount % 5 == 0) { - amount = amount / 5; - iValue = 5; + if (freeSlots <= 0){ + if (!isStackable || isStackable && !player.getItemAssistant().playerHasItem(itemID)) { + player.getActionSender().sendMessage("You don't have enough space in your inventory."); + return false; + } } - else if (amount % 3 == 0) { - amount = amount / 3; - iValue = 3; - } else if (amount % 2 == 0) { - amount = amount / 2; - iValue = 2; - } else{ - iValue = 1; + if (!isStackable && amount > freeSlots) { + // player will fill their inventory + amount = freeSlots; } if(!player.isShopping) { return false; } - if (ShopHandler.ShopItems[player.myShopId][fromSlot] - 1 != itemID || ShopHandler.ShopItems[player.myShopId][fromSlot] < 0) { - return false; - } for (int i = 0; i < FISHING_ITEMS.length; i++) { if (player.myShopId == 32 && itemID == FISHING_ITEMS[i]) { player.getActionSender().sendMessage("You can't buy that item from this store!"); return false; } } - if (!shopSellsItem(itemID)) { + int value = 0; // Item Value + int currency = 995; // currency this shop uses + if (player.myShopId == 138 || player.myShopId == 58 || player.myShopId == 139) { + value = getTokkulValue(itemID); + currency = 6529; // Tokkul + } else if (player.myShopId == RANGE_SHOP) { + value = getRGItemValue(itemID); + currency = 1464; // Archery tickets + } else if (player.myShopId == PEST_SHOP) { + value = getPestItemValue(itemID); + currency = 995; // gp + } else if (player.myShopId == CASTLE_SHOP) { + value = getCastleItemValue(itemID); + currency = 4067; // castle wars tickets + } else { + value = getItemShopValue(itemID, 0, false); + currency = 995; //gp + } + int currencySlot = player.getItemAssistant().getItemSlot(currency); + + // player has none of the required currency + if (currencySlot == -1) { + player.getActionSender().sendMessage("You don't have enough " + ItemAssistant.getItemName(currency).toLowerCase() + " to buy that."); return false; } - int TotPrice2 = 0; //ShopPrice - int RemainingToBuy; //Remaining of item to buy to fill the order. It's the remaining that can't fit in the loop. It has to be processed by itself after the loop. - int Slot = 0; //gp (995) - int tokkulSlot = 0; - int rangeSlot = 0; - int castleSlot = 0; - for (int i = amount; iValue > 0; iValue--) { - if (player.myShopId != 138 && player.myShopId != 58 && player.myShopId != 139 && player.myShopId != RANGE_SHOP && player.myShopId != PEST_SHOP && player.myShopId != CASTLE_SHOP) { - TotPrice2 = (int) Math.floor(getItemShopValue(itemID, 0, false)); - } else if (player.myShopId == 138 || player.myShopId == 58 || player.myShopId == 139) { - TotPrice2 = getTokkulValue(itemID); - } else if (player.myShopId == RANGE_SHOP) { - TotPrice2 = getRGItemValue(itemID); - } else if (player.myShopId == PEST_SHOP) { - TotPrice2 = getPestItemValue(itemID); - } else if (player.myShopId == CASTLE_SHOP) { - TotPrice2 = getCastleItemValue(itemID); - } - Slot = player.getItemAssistant().getItemSlot(995); - tokkulSlot = player.getItemAssistant().getItemSlot(6529); - rangeSlot = player.getItemAssistant().getItemSlot(1464); - castleSlot = player.getItemAssistant().getItemSlot(4067); - if (Slot == -1) { - if (player.myShopId != 138 && player.myShopId != 139 && player.myShopId != 58 && player.myShopId != RANGE_SHOP && player.myShopId != CASTLE_SHOP && player.myShopId != PEST_SHOP) { - player.getActionSender().sendMessage("You don't have enough coins."); - break; - } - } - if (rangeSlot == -1) { - if (player.myShopId == RANGE_SHOP) { - player.getActionSender().sendMessage("You don't have enough archery tickets to buy that."); - break; - } - } - if (castleSlot == -1) { - if (player.myShopId == CASTLE_SHOP) { - player.getActionSender().sendMessage("You don't have enough castle wars tickets to buy that."); - break; - } - } - if (tokkulSlot == -1) { - if (player.myShopId == 138 || player.myShopId == 58 || player.myShopId == 139) { - player.getActionSender().sendMessage("You don't have enough tokkul to buy that."); - break; - } - } - if (TotPrice2 <= 1) { - TotPrice2 = (int) Math.floor(getItemShopValue(itemID, 0, false)); - TotPrice2 *= 1.66; - } - - String itemName = ItemAssistant.getItemName(itemID).toLowerCase(); - if (player.getPlayerAssistant().isPlayer()) { - GameLogger.writeLog(player.playerName, "shopbuying", player.playerName + " bought " + itemName + " from store id: " + player.myShopId + " for" + GameLogger.formatCurrency(TotPrice2) + " coins"); - } + // amount of currency the player has + int currencyAmount = player.playerItemsN[currencySlot]; - // TzHaar Shops - if (player.myShopId == 138 || player.myShopId == 139 || player.myShopId == 58) { - if (player.playerItemsN[tokkulSlot] >= TotPrice2) { - if (player.getItemAssistant().freeSlots() > 0 || (player.getItemAssistant().playerHasItem(itemID) && ItemDefinitions.getDef()[itemID].isStackable)) { - player.getItemAssistant().deleteItem(6529, tokkulSlot, TotPrice2); - player.getItemAssistant().addItem(itemID, 1); - ShopHandler.ShopItemsN[player.myShopId][fromSlot] -= 1; - ShopHandler.ShopItemsDelay[player.myShopId][fromSlot] = 0; - ShopHandler.ShopItemsRestock[player.myShopId][fromSlot] = System.currentTimeMillis(); - if (fromSlot + 1 > ShopHandler.ShopItemsStandard[player.myShopId]) { - ShopHandler.ShopItems[player.myShopId][fromSlot] = 0; - } - } else { - player.getActionSender() - .sendMessage( - "You don't have enough space in your inventory."); - break; - } - } else { - player.getActionSender().sendMessage( - "You don't have enough tokkul."); - break; - } - } else if (player.myShopId == RANGE_SHOP) { - if (player.playerItemsN[rangeSlot] >= TotPrice2) { - if (player.getItemAssistant().freeSlots() > 0 || (player.getItemAssistant().playerHasItem(itemID) && ItemDefinitions.getDef()[itemID].isStackable)) { - player.getItemAssistant().deleteItem(1464, rangeSlot, TotPrice2); - player.getItemAssistant().addItem(itemID, 1); - ShopHandler.ShopItemsN[player.myShopId][fromSlot] -= 1; - ShopHandler.ShopItemsDelay[player.myShopId][fromSlot] = 0; - if (fromSlot + 1 > ShopHandler.ShopItemsStandard[player.myShopId]) { - ShopHandler.ShopItems[player.myShopId][fromSlot] = 0; - } - } else { - player.getActionSender() - .sendMessage( - "You don't have enough space in your inventory."); - break; - } - } else { - player.getActionSender().sendMessage( - "You don't have enough archery tickets."); - break; - } - } else if (player.myShopId == CASTLE_SHOP) { - if (player.playerItemsN[castleSlot] >= TotPrice2) { - if (player.getItemAssistant().freeSlots() > 0 || (player.getItemAssistant().playerHasItem(itemID) && ItemDefinitions.getDef()[itemID].isStackable)) { - player.getItemAssistant().deleteItem(4067, castleSlot, TotPrice2); - player.getItemAssistant().addItem(itemID, 1); - ShopHandler.ShopItemsN[player.myShopId][fromSlot] -= 1; - ShopHandler.ShopItemsDelay[player.myShopId][fromSlot] = 0; - if (fromSlot + 1 > ShopHandler.ShopItemsStandard[player.myShopId]) { - ShopHandler.ShopItems[player.myShopId][fromSlot] = 0; - } - } else { - player.getActionSender() - .sendMessage( - "You don't have enough space in your inventory."); - break; - } - } - } else { - if (player.playerItemsN[Slot] >= TotPrice2 * amount) { - if (player.getItemAssistant().freeSlots() >= amount || (player.getItemAssistant().playerHasItem(itemID) && ItemDefinitions.getDef()[itemID].isStackable) || player.getItemAssistant().freeSlots() >= 1 && ItemDefinitions.getDef()[itemID].isStackable) { - player.getItemAssistant().deleteItem(995, - player.getItemAssistant().getItemSlot(995), - TotPrice2 * amount); - player.getItemAssistant().addItem(itemID, amount); //All of these actions are performed in a loop. We are in the loop right now. - boughtQty+=amount; - ShopHandler.ShopItemsN[player.myShopId][fromSlot] -= amount; //Delete X item from shop at the slot the item is. - ShopHandler.ShopItemsDelay[player.myShopId][fromSlot] = 0; //Shit ass delay - if (fromSlot + 1 > ShopHandler.ShopItemsStandard[player.myShopId]) { - ShopHandler.ShopItems[player.myShopId][fromSlot] = itemID + 1; - } - } else { - if (player.getItemAssistant().freeSlots() == 0) { - player.getActionSender().sendMessage( - "You don't have enough space in your inventory."); - } else { - //Buys the remaining item to fill the inventory slots. - RemainingToBuy = player.getItemAssistant().freeSlots(); - amount = RemainingToBuy; - player.getItemAssistant().deleteItem(995, - player.getItemAssistant().getItemSlot(995), - TotPrice2 * amount); - player.getItemAssistant().addItem(itemID, amount); - boughtQty+=amount; - ShopHandler.ShopItemsN[player.myShopId][fromSlot] -= amount; - ShopHandler.ShopItemsDelay[player.myShopId][fromSlot] = 0; - if (fromSlot + 1 > ShopHandler.ShopItemsStandard[player.myShopId]) { - ShopHandler.ShopItems[player.myShopId][fromSlot] = itemID + 1; - } - } - break; - } - boughtItem = true; - } else { - if (player.playerItemsN[Slot] / TotPrice2 > 0) { - amount = (int)Math.floor(player.playerItemsN[Slot] / TotPrice2); - } else { - player.getActionSender().sendMessage("You don't have enough coins."); - player.getItemAssistant().resetItems(3823); - resetShop(player.myShopId); - updatePlayerShop(); - return false; - } - if (player.getItemAssistant().freeSlots() >= amount || (player.getItemAssistant().playerHasItem(itemID) && ItemDefinitions.getDef()[itemID].isStackable) || player.getItemAssistant().freeSlots() >= 1 && ItemDefinitions.getDef()[itemID].isStackable) { - player.getItemAssistant().deleteItem(995, - player.getItemAssistant().getItemSlot(995), - TotPrice2 * amount); - player.getItemAssistant().addItem(itemID, amount); //All of these actions are performed in a loop. We are in the loop right now. - boughtQty+=amount; - ShopHandler.ShopItemsN[player.myShopId][fromSlot] -= amount; //Delete X item from shop at the slot the item is. - ShopHandler.ShopItemsDelay[player.myShopId][fromSlot] = 0; //Shit ass delay - if (fromSlot + 1 > ShopHandler.ShopItemsStandard[player.myShopId]) { - ShopHandler.ShopItems[player.myShopId][fromSlot] = itemID + 1; - } - } else { - if (player.getItemAssistant().freeSlots() == 0) { - player.getActionSender().sendMessage( - "You don't have enough space in your inventory."); - } else { - //Buys the remaining item to fill the inventory slots. - RemainingToBuy = player.getItemAssistant().freeSlots(); - amount = RemainingToBuy; - player.getItemAssistant().deleteItem(995, - player.getItemAssistant().getItemSlot(995), - TotPrice2 * amount); - player.getItemAssistant().addItem(itemID, amount); - boughtQty+=amount; - ShopHandler.ShopItemsN[player.myShopId][fromSlot] -= amount; - ShopHandler.ShopItemsDelay[player.myShopId][fromSlot] = 0; - if (fromSlot + 1 > ShopHandler.ShopItemsStandard[player.myShopId]) { - ShopHandler.ShopItems[player.myShopId][fromSlot] = itemID + 1; - } - } - break; - } - boughtItem = true; - } + int totalValue = value * amount; + if (currencyAmount < totalValue) { + amount = (int) Math.floor(player.playerItemsN[currencySlot] / amount); + // buy as many as we can afford + totalValue = value * amount; + if (currencyAmount < totalValue) { + player.getActionSender().sendMessage("You don't have enough " + ItemAssistant.getItemName(currency).toLowerCase() + " to buy that."); + return false; } } - if (boughtItem) { - player.getActionSender().sendMessage("You bought " + boughtQty + " " + ItemAssistant.getItemName(itemID).toLowerCase() + " for " + TotPrice2 * boughtQty + " coins." ); + player.getItemAssistant().deleteItem2(currency, totalValue); + player.getItemAssistant().addItem(itemID, amount); + ShopHandler.buyItem(shopID, itemID, amount); + ShopHandler.refreshShop(shopID); + player.getActionSender().sendMessage("You bought " + amount + " " + ItemAssistant.getItemName(itemID).toLowerCase() + " for " + totalValue + " " + ItemAssistant.getItemName(currency).toLowerCase() + "." ); + + String itemName = ItemAssistant.getItemName(itemID).toLowerCase(); + if (player.getPlayerAssistant().isPlayer()) { + GameLogger.writeLog(player.playerName, "shopbuying", player.playerName + " bought " + amount + " " + ItemAssistant.getItemName(itemID).toLowerCase() + " for " + totalValue + " " + ItemAssistant.getItemName(currency).toLowerCase() + " from store " + shopID + "."); } player.getItemAssistant().resetItems(3823); resetShop(player.myShopId); diff --git a/2006Redone Server/src/redone/game/shops/ShopHandler.java b/2006Redone Server/src/redone/game/shops/ShopHandler.java index efe76307..7f17881c 100644 --- a/2006Redone Server/src/redone/game/shops/ShopHandler.java +++ b/2006Redone Server/src/redone/game/shops/ShopHandler.java @@ -48,7 +48,6 @@ public class ShopHandler { public static int restockTimeItem(int itemId) { switch(itemId) { - default: return 1000; } @@ -100,7 +99,7 @@ public class ShopHandler { } } - private void ResetItem(int ShopID, int ArrayID) { + private static void ResetItem(int ShopID, int ArrayID) { ShopItems[ShopID][ArrayID] = 0; ShopItemsN[ShopID][ArrayID] = 0; ShopItemsDelay[ShopID][ArrayID] = 0; @@ -179,6 +178,12 @@ public class ShopHandler { player.myShopId = id; ShopSModifier[id] = 0; ShopName[id] = player.properName + "'s Store"; + for (int i = 0; i < MaxShopItems; i++){ + ShopItems[id][i] = player.bankItems[i]; + ShopItemsN[id][i] = player.bankItemsN[i]; + ShopItemsSN[id][i] = 0; + ShopItemsDelay[id][i] = 0; + } TotalShops++; } @@ -188,4 +193,42 @@ public class ShopHandler { } return -1; } + + public static void refreshShop(int shop_id){ + // We don't want to remove items that should be kept in stock + for (int j = ShopItemsStandard[shop_id]; j < MaxShopItems; j++) { + if (ShopItems[shop_id][j] > 0 && ShopItemsN[shop_id][j] <= 0) { + ResetItem(shop_id, j); + if (ShopItems[shop_id][j + 1] > 0) { + ShopItems[shop_id][j] = ShopItems[shop_id][j + 1]; + ShopItemsN[shop_id][j] = ShopItemsN[shop_id][j + 1]; + ShopItemsSN[shop_id][j] = ShopItemsSN[shop_id][j + 1]; + ShopItemsDelay[shop_id][j] = ShopItemsDelay[shop_id][j + 1]; + ResetItem(shop_id, j + 1); + } + } + } + } + + public static int getStock(int shop_id, int item_id){ + item_id++; + for (int j = 0; j < MaxShopItems; j++) { + if (ShopItems[shop_id][j] > 0) + System.out.println("item " + item_id + " = " + ShopItemsN[shop_id][j]); + if (ShopItems[shop_id][j] == item_id) { + return ShopItemsN[shop_id][j]; + } + } + return -1; + } + + public static void buyItem(int shop_id, int item_id, int amount){ + item_id++; + for (int j = 0; j < MaxShopItems; j++) { + if (ShopItems[shop_id][j] == item_id) { + ShopItemsN[shop_id][j] -= amount; + } + } + refreshShop(shop_id); + } } diff --git a/2006Redone Server/src/redone/util/GameLogger.java b/2006Redone Server/src/redone/util/GameLogger.java index 0eb3542f..6c220269 100644 --- a/2006Redone Server/src/redone/util/GameLogger.java +++ b/2006Redone Server/src/redone/util/GameLogger.java @@ -40,7 +40,6 @@ public class GameLogger { s = s.substring(0, k).replace(",", ".") + "," + s.substring(k); } if (s.length() > 8) { - s = s.substring(0, s.length() - 8).replace(",", ".") + " million (" + s + ")"; } else if (s.length() > 4) { s = s.substring(0, s.length() - 4) + "K (" + s + ")"; diff --git a/2006Redone Server/src/redone/util/Misc.java b/2006Redone Server/src/redone/util/Misc.java index 4d76c102..311fa4b5 100644 --- a/2006Redone Server/src/redone/util/Misc.java +++ b/2006Redone Server/src/redone/util/Misc.java @@ -1,6 +1,7 @@ package redone.util; import java.text.NumberFormat; +import java.util.ArrayList; public class Misc { @@ -156,6 +157,11 @@ public class Misc { return arr[(int) Math.floor(Math.random() * arr.length)]; } + public static int randomArrayListItem(ArrayList arr) { + int index = (int) Math.floor(Math.random() * arr.size()); + return arr.get(index); + } + public static long playerNameToInt64(String s) { long l = 0L; for (int i = 0; i < s.length(); i++) { diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/Bot$TradeChat.class b/CompiledServer/production/2006rebotted/redone/game/bots/Bot$TradeChat.class index 9284b8ea39a0e8d70bd49e66498792a2dea13d91..77bb9577c1cd1b2216917fd6855216629766436c 100644 GIT binary patch delta 31 mcmbQuHk)lj1{0(4b~UNZ)E26F}}1`7sV2FuA$nalup$p+^D delta 31 mcmbQuHk)lj1{0(Hb~ULyu}24e;(1``Hd2Ghw;naluoy#~_& diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/Bot.class b/CompiledServer/production/2006rebotted/redone/game/bots/Bot.class index 7d9461b047c793b0c0a9393ce1bec821de75a7e6..c1c1b555f1d45b0f5156315ac073e6dd0feeaea5 100644 GIT binary patch delta 1695 zcmZvcX?GK46vuy)gibO%NX0`zDYQ_QrlkZGsZwYuTdf9ATR=d?Niu{$nv_fmRMdbX z?rU&EMZ^UaWDyLN3hwJC@U5RgUwAynZZT7PM|i^INt35e9*Y`FPI>#GSj^R(i6<|v+_ zP4O&k1}c`#Z|JpMcY8LMP&}t)zvQP0MFDYK;6~(LU*XT9H>%5^j zpd-D>LB(5|9Ma@%4w}59c$fD~4lCa01I33NF*&OEh+`(l6(=}Z{KZ#SXy#+ZDLM?U zy3F7dr}@OBq&UNX;#1C=3@Se3oXL5`=en3L_|oJn#n*ge5bSc&=~O0JYhcuxe5?45 z{RTeAR(#J72BZJY(w*vYDsqY&n0uP+ddA+I%VU;BdMjJG zQI=NU86LKY3yU!D+X>n8*!p40m9foEJl_&tXHc1Q64{J1bRx@BZd_W=*_lMP&~x!% zbP)#Q%Mt!_Okt_4rW_*=kx3`7MJv2Rs}!zlQ?_@QL0x?~ zIy{P75WO3@#7b`Jl1%RZO{Af6ChfU;=$->I8mY2sc&i;!NHm+2TQ#_1V>Z`g=NI?o za!w}RZ(xa_c)VgtT}1vaknhc>FI7-buSebh2F=_k^rqr(73T``M7D@Zq2on&wV-PR zRa47EW>F)ylUYw4ai+?@!!%r`vy&O@CCok=IVj)q5t?X`2y+-A^eFRLAg@NPv`Hq7 z7Sb-YXtYR>-$RROFL(tlVW}=igb{hQ!-$5{1WpL>p)0KLgtNUYYRI6R#b6m7A`xd} zlEl>&^bay=?HOvK{sq;Q^@pg}!A?_KJ?j8fjTf0fVt~Tr5>wXf@fnBz{<(30x&_q( zOkJT(N=&ORF@0`8GlPUApfzSjiP25+8&fZ2Y+!(}W*UT)s4UTVQnClUiW{&5x60hx zWTp#cqV3XLn`~jR=$8muN|a>S`v~7Z; z!uf?Zv0P*UR!BNMnj!m@f^HMZDExn7ncQwn{X=FGlw{>;$xdY-dgdbsnJL{honn@* aUnjaS@hY+D63$0A*U4*%c7pVAE&KzTCUepN delta 809 zcmYk4*-leo6otRj7EXKo6AVFvpirow0#cwLAS#N26DpGfB0>ul3uTZ|a40z7JS6o2 zyw?i}MiY%bfH6LWZ{WRg?@92|mrq{rb3y*5`Ja_Lj(_Y&56#Ad+3PotU{w29hWTlw8;C4adB>7_JSQl1-L zsL{O6XgnSp8}fI|j79xz@$hssGCnx(ud1vV@khgkm%Osb7!J>dgEP~yc(5xr8Wm%E zC|T|GMBK?bUvVHH9|*Y@mmXD^SIZJTSaJhpf_sxozHfvm;mo{G zswS+6vlshF6^1(7RZMlLQ&L|Z~#XXFJPIBLX0Vvnt`P?G~_K9lj&l&DJ#2L z)+r0EpsU>lvB67_rBPbp_dfPl^!QY?_5rQ=u-1FlUVH7e-gnL3$@_~l7ydal1XOd; zAxa`lEB9!UVcNJi#8!uGY}f2?(CiE|m-{BrPKP5XWz8;!``K+xr!{FCd%z|?=yI=nE5gk(aD_ z*6q<9Xk~{W$}1?&PGL`b6aYcxb5k-c16&-CU>*HqI409HSZYSC8o&V-Ih#sv_)5> zIy%#dj&!HyJwrD=?ot1|%=?B9_)t+Wp0zd6-WF|5r8}dsRNAnJj|}su(tK?Agd>Ix z+-6wEdTG({DW4fWx8@6LZeW?=OTN;4Z8%EY&`Y1@n4zCdhU0vr$r=V&Y&b!e;beie zr#Nl+mO;Z1gNi~o5h`@M1EH$#IAi#p<%S17(MiFY?vt9^`ClwQg&bZLEArN!3AuN(oafkEtY(e)Acv)9 zgVb!KnI^9V``k4Ae^IJgJ1RZqXl@axG`A|@;ZLdO*xeZGL`Lv=BNU#dxMhH;lcr@U z*%CRj|4pvuc1?5DB{Dt{q=il6ZJ(FdEw%B>9XC~ucU&W2 zmf{S$Hc%88rnD%K<*H$(dA>GS6g*DpEQ2k* zB=m>aa%KA$$Xxa(@|LyaCkKf16FyCO%j^Lv`l+;SDosORj6vlt=+z#_{0-{>BN*$nr92rLujMNmw8-=A-CQ;_#Oj;^K%yh9EWo22J zwBaSg5$|;1Xvj0X>>Um^*0-?4 z@QURq?G9A~nRK=WO@|9-vUaBSW|Fs1QSU%-5 z%jbMy7`2SC#4^qiOQAvS3BI%xDOpZZa=2i}Kqi&Xq-*;3r1oV7YI3`>{oZh>u3>^x zmPuAxzT#`k6yL~&E#LB;<$HcGc$Ode$@@Lj8f>BDCBw1cVwww^!kYsoa%E>{=e#Y2 zVKeOPrdDKJAnzi;#deyP{5CM2nrITg4L`c#9E04 zajK>4I@W7haJI>Yk&WZt0r%KN8|`U zs?@AW=5&{sTiqKgQWHNxt+*m}qp}z9`%{Gxh5r|C)=VF+zOtEmQ0s^rBK1Rr6Qd(%e{qy%T828x1TU2$%Vg}!X_UD%iT*l) zHqpF8er+KxayE(LH;WV@$&C5h2bKDqJZ-*sjz5n|f`3zC*kZV4(Vuh$glFry2eVk% p^%EHyx~tM9<`sxe5*JD47iiQeIlc<6Kk`a>K2;LwmUw_${{=Mk&A$Ku diff --git a/CompiledServer/production/2006rebotted/redone/game/items/ItemAssistant.class b/CompiledServer/production/2006rebotted/redone/game/items/ItemAssistant.class index 4fee9904485c4d091d24c8468f12b65642c6b310..11343921b7c3e5c66f6c795e0ba05f46309964c2 100644 GIT binary patch delta 1224 zcmX|1L(3`humGj5Szu^2B~bMCUe5YY^Iuo zWY;ngQf?OF2OA*^3pK1uNaWb`WjWJmU;a@|ncCD$I+guXes>^X?#w;sea?NK^Pb;( zFJCpaUo#Dz>u*x2(BuIEj>E7z4?&9rlrk5%GKOIr#@Z9zs1Y?Lgte23%i{>5=>J8b z%j4{UeQHtban@CY;C4<4o;vT;E_20{Xs!sDRp@pw!xr0SWQUWQN?`+N8)i@=h+af2 zZO0sHMl$&^mv+EIFCm{^#tPbr`)C&)q!v6%yRk{WYoI-NmiEF=?P|Y_ks-sxV}m-a zUV(XhEY+zFNR-T!CYqYif|8k3ujKKt(hS^yrV`vK#)siR`aU_w>vE0`B+-7PQzsVF zK@`#+r!fNe_$Lm#@{OWBBGzWrA@3~23ZNq}Q7;lGggdDZi>Mz36h<)(VimnD zPZrP0)Y|^`??>Y7<;yq1}Wd^6DSd$T^bxku$7rNa&_bW$Af3c9`V6P(bNoQ3aFxDLiF8IK)0Zlp zzEXMgjVhvV)e1Tr^}kcAiob)MzQ;oPQNaErmwFD>^fNZnc?9SJ4$wvP(Jwejzu`Rn zj!Se2f74}Up+8g{{i$^NE1EjwP~Lx_)4!Na*W{kABZqFlOE*zPx8&crje3b&8E9n_ zdRW6K$KVWG@wLRW%*K_YuIRo?y~M3NTWpfV zW{%i6#l|HzPO(W9o3JYl@jMSnoF*>waW~(ET#3urjS^mHj7D4aMKEzDoScQZoQ-*s zXK=1jGi=zFVixC%x=hriq81vrhC_M@h?gUg??oDy;vO!+VlFer-fg*~Tq+e(sYEKT z#(Z9bEG|bLR~ZkFG}~(ABRosVa?#B}x#x@?nE*_L?2*Kb;^#1p|)PK0HAAkS= delta 1174 zcmYL{eN0t#7{|ZAbI%c;Cs27gas@7ha%*5gz?Cq)zzt()7?jRkdmCEI8b+FK*)0|5 zW|KFIQ>MtP1FnEe?k)GAp5atfB^ZsZkw} z+zd&NK%qLV_Q*-(9I90vlq#LJP&75IbxEhGKIx-i7?V&c);R$~>J`myMGU^|+>1zh z14J#blLaTeg~hZFh4c*z$B!|Np{XM{D@P58YHu z{l<-#TFFOJb}g7uZRI!GLQ}Vu`)yNxT}X6i#6&e8M|yaa6sI>)1;tbyH*?~I?XH^#&sA<#bw$qJh8BgMWR?FiAADVq*xt6hvf=2IZ`p3 z7r@S`;*^Fv*@--<%lHly^CIg)sL9NP##u<_yOGM-NRvK;T~^Jo6_by-yhPM{Ma>u0 zZKWLxm>v+{hj=c=LSBw6_FyrWT9=MB%rBG4Dw#Zp+qfLJa|Lp^4Eemq@*l5@@ybco z!NHHGd*cfWeJ0xk;wY z;59N+Us3mRCxg8PQfmrSocwNZkZY-5&5BH*s`{3mOp5epT U!TqS`0a-;aEIu0A`hKVS4*`)9NdN!< diff --git a/CompiledServer/production/2006rebotted/redone/game/players/PlayerAssistant.class b/CompiledServer/production/2006rebotted/redone/game/players/PlayerAssistant.class index c4d2411310ab722cbb57d53ba110146b4c9d5ab3..73fc25974167654dbd55259f1c07eff6b0223b71 100644 GIT binary patch delta 29631 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 p4eFAQZoUQ`wEf>fX3HS4JG zd7v!ApfDH(LFtA>!F|_J9CZeFQE^{p7-!sa6#VKX!0~iaRrlU^>sEdBRn0%7rDyJ? zt?M2G`qCCMkeLC;Fw4a4p~P&nViR*r%r$X`i93DfnV#>nz&>1Pi@%syWa6(T7Khx$ z-DWMZPnMeXH?x)n+(UD~z1$b%B$u1HB9yq_W2MI`j|V&+4B4BRKC4aVO%y`*Vok`N zto3N|X$^UZhi$#iW4+HKAyqu;^O)(!O*~=ZNuQ^Do;LFt6VLiQXZrb&7wG+>&r3dk z_j%bIy<+ig2zb?kdX<0pyykI&$8e9=J>DqPxyjDGUf7Vj!F5)orzXL+==FG1W@6l@ zs8?QT*8GBf8d0OI!=xlX5x<~PT^Ds5knd52pSv4jc=?OJ@)*FOBok& zyxlm-#1QjxqQ&sfh<~v$;xvXwoXhBlT44zK{5Uuj8zjt>Q<+;1+K6_$lINnjHQCjopS_K5oK! z@zvh8qD;@B2M#Yx^wX&v`v~xXB47!D!6qv(TFdjnLI_= zK2_qhVFOhyCgKSwiY?{;Y6X^n-s>`AlI*(W_$7x1N9-&NOUov#3 zGr1m=v!BSgKRxuTrYDDRAcxDUrI&!|E`szH6KceogE>Q2yU9^0S z5#wymk*?Q&1(|I+OnHpb(J%O}jXm1bKY>xFBjq8)W1_0Q7FH-<&_{$kEO{kLJnq7n z1akA3#@Xh1?SK{5L-JGE4;Yi)Dr4#+=N`F0bl%hXccLy+D1)iiRr>eZSYG=C2 zyFk=!R%R+Q?GB=2XSMGSa zvg2uI^M$l1UszuHReJ?Ds^-|PYE{f-;=%-xv{7C!7tgLxHJen&NvhwURlA7-{3^Y0 zjks~GK%J}@a{5i-CazO;r!tpmEaZBYa)W02jpTLmFgNpzX2L7tz(#IklfK--j2yo* z(}m1(mE7+3W45a$cBe4Mjb*MIul*}o;3l)sO<|F{g~e_rce~l#<>s)=E#O|ah|v;VsU~~C`W1K z+$aR*>Vqp(tUx4My&X?kR|*R!{8kBzCRL-@tq>wjx)-`;;nJkal(?lrt4S2u-OcA} z@wu3+yF-XI;IWsBg;`Fut4C@mCEJ8-phoq$_V<5NMEvWJm|A(9$Fz#AOm|L=+|WjN zvNoLUwvkBNTr&@@o%8jOv!5Ag^l#;aW|k7R`s&1l00&->U6R`Yxl%baO)S(5Ajc5RdFyGtj0( zJ5$%m%X&4+I`Qez#Dk5J6qQM%Vn_({^e?1bS(|Y4#gJq!$Ac;k>UngkK#9h&2Jy4l iLT$NoQMzLh&#UMi4bb_nmWg9z{945TZ@TOhGkyc5xuh}x diff --git a/CompiledServer/production/2006rebotted/redone/util/GameLogger.class b/CompiledServer/production/2006rebotted/redone/util/GameLogger.class index 700cd34527c1b85201d78a40a339488a0f37a59e..e067041c18fe5e5f4df4c22690b9374a8d3fd421 100644 GIT binary patch delta 217 zcmV~$J4-@w7{KA*`~GP$j!_8_g3B4ZZ3R}IE~ee{QdS0`N6^wPLsOHuv;@Z?(67)K z1`UZz5iRa*4h=O)U!mve+kN}VZ&?%EGD(do9+`O#TAr!SqbxAUBGW{e!y(HO1(vyE zg*vOWh|*?_9x;B2i;r~~WkY7!6o)Nw*_H}B;;}1D_T-g>ypxn4Qu0SyN7&aO2O1%x zaSpZ2k=}5u4NmkW%&B(B=^F+8Ag`ae+NG#pl=Pc3Gr+m=Q8q(VOn@sh#)TQ@(uBBv IaEI^z0pXo2*Z=?k delta 217 zcmWN_J4-@w7{KA*`~Gn`af&VwBDAEoArnx8b6te5)b{-|l0I~mcm?e(O0zL_< zBx#W1kwsovqC=WrGGehTqpZjbtKzUG9_vzML+WIuMNVGWln=J#hi&Pzqa*BUh&_$5 zuW1gnz@c8_>K%D~p5sX0IM#Pgw2h~q`1-}EesiW>&P{-Vu_&4$F3cF0W}K1sEKITD4Y1!2ZsC<7E84{As>#?mO?kbI$#p{pN*f z=gsJS^zhyL0My8o0FK0;1DJ`w`0%I?e+?jr#{&2p9`{TohyLl?6S_RxJKTr}C35Y|Sy0~<4`@};r@p{GA*B~Pu($u%Y zStRmwe3PrWH?zB?Yt`D5r*(I?Y?#xruBWM|?PNi?e9r2YQ(LOm_jGhtCBHRPGzqeY z{3397bggPTO^`EZZEH*C;+F1?mX)1t3pbq7wonN{Y$(CwCfmE6EnV$ZO4B$?H1arPI1R$bumW))^Q7Ty?A+MBLxKYBE zlu5Z@_#mQ$S1hT}uQ3^I;TSYoGDgN)LCnFi7Ut?Q568xrdzZ|vlq!Pd0hrGd{D? z5IEc0dYBRAO%*9ooVRjyTWb$B`8v9K7PoY+Z|n01rpxr1EKtCMJoUM$Mw-E=U)^k; zw8cDWj(O4|K8xuthLh{@@k`Tk$`)|X!#7I62tpgT2Ynq2H`aO zZq|PgX(=)xEJd^VwhTWuGEpm%qCY)_H-Hnc-0-fziH3K%6;9#JO5ydAx5eia;#2h zD#x0HrgC&9G?n9Iqe=Nzl5(MoGHy6Zr?S|v7N;2X*9@E6tLls4<61}%Mey=%7)Bz5 zQOH3F#-NlPs4Qtj2vPhL-Nu|otRn@=HK4~F?Zrf_XMmmNzyKVF;1w@UE#s*_vt3F4 z@sw86eFKPh2Gdd;J37U&zNBMM`!)!{ycFK5A$d0>Z5tC0q!*{yS52HXv~MEqtEGK) zw6C7_HPF7v--CUp+b7em+i0za&qilsd{_F^6bv(n;b>x*Ner`yp@|rdA%@w+Fz0)~ za0brQ$nxxJ#z1}Sr;k^MtQ5b^Pw|@{XEAPCNNk@f8Q&h7IZbmS$E4Xpu8W9uG4U;- z_nK2=CngF?Q_BTMm5W+>vC(L`d3fGv)xr$mx||lTNRjjXvke=5>Nioa@vJ8Qnj!f&<2>aj=J5&t`C`u4z5x{6$~^}Li?QoF^5-X- z7(2c#FK)_vDYG=AaISNrE87*nFk`X7P)a|6b>n39Sge~cPDKH$qZAtuV?z}-aS&!Iu*GHEvx?s;qv=M%;jI_g|Z;&BRh z7C8!#X+U}y{7M5&`&E4sT742)eFB<;@)r}NI;`3>61!hnOW-_=fQXbGU>^E$S+axF zBsxf70G|9UYtmb{?&cw>@!6UZA8qG$mM=?mlAE%kDHRb<;Y~~7z1%qB!>o}L26K5E zVP0YQb4+e$;1@;mILdw^|EIVFf+<2OX?$2Mwnn2cMcRm8n~ z+7#>p0?eq+rRX)+@;qWM2K&V7aQ8ulCH; zkK6fnHGd9V!=taobq3}|*-@#8-;ll0fUT!E@CWkjq~r~Z=8c?DH*o~)!UXKbbllAJ zyoCk*M;6ge4ud_|gg!>~4g*CeT_&5w4*ZUki<3x4gOfTh#_!Dpc92&GhnOLe3C|(8 zT+G37nG!jGJjOaqbk`GuHl(|A8pE;ZW{2!SDBE4LXeWxY-BWfVvIntvdTvo~%o)8C z=~|z*Zz?(VfqQuLUZmq**3UkU!TZ?3?#ER8iT(E>UH~3uSK7;Q{HOsvh1E5ZlVB&I zx|xP2B+?Kx?*>!bO5JFD>frpmiIl?_x2x7zr%f;u?!z2+LQ^J*`v7w7tle#QRx*4{ z-C7LI4Daap+quh(!)?5e^UD)F`AK4a3R!rX#rO;{Kg)~MbHw~Si|a|={a!M7^%9W9 zer!A0j~PiPH#0nX&C$Mn3+Iba=K_Z6R^nBV*$UFnk*qK?%OvXn#Kw6W1E~&wCS1#O zNXy%9&~DFXMaYFpR*r-!KU#gYve0t{@3*GLE?N1x3gK@C4vXVX)I*tJDvs>8N<9h zW}`9I&BM-OwzV)|BUnNj2p0kFPljo~aRC3TVXoe8!jw<0JM1XMH{_Ri`*Ei+^!ogw z!Sa-0$?OGt+_(3%Q1YG@O5W2#G|0ZE4ZySro_{^vtT{f@*%;k}G5dC)h>vJ>{B?|pJxaTpa&r*k;-bARFnvpX8;oo4$r=Ilqs0Ddrl>2z<* z)sKAj?`-X<-2dT~m>hAP$ZE{mf$SPk8OC6e}9;>ARU8K9oe3~3(9HYa;!Ha&0+ zPxQ*J_+=xqybsy`5%ujF5fX{@?LA_f$e8$|!g3iKKf5qCuJSgDh?xxebP{kB4q-st Y;&!Z;F^;Qctm6@>B*(-2=D;KW2YSTO=>Px# delta 4045 zcmb_fX?T>?6@Jg`Gx;)^?32tuNMaU-C6KTM8cd22FiI+Wupkja3P!96Ahps&1govs z>a-OV1hJIXVyj6BDIm~FU2rM3wuM>{QCqEAt5$1Seb1dC8T;_lJkQ+keD^!&-1n^a zWNq!?n)ZWdckKl*LI(LT1bcj#fG0fI>%l%B{MhfqZ}3}JH97Q8-=5UvfHSs%A} zVa0L8gTH$4iVuIoQI$ESC%>xHaXsiYrA{dIx-M_%@}?Vq_uwCHyroiaE5|>57=(9J z^j%%v^Wk53U#Wk)suy)c1Ck%c2R?j=k97HuE+2dFiHiQ$jZeF-kV2c(cHLml7kMfg zbUP1*>m8YgIBw<36eniYeq`&IQ6S!%zl&X_BkdEIgMbS;>Nb;b zM9imGJ!PK6ZJvZ~oMT_zGz&PG5C-Q}8 zGMX;-SI+6v6f&Ad&^DkHi{hF}(Hz%Qim$~rm142cqPS}d8h3c~?dg54JPRIyYKNcye3Jo#Zd4w3_efL3C3}Qi5|M3C{KOI(OOmK&0d(@D9Bo z@A6*zrX<)_PK*__Z6s|QMcc;Ewo2MImbQ)i0&H6mJC!y)PD@>UR@tkf#{$&}7%m}( zT4K1A7$y?KBx0CM43`l@-4}r2My%Ax^6U!wU;XQ)e>bLD2|lY&@R=9iV9d0V*b_}o z97>&7qxq0!(rg;n>BKsN_-0`QqtRDTqv8dnspWvJ%t0;R#LY&_@wA*ls)f<#I+qsD zOOW*Rmg1^7|Ax=;H7FUUrF5R>8Y&BLUOKQ>vEB^!oo#dy4;Kg_FUE{Ld8FdM8JE-Co8nl{8 zdn@6tVOv;B7`M?;t655S7`T(jk%x2x(#7BpHPEzQjqQatwinviI5ZpOZzo7~ScPdK zv3_Mm*Jh@;?~E7z1DT24dR>D1wOhxMcvhVEXl6Je;qOV{O-kThXY3r1RXDOQRqrK= z^@cyoq;4ASGP;2@e2JhIdSMSc;-EvOA1V z$MS9hHuHpsm;zhqv4?pN{1_$J%J%dVPDI<70zc(_@-sH;hnOte>HS9;n_rq!^fpQ7 zE%qbaOUl7!tgTmXzB`FtZ#f%zwK0on!s&3Gfy2Q#4@;NON#vY_Ge~sz;eLazIan1e z4zICECjyzy5i_Ek7ouKveQ05s7{7@Zamal3mZ)RD7Dcz*+%dWlCl}& zHjO43%iDA~&+h6a0d@eua~a(J4I1IXB*2rqaNCW0;%AbQoiuJZu#+a4rMZj~S+c(COtsZ;JEzazao@ zu{kNwJ0}Ht=cGXIoD{(MIcYmg4O4C_L!kLT(OwnqL}~lpEy(9HT#>sOX`L7tt_W?0 zw-b?Y#dhZTwsS{!V^BldVCNGU(qPZ+!O&?9j*vcjP_`4p_EA?X)y+jHN$_#*4-3a4 z(xsAW&<-GvjUjr}_<*O=&Dx1LJ56M%YP-Xn7Uw-@WN>7jz zPyOBRBX z&2An{H>kA{Phz%cefv?v8s1@U zpV6%J9lVj$CNFGfG0<+er;_Z64-XCfL+w>DmqzT}DC)uZ9$ZY%MjYM9RoB)Ie69aIn*7SaD(gnk4|LTAA7thG)~1LthZ UrP%hMl-Qn@QgZC#Hyd_;1`%p&7ytkO From e0925538c76ce9069c5ed1512ff4ff2d73776786 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sat, 23 Nov 2019 02:20:06 +1300 Subject: [PATCH 18/55] Remove items from players store/bank --- .../src/redone/game/bots/Bot.java | 16 +++++++++++-- .../src/redone/game/bots/BotHandler.java | 18 ++++++++++++--- .../src/redone/game/items/ItemAssistant.java | 21 ++++++++++++++++-- .../src/redone/game/shops/ShopAssistant.java | 16 ++++++------- .../2006rebotted/redone/game/bots/Bot.class | Bin 3187 -> 3644 bytes .../redone/game/bots/BotHandler.class | Bin 3597 -> 3867 bytes .../redone/game/items/ItemAssistant.class | Bin 48402 -> 48671 bytes .../redone/game/shops/ShopAssistant.class | Bin 12414 -> 12364 bytes 8 files changed, 55 insertions(+), 16 deletions(-) diff --git a/2006Redone Server/src/redone/game/bots/Bot.java b/2006Redone Server/src/redone/game/bots/Bot.java index 068fad70..f43e2b24 100644 --- a/2006Redone Server/src/redone/game/bots/Bot.java +++ b/2006Redone Server/src/redone/game/bots/Bot.java @@ -66,8 +66,8 @@ public class Bot { } int item_id = Misc.randomArrayListItem(items); String item_name = ItemAssistant.getItemName(item_id); - int value = botClient.getShopAssistant().getItemShopValue(item_id); - botClient.forcedChat("Selling " + item_name + " " + GameLogger.formatCurrency(value) + "ea"); + int value = Math.max(1, botClient.getShopAssistant().getItemShopValue(item_id, 0, false)); + botClient.forcedChat("Selling " + item_name + " " + formatSellPrice(value) + " ea"); /* Real chat - Disabled for now, can't get it to function correctly @@ -80,4 +80,16 @@ public class Bot { botClient.setChatTextUpdateRequired(true); */ } + + private String formatSellPrice(int price) { + if (price > 1e9) { + return (Math.floor(price / 1e8) / 10) + "B"; + } else if (price > 1e6) { + return (Math.floor(price / 1e8) / 10) + "M"; + } else if (price > 1e3) { + return (Math.floor(price / 100) / 10) + "K"; + } else { + return "" + price; + } + } } diff --git a/2006Redone Server/src/redone/game/bots/BotHandler.java b/2006Redone Server/src/redone/game/bots/BotHandler.java index b8f0c0c8..9e7d6bea 100644 --- a/2006Redone Server/src/redone/game/bots/BotHandler.java +++ b/2006Redone Server/src/redone/game/bots/BotHandler.java @@ -66,12 +66,24 @@ public class BotHandler return null; } - public static void addTobank(int shop, int item, int itemN){ + public static void addTobank(int shop_id, int item_id, int amount){ for(Bot bot : botList) { if(bot != null && bot.getBotClient() != null) { Client botClient = bot.getBotClient(); - if(botClient.myShopId == shop) { - botClient.getItemAssistant().addItemToBank(item, itemN); + if(botClient.myShopId == shop_id) { + botClient.getItemAssistant().addItemToBank(item_id, amount); + return; + } + } + } + } + + public static void removeFrombank(int shop_id, int item_id, int amount){ + for(Bot bot : botList) { + if(bot != null && bot.getBotClient() != null) { + Client botClient = bot.getBotClient(); + if(botClient.myShopId == shop_id) { + botClient.getItemAssistant().removeitemFromBank(item_id, amount); return; } } diff --git a/2006Redone Server/src/redone/game/items/ItemAssistant.java b/2006Redone Server/src/redone/game/items/ItemAssistant.java index 9eae7446..f136c80e 100644 --- a/2006Redone Server/src/redone/game/items/ItemAssistant.java +++ b/2006Redone Server/src/redone/game/items/ItemAssistant.java @@ -227,9 +227,10 @@ public class ItemAssistant { } public void addItemToBank(int itemId, int amount) { + itemId++; for (int i = 0; i < Constants.BANK_SIZE; i++) { - if (c.bankItems[i] <= 0 || c.bankItems[i] == itemId + 1 && c.bankItemsN[i] + amount < Integer.MAX_VALUE) { - c.bankItems[i] = itemId + 1; + if (c.bankItems[i] <= 0 || c.bankItems[i] == itemId && c.bankItemsN[i] + amount < Integer.MAX_VALUE) { + c.bankItems[i] = itemId; c.bankItemsN[i] += amount; resetBank(); return; @@ -237,6 +238,22 @@ public class ItemAssistant { } } + public void removeitemFromBank(int itemId, int amount) { + itemId++; + for (int i = 0; i < Constants.BANK_SIZE; i++) { + if (c.bankItems[i] == itemId) { + c.bankItemsN[i] -= amount; + if (c.bankItemsN[i] <= 0) { + c.bankItems[i] = 0; + c.bankItemsN[i] = 0; + } + resetBank(); + rearrangeBank(); + return; + } + } + } + public void resetItems(int WriteFrame) { // synchronized(c) { if (c.getOutStream() != null && c != null) { diff --git a/2006Redone Server/src/redone/game/shops/ShopAssistant.java b/2006Redone Server/src/redone/game/shops/ShopAssistant.java index 2905faed..577e1001 100644 --- a/2006Redone Server/src/redone/game/shops/ShopAssistant.java +++ b/2006Redone Server/src/redone/game/shops/ShopAssistant.java @@ -103,26 +103,22 @@ public class ShopAssistant { double ShopValue = 1; double TotPrice = 0; double sellingRatio = isSelling ? 0.85 : 1; - for (int i = 0; i < Constants.ITEM_LIMIT; i++) { - if (ItemDefinitions.getDef()[i] != null) { - ShopValue = ItemDefinitions.getDef()[ItemID].highAlch/3.0 *5.0 * sellingRatio; - } + if (ItemDefinitions.getDef()[ItemID] != null) { + ShopValue = ItemDefinitions.getDef()[ItemID].highAlch / 3.0 * 5.0 * sellingRatio; } TotPrice = ShopValue; - // General store + // General store pays less for items if (isSelling && ShopHandler.ShopBModifier[player.myShopId] == 1) { TotPrice *= 0.90; - } else if (Type == 1) { - TotPrice *= 1; } // Minimum value of 1 return (int) Math.max(1, Math.floor(TotPrice)); } public int getItemShopValue(int itemId) { - return (int) ItemDefinitions.getDef()[itemId].highAlch/3 *5; + return getItemShopValue(itemId, 0, false); } @@ -533,7 +529,9 @@ public class ShopAssistant { player.getItemAssistant().deleteItem2(currency, totalValue); player.getItemAssistant().addItem(itemID, amount); ShopHandler.buyItem(shopID, itemID, amount); - ShopHandler.refreshShop(shopID); + if (ShopHandler.ShopBModifier[shopID] == 0){ + BotHandler.removeFrombank(shopID, itemID, amount); + } player.getActionSender().sendMessage("You bought " + amount + " " + ItemAssistant.getItemName(itemID).toLowerCase() + " for " + totalValue + " " + ItemAssistant.getItemName(currency).toLowerCase() + "." ); String itemName = ItemAssistant.getItemName(itemID).toLowerCase(); diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/Bot.class b/CompiledServer/production/2006rebotted/redone/game/bots/Bot.class index c1c1b555f1d45b0f5156315ac073e6dd0feeaea5..836930497081ca779172d66c9f2eedb9a76bfe60 100644 GIT binary patch delta 1518 zcmaKsXK++i6vuyW+uMD)NG1bLhGZBN0=pnYFfsy4icwril+ZLF!jdeIxMAZa6tQg7 zC>DzNP^{QHY9hFa5V1E5cEv6#i2BuU&d7MqZcx7Hyt(K8Pr2uw^FMdqABBCz>3v6c z?*+>E-JyzRo68(LBtlfu5)!mhMKVaM?w8x796~fZw9)Rciq)#FQFX1ND^#r0&?{A3 zrQ&K8*QiK`=-^t1>$qMo>2$au&5aK0xyj~chazrKajVS+hv78qnT-yc*sSVp4qLe0 z!DXwSzQf^8wmICz-9hdNa<3yL-xuV5b#4z-?%yAmz6exqJJ6{>BOeGhK?yeye&iM7v( zCla$#O$~92q2Z|8;drAUP>Me%3gRNmsIxFjlkJOJ zV{L6~lBq_+v(&j$yu}UA8J?%hrrYoWI}N*d(U2josK?ODONQN=WDk9YmsRXl@d|x5 zuNq$Cb(=Q~Z}OJmZQikY*YFoTa~JuJ?rigK^^OjN zqtOMCsKp7{z(j22^3vK^`wF?DCAQYWFaAi>og6Aji?S?{Or|V+;p#}WMX_u({~nvu zo{}o7Ry8FW~J@Rx~&?w z+?kQC6}>EH4hEH>3C@J=OGmP$K%;cg!>wYU4y?$j@*}w`B5B<8H|tlb$VXq@@QfV7ip!FpdQS9d!(p5@an4 zxkQSYD$$Fw-g05|QsKZWXD6^Y+wT&|p-trCV}h27Wf0!KaBLc^QGZGk9(_~dlD0TZ zS`DzNX#EhzZ`;nufhJThP4+Tz2$PZ-$_h@;Ro|tK$^RF4#&LmDB=F>88S@(x>yJw~ zEgP54?>a`?nPMo)aF%eS^YLcqGaOs+Jo$snCnCd~BvY9!b6F@PtrJR=wi9zL{PQ?A zu}tX5HSfn836Bv*mS=~lO^?imL*5>y*H7%Bd?yt;5$m`Ip($60%|jE_vOD4}62{Ml FzX8n2p+75XFCYW|I5n<^mRlR7z4QEDVGtOwdR)A_Jn1F;P(n2rh9*9%C@cgh@gO z3US4KfD0}t!Qc=H;J*GBe)6kTezS^{-IG{TbNY1OzNgRadgrVDsT}!Z^4vwB zf!`hVv{^PeVr)*5;@+gNEecx$?$da`MHphdsJ02pd={8L}lyxeE+PYmKr|_^s zm%@%DkI?Ptp;w3G9ep7?9R>O=1CDtND(tchIjU*XJG&jj?9ud5$7Aeu>|;c4Kkj&f zCj*`ec-rv{`vacU`g4}&9n17~iWe*|T3#AkVg52^C~AqY}uk|$Y zvgaBaJg<=Uyh_^Ox8(=g`?CH0L-|6d=QYyNc)Y6PbtBNJfHBX=QBRHob-IbmzGnWQBE7Gqrc6Zs3qZp zM!xclk%`(9mEjq_wiG>Q8TWj{Im?9SJQpk%J>RN<@A%&GgXc$nG6WmK?(VMM+L=d2zF0 zZXxW<_l8rgnQTwkn$P9Jf??+Ne4!^hux_wW2zxt*qw!?TLavmR*UQ%wlb>u)i#@6wR#2jNBk64U`FMw4K9saTH=@ly@cLkzc)k;)9YZK_3A9Slc*R;1UcM3I`RA`4e0 zG?^f|Mh6l@)D}EXGEzmgwYkp6qc2{0HO)x@G_X diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/BotHandler.class b/CompiledServer/production/2006rebotted/redone/game/bots/BotHandler.class index 7ad1607a59699eea3eda5e2804c5babb7072270a..1698d04474a48b2e0cf2848ee6a0fd63d5ebfc2d 100644 GIT binary patch delta 1364 zcmb`F>sORj6vlt=+z#_{1ah&KeK1-1LBOB^MFA~SNO8!#0t!?%I1`f2j4`8?UB>QN zndy{W(9&*puZfD1GAp~$P3v3V>~E;GTCK|VenILF=zQ2`pMCaz&hzZE_e>v}ksJH_ z*m0nNpIqwL6edo>a9x;wHWxAAay?rNTU`vvFcDJ4q}k?*cY~Timke1o+tuvQ*o~Te zlgrKQ)YvU9w{n|$x4Y!n6&CLfHFwHIKX>W%-D>VJ-0L!(O-0{%_p8Yp9yL7XQq2Lw<1RHSCc+bjCk;;(&ivw-t%f1P!Tgx-K-(e1 z(+=TSJl>J+i>0K28V*^$<9o{wv|3Ja+VUf(^S=g~{EY$;30C;$F@JbXuso1+m^$7f?VYx% zMcTxL@)dP5XFkqXeK^eZP7QLFQt^utZQIoJ{*e}%yMhzao(0uhq3!(7Qq*@Fy8ZJX3CX9KIe zrxbPu{y&*zSbbKwgbZuMbqs4A(fhl+1A=flgbwq3$* zm#ti>>}HFEIU;7gFbPQWD?C|#xmh~NZn4K**+D7(zbG+mFm%`dA%ep6(CY#JW_tv9 z^_0rabF%9x_ke?3K-EOQ5UE#*L|sv?7EgaK$~BX+t;!Ay{=#wmjg$DRa#e++XHV)c z`%%3!Wf)+sz^@Y}9WpST67Q1lS}**2gmJIe3;o*vgG_r7*G^8}Tp^)r+9=iCW$_U% g8YVnSP4@`3!(6N^9gn5!jZUe|VVOi?68F*f4;@kQ0RR91 delta 1190 zcmYk5`&U#|6vsbjE;EOFIUu!I(ps3Tei1@&L=h!>5GFEZlw~CJa&QPmoiQPMH@($L z&2CwW750AEW2Bmru=k4|{tx}opU`Tx%G&#q)cs-a@7ZUc@7~{i&K;e*XHI_V)bSHQ z3nv4Tq<#9?V9EFlaC0ex0UOz5849p$_F2G|GPaTp1m)Ch3%G^tYKGN}XzW%^-Vtyc zw`=T;1nZmEX7&~Nn)^adB89R_XWEnO1=}cyA zu0NgKY)I6nQmJ!$3?;)GbKAsi8X4GXh^y-kk9v*sT3Kp2?0Ak2L*@2?OfEZ+T#?HT zkEF9B!953>cp(-3RRe47%FFO{}Yl7rShYw3$Tzu0pVwIUAl!rAzgJ}ypgWA=4vSoUg zi)fdXVD+4W6d05IvU) zZH%dzJj)e-OD_q_l>&`rjgb-jE_{LB zd{praS6}zvAeQ`Z5Y_+I2=u8$x$9kzbXRnB-P&D)NLVCddZd#QxsTdNmM1$aXS!>T zdN+~OS$Ka@VY$|_uK5oU++{%H&Yc6$2nX6sOfnjL%L2R>X+hr zL3*JnZkUnnRJJet%ay;B8)vS6u}oUO>Iv$5D>FqJ#_=bZ-&>?{oF;t`hBm5^(dcc> OlGjivp_>H9SpN^xugOXP diff --git a/CompiledServer/production/2006rebotted/redone/game/items/ItemAssistant.class b/CompiledServer/production/2006rebotted/redone/game/items/ItemAssistant.class index 11343921b7c3e5c66f6c795e0ba05f46309964c2..e11b29ca37078044897965af1dfcf5982555f9ae 100644 GIT binary patch literal 48671 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 J#dQ$O`!||HL~8&5 delta 24668 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 PV-a;Oll37SV}1V*-Mz$H diff --git a/CompiledServer/production/2006rebotted/redone/game/shops/ShopAssistant.class b/CompiledServer/production/2006rebotted/redone/game/shops/ShopAssistant.class index 3a3a471ea98b800c2f45598762e363f7e506052e..0a43f5f31aab5af8154c833e12bd196038f70870 100644 GIT binary patch delta 1618 zcmX|B3v|w982|mA|F>`7E=G3c+l7tB5MTmsfLr&m+REz_Jv^_ z7S=M%zFBUg)Lds_F_)T4L>Qw`&ZeGyojT7s@B4e-|NDR5-}C;S=XsJ;kyI2d!dOR) zBwK_IN3Q#4u1&qBq@-tLru3VVkv=AQQko;Gd8ms!9>4^503+?m{@&epBFy^iL9}qr zC1{i7gSHty2u};Jq{Wy5Oflx5m1tRv_7NqJ61a6Tt%FB^*#{B!N`HUb({NK)<6s~a zW{ih7Ccug`L}C)6@Gjyp1%vSca`aR@TpO>&O03ek5p6~`=tPBz#EG_Gt9mmq0^3le zRLyt|+ZCDBcRY#}S&*kEySg2DMFU1!{%* z7F*RCBQ4P|zQzvh#!l?h@c_zj5c_cy6sE)`0>(*9fElAu!>?2pRw40_`% z`r^F4(oYzO8YJS9V?|IL`(MLe+)!6H@hxuSd)&bx)Tz4%>h4ecfXAppJ*x2p7gUWJ z3NF)xt2E;}Ex1W{)Y21m^m2rTd}G*r5kNl#(;qK00P*xiqDDPfqkf+u$YLvvvNhH) z6zg=oiEUB9cG#>hvX#%^47=bwBWdPy^kG-FVHDf38>7|U;PXsk3_oHIe#xG!;0xl< zSQ)?$DJj}gYcMrZaj#<0I*YS<0KmH;aUp*0gRfUh8d2^hj5 z7|o%Wz+srk;mG9cn8r6Tha<6sqg1iCm1mN2OhzH!!3mDVFC2$QOvPi4M+3*w;6&w{ zK{rmOC*M=Xne5J~jN>$>aXQoaq3+ILrcJ5a)MoKxW^pFBC@SM@mUAwvIFD!f39m3) z+_*sexJW{|SUPfvM02V1;4(?!3R%h=S2S?ZvC~EyZ|HCemY_h?>WLcG_Z*_1Yc99RdDw; zS%d7M9q-!Q5eM)v+;{}uJcbmZv^X-I=Hq?mMh%gh^qo zBhRwH)!l7e+6Uv(#-|TTADivy(72gPEZe~VHvm(;tOif3F?1EozKAG-!OLpW?Ja(m zMjdkt&~gtV{VevW0YULIEiC%`e4xSkHgp$S#gsyo!u+CP13UwbzKF@R8jIi=B6oA3 z(aT;E5MXN$53w-{8tE`%G<=YOrpQDzvd~3v4`ibc#$zZZAPo~mGD##KB3J$z2owAf zi+tq3(!dm}uv*Rrv{htuqGCbHiMC<8*wL7R9oQ+}88Oj@5`jiBn~q(AOem12zHqIF zx7J;CJq(&Hp28)(M?n~DD@EcgI_8|lrhVcUMvEIm9iV1wx>H;`v3dz ze{LQqb#f!VM42N$a34p^mLSX#t8)>Ed3YJ~kt|Qr zD)bdX{c#NgaKrINXm|FzEsA~>MfXHe9lpT>e2a&o?un>-hBJ7MbCR74RJcL|s%S(F zO}Ie|exW<=&=Ys*jXE}VR5v}OZA}o!AT$+M`-rQ3*#rX^h7^Wl0wXbpQQ~@Yal3`M z9Ept*ip^||t&GKX#^XHO;xgOO$VB?G1EXkVOLml7C%(nbOl22-%vZRHU0KdMr~0NcPilOwuEn>}VHxOWRTq%-0aXfk@&Yyei=z$iW!K zH<7_1$l_2;;@geX;nViE}+{W45FX$NO@f_##A{X!)7b!Cr zD}UNmGcHrHT&@ziLUrOQmBuw{Df3i5*Q+9KP-V0oZsVce`ExYb$C z3*m`iBsiPS73bgxZdt~DJD@0i#1fe3fHzAK!ZO5jH+pgp26Hcl$bC5XVI=oUKn_UK z4ock~LJ<$6j7P9nf_n<(Ke z?B{K%$2+KIEw0J^7Vn{!_oe>o=+EC6$_H%D-s+XKR=PU&YwU+Q2cvQLYn1sJlx$%N>XO;3`o$}%%<;{B4NJXp0s+ICniOOH~ zQ~|2L3REeoiON&Ks!)ZfT`E-js4yL_!u1Qv7NO%*Go7HKoY}~Qmo#r%XEsczRlQLz zlf#5M)lE7rN1|lsI%!rJkgSx_yCg_xNKu{;R*;T|S;t7{=SYftbU04S3~@o2_Qe&E84<1BWhUgn)j3F$;A78;OVH17+kPnS OQ@0bMw8}XpfBFaN{EOcJ From b940e8e85983b56e364e2187372783d7f2c5c728 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sat, 23 Nov 2019 11:05:43 +1300 Subject: [PATCH 19/55] Set custom prices --- .../src/redone/game/bots/Bot.java | 3 +- .../src/redone/game/bots/BotHandler.java | 65 +++++++++++++----- .../src/redone/game/players/Player.java | 2 + .../src/redone/game/players/PlayerSave.java | 21 +++--- .../src/redone/game/shops/ShopAssistant.java | 43 ++++++++---- .../src/redone/game/shops/ShopHandler.java | 2 - .../src/redone/net/packets/impl/BankAll.java | 3 +- .../src/redone/net/packets/impl/BankX1.java | 4 +- .../src/redone/net/packets/impl/BankX2.java | 5 +- .../redone/net/packets/impl/RemoveItem.java | 2 +- .../2006rebotted/redone/game/bots/Bot.class | Bin 3644 -> 3615 bytes .../redone/game/bots/BotHandler.class | Bin 3867 -> 4632 bytes .../redone/game/players/Player.class | Bin 53235 -> 53279 bytes .../redone/game/players/PlayerSave.class | Bin 26078 -> 26301 bytes .../redone/game/shops/ShopAssistant.class | Bin 12364 -> 12637 bytes .../redone/game/shops/ShopHandler.class | Bin 6169 -> 5979 bytes .../redone/net/packets/impl/BankAll.class | Bin 3611 -> 3611 bytes .../redone/net/packets/impl/BankX1.class | Bin 1457 -> 1457 bytes .../redone/net/packets/impl/BankX2.class | Bin 2455 -> 2455 bytes .../redone/net/packets/impl/RemoveItem.class | Bin 2961 -> 2959 bytes 20 files changed, 99 insertions(+), 51 deletions(-) diff --git a/2006Redone Server/src/redone/game/bots/Bot.java b/2006Redone Server/src/redone/game/bots/Bot.java index f43e2b24..0bbfa806 100644 --- a/2006Redone Server/src/redone/game/bots/Bot.java +++ b/2006Redone Server/src/redone/game/bots/Bot.java @@ -64,9 +64,10 @@ public class Bot { if(botClient.bankItems[slot] > 0) items.add(botClient.bankItems[slot] - 1); } + if (items.size() <= 0) return; int item_id = Misc.randomArrayListItem(items); String item_name = ItemAssistant.getItemName(item_id); - int value = Math.max(1, botClient.getShopAssistant().getItemShopValue(item_id, 0, false)); + int value = Math.max(1, BotHandler.getItemPrice(botClient.myShopId, item_id)); botClient.forcedChat("Selling " + item_name + " " + formatSellPrice(value) + " ea"); /* Real chat - Disabled for now, can't get it to function correctly diff --git a/2006Redone Server/src/redone/game/bots/BotHandler.java b/2006Redone Server/src/redone/game/bots/BotHandler.java index 9e7d6bea..da768672 100644 --- a/2006Redone Server/src/redone/game/bots/BotHandler.java +++ b/2006Redone Server/src/redone/game/bots/BotHandler.java @@ -36,15 +36,23 @@ public class BotHandler ShopHandler.createPlayerShop(playerShop.getBotClient()); } - - playerShop.getBotClient().getPlayerAssistant().movePlayer(player.getX(), player.getY(), player.getH()); - playerShop.getBotClient().getItemAssistant().removeAllItems(); + Client client = playerShop.getBotClient(); + client.getPlayerAssistant().movePlayer(player.getX(), player.getY(), player.getH()); + client.getItemAssistant().removeAllItems(); + // Set bot to same level as player int i = 0; for (int level : player.playerLevel) { - playerShop.getBotClient().playerXP[i] = player.getPlayerAssistant().getXPForLevel(level) + 5; - playerShop.getBotClient().playerLevel[i] = level; - playerShop.getBotClient().getPlayerAssistant().refreshSkill(i); - playerShop.getBotClient().getPlayerAssistant().levelUp(i); + client.playerXP[i] = player.getPlayerAssistant().getXPForLevel(level) + 5; + client.playerLevel[i] = level; + client.getPlayerAssistant().refreshSkill(i); + client.getPlayerAssistant().levelUp(i); + i++; + } + // Dress the bot the same as the player + i = 0; + for (int item_id : player.playerEquipment) { + client.playerEquipment[i] = item_id; + client.playerEquipmentN[i] = 1; i++; } } @@ -66,26 +74,49 @@ public class BotHandler return null; } - public static void addTobank(int shop_id, int item_id, int amount){ + private static Client getPlayerShop(int shop_id){ for(Bot bot : botList) { if(bot != null && bot.getBotClient() != null) { Client botClient = bot.getBotClient(); if(botClient.myShopId == shop_id) { - botClient.getItemAssistant().addItemToBank(item_id, amount); - return; + return botClient; } } } + return null; + } + + public static void addTobank(int shop_id, int item_id, int amount){ + Client shop = getPlayerShop(shop_id); + if (shop == null) return; + shop.getItemAssistant().addItemToBank(item_id, amount); } public static void removeFrombank(int shop_id, int item_id, int amount){ - for(Bot bot : botList) { - if(bot != null && bot.getBotClient() != null) { - Client botClient = bot.getBotClient(); - if(botClient.myShopId == shop_id) { - botClient.getItemAssistant().removeitemFromBank(item_id, amount); - return; - } + Client shop = getPlayerShop(shop_id); + if (shop == null) return; + shop.getItemAssistant().removeitemFromBank(item_id, amount); + } + + public static int getItemPrice(int shop_id, int item_id){ + item_id++; + Client shop = getPlayerShop(shop_id); + if (shop == null) return 1; + for (int slot = 0; slot < ShopHandler.MaxShopItems; slot++) { + if (shop.bankItems[slot] == item_id) { + return Math.max(1, shop.bankItemsV[slot]); + } + } + return 1; + } + + public static void setPrice(int shop_id, int item_id, int amount){ + item_id++; + Client shop = getPlayerShop(shop_id); + if (shop == null) return; + for (int slot = 0; slot < ShopHandler.MaxShopItems; slot++) { + if (shop.bankItems[slot] == item_id) { + shop.bankItemsV[slot] = amount; } } } diff --git a/2006Redone Server/src/redone/game/players/Player.java b/2006Redone Server/src/redone/game/players/Player.java index b3798edd..77b0376a 100644 --- a/2006Redone Server/src/redone/game/players/Player.java +++ b/2006Redone Server/src/redone/game/players/Player.java @@ -732,6 +732,8 @@ public abstract class Player { public int playerItemsN[] = new int[28]; public int bankItems[] = new int[Constants.BANK_SIZE]; public int bankItemsN[] = new int[Constants.BANK_SIZE]; + // used for player owned shops + public int bankItemsV[] = new int[Constants.BANK_SIZE]; public boolean bankNotes = false; public boolean shouldSave = false; diff --git a/2006Redone Server/src/redone/game/players/PlayerSave.java b/2006Redone Server/src/redone/game/players/PlayerSave.java index 6fe69867..ee27ebec 100644 --- a/2006Redone Server/src/redone/game/players/PlayerSave.java +++ b/2006Redone Server/src/redone/game/players/PlayerSave.java @@ -59,7 +59,7 @@ public class PlayerSave { token = token.trim(); token2 = line.substring(spot + 1); token2 = token2.trim(); - token3 = token2.split("\t"); + token3 = token2.split("\t+"); switch (ReadMode) { case 1: if (!doRealLogin) @@ -422,13 +422,14 @@ public class PlayerSave { case 6: if (token.equals("character-item")) { player.playerItems[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]); - player.playerItemsN[Integer.parseInt(token3[0])] = Integer .parseInt(token3[2]); + player.playerItemsN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]); } break; case 7: if (token.equals("character-bank")) { player.bankItems[Integer.parseInt(token3[0])] = Integer.parseInt(token3[1]); player.bankItemsN[Integer.parseInt(token3[0])] = Integer.parseInt(token3[2]); + player.bankItemsV[Integer.parseInt(token3[0])] = token3.length > 3 ? Integer.parseInt(token3[3]) : 1; } break; case 8: @@ -1048,15 +1049,13 @@ public class PlayerSave { characterfile.newLine(); for (int i = 0; i < player.bankItems.length; i++) { if (player.bankItems[i] > 0) { - characterfile.write("character-bank = ", 0, 17); - characterfile.write(Integer.toString(i), 0, Integer - .toString(i).length()); - characterfile.write(" ", 0, 1); - characterfile.write(Integer.toString(player.bankItems[i]), - 0, Integer.toString(player.bankItems[i]).length()); - characterfile.write(" ", 0, 1); - characterfile.write(Integer.toString(player.bankItemsN[i]), - 0, Integer.toString(player.bankItemsN[i]).length()); + String lineItem = "character-bank = " + i; + lineItem += "\t" + player.bankItems[i]; + lineItem += "\t" + player.bankItemsN[i]; + // this is for player owned stores + if (player.isBot) + lineItem += "\t" + player.bankItemsV[i]; + characterfile.write(lineItem); characterfile.newLine(); } } diff --git a/2006Redone Server/src/redone/game/shops/ShopAssistant.java b/2006Redone Server/src/redone/game/shops/ShopAssistant.java index 577e1001..90c57ffc 100644 --- a/2006Redone Server/src/redone/game/shops/ShopAssistant.java +++ b/2006Redone Server/src/redone/game/shops/ShopAssistant.java @@ -126,25 +126,28 @@ public class ShopAssistant { * buy item from shop (Shop Price) **/ - public void buyFromShopPrice(int removeId, int removeSlot) { - int ShopValue = (int) Math.floor(getItemShopValue(removeId, 0, false)); - int SpecialValue = getTokkulValue(removeId); + public void buyFromShopPrice(int itemID) { + int ShopValue = (int) Math.floor(getItemShopValue(itemID, 0, false)); + int SpecialValue = getTokkulValue(itemID); String ShopAdd = ""; + // player owned shop + if (ShopHandler.ShopBModifier[player.myShopId] == 0) { + ShopValue = BotHandler.getItemPrice(player.myShopId, itemID); + } if (player.myShopId == 138 || player.myShopId == 139 || player.myShopId == 58) { - player.getActionSender().sendMessage( - ItemAssistant.getItemName(removeId) + ": currently costs " + SpecialValue + " tokkul."); + player.getActionSender().sendMessage(ItemAssistant.getItemName(itemID) + ": currently costs " + SpecialValue + " tokkul."); return; } if (player.myShopId == PEST_SHOP) { - player.getActionSender().sendMessage(ItemAssistant.getItemName(removeId)+": currently costs " + getPestItemValue(removeId) + " pest control points."); + player.getActionSender().sendMessage(ItemAssistant.getItemName(itemID)+": currently costs " + getPestItemValue(itemID) + " pest control points."); return; } if (player.myShopId == CASTLE_SHOP) { - player.getActionSender().sendMessage(ItemAssistant.getItemName(removeId)+": currently costs " + getCastleItemValue(removeId) + " castle wars tickets."); + player.getActionSender().sendMessage(ItemAssistant.getItemName(itemID)+": currently costs " + getCastleItemValue(itemID) + " castle wars tickets."); return; } if (player.myShopId == RANGE_SHOP) { - player.getActionSender().sendMessage(ItemAssistant.getItemName(removeId)+": currently costs " + getRGItemValue(removeId) + " archery tickets."); + player.getActionSender().sendMessage(ItemAssistant.getItemName(itemID)+": currently costs " + getRGItemValue(itemID) + " archery tickets."); return; } if (ShopValue >= 1000 && ShopValue < 1000000) { @@ -152,9 +155,7 @@ public class ShopAssistant { } else if (ShopValue >= 1000000) { ShopAdd = " (" + ShopValue / 1000000 + " million)"; } - player.getActionSender().sendMessage( - ItemAssistant.getItemName(removeId) + ": currently costs " - + ShopValue + " coins" + ShopAdd); + player.getActionSender().sendMessage(ItemAssistant.getItemName(itemID) + ": currently costs " + ShopValue + " coins" + ShopAdd); } public int getCastleItemValue(int id) { @@ -376,6 +377,20 @@ public class ShopAssistant { player.getActionSender().sendMessage("You can't sell " + ItemAssistant.getItemName(itemID).toLowerCase() + " to this store."); return false; } + // player owned store, setting item price + if (ShopHandler.ShopName[player.myShopId].equalsIgnoreCase(player.properName + "'s Store")) { + // No items in stock, we are adding 1 and setting the price + if (ShopHandler.getStock(player.myShopId, itemID) <= 0){ + player.getItemAssistant().deleteItem(itemID, 1); + BotHandler.addTobank(player.myShopId, itemID, 1); + BotHandler.setPrice(player.myShopId, itemID, amount); + addShopItem(itemID, 1); + player.getItemAssistant().resetItems(3823); + resetShop(player.myShopId); + updatePlayerShop(); + return true; + } + } if (amount > inventoryAmount) { amount = inventoryAmount; } @@ -489,7 +504,11 @@ public class ShopAssistant { } int value = 0; // Item Value int currency = 995; // currency this shop uses - if (player.myShopId == 138 || player.myShopId == 58 || player.myShopId == 139) { + // player owned shop + if (ShopHandler.ShopBModifier[player.myShopId] == 0) { + value = BotHandler.getItemPrice(player.myShopId, itemID); + currency = 995; // gp + } else if (player.myShopId == 138 || player.myShopId == 58 || player.myShopId == 139) { value = getTokkulValue(itemID); currency = 6529; // Tokkul } else if (player.myShopId == RANGE_SHOP) { diff --git a/2006Redone Server/src/redone/game/shops/ShopHandler.java b/2006Redone Server/src/redone/game/shops/ShopHandler.java index 7f17881c..0b73b265 100644 --- a/2006Redone Server/src/redone/game/shops/ShopHandler.java +++ b/2006Redone Server/src/redone/game/shops/ShopHandler.java @@ -213,8 +213,6 @@ public class ShopHandler { public static int getStock(int shop_id, int item_id){ item_id++; for (int j = 0; j < MaxShopItems; j++) { - if (ShopItems[shop_id][j] > 0) - System.out.println("item " + item_id + " = " + ShopItemsN[shop_id][j]); if (ShopItems[shop_id][j] == item_id) { return ShopItemsN[shop_id][j]; } diff --git a/2006Redone Server/src/redone/net/packets/impl/BankAll.java b/2006Redone Server/src/redone/net/packets/impl/BankAll.java index 0ca25775..8cbe575c 100644 --- a/2006Redone Server/src/redone/net/packets/impl/BankAll.java +++ b/2006Redone Server/src/redone/net/packets/impl/BankAll.java @@ -19,6 +19,7 @@ public class BankAll implements PacketType { int removeId = player.getInStream().readUnsignedWordA(); player.endCurrentTask(); switch (interfaceId) { + // buy x case 3900: player.outStream.createFrame(27); player.xRemoveSlot = removeSlot; @@ -26,11 +27,11 @@ public class BankAll implements PacketType { player.xInterfaceId = interfaceId; break; + // sell x case 3823: if(!player.getItemAssistant().playerHasItem(removeId)) { return; } - player.outStream.createFrame(27); player.xRemoveSlot = removeSlot; player.xRemoveId = removeId; diff --git a/2006Redone Server/src/redone/net/packets/impl/BankX1.java b/2006Redone Server/src/redone/net/packets/impl/BankX1.java index be275a01..95db1d27 100644 --- a/2006Redone Server/src/redone/net/packets/impl/BankX1.java +++ b/2006Redone Server/src/redone/net/packets/impl/BankX1.java @@ -22,9 +22,7 @@ public class BankX1 implements PacketType { } else { if (c.xInterfaceId == 7423) { - c.getItemAssistant().bankItem(c.xRemoveId, c.xRemoveSlot, - Xamount);// Depo - // 1 + c.getItemAssistant().bankItem(c.xRemoveId, c.xRemoveSlot, Xamount);// Depo 1 c.getItemAssistant().resetItems(7423); } } diff --git a/2006Redone Server/src/redone/net/packets/impl/BankX2.java b/2006Redone Server/src/redone/net/packets/impl/BankX2.java index 73b77e56..8d15ebdd 100644 --- a/2006Redone Server/src/redone/net/packets/impl/BankX2.java +++ b/2006Redone Server/src/redone/net/packets/impl/BankX2.java @@ -40,8 +40,7 @@ public class BankX2 implements PacketType { if (player.storing) { return; } - player.getItemAssistant().bankItem(player.playerItems[player.xRemoveSlot], - player.xRemoveSlot, Xamount); + player.getItemAssistant().bankItem(player.playerItems[player.xRemoveSlot], player.xRemoveSlot, Xamount); player.getItemAssistant().resetItems(7423); break; @@ -64,7 +63,7 @@ public class BankX2 implements PacketType { break; case 3900: - player.getShopAssistant().buyItem(player.xRemoveId, player.xRemoveSlot, Xamount); + player.getShopAssistant().buyItem(player.xRemoveId, player.xRemoveSlot, Xamount); break; case 3823: diff --git a/2006Redone Server/src/redone/net/packets/impl/RemoveItem.java b/2006Redone Server/src/redone/net/packets/impl/RemoveItem.java index 9bed5563..84ee76b9 100644 --- a/2006Redone Server/src/redone/net/packets/impl/RemoveItem.java +++ b/2006Redone Server/src/redone/net/packets/impl/RemoveItem.java @@ -60,7 +60,7 @@ public class RemoveItem implements PacketType { break; case 3900: - c.getShopAssistant().buyFromShopPrice(removeId, removeSlot); + c.getShopAssistant().buyFromShopPrice(removeId); break; case 3823: diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/Bot.class b/CompiledServer/production/2006rebotted/redone/game/bots/Bot.class index 836930497081ca779172d66c9f2eedb9a76bfe60..87de6a5d6f0dab1019e530184650eb5951c94a88 100644 GIT binary patch delta 1484 zcmaKsX;f5Y7{`B?8RpJh-q7QrP6o%r2}{5PGPUJ|0+l!#W=N7~(Fh|V!xA7am1Bj_ zrdGGIO>JMzKxmjmY2Pf{%l0xe+dlNUbL#Xw!`Sgt=brn#|7Uss@3Xx3?#hw~lTE}Sh2{Wdv;+jTs%Z0bwXW?p9S#AS96DL$(8X$1*QmNy(K;2^Xy~;n zu2ZpIMO4Lx0M~Pa!;N(7AsZcfqVzi4#LYIhIAn6GirZ{9IZU8Q_iT39!tJWwq2f*l zm%AM9<{tHKb-0)N9PZ}MJei-k=sgkNHZrlqeMZxSuDqpeJpfa+swFmGQLAGd9l-oM|1ktWEBCPql9@ zH5RA1eRhW1X8CdrbJ=N_O}XJYDh<1+v@pwBJ8RoQ9UZG%+v^R_Q|ZP%S#^Dees{XI|j2K>0@v@3n7_oWP@EWh%ykU5gw+wIdj?I3m$5UH&fPZ(h4_MQdBI z-Xc@0m_8@eQXdJoOE(+Box#p<^MdxqI@yt$8w}a#(YYk1D~HOOiY4QkC-P!tzg$j|rgs})c#Eb?c53yKGjaW{Q-ByvX zX$C#+p|lxGW8`eZ+dnzZ#Nw^}J z&w7?}g=AYMJFiT5%jF}fl_q(Fp@6Fr4GATy9F1Ql@pWQJ$NM*qO}#boFH&t%qI!$O zseL;lb!&GwXZB`Luys2*$+}c8YK=2BgR@#=OdmI6w4gq9oc(`+=N=b$o&=tHjB#vz zq*n=}NyhV&fyX*oEP7^)nbJ0$peNC@3D|-c$*-ZBJgIf6%&k%;w?v+G(i835NuwqF zcYQX~ApIDvJ{3=1?j-rctVoPoYo3{th=;UcX2}do1}N1bS;t)&rEC;i3M*w$`u~#e IBGG>S1r3)YV*mgE delta 1521 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 diff --git a/CompiledServer/production/2006rebotted/redone/game/players/Player.class b/CompiledServer/production/2006rebotted/redone/game/players/Player.class index be020df70718b05882669ed803ff5479893166f3..30bf91b4f923fcc726c640aa732a3ccc484a413a 100644 GIT binary patch literal 53279 zcmb@v2Yg(`)iyr2?A|SRrM;57Y-|H=as$&b#l3(VmW*whS!>tQVo57hTA@q{alR!dC=%IxWS_+~2|2#A2uGX?i{@?fe^1gn~%-pGG&YU@OW>!4+(*utv zrFM=D@ggtBt%k@egjW-Q*BE-8@F&8b32zYIB)mm%Y3*mi!{ebWx z;Uh2daYFTo{52l=B=Wa}8jSn^o%Pc=LVqWG#;l()-{*uc5|J+>UorF#FY-@*`&T^j z@5t8-{l|-ZL;5Y@yM!7N`92Z(A@US9_qYw|)TGE?W6>(mXn(?hSaciG zfr;p#=-`AsgrB!%726TECk!DBB@81BCyXFed(KIuBMGAtXk#=(V+dmjI}mmxj3ews z*qN{kVOPR#gxv{y5cVXDC+tPoo3IaIU%~{!M8YJ(WWp4}RKhgEbixe6Ou~MI{Ry)O zvk7wua|!bZ2N32HY6!K21%v|$3kiz|iwOr24kjEzIFxW0VF}@ILWZ!EP)EoTa)f1s zdO`ysPdI|GoX|*UA~X{Ugcib)gjPZup`Fk{SV34xSVdS(IErvI;TXcPgyRUu6HXwU zNYL|kGDB+!rw~phoJKgEa0cN_!dZl~3Fi>bC7ee%pKt-;Lc&FaUl1-PTtc{%@JqsF zgv$w65Uz|)Sd2xD|1oxz7ri>6p2Olpv3Tts*c@Jy1S4TNI}&k=qiTuo>td;oZ+4?}koP6ym~3*lD6ZG_ticM$YA ze(fmd#q%BItsTV1e?xeR@HF8W!m|Xnc7k%0r2sa;CBz7W2qysWQ8`Fg4$}36JkPQ( z5PnPe9pU$c7YQ#B{y_L6;bp=rgjWf#5nddt!kA$BHn*biU;aLQm;1FCwgb*cogcu=CNDz_)pO7My5y}Z^LO`e>R1$g+dJ=jO zdK3D1USHCFgepRR!T`cHgn`(nJkGs0n6NEjJHqyaA%vlXVT9p?5rk^ONWv(>Xu=r6 zSi%m39SP$II}vs!>_XU;up41_!XAV@3F8TS5%wnRL)e!vA?8gaokW;Sm_nFJm`0dR zm_e9H*pIM3VHROFVGdy~VIJWC!hA@BSHn;(VFBSl!b0qP-XiSO-eLfDSAd?lgJRyn z(Fu@l{x9Jj;vGsj4EwjYB<3B?VwpH1O9^$1W(hf158g6DJ)wb+Cmcao&diO`eLpzr zz3I32I669EURV81EZ)qX6bLPV$eXYzyd(LcmC#0LXSX}zsBHzST$%7zd8-LW5sqdD zkKu=7nfW+oKAzDNSmH#6PU44?Ihr-meP1*ki0=FH3;f@2qx*hiQXKWv`;SB?v_7Vz z(Fy%cGRvMqIF)c3;dEAd1{*q)p|c2QJ1Pss0E5CIe4Fsj@y?BT=Ow)Jy$fRAg)B#f zw@I&=U$Drb(gj-_XtugPmn0I^3yCde^8T0O9-|l8J_Ym$SbP_f)|9voyy!+$cue=8^AS^jR zAEuoQ8_j!=p@$OQ!`>sF_b5C4nCCrisbpP8Yiq8#y*A&JvsA^bBQh&8V;eKg^RjvWOj~=d)l!MZLRZTeEiY-I`hS(4+1#G1&$W(c@t_ey*?;pc#wNFB zmbD`n#x&DX(J6I>#sWqgpVpXbuWQgBqIKZd%q+OMG}GEzSUI_Mbqn%42Oo?Qv4%oZ zt~S?*p;-HoOK4+Ct}WM!9Esct;XP_B=a=~%&GU10g%!Eh)slBoM|(Rt8sq0_d9ozV z;H-Ro1FDEMb+qTq?8R1Q@-mU}rhHo+Q&DfSF_X>aS|yfRnOjCU`DzKz{U>90CclW&1AwCM26rlyYOu!}V#VJX z_L=RuCiFPFtWDa}V>&R`Trb00oNH`E)$QQc^wvz+t5gfh&d${5q*R%XBhO|D^C7fh zf@bo>I!dc_yS5<@UQ1tQ73!AH%hxRjCo_$8At&N(Ex9^rBA)HYHHOWxJChnwMiNr> zg)D~F7-k6CuuvLvlM78tGniV<)`~6C#-S&zxok&WuBJT$_6ArQ?S)ny3;B_3EYue| z!aCwhJ6czV9a>f>WF;JHDHOA03x!rmF3%P^mNw?5bfuIn?O2Vu#u}B$*E2D*nJc-C zleDzZ9I`CAw9r1W9TU{jj)j?M1h>M9W6LtFO-96mHq2;U!`!7ujMiADytSh-H?h7omkU=#+5Ftnj(lTw&b-Og9gw4Z z8z-J~jo|*6WfqL*+iI3~Q1_tDWv%&Kb9Oj|1Ysj=uUA7E;L*L_>y1HCT`@}q3Xaz&Sz${cFgv@Wwt!kfw zffwpK(5+;qqrFgvwWUXxM2(atau9rPf|yS$G&UAia-l3OtmG#QypCE31!h49H?S{0 z7C}p{b(R(waI+1vi|o3JRddkbj6ApzZEG_XM4@Qv$?OD_0R*sB52y^CE_5`vPixH7 z*ONDxqIvkXdVZmRmFhLMEj7gxV9caUGgb}R0-cp>%`)Di8-$426@sFn9H`!$*ru_0vW5zG-F;fkj(@H9V437TA&U_-PwFD3ssd~W?Ef{X=81XYxym4%tc<;aB$lkx0Nz4C~{P9&bm6UDc@)WA&s84 z%+o4n9<2n;uaWQ#m z4Po3}Ws+FY`8p~QP6SjE1i9I$A>GG0;DKIwB7O&Eny{NDGgJZ7GDc`A{sj@5c!BGm zs{yMj)HCyQD>JQ_@u=B^G2!)v##~cPOJ=2RD|Hn1rhKj#2a7Y=u4vGX@k8#xiDH(r zx&|%>$cfaElnxqRMVI9p^J}|Uj~B;z|R@EOk=LKZGNte-9gE4q9=8<(THin z*3w)*AA7W=DqGP?p=l~jtG21l8SIIuC7#7bQ9rwo#VnYi)D}2PD7>Q3o`YF~+^~SL z6E#B%OvAQXfC;KCh&cBF*=40=Vnolvsi3HCr;u)?u5Q*v9QPixpCL0F@>RFKq<(_HQ=!T@s5w*O;YsyaFpI+nT8_ zG@BZ9ekd~v7FJ0v*HY7<4X#MOsikc)6prD9F@(@etYvvP&R*?>_DrK$3{x`Pb*6yD z?5yGZByyE@8}*7dZChINE1-H9$0xIg)-=+pPh@3pV?N)sIk~WG88vqjyDQ8sVPv8W zyP4TCwcg6rP0F;gRGBf{XJON9oS!=q$|IXwmTRudb){hS;-FIB-q4lA@zs}PN$IuL z^}Vc3FZQm4a;!xz*RGV0SFmNpB*2r}~YfOVK@(ditBU%TJ&muLpKF3u&u~)0W;XryqZ%@q*4hF^9KANt zP~M{}u@qP+wyd>qRIZtFBBp=XQlcHpDr67L%I1!?P$B3e4)|!|dRbE3gd_2ld7P-) zVBLZn&_w$atKTKS5StE?f zV#n)SF~>+XwyEfQ6Vpl*C44r@lcyO)JdC2IC}tIt6$%U5=ptXPehsbm|Cq>!!Na=lU2 zVB~tXrod^hoERgR;=f=Wy9!0$Z~foj&i+*JmZY zF^FQpdJHumkBC~mVWv%Iw2Cm*m6fFEg;w5W?1?6cWecGs#Bs6=!`hPuHep|g%f4BoEs$NT>qpm@3PV?q2 zm^@=i&CG+QB01l@!Ysi!ba@_DA@@Dc7*<*`;Vtyc@r+f{bPCz)>qs4Zx0yOfgZ>t7 zzeya4x=ue)qgG)RgR8J-uy;+w%7aTo+b2AoYl>oT3E* z0phT^=VBVVRs}MqCB{uURFUHLqRWg73Fc3ovS9MmB{lP=&YHEPcIIqw1Dlw3jg`37 zQl;5y%m`rM%x6YOBMz|K$`Z!LGY8v5J63hbB(0@G?MjVZ3n`)|55t(X7{g-s=wJ&p zfi^%BjLvN_2Y@6aXmcSBe`r$Y45u36oSg~h#ylK7Qek9zfpkV$K@mzjT7y3^OvP$j`JsQki8ahpC{xv9L7LxLH~fK zjN@Qh2BX9bl%bR!N0eYGOk9<_R=OjT5)lRG%_2*a{||F!Mu+f&64b!I4&> zpo&QgaS=0lbzLKszDV~Zo`W>UaK%Gs1)77pTArKOHV6I(@azuA$u?YR36QYLCz{W$~Evf*UJ19F=9!Ts zOAX35Z~oQz7TZb~tG9>796avu#AmP;V)^FD`T#CLioagM^R%^}XaNb=KTK4)&VkPv zWm85)&c-1DrU)u9ioqq&C>sahl9Jf<}vBeCUcCD7m8)?nGE~2>tl^}Nfu{eR<0i77B-Tvf*OKKtmi%xhcl` z2OVPKc#I$?VPO{R3>d50WgAXEtszK_MCai(0cAkCCFYM*&jYURj9eIOb}b_*F3 z%wWcI;bmd*OgEJWj3#|(5{WFP@C<2s7VbPIwrCy<^`^|Kd0N--ZnXyYwrCa`Xd5(M z`+=FpjvOAysIHZ2ZeRx-{9l$GkGRrYvC8lsteNE}<=dMwFd*!MCvgYKtdg5u(>iTb z(@O8nTS0p9npyIg66J`^+^l9eQ(NZe>alNP=jn=I^Kmmv+mJ?rSWKSAASDbUHQAsI z#LbyiGZi|(46A19!jkZOjKP>iU8YT1j3~J8J96wKnFyU08do|Ujcyi4%c+(6%Y2+S z=Cwnz%S?PBZf$Zp0oO#bbD^6wTj_JCEugBB7>AI}XKUp%Zaj+Yn3AU{hE>EjKlxTT ze@M`?q<;F76E(<7rlve`DM${50B>!1kq`PHqVI9!4`?!gz&b4t{M??_7PgAM<}BD=@GR{ zrU|0is}81UEj<65*G&PC56~}R(8!ksF{M*j7n^L}29<~L;_HBfv2W(|? zup&bqm&7mzTw&;MMrbflx}v)G#x=L5$!UeU4%~-A4RVgVVw_|6ak-&PZp!joR}A0E zyJ9u%IkKa&D`jS>4AJe?I0ZoY$XoC45pQV~)R^KGm!m7n2r(vSv&{+C3 zr0?*M@0-638G$|2oviQX%4g-9b8|ZA&#vXw9h&0(QR9Ibcy17vL>CTqbUcce4EoVY z8rZF|KEp?By)~>)=GGo*OKr2YY^5GUXZQ$s`BK=!>z2>Xv`7bxkB}Gj?(muHzXL^s z<6_<%S}Q5g&Dm+jv1lgHQoW1gFO@r88n;`fUwX9QH=2cOl0DTa;JJ@*iCYD4D%y?X zEObxe`(_DvtZvgDNQs&X z+nH-z_YmV|4U>7VZ<B?X?!n4NjbalXgOiu}{*oAHIj7`#y zqf(3>m1$~PZQ?kQwPuXH8`sGtwr@>l83Yx_tAm)|n7;|!A)$ncl+!|9z;i}@EA$}s zkz_WNOJ->)(+0nc-mSX}r`cml{KYXmQPDf}mVzASHQ%A#Fe0(|ClzQ0cEyb&&t)g^ z6CWtrJnVh_x+67>RyFN-`MLx@&E)7h&5 zIJ4^)RyzAaT#aCBU>(iNO<9~J!q<_$c-`=!nWr{(s@NE&w-|%oM6r2wW>`8Xu1VuX zkP6U0wu9{_-#iN%W)dHc88Z<1U@zh&OjjD*9y4V;_A0bsuLkH=+0j+2R%2LET$$q( zgk{K2{$8K=JSqy1lV^ ziGI6)=d#1MeD=z<>`6YIq{^a^0#ye?2>h4tW<~K)tg)%x)?6bhB0(*E%$&k-m!%nI#KUV?9_DNJ zDtLJ^C$|#DuB9e!J||R=`UPdEQA_uZt))>UlBOAbi3njj3VS>~O7iNl%NX@dyQVvq zn!b6{hDYI%dHmKI+gh65&{`-l`c^Z`=Y>%5W=k|pm3p&!V0*9YXoLgCJfRiwu&`1s zcmVA@b;l8e<%C9n1+liXjPWKpg?Z71@M?$W7Vcb-A{PeME||N<6{y8X64s-WTZN_7 zqqH-Vi^iSUX-q)*b}d6`*~*K)N_zVA?#_!6*l`Qw+AvzbY!#wt0s#~UA`++n4MIB( zHwRXm=RJXyfX%P9oqjR#JV)s{$K3+qRhaWD;@+liz7Fc7S}WgUN=NQv`Y#~2>daJ zkYrZ`4JMc~{M5sIG92kzZSHVwd-dGfS5#4n_i*8KbQS7hD(+qvmC+WtQArglpZK$< zseZ7Ee)eMpiiT^Ucyy^iJ6j}{m*h0(Ab0pAF8lJ5+~x!9SR9f1mK5kdl0JC-DJ!u1 zC$c#F#_i!?-3YINyHaVcq6Ho|!bCZT@len$iAFQ@EH%728lg^YzH@il>;tQX64|@} z1Y`4zNa(d$l_lq=o_RjGm8MG5QDA1XIdo2evj#sF(a#LK_F}E!XVy%dI9crZT=RHx zw*oe$KC6}%E50b$S}D`LxgG6WmaD`s4Yo{8w86t_);o5QmJamPXk}Oe=Kh0TwFFKN za;?P(&g3~5X?*b(HD|!0cEWWnpIGSuMzGn?MVB%jT1c-^AF;jaaFwR*mP8Gn?9|E4 zN7D3T41bh_3dQCR9Z+q)-D~?>@!QH2`M~qRz<( zc~83U`jM;MkNwD%gz1E<0M6sgath&8=QJ!u{X;0tQQRn+A13*cz1@F#-miW4TlYdg zGBdKD@BM~tT!CWVQ{L0Q_l*0o=RNCt&qZ2&?|JV9sJE@1RD9=Q=OoYjt?&KLJ==HZ z+Phh*Uunh`ZPSN#zHgt#QS@LlzxQ7ByqA3M50SaP_ebw#&wIu9UiDt{-AnP={Uu?I zbCMs~AyVZ>5@1Ut4sagfhbit4Y-~XA;gL zoJ}}~a4z9I!uf;?2p1AABK(4IHQ`#qTEcCF+X;6P?j>{*?jt-vc#!Z6;W@$!gck{a zAiPX?h43ojb;6$reknj=VW5OqdzY#tK;3w5s12!Qb zR1hi&y$O8?eF^;tRfPV80fcP`0||o&g9+Obwj*p$7)lsM7)}^Ls3wdgj3ew!*oCkw zVK>6=ggpq;2=fUwga$%0p+Gp2u!69Pa1`Na!m-YA-PV}4tBZ~v-#HPh#^IDZoO0(( z=Pchjn`!3|&Lx~jIG=C<;X+8Qa}nVeY~o@Ty95&ITj^gy zHV|%QRksmtC)`1}lV$HB-0j@sJNFVgo#T9GBjG;6uLzVG=P@?!j6P-%(oLmoEUcxme`YN z;|co{X7R&pu*981m`6B(FrQHCF7Vw0S!^M|`x`SaVstU#Ai}|{WWp&N(W!*foRhkVU#Q~E9_PDfaVI#3rOtKF^WF0q zx&Zr(dl5q3r;PrBAFgERD#F!-YYEq}iFE`Dm`ee3Zy*mTVD62Cn;5;Ba0{ci5~z>d z+Znopa3`z3i=n#-_YkO~+>H#~&(N<34-p<_=11H|efKebeVkjE+l&YFzWW5H`bnn# znxMDHXBc{x@Ep7OJmCdKf6K~#$LQ|~+-%&J7^-1t5MeOD`#bYp!sx|>%L$hOBD39p z`QB&v>TF^kDw_-KgN&DBQ0QOqyw82_3-3$c`^x)=@BP#Jm!-Cy*}MWjMa&MuaYB0= zaPf_>_Ad-Nl2{m7n?@xJ$OjMV#@!~G|kiY#zH_PzhWjPSl8d`tL_@I5>71GnWL zS>h+O7r6&JtA~F1&O3mZazF4Rw{W+;IdZ)pIU7;;0rx>aX7Q_yZ8hfjG1vXdk3|Sk zf)|VVv3M-uN9xhEOGO(?qQRJtW@4#WnIAb4=0>a>V~hL>St7R)?u^{!M>a<8^J8gb zaeZ(o7GONF3N};e$9lwi;`}@gf9>H3Kh`VO8yhx$*xI%dPe=X8@#v&WJs<0XrXuT5 zqw^4>eGzp#8S2Lm8<>yVSLA4p?G(aMgq4KT2+Ig(5Y8l=MYx;8Ur%@_@~|Iyl(3N8 zofDaBsVUR&OrvqnK{NSWr8(0$Cz;!;^pAN4wHF3ubNJGPn}R{OPvWmbVP6iy zFII74A3SK#%9b7X9*(h%8iX;87=`#a#uEtY!yqHp2uoEq;=v8q^q-=WsAbF?)w0Eb#9@;mf9HXyc*7aQou20`1#29q<#kIG4k7%N|G|~MN^a~DeHTYHAQoODTUsK^#4IP)EE3A7V)VEVF>DLB6fQ5a@!Qj1#1JPNO3b4{(of>q^GDUDsf=8<%e6 zwy~RKLMH~6c48}8;H%PJR+igb3h}s-&;1;n7$E~j0P=;g^B|mZghcgG<14b%=&iY_ zOQgmKwHy;ru>a;l)%|mOLOj6i0$?MVLF1b4WO;U}`iA414|2)qe!c}psO%AsB9-BRFBklXfYt@?F! zqPX%W(w7*j0i5g2rM%9D%TYR8s2^~;=203q@O(4L=TW8*5)kgSif-1TW4pExUNkun zMhpd7gl;bJj)E=5AtOG&lyG$JvSnBW#hO?1`C_k9;exJeY8%V<0$PZt!7P|m;4eNQ z(TvQ(1TOmCQEh&+y~`GhBE0esqnPv`Od-Jm|RSqer4N z6@&NSKEg6Z<_LZn#6RL;)G7nYP8@UY8qw%H|?k!?86+`(3ZJwz${LS@-Q?O}LtW7)%n z!u6oz)j~(wqjY?2*F8FjPpB=NV*(OuA1WTs_C9W z;mXkQz3qK8-B;)Yp%aBp5;|Gv6rodvP7^v^=nSDVh3+R5UK8EUETOZ7&Jj9S=sckZ z2%RsqMrf_j1ws!Lx=`pMp^JqcB=lgRhX{r5M)&71p-Y4wE))iq{=QUbozSdMSYi76 zGNJWC8-(VC9wBtO&_q5eknI;x>JZI=x-w0RAN%Ump>RLxbaN>lixG=*DA(^G`PL#5+z4QdL{g{E*` zXnLm5vxLHNrPI$53ip+c!-J(MoLHK|kEJPGS(?I|rRgt(!pouKmk7O7=r4s{CiHTl zR|vgQD13^#JbYuC!a=Jk++>=N*4Le~jhFZ6n$IN$1g8-(5{6bD_Mjt{F`q6pB-`jz28) z5uuL?eN5=%LZ1-&q|jdr#c^8K^OVr1g+3$nS)tDfeO~AbLVqjtcS3(J6kbMM?@L1A zaMbZX3Vm7VD?;Ic)Zbqd`nu3R3H`IsH-x?^6uwDa?rov)Q0n-*LgA;>akwfqeP8GY zLO&Gxkx=+Bb-up}{Y2>BgnlaY@1l1<6Z*N(FNA(6^edtN5c*G{{}TFdph2*5%+-)^w!MQ9?%x9V2wC&>e*CD0H0AorLZzbQhtr zztcUf+mU^qPHG*Oecl-_@x6rZEp#8D`wE>PbfVBnLMIEIB6OhtL&5 zR|;JvbhXfs-1DK08B#a)G_xUSF?Hx`=W(n3?*TWI6h&5yui@uxWmv?_I2kn$#=QX zD}>^jL+6uy-I0BrHy=9vTA^!&UMF;&(Dg#E7kY!x4MJ~}e%>VXW=X$AD6UU*JGep7 z6qhKV0q;?C99Jot;x==8@W{)DChFKTo;?rJ~-Uf1Y2ZfrDtTJk?5^jV?L34LDZ3qpS@^mjsk zFZ4yBFA4pFP}$FUFQnVY)sSvi_H#$}b4T`bNA`0^_H#$}b4T`b=PjxCZK3Z7eOKsv zLjNN4eW4!+{ZQyfLO&MzSD~K>{hQEFh5lXWXF@+0`i0Ohg?=UUA42~r^j|{%E%a-l z{}K9)&~Jr)C+qHep+89ak3xSEy2(&i3AKdULLH&5(1@wejSBUI#)QTtUqWb7C>;8n zH#a4;OlY~#w9r6kh0sc&J%siY+Dm9}slSiVzCv+lsN1WOeEo$Eknh__95;$O-ylgJ zEOc9;+X>xX=n$bpg$@%sT<8d))lxt1DRup$Bz?5dF+#@*-9hM%LdQvY+0WgbB`*6p zuQYYNyGi=)LUGHf)AyA4c%gd<-CN4-BXnP(6NF9_I!WkcO>Mr#(Dlms-JLG=&5(RE zCBC1~{e{kw@3>^u<#Erd>0C+2m8*{9)>TtnylN`@IPYL}9M`a#;wDy8+{0>$t5{8O z8>{KT((WNb50!Qf6S_p`;X*S)mkO;DniZN8D*HDtZFM^hLi0k85V~Awqfptud6TQl z6@<$E%`07)D2?u0ePwXmkR83yg^o{oH$dj`U`dnQ7-57yt$k@C0|*7?qtIPQk^ z_lqQs%V8bASmKumy;SHgg~~q88&sWN_Ho`T>-beduNG>~=K(L8i~U=R5bm6Heq1|i zx?b|jKF<4RoxVZRZxniyq~9#`7D>NVsGQGvFRjbpAr!aMI)0bL?-qKGP&uFTZc^vl zC{)hpyua4z=6tU2T@kl=o2@A>v^B+@wx*Bi@-}a_5x01&t?82z|FxzrueXuz^0k@% z{L zD*Mi2RZ*R|i>}5u8KfG^eZzfoD}|lzg^%BA;Tznyr0@aKa#i(4Dg%jL zraX58jN)6-A4d<(^yjpaDyvL?+_#Y@s+^wA1P<&S_g$%eo-iq0UDc_)YPVCx2=Oj< zRq($Yq0R!k&IaqwQRV8~61Js_Y)iZEVKPv=vu5kHCs=WEtF>Q%+Al=y7oqlF{7mhC zF}1tzyB|p3CraPrBf*WtM&);P+RX9g`0rg@QBqyJ*x9)Iq5B{^>we^ZEYOQ7tOIYI-`{TK^i!ImU;}(p_a{ujqZ7Q^eqwoB$r>uBT^;mqL>N)#v)oae^ zM|O3cT_ZgsJ>Bcn)X_a7(n-Vy?a%^%T+JZ zDs-&>wJI@+83rs|6R|dIdSKK>wawM4$0$-ad%qgEQ4M-b4ZhRj@Lj$1$0;A-@6ea; z)gbkQ8lrwwBh*i7yxOF2*{9}OmO2pM4zWB{XT?;zm2j#3c7{NVP@~=dK<9ZVxhs}& z8&m~GR2=^bmv%m$iKu4xTioE-?sxc3g{M>8?~y_U(_gupRHce~?hlsd{^+?sp;5Fs z=^GX44SsDZPQ$U72Fk`jXYc+P@V1X!r+Sk1A5(R$inzC~vF#0;{#v5hdZC-jDpyG> zt$JF4>W%OKtA`!}#m81v5rs}t;SVf!d|<@V6UWXal=FkKtsdW@CM$wxL}mijtI%)M zaJ5}s*}vG8@pr535ZQj*V`|78s;;5c`kQ8bu`zFVQ{;_i9;1@z|6ufgTl9ZBHQ3r-4Yh{gC+$PkUe+)*!y2jfvqq`e$WvpD z)#Iv0zXq#O5eH5Tj_`ou2y2TYtSuR#Z$|jN+Ru#9Ep8$Ol*UY`ozeMGL43t}MU{!r z3D>E?2#pSso7St|I^@T%g9?NYx_Tx`=AevIW{p!jSUaQNyXrogU2kX8A1wq>qPW?M zM1HREeT$9H3>)`%EjB*kzc;=o8s7_z@AKaqj}{xBE+enNh{m{Mg7Rmt-TJO+O)9Cf zqGUW^dU^uXV#NFTN}v0=N~is=N@K-JkDy%YISS${gZS}*uL3`|QH_OSs1D*2g7}QU z-!1U>Mbc%eTxMvi7J#*1NwcMM0}EhiQV#~t-9`S#OS=IY$+O)d!-64fq?>NE=9W|% zhyYrAJinES(A!195HA?gZz~nmY^@@9X0f7G(xW}iu+bw_#2#I)whxoY9K(s8*r<27 z92U_=wd3Vm%&n2xg=(0!NbO-QENOYqk~s!nc6KyhlEq#eBE1+EHW~KfGN`Km)}%HR ztV2qg8dlO2#A%3b$uG84Is;(byucr02G@NC4lk**YX(wVt*AK^q4ZW}AiK4SoJWc} zu?DM#nv`bdxTA_Mc0t?OigR7+Ft@tn&Z1{x5z^>g#(2v`=^{t9n-znevUX@utqNSfyZ(Hfs%#8Jw8H?b*X33q#(po&O z>>pH_7wH+p=z0}fuNQSX3W6~zNK9O-w?~AIUxyxXBdOSDtyWG5A#E!xwOuvbj;Lze zD;e^r%~@KFMtc_`?5uzMBO$)43CwN~$0qk|q}i`&aVYt;}_BD+qT zRrtE&T77~-XxDXH=nB1X?PN)}4lL=GhevC}jFRY6>{^|4ZA`Ii(j>Y@OAZa8Ydo~E zYd_ayx}?c5B~3zCjMBQIZ?VD6Cm{9MdYOQ-vg>35hIFo%2^iYzx~)z?4@^K$OhE6F zX16i{_z9HA-02u4%rC>vs`Y9cj&{Ix*q1P_{?}mJAIL`)x>M8-!>c4v7pz$PMj^?UWT66tcp;!SLQbguMy;387f{n?kWj zJsOHdS?~4sPC8$F_b^}loG@QyXPB=?WWAj<^{oi=b=6mfHfS1+4$3yIx867TP6+d* z_6h4NS7E;LU_yN!+gm{i}_}h=DWz`JE@rOyf9zcU&DN5|5H~Ah5^Z8h3 z#&j!Bhxy9)U2je9mM>Z4OIa~r8Tv;#1^>`znt}**o8wp{Cf4g$+x_i@7OS3*$H93vJ2O%bvj>sa+oi^BFtC$RG6>w$Mx!Hoi8~r%$F=K z`?6%1uWZbERb%qaD&}hs>kDead_ha79%3(sx-0fYQFmcJXjnma)o)#QZEG*GC)x+u zle?CVeMrfQtx)OV!#4XLEyuy3%&K*wFAjwTv76S{rqjo+7v`s60Gr87J+fYet^ByP zVy`EWkLQt50rMG!I~4g$r-vWceZA{blRaH|_6!xb_fw1QS?XYWPFLsEp(UM2iBp z*i37J9+QIj#n7}msk}N!_6w5d1j$iB@>C{SKU4>)^?`q0kUAmoPtZx9AZf?Ie?Ca< ziAr_StEj#_@b3)#eu2M1Cq0RzJA>4cz<(%69jKG;L{cG0tqAR1W6QpStlI;YvEr( zYGshv6r`GU(mqJKI!N6bByI~*SLvjYNE#QU5QkL`5t7aiQirg{)H0oP0+KEcQtN{F=|SoeB*}cb z*QgwZUlkSn5n~pY50X=L(x__mAxK@o{-jRP zNqy1GUxJE`ApUhw0V@jwi*DFr<2_CdgqLkTwxt?1-mX=1>;)=gAE?^xh3YhWk-FSo ztZuUpQjggOt3TR@sE_PJ)wlLxmTxby2HJ;P*}6U_EE&t+(tWtZ(e)cG7ONx3Qb-9qnd&3Vs$l-=5#K9PFBs<>0GG)%Vu#zgHQv z>u(n>3bpyJ@52f*yT1Qzxa%jOCC#qykNmk^zrCwn98IF(? z4Yh!ObEpOUhq`M4ZLQm@z~0r^^^Y!TcFSGg{>Htn)oCSA#(Iyj&}t@s}%} zr}w&C>wvwt?kKQNP}|!ls-gDDB@GTQ87D4(x2LihQf#r?FkcIYS*D7^e7rc!FSb6+ z(=g1_G0ZbdTHSJ(k)c1==(Ay?sUO2ehak;p*dgC-z0q^g=y_=Lg8$y=uwtW|OHd*k zN>Bp(j^f;NlCBQ?>jVGj zz&}nWO+(TRx-9B~iGaFxLeh51$B}f2&WIL%rIT()QcK{k3jC*F zS?DBAF>?Jf@ZSvlw{;Sy_%hvz*Mt*_Q;dpXdE5%rxiH24Nt$IaK9=evOtF8B9{JqB zuhB`EV)F00z^}#s>m*FEe=v#!{wIO|cb$YOh7o}6-2XW6KS$D*Q>;($_Dz`Lo7MC7 zEmpOCt96EboAnF(rmpF>F77tn)_G>SM-`{LR;D|RCi@2dHi7?JZH)-0(}CY3@ShF* z7j(zS={`Ew6X2OnBB!w?dI$dFf&XirL{2AZVfpt5{=+(noGuUiUV(p4;NPc{$Y~gK zFl!(Ox9cQw8a)^eV-XC{N#yi)fj=zp55xcKByxIS;ExP^m`{s!5;;9M@PS3PlG8{U z0nUfaC#Sd7)z1(7`MMxEjR9ih(uplOt#3JTN!)1P4Nl)r~n#tlh#m zGG2-MbZ^Y*d4`#9wx&bNho|Qm5kB)Vr{}nerpwc5({23K6Y2IE z>Gm+R&Tey)AJu=I>cifkyV9$l+YcTr>6JJ+(eAKfuZHQquvf!$|JbWxCA}&-Lw5{C z757!f4GwoSRq)-MwiMR(KHZ$5_M=_%qq>}-_!BJuZD<2zXqbWjF|;RtW@w?iVp!2# zVTNml*5$4!4sEC6&^F)n>4*?#5gZX_52hnRoJEnJ%p!zTcAdF3i(M1<{%PW!YC(0pQyo}+zgpO-7BRe- za8R{{2Q+N$U|xY9!qB0F!w5?VhZ8b{rGz>{mXISXBh<5O14DVj5rmB*MvrHH1?LrxH#h zoK84{a35n-a3w=m z5w7MeUBl3|gtdh0299E zh5S8-MfiNDa;iNFoedGgzX<+C?YW)m1?En&aH2XLeF)W6GUc~~-%;LvU!6`ol;~71 zR;N>>FIA^wq<;|l$LcgH?o=;VLx?-oD|&Ifs_`{;>~+@kr|NW%bop=8pV7`62(z6x zt79Z@@%!6^cL?ti-Xr{l@IK)KFt2Aihl#+>Ft4uim!pm^bnw5@gHC+Jrr10@eQy% zJq(zx_!bzXhXX4rz5`aKM*w?Nd=KoIt_Jq1_yO2EJrdZb;zwZL^eAAzil2a0>CwRc z6`Ozq(qn+zR9XsTV0tWYP*8Oo$Y2MsZBTVQ$aXGZ`=IIskRcJk(4gu>kYQk4dU#NE z637S-P#sjA3^FnX7!_2l0U1s1rpE+Tr+|!2GuIA5)u|vmrkQPAP<0x}PUL@j=b-9z zkX_OV;I2W{86dl*lfd1Bsxv|Mzzi);?-^8`1u{OJ0`3)5oei>gx(v8aP<0N-zUgw{ zgi6Z-nV7BuPO7vZv+2p{zQ8G!7Kb-g*EX%v;`pZP+GbQ*9Nr~r9 zzDty^_qkEFMdkaM#3Q1N|1R;U#6Oj|C-J{YJSOo^OuWa>qlZ4IC%i(m~}+ZaV-4P<1H(Jt0tMz$qvN7$Z4hY*Gm zhB0k8VFaOCt0HS8!=nhJ31bLjshF%CH13F^c*tONTH^>i5q2i*LIr|8?J9J)>btGo znXpF~*fR`pbFua!>|Gr=!#gc_qn+J4EqG;}ojR=vAUk(j6G3+Av?hV<+KKz1z}dai zn!-|3F>GsEb)?gp4rOW0sP;OonbomQYd;LU)7rl}9q+VeK?QeOv%#rOYYw>6Y0YKX zc`SPX%g$%n8kVhP*#!`gPU}Ej!$PR(PHT~_XR)s5pz1UP?qFTpA-c9hp(s18!>ZHe zoz{}-bh^_zygD6pTAAu}MW?m2I$ham)j?}_T3M=8=-@GiTDj_UUovKy(E93h_F=1` z)1ql%9l@DI>&wBd#)sA5POFK@&4?D#-r>=s_^}1t7~W|e2?B<-f`DOdl!kb9dR(W~ z4rCJ@LTPT`vH-A(<6q7BKZ-ze!#aj=EThK}j%SqShDCG3I!QWoGQZK{uxN2ur?Mhi z92PAOix!7Pi^Dpr8f$=^q}5@aL!i}RomX9Ho!@EEyp4D?4h+^hN0V|%7uqu;|>yW(jcj!M?9{hhh`QQK!G zeK$$pty}ssqz~#Jy_T24*0TQ4$Q!W5Gw7P~Z<+G-$Tyhz;90fm`v;L8lCeIl@J(dI z0x-?*5vG1on!0B(6_pHhoVg?}HVe`SR5oceJwQ|Ln~cY>ACjh{*xYo$gVxr8m=wjn z8Z#*g>@WILQWAVL0`AaEv)1Bxft!EaJs^(`O)G|`7eh0Pq5X=X{fnVl#n9|xXihOS zw-}m%5G)07r9;-bPHTO2wR2FX zb$zFGL-j^$L-8$-^9O~~n==S+4SV2?WG~fM^-Qeg+^@9DrdeQz&y=4DG{lWfD{n4@2 z%T7YQ;#8Tk}; z>Qm=T^>^HNeCFJ%K6jo{UpUXJFP#_FSI#TypU$7vznyoi-jN5bBct0}$3*8@$43`g zCq&m+Cq~y>r$ukF&WPS+o#{=pF7#$u*Leq6>%7I*dhal6gI8zW=qxN*kJp^*l_!!*jW4H*sk_pV|&}5#HQGPi|ud!JvPt&EVjV@Ja&-%MQn-v zWh`rd70cWIh!yOA#yaeO#g4ZB9XrwfI(C}y6cd<+C?_*ckKg6!Je~evk z{}j8$-W0nFZa?0YKQywpO((&F-5Fh9q9Utx-6Cdpy7vIG>F}|;JQhbWDCO+S}E56vdJASxx zPrTmgj5j*>#ao^G<0m-}#7}b`jGyg16u-cEIDUomulTjjzvI_CU&rro{u95~`6m8| zduRNqh>E`$vE#2qocNz3k@!0iFaAL!7XKu2P5kr7wekN%*2aH`T$ivS>k`q(y@^!h z(L_b$u|)641~RiNvfk%`-#QHgt;(TPW#v5DUx{=BnO z;#Fto#2d~oiI1J#5}zafFK5rhkIwj{>+G3KIQt|koqd!2KnFRKlEa+I$+6CqX#3!DRzmpC=aYn|HU z&CY`4z0QHjN1TPpXPiaJKRAn%Z#oAhKXMLEe(4;N{LVSlcbz4E+{yUm&QiaZQ|AwI za{e%9nLozK`@1_w_>-LF{w$}_pXW4bSH^r5OLVAS+HGPd&MAhjS3@Q3xA4W$sbVL- z#@jC)O8Q}lPKVG9;vW#%ht3!6|J+MeY(m8jA9=&`_?_zcgR=0#Op`uQJUwQ-Zy5Ma zRhsXW->Xe2{DNj*c!|spbgqTYq0?q>>e3^ey{gh#qwMolR?Qj<52(NVKTu?9sER|8 zwWx@5q)Iuh@FX3n`Z?`td#IB!&I+}=vr_HltSb6>JXNU&P50^EW~h3A`stg85mmtL zGa)ijdbX z@vuGhqZ(^j`l;B22=eORKW&r_&y)`19jETFbt5lq*>&qCd>X~BTQ~n7bzR>}IOn13 z=cDTvs-Dh8s<(5o8tGh8GK87MAzJSF>|;7n9M1v#JK~rUbSyGmPYFXaI3;SB zs@BuwVh7z;Pg6us6ULb6(KSZ=VRRYeGE@#9pYgp{Wl!s2-FClq2j`=I7^%D8y7SyF z2e|Q<-T;c~T8Uc$D*-;_~v>f2W2yzelfLDv?U*3!5swJsd60{Dj&rGLN&Udy1QvAMiXE z-8>*NU%JU_Z3<*{)qrfz$U3#1rtNE0KM0#n2}}S<-50#R$#KjBWg}75#p$YsDl`&R z?eaG()Qi;-{v4U2Q5~s8i0rA>KgBT;g)4^Pdd=gn?V9dcyW{qRMQ;U@R+3Rz={6%b z;NSK5M?S8k&ALJd?zisRtIEC>&NoIi+aU@YRIe)cxXWPoS6X*(wCY6s^XHNkmTO>^E;vz@=F1Dy9&jq{e5%fLK3BhVzEC$fU#gp(uZp4weh8ySsuLpzlF_0$BdH(oYm$ocs2a>at!ubw ze*sp5*;s_wnCL{t`HmK~bv(~^_gY8U*TDOEuXQx&13bhXi^zIJCV{R4-IJM^mX0-K z_d?)keqdzps&pE{Qk7nGo$Aq_;j;b=$4pcATE||7CCK8@qtel=w%bu$BJ1=Q{HzdF zH{jz9j32Gz>lnXYf7fO|(s2Ud%$cqq&C>z8dJK8KLA_cHdY>82ahOQG$X4?am`Ok0 z*~{4*mEVv~U#I${2k9wZ@97SqmSZ>Y5iq_kf_hEAD_=4B>qB;2F9r9eG^}I6b^4Pj zc)b*quPA7~qE0Yi50<&1swhkS5xU;lXFyRu4LD>>)!|whAk_cxxoaF43nlvLIW-P~ z^gVXDAD|I_gihb2w#ST)a4ofmYpWX9RmTx$vzi}(o@7*5iWw)n#!|ko!cl)SM-M;GYZk76{+h2X}4pf`mK~@ZZJTd8RYxQ)u zvj(`^TSMI;)(Cf~wUax{+T9&tO?0cRDeg#XjyuXa&>d|pamQFo-LY1qyMuM4yAu@N z&elopF4o!ZuGTNy-K?wK-LXsWYTfScrG=QS)tqYAN} z8u=7%R`h%f9GRZE(Yk*mV(ZhMwYb@7U@2?yEnW4nzf__T$mY?vP3qMTXZ$Ms&ZUcUzCJ2RrF1 z*<0Tf*q}O1LmQx8rO+NDBN5~qSz0KJ9KV$sid|LDmR)+a))Uu6u2bWv7N6~5JzCGZ zlY7;d{5V}FGSVd`f0aCN6!hxLtOd3teMlWUQV}8bkDG^aL=^Xxo257yJuT> zyXROBy60Mtx#wBGaWCpp{?=3BE{l-<*|%2y<5c;uO=@?A-=X~AMQ~FMur^^Y3KJYA zSiN_M^z5@!Z1>2%y?7otBwQ!fmDnP<)!shxX`?+UvwYqWzZ?#)jn=O(Q{CkB)KGl5 zT~PLR3*~qV!5gU;O0gniNoZl87?%0(a`$r;bjibhINvDu63D})_}#{3Duur;P~~2s z2D?|n%D5VT9N}6u9zS26=&n=K@ld7KycUApJ_pM_}b9vV4JjG|+qJw43SdYp59 zgEPXtR!dJedek91xi}wq$E`Zy0z6WLj~HsB`5@|z=8-j{o>IwC>9U@BX2RnUf6;xV zimr(a!so=OSWi6%;W28nul?lfD6N`CrG2#h6g9=Y*3-L2M`8v@}D zcvGCW^>S7Nzw``J#@9!dpj8KayjuUN&sCGu(#YZ1gCgn-{PH@3AL&Q+stQ!}2eljQ z<_arOf&FD5&F7_&I+=<~|G&nr20p6d+Ml_*Gk22>Wb?7GAsY!X6ipy4Ur~@m5D)<& zYN6JsNC5#s#ZqYj1%U?!DuR3o34|aZ=)<=Bgf0=SMd6_!pCSbmpMqZ?A{G@8!My*O zdw2J;xp@_S**kOZe4IJw%$b=pXU?DqJ}tivtL1!6iqS5lcz{VUN|R!gCPiB7fM1is zLJ~%q9mNtwBrz%@Vkhv4Q2_XSr;ur~ld%en#;_V&n-`lwlPPFMDF{^_XkxG7UBAXD zG79S+@_vAp9tA}{1VugqMLq^ajzNL&33Z2T=z<_ zDS8?d`I;ts&p?Wvg%tgkX2X%dV()oc=Dk2QI7q+BdkIqXCrue>a2QoF%B+*av?74t zao=Lftcy|Rd7CobX{5X#^pMmWG}4rz3Dizg%hWVVXBw5@FyOC*O{iq@@(mOgkszzJ zWb@>|EOue^+>HnNM{`e6MC`G`(_^8=2tnp)EqD>6L>3ZYJ1_PMlZDOL0N|41DQ~Wy z^5!Dfl)dVw?B$;Fmij4gaZlO1e#+i<$_$2H0D9~m=vQ_-`qaQ_HYKRZiiylDZe zZ5DHQYhcb3%kmQUcJ0pH)Bqbgx1$$XV-53jXjfJ|! zLN~=i-D9C1u~55O@oq#M;HA%de-{U>0uNd|4z}G~h&LO>?uhu86*^?a@#%0}I-H{t zXg337%5*3eGciXGLcf|t9b_}=Bg4=SHK#!`mmZaQ^q6c(GvzO6xx9v+mxc7QY)x;= zBHAn4(oxxt&dLtLkk^S+dA(>UJB!w`MBE@tMSs~<43yo)5ZObFmp6-zQsb9leVG6+`h03%3r{<{^Dlhd{_{$5lhDL<%>#+xibC5f!kZC{i zDs}|^ZUdo@bcx1p=U7QJb_d5wqp@Fe4C9HNaiEUMXmo&%s%Z2#I%+~sGq@rs<%1Qq z;{BnS;)Bt1yn~B<**Sxug8OiEr=*}l;G@y_s^k8kc}2WYC@JJ$yp)>a*$B_npsym7 zG;~g}Z!KLP@`sZ2H-G$_-})8~At%0N;>r0_IA0_F7WBn+A$ocy$5UfD0jKOHV)6GF zb&`+6sCN?GDJRo#`2a2trNwd@t(E^po8)xbDre9E`6PWLE9i`zNf)Gb5@sSS zCxKdITeA7HW_b)W1Eacnh=mWRINDe+?IKXerphbwYGf#Xn+^7GR%P?L^^YV`e~ zb4tRdCgYr9%;{jqEOTDcI)RRxcY@cmkL`Tgwj)41&U zHZB)L#OZhwtU9)Vvj0N?x!qAm)Seu!XRSI=^y8T6SsN>C)yx=b3R?--VPuG}*%AYY zTBs2fufW354&Z1f8u1RL$z9ln+wG{xb|t}uN%on@vt`_g)lfw+j`@Eo+J}nvqoQ|F z(E(KS-hZeF*O%E9Ekt|J7cmXq!cHYNiZl582Gfmy_iLRY&PK$y`m8d--$la?PZ?VG zE)Svh!;~(MKwQ0#-JK7x*K-tN>wh&AxmNi$3rdWP+Sdfupv~kIFo)$pDus;8bQQc# zm~yHgsF)T*#bO)h9l-tHLrs~T<|$c$bvG-aVcB*LN>;2$qhZh`%!;4$F@jhUpa2#Q zBtL^t{TvK?0t|bSLh=-}XkS4Jd<`jZhKl4j)LuH3#~orFr-Niil~&)D_pAEaw`Q<-4P`w!b&Qcj4J>yu!JkS>L&zYD_+r>S&3Jb3ZvVMw%gL z3UhdZ^+AE@incvnX61Lsq$ix!`6X)EG*2uf#2f zHoErOZMu&^x@5OWuAl(7=`vfiUF3%0o87R>cEc`PO=zfL7&#pcbM%N}f-Qn-hlaIB z!#Yqberl*gH$&MzugyW+gL2Rh`fRI$?9v-73o9upj5X&J-fanE@5mPp_;lnH^yFa^L9I(fBATKj zJ1RL%fYXqV(|C3AMaXN0rB3pbPLiwN*XarjRKV3dN8xaw>y(m06jwKyrxvJgBA$#- zDC)787XZmuP#ED=yaf?Q1R{V)e=sbNbl77-p~KjI7YrSzmq^bbA+pI(_`opn2bNNR zNr!!LPK!_*5Tpk+Ry`pndQqCX1>Dw~u2OyJ7wT3jRQ;))Dx+d`JC&$AsJj|~RmDIm zQ+LvD)NiR=mD3P)Hw{?Mi*gNCe#d}RE21y zW{PxW&8_v|1_ib~zd}eae<%%$IQC3z4Q|aSm3-u*;n2 z?jz2+L)t@Bv7s)eU7m=+KVm0`l6h3Co&#At7dU=~GSxiFQuBf11$4DqNY|)E)J8oEJTIo})DraUO5nLlGri^LuZP`6 zA?L>6#bnxs7rU0#)C}}}tXl6VQ)}LI1cS7(&15SJB8K0CA6#d>Q7q-3WggGnW&FPk zuN%erK~E}FHTYpUHBmKy5&l}#O1e?40!+@+&NfVXm4VspRY2x5G2lAb$W)B3$~Zdo z!7ueUpkuwGdA2uHoMoGb68KEpe9V!s873D*OZ0BROdd-qV>N)UTyE6pCKYwjjVdbf zlyXJY`1U8Q-qic<*S*)ge>w?g>n}N1E?Na38oa2JtBHr9w z#%j=Ntp?@Sf3#ooXFD1#SOq0|nzs~&ph4Dek6%%@axJv_r8$-23zmR?VzXsDH8>Fi zrZ7g0n4v)tlRd>Mh@CZ2?S=hSHYZyeR9wX}Jdk+0!tUzF{Mt%XRLrTDMI+pyt18L)4Vhfl z&#b{&TB{i98%F%`Xqrl$1|5irgD&JC&T*)&*gJGG`Wn1LTiZo2Qjd41vxJK_)Fv`j zExObz81FV?X7ehA)oYZ8^C@lB>r|??&`s(M>Z#s@Xx&Qv)pm?|Z_zmQHvL)cqe!)Gh{r8=WH`o(8BSd-efV1s`PUTSNM)dncgalmCm z-090G%Bq9Ma_u^ol_LZfzNs*h>g9)uzLm(k1ZDkY$`bgwR)|K|{7B_Lz^&5-y73}= z>N7+x46SqfW3t{If4q$uFN&w|qK*Y20$Q3ai|X89qlP6X-tlm~npGtZXV+#6hiHsD zVyt$}yectsOV`ZH-7-__#LU;aX71&hxlLl`Hm;d#Tr-CgGq-ikyuvkeeq!d1u9=^U zEt#CYxy8(c(a7vX((J5Du%^!r-`sq=JX1=pbT8{tVp%09tF(c#*!e$~h5O3w>9>;$ zW+pbun)F)Zf1C?&FS(uhibl;!1f(YbvAp2cZxr7)z<{iAFRL!GtllWAPXmqO8w|KC z+_mn~s9A}P>gP(S7k*ym+g&ri=$g4MvF3rUnQ_&<8#*fzQE(SfP~HFv_;LqE!8%t! zDiQ&?*Ap&&U~>}zx!)C#ze2H?c##9tDo-Z@@&EuC z)c_!TO$7t89?D6pEGMTwoe0Q7u7JGkPMW6@0r@=u8QTCLe18T5vcZ)!PbC6k?W&|8 z3nX)F%Dqwky&guOqn(`y$OHf~u>nB%0uKfx0^MqTjLc5(rfW`e#Yn9?kIYE~WGVoe z)&L+|Y#w>Vl}8-L&f03$oZ$+{X8EccMiwUmG7ErMOSSq!h_4)BjJyUH3H33uI1wXH zy8`mMJ0MFE0l`HV=KKaQ!gro9Apdj)WJw|*i(CQO;?As9iGV<#Yg!At`WWHMRv3^s zT$!~hky+W8#JUZ@$*gb6tu{J4@~i@XA`XK^)8`zB5Yfdm>fHu?JlDVdKNn%G1Fa@F zi+IZ};_X-yRsjZvq7-)SeAsa%b~`C6x{jY4aWEHu5hGZM88!Ak z?!|=!d>mzmL+Pzgo0!nO*3iGFGRg*upjrDA;RV#fDF4D7~OJ8po% zG4aE(0G__3=UP7dcf`8Z0L&X1;7ll!jV9VBhtbq}gyNXg3S~0_YHq^bS}kRm&b^Y% z7*;doPP@as6RY73%tt+_0c%Yos~Sd#tPO-^?J!<^LNAy-43{$?Xz2w5$q%j~e|S06 z%n_p*4j$mkEY{;-y*mqGt^-rwBBS-bYU(UV@HykGY>>$ z%JQ8Jw?g5Rz0n8@D95k>H&#Pc~U^K@rB6fWT-(6M`)-QRv+k7=O(Fx;k za55DqestafJFhrm=Plz8K2I6E%Uq)(MlL^n{7e%YBSwqDS|g9C<=BBVcY{)UD9hXn zM%f1h?5Ba|0eaXxNaM_Z(IoQ_%`gwsZ1V^`V}1}rN(Z_}?zNFJ&qhiL&2aeaZbUG3 z9*Er&5xPh%(1G^FNIk>mepau}s)AuZ)W5TMmty8x_CO`-s$evVcXj;k67#&)h+9zS zu^p0m3}ieG$UmV>^Ha(;Kcigpb82axpaS!xqbC=}2v+DI7%Yl11K4TXA0-!c)Wl-n wKw``W@!+e*)prGkz2@6wyUq*v1rtac{U`$&F^OwQFgyq!la44KTfT2oRg< z0;YGFUX##6NeB>X2oOl3{QRgS;XMWfT2nm9LPK8W@MX;IX5JHT)(NH)P zAw(IC5j=j46G{lBgapCo*D^E|DvyRbg*rzJA#}L8u6adXn~v zhI)tkM9sbUxi72eN7#d~Ct)u_f5HI5K*Au`I+=7Zp)!g#hA=dgFpMyqFoLi*VIRUs z!YIOM!oGwtg#8Hn6AmC8NEk~vh;T4r9N`ecc)|q2M8YJ(WWp4}RKhgEbixe6Ov0gr zS%leyIfS`{d4$6V^9faiYQh4-Lc$`#V!{%_;e;ayM-q-A98FkCSVl+^mJ@0SDMFgC zf>2ASBV-825LOcE2@QlsLYB}(IF^tjG!t3~t%OyC)r2*KwS;wq;|RwSP9Ur&oJcr{ zASdq>hE64%MmU{t2H{M?S%k9*=Mc^%oJTmHZ~@^$!bOCO36~HqCH#tT8R2rm6@*_C zHV`(3#xKF5#{U?*(hXe|70+SuA#ye08p5@N>j;|&n+aP8TM5?_ZXj$U+(@{IaI? z`Vqp{gi8sp1D=U7w2g2A;W@(3glh;n!iRuox-oP&;Vi&?w-9b6+(x*aa0fy5{z*$% zFJEK{cT-~nhVyf=dV!B7`U*M(_x6LJ6UikRbSkGD10_6QQ%~ zb|LLb=tk&H=s~C;^o%$kyS*6dP3S|Q6uA8edl2>{>_zBL7(f_E7(^IMs3Z&_3?&RB z3@3~r>`mB*Fp@BeFq*J0VGLnE!v2H<2nQ0z5)L999CpW%9zqyTm_V3Fm_(RNm_nFJ zm`0dRm_e9HIFvApFq<%kFc*U0&SU5>!hAv%p&FZ>y8xTCyO2BePJrB4-9=${acDdQ zoBxZtOWeZ=M_}uAj|{s*qt|FOt_8wkR>z`j%BxV5!BYqDqEs%tGkM@ny`i)T+0vZ znE5znKAzDNSYkaxC-TEd9L>q0Lta)L2p#h33;f^jLx+5?QY`V*2akrv=N^~Q(D4DEs=swfGuGVzKgo&xaWr5^P=wg?ge4@LY9Lb5du!OeE$rUTzTLrQ?j+nrxSMbf^WO`*$Zdsm?T{4N*4hnB=PDi27t>?TD(DT&A&h ztRd`FvIXBtYjWviOD5YmA(hIdo0|>cHPQ-;A&kQf z;pWmSkh9JZPNsQcw#5+fm6`hbbZVX~hZ;Jo_F7vq^&=+aa>=!`GR-Y$GE$YPZA`Yb z=Fslo-Q_uG*N%=uxzc1yOR{EVQ45v-tMrVoF8# zCb@(*Ca0UzIpm0@S83j(#!`Nn-`Y4oU6Wmv&aKsXC$_e_WOJ z%g&WBqNZv#I;6WZFPmv*cjEG^j8tWsAPh}1JfoqZwK3>oRZ}{N4tO$aF55DrCEb7? zr&cuU_T-orrWrr(JxHT=840;uBLfP5L+O#fJBIC%@E@3`|Hb{_6o=`(+ z)!nYH%YfIqFSD{WE9YfuR)Uks`kH_fk>;j!jcy{6YE9P%&9OTZ>rqB0#A~xD46Q!M z;5TET)Tbw98#zq zwLyngWV0z94mV}}9_2kQ$n9<0U+{{T@o^1?R z7F(Wenb3j>YHGp4jMjr&LB-(}$y|dHF~1ozT2nW7`7!C5pbv5KEt9OTPUdRU7+9BC z7$zznQJZW?k7#VFX&y1BsRqj{mTAniAY*1-8f(REXl>5a%*6zS>RVgtl4!NGNp^Nd z^Q3HcC3uSINM6(#f2%Ud(`sX6l|QFlO&GR>TL&NYIE zVwPDjl4-75*-G7mI#=W}>BiK8CZ*RRjp@}&%JB)^nB7|6lA->AAT}pgr6<)Tb4fJM zmDG@JZO%6xtEo%2Oj)r4eM8?P$(ovUQ_F-5TgZVSU|{)P z+1iq=!P=4|jG;zK6FCUJH$cp%X6x&-tGQ5?XIJwR23|uggaWgmgX`EA4~w8Fotq^E z2Hb3h>>|6YV$B>hI6VVygqoXG1tBP!S~5EdWdH%p$pMw1)7jR>mZ|m0+FJ4kQ#23X z*3Qpnu~OZJ=H;q*6pWdeY{aS|TcESjxfJ6~GQJ{{gQmzdPGPzs61nuTtq^XcKs3|b zJW9~LY-6gBC*D$*$rZ&*R%BaqEp>$qL5odn0n^9UB*WsFW@=OFC>2jhWx6PtYn1Vl zO!K@fSN`mzDiF;yPs3K0l3!VEe)#xOh5A*wQYbD+QC zf36(Nfeb>yN7dN)5fLTARV}UPwx=R$rvTqF&5N*#YoO3&U&;b;r&e#!y$zvJESI9i zFg4R$C-Z{~b1~&|Hx4gPLq8Y&|B^U4^X-@+2iN zoob$wUR^B(GF+2v#JnaUn^6clMl>~-r4B~jsZ2TrRh3wwT3v)`s-Kt5LN>$P-zP&a zqDkhO+gRO-CS7VV**}{SiOrq_Rg|KYMalY=$b}4)?k+W`A|1rJ^X670YfuEdmD{YW z#%r$2u1=>GG(xQSO-0qt2Nq&-i}Gfgi<#%=IVv}2S)JREsaJxKKu??INfk4XR)XYL zQznN^6BF|6oJ z4V4Hd0xAiD+^E!$?Bg8pK(0J3ehZTg*iBC(Ru|whlrc%zDYG46k9|3>CuiE+yEDs1R7DECIs!BGdR-@j!S;-W5=3z-C zbE}{#BuB%Ln?@~Q%21q{#Grieb9y>ipUySUPdBqWC>c!j#MWjSF%8&S8f)ick2XYk z4y|MxrqHx%p3<1ao`_l^DQpzAv$HA8f*MM7ma~MytFkR=m^H`^3m7|5BecL&Y^zzA zpwfbfa39dStZrFZiI{fSjxc&5N)hho)9SEB&_E70U-p>R`V56EoP$X;TkcNLRhVA2 zC8KN&wz&z-+-_4?AvK3lX`=A*dT{U1MrGf{u=vyUDO$&?u!2&#WNo%l)gbdjnNhH? zO48}3sybv}9Y7^=dIpPIA|o3>LGqit`i6RoZRT zE7G)W%4JqT^)QZ4Y7ecdr&S+K>Aj8lJk{o;?1~lC+%fE~Ft;=#qs`dO)RrmrR=Q?l zGRIOS%5a~BO|yP}`dBEBRC-0au_j$e!Rp09rM9K6ki_xT7G;UcwO06E(kvHyA)yp& zk;}D^5?&!UTlOK^ObbCtOs5q0!Gd;iDizGY7%Yv!jLVAV4m(_uB6Udy_=WHMKsrHG@~DjLXpXf>7s3x!wY zvg^`~loM_G2Q5Wgu&e_1z^rU+Z4MNIJmP?lDlV5L#Z7Z0vO0qkRWqzxa0A*1(pDIx z)6{ZI78|TvvzmROG}o+#%(m1ah{S0yHo1~o)*YH&DU}vjth5A`B@7F$2Ys~CYuSg? zNrM->NJA1J^6@Y>Eou2sz5|;F zeGSYVDH7V!LGp6dwS5XfPP|SXRS1s8(ubvjexotAj736iK^DT?YDhOMPv^kc8I7s* z8VrFm(%f$_gf3uUr@0!~bF8Vk_!lROUNgo5LIaBZqA209QJy^2C?Y`=?dHR5o2SEI8MlJvIVI3s3?=R27$&5;J|z{7t|T~%VZY#J zrlWF?(cx0ID^HxWq{c(1o8;+Q%dK|21PUQ4H;mcI+)55X?G1rbri4|^rOBY{mVA{7 zYPly`w0SlUCLp?mDxy4oL4(z%A(y4A3nnX8BW5brOd}~^tGiNeR8<(coUO?)+Jb}k z@*JnMQB}&dm#N381TDl;uo0WmDaGaz$%k}GZ}MEu(u)MH>kxRZ_uZ0|yO=;HMbJyc1w!``n^Y9giP@K)E_foWkk=vw;CQd69C&*TPBy@Eg9aXy- zM1lv(66M~ZeGbioUYJL~%@tLv5BoIMji00?mQEF?NrlMs3J*u^yQdUX^N2~X6dLLI zDp8h9LHoqCA&%)m^-dE{XEgLk=b(dnp{dWovcm-CQW%{)@6VTKCAl$Z#e(%1Xg(eh zrFz3mtIkLjp{gq>N|6h#v|#LMO%hIJ14)SBWEq5|Ck<@ExN25vrBp)Q1J@jEl;$K= zNhekP^knn=g2jeTWA<^(U6r1I9S&=z35F|#xCSL+a4^X7U>0I4)60{~gKzF~WKYe2 zAVh2GvNb_6TynMP`XH8oQxp2TJ}oU#7^2{K^RcZ-xM66T%7mD#C@2x8Z*LAZ7u4It zlTA)Vq~4=GqW*(?!ivnKphsF-!S`qe%IQ$J11PF)Q?|9HPHs-~<}R2teQDK1rQ z)3{14!3cDD238^WJy#i4QZnH!bk*^URnl|{*z3ti4ScuB8c2iu7Hq#U9El32pO8|k zu!_M|*fZF>CSc{kr6KJTo=(yec-EkNM3t6NUW>e&Vg@BCPG?Tuf`9;V*xYk54TV*K zj0qj%CLO3q?e?O}j12MTPno=6(v+oD^QO$2wX}N1Y;Xgcm~@R5xz*yu*{akCVBpMW zMo1$Lu-wX`%EnU%+h_|`b-*O4r339sja>~Xq9zZ*n6)s&+U}9TCTId_fJPae+oTQv zF-FklA{_qEq|6yiHN-hJ1I~?kIC{i`$aHm@h%;x=RxO*G4<8n!eDZ=RvzE?ZFl)+E z$}IL@#)D%_j!*f764)>&Q(q#H3X@EhIk0MK(~Hu{CVDx;GHIgp0LkENo;&4g zlE*6@4RiO^MgoGx>(fPC?X@M^J0)4n8H>W7kdL?!J~ffyx=i2%EJI?=?Bp5@px|GO z!Tq0J7o41QOwWiqXGr5eru0CdCeYSAM?w22W!F88chy;BK9<_C%L1qSOXR^G^H^$p)u1CoKBcDU78_S*Nkv|lR{F|S%du7 zouD?ujLgaNGa-*uY8mRolwVt)U7oCOmlnhL3WXvoxJBw?DU>o!ewsnbaWFNBQDO#4 zP)d#?NPuB2eS_E#p*Fl4Dq2*lCQ$jZl<}of!ddCEmHJ2pF*a9)FuG6^M}{O7K#D6< zm>)h1`2R6fFk!Vi3RP#B9dZE&8a8A~CL(J4WC98`tPQs6SWAx12EAS)GNu+%w-wo3 zO*+M6mh#4Osla|fqam2CSUYG^=AR&)tNakDg*{Tu8mS!{b*Mzoo#I07<$5jlrf{I7g{7_;bKgmFFbgNKM`J_d-h?%su zrk+Y)OZP;cgCxgr#Y1NWnuEGpnV!%*2mS}-tC9By+ENVD9cDnOxEQpOa=CF{V~dq3q}AWz!bemW(H~j0yEv(h z|ESa~)8GSLi)3vXG8Ei3X-7;ogfVZ+kY6gnE4XQ-AgU+@QH3aW+T1}87z&gHL{Oj4 zBGUR)LLF6Mb(4UaoK@ky+OaHesRJb>#U#a}MrdD7aCHh~1|A1124&VkPvW#dXk&c-1D zrU)ufFLs8r^1txJZo!)O=y56!p%c{Q(J7FACq9R7Cu%< zFJzwav(mK~x8@vKNiL{rrlwh^j?9-kL(m>wR0S5RGczPWm7A;_eoz}Kj`s)p@T-{x z(*pLX^wI`1P6G&nqNDThfPmAkyQM82T|LjVvNQUQpxsT3ZlTC-)}{1P$SdLE%Ld)g z!evCz@rL{rff`Amy7YHCRn#q#ZX|z)pfkw3>SD&JBYmDzQ*j+DKWmx6jHiS9!Td39 z3eOY`@|>h4GM~a@qv~0(*{Im!d9ckJl56Hk^}_4aDqPi~S?rn3P;xB`ll84>yonKo z#i=e`dmZs#RvJ&Wy19In!PQqI%TLU-G$dg&m`6{2tHfqgh+x05lgpctMuJ#azlK3d5JYOMPTGX+nN>9f%0UgQ zYRaOb@O+FxSwaPCCZX*nc?D~8H5S-YG98V!i=*ZEYWZb8ju`V=AlW4MfL+cBxh|hd7Irw`>(6g9)?UUA; zkM~Lq8Puu*sIW^-5@*^J{RHquXVT5VB!+_{5E#9jF2l7v9HHxZ$B;J8yCw7I(2mBR zJXd5^tUy0p9x)I^rx9wO5ug2C61nf-IR(8lTFBW)Xq`@hh|1SS)Go;eh-Q}>SfAB! z_P4K_0-!%YzXU-gUk1dKeqdQ_l6nqQ8pQJt0;0;eW!30P0}iJ9?7jD@BzasE!x(UD zA-^f1!9eMK>ew4wU6jVAW@}n;1qwCDIWELF$8g)y zQ7l9Bbk$G9F+|ExK88BV8e1D+G3d{_npjF+9#zAT#Uv+SmExRO{2HYDpn&h~pMwlu z2w9sXuj5K*Wg63STIs^B=4~CC;+0YT!X%tEi0ecfK6G?EgvSf=ok;@Np|Ng*2JgN# ztWV~aPH02)-d(n0C!sZHFdTbv?BO*lXD6F<2b5cock}k38SK9WMS~M!Mx9g3DbS6n zsmhnACeRRF^W!g;J6ReRTB=`iwBR?Ig*TEtl_}u4hj5W61uCNaB0D1U%4b znFt>`HrhFXm(m$D<8aCDlw1}*%5=gv*dl5q>5`8;g*Z}wot@A|4}+*rIS#!p;a z`yy})Z-3y;4&DYC$3R+^>*sSNFcslU<9B*D;4-Fj1cvLPW;nwp%J)!lM%N`98rG^f z4q>^ZGI1j^xyanDO0IyQ;zV^g^DB!tifbd3P?1s^#S3_}sLeqSQXlEes&buKx0Gy# zD@N|t9fecvF-0!oFkYp|9eP(m4)Ut+&~6x!Hu5KCX$BVJ%6Dh8llVao6m143zI@OT zpGrfTrn_>$#-)p*5RYUUwfIoiHmXeSpc(idg~wQfe`_H`YoO`OwE!H`<)bQ@eGzU$ zur;ub#+9lpjt{|uNKZT3@S%|hHFhfB7^XKLgWg23c{OTSGN`?g%5k78K>yedwx3Mn zENGaCd@H8RK;(nHh{rF5G~`s6i|)W{uVhEo`pH#zg_ zp`Jpx-)u=jH>m(r(l07>6bw-cSc44>fxIOk%Aux>r_w+RRA=QT2JML=)OxfmTLToSp!&N^U5A`K?hM`v|%ZjvQw@aDh8uNXrwE8$k%eZ z%Dj;RRR==|{MX;risCz1WmDU^bUi8}K`q_XoWgL|OEbubx7M&c)Ypzx@V;bDdNqt) zLriEtCsdH~(PW@ei}#M*rBNhesu_822w_@>J)TY^{m`*sjC!hF)g41jYu~iuQE*Bg zySv7AmnJu~CQ6LF$V~A?AymBD5>->h4y;bt-fLRx;d4>1X0>=2Sg8h_erATc;~2t9 zLOsBMSeq%vczGPhyvRa$sKav$cP>bg4FhXm%w7E|)S@H_>(NTD!P4qf+?h#v<4)UY zOhEY-DMJapmFL})bneOBop&R!;}+$YNDw{nSnKzKM1yqBR7>6*E9$oG&msA3k4+v{-{GptPnwiQRWOj zbyA-cM+&RW9wcqA&b#}HD$4N$E|`u&p-!sej&)HP?UEanRG{(+zj&JJ0jua2KbE0r zuom)1mol`oOJZqJPIV5l2TkO%FD=TgKERH}5vhAofsP~Th6kT|1$O*I76;$BJscq$ z;mvO$mF6m1;Bg~J)aNiB3OXdwXojAphF3=;)G5t(?oRDKuv#dQ_5~mq?K2{wOS>wI z&QF~)d}XVfDo#g%8I9`DIT_9x{60j!EG+EBQp3-vnlNFKw&&B0W69kz*p%|DT3jsu zh+uc6RQKk#w(MH296v7DH8t7{r>a`-*hQLJ(Nm?BVF{=!4|>(2I6df_EJko9Ps2## zBe#$`1Ln08ZfNy^ZvrhD#_Y-0n8 zxxaCL>$$(PKXTotJojm*$#b7^pM`qc-ATo>9=1+)-RC^_dHWpCo@0(NM33T(P12?h z?0nBWgQF;CGcUNmcik5~_a$ex=f3Q|;<|tE+&{XndiG`bY+p_|#X8w@hCAIoCk(bY zF2H((A12w8J*S(~-F5%uxvx2gc<$=}r;NFVAio{ra7qE@2ZXEG>`N%=?2WJP8}6T7 z_f5}z%YN5&-}c;h+;_1>bo`Z=G@&UZ;Um;AhI#IL?q3M+L;D_eU|-MutNVfLe&{&| zItSo)xt=-59N?LiY;q`J7-6_M!ZSw_MiUM|H_QXgv7R~8JlJzTa{uO;M5AOSq13E8#Z69fW%b_Y$@f9w0nOc$)Am;d#PKgjWcEB)m%a6XA8j z8-za--Xy$5c$@GJ;a$Reguf8pCwxfwi10VUCxpKf{z2FYK3fJMLGTG>gf4`xgl>fH zgdT(nLQg_3LT^GJLSI5Z!XAV@3H=EJ2m=X&2!jcggnbC32%`!662=hrBkWI@LO6^t zpHNF^AT$!12(5(GgtdfqgyXFfI;=5iSLYo)o^=vdjm0UqIOW#a);XSaF4N8k`7HY~oieb{Qnpy4*U$v#umu!w=UHHWRiGwi2!<+(5X6RozOsjc_~R z4wk)>aF=zrXWc`%*E+$o+6dbT_Y){H)?;k)Nf!GJ^Zk~g-?8k=tp1M-y~?zY5Vbjh zc6UVWUMOq#W@s=&l?)Bx*P(=AgyDn{guMy-FyBaqI5GDAEO7wS4kXMZ9Lf)~z!G~l zVJ=}F;V?p#UG3QmSZpD{{g{~-F}j$rgcTf4ID#LJBpgLJny{3xjF2QOC)5y9gfw9V zfdXOI5i*2h2rCKo1WJlcNwKp8ii>?LAxCH?v=Asl_9_D9$X-LBFxeC)`#8e!gcAts z2`3UxBAiS(l_NThaJqGJ2gwVxyV~A7`)qCk=d#p!_W7QD0YevJi?J_8$o+)TOZZ_U zLst^6B2c#M>)6C50tL*bfZ1EgLkgHp0kgL;dL!W`MsFtE!sx9G-A1^b)!)I;orJpx zcQebq3{gGV_YtU`?1z~7Vfzu!ew1GyzMKh9Zxf~ijue#7ifG4wRy8Fuqo z!gGvLx!Er;`g_8QOnZqTE^M0`#HI#ushjLyG0J6T|C(?Gz&X_Z#&fB(te@G3^2TgS zU*+KF8@Lu+_fyaP%>CSRzi_|w+^^iP4Y9|J##Q*?VX7}q64KFtYi@+4YoYJ4yp`$a zIr}>Ycz=z4J8D>XVZ;8?3!4OsV22$q916RhlSb2a zPh<^;(O@`&X2Q{M%yY7^G{PRn=G;eH<`%;3&K;g}uhZs*4X&FOu|`&vk7-{_?rn2IuCiyBZLLy?ks1vAtq17qm23k`_ACw zl*VLz-!$CUxdZ#Q%AfA^ZOQgcrSYW!mjr!rmBinI!nEv*->2fR-mh=p)lK^xJP2bO z+81LQJQVSfj7Jfa=Rih`!G@^R?NryL+fRMpOfxFZ(}Au4OOr^CbAgLpfaK^Hqk0qY*2BPrqZ2;Z^Qe+?Dp4E#D#SV#BeXr%9#u@LMP8 zg+$c@J6yrEuO*)mjqUl%jpegpwwrPFf@1=F)#^m5et=SiRNAE#h2|R5EhCCQqKU4$ ziH@J3UvO@#!f)7?<1JP2b_#E3=(7yGU>ysgzEQeF~9 z4r5;i`H}`hp!aza4v*^bjEq1$z&*aCD;n#bg~3PV$$~IqD9|GGaB0UV*rI$f+T9n| z9G$yj1y(`6=CypR*riywpsO01NARhD6ym8c3npgy`%XwSBh%CMg)i#(uOH#?H5cBJ zHnxlz-9cUH+2;Hyo*brzYY&=9uZT*Uh`zvijypa&BZ^Zoco&`{EK_85@H-&>$quDf zS*Up_p6TKDq`bkCOb$d&)jL_W)ouk923fQc>6PNR)f2T2>M}2|VX6T9_6VJ-C|)e^ zQ{}4g;+0+$shG?26Q0-m5QD;4+eNCdXi+#>-#kP9gd3^^!`bb95iVqSsT{nI+Pj1P z2sD&>fI6Z{KBK~N=W8lHn8cbJT0GzXD?dEJst&4I`A0YOAA-@p85#EfyE65QEl=tx z)gSP%;4^D?f2Cv_J~O+YQETocgn6+r%>L#8Jhd^*ftteWAmf8Itu%+oID8P2!VMuQ zJP|0hH^Qd54?=KCO4Djh7ihXr z(?yyt)^v%chiiI-rf}QH{v4(0(V8yR6b6?3p44=?rZt+v3X|W{ny%2aR?|97GnyWw z=}JxOHEqxo9wb>`R#P~W5I5;wl6MzoohZx0 zEhgzTn!-aS<8YEmx=GW`nr_h)=UVywdQET86bD?Hjx(;LH)(para0`%bok#Sg$qv7 z+ckwZPR8%l^e#s*7OlgAJz0R zO&{0v2~FW#mgRAbmh`up{!Y`UG<{mrXEc3Q)8{nBL0gu8LDS!B`l6GXxE*EuRZah->1&$4t|?rRGT)yyeN$8TBxO3>l9IloDV&os4*#U2a8XJMFQue^ z)${{RKhzYyOZgq{OG!W0^b<|tFp%m0(DYNScR$ngb4|a{^h-^@()4RhztQwtP5-Is zzcl?$(|>FFy{7-s^ao9MXbNwD?AK44;^;5qI~B#>u9R_lUzu*1np&FLnmU?>G<7u% zYZ}oss%cD9Pt&-jC7PCMn$XnOv`o`-O*?7YSyOm~Wk0)W3a5dLch|IsrWKmPe<8oa zO)P0|P2uX1ad>+q?WgG;n(nFTUYhpTbbzJ1a*${!Y)dY)9|&^iRvU-si0Yb$qO*2Wfh+rsFg{MAPw_PSA9srjs0(Wn zXnMG&M`(JarblUdw5CfnU8ZSLQ@C7Y`!$-v(<|ffy-2!3(^^gIG|gywjHW9!t=F_c z(?(6Rnl@>Atfo0ln>B6Gv{lnpny%J#jizfgU8m`Bn&J)u{VwB;rR+a$96)W}Ov?DF zGM~w7NSO~ekuqKH@4T0gaa>JEirWcEaX}#|?kFV1HHDb^~s3~qZWInyGTY6vTrH4$vR@3V=-K6PeO}A*eRnzM= zy+PA$x}P^{dXrASSySAc$aZjfA}Q`qKz&}J$T)6MB*jIFq_|6w6xS(|;zmVMT&hTl zdlgCbe$Fcv8Q1%{rT24sLuEQHaV333#~;-c7cw&aaUFj`QlED;G9A}6pgwPEWE__@ zl0K#LKdtFAnm()PbDBP{=?j|vUegyfeM!@oHGM@>y`S?+NVbn#A=$3p&n>;5TY5jY z^nPyX{oK;~xuy4W>up`{JDR?$>3f>~Mbq~+{i~)QX!@b1A8GnGO+VK36HWiF=|436 zRMXEi{an*8H2qT3uQdHy({D8WR?~lK`Y%nt)AZk(ey{0&^t$^&(;YhfM@@gy^k+?X zDryT&4NXl=Elq7zpY3QG($v*7tn)=QjcN*qKIhH$G>vOoqG_q72~B-X%QP+5w3DWt zHSMD7@2Y7xO>tc)+v}n8RcP8%fA6K^xJ;D!`snn&n)cIl4^8*fbT3W&YdS#Fftn7| zbg-@;SCq2;Av%4iro%KHuIUI(_ttbDU0(0!_9z|K`#EnjWxZo``hJ??f>Wj+pyLN> zI#$zzbh(2y9jECbnvU0Wf~FHCHTeuf)~nC&_EcTpG@Wm{j?d6^rlyDL@3>!;<#EL- z=^UMo+g2IJg{!2vbCp!@;0Q|y)v%%Z{GOI_z9Y>*Yre9Ptx>cP4Ny#=Eq&I zq__^26gR@4-R(1w&#=!#*tE|=2=~D9`?@JnqNzTg^XgfC zzd_S&T8?hi^d_Btv!?od&iiOt?lw(vD=p)9==hzQ-leHNpYu*q=DSx@eLm;CwM}*>ho<^-W>J+Dsz3JI$P*G)XKOqM_Ky9ou6~|oQlhe=O}LeIn+Ovk1$LG3KMf(y z1-s4z>&_RY;({W!CGu=b*zaL7P`h>N?rV>-;@EC$zZkV&g4!=d?Z5hk+W(?zx8Jw_ zs{1}c_dPNM+=y-$UZK-!jyK{zXmMpxb&-5$BlZXO1MIB*q5YArZa@5IFF40>a5|m{ z154^sXLV1>i3<;!;^Y^%veS^G0+3==heZhxWcE#^*n$K~|oZaek4{iQBER?CblJ2k4~ zn4T?SjhpX}Ytt?^Y=e(lFe1bL*8Zoe&=`ci^FNQW>LJl-$$g^p?7KymIl~?uV_RdK z&Q520vzRihvorF*Q1{SNVs!V=fo^4Ycf06H=(b&Suh=4bcX#gcMg(p+&{~(15rl+uXigFQh?H>%+-r?FmqEWOt@q6KP1;2jE zPs0hA2FgYs>)@Uk@E(tD7M)3Z4zIXQIQFflndY{gpA>1fF6gE(N=3{_h|Y#Dx+2`m z=p=_g@i9e({WCgAh2JON@jmuWIdSY)9CaAYBC&=UoWpgzfr?g7rJt2zAIzz z7JDMH*T~03|2b4$11jY=d)e?dF>u&+F(^@QZx@3RsHz*|DK|sv6mQN^vAE*2Z)1=fnvHbM9egXirL6hWsH#Hszkr~iJ^`G z=LJW2Sbl`n`4LtZjnGpg+#zPFF`D^JB#Y9R2{9U-AL>U|Z533R2%WT9^h0QvAKSTA zbd@15vKcB6LTJmGD4K&3PMI-M>}`xjzsJZvs$Fli>W>rxDAAE%u=PugAChl;M$ou7 zCg1q@|K9k4X#5~FKJLFaZs!}Hrbk|e5e>J8`=!rbxBFewm{?S0Sh%d?P3HJL!}=X??q^4J?2GF*z8#a90Wp3PQE(qmc~T?LW}(&qg}vMq_SKrM?zGgYV^cQxST* z*zfQ9{d?@DqN?3hWKYjmv_|*nKs9Xi2oNZ5R7&++}W+ z%q|iGjm6>sV^LAd2NumS_%hm(e2L_Hais3Wz@W*X7aO3e{#%pMP%w@xYHDCnQxK>A zvZZLgrQ#U? zVhe{YF|we|6j$p+*vN>uu~OEi%;*v=7$~bZP3m6ggg91^=K!T`Uf9E-SUc?D#*0P0 z%Ud{3iBq~u;d{lXj)niY+ro)FkLK%X?ON$azxSg%{P-e2p4=`*Z{WVOi?(}RlpAkA zW4~EcZP%jd#K<~hWd8qc{qLgw_fY@)|Gj?v-b4?+2}*)f)4dX$n>FNqv9Ihn0%JOk zpa-{c<3GYNeh{9qLzEalp{1WiS5wH=)Qol4Gv?qwSIM2mkXk$<%pXOG>y(Evx=#7l zYqdHZ3c(oaM<;BO+ap3JZb6T@k(7bGIo<**{mm^f7@0)0Ry^h-t7c*!US~21avKGb~h7%Up;A=I}4+P z`K8!du~qcuXnSqOzJzi0+$`0^u+H|@-L_UC`k6h&o@Q^^8qG~qq-72vr-w8x8LH6s zTYsk~LNpKiJG~IH1G{2RVK}`5R+u*^-kV3VH@-JM5DRZ-AQth*0z%m&}W*02o>^m3+gL@)%LCY8XX_xi=Gm+8~HBC7ahA*Jg@St%;!5H z$X9Ywkgw#DtzwJJ7nu~~i>wOrl|L2aEB|S$I8Nq^%?t9y^2@#?7UU}#zExDIe6#ZT zT7vrgsvw`=6sU*r%Yp6+f0@@^m=79O&|S5=*Ij#n6UeOCqV>g5upsu6`dW4RgsqzSaTvgAGUJbK)xuV~ev`J>W5~zz$WWj8l)@c= ze5%uf)^}X*^3-Hb6RtU3M9i6Di8)IgVa_RZUK~}_`H-+90|&CheS;2LuG%ims!HEG z-S;;7-UYsQ?sl>N2Dox?NN}z-_r<3teXqv%p7FiI@oA&E2W+O({7w`7$Ys#9GO4uE zkM;0l=lijte(Ve;89!F~@vXjhp&viV_fC>Ye@D_jzW2NzKME%&{n{Ai=^$=-`^kTik= zjAGcO%q89f3(xUA&ySqvdl8xR0+O&im-&$~zPCswJ%FT6ehG}d-hN41Cf$If_x$)z ze&ka>{;5p56iFBP@grGde1%Lp2}zgv@hyJjEI)oZlJtDq*NQZTU*X3t@MFS{$!QVu z!OFqDH&*`ta9P12n5m=v*jzuJ@nchD($Gru!H-|e{=`q0N!`)RU;VOHKk}Vl1}h5# z3vJtF<6STMz{@rt+ftPnYgUUn<^qv47m5~hkvP*_EH;`;#BJu`;&Jl`@kjGW@i+4* z@gMVO!!wr}eavOXNHb|nF_#;Q%^G8+nKIU!Y2#vZg|XGFHSRO(jOWaZ@s4?n@x8gy zjG6UjZ?nPN2fu=yY-Y{*=KR8PFsq7|gD0Gd9mY#LL{jbg{endy+VA=vtRS`Pd;bY` z{TQ^Q+V#C5zqISO6xzknRC=G~Mwj39_sBQcVb{0vTHugC3wSpNTEKg_qZW|Xy154I zU5j1+xT0ov-Sy4CSE7uETWp`lUvn z4H}LA6g1i&X-dQP|6%uyUVug~M57n~_eT5Y8*MK^(NrKoQS3X)Zj8Th zQFFVMpaH+sAjDINEH`o0AUAO(veB`>)Zm8y)!@Kz<%$Ffc@T`yJ!E^VxD=8m~UQJ)IIGY(<{mvB=@yJ`R;wKkAZhV zvz7T?g&)5bx?K7gu0)d0RBTT1n`P2jNV?1S9`xf2{CG+xwIZqB_f})K@#AY`(sC%y zll|Cf*hjFT$fUVQI#DJK43Z8~xwzZ-ylQ|~V=$7Q@MF(mPx9k^WD;CHv1k3*i+;Sj zAMb^vT`zmovfe7{&FjUT=GLOI-&M5A!ou1iZc!R+a4>x1eKmaJGK>P-`bEBXw(niV zmW>mUbhYno^1U;B?<|>AkEE+)(#gm!la?Uq8sEF#_m1O;d)TXwlSy$TT`8->R(BDT#1HwT%Y1KxO!^o}=+||=2b(AN3BcZ=`cEt8%=(&aKET6jPv-HxOt-&^B*Pr8{q(oj{Y_eXqCg{a#uln$rp2>*RaS`rZq&W8`!3_6%Kkb~Q05;=_?41%!;2FN6G zdQaaQ=zB-w|78+6-N*Na_#VusB{GSe?&o{JJX^_WBn<}V1Ll*{d&uhN``&z6ketQ< zF>>9BT{$gpIdMr`Z{7_~-(!@TcNKA1-*QT2!UbhS6^HQ`K=cv$Ca61}Y^PJ*Rcw+Q zs@R1Ks&(j?~^HHbghzKQ06A9IA{Gk)w?bCF(2cmU$o16U5o?ApW_6FV6 zz51p7;Gv>kX(uPz9hmRcK-m}eYM|^Ndo{4AS9xdXh(J_}-O*IRcXQg}Sli<|I77|H z3iBfh&QSc-mH#%hUV3Plf&VeI-~7VR0(Zs0yt_gTR}HP;uE-B)Tll*>|4-VgKwCZkM_Xe91}2`w4J#PvO|QI9 z%&aUsv`x&awA#dM!W_cfN`3F#Cgv4_hZTbJE6p~zMw~}P^%Bc@IJ(60%MX~l#J1*E zEwNSH{Z_@>#DdC5n^;(RzgW~J7BjqraCoJG2Q+N$2ws66$N=I+3B12qzOxA)HD$jc_{Q48oa&vj}Gs&LNyjIFE2X;R3>igo{}7#SC4-(4`Fh zif|cWEa7r~xPqZy6E+Yw60YQjs~EbPa1CeaT86G8Y$9wXY$0qVTu-=x`L?m_jf~zz zxS4PZ;a0+Jgxd*s5bh-0MYx-A58+-yTV<$CY$x2uO7AB;KzNYw5aD6wdxW7!8G4NH zIHOOn2T!u>Zy5b8Km3mHRAndebenh<^7kAT;qz_6s&pxICPWPX9Q+HJbKArV%pGIl zXk{YwFsdtO%I^s;Qr=#wOhg}!wuzT36LHd4DidMSKWO^L$^66MtPuBeR%0vn2KPr9k%)_xZ@o5nFtg@s{d|p}FCcYqi z$>>*X>FdhGEOM#r8&=yF)s|sRh7$eeE^*8LId@4ovB%sciI9KPA3)s1p1^R~zkrd% zUchMCcfeSpKhP`tH!z+U04yo{9$1+?D6mJ_&%lbrFksKJoxom+;lSSIh5+f47y<0-SF8u=X94!`D^3L2 z(+2G2SDXaW-vJEpD^3O(2*xD_`4y*t40ZvPe#NOEL&AWee#L1Z!^qvlaKGYokP!*y z+S{)<17x2BvyJpC&IB1n{wGHJ6=#9$n}`C(_!Vb^?3aiE_xCH#0XYCOv?Ot$UvVzT z*hCz7kY8~g$iayc;5fhHe2_yDrNHs!h5<4mQ30G-Za`)elM>y5lgkYbZ;GsKYPrGj zO_Q}vFE=>A8M3ySJ`?-!gS{Z+);~^dYRL5N%|A&r; zb^Pxt-e$O5ND!iO1N^ZiIub+W2AJeZ3=`W7x#(hTMogFSZOn`9+h8{CGQqx(AHon^ zKLo~y{ZJ2-@#I2XV%gP8Z2WWZFNA+C{)O%8HY1MJY?M?cx&^11T*x%0Uw4 zMkf%z+~^EaR&I0wDK9s=f^;f3x`A{qH@ag4Jt`AFwBf!3{p?wp@UW_lUesg`)}YZ_ zDH@{>BYl;2G5RsG2VqabUM$+5Fn}KP1u(T1brH#>3)@W8~ZcifFN)n>*B^@;NW8oYBLT7*{{ujFWMT_X22(F zjczl>gY4U8OaK|vW=sUxzYVuRC^Z?QHKtTLZN^mSNMl;1+h$C!47V9GFy1y}W@RGM zW*iF5+h)uHgW8PQU`m@Yhh^uo>^zn|jAiGuY!%B^LoV8k1+s>P(9UhfB3aL3S!h<xG2E**Kpd`5@>1|G&PLl89jlpp3xHt zG&PKqb%##jw^NxyYr{C5717!-Xl)p@HVj%D25u)3f}NzrVVp;x#bI1fS#Dg|W?aND z%?;xcf;2b6s2b09QU9+9m+4+#t|=`KgO-P}L8olg^hzdPRSCQNQ4aTNKJeI!Y1hbS zaK;$C$ioTA7}L|5E8ntxuG06@>HBp^Pb0l=&(L+e3pUa{p@_F(XJ^n><=;`|S0Gn35W4$Q8#k-u|cw*QIPb0gC?xLI63phgb z5C`HV=OLoEs1rnB&HD7#awTi!6$BTbhr;1N;!ut%@9G_eFiZ86E#Fy6d;w$TA@wN3Q@vZfy_?Pvb z(baj#I5xDGaeQc=abjq(aZ>0sN?Ve)Xz-${xfdJT-OG*p+$)Xy-Rq2p-Rq6V z+*^$&+`Ek5xZ91d-G_{C+{euq-KWf#+!xG0xv!Y7xv!b8yKk9qxPLLC*gFjUFZrC;73*%3ThJEv|;cn&!;XdYv;Q{7H;bG?A!lTWP!(+`)!V}GZgr}LG zhG&_dg%2}74=*&o2p?g78D3_76<%R}9j-UO3Fpjj!)wfchS!_lg-^dA zcP%&kp%o7Q!-|BzvZCSdEHC`C6_13hl1PbF8tG!Kjr6hBMfS3ej|{a=jEu2Pij1{R ziOjI>h|II@j4ZP5iX3g-6REMp&OzHg|$^ z2;CGtEOc{pq5F1pnbjwnw)#eovG$0zT6;#12R+5=A3fh15d9VCMr&~NdaE*evo$2z zW(|uzjQEq*KGEM>Bcp$?Mn&JX_Kkjo_@~zX(SKS8M0Z&G#|-PBSkyW==7V;%#>aYF z6Ji6biLv3^N&y>{M$`>?~_; z?0oC6*cI0N*e0tgc8gUVYqJ)_9TzxO!A$G>`qnU%@7*g;4u7kdzpXOld(TsIaMIxmXeO-l7b((=U(_j4` zC^0cWM4-ePg=1w!+-idJC@XqcIkA`3EQVVxVt=TVgRE6~cZ(~^<)G;?Jy;D@4p6>! zb1|YaczVV;hv?pJL0|ba{1B-5oR^P1;nT3xxSokpJR<3t_-d0V z@5OMu7sDN2=SnZLb-IY*=frXAEYZ(8TlS4Fz0pj-d~t{~9zRCHU)B?Y9R3v26#YbR zhd+k2WPkCNJ^qszVHomt*f?jB?(lZq;TgKac)BS&Y;5BlExT^qh)+Y=b>pW0qpr)V z2-58Tld1kiR1^(D7ghL)r}?ChT~mcnlb?d>Z;1 z#=xH+9L6#9k^{hAd$S*Y62=AGd*#M0aN$|E;_573ks4!zmiA2H#}+pE-V+3j@7&p8 ztOR5?)6g5gbP(3BMcCRPqSloVo2x`G>uUTO;aV}mQn!fXR44M|IgEcT98-dhIaB16 zFf^4@A_j^|IZZZp&pqTcIdYmX#%QO)81d)N^%z&6a{5K3yS*ZHW+&s;`;FTTFR)i7(h z{zh&Vy};iVIG~N|Y4fx)v~{jrj34Cf1y}``6zfs&>oNR2hQ~!u>j^Oc;h~oDly||j zd7^KAc@0zDDl9J#%c~ET7yf9e?$HMHpK^~iWURKAB}O)lV^>x~N!$h6!f=J`5<@-b zR`!AwUg(jU#i!AuXV9Z(MLBGQUe*g@p!Iw7>ZPKErTfCB^3M&2Y5#px?CH$mEXtnZ zvgJp-$VE5jI`ecld6P|ntgPsj>g;S0drI1}N%VlQ$rN7&kkoO(%gY<<71Z_m{SCSjv0?ff=6bu)RzbN| zzl)iJ-wO#CbusHTsFgRNPTm%KTknYR*1KY=^`4k*{Y4yRy)UY)4@8aip{TPy6318{ zi$?1calG|+agOzw__g)9xWW2D+-!ZB*Yx0rX7mtovQrIKs;w+4ocNFU0ZCbDNc7`h z(N$bDzXYqnY=b^ioag|@DI0n{&vy43Yt3un@VwVp2l^lnaK|IE1(AuMn?Vm`CZ;9A zb*Y08SjP{H99)q|Kv*ggi#Ll-JsB?P$#7UTb+2*!1}s4q53NgtQqpEeaUIz#zu=dI zsJadxuV;LnjBjRqtNboaex$?t=gg_Duj9!8T|JIG-zHwG1l_KNa{?w(F0wUz_odR; zTL)POqw?z$iOr&0qOY9dEw1bkYB_!z-~Hn2VyM@|U-VZ@{+56pTXn&MDGi%haI^fR z3U1W}^;Z;BUr{F*Z~)6(Uy+xko(OHV#`VhUr(Q=6uUICP0YW{O%{|S6u~4L+o)aS> zNOb@c31J4-CcZZ_YgbmUSg-++X&lzjF{cm=#0OY z*vsC-7+~*d47T?&M%n$1{q2Fq1bdJ%*&b}nu`7**_7G#KJ=9ok4>RiR;l{D{KE@h* zq;ZNp$~ey+ZT!mK*SN+WW88@F?e>9rZ7~)4U?D|UREb{BB7{ui0#@z4<4-flcR#0g2{ z#?63Av=NO27w$|>;J25?)_mxCgsAQ*lGD+F;e~3kK=A8rS-dQ0!a{cZzHW%k0E(Rs z34yl}(sQ~EnK^x%VRBuaj+)8~HL23bz8*7CaKUhx$_ zPLqj@buu2m-*^(2DOrBsCilo|oK1Llr!QFOwuI6~-e*gGeKlSR<1XP@GR!ILkYC_7 zUD)IB1mF-6v&Z9_d;)&fH&G0Reph`2*3OaQX8UMyr=7(5SuUQk)8cu1 z1=dfk_>)~H{%mK&dv?9}*lxi3X%t`CS@E6SWLWmG`1NVdD7RaTp7t7}pS{-TZ?7|k z*vDb*9B)jqPcUZL>x~8WNyZWOsaP|oW4)YVoNS+ITxp+WY_ZQaZnn=c?zYc098y`9e8 zMuqox4(Y=4z~R9twhyS5v@*&sT|=^26ea1WvE?H9=L zE`m2iE|h#l%94=6J|QUc-{tO?Dk#XqOq_3o{VT}BW%#Ma6(Vl`8b6!eAo}4C3sl-y z;qM__BgW#SFu~p=rs0>%)%F&VwQmru_%j2?**A)_?3=`8_RZop`_=-l#q9yF5i0Py zNqA1@lJHKrjRNj!cH^f0zw_VODfaD{=YJOBdw?UHBehX<0xUKcGqn}xoZsS%aIcZ= zY=_nzIm*WQz+J!Qq>J$`5&mJQjfTUiHyVai4Sh<)h9*in%b5v|NBj}@RU&kn(-)tk zL&Kfr90bRxc3*qwuS2D38k+FX_V1`E?lqno6B>do^r<1kwi{0m=?r)IQ>ZR7RBFh= z{49qL4uXZhKykO|Vc#QAMvSoWO9A|?f{FHnn3IRZO#4wW$9_yKu%8sm?B9sA{aaCI zKP~F*XGF989M` zZTw8nokh%(9ZXeFG)C3f+Pu^Znan{m%0Z~{z!Q57@A@^)k>ObPkoO=kJp_*Y104A$ zIPx(#@(C0OpHUa|4ZXZaz>&|La%$YSY&aARI(}jk~ zA>fCkUf_}D3_VJ%G`CF6qYUOz8P5M*BWy+`k(V!ZuM-Q=Ff|_F?#O81MQ=U zrz9fYvBHnXLa7L$&(j+45?HV`L;~#K#a>~uuo=pKE-9X}Tiul1N?cQRubZ;Fd&(Yl zQ}%FA*|ToSo_5Mih90+D09&bF*?9D-o26HMg>MqOaY#E}kaADhyKa%a>q6mkLeaHk zlh{+E?Zhm4ZxZibR+ZPisy=nA>QlEW(^=I`b+g=LXUU4A7PN4)gu}ZO7Ccc&(2!+2 zQd*_QB>|r}ThJF5swP3dGm_+t1e}rNc%%&CWffH(3*8V4-53jXiiJAILS15^R-44$ zhz>;x@?dBr9*&udB#6BzZp%urc{qf%6ER{jKnM$S%La~^EIeI4a ztJ%~>=1_0h2>PKsx?47;hh;wfPBx<{vN?TquPhh+WhXIMb{1n~S20EQ5X)pwv0C;Ln`IxdRrVF{$O>^p z{!)C0g)YhdMgy!BTF3!LdpXd!QQl?rLr*YJ{;x4i4mKV^Pw|+nGN#LWj74&&v0C11 ztdqlx7v-;wZF0D=TaGXe$oq`L@_yr#9BF(nAMgnIpvNbFak7^Jq_n zP<-qUQx2R^r~>PMT7hb+3ev8@uOL_qjR;@OV-F5z(eI?8Pdm@6*rE7UfYAp!Mq{^d ztSlP)CCAF6v0FKY@x;#9Pe)}mdYg`_XtckMn$Xi!R)?g#uX>X>I3!CP8ZpgVS?bHp ztAq;fqY>@=A%(!lBk)zn10nOWcuI~xCopdzW#gHGXIjWto#P)et<+ab*XIOs{Q6rU z{w-jA3+EswzGdOb`I9+c3V#dv;<^w$J(Hs-RgT8Nx-nS%JxcB5SlIFYj&7H~r=fBj zjg#Z4T27#Oaw65rKhQ?`7`-7Mr}yO(^og8Ar{rY%0e1(nW2>=H$bqyri&E*N_8)>P zM38bQFD9vw_JaMaaB4@dLkL*m)RWdj6nL1w9g~3J2q_v$b08L_m^O^VP{yZoeN+vx zz7Os`{WOoNM?fnKN>um#}|9L#nZRO@b25<|LB?EK_V6y3S z@7zrB=}Oos4_WIe^J3{gWCfLmtMkBt&!8aX=aC1XCLICQ=)ob=%EG2*0r7n z^VVvez)s{xX_k6Pd&QAc(L$f5Bsm>((izz8m`Tm$GjtW6SIb!-@oXsE=TIkn>mjWp zE^KJsjv(_u)k~>J!=CXxfV5n)Z#*7{dq-s-ZJqt(Sqi3P=zM=7j}Wcc35%DncCzuD zYK^hfL9ZT)(DVE&oi2?J`o^EpbBe+4nuIqGwo>yEY!XK}%mO@LeNYErQD4ltfGBI3(9 zN?OG&UjWTO2HedRMC{G09a)4A-KHZ7lth_B)(SaravR=z<& zxy?~W)Px*fX019<^w_8!F0mmq^E?}N60pI@6ermV1B9BT2^FuvqS4<$qwPRq2c^rM z*oL!As2f;C#CVb|*-awPmT~=+jYFM^U>NgXD%y>T_MoD7QPEyh^qvDF+f4;S9jgd8 zmDv@|1~9B=E-u{4ek3-CukkyD>BcuV7iWrZBjU6^o{aE!(XhighSt5yeW?9I%8>if zT^+#g&Oz+;974DCk%l7QD&Iy|Vr10rC9noHjy>l)34ivSnBvu@V}_Y-gZk#fmf<24BLg_&FP6h}8oW!n%Rv5p=4bLtu|W zV2@FbJPs||3G@PAp%*wwCGu-(EuG3^+i4Ey(?+syN~>*4@}&7RkTSZ5F~BAx`_BUa zVJ84qtI>OY@-#^G9a_!50mK;xc^v-ptcp-&P(Fq#4G;r2#M$f`17flOHeuNgg93g~ z04HfVW=r~6^cIP&=?BQfIdJB@LoS@|vEpNPHW?Mreq7>uoXc}S@kERzKhs;FQY4j0 zNy`74C}z0n2b1Bq=MvE>6D=|C|hMZSd3gmg-4b3eK@=S} zqP`*w7Uxj=J*s3erRf0dm(X4PAH#&VdSF3tCCmY zuG#{z>*!k5j@qmCK&%6GS7mgIDyO^E4G!c6#gH3xIdXZ7oRGMp(n8K?YRR79<6lq? z2Ed;;YS4G-4VGC8$REa-IuiszP6&R?1tN9~^!@(OTmKCA6OXGQJf$GNM$@GMx9*cPakbH&E zv0REmga|L`1t8)NhOj`=VZ(w#hdp@D&~X}8voT1BY&0Z3FiiXbI(z|`bl8kbT7+7H zA)P5zbwNMTjnY+jNLvqTta{NeRBtL$H&H8fGnJ|eDpR*m7j-LE6}M4^>QBE?zoG%^ z4jQcPq@ijc-LLMVhtwc?R8`UhHH0RsDtb!YL$lRTTB?T8N_9W2Q6p)cdXP4$-_XnI zx3o)bHsFHI7cI33NtHq;u*qA=KkSsYxP5O%@r-np^9^ z4GL`AX)HpzE2VTS;@BCnHMljRP#WAQiR7f@KvE!(+{7D54&WdDKwPFqcOP-Q-M~D6 zs4FY*{e_;0fz3h8y*PyE3*sXGIl+HsamxrhEIzrRa5f)iC1+p^8lQ`_$HbKsJhv)% zZdLHys-{tvnobSX4A6KcHB-;fm1-8XRI@?nIdq+xi076Y!0O-#k)nja^JKI^6a z0&+a(K+kr7isNh3Q34-hn}InJHpAr1Xo=pfn8{-)Wvm47^OqP)HA*ENHBu#Io^q~e z5x$Mm>P@}xo*TwKJFAD$9!7>FZ>`^pBW&sk@1+nl?Pl;=owf$KIOoG5ZwYU1E@U<6 zBCQ7H*N@n*`Li937OX-NEzMgFBhU~xywS@pEw6=EzdUb&IL1BTC^lKfQ-c#RQWz95 zNrNKBdrDP^Tje4z?5}b;SxrcB6$|k|;wKb#S3l*~R-%$pPQ5T1;c3Srj6d)KAy$?0 z-t@{+f2}qo(HUe_iGHgyaKs<-g|N5|nQ^LYWKe2o9Ufy#rKddPD@_XdO9P>#5O|&x z!rFT&6^EclTpyCHEAcS^BLW@dGyzQrlyGS;6Ty>LgL7*3(Z5V16=(fIaGuyb(||jb zZXq~OK@hI+x`kByE#??_n~t|Qk7y^wYzmrG-yD~95f*Za}Gmw#SWp9(AH#hdld%i@$U6Bbwu+=j{uBQ6Z`V4%zKj_QE$1zE4}!K6IZS(tfp{j^lYs9ij{BAHuIb7U>H1x$0AquMUfr>WFBs zj*1@YnCPdz5Chb4ahEzFD%F>wN}UuBsjtO2bxKT8--x;DTQOgq77Nu`u~dC8&YDtO zG)+U8KBJSFW^^@!#w|E6G8oTcX2^KhY+y{rbE?_MSb<@Y*NiYI#9l=|`3$;YC9-i| zl)b(CL>_r0`+N6`N@(Hu9B-1Sq8e=n6cB!Ky<`h7Q?wLWc8>PKv~tic=-${`QW-s{ zn-!u|V~(7Qcepjum?qg{yaCsGQzhT&=Ai=P50bscd+A!^A#H#H9S6KL#QnSsr-ql{ zq+EN;W#tILYi}Biqb@Zu78gb3h^kTp@A8*J3DOvQV&)>(%!^$!hZ8ej?V5RsYv$&OnOnPNUK(36Io)xK z>V(nAypE)Ky)MC04%nj+^O7%;XHLmw?q!`%EDLT#&5rey#s2=eEL=@)Prsc~P@RaB zHR-j+|F{$^mn-bdmmxJJ5s)qbq-#BZ@C5@5$V&IJE+&@M17-EBr!2m-fXl+Q>Mlr4 zNkpoTE+!GF)juzDg=^+o*UT3aYrf4j^RwLCH&=fEWRlPe&T69F0M z3do<`1#DU(AcFvi<$|`Zu<`{E49FT+0dp9#YKus7h$|p#p;%13y8&vIsfmEx3qXd| zLlM52f&qCB%E?4uvm3HQ`Z^SWj`pcUKt=Yoew%Lr?#+dr{>Gp2Vrx($!+x(PS){r1J2^&7csJMB7n7n|ARXS_&CZA zhtgZ0HZfOGlDV2P%vuVWf1*6|&vdo9hT52GsTAKjn(_S*gWB6WZh*lt@x!qIp1x(| zTWOhif%V9aQ&KCGP0aeu7qGV$p-j`cSCSQ@YL?t?H@F?K z8eYSEly#z5YZ^I=VT8!qKv>pR@!}JD!Q3j`$AF-v7Yrudw}JxUB~UX*jE1%Bq()3( zJr35pQxMiV9fb9$ZLQ(;JqISP_As|ly7@9SGG76GUZvLNR?z1)Dl=cF&gM4iWxh#$ z&FxwoSeMd>8p@pjm-$r@L!m;x%_!(~K6Hq!4XroX6#*;ZS5FC$_! z+F;}c8?;_PV~aKzVIWw9XC4d>jK2c4e#y(-#w)3TP8ffKQ>i%dqw^Np zdBp)cZv}twc`D#g=1LVYn())d&vdaNV&oTXGMX~C96ONa+u+nLYG}R#LD>xg?4kbV zUK(k>Pmh=%&^U7+O)@{Espfu~VIGVTr48LB-?51@((&DP9c~%_s8yu$T>$% z(SUZxSUt&>epatesexfX)W1`Bm!i6solc31H82{*yNmqpJj=Yk^v8m_fbEdXPr$}c z0r_W?Wgezn^9bdepVJlQQ7SZ#Ia+d2jA2C%hQU@cD~O%8JyCX1Tg@zX2P8(W7b9LW p3hoS6ZSie1nynXaGsy%D)d*TEh^S{gDVc=rngFnR7jF%@_dnM~zK8$- diff --git a/CompiledServer/production/2006rebotted/redone/game/players/PlayerSave.class b/CompiledServer/production/2006rebotted/redone/game/players/PlayerSave.class index a18a491716a8b6b2b1c80063cebac8f40f620e8d..5ff93bd26f6eab4f726c5a68d414c04c8afa9bc0 100644 GIT binary patch delta 12555 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 delta 12397 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 Z)%$Nc@dtTP-9qdak}fn?R+WVBe*krOC<6ch diff --git a/CompiledServer/production/2006rebotted/redone/game/shops/ShopAssistant.class b/CompiledServer/production/2006rebotted/redone/game/shops/ShopAssistant.class index 0a43f5f31aab5af8154c833e12bd196038f70870..679b4ae803469da11ea7f5f513701461cfdcfb6e 100644 GIT binary patch delta 6609 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 delta 6384 zcma)A33yaRw*LRRz1;3xAnBwDp%c>V31Jls5Mly|LJ%VgvMXe1wgkeEAUZO(B8mb_gP zZ&vihqmS+ZFo^s7ScwBZ6ySY7KEQ{5e1wlR^>07^gHQZ2@xMOleyW>;dg3!bKF1e6 ze2GJv`pSo|@r@7PYL;(tQ1gAKsqZ!QgXa5DH$Q3F!+!jXU;K#vj3avRsBVtQAfX$2 zsr1v(jY|aR_7oo+==}Wj(Cd@N^b9w}b@_RQr^N};LZ7GjvwiyavY&n?>BbW8*+w^Q zO}6tg*^dD@AaQYYijWMLOx4dclR^D#FTpe2%MMy3!(>PO44KT-&n%Oj473|L++?=N zu*uFQyVzsdJKEJ`H$S_xhsmDWlN<@0xh8w*!90__P4+R_*JMAF{q@`clc$&*s2v%k zBRW-6`MMcwa)^Eo)uII^hnXxid77U^EY{;XTooNTpGc~!sj6C1J*ljENrZ5f)Rrvt!nRA@7kNGN>LLqDM%hof zcSmo;W((KgS}!9OXLF91b1lx}e2Z1A_Hu#6h1g_an>4J!c8iO!%Hkim*vndrb!hT( ziN%Y!)Z)dw#LGWgyp+ql{FBAYG-p)HT&}4rbhDgST3o@ayu8}tN^F{A@fxlATG$r< ztS49L?seEiBqu^Yy=Gx;UD?7qvG*4}xmsN28f^CRdW&m$gGF1bz7e*UH(9)yw^&@q z^%m~Iy%wHCBLRDXH`Cm}TP<$nCVQ%z5>>guqUl@_;gGeNO;r;hk8JSI-`tPM}7t63~Bpq_WzYt4vp4_4Vf znWcey(P-fny@dBMX5pW_-(Kn)Xl_T7#RvGHeZQ~EY%h0MY+$3sop_V*X{)t0)s`%3)`qPc4B-&bkUe41xl)s8k*stAqhO$CQ+Kuv>C3EK1 zg)KhI=PW*NKkLu)ykPM~zSQ`Gf2ON(Rl5r2w2ANaF=e&dxNOy&lH6&8k&{~@XjK`h zj?_i;j6EVH&z{t-Q>w45vT|ZgdD+4$Nfg=sdjHQ)nVMqGiPXtDR>-iE6(x;Nru5*1 z0s&sYjey?fLS^93SOwxbp%wlj{nf4dYovdDtNvPagoG`;DI#+tZj$z9yC5|*^cERw z3q#rtaEX*pIM+$9y=aBN?0RgFr>1TdyYkYp5t|(8)v0rMi~W6S&+fNn=_k4&2({I{oNN1OQ-#$b!X1)P zyF(}i9f98&9V*-ft-SZNc;iXfp@smLcBgSfa0BIe5_gZFFWJ3cN(X;h8|fZH5QZ1^lzB*V_hER% zyyUcYLZrWg%f2psws`VQdYBJXQI|*FU zYB9|ghfM5r9HJ~zQ(Tp*aa;g5B~-24h2E=+^jqqe?+WxUaNEfl-ShhO+6mPJ<1q}F z`Y=uj?ZUt&3<{hoP0-bZ{J>zLnlPjZL+zOv9iqSD(h7%Z#=;iH$vd>to$w_u+Kf|v z-+&f9O^X)&hG@-iibjRgaZbw?YuVwgWV2F?Pqv^}R$#TqFQsG9_KD_ z*Q1B9Z9(`1w!jF7Yg9AWuY8ZTtWK6zcZM)#xZ~WiLX-9OH=ON1TM`#ojyAXwX;>kt ze3hii)i_%~BO=dv0vhuLFqX=DyHgS5T z$NDH2;8rffMy`|RM%nW^bBkn;$%}5@4njQ~-=9M5a`tB%UN5^+=S-R$iH`{7LI+-j zNAZ|snckJj@E%2xRB(7aZ&*P=pDwbErv^~%P5^Cx z#x^P?|CBQ1r(|ZYc4(ZFrG*KPT%pNEOaxk^&OYhA(#nLZ#e^$if{+tcG~8^ftg;z8 zpe~Y~z~4|PhguQd!U(*LGw_aN?*9l9zK2qIHO(jq$g4=8@c33v``|64GQ?p~E%kw8 zU~ksnqi4pFJuz=A1uJ7IY%Bkl#sZ^bfibZ_Nh~ln7C0*w7#9ni9djayZ=g~^4d7!u zj!(qGr=spN{1sow(jAgT{7x3}M_I7Lcmuy+KaR=~4!lQ&_vw-%*dt}3iBGAEK?@TP zv282ozix5<>sHRUN8o2X?ku;WUhnu%VtA? z6JT)a%wawU%imNEk$cTh zUdCa(n}yuR(^NW()L0g)MI5ef;|O&xN2=%no~}OUD5ERSF#7RKqnss9Hq4OHs)G~@ zy5R8$68FQ?8W@?TN*%Ctv70KAq+10yb5wx?mIAa!MRWcLl>l0y;y^pzNEL+Bg@8t} zAxJw4SCSXc+V6B7*#0>@uOUH-MpF{W5>;JwB6aQ7v-rOyk`Y_skxbeXe?8OPn-NI7 zoxluzHecJVYu5|(5oE;T<8C=1FU)sk-KH)Nx^7dK8u@OWgRgd*U-|nvnC}j{H#EO@ z_v91b|LNj+8re6))iexkJ}-nG9dXsQfMGE& zYT_pK3%3{sw;IX3!w7Mkk(Q=xJ2#=mK9akdi|p%qWjZC3bE5M; z(H@i7?w42|Kr$ahCL7S7jTj~O>`8nGQ>1?(ccGk*$S!zPF!C`e{vMYb%WgDr4<3>6 zy?n}nFkSg&qd0LhieOrT633cXM5xy~O3XTfC#AsA*A*p|)LU_svPa~Fqx)NcsYK#x zD=Su{u8SRU#5E zgA#^!;cEL(_mBq28f63 zsOW>LquQ-PMkkeJlQsW#@^oc9? z$aQ5E{Cu5N_=iwQ+|P&ut(JOF?w1-++vvP*h6SM#Kp7FzK}u&j4wOFQRJr?TpiDLL z9K3bQw~B21Q^q{#X{5`oNF#Y1M$?X=9H#!J6938fi_Erdk~EO^aX!HGA?>~WGt-VU i$ZhN0#8;><`=6J&RM(AkZqCkk4n8Bj_hd}rU;hXG)6HxE diff --git a/CompiledServer/production/2006rebotted/redone/game/shops/ShopHandler.class b/CompiledServer/production/2006rebotted/redone/game/shops/ShopHandler.class index 4e3fc0ef3793f684d745f88679537b7a5e59b282..17eaf66e0e40bcdef75a5582af8032f1128c7d71 100644 GIT binary patch delta 1953 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

    ?A91*TdiMmbc49LbS!J zXe(qG+|BS%pHKy!#8V;uE117DcN+7z&%~w%hg7yvNZ|$nj`0P@nZgPF0Gwo6$B~ND z=)wQ1M8|G?+QY9&u9rHbwOyYUx?bj<=2e&T5pk68P_op~zzR5@BR;o>*X74v8rLZ` r%T*0u6pFc!m7Ukm*tX= diff --git a/CompiledServer/production/2006rebotted/redone/net/packets/impl/BankAll.class b/CompiledServer/production/2006rebotted/redone/net/packets/impl/BankAll.class index b850d74d525d74560d28fbc276c230720289de2b..9991765273fa552492334b7ec5893be5d6115ba3 100644 GIT binary patch delta 275 zcmWN?Jt)Kh9LM3$_m{eo+YDYVTwX(>$V(@oD^gxUDROl=Z$;jhJN`tcGq^!9+`_UpApHyZh%iBFpOrG*r&q-j$Q?Q&($r9*Cf%BNE$bg7hX)zG6}{2HN8)7gU# z0}3&y2*Yw1Rg^Ks8P_Efx@S@^Oesk~KLnK`q%^b2FlS!ot&Rn2X32ako1aDNXT^qC svsKnD%!b9-vN#dDVB4PAu~!^>XWx<>*cZF@P1Ia}#4N+{$&CBqA6@u9H2?qr delta 275 zcmWN?O(??w9LM3$_m^79Zpz!*@)|8s{p zq;TQn;^N40%Ef^!mtAMir-T@##3^Hoa`vg<2rsAjIHQVls=1YgdRFs(Ep{V=NxVP%OZ$GlatV15>@m1PUCVgoGM5UUm> sYEjlK&bl2Evm|l5AYspJ*ejd%&bFo5u`e9^X4hPQ99WLyld${YA2{GW@c;k- diff --git a/CompiledServer/production/2006rebotted/redone/net/packets/impl/BankX1.class b/CompiledServer/production/2006rebotted/redone/net/packets/impl/BankX1.class index 4a6c5450cddf78b8e12b1aaf5c9fa8a3f53b700c..33fd9864fb7899a4d43c9c24876c87d98796b5ad 100644 GIT binary patch delta 33 ocmdnUy^(u^1FNVMLpXyhLmYz~Lo$OrLk@!iLluMaN>_V;zGV;{*oJ$>y91061z2Jpcdz delta 65 zcmbO(JY9GL6Q`*zBMXBbBRhj3BOikiqcVdDqbY+KqXmN{qdkKaV+eyiV;X}4VN>dV;zG#;{*n;$>y9106H8BO8@`> diff --git a/CompiledServer/production/2006rebotted/redone/net/packets/impl/RemoveItem.class b/CompiledServer/production/2006rebotted/redone/net/packets/impl/RemoveItem.class index 5d11a51b9236ebb36190ad94e9bf1da6c3144407..4c899ba8a44e8b4b5dcefac9174a22fc0adc2e56 100644 GIT binary patch delta 363 zcmYk2y)Q#y6vlt&y1m>~Ra>_m5VKqo^%*9KibhB+G$B4pBoc!eLzAu~O>;wt$>Oe} za$_)9x=8p#7z`G%aMD&H@9=w`_kGUEId3IZPTd|Fa#B4q;+FkIh*pqS@2oAiSOQ{T zZtBgxa;wQgliN-1G-zFDz6R~z>U$xQS7xB&LmBnb_C#V0dVVx@zLKxX+z?PvVkDBh=+{{r7AJbmo03|GeW@g$R(Gt|Z5d;lwE_G6a_=e|wzwdnyALk-girpO=a&~`Yg#A_nADtj??qyeIxd?>7 z%f>N%l?%}GsSLSEYbuh1fp1M+Cmg?7C*bkn9$SN{ z$3%^w<9B>D!XA}Gg~%0lE7a$4^Y?7l=*@b#|GeW-R2%(myYJT5$vU&L!JO Date: Sat, 23 Nov 2019 11:17:40 +1300 Subject: [PATCH 20/55] Take players appearance --- .../src/redone/game/bots/BotHandler.java | 6 ++++++ .../redone/game/bots/BotHandler.class | Bin 4632 -> 4754 bytes 2 files changed, 6 insertions(+) diff --git a/2006Redone Server/src/redone/game/bots/BotHandler.java b/2006Redone Server/src/redone/game/bots/BotHandler.java index da768672..2100d376 100644 --- a/2006Redone Server/src/redone/game/bots/BotHandler.java +++ b/2006Redone Server/src/redone/game/bots/BotHandler.java @@ -48,6 +48,12 @@ public class BotHandler client.getPlayerAssistant().levelUp(i); i++; } + // Take the appearance of the player + i = 0; + for (int id : player.playerAppearance) { + client.playerAppearance[i] = id; + i++; + } // Dress the bot the same as the player i = 0; for (int item_id : player.playerEquipment) { diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/BotHandler.class b/CompiledServer/production/2006rebotted/redone/game/bots/BotHandler.class index 603edc6d79c7a6b580ee99a16ecac99b7606234c..2ebea5bef377bbc72d6a18264d2bb6a61c68829e 100644 GIT binary patch delta 2244 zcmbtVX;@Tc6n^jAJ6`6_#}dLrvMRU~%zz?-i6LrkxsbGJS~)6;r9w#Nf{hjJyHlo> zXSZARZ zo;9&P#$xHLx&RwYY&6l(;L?Jc?wBz(u-!4xtTEAOVpG7WFExTDngT2JCiegoo7k+d z1tSAKBfi5{g>85)P-FD;Z&%oX=QYGtl})XfU6wQ5H>)gXaz*u=oIw@U3IniH;Vkqs z@q)sOcu8Rrdr?r@s5di z751T6;XQ0pc)zpQ5AdPFN7%3Mv6xRJ_NkZyEM%xNz4SADuJ8p$C>%ty!k0M2$`roB z*9za@TN6Qr?{HY*dyEu>WePvwM}?on{4B9wr>Ym^t+52Rj&v!Sq#V0nWh?j$FbUBLf4`?jmhaV2nF$oUF=&lh%vj z7{RZ2=VGM2(~D8`9CmCpJ)IJZ!WfjmzzT-5mmF%~;C2m6Kz<0TMa}ub z=k4Hf>D!RZ%}}E@!nFn6G>rCaL3a(ykwd3P;Lpe;e@0diXDo-)yT0zkUQP0Zs7<#! zHH?Q0M;B7&VcTf}E&aa9QJzIJd^*-5aY$?Rnh zcG1J+d4!aY3A`>7ZK$1DnuqBGs?L>(HdN7XA*Qi3*Z>vuR=9}H(?T#VOh0n z6*f2#Rs^(GSX2^0TzLwF-$wDDAUyvDF^xw~Cx~)%WQzX_VkTx0uAes<>%t)NYBf#B z812~&r%|sLrEG+EHBxzHvs1E@Rw2ruo0F2g89nQH!Rt;OH0rs(y~bv8G>g^Friv<% zfJ&<9DmJQux~gsi9fNeP;3Gr++1XIP#0!xa!3{#4!|q`Wj8+lZ#8zlpQVUsd@wk(H z3^JkIjodK!P$%_#Bi^vlCwqxL-Vpe1x;gPia!IX0?9IZjzdiPOJZe6%FF+&~@^Ps_ z1{U$DSjfN0#Wr?%K4VysU>9ZQwn5Kr>wj*z{}H@Rr}}Rf5os6U&=RGH2y#k delta 2206 zcmbtVX;@WN6kYed`?$ROj(`*&f((j+3h#j;l0!0R=8!;YgJ@Xd6ElWtd`|9Vtf*OO3YdV>rBL9aWI~i zalHgLi1&=7f7XTP@VuB8OuUGVvbsq!Za{4eVyADFJ~U{T!fx#G?a`yWS$JDvBt{w7 ztMCr?Da^qw3OC_qW>a_<`xV|3^S+n~xLV-=+6=TSe1K^R2XV;2VTB`@tMDO?8u&=z zV`M9Qf<}c;#T>(D3ZLV+!WUw`l-O5j)DT(jD|Ez7{~F&Ye2Ym6C-9xZ_xOSA6i(ul z!jJgLK$F7H_(kC~rU<@bgnsa7N)Q7WfW2MkZ$AxQ6KRqS~Ug z>eAvRRb@5H(q@QLI=!f(q;jFcl^ENU6cl1_n&@1i&Cg`30XFmzJ)mK}zsbBcP5^B3JxO*_8nY ztp^h^iKBRvF~$1QgKOy7tk_g~cElqDdB}&30!Ho7!g=hqm?p;p+8!y; zAxe)3O3gIf&4`JOFbX)v#_9!icC9W*tM5D^pzRjuIf(R~QPaHp$@~CD;4rxhv`M@& zA>==uo(;utV+LWc9tg*Emd9MU9yf5W1MNhTPb4YWgc}*NkN-x7Q~15^P_)qGZHxXFd^*dX#lq*XtmCPL=$gzr zrBm5ksgll}@m5joUV+pjXO1PiW>q>A_J0s!pvb^&!_E`Euqh6(*}}QbPsellnktgIG~FyDNiGG6`%H@e2Na zW0hM58d+d<3K9$q#4;l^ybl%;)Y_r1x^|-7+MERwi-c{{RfEN z777885&+>l8ye~TzbVVHAi#TDfOkfnrU~^tcRL(ayHTemZglXRnenU7!q(hHL>&Sj2^`@ z0*VE5zvyJM3Kj;vL%M8M2Q;nkd8+8dLU_BY=I0@DYtjSgy9#H|)FX5Yehhoc6QK)! z7v0ndJ*J>eC-zepOWJiqs(4a0q1T`n|LA>Civd{5cVh{LVYvle9>p*cB6P3S1?fH5 z(|f9&9;kLOFVw|qTP%86ENoh|un49e-Ou)LO9_B4$ Date: Sat, 23 Nov 2019 11:39:03 +1300 Subject: [PATCH 21/55] fixup ordering of shop items --- .idea/workspace.xml | 36 +++--------------- .../src/redone/game/bots/Bot.java | 3 +- .../src/redone/game/bots/BotHandler.java | 4 +- .../src/redone/game/items/ItemAssistant.java | 2 + .../src/redone/game/shops/ShopHandler.java | 14 +++---- .../2006rebotted/redone/game/bots/Bot.class | Bin 3615 -> 3616 bytes .../redone/game/bots/BotHandler.class | Bin 4754 -> 4754 bytes .../redone/game/items/ItemAssistant.class | Bin 48671 -> 48736 bytes .../redone/game/shops/ShopHandler.class | Bin 5979 -> 6165 bytes 9 files changed, 18 insertions(+), 41 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 782dda75..284f2eb1 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -8,33 +8,12 @@ + - - + - - - - - - - - - - - - - - - - - - - - - - +

    _b(xKcn@mWZzB9)ua^=X87kait`xS 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 diff --git a/CompiledServer/production/2006rebotted/redone/game/shops/ShopAssistant.class b/CompiledServer/production/2006rebotted/redone/game/shops/ShopAssistant.class index 54ce2566aae69860a64c1e6c115fb5679c1be8d9..d959acde85823737d7e31c44c1409272f766e0a5 100644 GIT binary patch delta 3367 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 delta 3250 zcmYjSX<$^<75={WCiCt*9)TnT0wH98L?DnrSW8$%ts7dFDw~vs5J3q=hT_ug~v_nmXky|bp|`>B=h zo_TFIfWG|D#Ugwa!65wI#Xs;*7yrV)75&G>*Er(J!Z#5aeyip?UHIO`5BM>Hqxi3) zpCUMh|3z?IU5?{B^*f>H|B6nkU%i@B8hhHs8Ju-dd4`ZlQjH~(wAF+hCh0e<#*qM; z@USC&f}hI>-H4cG;o(N4%P%~VQ<4eQW5qw>}S|t`3I=aFBA<_aYbqdDa~Lt zLp0f;x;jjaP+q76BMdJxyx8y(o&BZZrG}S9DtS4t(1|ORd}M@I@oK|g8IE!}nqv&d z$`SL|hS#XmwT9yi$E%zPI-Y1a$?!VE$*Sl#s$+_rEq|*X#fDQ2OAM#EEamkMrxW3u z%8KWeRuJt+R+LUFpIurr&$^k;bSay|8UBy04C8po;~XsYcnjw`yw&48?05J(kGJu5k9Y7+hm{`Z zbAiLVJT6qvyEWz>Mfa+?kN10A#KjID@VEr4g=eX5{UEA5KBSAwboek<6D<=7^t`Bi zb}U{zJ0A1+h%WjfnUA8{p~Nib3XhNJ)+P$< zKibYt@~{Wn{CcNdbeHa(9xW-3#mh>gbBilt(fAD|GfU&K0uR3zr+%hi_f4oGT1+UP zBYv~H#G|p&va+bd8$532dV<36yk`FbU-YX?sr?d``lrp+y|!SR$CtUrV-5Cu+)5eN zioqxN)WaG*w?kUoSGe877kt&fEz-w+jXV4;k({e`;#0ZDN*XIKn-(RKqSu#K2<KjwA|*Lgh1 zLp3?gCOiI;)JH}yl9wV0soI2s+F}Wof_PA{g@AGJfQ|v5$5TVd9%2G0U++ z>|=g;TIRr&GM5ZnYz9IS6%o%>GHNZm0xllM6Y^E`r0~iy;3=#QqW7mw=SshOt1h|c z{I6~DzZOpi{L~W&{O7j1u2R|BAuKjub}W!=ddl2kFgsAZi?Aw3CK8E-n}miNh^Tj0 zh1T4XKAw_UUF+DTnpt0oO+ilJW@8$*1t^4Kyn}V3QEJBljoS%Ij zwaIL=fr21r<4LIi_0|P-+0mv<*t%wPpQ&t@!4W&DaX&%NH`HMgUJ#@?PQr_LNqB9H z#}>RS=N85_s1X!Kn(VMukbx>lM(8wJ+V*fMTejUHVBHq5?#^gisP$1Lz`Ul)Ln0f` z+@Ln#CSGYMjcNO4P?~ln6B|ndZfgt>v^@xD&h;Wp#ip?uuL`o!hEL%&>=3akECuEa z3MtjtnVUDLs3^aa=#Xb3(6%J=OR31L_7`QH>#Vv)64YULK=Q1ApncoX^2BJ2Y&lrI zTAfhlID4~v&p-bIGO9Z-$57L5p@!Y4?@+)#Agfr|S7vqTdyainlmDnjc43IX8BEKz zEK36A{nYT9pR#N%(TNUY&r^T2DgJ0z>Oa;faXMjAnH21U}jw**-jWgW)bLEC8k z`=iwvG;{C{Irs#UP9c|ivAUl0zwO*Sb7xN9dfbtlFZZk-BTmTWBHqP&fzx zgMy4z$P4tPM#Q=uf5wO6=Sof!nsS=Z&|NzBkwjRXg5{3|+IZS}6@L(vXs@f0aR$vL zJ%4bw&iOmZHmRpDL{iL=hO5WOdQ3bkS31eT2FgzgLjAkY1pOu5K9r-Fk~j7eJ&K`n z0NEJUaOX=gu>nC2yz!pwZ4@SRszzU;J@{jy*#7anXxe9q;>iR4wJ2;Mx;OfH-LK;0 znp?YfvpC7G&cCK|9eU+$g;fiC2YOF<1$|O0Ytb*O76Vdm6wo$VOzM0wwHR27qHzi5 zq)hQB8lJq`OejCI?4YvJ$9&uev` z4AMhNIVM509ryctayujkSIX8Wl?AxcKUQ$M@}N~d$*cGPzL2>vy4VZxS3yqjK#f7hSxkkI4)G87D#$67#_7?y9y87&E11>3k)O1P Y!IuqxaeWFWq&GdPqMkS`>lXg@GiE=@GXMYp diff --git a/CompiledServer/production/2006rebotted/redone/net/packets/impl/Commands.class b/CompiledServer/production/2006rebotted/redone/net/packets/impl/Commands.class index 187e52b0787352e6dd4b87e638a5386dc9451457..40488a458b1bd9eb9d7e1b69f0831a3e226f79bc 100644 GIT binary patch literal 22021 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 M@UVoJ@`MiU^6}+{ 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 From 5a520fa31659a25c269e13cc800fe568f2414e2e Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sat, 23 Nov 2019 13:29:17 +1300 Subject: [PATCH 24/55] Add close shop command --- .../src/redone/game/bots/BotHandler.java | 7 +++++++ .../src/redone/game/players/Client.java | 3 ++- .../src/redone/net/ConnectionHandler.java | 3 +-- .../src/redone/net/packets/impl/Commands.java | 7 ++++++- .../redone/net/packets/impl/IdleLogout.java | 1 - .../redone/game/bots/BotHandler.class | Bin 5643 -> 5991 bytes .../redone/game/players/Client$1.class | Bin 1066 -> 1066 bytes .../redone/game/players/Client$2.class | Bin 1103 -> 1103 bytes .../redone/game/players/Client$3.class | Bin 1441 -> 1441 bytes .../redone/game/players/Client$4.class | Bin 1423 -> 1423 bytes .../redone/game/players/Client.class | Bin 42186 -> 42198 bytes .../redone/net/ConnectionHandler.class | Bin 2832 -> 2803 bytes .../redone/net/packets/impl/Commands.class | Bin 22021 -> 22231 bytes .../redone/net/packets/impl/IdleLogout.class | Bin 739 -> 739 bytes 14 files changed, 16 insertions(+), 5 deletions(-) diff --git a/2006Redone Server/src/redone/game/bots/BotHandler.java b/2006Redone Server/src/redone/game/bots/BotHandler.java index 2986d10e..1940a2d1 100644 --- a/2006Redone Server/src/redone/game/bots/BotHandler.java +++ b/2006Redone Server/src/redone/game/bots/BotHandler.java @@ -102,6 +102,13 @@ public class BotHandler return null; } + public static void closeShop(Client player){ + Client shop = getPlayerShop(player); + if (shop == null) return; + shop.disconnected = true; + shop.logout(true); + } + public static void addCoins(int shop_id, int amount){ Client shop = getPlayerShop(shop_id); if (shop == null) return; diff --git a/2006Redone Server/src/redone/game/players/Client.java b/2006Redone Server/src/redone/game/players/Client.java index 728af9de..c3488bec 100644 --- a/2006Redone Server/src/redone/game/players/Client.java +++ b/2006Redone Server/src/redone/game/players/Client.java @@ -820,7 +820,8 @@ public class Client extends Player { getSummon().pickUpClean(this, summonId); } if (forceLogout || System.currentTimeMillis() - logoutDelay > 2500) { - outStream.createFrame(109); + if (!isBot) + outStream.createFrame(109); properLogout = true; } else { getActionSender().sendMessage("You must wait a few seconds from being out of combat to logout."); diff --git a/2006Redone Server/src/redone/net/ConnectionHandler.java b/2006Redone Server/src/redone/net/ConnectionHandler.java index 9b136a87..e8c39957 100644 --- a/2006Redone Server/src/redone/net/ConnectionHandler.java +++ b/2006Redone Server/src/redone/net/ConnectionHandler.java @@ -34,8 +34,7 @@ public class ConnectionHandler implements IoHandler { public void sessionClosed(IoSession arg0) throws Exception { if (arg0.getAttachment() != null) { Client plr = (Client) arg0.getAttachment(); - if (!plr.isBot) - plr.disconnected = true; + plr.disconnected = true; } HostList.getHostList().remove(arg0); } diff --git a/2006Redone Server/src/redone/net/packets/impl/Commands.java b/2006Redone Server/src/redone/net/packets/impl/Commands.java index 516701ba..b9a2071b 100644 --- a/2006Redone Server/src/redone/net/packets/impl/Commands.java +++ b/2006Redone Server/src/redone/net/packets/impl/Commands.java @@ -96,9 +96,14 @@ public class Commands implements PacketType { case "shop": BotHandler.playerShop(player); break; + case "withdrawshop": case "wshop": BotHandler.takeCoins(player); break; + case "closeshop": + case "cshop": + BotHandler.closeShop(player); + break; case "wealth": int totalWealth = player.getPlayerAssistant().totalGold(); player.getActionSender().sendMessage("You currently have " + totalWealth + "gp."); @@ -137,7 +142,7 @@ public class Commands implements PacketType { player.getPlayerAssistant().closeAllWindows(); break; case "commands": - player.getActionSender().sendMessage("::players, ::highscores, ::loc, ::stuck, ::randomtoggle, ::debug, ::togglegfx, ::shop, ::wshop"); + player.getActionSender().sendMessage("::players, ::highscores, ::loc, ::stuck, ::randomtoggle, ::debug, ::togglegfx, ::shop, ::withdrawshop, ::closeshop"); break; case "loc": player.getActionSender().sendMessage(player.absX + "," + player.absY); diff --git a/2006Redone Server/src/redone/net/packets/impl/IdleLogout.java b/2006Redone Server/src/redone/net/packets/impl/IdleLogout.java index fbd0a118..73767b42 100644 --- a/2006Redone Server/src/redone/net/packets/impl/IdleLogout.java +++ b/2006Redone Server/src/redone/net/packets/impl/IdleLogout.java @@ -15,7 +15,6 @@ public class IdleLogout implements PacketType { return; } else { player.logout(); - //Misc.println(player.playerName + " is idle, kicked."); } } } diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/BotHandler.class b/CompiledServer/production/2006rebotted/redone/game/bots/BotHandler.class index 463b335c1ddc215a72792bfe1aaa91a26b891c54..120a8e5e59ce7bc9255e905910550561125856a8 100644 GIT binary patch delta 3030 zcmbVOd3;pW75?tLm%N#mn`AO31hcUTgvm@2hJYZD%2GuIqJpO2iew0A$S8@RsC}S_ zRd4JCpLq7p0+9fGK}F4)?-gWW_bYH6#s+R~~tl78pSFyr!%KYzdc&OP_MbMN`i zch0$!RiOjb&P#`%cp5;R8f0TKR{C%quD9?LA8x=ZFK)DP6MkypXErR{>_Z>il7rQV z+th9qahr|XafgUIMXV9qUE+MVjkV|y+dVecVZD#qy%z41^?nf#hVqOSig?Jv z!#2vX(u+rA-6Y0N(KbumM|1FVY!R{5#x``x*T+OWE`bu_vRy>Cz}_KPo{$eaZ9Ivm zL_96x7h-$Hi(lG!b_$;J;(4*YAYzw@7e)NaNBqB*yI&IV8ymmH%NAa-@T!e^yk_Bb z8xw@EK6t~zn_Xd5;xTty*b_g+SZlsz;dk*5jp_p5+?H5dbjJMH#R_H{mw2&R5g%u+ z9@2nQE&N{N516XpUleVMwMJ_u#ai3i=d`xBS@@&IpYV44pjqqe)p!T{6be&b&2tt; zYc7bjx7AFHwQDrs&l*3(2^QYf*pK%#S`pJ|!9okWHQvVu8h;USK*X77)c7m@X5sG| zA7YNiNBG#nKQ#V{t292r9);4c1&a6eViai?t67g>w)cB8R{}u5WlYTX8;JnZA zg~lPw()b^GG`_@PvY^qcpp{Y{3vX#>}XY@RVgmhs!T+=hzbeNkJway z?6K4Utp;LQ{JHGWMgtDU4`=r?PQuAu{jCmTxNcg|HaFJV8lBr7ZBkIP6|!4m&9O_{ zS+L64!_MS>QFLK!aa0PpU}>~#r@cWrlQ}d7`U>q(IFUOKrf|=DsrSVxm`eLJ*FGJ2 z)LC!J(`c#Ts<>taw?l1pT~4RWc8z(ML0u;uFcW8R=aZt*B8S(~FAMQ~dSr_nD&ZFF zK`)BoXWRfv(GO(^a%SYBIywVk{0OtSiZ&b7bmxVAhUx35NcRzoQAsMwI zqYh>Q98{q=?)6s=%{0RFuQWn&3ZyNQ?fN$Q8{KLQWI*6_R$~ThG7}*-OoZ)H&xV=6 zT2CewLR64djUXQvGcl8%{ZmAN{hK0y{z9X2tDg_!OXOL&#KNM;A#x$1+axqEyPta# z@o>Q;7efVU22Yidz@coH5bvoY!J~Nd7{-(M{n<|;ULx@gdX~8HrTfOBofOM?X?vpw zK86fQNFOduHXpz2bwkoC*o~a2RWHKaT4g>Cr?SdSVAwYJc3=?aEwls2D6B!4%3y_O zU`-G2LRmP0f?X(*rRqWC(mlKbK@S=?_P(|arhB|fu?0gijt2PzJ2;2(A~M@T+zZKF zD+~yw+5X|HPX&^ zrCdh3E>%bDqsFK1E0Y{jX6nag(uuGEfMrCxoGp4a24V#p>RL9=N;cAUr2Kj|^bLGU zSFx>cB)85@UrDz)MfOm>97(bp_#$4x#FOdfz%1qjv%fAZX2w^Nt7JbfX2!x}q3}ID zEPS(7s!NG(bOs%(MxUF>;VtBPHQ$vuoFlWv!)dY$-N%J50&POOhez^VM8>yh|M7PL zG3J{fZs(165X7AhQLJ$(kOBX`ARKa@Wa7~j6Ll+;I?{YuMyF9N>PT?gN%d-z1JV^P<$sQ0p%>-Z8qkOu8% znU|9#Y52M{hw^?%!+Pm2wMnHH h!M76=W^KpBE=&@n%6*`0l2QPI&|DNpMg9l5_WvWfQFwh5>ZMrQ9k?!X&LMGfmULr4%XPOTWl}eGm74GXB_<5^YlFPoO`}=&-b18yyyMy>@L147;gV( z^Hu<*D$T}7Ec9X#F12u(7mc{wgT*$kz!D2fZCJR{i-T~L4_D(Fo8Glzmf5%t*NeG9 zOhjVKCHY1hH{oW9t+25YtGx7Xv9Ma6O=519@NHpn*NC}Y%vuZUY~)~}2Y1NxP6^&6 z-rZ979v|+-ePZsnu^tb|+XtoOLsIBr8_n1trbWy~iEZ*AYNHix9y}t!&0@BQc~s0} zC0@eZD(5^d<_Q~5;wcMHTX@FCVR+WUb2f$vF9%_ph38vFsZ5vof`#@-m9g6UqJ@_f zdgfO|Uh(uSwCZNno-=iJm4atlRaIH-?3y|ScYZ}h!6^z!)8^LBtEpEoB`Y%3T;69i zjp;joCO$VptHz=;|=@u7u}G(N^;jZd)4!lxRaVZO%a zY^2Sdm;D9WHFk^n5?^V2E#5a`zGcEM?%tK(;d_lAFka(F?9uoMKeKg>U+}BOZ}{E9 ziyD96PmR4O7eqB0f1$&|-x~j*Q!6N?m5Yd!q0GodNduDHS|uqfvMK4{0*~@)W#e3} zd}6eiWS*l^2tlQy-BNz7y5WL|vW6I=@l|A))zdf{$Fxkbnv9lW-#Qf@NfjIDF3dpT zD6U*68BmTNC}^cPj{dds@X}Yq)l>y$vB?AjwN6$#&P8p zUKx?itC{CUWL)yVIkG8}OCTK{D#nitq%qPHSqLE8IjEG$KoL&Dcs|8D*+C}WDfC=U zYyv%l`%-W!Cc?yNj2cjBtUL*mrE<%jUHjn4_=IevG=Me5Zl(rA@QNYRp z4Cm=1+28+UCdr#r~%NAy1@ zpSy94GBAp>Di0IUu_~Q`EYc}F&45h+nK+&8xd_ASG+?lBE~c<4i)9YLRL9#6AI=bu z$EC&JLS7X%HXc)>@`5Sok`C{06S6TP$Ptl$LV$l@-0+%vRRAI*iTuQp*T;z zQ=J@y+4TlgW2*D|5A^ABbGzI_*#Pg7P#js{&+pqMgv$MdkP!!I%jI)&pZ8C2rqP=P zL3y|-kY1c}kT64>@d!@$NY3(T&Qgd9aH=7s;%qi%GBYnu6sXiV0n8T~l{5WR7=I(h z!W;{8Lwm`El&+D|JZv4;CL*_XD|0a9l4g+5Y!cm<6bE@?DeDYEHD^4-sh>wZ1$l_n zH<+2})ED&)r8>&_6pA&B4tQBIC?&l(2j|91)^eA@jEu}Sh$tVg}BAJVDK@`Czq|hx&D~_UMLUW)EzA=RYurQIlDxT5L$w{sxRh|%LZ~gKg^HL`5f{E{8C&<{a!@6FW#@+nepNF<)xA) z74y1tyIg!}*9S9$q9*0l8SJz=aG8`QH(|-Pc0Z|$Q;pi_m@x?sy3W8Wd5KI3z zhy|oHCiVy8Oq4b%wNHF*W4$pVX9EU?*CIE#5rcAyv(_NRq&qmLxD7+rHyY~h&QFZ> z>^LUN*hRgXt7|B-Yx&h$#-U!vpcR@TYan4K6oCrh%J0RW8;2O$6e diff --git a/CompiledServer/production/2006rebotted/redone/game/players/Client$3.class b/CompiledServer/production/2006rebotted/redone/game/players/Client$3.class index 47973e79b1478a3643cb4dc7dde11a76b925e1f4..697406facf702ef658844808805ad535040ca611 100644 GIT binary patch delta 89 zcmZ3;y^wo@01K-qgCwiiWKot~rViC#7{;I7=lRP)WD*IfFm4i8q)6PwjHZr`kk(C+BAPgYs>YEjafBr5Pe>$b zP0Mtqtr5{U+fLO{Mjb)%q1Dl8P@1A0EmFGmyZJYtq}`o9KXQP* z!-4i5Q|tqMU~9dxG~Vorcjlka|D+}?s;VEf1%d~dxfO}4Uoe5u?f0Up81?+O)^ur_ z2H?J#W?XO5OvZmbXb-q{7drSy*A$IQVh@wdo@NYtn^g8SbJ))wbou5W5|PBoc881H z>h_R5?6`|K)0V?d8;BmZPR@TVR&y6#ap79I0L&K&bkg2H8*Ac;Ki01T)xOLTLTDn6S zh~X?Ga5nmLu5*=%bS}VpE=Dnz;3F=@E-phQvvGpUafK^zoh$JNa}2o3gmATq<{Hz7 zYt3Nhn$cWm(wOIVl5ZBVz^vkXepcRwrkk9x%?M#3BDuvG*os&dp@U=bEcM&v&oPyJy9BhBuL_X}<*yAsW~&&l?q3lBQ8hcJkTk<2eJo?l@q zzeXmHU=hE;3LZrPkGTyT$98^;a-PP1eupDGgOfaqbF4x&FQA4OO(-v!=Xlw);1v_Y ztELlwF!8)*`tv67{O zdEeCVPxHXdtK~x*%ttnqk8Kp6*tUFXI|#O$XnRX`kUaac>e!JAuwxZyCn?CLD%ifE z`Zi0UcDcfBt{T`4im=6swAml3q5Vva>|RCL1B$js)Wn`vGkZzR?KQQq)oN+)sg=9n zt?d)FVH?G;y6)ThnyPt9)l$vSDy1n;Gqq6}D$y)|N@0#S4|TQBzg@Vudlsw~BS=foP)pHV z%g|ccXshMutap*173imx7_1y5Yc(clEv6{fzqsXOr+i2S2-F7D(?&$dM-y#w>dlB# zp;H!Nptd1NB^atw|J2sv*xd+LIl{FEja7k`+KYDj9354Ot~%fp`_M!C(N_okyrKo( zaRlguU#B?5JMW?@e^T+8PCvSO*PPp55Ta^V^M+I3#AMyZ4BbJde#6_U!Akv(^?Kls z-FCjsL#KU&NIiD$YSCW*AYM;gji(stzMF}j!5lBtA6}9f7LHJ_0UCM{XzWFzvls85 zFUbq*=4f|E6C6!+G{w6mk!U%a9=?~ze8CUllhEimc@8)I=--? JtgK_5e*x-qRg?e# delta 1320 zcmZ{kdsN707{{OI{eFKa%1Xt;&|Jcz7BPz2Svt)w$(kaUm`Q0Qc8KJfq>K5vm6&a8 z=giq?5#cyyGp8|=ZP+=(=1k@~W^-HE%m4f5eV_O9zTe;T{hsqX&&fLTZJpVknd2XA zt|G?VM54LP_f4ad40W=q=jR;e|6HZcI^pfHTqur+POk2^bg-(QJFhUbeVT~;rDN3Y znx+#U?*db6*H5K~d!(>DDIWcG7zSu6A~hXRW{6k&SR0>!eSLHQ7;r|TP)Q`6ly${=?E0rh{ZY$ zB{~bGT7VT#;s%J3V404YHm=%`OCQH|H9uP0vSzPQ^vd#UEONOS%%5wGvmf3fFWW{?zYr zLx09iy^dRY+rDeWUE_&+rX}v1Hh5sV;-Tq@N2U*r8AzB|(!5H?B(jM~VN)}P&CCRP zm<)QETzZ=Y^f5*BH7nT4RM5}le?))t83W7?wl=j4GzZz%9OX0SCw4IB*wHkwlex(t z`>Q`|9kF^u6zW*Ha@Zep_yU%20E!ujN=D&h z4nh@UP{Ua4=MWrXTq=$;9;f&+&hs@~;_JAb1b_Ef-0EMYoVGLw~@;%2Q`;$%y6&UEjr+0l2l80Lxx=STqO zN=N2NXU>zZoG-n&Kq9zM262(ZbFn0_KvG#KX#11u9u;#bWg6U=)O%nxm|o&C4u}xf>=fP6_93tEiFw+$B-0 zb<4|VIESPuzj1vlhC9b?Rqtk091A&P`<=CJe-|%auss{B`l5{EWtqe)lFh3!o7ZG9 zuS+riaVM^??{e2_?}n2|AJ`rbC6SM0v>iTE9dCD3Wwwuxv~+wWz-c9c zj-T{$Lftc!B|hPn_OZ0Dr4g1US{mu@+R#nMJ{bmoZwPiW#Bnn1kQk!Vp0K=)!OjfJ OWGL>8#Q|oWNO5NOir#`C62#qGQHn*5lL^9hdl9@5W6Z71*xx-zPdp7r3 zuz5hA%|jA4i!2FNGBuT4T{C%P^Oz?#NuHW4+dQM+<~b>w6<%br#zG*%OOsbNtE^>O zyxTSQVsbUHl1eQl)|M6(YJM|Pw(LpQixr9n@x>>z@RG4fcD*tynag5X)VeG@?3J6Gsv zF^!w)@pY#)hoGE59e%=Mdc9C?aA0E+4~dL8T~33hJTrvTKl~=a?-sNkK`>B_I~w)6 zjpXQm0@4DhrI#p>-EIN8L8*X4^l1T-_eN%IOf;UuqxebCUHrh9?(%-7{3~Ys3qI|e z;TRsKOxCR;woSyP+vU1CghXe7Mo1F0VvmL`D30b8=XL6$qM?Tie3qq)E^K!D`ae)1 zge=AEC#vGXzy@}X3WM1^p|s?>_IF{4k+t$pqJpM93A;!I3e6=Hym)E@J2)JX|Iqbh zQm$Bg;>&j~z8T9w?8jsvFE{NZ7FzfU_v({-?U(dYnF9rx33<0#W=DL3%Ic9ERR+?n zS`n<-A~?52Xf8`_mbx5agCc`UhuIJThUHm~(pwa&Zy_p}f|_Sh+WVNqJskfFNS|zp delta 1174 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 From a1ff2458f1cc1fec9b8bb12cf263e447b70d4af6 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sat, 23 Nov 2019 13:48:46 +1300 Subject: [PATCH 25/55] update close shop method --- .../src/redone/game/bots/BotHandler.java | 9 ++++++++- .../redone/game/bots/BotHandler.class | Bin 5991 -> 6086 bytes 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/2006Redone Server/src/redone/game/bots/BotHandler.java b/2006Redone Server/src/redone/game/bots/BotHandler.java index 1940a2d1..8b465d71 100644 --- a/2006Redone Server/src/redone/game/bots/BotHandler.java +++ b/2006Redone Server/src/redone/game/bots/BotHandler.java @@ -102,11 +102,18 @@ public class BotHandler return null; } - public static void closeShop(Client player){ + public static void closeShop(Client player) { Client shop = getPlayerShop(player); if (shop == null) return; shop.disconnected = true; shop.logout(true); + for (int index = 0; index < botList.size(); index++){ + if (botList.get(index).getBotClient().properName.equalsIgnoreCase(player.properName)) { + botList.remove(index); + return; + } + index++; + } } public static void addCoins(int shop_id, int amount){ diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/BotHandler.class b/CompiledServer/production/2006rebotted/redone/game/bots/BotHandler.class index 120a8e5e59ce7bc9255e905910550561125856a8..f20611e84f61c5350156108e3ab2723346f50d2f 100644 GIT binary patch delta 2802 zcmb7FX?Rps5lt;q9}?&07WD2(L_WcjUgb4+AeX$ zy+s8<5qFJf2y}wDFyp>2+{>bA1YNf)(BwQZE6889!)SaufM;Ahi{}D(Uac>vcu~bmDqapUlUFq2t14b|@jBjc@Mi~ax|o2!IC#s& zM5QhtZ#(#F=Oiig+3z^ml4!J62H$n?H$h4H&sdk24IK5p(d4!GG~Tga51eSjAD8W$+0;b?}+N=Q!Em3w-I|D}%3bzQH%d z+3hcle2Xmx->LW>KNxIN?MD?obokmoH2xE|8|=U_Mj&FuCl)g^VvFBMhByx1H4>1Z z5f^nvLSl?$N|upqf{?J}7|GSm1E?_*9x)#ajSQ4LNAisn$RHzwrO-%``bVT#P(3TQ zu#}XPwU(aRkXV{AJY$HF5-Ck=$QU+i7a3|~7?v0ru406Wk$Q3&K}$KdI5Nse6c;7L z+0&YV9};7o66;V*={(-qY=!LwbIxuOShJg21$nH_!*1RHcYaH3ep5?b!#pl!v^33& zE$XZY-7WD+91#nHlynFt^UH@r_|0(C2VpAeXrJcUrz49xD@%DeEu;AszWvcINQdV# zlQP3IX5k3xCgp%5QO~cSmW&qNypn!?B&KKXAu|(~WR^@(_gb2ODjbbt_*U&$?|jvc zqvrE$$5XRVLNq7fMA&Gc)dGtU#7Q_=<9B|MStX2HlD#ypaZiCu??N;(u8%u|-cE~O zL(s%%4pw0Ry;OS>Ai`qdFkfK#BkCC&<$m-X{p zw-e6=X^^gtjpzGZxSlkW=9JYb4N;O+gKV@AwvAm-nx+A~Ak*n#KaV8wNX>@z6S5p| zUR!InF;fk^&bxvGIJM98#OMys_C7Lgfv;S8)E1R1MRV+C<$ zs#sk8hTj(7v1m6!Q!1W?-BDq0KzW6o#3*ZAWF3MV5f$F6`%#T-M1>EV;Utl>K90)h zdQ>JcayitGi&Z|Z)8=D}Av#~@8^>$ev2?d4S7(KO8Nnl#L=2#yTC9zw*4p<5+15sZ>tmnXu<6NG7 zp4SD611LySuG%?7By`O6aQM731RyCKJpJ6h5^UvO-90;+Ix~ry<;c{JBz9kgENZp6 zdn7TYzGJ5%B@tJEbY78m`Ge*=77?rO2Mfd+R)}6iRytb^#}neK)s& z8OL#cn(sx-SBV^`eAiVe-&KTNM09)iqf3!}9XY(7jgjCraf5fd&Jy<`p6YK^^(GO| zsI>dICEG(}{fhPrehY|wehK0xM!cCImJ`H^UJ%-U1N$oedq7-Bu2Y@2HqAtBn@Df- z`K@+qeDOMrU4tQ&>oKmlx@a}BY^vjntGlspdz;01df$q-6F{mjhq9r;o7BRs)NbRA zyP8G4okd;4Vy@=Zb5}2Fgjwb`vZO6n+Xufk&0&E4TFX?!hIMdw4RLTpinfu3AX_9| z#yFA;qQ8xrH2PF2tub~UuK>c2R1tojt@uM!$LHCRX>B&aZ|x^I1^qrox}VS=;APOx zCVCLVuoe~6cSDB2a28!-fe=mznFAJX(Y8C-DdGEh; vcaI5<>?TZ@6>jXp{+$SJ!o*o!IG_^;DpK(-D%ZPV!kn2LS}xVheYosr_ecIz delta 2662 zcma)733O9c5WO$|CqMal=?10H6)6g|O@UGoL=glPwYDs3!5x)W5sHAK7Brv*QQV^} zDyzsM1%W~+;!?M&D2fWWf&wb;`+``hcYZ?KqvxnOIrHbwn>X*yoq6-?yB^37Z9V+N z(*O!pwvB<9;lr(%Y2h{>ZpSPy?yzwu?y_*V4GZ`9&<6MVaUa4qwfjXpU}HAsh?py4 zp4c7~=Z9=OjQL_)U}GT``KT?nutc7Zh*&D-M?<166R}*x3JWW3WMGCDkI8eD7^_8F zE$6QB<8iDNvChVN)X3@v5gX;8h`4MLQ7f=F3zjEjVT+9?@sx?8hHB=%MjuiAJG+bq0p;SC#ovE9O(Hu?);ZSa25cy z1Rrahf>SN*)!2vq8Wk9)F$QBT?9liGpK5$2;(&;AQL6DdzOeA6##b1r@io4&@U6yo zxKZPK>{Lh#=eyD}HGaTOjUPq)gr7Bj5$#tIzY(p+)1mAje%CmJ5gLD>LE}#xCVY)X z1+A2FS=gnOp-ipZDALNKEUmoCrrQ)=TR|#4rswAyi(LuFV z$>F)49-cN@rKq;yH$B;1+No5n(r~?2=^`>jWXb_q#HQL~r=^b4sspBmGpt@l34RU_ zx3Y}WaYjw0Rc8b|6Gn|4H))iDIq}NMnhE}8s`o&4vVpe3A{0*Jn+t>Z&OOxI;!G6L zewJe|MjUmPhH^-FNT5xpp|pGW2CfXF)Q;}P**J%9KB3(4y(`dH4GnJ#WEF{5A>5Qf z495sQMLW+qMYQv&xg6UC)C^=X@`bnvCN8GcfJ$Q6OE6Nx*7S-CD#k5~pB0k0Ww7a; zic1;S#hpH9r@@$+xQx*(%ttF+?r1yU$0*U1fuz_f$Z8qN8Og0uct|-9$zc~JmD)ptraMy(uw}wsgDW8=qK88p;zp6$=eHB&z`NxSFs{9EJ8V8o(0A(&IH0 zl9WSgJd8gPXJNdB2?d9ksRW+r1pY9wh=IE#Wjp+~C;xd|mB0ql$+T2Ps?`VAkQq4P zG>iuL7%NX=`EYHtSX|xBcT>D_YT+-+eF^5eTyrBj=b908Sr6Z4WV6-sHlw4$JOrs6 ztxyN6I9MM-dN6{-dL+vucNqfo4{k<|3#H2&x37ok?9Ww*Aa5PdFd)5|&ng2~vERlJ z_gIorfz~9g8*}J`@fd&!?CopW(UX|Tbq>jrWjBsb$;}Y7LRyH5n{7JDX$on8B$y4b zS=R<6G1;!sWUs^ZLLAq}akFesNv%cjtUO6JFM|9;V}Du%T}zuWG7#M=8GbS`PT_F8 zu?YvaN12uLQ*Z-GR&-2qaJU@0y--mcq`I<+>V2`(%X6Y)Bgf9zT1-k From 3a4895590efa46b5ffc827d80f3513bf205d4320 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sat, 23 Nov 2019 14:01:42 +1300 Subject: [PATCH 26/55] fixup close shop, re-open shop --- .../src/redone/game/bots/BotHandler.java | 26 ++++++++++++------ .../redone/game/bots/BotHandler.class | Bin 6086 -> 7060 bytes 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/2006Redone Server/src/redone/game/bots/BotHandler.java b/2006Redone Server/src/redone/game/bots/BotHandler.java index 8b465d71..c56d47ce 100644 --- a/2006Redone Server/src/redone/game/bots/BotHandler.java +++ b/2006Redone Server/src/redone/game/bots/BotHandler.java @@ -1,5 +1,6 @@ package redone.game.bots; +import io.netty.util.Timeout; import redone.Constants; import redone.game.players.Client; import redone.game.players.PlayerHandler; @@ -105,15 +106,24 @@ public class BotHandler public static void closeShop(Client player) { Client shop = getPlayerShop(player); if (shop == null) return; - shop.disconnected = true; - shop.logout(true); - for (int index = 0; index < botList.size(); index++){ - if (botList.get(index).getBotClient().properName.equalsIgnoreCase(player.properName)) { - botList.remove(index); - return; + shop.getPlayerAssistant().movePlayer(0,0,0); + new Thread(() -> { + try { + Thread.sleep(500); + shop.disconnected = true; + shop.logout(true); + for (int index = 0; index < botList.size(); index++){ + if (botList.get(index).getBotClient().properName.equalsIgnoreCase(player.properName)) { + botList.remove(index); + return; + } + index++; + } } - index++; - } + catch (Exception e){ + System.err.println(e); + } + }).start(); } public static void addCoins(int shop_id, int amount){ diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/BotHandler.class b/CompiledServer/production/2006rebotted/redone/game/bots/BotHandler.class index f20611e84f61c5350156108e3ab2723346f50d2f..98a295b2e83e28bd6c2e2f6f914edcb94b96e03c 100644 GIT binary patch delta 3608 zcmb7H3wTu35&mcI&ED+YlVr1y1jvIob(g>Zody|dz`}$cvm^*jQIWzzK zGiUDdeEGhq(HF0rc@{t=HJYf!gD&jH0RsnJIE05%aoEJec*MXF69yi2Asa{C_#7TH zS$kZ>6DB(Gq==_Pd|qr{kj=+Td=XEJ?Mo(}L6?iQ;|99rc|ycVF~_5#o)Xa`;gFNt_rKzvt1f6v4# zcvZyrMf^Z)uchLLCVqq;r{X6jqOag}S^BAnpNV+G#lYVb&p#LO3lqP@TPYlX|Ij7z ze_rfwi?3e^s9%ftjo5xG+V2efUfBDCQ1?dze=_iA6HDWq51ug4aZ;!MD%IAf{zU|eqiN;v1k-V`r#&B&F zZs@+nIHV0SsfKE~*=adJ3%3UeHFkFtmaJ?K27T)S{whLF;egiYw--tOv_*X3NOzn2 z2xZ7y!0&G*=!Mr6t&U~6Z;opIaF{!5;Q88hoBZn|RYj`}TA^qqtyb8J`w63xDYXQ* zhBo`ltF7+kTKG2j)<;6&?F9Fhyi7(g`@VAXgoU9sEUbUUs_~0ddEd<G5Rg8gQEJr)*{Fe-DB_@Oy=_*p8C(N<}TtSAl{4T~N)q99R_ZzxXhV~xGMbm5MJHZch}8S9dTR**&hf2kz>UbI`j=;uxf9S{#GVqOhT)_za4GQz(w3 zq>FcIkPaILXOthCxorX*ehUV3!A3E}u^d)1&Q7@P&u%0>VHHmbl?v*G$^0{vJFrXA zVrz(9Yy8X^)`QYzr2?fij8wriR>U#6zRRX6n&8Ube9+!f zX>DN+6ZUIn+5Yk*2iwg0lw>*;d_{rXjP`EsjC+{HdodpOaas3bI_}2;d#NES4IpH*LyL9?AIY!~X&<2d?hgZE z+JA$1m_0tiAdWDIM{$$%pWG`6m}qs;K0Jtfu*YWNX`6}44x+y1OVN&Lv-6K*`cV{= zp1_R!3Asm*uCrQ|KcNRRk99;f>b&}vc8mce?!+i=Y~V3|dz`f=c_ZKE=iC zyyx9 zL6^^jhZDM&OKsJ^q91!jKlK%M{ZqL-l0~BaRu*Yi77iN5S$ItObzvv*4tJ|?(Kr~h zdN8M0KZ&`;dK~k#S$W6dI*s{+qnONU-f1jw@c$BwXdIa*u&{*x#WC&x(i4k|9H{T= za1j6Pyn3z^?q$buEf10d zmw2kD&NmP~i|>nxTwc$!Y(`fj++qPpP}mUW{>3P#raHQ}h_7Z1;l lOg{4f>kfRD`ZvwAO0X)>hm4s$y*w+xlp=t*xzM1lK+@d3^Sde&2k1*4=lX zeb!!kpK~`I^LS1C$wLo51fWhTeVmM|L--Chc(^8njkq?5@A~*2uJdrc4-bhD3a}{) zH{eE}=q5Ec``C;vYHm?;tNONT@HQW}p<8{o``C`}hlqaQ;ST-3Q_WrKzB{h)9yRx> zxz9t7j}lxR#QpleL!CcV^dsH3Hw!z_r)HOr2awdayVdN`jrMBDgKGAv@5hRMq6Ivp ztbVE?5BvBT9#QkCnxFgg>3l4R$9+73Uj*?>^**WQS89H(=BW@Xd0I36M$K=1{0`4} zc-F&nKBnV&4=?zbsnQkT_a0vCTO&mQ_azVe6E`}y`Y(I?1_nKCYo5}j>^nf z*4EszCeh|@Omt?%Cd|Wp53d;f5e{SIAm}bXBvTsk$^ZX*oZ3`Ml!|o@UoGhgpBxTFp?$4$Oy?cl0!xkmRuuwx_BfJ zYvUg0q0>l2@;xaqQYfR0d_jtg6l;7`N(7S@w|ACOr1Fl^a}sBHWtpRmjFHmBdT;#1 zu`d_Jb2O?B8MM{- zD$eA;qOaLq6rDvBu)ePoIT*vt-@w^$(L}EUY8=8hu|(7MEy}GH=DjL!LtOKI3qGTZ z(9FC6t_<0g4xdJ&h1oo8#YjdedJb7wsz@BmR zf^#h=WwHQ%KPo)59>x*yywlK1%%6BzAryo!)W3>vHL-&zmDbK^w@$!nDg&F&!0AVb zxvDf*2p6Q9#kcSC+2MbCY!9;LR6YT>x6*w86_suh6P>Bioe1qkOn95lAdK!sWdIMu zOCony996Mhs7hkOW@sE=RtM0y6YjvGBqsHC1%$u54)6VxpL;s&7%&ARXwT*RwX%*C z6sZjn3Of#^@(Xx4*05A9x_wa1<+#ueOB20$ zaQor2-~Gsvk1+iphaiM+W338mS2IkiefU|ExMo!5(#II^*qAt|m*M7)+< zFM=P(#oYT6I|a%EC`?PP=pr%_2Ig5F0o#TkB*lZfUp&}?16-@Cm&Q_iCQ-W?BlIDO zqqZWOs4nm5B&Ia>4r@{paV5y$E$NVBY)Iuml4GZ)^F_6Ww43<2p>k?@IRKZD?d6=w zD=7JuD92SCsC76F>-D>XldyqT%{4r*8+lBx9ae38Xol1atg$aV?qOD65Xw4N@9=jk;k-a`VZxg5uV25(Xa z+lX%CjoZzp-p;0OXEVEb_1rPQ8ez7%iz?~J)eX|GOKTWpy!J9RuwgwoyoPviM2Zhm zg%C$1-NrbQOroES+BExAE1fBBKCb}Mk5-d@zN`GR2;(sp|(S%z~7<_P=(h|FwhtueHZ6z(lcO{kK(&uvG-4NUI2P z$n6)CiH@>L@W}4N^u^)k-8iuip?#RScsEY!!} From 2683ab888b8db9b2f4c06829fa598bfedc8613f3 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sat, 23 Nov 2019 14:05:58 +1300 Subject: [PATCH 27/55] Make it so bots cannot be attacked by npcs --- .../src/redone/game/bots/Bot.java | 1 + .../redone/game/bots/Bot$TradeChat.class | Bin 795 -> 795 bytes .../2006rebotted/redone/game/bots/Bot.class | Bin 3616 -> 3653 bytes 3 files changed, 1 insertion(+) diff --git a/2006Redone Server/src/redone/game/bots/Bot.java b/2006Redone Server/src/redone/game/bots/Bot.java index 6edf1adc..3f07e508 100644 --- a/2006Redone Server/src/redone/game/bots/Bot.java +++ b/2006Redone Server/src/redone/game/bots/Bot.java @@ -36,6 +36,7 @@ public class Bot { botClient.saveCharacter = true; botClient.isActive = true; botClient.disconnected = false; + botClient.npcCanAttack = false; Server.playerHandler.newPlayerClient(botClient); botClient.getPlayerAssistant().movePlayer(x, y, z); diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/Bot$TradeChat.class b/CompiledServer/production/2006rebotted/redone/game/bots/Bot$TradeChat.class index 77bb9577c1cd1b2216917fd6855216629766436c..09731f46b54c140a0205bd94486967d202e2a734 100644 GIT binary patch delta 31 mcmbQuHk)lj1{0&nb~UULR^1`7r$21^EA2CKb~UNZ)E26F}}1`7sV2FuA$nalup$p+^D diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/Bot.class b/CompiledServer/production/2006rebotted/redone/game/bots/Bot.class index 27266f320a2299eb19eebd4d5e000a2df3652fc5..628933ae0ef8f25c877a6c5dde27c9164600b706 100644 GIT binary patch delta 1627 zcmZXUc~q2T6vlrqGt4)9y&Z{=3PvThL=Z?*TTUp0`&yxeXl0|2q9YKXrdDG~VH;Lc z(V}LyXp4n{14(I{Etc)2t=eL?p3~o*lXdS58t3%K_k7R2?|tuk?{nYp+Z5Ovi0nJI zYd0{QKU~HTc39$)M0E-!)T9WjRk+qqoxbZG8eCEcyDVjy%W|$$bA_5Km90{^UPEtC zxKSaZuv+0Jg_~1YL!-+r+$twUXmVN0Z7#QShr^vN0q#<0c39`qkFf5!+vOhaRWqt^ zpUeF`;L^f_y84jI!#v_=y`K%P)V?s$P(7Fxi%CSYYsESB5M< zan#{w%P;(@9sOqVF(nc;O`a(R)cL!i*MFtVtXfi8XPL+(L%LSomYEzeC)?`U`C~%W z!G?y={Kai8zL2M|MD8py>LisqJ~P=Q?_`WjV2a>WFyrxx2il{9+*RXp+wppKlCgu+ zl*Tx{Eb%@g(5JVUnQG;wIi60k%DM=Y=XTI1M&Ir6lcoud=alFncW7h{IW&{YdWNu- zeA*~rx~vaRoW{jmB9@%XrIbo7%4RTAs#SKGFi)IaF3ce&roxPxTZ9Qgb$wquJUyGf=RRjJy+ux1y8& zF$R=1CYde&9L$R`a0A}$d7Ye96zJsa>50fe!gEG?dwX?JU6C$QB)yw9I7Y90dD3zP za(jC_kQ}|zh6uz+jgha?dE*@nlW`-TlAmHy3Cf3FBFz>vg0U1aPAnbd1QBGSv@?k& zkx3;TCB3`kF{fL;wbFJ()%CNQE4WfR*R5B@mnTT#xuUp7tl?ZO=p`hvR-zK|^MuV8 zPX@_<<2qEBfq#+g93x;HDvii37dW9NM`W5hvF5C%bP8HFGN8Nfh&s-x>10?s=hnm+ zkv1~XajPzz*CXuNO)0q+;OFg#LkK_N@Q&%f^?|YqA!l% zEcsKFGgxFBCNhHeub1eJ|aRxlF delta 1553 zcmZ9M`CC+F6vsc8S?+Lsd*tB}G8hTPl0_s9dD=jRQX`i_EgV}E0}VkjKrO9?io_PN z9FsPQY_YH}Z5kZnsc~pzox^%IsCtvCH!IqxVv~m6qT*H+ zx2XuJXo}}{?r^x1W-W4;!{!hz4qLd}<{pPs?p1N0%~pprYV@5}hi%-i>H{jaJA~Qc z@E|+Y+ve~P5Bqq;$D@v1`7s~6G#pec=tX9cfnJ@Hidb;)#k?i{}X+yU+Co zrZhLH#mAH0;%&tW1wZBEX^nZtW{*RW-X*}ZHqY5S-&X~#<=#?)7AfHh zD<#uV%3i}vW*J_f%MIQ|Q5HVv@-OQ&bkS|oW9X&N@G=oY zKPwas7+ztYVNjF2%6`KE6|bo{$bOsG4R7$K&0B^;ylr@gcWvG?9OiwS4-7+m7!J5I ze5HJ3_?Te0);%`#37^`0X84>h3}14@aFnlXzBYWrw>IAyzSr_Uu+Zj5!%zHd;agZ$ zTU)(mWx9oxZm42~g)6!5FWMpwlTa6dF&kPAD1NR8LH(Z+O7do$_GgeX7}TdFs?gVVXnv$61I<;8rn=2JIJAf z$#jy-JaOg63NW9`MUzroL79|Sw19M8DL_ee}J>*$0E-bJgLB)ltH{V=_&hSZiv_7;@X%$yF^*L-IsFq_^3M&(B>5K<-6cE# From 2b93d72a153b1717a23814aaebf2cc76c6dccc47 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sat, 23 Nov 2019 14:32:16 +1300 Subject: [PATCH 28/55] Add trade zones --- .../src/redone/game/bots/BotHandler.java | 7 +++++- .../src/redone/game/players/Player.java | 20 ++++++++++++++++++ .../src/redone/game/shops/ShopAssistant.java | 1 - .../redone/game/bots/BotHandler.class | Bin 7060 -> 7209 bytes .../redone/game/players/Player.class | Bin 53279 -> 53745 bytes .../redone/game/shops/ShopAssistant.class | Bin 12705 -> 12509 bytes 6 files changed, 26 insertions(+), 2 deletions(-) diff --git a/2006Redone Server/src/redone/game/bots/BotHandler.java b/2006Redone Server/src/redone/game/bots/BotHandler.java index c56d47ce..90c95886 100644 --- a/2006Redone Server/src/redone/game/bots/BotHandler.java +++ b/2006Redone Server/src/redone/game/bots/BotHandler.java @@ -30,6 +30,12 @@ public class BotHandler } public static void playerShop(Client player){ + // Must be in the correct zones + if (!player.inPlayerShopArea() && !player.inBankArea()) { + player.getActionSender().sendMessage("You need to be in a bank zone or trade area for this."); + return; + } + Client playerShop = getPlayerShop(player); if (playerShop == null) { @@ -182,5 +188,4 @@ public class BotHandler } } } - } diff --git a/2006Redone Server/src/redone/game/players/Player.java b/2006Redone Server/src/redone/game/players/Player.java index 77b0376a..a4fc96f0 100644 --- a/2006Redone Server/src/redone/game/players/Player.java +++ b/2006Redone Server/src/redone/game/players/Player.java @@ -621,6 +621,26 @@ public abstract class Player { isInArea(3422,2895,3433,2885) || //Nardah isInArea(3685,3473,3694,3461) || //Phasmatys isInArea(2530,4725,2550,4705) || //Phasmatys + isInArea(2834, 10215, 2841, 10204) || // Keldagrim + isInArea(2379, 4453, 2386, 4462) || // Zanaris + false; + } + + public boolean inPlayerShopArea() { + return isInArea(2938, 3389, 3059, 3329) || // Falador + isInArea(3172, 3449, 3270, 3384) || // Varrock + isInArea(3200, 3256, 3237, 3201) || // Lumbridge + isInArea(2716, 3498, 2735, 3480) || + isInArea(3075, 3513, 3106, 3466) || + isInArea(3074, 3262, 3102, 3239) || + isInArea(2435, 3101, 2459, 3080) || + isInArea(2618, 3075, 2598, 3108) || + isInArea(2678, 3267, 2601, 3341) || + isInArea(3265, 3157, 3324, 3215) || + isInArea(3386, 3264, 3348, 3286) || + isInArea(2797, 3454, 2838, 3430) || + isInArea(2546, 3157, 2512, 3176) || + isInArea(2451, 3408, 2425, 3437) || false; } diff --git a/2006Redone Server/src/redone/game/shops/ShopAssistant.java b/2006Redone Server/src/redone/game/shops/ShopAssistant.java index a220b26b..ef1ea0b5 100644 --- a/2006Redone Server/src/redone/game/shops/ShopAssistant.java +++ b/2006Redone Server/src/redone/game/shops/ShopAssistant.java @@ -472,7 +472,6 @@ public class ShopAssistant { boolean isStackable = ItemDefinitions.getDef()[itemID].isStackable; int freeSlots = player.getItemAssistant().freeSlots(); int storeQty = ShopHandler.getStock(shopID, itemID); - System.out.println("Item " + itemID + " stock = " + storeQty); if (amount > 0) { if (storeQty <= 0) { // none in stock, or not sold here diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/BotHandler.class b/CompiledServer/production/2006rebotted/redone/game/bots/BotHandler.class index 98a295b2e83e28bd6c2e2f6f914edcb94b96e03c..1513ea48776522ba67a4daf7f420fa6ab72506ce 100644 GIT binary patch literal 7209 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 xsL_OpJ4>y7i9?@W;CGM8i`X;`uY1Kj$xW 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 delta 8530 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 diff --git a/CompiledServer/production/2006rebotted/redone/game/shops/ShopAssistant.class b/CompiledServer/production/2006rebotted/redone/game/shops/ShopAssistant.class index d959acde85823737d7e31c44c1409272f766e0a5..b1ad6174ec3a0f286b51f016e24c91cde36a41fb 100644 GIT binary patch delta 3638 zcmZWrd3+Vs75=_EFK_0(Oai>{*d8Gd2nG@o0tApnK#)RFFod(S!Fch9}&%&aNg zUr_PJ>6f+x$m45aEWm*f`r}|2pW}-#{)I19`znmD@l9A3z75In-zpC2!gpbOkN<>l z7(b}?V+cp^QwT@ZU$!LTAU1{q86ug^0bOGGD)bQO`~s1 zML-;w5FB)lhVJJB0yEpaO8)le^DqLaDBo)aHn}pev z&1^=(=z&WP$nKaTDw{iu>br%*milfb8DMLhZPYL3u&usR9k$bVn!~t-CPM~0Z11px z!;TKqy^-u%(aGU?VP>$i!!AlEGb|#@VONLQ4s#rKbC@d`VRwf;9QIWFJhkbiT5l!S zN5%OH(^o}5-E4nd9iZX@hXWO0kV8Sg(BTlB9qRBRhr>bz{0)ce#0Uldt;3OWq`cVS zB|3Sj!%+?|Q}}!xk9Igl!7g|BJBMSH#yA~cAqUDU)oi@O2@WSZoD}Bod6mt{Ro9r? zX-}5K*!+X{qqUm_-p0U6F0C4!FoYEzR=c~y(~lE~*p;2(I`#VS3w zw=}sg@I@CNbG>&-&JrCBqWg3IXv7iRFVbY9Ub}UFjh#m$zyw1XuEm zhq2Q4ekJ8vKHz0F&**g4eq5vdI6UIxQ&a5Q&ul)aLebhFC^B0j=E!ckNr&x$i)1_! zy&I7YMxfI72QIFUxkkKPSSMjviwjRkE{L^tTx4aS@Kwga%vd$-^`aRlTG*fME7tw+ zV7g4yZ7kSGG*}NrElwp`bz}5O%Fgz+C>yRj%M;&bNcYVwOu;5!3!nh6<1yhVxnrM( zaH7@iTiNC!`4pPjc-&jqGS>15iUtu+o{$Vs%gWEo)|SPB*11*IG({T$Tja!sc%nU1 zpNENfRy5t?M6APef@|SQJdYRT+=3X37exyqMIx*h&4DsVM&J~hTGn7mTbk9*N8R9~ zZg17PyXHrk0J9o15Akd`a|cyEHnFijHBRfl_^D}AIH4gm;HCx#(Kh)GNqkC(DcKaR zMYU)aT5=UOqejRov1V{iqq}_Zu%%OG|9<_lI|vV{8=u?a*a6AN4Q+>}p1oQ78bGiQ zTYZo<-rlyYM@tV;9|<`?-kP02>_5d2o7$c6-Al1Fu9K>t>wbA_dM)T81v?0ei;5ZUaq7${SI-l^q@0b+ZlAc$KIi0el&T28_ zxD*%hSM2erM$@kss#S9{V)VH#kxLdscb}^*O*Pl&8Z`UmO1>`0iCAZz#T$a0z_;X! z^f$Q!LB1`YsyAiT=6jrny`nj$JI~WrjF6d)kL9>(qNJvMd)|O99kaKPEh8s!fow5dE?g}xsl|jdQql=Fo}fIE5bF0p zH|Q}}QFuI#Mlw~HPPDB_qpoEqHW?da65!tVu^ehVl+z9Qd8h#yE}`VeXS2pRks zS^NaK{8TQ;XBfnT7{)I!f?wiNeuW}_jZ%JtavnkjzsGzY#$x_}B|L%^{0T4eD7Nt! zcF6cO9>*U3g1z#A+Ao*wbDl!QmpqL_JcD1PNdyg+#CX`G@|bDIlP1k1oA#!; z>0n}}qZww>&2ZD%r zuIIP-K&l{-hvk>6;zLng9+RIl?FLCEpCkPqkgP?}P(q^BeK~Z_uWf&|uCzmzhmXWJ zfD~(?-yss@V>U;6gm%XaYX&|M&Gx@5W6KUY-v!F%q fV1ND3Nzd+M+Lq~G1O2}S|Eoyt2cOEE!Ds&iUsobh delta 3835 zcmZuz33wD$68`_!$#l=86Uc;+K(66PLINZNLRi8L>xIZ7tRTm#Aw-VE1T(`CuZTCe z;L!q#0s+MX@PI%-As~u)B8qsSta$5!g6AUP*m^w^;B$B8`>N}`S5^Q2>bqJi{?OWStu<-86Iz_qzNdURP54lInv_W@Eet&wrA4$!kA9k3 zSmHphXTYHz?$1XbW4t14&p=D4%g-~gRantcVm$*6zomb>eT-uZEm{hD#%tlXnBZe8 zCYo&RLw5}ON_NL2QJHM9jefSZn4+Jlk^!cfOxJ!H76ba(&SHE0>|n8@ffj=YTFkVV zWii`gCubs^|3R%SnR6li6kVsj~%*<4N` zy%tZ~cnJ*zOs=rGl8-vqnyJN)ah1)-`2^uF4wTNQt}d$#Rn!DZtAe3mK(9PWSb#@N3!5ZGJ z9t}1(Q1-eJJ8d>_lg-T{@F703u~MJgUY*?M`GSqlxWy^=_As`x(OKc`c*!<=M0ho5 zu&QEGfQSxUT~#fx+ikwc9X2H`HecpElM?$C?h=cOLS@&8r8f`^Rh531t9ljjTUYqZ6U;Rz>+{(@JKRG!>i6fQ?9l0r3 zjyfIG$x4{aCC-9`?98+FqtDon#tN4f^(Arb_a{sc`(CXwdNtcCT!_b9E8yaY=PJRn zVVrZu9)TyDK(t@s?So-^2Mp|R^fZgn{YynE~51sc3i zT;tKvH8U^?8(l35C3qcA3L(h{do_m>ExZ*?tsCM_BHqMP&f(T6NvkOuM65Xuj{r%n zyIW09st~lhlRB4cvoV!DZMWngW;7w~h1r+NP)doTv?J|aKPJu4DH)$W>KwK|pYi{> z+246HJJ6)$E>4Ob%>fU~Ntp=SSp_Aph==<%#Eac-A(W20#db)XxVvNefE}4sF z3)RleqX#ewnqfqH)lG_?drdTj5$bcfp!%BVd>5hBDa4p~gY0_@(I=2eT{WGKJ0m*8 zrZjdeY{HG1U8RVcF!&hy3&}U}mP>VZhiO8!{>!Wsx?C5?rAk48%hkkt!di3nr~`5Z zcZ(K-wQ3FC7UXDYpL69Hw!*`A<+b{bteX6QbMUTcmMUPDejmWAZonrJX{*#KjIn3- zG&XXZ^xQu2Q0?92_eC{Or=G_LqJ^*1a3r5XtZdI&-l;>^Ml#8N0{vu*9p!>GVOSH! zot6@gHnE!WlY~&el=KFjBc1ljQM{Bh>O6fE{pA2MFd$OnWf&LHAor!Yz3pfwCUcsN z?v~r}aX8t|xZFU({&4c7yi8%(LU?a?=I3VjT#xE4=stE6diaA4=$X=hUjC3MiKb`` z=-q%BY0Hf2L~|+pxf`GwVEAV`yK*OVoV9Hw^7PaOcv}YQkead{vl6Ymy0eC}o%1{Y zc3DkPOk#|xLw>}+8Sgp`QDPmDE zCNU}{Z8L6JkDSD)ye063$G3)Ud=0qmAzY~k8*sb-j>!HZV;%O+28Ufcx4KL8#3+q8 zGK{ksbDhSl^jc%BoU;Mxek{TzB0q$eA4#kF7#ZA;Y<_~F{1n4^0HgRBuHr#V3@g9G}LH>>}Wc(ffkk8`dILZ_9 zMm)*dXr7|Q(~OfglB&oYrC6X0j!{v(LPhgxDPQ~&$ z701o0C3mQJ?otWdr&@ErN>WiOS$R~d@~d>wGUOjn1**O3r8=nos-v2sGSxJdQ>%h1 zSIt(P)g7vf+O6``Cn{fktqKgk>S1K4LL*D{H1buEQKWhsLsYS`T=g~9s(!{M)!*2n z1{jTMklR~VqNTib3f&5^a7gWSOWeXywc9OmFQFQxwAaDMeUhzDrB-58t)FXfKvY{L zbCugOVpWhs-A)mwOQpHcL<_%9^qkuP+|_Uc@EQ&Hm)igmRvBx#jOP>NYZUmj3Rcz9|w? Nmbp*l7cx@#^1owdY+L{U From e519d1b00b8f90e996b1d0eb3adfe7a5a41617cb Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sat, 23 Nov 2019 14:58:44 +1300 Subject: [PATCH 29/55] Fixup buying too many items --- .../src/redone/game/shops/ShopAssistant.java | 4 ++-- .../redone/game/shops/ShopAssistant.class | Bin 12509 -> 12515 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/2006Redone Server/src/redone/game/shops/ShopAssistant.java b/2006Redone Server/src/redone/game/shops/ShopAssistant.java index ef1ea0b5..87b2d296 100644 --- a/2006Redone Server/src/redone/game/shops/ShopAssistant.java +++ b/2006Redone Server/src/redone/game/shops/ShopAssistant.java @@ -540,10 +540,10 @@ public class ShopAssistant { int totalValue = value * amount; if (currencyAmount < totalValue) { - amount = (int) Math.floor(player.playerItemsN[currencySlot] / amount); + amount = (int) Math.floor(player.playerItemsN[currencySlot] / value); // buy as many as we can afford totalValue = value * amount; - if (currencyAmount < totalValue) { + if (currencyAmount < totalValue || amount <= 0) { player.getActionSender().sendMessage("You don't have enough " + ItemAssistant.getItemName(currency).toLowerCase() + " to buy that."); return false; } diff --git a/CompiledServer/production/2006rebotted/redone/game/shops/ShopAssistant.class b/CompiledServer/production/2006rebotted/redone/game/shops/ShopAssistant.class index b1ad6174ec3a0f286b51f016e24c91cde36a41fb..995dc1023f61c4fa0be30ec1717a2f5c20607693 100644 GIT binary patch delta 348 zcmW;HJ4k|I7zN<-o!8R8G>iD52I*o^{hC-=6qU3lZQ|1A=FncWND%}!hT@y~c+!!o{LgBy^1dfT$pa z=78x~+APDL3Y!j3V!~xQO;;XvPp)|6PcZ3b4^8&6n_foP#{~{D#vv}!VuC)Na+ntk z@QOkHa#R$@#KDlXaa=k$DgB(1HBL*4Gm_=3yySncA zgnKOm)g&+Rj1x4eGxd!Z9X6{URluv3Q~jx9+-SKNQxV*vjF#G?$RMlhYdY6gRaZre zbvAuCqoA$SOXx3_J3=DT>at862_ADCJAf2Y3Ggi0VzZ delta 342 zcmW;H&nv@m90u^`^Sp=6Hq@*{^SkghYZwuhi Date: Sat, 23 Nov 2019 15:05:30 +1300 Subject: [PATCH 30/55] Update workspace.xml --- .idea/workspace.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 284f2eb1..fafe0456 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -8,12 +8,6 @@ - - - - - -

  • _YHowaeO#u=DQSdSWlk0~WVrb*^75k=Zaa=L1T5Tc;SM6R!@`|ZN`aM|7ZIsTC0H?X z@UZ4RLixU;iu43?8VXpSON#TT!1*Z0ITXpc6hQ;GK99m!FN}jIu#C%iOXii{YKf8~KpS)z6JSeN}QX zU@3LAjMmzS(O6FHEyYBv>Sf39^`Y!k>w5xAWhaQhQ5aI?adSVq{xxn)pPRsm+%%JN z3%OZOZq6e&&E)2Se~BB>ySm4X^*h(1V7@>hjHo$)KqpS`6;q|JP1`ML@dd7g-pC;s z-r(hMv&%;@z<74xx&Fqc`-< zl*}PjmupF5opOx3daL=9>bf!6t@`aL-Kg*1p4yFR{?K&uZVai*Vn&_cab^}X{pzfOyWQ~O zH_z(N%Gp`W?!v4bru9YCS0L-CeAh=n>?n!7ODrIN*>PAc>GTYhV?UoP>>rGB}r3k54FgXL-( z$9~sq8pZB-j~sW)oN4^oZT-J#{2w)qoSClJi($V0o7|GIVMUjFAdZ}##mWITL7lJa z)KI&6FN(~^v6_Et+`f^nYp-?oV_jL`H*HtnawiIENGg!CBH#0RTyg1H;szKD@zjM;A4YOXZbpwWET>^2WEg1g5JAN}Ht&>toKMLae_sK92P z#bHL$5RaTz%t9M+qs&Fx8E50fO7Mkp8}pVlkG}1U?>q1{?7|U#?0TJ_D1XMB=uPHA zf8opWF-iA;X}KOZ@+I^pzIWa%_v02m zSKi9E$Mt;B0&=unaE+TJY^a1TP1YcqMQJUJdNQcLUes`+@uMgFqHP3_O9?0?*-oS&zGblF`U&ces3Z_uDE)~kepUWK= z;bEo6z2<61u+i%?lJZlJ3U}jEF&d4*9u@O&uFt%YS)8Aym@o88Q+8t7Q54H?<^@L~ zQgsxwnT!R@`U%7SffW;t=|?f09b?`_S@CgZhD_3K=cg$Pk7yG2K~qM*3u}RoJA|~k zz;eII6aOoC)I0Z$9n5SBncc1D`I*loyQQuN!|F;KvRKbxeqLQ^0rT1oS)8xMIkm*t z5SV3Fm{t3*hg}=@VsS0Y3o1JG?frAxUWe>VviDB;WXTx0hLi=1o1fOAj2an&8B)&A{uOAEq1enz%B3=b;i3|E%1G>!QFwr% zka2ifPQ&+QJbo;v;~kkOc~UKUP4>|=mc0%}bj> z?x!N_UPCn5tw! zkBU)^&^;B#x+g^?r9ZT;G?m2`W>@Po)x80W^r+?r?#!NRcvrd zv1hr&RLhO2$(G^xy(l1@WvW_ZfmwMKc@^e9+(eA_y;#d4UXjPsg^fjO)!ND;(dins zHn?We@6WAAEH&zwYt%7+&^Kz2+O}Ew>`qnWdq$mqYNO7h$t7I2D0f~@Vl2374?gTw zcHv~PC}&%RHq^-#DE*Tx6?ZQst*dvwv8Pc-qOGV6b5;@nxL z6D74wcG*%Lcq88}XW4fIrBE_zOSTzAYcYd;Ab= z@>6W7glYc~+Wi)p&rh*yrHxj9v4mtRd)p;VoL&6Tf0-oZld_E;I8*$tndaBL4t_4& zDf{ITIV_jTGsO5hKewv4T*wgln(r<7ykg(tdP|)4e3tpse;NCdpAohNH0PKAY5i^x{}^6yv1iT?}G-Y9KI} zKF5!(Uiij~q@+(7P1M8oyt}Z#oIi^CrtO@~ViZkBQ?*gO8Iul<%3VQ9cpKWmiQDKv zJNFp0gC086u0H+M@QMk!lKQ)feC?sHUyW*hW}e2c%roU$G_Zduzb~(l8(cZ*v&1z1 zE0=o+bMAasCVJ&=%E^Q^FM{;m)Pqu`XCMR8)4AIyvndS_z@*a1Q`r4DEPYzg`X!H} zA~3g7pBPHGl}c&e1M>anKAuNwBq0w4eBfZ59Oox U(hFf6WkBXx%b~Ba)4((T0~%=&X8-^I From 66cc2e47fe470d8199e3b86622d35048339b58c3 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sat, 23 Nov 2019 21:22:48 +1300 Subject: [PATCH 44/55] dont count bots toward player count, add playerBotCount --- .../redone/game/players/PlayerHandler.java | 12 ++++++++++-- .../redone/game/players/PlayerHandler.class | Bin 9979 -> 10104 bytes 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/2006Redone Server/src/redone/game/players/PlayerHandler.java b/2006Redone Server/src/redone/game/players/PlayerHandler.java index b1096c9b..df1092e5 100644 --- a/2006Redone Server/src/redone/game/players/PlayerHandler.java +++ b/2006Redone Server/src/redone/game/players/PlayerHandler.java @@ -14,7 +14,7 @@ import redone.world.GlobalDropsHandler; public class PlayerHandler { public static Player players[] = new Player[Constants.MAX_PLAYERS]; - public static int playerCount = 0; + public static int playerCount = 0, playerBotCount = 0; public static String playersCurrentlyOn[] = new String[Constants.MAX_PLAYERS]; public static boolean updateAnnounced; public static boolean updateRunning; @@ -55,13 +55,21 @@ public class PlayerHandler { return playerCount; } + public static int getPlayerBotCount() { + return playerBotCount; + } + public void updatePlayerNames() { + playerBotCount = 0; playerCount = 0; for (int i = 0; i < Constants.MAX_PLAYERS; i++) { if (players[i] != null) { playersCurrentlyOn[i] = players[i].playerName; - if (!players[i].isBot) + if (players[i].isBot) + playerBotCount++; + else playerCount++; + } else { playersCurrentlyOn[i] = ""; } diff --git a/CompiledServer/production/2006rebotted/redone/game/players/PlayerHandler.class b/CompiledServer/production/2006rebotted/redone/game/players/PlayerHandler.class index 4cc09bff66ede9f00051781e49593a1e4a2ab3d2..fcacfa96a59f9e549856edfe43795613318174f4 100644 GIT binary patch literal 10104 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 From 8920ff512ad2b0430387b9b7509261bd6b727e25 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sun, 24 Nov 2019 00:13:17 +1300 Subject: [PATCH 45/55] Face bot random direction --- .../src/redone/game/bots/BotHandler.java | 3 +++ .../redone/game/players/PlayerHandler.java | 1 - .../redone/game/bots/BotHandler.class | Bin 7208 -> 7345 bytes .../redone/game/players/PlayerHandler.class | Bin 10104 -> 10104 bytes 4 files changed, 3 insertions(+), 1 deletion(-) diff --git a/2006Redone Server/src/redone/game/bots/BotHandler.java b/2006Redone Server/src/redone/game/bots/BotHandler.java index 6b0f7e77..df4fe252 100644 --- a/2006Redone Server/src/redone/game/bots/BotHandler.java +++ b/2006Redone Server/src/redone/game/bots/BotHandler.java @@ -5,6 +5,7 @@ import redone.Constants; import redone.game.players.Client; import redone.game.players.PlayerHandler; import redone.game.shops.ShopHandler; +import redone.util.Misc; import java.security.SecureRandom; import java.util.ArrayList; @@ -49,6 +50,8 @@ public class BotHandler client.getPlayerAssistant().movePlayer(player.getX(), player.getY(), player.getH()); + client.faceUpdate(player.face); + client.turnPlayerTo(player.getX() + Misc.random(-1, 1), player.getY() + Misc.random(-1, 1)); int i = 0; // Remove all items except money for (int item_id : client.playerItems) { diff --git a/2006Redone Server/src/redone/game/players/PlayerHandler.java b/2006Redone Server/src/redone/game/players/PlayerHandler.java index df1092e5..39ce21a9 100644 --- a/2006Redone Server/src/redone/game/players/PlayerHandler.java +++ b/2006Redone Server/src/redone/game/players/PlayerHandler.java @@ -69,7 +69,6 @@ public class PlayerHandler { playerBotCount++; else playerCount++; - } else { playersCurrentlyOn[i] = ""; } diff --git a/CompiledServer/production/2006rebotted/redone/game/bots/BotHandler.class b/CompiledServer/production/2006rebotted/redone/game/bots/BotHandler.class index ee256f52d487a2885682782745d852b782079c4c..12c50f93b4954ae21322591edea0e2ae61623cab 100644 GIT binary patch delta 3840 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 delta 3657 zcmbtWX?RrS6@Jg$nYlBQFUe#e`$`A|CX;|6L?955T}_B6f<%JBqI89_*n$gFG+LKd zs$(q)6%m(MMI{7>04>@LTB}vmZdTih*4A3IwOWBj;(P8)2A=w-&(l1UbI<*@^PcxC z-|db_Vbm9uIKA6DoG;aF2@JDtdKnkDl>l0CDWqvAzKIVSm(5^?;4<>+=UH z4(j+*sy(gZhbn$#5O_&J_Y@rwYS#dA9QOB>IJ=-A5v zRO44Feyt#Wqo#iw!0+&iir+_7zUsqkKKwz|KdShXiq};f^%L$JdfuBV{v5zt_=|_f z@=rd{Q~#>tZ|kXlQz-AK_`8lBQ|(R;xXbC+s1JtKJgm~ zs7MnNTjZTIBi%@bWExzH>kO{OHAaGxWhA6x2nCko3L`@$+m;+7xmaZ+Px5UkFj9!y zj1&?7JKnO=Vw^BiqM}sFj0{t)T*Yvl5ah&mKV`MB^V^`Uu$DI|#(oC<^8W|^b25mClNIjM+>P<$@mI<~@G%`sV zj7*j(Mj9n6cEn!LG*zYI7@3RPjhrjz8985?j5NzU zBQ5Ix1v1~rg^KecnIBv2%kwP|D8m=W?(j{p+N3P@tgqBsgiCtg^&NG^(#<4~n*m(d zJIhpvZ=oz=3d$wDtJ6zdX^V}t3L)QtJ7Zm$vjD4P( z#eEt00=@`0zQj=r5~9JCSfvK(#dc2kSVQB(ain!2JJt|t@mh_MJt&Cn3XPgyP;9mE zrHGFXOFF#LJ#fTo4DUhlBzM01V7=9t8ykc$`!Pxe7;CqU=-?FSLZ&l+93xMwC8yO9bb;L` zku9XdMGeS3fbzwAF+5Ze#|S3FNIv4I+{Gyu+9?y+zTk{(&rLcKU~hNs)^Ax|HgEHqmcM^z`h`R-la1J8+? zw;c23n$zUR!@?X!h9WG@S}b8`+vr1k6f=oTD>2OUuVuY%B%y9DElWm-kdk;k+@SFj zr+zYFeT)n;Xya?OCy8F&*_8C=e!jbTXv3f*O;t%p!c-EDG)E30KQ=ojGa4z_4o@|K zzjOxh5~c*$4T@OXm9!dRW!JH$>si4Qi9j)z(a8u6D`tx;3mnW^^9{J3&cZ=zVD-aK zm=T5P#|?uePrz=D#9q$Hk5(_P3hze^uoq+E7<;;;5*=tY30y-sw^;PDVDy2;PP0M0}g|d^gi^3qL|SnWbF}{MIwvU6G`?lIK*W1~Q?sJT5U4T(f zB8cw)8^kwBd4h?@lT6fg zhz#bQ$J%K%7VnN?@(z^n!kSWCQ@9-&ZmNyNHGP=6lb2KX!0XmdqCB&uJi@m}nc+Km z**wOWKF*jv!B{@VF0wlXI>;z*CQF*{btw+(k{tTDUPI|ZRLdm@cfYoj_5BbjJV_S( zOq0Pl#(9W#$l4_OL@2F#ceZ=CqA#i@`fRttPovtH?JjERa1;B{RFnxuyP=-6ms%gv z`C*@j{TLp_0bY;$cqJZmuU;c0Y+3VRszSnbwpdr&-Pt?7%pxMf)(@r5&G5eh=nU@!#q3 z8Hu^ME-dQla0!3i1Bbhj*1Q|%@k`_U9-08_Xg<#6MLo}XCIVMaf5Ce2@~%u{Qwm}O zZ{Mpi3D@X7a4nZ_*q+a^ulNqh)$;W&o`=k{z`99+H^E%SQeKY$iqr5E&KzD7)(`zzp> o2(oo#anBZxyU;0Zdk diff --git a/CompiledServer/production/2006rebotted/redone/game/players/PlayerHandler.class b/CompiledServer/production/2006rebotted/redone/game/players/PlayerHandler.class index fcacfa96a59f9e549856edfe43795613318174f4..e0d09a91a212e56608652862a831896d4440311c 100644 GIT binary patch delta 909 zcmWNPZA=wZ7{`DAa}EwcTO$z60N-HZOG-@x%Nn(YH(sxDZF$v_C~L+NbOB081N%L>q?5Igh`uc(G@McAp1D7*9~uj^gjP%m%k0B`Fs z@8|+OnqZGH>^1T9nne1{bo$LK4wxJcnq1yD`3#!d7%(e{nF8ufAwwp}u&LsRsphDO z@PTROnCaoT*~<(#) z8&ZNBR-!xV*$G_}OUfKH(Inz^9aEG{l2VwaRAy>AS-PJ2n!(Mwfq>sZg)*pACeLUV zZJO=JJBRl)mwn2j-~Ss_4yQGrvs%DcTF8WMRGgORTIFb(mTHD>QKs_zD_=Khxt8fx z6>EjcC+QAVs32A}d$WnI^ezF?bPpLSVu4CnqEeQsjO8llP6a8{DvGq4kk3I_Yj{xi zvPt*xsMgY`u+PLgAA|Mm(FO)|Kc8wN=T*sNRdL1VW?T>Ruhz<`*1Oedu^#b0k9m`N z1#efxyF9LqdO}rd@Mo=>)Tn3mlv@3*OHb=nHLK58`n5#^+Nxo-=tI4zlWL7MWm#pl j`yM*{EVua?b}~=f$yJx{VFv}iUZ|bk|F!O(>~sGEEQHh& delta 909 zcmWNPYfKhY9EYFZIR_(<)d-MME~zj@U7^c?sSB4w6WlN>3Jhvc!|6o>Y2L<;j$2 zC^a@FvI56S;#oy9wWP7y<5f&1%yjA~;#o>qM~L+-V*^{+$aWgpMTB-XbC#Fs;}!a8 z;zzbHKr@59$}L)yzz(I+swwPLKD$)J9);Mer)kql_9@JMwM2MLZ}7Sf(yk8P)Jfjb zX%6ZtZ)=#t#?WD6Ibz~DX71&rxt~*JBJY}9x=cPjW+qWHi*8du*c8%hf}Ancyl-mw z(1bZ_8aQVT@v%9~r>2w7O%Gp~e!esV^qGJ7%0z}aZ{dPX;A@-8w{`*-Z625GJifE# zd~d6{V#8duo9VYrT(d1)w;lXsPxG@q!!PzD25cX{+Hd&H-sE?e#2+q=8*Utbx@`V( zx%}<&8FX{G=}H-P0seJChFpkVSHXXIu7+E#mfLQva4$%%S;n<0#vRZI*Qq<)amBeF zCAjw#?|L=Tec;(Ax+|KP(QP945UV6cDw#y3kfKyFbst$8O^(Je&F5dFbjp>%a%Iw} zu{3L(k9fR~H;bdn=7fLOtsE|B5|=cYYyQ86^?+iOtGkt>6iwG?GDiz2)Iy3?PDqbap+!{b z30CMy)~JH@s`R~B?5nVZceIo)E#thFb469$@SPddGYqMQ+p3ULt#@1PE!TLTwVI`{ zg0ofUU7piZdS2C9=Wn&D*9L9!=QeHBZZ&A18r7*6bwV$xOHJz47M;^peWvDUeU?>L ji{D{~&$88LxRVLmO|JI%9rjY-=Y`tu{SUMq%D((R{Uy`v From 4f5c80829877ee66cd2fb005aa90fd1c2fef8682 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sun, 24 Nov 2019 13:02:53 +1300 Subject: [PATCH 46/55] Fixup highscores, ignore admin dev and bots --- .../game/players/HighscoresHandler.java | 10 ++++- .../src/redone/net/packets/impl/Commands.java | 37 +++++++++++++------ 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/2006Redone Server/src/redone/game/players/HighscoresHandler.java b/2006Redone Server/src/redone/game/players/HighscoresHandler.java index d49fcaf1..84f9d5c7 100644 --- a/2006Redone Server/src/redone/game/players/HighscoresHandler.java +++ b/2006Redone Server/src/redone/game/players/HighscoresHandler.java @@ -16,13 +16,18 @@ public class HighscoresHandler { Client player = new Client(null, -1); player.playerName = child.getName().split("\\.")[0]; loadPlayerInfo(player, child.getName().split("\\.")[0], "", false); + if (player.playerRights >= 2 || // admin or dev + player.isBot || player.playerName.startsWith("♥")) { // ignore bots + System.out.println("Skipping player " + player.playerName); + continue; + } players.add(player); } } public String getRank(Client player, int i, String sortBy) { - if (players.size() <= i || player.playerRights >= 2) { - return "Nobody"; + if (players.size() <= i) { + return "-----"; } switch (sortBy) { @@ -32,6 +37,7 @@ public class HighscoresHandler { case "gold": players.sort(new totalGoldComparator()); return players.get(i).playerName + ": " + players.get(i).getPlayerAssistant().totalGold() + "gp"; + case "damage": default: players.sort(new globalDmgComparator()); return players.get(i).playerName + ": " + players.get(i).globalDamageDealt; diff --git a/2006Redone Server/src/redone/net/packets/impl/Commands.java b/2006Redone Server/src/redone/net/packets/impl/Commands.java index b9a2071b..28f29a86 100644 --- a/2006Redone Server/src/redone/net/packets/impl/Commands.java +++ b/2006Redone Server/src/redone/net/packets/impl/Commands.java @@ -169,30 +169,43 @@ public class Commands implements PacketType { continue; } PlayerSave.saveGame((Client) p); - System.out.println("Saved game for " + p.playerName - + "."); + 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(player, 0, "level"), hs.getRank(player,1, "level"), hs.getRank(player,2, "level"), hs.getRank(player,3, "level"), hs.getRank(player,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(player,0, "gold"), hs.getRank(player,1, "gold"), hs.getRank(player,2, "gold"), hs.getRank(player,3, "gold"), hs.getRank(player, 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(player,0, "damage"), hs.getRank(player,1, "damage"), hs.getRank(player,2, "damage"), hs.getRank(player, 3, "damage"), hs.getRank(player, 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++) { - player.getPlayerAssistant().sendFrame126("", i); - } - for (int i = 8144; i < 8144 + highscores.length; i++) { - player.getPlayerAssistant().sendFrame126(highscores[i - 8144], i+3); + // Clear all lines + for (int i = 8144; i < 8195; i++) player.getPlayerAssistant().sendFrame126("", i); + + player.getPlayerAssistant().sendFrame126("@dre@Highscores", 8144); + + int lineNumber = 8147; + for (String line : highscores){ + System.out.println(line + " - " + lineNumber); + player.getPlayerAssistant().sendFrame126(line, lineNumber++); } player.getPlayerAssistant().showInterface(8134); From 209b3b3bf3a3eefe2688e1f70a9827e6d0f81927 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sun, 24 Nov 2019 13:16:10 +1300 Subject: [PATCH 47/55] Update HighscoresHandler.java --- 2006Redone Server/src/redone/game/players/HighscoresHandler.java | 1 - 1 file changed, 1 deletion(-) diff --git a/2006Redone Server/src/redone/game/players/HighscoresHandler.java b/2006Redone Server/src/redone/game/players/HighscoresHandler.java index 84f9d5c7..23204b6f 100644 --- a/2006Redone Server/src/redone/game/players/HighscoresHandler.java +++ b/2006Redone Server/src/redone/game/players/HighscoresHandler.java @@ -18,7 +18,6 @@ public class HighscoresHandler { loadPlayerInfo(player, child.getName().split("\\.")[0], "", false); if (player.playerRights >= 2 || // admin or dev player.isBot || player.playerName.startsWith("♥")) { // ignore bots - System.out.println("Skipping player " + player.playerName); continue; } players.add(player); From 2498cff1888a541d86ab21adaf90ffc1e51d44a5 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sun, 24 Nov 2019 15:38:46 +1300 Subject: [PATCH 48/55] Only un note items if its not player owned --- .../src/redone/game/shops/ShopAssistant.java | 30 ++++++++++++++---- .../redone/game/shops/ShopAssistant.class | Bin 12533 -> 12825 bytes 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/2006Redone Server/src/redone/game/shops/ShopAssistant.java b/2006Redone Server/src/redone/game/shops/ShopAssistant.java index 7be26ce5..6a7165b4 100644 --- a/2006Redone Server/src/redone/game/shops/ShopAssistant.java +++ b/2006Redone Server/src/redone/game/shops/ShopAssistant.java @@ -1,13 +1,11 @@ package redone.game.shops; import redone.Constants; -import redone.game.bots.Bot; import redone.game.bots.BotHandler; import redone.game.items.Item; import redone.game.items.ItemAssistant; import redone.game.items.ItemDefinitions; import redone.game.players.Client; -import redone.game.players.Player; import redone.game.players.PlayerHandler; import redone.util.GameLogger; @@ -412,10 +410,10 @@ public class ShopAssistant { } player.getItemAssistant().deleteItem(itemID, amount); - String ItemNameUnNotedItem = ItemAssistant.getItemName(itemID - 1).toLowerCase(); - if (itemName.contains(ItemNameUnNotedItem)) { - itemID = itemID - 1; //Replace the noted item by it's un-noted version. - } + + // Only un note items if it's not a player owned store + if (!ShopHandler.playerOwnsStore(player.myShopId, player)) + itemID = getUnNoted(itemID); if (ShopHandler.playerOwnsStore(player.myShopId, player)) { // Add items to players store @@ -464,7 +462,25 @@ public class ShopAssistant { } return true; } - + + private static int getUnNoted(int itemID){ + String itemName = ItemAssistant.getItemName(itemID).toLowerCase(); + String ItemNameUnNotedItem = ItemAssistant.getItemName(itemID - 1).toLowerCase(); + if (itemName.contains(ItemNameUnNotedItem)) { + itemID--; //Replace the noted item by it's un-noted version. + } + return itemID; + } + + private static int getNoted(int itemID){ + String itemName = ItemAssistant.getItemName(itemID).toLowerCase(); + String ItemNameUnNotedItem = ItemAssistant.getItemName(itemID + 1).toLowerCase(); + if (itemName.contains(ItemNameUnNotedItem)) { + itemID++; //Replace the item by it's noted version. + } + return itemID; + } + private static final int FISHING_ITEMS[] = {383, 371, 377, 359, 321, 341, 353, 345, 327, 317}; public boolean buyItem(int itemID, int fromSlot, int amount) { diff --git a/CompiledServer/production/2006rebotted/redone/game/shops/ShopAssistant.class b/CompiledServer/production/2006rebotted/redone/game/shops/ShopAssistant.class index 5f933c670341431359bfa01865735952bd989a31..c430d13187fd81e168f07c2d1ed81643c35b80b7 100644 GIT binary patch delta 4945 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 delta 4704 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 Date: Sun, 24 Nov 2019 16:27:10 +1300 Subject: [PATCH 49/55] refactor saving --- .../src/redone/game/players/PlayerSave.java | 503 +++++------------- 1 file changed, 130 insertions(+), 373 deletions(-) diff --git a/2006Redone Server/src/redone/game/players/PlayerSave.java b/2006Redone Server/src/redone/game/players/PlayerSave.java index ee27ebec..41d05252 100644 --- a/2006Redone Server/src/redone/game/players/PlayerSave.java +++ b/2006Redone Server/src/redone/game/players/PlayerSave.java @@ -91,6 +91,9 @@ public class PlayerSave { case "character-rights": player.playerRights = Integer.parseInt(token2); break; + case "isBot": + player.isBot = Boolean.parseBoolean(token2); + break; case "blackMarks": player.blackMarks = Integer.parseInt(token2); break; @@ -540,558 +543,312 @@ public class PlayerSave { characterfile = new BufferedWriter(new FileWriter(filePath)); /* ACCOUNT */ - characterfile.write("[ACCOUNT]", 0, 9); + characterfile.write("[ACCOUNT]"); characterfile.newLine(); - characterfile.write("character-username = ", 0, 21); - characterfile.write(player.playerName, 0, - player.playerName.length()); + characterfile.write("character-username = " + player.playerName); characterfile.newLine(); if (player.playerRights == 0) { - if (player.playerPass.length() < 40) - { + if (player.playerPass.length() < 40) { player.playerPass = passwordHash(player.playerPass); } - characterfile.write("character-password = ", 0, 21); - characterfile.write(player.playerPass, 0, - player.playerPass.length()); + characterfile.write("character-password = " + player.playerPass); characterfile.newLine(); } characterfile.newLine(); /* CHARACTER */ - characterfile.write("[CHARACTER]", 0, 11); + characterfile.write("[CHARACTER]"); characterfile.newLine(); - characterfile.write("character-height = ", 0, 19); - characterfile.write(Integer.toString(player.heightLevel), 0, - Integer.toString(player.heightLevel).length()); + characterfile.write("character-height = " + player.heightLevel); characterfile.newLine(); - characterfile.write("character-posx = ", 0, 17); - characterfile.write(Integer.toString(player.absX), 0, Integer - .toString(player.absX).length()); + characterfile.write("character-posx = " + player.absX); characterfile.newLine(); - characterfile.write("character-posy = ", 0, 17); - characterfile.write(Integer.toString(player.absY), 0, Integer - .toString(player.absY).length()); + characterfile.write("character-posy = " + player.absY); characterfile.newLine(); - characterfile.write("character-rights = ", 0, 19); - characterfile.write(Integer.toString(player.playerRights), 0,Integer.toString(player.playerRights).length()); + characterfile.write("character-rights = " + player.playerRights); characterfile.newLine(); - characterfile.write("hasStarter = ", 0, 13); - characterfile.write(Boolean.toString(player.hasStarter), 0, Boolean - .toString(player.hasStarter).length()); + characterfile.write("isBot = " + player.isBot); characterfile.newLine(); - characterfile.write("bankPin1 = ", 0, 11); - characterfile.write(Integer.toString(player.bankPin1), 0, Integer - .toString(player.bankPin1).length()); + characterfile.write("hasStarter = " + player.hasStarter); characterfile.newLine(); - characterfile.write("bankPin2 = ", 0, 11); - characterfile.write(Integer.toString(player.bankPin2), 0, Integer - .toString(player.bankPin2).length()); + characterfile.write("bankPin1 = " + player.bankPin1); characterfile.newLine(); - characterfile.write("bankPin3 = ", 0, 11); - characterfile.write(Integer.toString(player.bankPin3), 0, Integer - .toString(player.bankPin3).length()); + characterfile.write("bankPin2 = " + player.bankPin2); characterfile.newLine(); - characterfile.write("bankPin4 = ", 0, 11); - characterfile.write(Integer.toString(player.bankPin4), 0, Integer - .toString(player.bankPin4).length()); + characterfile.write("bankPin3 = " + player.bankPin3); characterfile.newLine(); - characterfile.write("hasBankpin = ", 0, 13); - characterfile.write(Boolean.toString(player.hasBankpin), 0, Boolean - .toString(player.hasBankpin).length()); + characterfile.write("bankPin4 = " + player.bankPin4); characterfile.newLine(); - characterfile.write("pinRegisteredDeleteDay = ", 0, 25); - characterfile.write( - Integer.toString(player.pinDeleteDateRequested), 0, Integer - .toString(player.pinDeleteDateRequested).length()); + characterfile.write("hasBankpin = " + player.hasBankpin); characterfile.newLine(); - characterfile.write("requestPinDelete = ", 0, 19); - characterfile.write(Boolean.toString(player.requestPinDelete), 0, - Boolean.toString(player.requestPinDelete).length()); + characterfile.write("pinRegisteredDeleteDay = " + player.pinDeleteDateRequested); characterfile.newLine(); - characterfile.write("lastLoginDate = ", 0, 16); - characterfile.write(Integer.toString(player.lastLoginDate), 0, - Integer.toString(player.lastLoginDate).length()); + characterfile.write("requestPinDelete = " + player.requestPinDelete); characterfile.newLine(); - characterfile.write("setPin = ", 0, 9); - characterfile.write(Boolean.toString(player.setPin), 0, Boolean - .toString(player.setPin).length()); + characterfile.write("lastLoginDate = " + player.lastLoginDate); characterfile.newLine(); - characterfile.write("hasPaid = ", 0, 10); - characterfile.write(Boolean.toString(player.hasPaid), 0, Boolean - .toString(player.hasPaid).length()); + characterfile.write("setPin = " + player.setPin); characterfile.newLine(); - characterfile.write("lostCannon = ", 0, 13); - characterfile.write(Boolean.toString(player.lostCannon), 0, Boolean.toString(player.lostCannon).length()); + characterfile.write("hasPaid = " + player.hasPaid); characterfile.newLine(); - characterfile.write("cannonX = ", 0, 10); - characterfile.write(Integer.toString(player.cannonX), 0, Integer.toString(player.cannonY).length()); + characterfile.write("lostCannon = " + player.lostCannon); characterfile.newLine(); - characterfile.write("cannonY = ", 0, 10); - characterfile.write(Integer.toString(player.cannonY), 0, Integer.toString(player.cannonY).length()); + characterfile.write("cannonX = " + player.cannonX); characterfile.newLine(); - characterfile.write("myBalls = ", 0, 10); - characterfile.write(Integer.toString(player.getCannon().myBalls), 0, Integer.toString(player.getCannon().myBalls).length()); + characterfile.write("cannonY = " + player.cannonY); characterfile.newLine(); - characterfile.write("poison = ", 0, 9); - characterfile.write(Boolean.toString(player.poison), 0, Boolean - .toString(player.poison).length()); + characterfile.write("myBalls = " + player.getCannon().myBalls); characterfile.newLine(); - characterfile.write("spiritTree = ", 0, 13); - characterfile.write(Boolean.toString(player.spiritTree), 0, Boolean - .toString(player.spiritTree).length()); + characterfile.write("poison = " + player.poison); characterfile.newLine(); - characterfile.write("npcCanAttack = ", 0, 15); - characterfile.write(Boolean.toString(player.npcCanAttack), 0, Boolean - .toString(player.npcCanAttack).length()); + characterfile.write("spiritTree = " + player.spiritTree); characterfile.newLine(); - characterfile.write("rope = ", 0, 7); - characterfile.write(Boolean.toString(player.rope), 0, Boolean - .toString(player.rope).length()); + characterfile.write("npcCanAttack = " + player.npcCanAttack); characterfile.newLine(); - characterfile.write("rope2 = ", 0, 8); - characterfile.write(Boolean.toString(player.rope2), 0, Boolean - .toString(player.rope2).length()); + characterfile.write("rope = " + player.rope); characterfile.newLine(); - characterfile.write("recievedMask = ", 0, 15); - characterfile.write(Boolean.toString(player.recievedMask), 0, Boolean - .toString(player.recievedMask).length()); + characterfile.write("rope2 = " + player.rope2); characterfile.newLine(); - characterfile.write("recievedReward = ", 0, 17); - characterfile.write(Boolean.toString(player.recievedReward), 0, Boolean - .toString(player.recievedReward).length()); + characterfile.write("recievedMask = " + player.recievedMask); characterfile.newLine(); - characterfile.write("isBotting = ", 0, 12); - characterfile.write(Boolean.toString(player.isBotting), 0, - Boolean.toString(player.isBotting).length()); + characterfile.write("recievedReward = " + player.recievedReward); characterfile.newLine(); - characterfile.write("global-damage = ", 0, 16); - characterfile.write(Integer.toString(player.globalDamageDealt), 0, Integer - .toString(player.globalDamageDealt).length()); + characterfile.write("isBotting = " + player.isBotting); characterfile.newLine(); - characterfile.write("brightness = ", 0, 13); - characterfile.write(Integer.toString(player.brightness), 0, Integer - .toString(player.brightness).length()); + characterfile.write("global-damage = " + player.globalDamageDealt); characterfile.newLine(); - characterfile.write("closeTutorialInterface = ", 0, 25); - characterfile.write( - Boolean.toString(player.closeTutorialInterface), 0, Boolean - .toString(player.closeTutorialInterface).length()); + characterfile.write("brightness = " + player.brightness); characterfile.newLine(); - characterfile.write("canWalkTutorial = ", 0, 18); - characterfile.write(Boolean.toString(player.canWalkTutorial), 0, - Boolean.toString(player.canWalkTutorial).length()); + characterfile.write("closeTutorialInterface = " + player.closeTutorialInterface); characterfile.newLine(); - characterfile.write("village = ", 0, 10); - characterfile.write(Boolean.toString(player.village), 0, Boolean - .toString(player.village).length()); + characterfile.write("canWalkTutorial = " + player.canWalkTutorial); characterfile.newLine(); - characterfile.write("lastThieve = ", 0, 13); - characterfile.write(Long.toString(player.lastThieve), 0, Long.toString(player.lastThieve).length()); + characterfile.write("village = " + player.village); characterfile.newLine(); - characterfile.write("homeTele = ", 0, 11); - characterfile.write(Long.toString(player.homeTele), 0, Long.toString(player.homeTele).length()); + characterfile.write("lastThieve = " + player.lastThieve); characterfile.newLine(); - characterfile.write("strongHold = ", 0, 13); - characterfile.write(Boolean.toString(player.strongHold), 0, Boolean - .toString(player.strongHold).length()); + characterfile.write("homeTele = " + player.homeTele); characterfile.newLine(); - characterfile.write("character-energy = ", 0, 19); - characterfile.write(Integer.toString((int) Math.ceil(player.playerEnergy)), 0, - Integer.toString((int) Math.ceil(player.playerEnergy)).length()); + characterfile.write("strongHold = " + player.strongHold); characterfile.newLine(); - characterfile.write("crystal-bow-shots = ", 0, 20); - characterfile.write(Integer.toString(player.crystalBowArrowCount), - 0, Integer.toString(player.crystalBowArrowCount).length()); + characterfile.write("character-energy = " + (int) Math.ceil(player.playerEnergy)); characterfile.newLine(); - characterfile.write("splitChat = ", 0, 12); - characterfile.write(Boolean.toString(player.splitChat), 0, Boolean - .toString(player.splitChat).length()); + characterfile.write("crystal-bow-shots = " + player.crystalBowArrowCount); characterfile.newLine(); - characterfile.write("canSpeak = ", 0, 11); - characterfile.write(Boolean.toString(player.canSpeak), 0, Boolean - .toString(player.canSpeak).length()); + characterfile.write("splitChat = " + player.splitChat); + characterfile.newLine(); + characterfile.write("canSpeak = " + player.canSpeak); characterfile.newLine(); for (int b = 0; b < player.barrowsNpcs.length; b++) { - characterfile.write("barrowsNpcs = ", 0, 14); - characterfile.write(Integer.toString(b), 0, Integer.toString(b).length()); - characterfile.write(" ", 0, 1); - characterfile.write(player.barrowsNpcs[b][1] <= 1 ? Integer.toString(0) : Integer.toString(player.barrowsNpcs[b][1]), 0, Integer.toString(player.barrowsNpcs[b][1]).length()); + characterfile.write("barrowsNpcs = " + b + "\t" + Math.max(0, player.barrowsNpcs[b][1])); characterfile.newLine(); } - characterfile.write("questStages = ", 0, 14); - characterfile.write(Integer.toString(player.questStages), 0, - Integer.toString(player.questStages).length()); + characterfile.write("questStages = " + player.questStages); characterfile.newLine(); - characterfile.write("SlayerMaster = ", 0, 15); - characterfile.write(Integer.toString(player.SlayerMaster), 0, - Integer.toString(player.SlayerMaster).length()); + characterfile.write("SlayerMaster = " + player.SlayerMaster); characterfile.newLine(); - characterfile.write("music = ", 0, 8); String music = ""; for (boolean element : player.getPlayList().unlocked) { music += element + "\t"; } - characterfile.write(music); + characterfile.write("music = " + music); characterfile.newLine(); - characterfile.write("randomActions = ", 0, 16); - characterfile.write(Integer.toString(player.randomActions), 0, - Integer.toString(player.randomActions).length()); + characterfile.write("randomActions = " + player.randomActions); characterfile.newLine(); - characterfile.write("blackMarks = ", 0, 13); - characterfile.write(Integer.toString(player.blackMarks), 0, Integer - .toString(player.blackMarks).length()); + characterfile.write("blackMarks = " + player.blackMarks); characterfile.newLine(); - characterfile.write("tutorial-progress = ", 0, 20); - characterfile.write(Integer.toString(player.tutorialProgress), 0, - Integer.toString(player.tutorialProgress).length()); + characterfile.write("tutorial-progress = " + player.tutorialProgress); characterfile.newLine(); - characterfile.write("skull-timer = ", 0, 14); - characterfile.write(Integer.toString(player.skullTimer), 0, Integer - .toString(player.skullTimer).length()); + characterfile.write("skull-timer = " + player.skullTimer); characterfile.newLine(); - characterfile.write("recoilHits = ", 0, 13); - characterfile.write(Integer.toString(player.recoilHits), 0, Integer - .toString(player.recoilHits).length()); + characterfile.write("recoilHits = " + player.recoilHits); characterfile.newLine(); - characterfile.write("lastX = ", 0, 8); - characterfile.write(Integer.toString(player.lastX), 0, Integer - .toString(player.lastX).length()); + characterfile.write("lastX = " + player.lastX); characterfile.newLine(); - characterfile.write("lastY = ", 0, 8); - characterfile.write(Integer.toString(player.lastY), 0, Integer - .toString(player.lastY).length()); + characterfile.write("lastY = " + player.lastY); characterfile.newLine(); - characterfile.write("lastH = ", 0, 8); - characterfile.write(Integer.toString(player.lastH), 0, Integer - .toString(player.lastH).length()); + characterfile.write("lastH = " + player.lastH); characterfile.newLine(); for (int i = 0; i < player.removedTasks.length; i++) { - characterfile.write("removedTask" + i + " = ", 0, 15); - characterfile.write(Integer.toString(player.removedTasks[i]), - 0, Integer.toString(player.removedTasks[i]).length()); + characterfile.write("removedTask" + i + " = " + player.removedTasks[i]); characterfile.newLine(); } - characterfile.write("creationAddress = ", 0, 18); - characterfile.write(player.creationAddress, 0, - player.creationAddress.length()); + characterfile.write("creationAddress = " + player.creationAddress); characterfile.newLine(); - characterfile.write("has-npc = ", 0, 10); - characterfile.write(Boolean.toString(player.hasNpc), 0, Boolean - .toString(player.hasNpc).length()); + characterfile.write("has-npc = " + player.hasNpc); characterfile.newLine(); - characterfile.write("summonId = ", 0, 11); - characterfile.write(Integer.toString(player.summonId), 0, Integer - .toString(player.summonId).length()); + characterfile.write("summonId = " + player.summonId); characterfile.newLine(); - characterfile.write("thankedForDonation = ", 0, 21); - characterfile.write(Integer.toString(player.thankedForDonation), 0, - Integer.toString(player.thankedForDonation).length()); + characterfile.write("thankedForDonation = " + player.thankedForDonation); characterfile.newLine(); - characterfile.write("membership = ", 0, 13); - characterfile.write(Boolean.toString(player.membership), 0, Boolean - .toString(player.membership).length()); + characterfile.write("membership = " + player.membership); characterfile.newLine(); - characterfile.write("questPoints = ", 0, 14); - characterfile.write(Integer.toString(player.questPoints), 0, - Integer.toString(player.questPoints).length()); + characterfile.write("questPoints = " + player.questPoints); characterfile.newLine(); - characterfile.write("votePoints = ", 0, 13); - characterfile.write(Integer.toString(player.votePoints), 0, - Integer.toString(player.votePoints).length()); + characterfile.write("votePoints = " + player.votePoints); characterfile.newLine(); - characterfile.write("bananas = ", 0, 10); - characterfile.write(Integer.toString(player.bananas), 0, Integer - .toString(player.bananas).length()); + characterfile.write("bananas = " + player.bananas); characterfile.newLine(); - characterfile.write("magic-book = ", 0, 13); - characterfile.write(Integer.toString(player.playerMagicBook), 0, - Integer.toString(player.playerMagicBook).length()); + characterfile.write("magic-book = " + player.playerMagicBook); characterfile.newLine(); - characterfile.write("special-amount = ", 0, 17); - characterfile.write(Double.toString(player.specAmount), 0, Double - .toString(player.specAmount).length()); + characterfile.write("special-amount = " + player.specAmount); characterfile.newLine(); - characterfile.write("musicOn = ", 0, 10); - characterfile.write(Boolean.toString(player.musicOn), 0, Boolean - .toString(player.musicOn).length()); + characterfile.write("musicOn = " + player.musicOn); characterfile.newLine(); - characterfile.write("needsNewTask = ", 0, 15); - characterfile.write(Boolean.toString(player.needsNewTask), 0, - Boolean.toString(player.needsNewTask).length()); + characterfile.write("needsNewTask = " + player.needsNewTask); characterfile.newLine(); - characterfile.write("luthas = ", 0, 9); - characterfile.write(Boolean.toString(player.luthas), 0, Boolean - .toString(player.luthas).length()); + characterfile.write("luthas = " + player.luthas); characterfile.newLine(); - characterfile.write("selected-coffin = ", 0, 18); - characterfile.write(Integer.toString(player.randomCoffin), 0, - Integer.toString(player.randomCoffin).length()); + characterfile.write("selected-coffin = " + player.randomCoffin); characterfile.newLine(); - characterfile.write("runeMist = ", 0, 11); - characterfile.write(Integer.toString(player.runeMist), 0, Integer - .toString(player.runeMist).length()); + characterfile.write("runeMist = " + player.runeMist); characterfile.newLine(); - characterfile.write("blackKnight = ", 0, 14); - characterfile.write(Integer.toString(player.blackKnight), 0, Integer - .toString(player.blackKnight).length()); + characterfile.write("blackKnight = " + player.blackKnight); characterfile.newLine(); - characterfile.write("shieldArrav = ", 0, 14); - characterfile.write(Integer.toString(player.shieldArrav), 0, Integer - .toString(player.shieldArrav).length()); + characterfile.write("shieldArrav = " + player.shieldArrav); characterfile.newLine(); - characterfile.write("cookAss = ", 0, 10); - characterfile.write(Integer.toString(player.cookAss), 0, Integer - .toString(player.cookAss).length()); + characterfile.write("cookAss = " + player.cookAss); characterfile.newLine(); - characterfile.write("pirateTreasure = ", 0, 17); - characterfile.write(Integer.toString(player.pirateTreasure), 0, - Integer.toString(player.pirateTreasure).length()); + characterfile.write("pirateTreasure = " + player.pirateTreasure); characterfile.newLine(); - characterfile.write("ptjob = ", 0, 8); - characterfile.write(Integer.toString(player.ptjob), 0, Integer - .toString(player.ptjob).length()); + characterfile.write("ptjob = " + player.ptjob); characterfile.newLine(); - characterfile.write("doricQuest = ", 0, 13); - characterfile.write(Integer.toString(player.doricQuest), 0, Integer - .toString(player.doricQuest).length()); + characterfile.write("doricQuest = " + player.doricQuest); characterfile.newLine(); - characterfile.write("dragonSlayerQuestStage = ", 0, 25); - characterfile.write( - Integer.toString(player.dragonSlayerQuestStage), 0, Integer - .toString(player.dragonSlayerQuestStage).length()); + characterfile.write("dragonSlayerQuestStage = " + player.dragonSlayerQuestStage); characterfile.newLine(); - characterfile.write("impsC = ", 0, 8); - characterfile.write(Integer.toString(player.impsC), 0, Integer - .toString(player.impsC).length()); + characterfile.write("impsC = " + player.impsC); characterfile.newLine(); - characterfile.write("knightS = ", 0, 10); - characterfile.write(Integer.toString(player.knightS), 0, Integer.toString(player.knightS).length()); + characterfile.write("knightS = " + player.knightS); characterfile.newLine(); - characterfile.write("sheepShear = ", 0, 13); - characterfile.write(Integer.toString(player.sheepShear), 0, Integer - .toString(player.sheepShear).length()); + characterfile.write("sheepShear = " + player.sheepShear); characterfile.newLine(); - characterfile.write("romeo-juliet = ", 0, 15); - characterfile.write(Integer.toString(player.romeojuliet), 0, - Integer.toString(player.romeojuliet).length()); + characterfile.write("romeo-juliet = " + player.romeojuliet); characterfile.newLine(); - characterfile.write("gertCat = ", 0, 10); - characterfile.write(Integer.toString(player.gertCat), 0, Integer - .toString(player.gertCat).length()); + characterfile.write("gertCat = " + player.gertCat); characterfile.newLine(); - characterfile.write("cw-games = ", 0, 11); - characterfile.write(Integer.toString(player.cwGames), 0, Integer - .toString(player.cwGames).length()); + characterfile.write("cw-games = " + player.cwGames); characterfile.newLine(); - characterfile.write("witchspot = ", 0, 12); - characterfile.write(Integer.toString(player.witchspot), 0, Integer - .toString(player.witchspot).length()); + characterfile.write("witchspot = " + player.witchspot); characterfile.newLine(); - characterfile.write("restGhost = ", 0, 12); - characterfile.write(Integer.toString(player.restGhost), 0, Integer - .toString(player.restGhost).length()); + characterfile.write("restGhost = " + player.restGhost); characterfile.newLine(); - characterfile.write("vampSlayer = ", 0, 13); - characterfile.write(Integer.toString(player.vampSlayer), 0, Integer - .toString(player.vampSlayer).length()); + characterfile.write("vampSlayer = " + player.vampSlayer); characterfile.newLine(); - characterfile.write("RatDied2 = ", 0, 11); - characterfile.write(Boolean.toString(player.ratdied2), 0, Boolean - .toString(player.ratdied2).length()); + characterfile.write("RatDied2 = " + player.ratdied2); characterfile.newLine(); - characterfile.write("debugMode = ", 0, 12); - characterfile.write(Boolean.toString(player.debugMode), 0, Boolean - .toString(player.debugMode).length()); + characterfile.write("debugMode = " + player.debugMode); characterfile.newLine(); - characterfile.write("randomToggle = ", 0, 15); - characterfile.write(Boolean.toString(player.randomEventsEnabled), 0, Boolean - .toString(player.randomEventsEnabled).length()); + characterfile.write("randomToggle = " + player.randomEventsEnabled); characterfile.newLine(); - characterfile.write("teleblock-length = ", 0, 19); - characterfile.write(Integer.toString(tbTime), 0, - Integer.toString(tbTime).length()); + characterfile.write("teleblock-length = " + tbTime); characterfile.newLine(); - characterfile.write("pc-points = ", 0, 12); - characterfile.write(Integer.toString(player.pcPoints), 0, Integer - .toString(player.pcPoints).length()); + characterfile.write("pc-points = " + player.pcPoints); characterfile.newLine(); - characterfile.write("lastYell = ", 0, 11); - characterfile.write(Long.toString(player.lastYell), 0, Long.toString(player.lastYell).length()); + characterfile.write("lastYell = " + player.lastYell); characterfile.newLine(); - characterfile.write("slayerTask = ", 0, 13); - characterfile.write(Integer.toString(player.slayerTask), 0, Integer - .toString(player.slayerTask).length()); + characterfile.write("slayerTask = " + player.slayerTask); characterfile.newLine(); - characterfile.write("taskAmount = ", 0, 13); - characterfile.write(Integer.toString(player.taskAmount), 0, Integer - .toString(player.taskAmount).length()); + characterfile.write("taskAmount = " + player.taskAmount); characterfile.newLine(); - characterfile.write("magePoints = ", 0, 13); - characterfile.write(Integer.toString(player.magePoints), 0, Integer - .toString(player.magePoints).length()); + characterfile.write("magePoints = " + player.magePoints); characterfile.newLine(); - characterfile.write("autoRet = ", 0, 10); - characterfile.write(Integer.toString(player.autoRet), 0, Integer - .toString(player.autoRet).length()); + characterfile.write("autoRet = " + player.autoRet); characterfile.newLine(); - characterfile.write("barrowsKillCount = ", 0, 19); - characterfile.write(Integer.toString(player.barrowsKillCount), 0, - Integer.toString(player.barrowsKillCount).length()); + characterfile.write("barrowsKillCount = " + player.barrowsKillCount); characterfile.newLine(); - characterfile.write("slayerPoints = ", 0, 15); - characterfile.write(Integer.toString(player.slayerPoints), 0, - Integer.toString(player.slayerPoints).length()); + characterfile.write("slayerPoints = " + player.slayerPoints); characterfile.newLine(); - characterfile.write("flagged = ", 0, 10); - characterfile.write(Boolean.toString(player.accountFlagged), 0, - Boolean.toString(player.accountFlagged).length()); + characterfile.write("flagged = " + player.accountFlagged); characterfile.newLine(); - characterfile.write("wave = ", 0, 7); - characterfile.write(Integer.toString(player.waveId), 0, Integer - .toString(player.waveId).length()); + characterfile.write("wave = " + player.waveId); characterfile.newLine(); - characterfile.write("gwkc = ", 0, 7); - characterfile.write(Integer.toString(player.killCount), 0, Integer - .toString(player.killCount).length()); + characterfile.write("gwkc = " + player.killCount); characterfile.newLine(); - characterfile.write("isRunning = ", 0, 12); - characterfile.write(Boolean.toString(player.isRunning2), 0, Boolean - .toString(player.isRunning2).length()); + characterfile.write("isRunning = " + player.isRunning2); characterfile.newLine(); - characterfile.write("fightMode = ", 0, 12); - characterfile.write(Integer.toString(player.fightMode), 0, Integer - .toString(player.fightMode).length()); + characterfile.write("fightMode = " + player.fightMode); characterfile.newLine(); - characterfile.write("void = ", 0, 7); - String toWrite = player.voidStatus[0] + "\t" + player.voidStatus[1] - + "\t" + player.voidStatus[2] + "\t" + player.voidStatus[3] - + "\t" + player.voidStatus[4]; - characterfile.write(toWrite); + String voidStatus = ""; + for (int voidS : player.voidStatus){ + voidStatus += voidS + "\t"; + } + characterfile.write("void = " + voidStatus); characterfile.newLine(); characterfile.newLine(); /* EQUIPMENT */ - characterfile.write("[EQUIPMENT]", 0, 11); + characterfile.write("[EQUIPMENT]"); characterfile.newLine(); for (int i = 0; i < player.playerEquipment.length; i++) { - characterfile.write("character-equip = ", 0, 18); - characterfile.write(Integer.toString(i), 0, Integer.toString(i) - .length()); - characterfile.write(" ", 0, 1); - characterfile.write( - Integer.toString(player.playerEquipment[i]), 0, Integer - .toString(player.playerEquipment[i]).length()); - characterfile.write(" ", 0, 1); - characterfile.write( - Integer.toString(player.playerEquipmentN[i]), 0, - Integer.toString(player.playerEquipmentN[i]).length()); - characterfile.write(" ", 0, 1); + characterfile.write("character-equip = " + i + "\t" + player.playerEquipment[i] + "\t" + player.playerEquipmentN[i]); characterfile.newLine(); } characterfile.newLine(); /* LOOK */ - characterfile.write("[LOOK]", 0, 6); + characterfile.write("[LOOK]"); characterfile.newLine(); for (int i = 0; i < player.playerAppearance.length; i++) { - characterfile.write("character-look = ", 0, 17); - characterfile.write(Integer.toString(i), 0, Integer.toString(i) - .length()); - characterfile.write(" ", 0, 1); - characterfile.write( - Integer.toString(player.playerAppearance[i]), 0, - Integer.toString(player.playerAppearance[i]).length()); + characterfile.write("character-look = " + i + "\t" + player.playerAppearance[i]); characterfile.newLine(); } characterfile.newLine(); /* SKILLS */ - characterfile.write("[SKILLS]", 0, 8); + characterfile.write("[SKILLS]"); characterfile.newLine(); for (int i = 0; i < player.playerLevel.length; i++) { - characterfile.write("character-skill = ", 0, 18); - characterfile.write(Integer.toString(i), 0, Integer.toString(i) - .length()); - characterfile.write(" ", 0, 1); - characterfile.write(Integer.toString(player.playerLevel[i]), 0, - Integer.toString(player.playerLevel[i]).length()); - characterfile.write(" ", 0, 1); - characterfile.write(Integer.toString(player.playerXP[i]), 0, - Integer.toString(player.playerXP[i]).length()); + characterfile.write("character-skill = " + i + "\t" + player.playerLevel[i] + "\t" + player.playerXP[i]); characterfile.newLine(); } characterfile.newLine(); /* ITEMS */ - characterfile.write("[ITEMS]", 0, 7); + characterfile.write("[ITEMS]"); characterfile.newLine(); for (int i = 0; i < player.playerItems.length; i++) { if (player.playerItems[i] > 0) { - characterfile.write("character-item = ", 0, 17); - characterfile.write(Integer.toString(i), 0, Integer - .toString(i).length()); - characterfile.write(" ", 0, 1); - characterfile.write( - Integer.toString(player.playerItems[i]), 0, Integer - .toString(player.playerItems[i]).length()); - characterfile.write(" ", 0, 1); - characterfile.write( - Integer.toString(player.playerItemsN[i]), 0, - Integer.toString(player.playerItemsN[i]).length()); + characterfile.write("character-item = " + i + "\t" + player.playerItems[i] + "\t" + player.playerItemsN[i]); characterfile.newLine(); } } characterfile.newLine(); /* BANK */ - characterfile.write("[BANK]", 0, 6); + characterfile.write("[BANK]"); characterfile.newLine(); for (int i = 0; i < player.bankItems.length; i++) { if (player.bankItems[i] > 0) { - String lineItem = "character-bank = " + i; - lineItem += "\t" + player.bankItems[i]; - lineItem += "\t" + player.bankItemsN[i]; - // this is for player owned stores - if (player.isBot) - lineItem += "\t" + player.bankItemsV[i]; - characterfile.write(lineItem); + characterfile.write("character-bank = " + i + "\t" + player.bankItems[i] + "\t" + player.bankItemsN[i] + (player.isBot ? "\t" + player.bankItemsV[i] : "")); characterfile.newLine(); } } characterfile.newLine(); /* FRIENDS */ - characterfile.write("[FRIENDS]", 0, 9); + characterfile.write("[FRIENDS]"); characterfile.newLine(); for (int i = 0; i < player.friends.length; i++) { if (player.friends[i] > 0) { - characterfile.write("character-friend = ", 0, 19); - characterfile.write(Integer.toString(i), 0, Integer - .toString(i).length()); - characterfile.write(" ", 0, 1); - characterfile.write("" + player.friends[i]); + characterfile.write("character-friend = " + i + "\t" + player.friends[i]); characterfile.newLine(); } } characterfile.newLine(); - characterfile.write("[IGNORES]", 0, 9); + characterfile.write("[IGNORES]"); characterfile.newLine(); for (int i = 0; i < player.ignores.length; i++) { if (player.ignores[i] > 0) { - characterfile.write("character-ignore = ", 0, 19); - characterfile.write(Integer.toString(i), 0, Integer.toString(i).length()); - characterfile.write(" ", 0, 1); - characterfile.write(Long.toString(player.ignores[i]), 0, Long.toString(player.ignores[i]).length()); + characterfile.write("character-ignore = " + i + "\t" + player.ignores[i]); characterfile.newLine(); } } characterfile.newLine(); /* EOF */ - characterfile.write("[EOF]", 0, 5); - characterfile.newLine(); + characterfile.write("[EOF]"); characterfile.newLine(); characterfile.close(); } catch (IOException ioexception) { From ab57946a013fcc72a1eb4afacfe5c8f315c56b9e Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sun, 24 Nov 2019 16:28:31 +1300 Subject: [PATCH 50/55] items are un noted when sold to shop --- .../src/redone/game/shops/ShopAssistant.java | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/2006Redone Server/src/redone/game/shops/ShopAssistant.java b/2006Redone Server/src/redone/game/shops/ShopAssistant.java index 6a7165b4..cd84fe4a 100644 --- a/2006Redone Server/src/redone/game/shops/ShopAssistant.java +++ b/2006Redone Server/src/redone/game/shops/ShopAssistant.java @@ -328,9 +328,11 @@ public class ShopAssistant { } public boolean sellItem(int itemID, int fromSlot, int amount) { + int unNotedItemID = getUnNoted(itemID); + String itemName = ItemAssistant.getItemName(itemID).toLowerCase(); for (int i : Constants.ITEM_SELLABLE) { - if (i == itemID) { - player.getActionSender().sendMessage("You can't sell " + ItemAssistant.getItemName(itemID).toLowerCase() + "."); + if (i == unNotedItemID) { + player.getActionSender().sendMessage("You can't sell " + itemName + "."); return false; } } @@ -355,7 +357,7 @@ public class ShopAssistant { // Only buys what they sell case 2: for (int j = 0; j <= ShopHandler.ShopItemsStandard[player.myShopId]; j++) { - if (itemID == (ShopHandler.ShopItems[player.myShopId][j] - 1)) { + if (unNotedItemID == (ShopHandler.ShopItems[player.myShopId][j] - 1)) { canSellToStore = true; break; } @@ -372,17 +374,17 @@ public class ShopAssistant { } if (canSellToStore == false) { player.getItemAssistant(); - player.getActionSender().sendMessage("You can't sell " + ItemAssistant.getItemName(itemID).toLowerCase() + " to this store."); + player.getActionSender().sendMessage("You can't sell " + itemName + " to this store."); return false; } // player owned store, setting item price if (ShopHandler.playerOwnsStore(player.myShopId, player)) { // No items in stock, we are adding 1 and setting the price - if (ShopHandler.getStock(player.myShopId, itemID) <= 0){ + if (ShopHandler.getStock(player.myShopId, unNotedItemID) <= 0){ player.getItemAssistant().deleteItem(itemID, 1); - BotHandler.addTobank(player.myShopId, itemID, 1); - BotHandler.setPrice(player.myShopId, itemID, amount); - addShopItem(itemID, 1); + BotHandler.addTobank(player.myShopId, unNotedItemID, 1); + BotHandler.setPrice(player.myShopId, unNotedItemID, amount); + addShopItem(unNotedItemID, 1); player.getItemAssistant().resetItems(3823); resetShop(player.myShopId); updatePlayerShop(); @@ -392,14 +394,14 @@ public class ShopAssistant { if (amount > inventoryAmount) { amount = inventoryAmount; } - String itemName = ItemAssistant.getItemName(itemID).toLowerCase(); + int value = 1; int currency = 995; if (player.myShopId == 138 || player.myShopId == 58 || player.myShopId == 139) { - value = (int) Math.floor(getTokkulValue(itemID) * .85); + value = (int) Math.floor(getTokkulValue(unNotedItemID) * .85); currency = 6529; } else { - value = (int) Math.floor(getItemShopValue(itemID, amount, true)); + value = (int) Math.floor(getItemShopValue(unNotedItemID, amount, true)); currency = 995; } @@ -411,23 +413,19 @@ public class ShopAssistant { player.getItemAssistant().deleteItem(itemID, amount); - // Only un note items if it's not a player owned store - if (!ShopHandler.playerOwnsStore(player.myShopId, player)) - itemID = getUnNoted(itemID); - if (ShopHandler.playerOwnsStore(player.myShopId, player)) { // Add items to players store player.getActionSender().sendMessage("You sent " + amount + " " + itemName + " to your store."); - BotHandler.addTobank(player.myShopId, itemID, amount); + BotHandler.addTobank(player.myShopId, unNotedItemID, amount); } else { // Add currency to players inventory int totalValue = value * amount; player.getItemAssistant().addItem(currency, totalValue); - player.getActionSender().sendMessage("You sold " + amount + " " + itemName + " for " + totalValue + " " + ItemAssistant.getItemName(itemID).toLowerCase() + "."); + player.getActionSender().sendMessage("You sold " + amount + " " + itemName + " for " + totalValue + " " + ItemAssistant.getItemName(currency).toLowerCase() + "."); } // Add item to the shop - addShopItem(itemID, amount); + addShopItem(unNotedItemID, amount); player.getItemAssistant().resetItems(3823); resetShop(player.myShopId); updatePlayerShop(); From 9d57cb6d1abf15e9c14cc8b013bc0304150a6144 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sun, 24 Nov 2019 16:37:03 +1300 Subject: [PATCH 51/55] Buy noted items from player owned stores --- .../src/redone/game/shops/ShopAssistant.java | 18 +++++++++++------- ...ighscoresHandler$globalDmgComparator.class | Bin 1368 -> 1368 bytes ...ighscoresHandler$totalGoldComparator.class | Bin 1482 -> 1482 bytes ...ghscoresHandler$totalLevelComparator.class | Bin 1489 -> 1489 bytes .../game/players/HighscoresHandler.class | Bin 2996 -> 3161 bytes .../redone/game/players/PlayerSave.class | Bin 26301 -> 24151 bytes .../redone/game/shops/ShopAssistant.class | Bin 12825 -> 13056 bytes .../redone/net/packets/impl/Commands.class | Bin 22231 -> 22390 bytes 8 files changed, 11 insertions(+), 7 deletions(-) diff --git a/2006Redone Server/src/redone/game/shops/ShopAssistant.java b/2006Redone Server/src/redone/game/shops/ShopAssistant.java index cd84fe4a..b599a611 100644 --- a/2006Redone Server/src/redone/game/shops/ShopAssistant.java +++ b/2006Redone Server/src/redone/game/shops/ShopAssistant.java @@ -483,7 +483,10 @@ public class ShopAssistant { public boolean buyItem(int itemID, int fromSlot, int amount) { int shopID = player.myShopId; - boolean isStackable = ItemDefinitions.getDef()[itemID].isStackable; + int notedItemID = getNoted(itemID); + boolean isPlayerShop = ShopHandler.ShopBModifier[player.myShopId] == 0; + // Items are stackable if from a player owned shop and notable + boolean isStackable = ItemDefinitions.getDef()[itemID].isStackable || (isPlayerShop && getNoted(itemID) != itemID); int freeSlots = player.getItemAssistant().freeSlots(); int storeQty = ShopHandler.getStock(shopID, itemID); if (amount > 0) { @@ -497,7 +500,7 @@ public class ShopAssistant { amount = storeQty; } if (freeSlots <= 0){ - if (!isStackable || isStackable && !player.getItemAssistant().playerHasItem(itemID)) { + if (!isStackable || isStackable && !player.getItemAssistant().playerHasItem(isPlayerShop ? notedItemID : itemID)) { player.getActionSender().sendMessage("You don't have enough space in your inventory."); return false; } @@ -518,11 +521,11 @@ public class ShopAssistant { int value = 0; int currency = 995; // player owned shop - boolean playerOwnsShop = ShopHandler.playerOwnsStore(player.myShopId, player); - if (playerOwnsShop) { + boolean showIsOwnedByThisPlayer = ShopHandler.playerOwnsStore(player.myShopId, player); + if (showIsOwnedByThisPlayer) { // PLayers own shop, no cost value = 0; currency = -1; - } else if (ShopHandler.ShopBModifier[player.myShopId] == 0) { + } else if (isPlayerShop) { // Shop owned by another player value = BotHandler.getItemPrice(player.myShopId, itemID); currency = 995; // gp } else if (player.myShopId == 138 || player.myShopId == 58 || player.myShopId == 139) { @@ -565,7 +568,7 @@ public class ShopAssistant { } String itemName = ItemAssistant.getItemName(itemID).toLowerCase(); - if (!playerOwnsShop) { + if (!showIsOwnedByThisPlayer) { player.getItemAssistant().deleteItem2(currency, totalValue); player.getActionSender().sendMessage("You bought " + amount + " " + itemName + " for " + totalValue + " " + currencyName + "." ); // If it is a player owned shop, we need to give them the coins @@ -574,7 +577,8 @@ public class ShopAssistant { } else { player.getActionSender().sendMessage("You withdrew " + amount + " " + itemName + " from your store." ); } - player.getItemAssistant().addItem(itemID, amount); + // If it is a player owned store, give the player the noted item + player.getItemAssistant().addItem(isPlayerShop ? notedItemID : itemID, amount); ShopHandler.buyItem(shopID, itemID, amount); if (ShopHandler.ShopBModifier[shopID] == 0){ BotHandler.removeFrombank(shopID, itemID, amount); diff --git a/CompiledServer/production/2006rebotted/redone/game/players/HighscoresHandler$globalDmgComparator.class b/CompiledServer/production/2006rebotted/redone/game/players/HighscoresHandler$globalDmgComparator.class index 388f7a7ce8b5da549656f2a9e77dec43eb4d828e..c8ff40b189b3ea81c8c47d403727a5131f776464 100644 GIT binary patch delta 31 kcmcb?b%SezE(@d0WIYxqM*GQyED=EVDHdBG$-x=`0F{;qk^lez delta 31 kcmcb?b%SezE(@diWIYxqMytt%ED=EVDHdBG$-x=`0F-_RegFUf diff --git a/CompiledServer/production/2006rebotted/redone/game/players/HighscoresHandler$totalGoldComparator.class b/CompiledServer/production/2006rebotted/redone/game/players/HighscoresHandler$totalGoldComparator.class index 1a314f41001fe8ce32513aaa5bafb54d92301187..c30fa05007e73490546336f5f5ace96c67133f3b 100644 GIT binary patch delta 31 kcmX@beTsX-OcqAd$+K8I7%e70W{Ci@ZCGuAWEE=w0H{<6kpKVy delta 31 kcmX@beTsX-Ocq9i$+K8I7>y@CW{Ci@ZCGuAWEE=w0H-_&eE^0v1NS$qQLL7!4=CVu=8^0v1Ni$qQLL7KZ7D%Tp~&Nmx*r50#dcNJbD4TWrhf^3bx7l)9Q^ zmS)x^4Gk-lAngH1W}V5Irnfb{suzuK`vZDiF@8p2Wt7&=3ZJ%p11MPl0yxxCT$ik*!XDIqQj)qCWjX_=(32|yu`~n;_0@C z+Pp$cgB~s77Q1zLk7i3~(QDDCJ^dB~TEA+MwCET#N!b)Lq@Ni!dCjJT77g}lYsBJp z{mwUR_OV}k4rq}!IcQU2WhcldY_=E|CFQhMrb6Jpx z4o4FXpK?}V#QGE63V(N`Hxi2~>XXs#{=R597U_+K2NG_dQS2JV5=rVahtHXGi;beS z=egi8#TSxPeTl;~GbUd;Tx3GKFFAb03Ae*&^nT5Rd(PPG|Ar<-(CspUR~+AQ)#wZ) zA|uh{&UmaRH7M!D2RHSn6sk>O52hl?)L=_I)uSk^*q$v_BGMNNH>Z;EzF0$Ln|sP1 zy7G(vf(qBj=zwh0#S{6UAP@Dj6jEuC4@-C(29`ulyHi$3?Qws#);9*sIhOb)32Gzn z48>aK=H+K77{@=&omF!f0W(8k%cxIH-x|9t1YR0N)|2a&=LFOHDc~@L9AOzJStR8T zutDOrGNl`6;t@7VhiYkO6Pxkt1lYo(q5~Y@G4Ux@GQ#6*m4vs6zYOCR<@imWFnQ8s zyWC3pe3Q;Be(EoB{uFk_(>#-&|GMAAA>?Y8&N#!;qVxFkmd%Fh4NsjfAfDxygc^3p z^3GNt>leM5nuA@U*ZEhU9Ti;~F!BN!R*X~Tt@BM&BKWQ>UTSE(Sa4Am`+ar3Lf=K% zlb#WwFORH%tWH@oI*Dr(w^pgEtjw_L8YQh)S*_hdu;vGHq|6yg^VW*^k2gawLs^FM z3>CAtNh-4>RSS`%7h<_vSn}?X=)Y8*C|u^RH{;{vO`cMGbcTnZ@9MfI7lzW+9AUsMH6c$%|fnQUx1Z+laR@? vYSAKR#SOOH5Wk0A67%pJ>qM^+&ih2O*pefsutsLfBWFfV(JDWLk5*BNr;~gDotZwT&*|>}x%{VpuP-ku z{qoNbKLTBx3u$Livnj-3FiDQhnk@m3hxlx@Vn{O_lH>_%JQ=Vp^e#sYR*y(i!~&GR8?3U<>An*J9+QYK=ZEQJ>EAQ<(T0( zGlmc7QzQn8yNV-Ih7-&v{KDwuXu)ujV+wDqSQv?vw*AmToweDBUL|47F?pgXSRr+NWxw`EJv$wEwYINV= zp0V8%|gZD-iO$@kmJu1LGaW%n^;ULQ#wyY zTbXMAEQwUj#r7W0>GspIRQs*KBE{KKR~_6Tx-HRoW?J;(w3n)jS#+8@x7)u!mDu%j zcEaoSYkhn28ySua`=n(^E^N0!uaF*YRhMaqS$u^|Y4|d8UCP8P`H5ti8)KHHmWi;t z7rZfzF-;Hf%)3%U|lr_)ia=9x| zPqma=CzonM7@B4&-_yudnv_eks+LP;d2W?IML4jW7R0nuOS$w&W)IV6J14V#1_a#F zTSHLo{7qK#h^jOV*XX?_q&hq*YYvamDY{8OJ490z$lcA!Z{$e09Jh*2i@pu#Uv1#a A*#H0l diff --git a/CompiledServer/production/2006rebotted/redone/game/players/PlayerSave.class b/CompiledServer/production/2006rebotted/redone/game/players/PlayerSave.class index 5ff93bd26f6eab4f726c5a68d414c04c8afa9bc0..9346487e104c45b60fdd90c7b825492bd697e479 100644 GIT binary patch literal 24151 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 ZCa66Az7-Nr|Ikjx@qY!;*~nsP{|8Hq4Z8pU diff --git a/CompiledServer/production/2006rebotted/redone/game/shops/ShopAssistant.class b/CompiledServer/production/2006rebotted/redone/game/shops/ShopAssistant.class index c430d13187fd81e168f07c2d1ed81643c35b80b7..cb099933f7bd6757b443da07bd3096a9716d7bdf 100644 GIT binary patch delta 5685 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 JWlZ6V{{i$d#~%Oy diff --git a/CompiledServer/production/2006rebotted/redone/net/packets/impl/Commands.class b/CompiledServer/production/2006rebotted/redone/net/packets/impl/Commands.class index df2315efed8a24872897e46f1e8a62d07f933ffd..69da3adee8174a5af02cc6588f06d23f98c7ddfa 100644 GIT binary patch delta 10045 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%0ASGvSar4o52jcz)X1nGu6j;vL-;j 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 delta 9932 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 AEdT%j From c3f4e831a348259d592e08d6d97ba9c59eda6a25 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sun, 24 Nov 2019 16:43:02 +1300 Subject: [PATCH 52/55] trim the excess tabs --- .../src/redone/game/players/PlayerSave.java | 4 ++-- .../redone/game/players/PlayerSave.class | Bin 24151 -> 24157 bytes 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/2006Redone Server/src/redone/game/players/PlayerSave.java b/2006Redone Server/src/redone/game/players/PlayerSave.java index 41d05252..0705421f 100644 --- a/2006Redone Server/src/redone/game/players/PlayerSave.java +++ b/2006Redone Server/src/redone/game/players/PlayerSave.java @@ -651,7 +651,7 @@ public class PlayerSave { for (boolean element : player.getPlayList().unlocked) { music += element + "\t"; } - characterfile.write("music = " + music); + characterfile.write("music = " + music.trim()); characterfile.newLine(); characterfile.write("randomActions = " + player.randomActions); characterfile.newLine(); @@ -773,7 +773,7 @@ public class PlayerSave { for (int voidS : player.voidStatus){ voidStatus += voidS + "\t"; } - characterfile.write("void = " + voidStatus); + characterfile.write("void = " + voidStatus.trim()); characterfile.newLine(); characterfile.newLine(); diff --git a/CompiledServer/production/2006rebotted/redone/game/players/PlayerSave.class b/CompiledServer/production/2006rebotted/redone/game/players/PlayerSave.class index 9346487e104c45b60fdd90c7b825492bd697e479..fe65c7cb32f6991f683f50671870cb3a48b84a0a 100644 GIT binary patch delta 965 zcmXw&VN6z47{~AVKfd?gbI!fzoLkN6ozt?>LS^X+(+Ue6uMx1!2ylaD%eiK&w%YQ8 zAKo@UwAzyL4GaoWGD3yKfQp0+^9>6`OHxWSG)q&%0u>UAuBo4%-~a#r@I3o(&%ri! zxQ#WI#dw1iv4mv>X-(C!q|KsDPv$Lm!ja665XnF_?I}FU;(JkQ@5dYVAl|fxu-5UB za00yL%s`nl6Xi}0);W*hZD$24oaa#Kyoz_6*YU1XhbpHY)lMhgbGoqJ>B9z>p~j71 zy(_WNy&WI8(@^VX;X^kYb?!23a-YU#cQv-Sub|$oL4#Y1kK%3zwz^3)x&zqe9>>S- zIGQ-2nNLOwpNda-20rDP_>32$l`qBTd=<9yINEq6+Icm;;H}uf+wmpuLkI82PCkOK z_!xGHiAahlz82}|6mzj#C`Y_UY{OpBf_-8iz7xIpUYx~# zF^pcR@PoV#2V@!!%30`>x%g2o!cX!U9FotYU%rOJat)5iP54gXob zLN}`;6jjGUK1q|*8JePo=@vCYx9SNrRcFv`Iy2;jl%jL!4!xLCbpcJ&PtkP!EX~lh zl%_X_x{+q;X1Ysnr@QqIO4r>qTOXi%%p97t+}uy;Wa>(F5jDdeA&UnPvse zHwju`)`hx?VrBz9Wa=o})YHSJm2ymya?K#+nW0dR(js$-9t()_1BV_DBrORP6$F|J zgH$RCrYA~^r^I`#3^vSqtgsbp5<3?XSGiW+|DLV3Tup6t@tUWXScO+oz0-R63YmN> z`zmd{M%GKFjGbql7TGU|3U(o+%kAIEMnZ}NI^5R9x}z3d{zkToB`wQZU{0~o@C0Tp WHir@mOJXdVSW}Y1W+j?S-v1AANe&tS delta 992 zcmXw&Z%mbC7{;IHx;^K8p7+o5K5w=tbu(pTnmT8SP74**Ns?oj64E*!+-kPfht^zk z%kA)?)v7t7qn(NZLcyRyB$l!1Q&46>6_QekA2kfMN8NWG?h`(4-d;l6g?yL%e> z$wt0!XGrd00cJAh%}SJpT7%q*t;@bS@m%;pBhj&ehytESoXGFx(RLICJMn7p9EyYI z@tR>GW+?11W@D!@53d`m5jS%1hOrrM8c*Ua;{}u$FXL^a67Lw*C^cG8W*kMik;J>k z1S$kjE(CUqR8)#ts1ljjBSLsjY(lko95td4?~CX0fhfa=Vi#(oq6vG&A?y=9*e`lf zC&rPG3?Ipy|f+ksyX4!zxWfEV=ZXA-s z_)?Cc#hi>*GX;mug*alS8Ia|_zdB6OHBM30-b_}Z*Pr`drnvkTvt z12|z`z_*r#q~+o}YYt9Y^Kr_`Mz|Ad&cN?>CjPJ^IA?FdfV~Zac3~8M+9fz|m*IllfFZjH z7wv9bvU@OWk72|f$EcHn%g$7cIqCSzS%$xzJpAJnVBFb)E6!F-I5GU|#ECg|#GQJA z(?#SYX_C`T0cV7Q%A-4`*Mtm1TwDy0-v zLAR>CbelRwQ`Bjn&(Jh=mZqygx?K&?3^hSB-6fRjE~gppDoS(jqdVOkn(gM&95+ID zxtnROTTb)b-M+4&1#T_f?H-^-?m=4Y9;S4+la}a(v^1*IX|cYCmg|+2q3@>^dJV1A z8)=n(j576h%F@NYj#EgN&}v;l*}94z&4Q&skJ_)NN#i*GR8r+1IK12C-*#5g*}47zLj(V|>)7t7n Date: Sun, 24 Nov 2019 17:50:34 +1300 Subject: [PATCH 53/55] check un noted version for buy price etc --- .../src/redone/game/shops/ShopAssistant.java | 27 +++++++++++------- .../redone/game/shops/ShopAssistant.class | Bin 13056 -> 13231 bytes 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/2006Redone Server/src/redone/game/shops/ShopAssistant.java b/2006Redone Server/src/redone/game/shops/ShopAssistant.java index b599a611..21b9de44 100644 --- a/2006Redone Server/src/redone/game/shops/ShopAssistant.java +++ b/2006Redone Server/src/redone/game/shops/ShopAssistant.java @@ -273,8 +273,10 @@ public class ShopAssistant { * Sell item to shop (Shop Price) **/ public void sellToShopPrice(int removeId, int removeSlot) { + int unNotedItemID = getUnNoted(removeId); + String itemName = ItemAssistant.getItemName(unNotedItemID); for (int i : Constants.ITEM_SELLABLE) { - if (i == removeId) { + if (unNotedItemID == i) { player.getActionSender().sendMessage("You can't sell " + ItemAssistant.getItemName(removeId).toLowerCase() + "."); return; } @@ -284,7 +286,7 @@ public class ShopAssistant { // Only buys what is in stock case 2: for (int j = 0; j <= ShopHandler.ShopItemsStandard[player.myShopId]; j++) { - if (removeId == (ShopHandler.ShopItems[player.myShopId][j] - 1)) { + if (unNotedItemID == (ShopHandler.ShopItems[player.myShopId][j] - 1)) { IsIn = true; break; } @@ -294,7 +296,7 @@ public class ShopAssistant { case 1: IsIn = true; break; - // Player owned store + // Player owns this store case 0: IsIn = ShopHandler.playerOwnsStore(player.myShopId, player); break; @@ -303,8 +305,8 @@ public class ShopAssistant { if (IsIn == false) { player.getActionSender().sendMessage("You can't sell " + ItemAssistant.getItemName(removeId).toLowerCase() + " to this store."); } else { - int ShopValue = (int) Math.floor(getItemShopValue(removeId, 1, true)); - int tokkulValue = (int) Math.floor(getTokkulValue(removeId) *.85); + int ShopValue = (int) Math.floor(getItemShopValue(unNotedItemID, 1, true)); + int tokkulValue = (int) Math.floor(getTokkulValue(unNotedItemID) *.85); String ShopAdd = ""; if (ShopValue >= 1000 && ShopValue < 1000000) { ShopAdd = " (" + (ShopValue / 1000) + "K)"; @@ -312,17 +314,20 @@ public class ShopAssistant { ShopAdd = " (" + (ShopValue / 1000000) + " million)"; } if (ShopHandler.playerOwnsStore(player.myShopId, player)) { - player.getActionSender().sendMessage(ItemAssistant.getItemName(removeId) + ": set your sell price."); + if (ShopHandler.getStock(player.myShopId, unNotedItemID) > 0) + player.getActionSender().sendMessage(itemName + ": you are selling this item for " + BotHandler.getItemPrice(player.myShopId, unNotedItemID) + " coins."); + else + player.getActionSender().sendMessage(itemName + ": you haven't set your sell price."); } else if (player.myShopId != RANGE_SHOP && player.myShopId != PEST_SHOP && player.myShopId != CASTLE_SHOP && player.myShopId != 138 && player.myShopId != 58 && player.myShopId != 139) { - player.getActionSender().sendMessage(ItemAssistant.getItemName(removeId) + ": shop will buy for " + ShopValue + " coins." + ShopAdd); + player.getActionSender().sendMessage(itemName + ": shop will buy for " + ShopValue + " coins." + ShopAdd); } else if (player.myShopId == 138 || player.myShopId == 139 || player.myShopId == 58) { - player.getActionSender().sendMessage(ItemAssistant.getItemName(removeId) + ": shop will buy for " + tokkulValue + " tokkul."); + player.getActionSender().sendMessage(itemName + ": shop will buy for " + tokkulValue + " tokkul."); } else if (player.myShopId == RANGE_SHOP) { - player.getActionSender().sendMessage(ItemAssistant.getItemName(removeId) + ": shop will buy for " + getRGItemValue(removeId) + " archery tickets." + ShopAdd); + player.getActionSender().sendMessage(itemName + ": shop will buy for " + getRGItemValue(unNotedItemID) + " archery tickets." + ShopAdd); } else if (player.myShopId == PEST_SHOP) { - player.getActionSender().sendMessage(ItemAssistant.getItemName(removeId) + ": shop will buy for " + getPestItemValue(removeId) + " pest control points." + ShopAdd); + player.getActionSender().sendMessage(itemName + ": shop will buy for " + getPestItemValue(unNotedItemID) + " pest control points." + ShopAdd); } else if (player.myShopId == CASTLE_SHOP) { - player.getActionSender().sendMessage(ItemAssistant.getItemName(removeId) + ": shop will buy for " + getCastleItemValue(removeId) + " castle war tickets." + ShopAdd); + player.getActionSender().sendMessage(itemName + ": shop will buy for " + getCastleItemValue(unNotedItemID) + " castle war tickets." + ShopAdd); } } } diff --git a/CompiledServer/production/2006rebotted/redone/game/shops/ShopAssistant.class b/CompiledServer/production/2006rebotted/redone/game/shops/ShopAssistant.class index cb099933f7bd6757b443da07bd3096a9716d7bdf..58a2955708461900170cfa650527f57fc332501e 100644 GIT binary patch delta 6388 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 delta 6315 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 Np9uGN=~MW}{{fUkg*E^H From 4b78f6c13650c26825b33f93d0c816ed327d2d27 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sun, 24 Nov 2019 23:41:43 +1300 Subject: [PATCH 54/55] give slayer xp on kill --- .../content/combat/range/DwarfCannon.java | 34 +++++++----------- .../src/redone/game/npcs/NpcHandler.java | 3 +- .../content/combat/range/DwarfCannon.class | Bin 12658 -> 12602 bytes 3 files changed, 15 insertions(+), 22 deletions(-) diff --git a/2006Redone Server/src/redone/game/content/combat/range/DwarfCannon.java b/2006Redone Server/src/redone/game/content/combat/range/DwarfCannon.java index e599f1e3..a4fc1543 100644 --- a/2006Redone Server/src/redone/game/content/combat/range/DwarfCannon.java +++ b/2006Redone Server/src/redone/game/content/combat/range/DwarfCannon.java @@ -1,5 +1,6 @@ package redone.game.content.combat.range; +import redone.Constants; import redone.Server; import redone.event.CycleEvent; import redone.event.CycleEventContainer; @@ -356,7 +357,7 @@ public class DwarfCannon { } public boolean noSetUpArea() { - return (player.absX >= 2024 && player.absX <= 2047 && player.absY >= 2047 && player.absY <= 4542) || player.inBank() || player.inFightCaves() || (player.absX >= 3161 && player.absX <= 3168 && player.absY >= 3486 && player.absY <= 3493); + return player.inBank() || player.inFightCaves(); } private int getHit() { @@ -379,17 +380,6 @@ public class DwarfCannon { if (damage > target.HP) { damage = target.HP; } - if (player.inMulti() && target.inMulti()) { - cannonProjectile(target); - target.hitDiff2 = damage; - target.HP -= damage; - target.killerId = player.playerId; - target.facePlayer(player.playerId); - target.hitUpdateRequired2 = true; - target.updateRequired = true; - myBalls -= 1; - player.getPlayerAssistant().addSkillXP(damage * expRate, player.playerRanged); - } if (!player.inMulti()) { if (target.underAttackBy > 0 && target.underAttackBy != player.playerId) { return; @@ -397,16 +387,18 @@ public class DwarfCannon { if (player.underAttackBy2 > 0 && player.underAttackBy2 != target.npcId) { return; } - cannonProjectile(target); - target.hitDiff2 = damage; - target.HP -= damage; - target.killerId = player.playerId; - target.facePlayer(player.playerId); - target.hitUpdateRequired2 = true; - target.updateRequired = true; - myBalls -= 1; - player.getPlayerAssistant().addSkillXP(damage * expRate, player.playerRanged); } + cannonProjectile(target); + target.hitDiff2 = damage; + target.HP -= damage; + player.globalDamageDealt += damage; + target.killerId = player.playerId; + target.killedBy = player.playerId; + target.facePlayer(player.playerId); + target.hitUpdateRequired2 = true; + target.updateRequired = true; + myBalls -= 1; + player.getPlayerAssistant().addSkillXP(damage * Constants.RANGE_EXP_RATE, player.playerRanged); } } diff --git a/2006Redone Server/src/redone/game/npcs/NpcHandler.java b/2006Redone Server/src/redone/game/npcs/NpcHandler.java index da2393d1..6bd0fa4d 100644 --- a/2006Redone Server/src/redone/game/npcs/NpcHandler.java +++ b/2006Redone Server/src/redone/game/npcs/NpcHandler.java @@ -585,7 +585,8 @@ public class NpcHandler { && npcs[i].needRespawn == false) { npcs[i].updateRequired = true; npcs[i].facePlayer(0); - npcs[i].killedBy = NpcData.getNpcKillerId(i); + if (npcs[i].killedBy <= 0) + npcs[i].killedBy = NpcData.getNpcKillerId(i); npcs[i].animNumber = NpcEmotes.getDeadEmote(i); // dead // emote Client c = (Client) PlayerHandler.players[npcs[i].killedBy]; diff --git a/CompiledServer/production/2006rebotted/redone/game/content/combat/range/DwarfCannon.class b/CompiledServer/production/2006rebotted/redone/game/content/combat/range/DwarfCannon.class index 4762d14d539fa0a27fe6a406a64815d3b7da7362..49b865792b3c1adaae1599551d49f443ba67e8e8 100644 GIT binary patch delta 4793 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 VDYCz^*X#d=9yG<1(O-c({0G!ANoW87 delta 4951 zcma)933yc175>jGc{7t2!i4O5LP9VJ2}=x-gosE{svyd)B7sCjL{!`n9S}hULE;mI zh=dpx0o#g!sA$ouh}x>PtqX14uoi4T+fQ+;iKhQ~Z!#H`d^&ubd+vQ_yZ=4++>?EC zKAY3`xDIu88== zrK8&?9-nyq5+jBZpC1#%uOtwVSTPNW3m{MW=pIyZC-gQ!`UNCWl5{y)Ns1w< zx{{`D(p4}c5F*X=NtUi>E6Fh=H-KR{=94^*lCPw{PYQG_^vM996!~PJPfkz+#Xc#~ zu~dT_WJp;6qZtjIl?P<74DrcOH9AaJDtvOH%2w*iaGzB9Fr-@JsnJg(RjyXa z$pIN9r|8;fC8zpjjQm1Bj17<*t81s}+UdHnamxKtKb)c5nM%g%hY1?QSvsAl)3cR3 z$1js)vXUvB4kDUd3@DkZWSW|uu4IOib5-v=HFLfpGu!&P7Q2j8LoP66mUXY^sMNKE zyw&bGze1ylrMTY25-c`xyOP^xZaR? zrd%rX1!Y!UOlfk#5OsaTl*?p+DVM9)d#FD*P?LIvTxrNcQ?8P$O}R$(uf_F(Qq@Z| za@x$&~wax?af!B~7x*l>3Q_Y*g}qu5Ch-Db31lR??!NK4?m-PPWKa zQ?_Aowkg{=#{tUXHTCyLjrt*#*&#dI68h})v>i+cO6Uq!gm}0#9moYW1vn;Xj@To! z0fHOIyRe8H6T{}2H1^0G;V7CW_ME9^kIXxJWae;8(Bz5Oxs`L~kR$0qZzGmQyQ>#mQ#E(RY2jJo2_*?_2i14NY_QVDvQ!J;7RP~9wl_gt70ooNgFh_M{$F#m}|$K8CC=` zaeo-MOl&0Qg5t()r_+?^)w4~#m{vMYO(noX`T&vI#BDbt4K21==g>03W=#Um1g54M zBf_0XQ){dowzZMzmrPP?$#ev4<>RxBZ_##4BtI29BNknl968qMQF}Gv?u1J^Fy1-S zmhj>HFMSO0to-?sO~V-1d&k;q64GbfE!W1KWf@h=J{0^b%QcalybtG2hr}x5Ej6 zZvLc3{*yV6k<7>%R;`gZhgKKyUl;LT7j}Aw9bB0%Td+d7!a_UA)WtHv5$vit^w+wP3=4)sB`J^B%q{k3Yd8vmX4N=9w z7qRZ^4xI<(gf7|&s10gANo}o_w-oPzu?N{f<7f+tBa^OHWI2a;? zqv8`zE)v1F=$!c@eTpB$G1*Pqnz5&y$?4qK$ zcFZjG?ByECENf;_#)!Ih%$^n&Zo&%c&e?D!Wd}COF0{$R*ej3V1=)=kWiQ^Bb{v*{I3`cx3wc^h zc}Duk^O7S6Bu`%ApBOJowY(~4%4;$~nq{)QVFPzMj1V1F;29gGd@056h@6{F`{P-1 z9=guLbL6}XAO+8pi{VpuPIuLosZr@&22BP!LmwJqZ9g_hO-M`N|1Lh*d}p@t z+By~C0K86b@MQ5>J-vY(>N!@Hq3+JB7BA4fUin%aBp2xoYDQ_B!G2ax(wbP3oHM^} zWcZAV+i_W4ZDt7%s=+n4(vwAQuC=@*KeXU#PhH>ac3iH>>9TLH{VvEmh?92-%X=u0 z_faMvV6q&xBhr!xOo>D^1uqjgcKbLTzqcbwM>YOH&W!>L!7JoEC_@omC8zBkdt(if zR;)v%Bdz+4!)&>E>yV$BV2COxV)(4k&JTrG1?W2F|N3u z;h?V%ud^|5Hd4+}55-Hw{aOhfES*L+0juk|8oKBXPmqD zxcdC))I`HkS7E$KJcWkd!rN-diZ4sH_Zjhe9H)oy*Ra#*kc~$u`h$>7Pt8CgD+A>SJ8Vk(CmoIqJ{I HbH@Jzy)9tp From 4e8832cdedd2d61d0ba7b31037beb2f163da4834 Mon Sep 17 00:00:00 2001 From: RedSparr0w Date: Sun, 24 Nov 2019 23:47:47 +1300 Subject: [PATCH 55/55] tidy up --- .../game/content/quests/impl/ImpCatcher.java | 38 +++++------------- .../game/content/quests/impl/ImpCatcher.class | Bin 1890 -> 1874 bytes 2 files changed, 10 insertions(+), 28 deletions(-) diff --git a/2006Redone Server/src/redone/game/content/quests/impl/ImpCatcher.java b/2006Redone Server/src/redone/game/content/quests/impl/ImpCatcher.java index dd12d79d..5b2eb784 100644 --- a/2006Redone Server/src/redone/game/content/quests/impl/ImpCatcher.java +++ b/2006Redone Server/src/redone/game/content/quests/impl/ImpCatcher.java @@ -16,52 +16,34 @@ public class ImpCatcher { } public void showInformation() { - for (int i = 8144; i < 8195; i++) { + for (int i = 8144; i < 8295; i++) { client.getPlayerAssistant().sendFrame126("", i); } client.getPlayerAssistant().sendFrame126("@dre@Imp Catcher", 8144); client.getPlayerAssistant().sendFrame126("", 8145); if (client.impsC == 0) { - client.getPlayerAssistant() - .sendFrame126( - "I can start this quest by speaking to Wizard Mizgog who is", - 8147); - client.getPlayerAssistant().sendFrame126("in the Wizard's Tower.", - 8148); + client.getPlayerAssistant().sendFrame126( "I can start this quest by speaking to Wizard Mizgog who is", 8147); + client.getPlayerAssistant().sendFrame126("in the Wizard's Tower.", 8148); } else if (client.impsC == 1) { - client.getPlayerAssistant() - .sendFrame126( - "@str@I can start this quest by speaking to Wizard Mizgog who is", - 8147); - client.getPlayerAssistant().sendFrame126( - "@str@in the Wizard's Tower.", 8148); + client.getPlayerAssistant().sendFrame126("@str@I can start this quest by speaking to Wizard Mizgog who is", 8147); + client.getPlayerAssistant().sendFrame126("@str@in the Wizard's Tower.", 8148); client.getPlayerAssistant().sendFrame126("", 8149); - client.getPlayerAssistant().sendFrame126( - "Wizard Mizgog have asked you to get the following items:", - 8150); + client.getPlayerAssistant().sendFrame126("Wizard Mizgog have asked you to get the following items:", 8150); client.getPlayerAssistant().sendFrame126("Red bead", 8151); client.getPlayerAssistant().sendFrame126("Yellow bead", 8152); client.getPlayerAssistant().sendFrame126("Black bead", 8153); client.getPlayerAssistant().sendFrame126("White bead", 8154); } else if (client.impsC == 2) { - client.getPlayerAssistant() - .sendFrame126( - "@str@I can start this quest by speaking to Wizard Mizgog who is", - 8147); - client.getPlayerAssistant().sendFrame126( - "@str@in the Wizard's Tower.", 8148); + client.getPlayerAssistant().sendFrame126("@str@I can start this quest by speaking to Wizard Mizgog who is", 8147); + client.getPlayerAssistant().sendFrame126("@str@in the Wizard's Tower.", 8148); client.getPlayerAssistant().sendFrame126("", 8149); - client.getPlayerAssistant() - .sendFrame126( - "@str@Wizard Mizgog have asked you to get the following items:", - 8150); + client.getPlayerAssistant().sendFrame126("@str@Wizard Mizgog have asked you to get the following items:", 8150); client.getPlayerAssistant().sendFrame126("@str@Red bead", 8151); client.getPlayerAssistant().sendFrame126("@str@Yellow bead", 8152); client.getPlayerAssistant().sendFrame126("@str@Black bead", 8153); client.getPlayerAssistant().sendFrame126("@str@White bead", 8154); client.getPlayerAssistant().sendFrame126("", 8155); - client.getPlayerAssistant().sendFrame126( - "You have completed this quest!", 8156); + client.getPlayerAssistant().sendFrame126("You have completed this quest!", 8156); } client.getPlayerAssistant().showInterface(8134); } diff --git a/CompiledServer/production/2006rebotted/redone/game/content/quests/impl/ImpCatcher.class b/CompiledServer/production/2006rebotted/redone/game/content/quests/impl/ImpCatcher.class index cf1a952ae8186165560877cdc158011ad14c2558..6d1cb6c425013f86238a959ded3ca213195ece50 100644 GIT binary patch delta 134 zcmV~$yAHts0EW@;r_rrR7lUf+(z+88qgcFw#KdCiDn^TV0g-f6@dhF>djo@5ZC0@x z49=|iNpv3m?1II2zm!EM^dW9D!8FxA%M})(YJR4kgcpULLQQ%6E8zr8U m`4I3Wlu1QdstT#8PhBG#8q?IAmKL>|xdY__OcsM&09g%EMn~>I%Ippdvf8Y& z8w}nX_&v|Ve3|FBvZfdWKzu89cOzEZxct;Xj5W!fAB--Cgc%WKLX0_a79?1aVoRDM z8BXN5lIKQ&Cq+J#_)-={MMBiXrXdbZsnU`