diff --git a/2006Redone Server/src/com/rebotted/game/items/Weight.java b/2006Redone Server/src/com/rebotted/game/items/Weight.java index cb848b41..b535a002 100644 --- a/2006Redone Server/src/com/rebotted/game/items/Weight.java +++ b/2006Redone Server/src/com/rebotted/game/items/Weight.java @@ -49,29 +49,18 @@ public class Weight extends ItemDefinitions { */ public static void updateWeight(Player player) { if (player != null) { - player.getPacketSender().writeWeight((int) player.weight); + player.weight = 0; // Inventory items for (int playerItem : player.playerItems) { if (playerItem > -1) {// inventory - for (ItemList i1 : GameEngine.itemHandler.ItemList) { - if (i1 != null) { - if (i1.itemId == playerItem) { - calcWeight(player, playerItem, "addItem"); - } - } - } + calcWeight(player, playerItem, "addItem"); } } // Equiped items for (int element : player.playerEquipment) { if (element > -1) {// equipment - for (ItemList i1 : GameEngine.itemHandler.ItemList) { - if (i1 != null) { - if (i1.itemId == element) { - calcWeight(player, element, "addItem"); - } - } - } + if (element == 88) player.weight -= 4.5; + else calcWeight(player, element, "addItem"); } } } diff --git a/2006Redone Server/src/com/rebotted/net/PacketSender.java b/2006Redone Server/src/com/rebotted/net/PacketSender.java index fe2a0f38..feb0706e 100644 --- a/2006Redone Server/src/com/rebotted/net/PacketSender.java +++ b/2006Redone Server/src/com/rebotted/net/PacketSender.java @@ -794,6 +794,7 @@ public class PacketSender { if (player.getOutStream() == null) return this; player.outStream.createFrame(240); DecimalFormat twoDForm = new DecimalFormat("#.##"); + weight = Math.max(0, weight); player.outStream.writeWord(Integer.valueOf(twoDForm.format(weight))); return this; } diff --git a/2006Redone Server/src/com/rebotted/net/packets/impl/RemoveItem.java b/2006Redone Server/src/com/rebotted/net/packets/impl/RemoveItem.java index e9e54c9f..165112d0 100644 --- a/2006Redone Server/src/com/rebotted/net/packets/impl/RemoveItem.java +++ b/2006Redone Server/src/com/rebotted/net/packets/impl/RemoveItem.java @@ -2,6 +2,7 @@ package com.rebotted.net.packets.impl; import com.rebotted.game.content.random.PartyRoom; import com.rebotted.game.content.skills.crafting.JewelryMaking; +import com.rebotted.game.items.Weight; import com.rebotted.game.items.impl.RareProtection; import com.rebotted.game.players.Player; import com.rebotted.net.packets.PacketType; @@ -16,16 +17,14 @@ public class RemoveItem implements PacketType { int interfaceId = c.getInStream().readUnsignedWordA(); int removeSlot = c.getInStream().readUnsignedWordA(); int removeId = c.getInStream().readUnsignedWordA(); - if (removeId == 88) { - c.weight += 4.5; - c.getPacketSender().writeWeight((int) c.weight); - } if (!RareProtection.removeItem(c, removeId)) { return; } c.endCurrentTask(); + Weight.updateWeight(c); + switch (interfaceId) { case 4233: @@ -90,11 +89,11 @@ public class RemoveItem implements PacketType { case 1121: case 1122: case 1123: - c.getSmithing().readInput(c.playerLevel[c.playerSmithing], - Integer.toString(removeId), c, 1); + c.getSmithing().readInput(c.playerLevel[c.playerSmithing], Integer.toString(removeId), c, 1); break; } + Weight.updateWeight(c); } } diff --git a/2006Redone Server/src/com/rebotted/net/packets/impl/WearItem.java b/2006Redone Server/src/com/rebotted/net/packets/impl/WearItem.java index 9e529304..c40bfef9 100644 --- a/2006Redone Server/src/com/rebotted/net/packets/impl/WearItem.java +++ b/2006Redone Server/src/com/rebotted/net/packets/impl/WearItem.java @@ -1,5 +1,6 @@ package com.rebotted.net.packets.impl; +import com.rebotted.game.items.Weight; import com.rebotted.game.items.impl.RareProtection; import com.rebotted.game.players.Player; import com.rebotted.net.packets.PacketType; @@ -14,6 +15,7 @@ public class WearItem implements PacketType { player.wearId = player.getInStream().readUnsignedWord(); player.wearSlot = player.getInStream().readUnsignedWordA(); player.interfaceId = player.getInStream().readUnsignedWordA(); + Weight.updateWeight(player); if (!RareProtection.equipItem(player)) { return; } @@ -47,16 +49,13 @@ public class WearItem implements PacketType { player.getPlayerAssistant().emptyPouch(pouch); return; } - if (player.wearId == 88 && player.playerEquipment[10] != 88) { - player.weight -= 4.5; - player.getPacketSender().writeWeight((int) player.weight); - } if (player.wearSlot == player.playerHat) { player.getPacketSender().setConfig(491, 0); } player.getPlayerAssistant().handleTiara(); player.getItemAssistant().wearItem(player.wearId, player.wearSlot); + Weight.updateWeight(player); } }