diff --git a/2006Redone Server/src/com/rebotted/game/content/minigames/Dueling.java b/2006Redone Server/src/com/rebotted/game/content/minigames/Dueling.java index 1a9ae917..60d3da26 100644 --- a/2006Redone Server/src/com/rebotted/game/content/minigames/Dueling.java +++ b/2006Redone Server/src/com/rebotted/game/content/minigames/Dueling.java @@ -225,7 +225,7 @@ public class Dueling { player.getPacketSender().sendMessage("You can't do that in a duel!"); return false; } - if (!RareProtection.doOtherDupe(player, itemID)) { + if (!RareProtection.removeItemOtherActions(player, itemID)) { return false; } if (amount <= 0) { diff --git a/2006Redone Server/src/com/rebotted/game/items/ItemAssistant.java b/2006Redone Server/src/com/rebotted/game/items/ItemAssistant.java index 72161d2e..02c26f05 100644 --- a/2006Redone Server/src/com/rebotted/game/items/ItemAssistant.java +++ b/2006Redone Server/src/com/rebotted/game/items/ItemAssistant.java @@ -195,32 +195,6 @@ public class ItemAssistant { return c.playerEquipment[slot] == itemID; } - public void removeItem(int slot) { - if (c.getOutStream() != null && c != null) { - if (c.playerEquipment[slot] > -1) { - if (addItem(c.playerEquipment[slot], c.playerEquipmentN[slot])) { - c.playerEquipment[slot] = -1; - c.playerEquipmentN[slot] = 0; - sendWeapon(c.playerEquipment[c.playerWeapon], - getItemName(c.playerEquipment[c.playerWeapon])); - resetBonus(); - getBonus(); - writeBonus(); - c.getCombatAssistant().getPlayerAnimIndex(); - c.getOutStream().createFrame(34); - c.getOutStream().writeWord(6); - c.getOutStream().writeWord(1688); - c.getOutStream().writeByte(slot); - c.getOutStream().writeWord(0); - c.getOutStream().writeByte(0); - c.flushOutStream(); - c.updateRequired = true; - c.setAppearanceUpdateRequired(true); - } - } - } - } - public void addItemToBank(int itemId, int amount) { itemId++; for (int i = 0; i < GameConstants.BANK_SIZE; i++) { @@ -2095,7 +2069,7 @@ public class ItemAssistant { return freeS; } - public int getBankQuantitiy(int itemID) + public int getBankQuantity(int itemID) { for (int i = 0; i < c.bankItems.length; i++) { if (c.bankItems[i] == itemID) @@ -2107,19 +2081,67 @@ public class ItemAssistant { } public void fromBank(int itemID, int fromSlot, int amount) { + boolean cantWithdrawCuzMaxStack = false; if (amount > 0) { if (c.bankItems[fromSlot] > 0) { - if (!c.takeAsNote) { - if (Item.itemStackable[c.bankItems[fromSlot] - 1]) { + if (c.getItemAssistant().playerHasItem(itemID)) + { + for (int i = 0; i <= 27;i++) + { + if (itemID == c.playerItems[i] || (itemID == 995 && c.playerItems[i] - 1 == 995)) + { + if ((c.playerItemsN[i] + amount + 1) < -1) + { + cantWithdrawCuzMaxStack = true; + break; + } + } + } + } + if (!cantWithdrawCuzMaxStack) + { + if (!c.takeAsNote) { + if (Item.itemStackable[c.bankItems[fromSlot] - 1]) { + if (c.bankItemsN[fromSlot] > amount) { + if (addItem(c.bankItems[fromSlot] - 1, amount)) { + c.bankItemsN[fromSlot] -= amount; + resetBank(); + resetItems(5064); + } + } else { + if (addItem(c.bankItems[fromSlot] - 1, + c.bankItemsN[fromSlot])) { + c.bankItems[fromSlot] = 0; + c.bankItemsN[fromSlot] = 0; + resetBank(); + resetItems(5064); + } + } + } else { + while (amount > 0) { + if (c.bankItemsN[fromSlot] > 0) { + if (addItem(c.bankItems[fromSlot] - 1, 1)) { + c.bankItemsN[fromSlot] += -1; + amount--; + } else { + amount = 0; + } + } else { + amount = 0; + } + } + resetBank(); + resetItems(5064); + } + } else if (c.takeAsNote && Item.itemIsNote[c.bankItems[fromSlot]]) { if (c.bankItemsN[fromSlot] > amount) { - if (addItem(c.bankItems[fromSlot] - 1, amount)) { + if (addItem(c.bankItems[fromSlot], amount)) { c.bankItemsN[fromSlot] -= amount; resetBank(); resetItems(5064); } } else { - if (addItem(c.bankItems[fromSlot] - 1, - c.bankItemsN[fromSlot])) { + if (addItem(c.bankItems[fromSlot], c.bankItemsN[fromSlot])) { c.bankItems[fromSlot] = 0; c.bankItemsN[fromSlot] = 0; resetBank(); @@ -2127,71 +2149,45 @@ public class ItemAssistant { } } } else { - while (amount > 0) { - if (c.bankItemsN[fromSlot] > 0) { - if (addItem(c.bankItems[fromSlot] - 1, 1)) { - c.bankItemsN[fromSlot] += -1; - amount--; - } else { - amount = 0; + c.getPacketSender().sendMessage("This item can't be withdrawn as a note."); + if (Item.itemStackable[c.bankItems[fromSlot] - 1]) { + if (c.bankItemsN[fromSlot] > amount) { + if (addItem(c.bankItems[fromSlot] - 1, amount)) { + c.bankItemsN[fromSlot] -= amount; + resetBank(); + resetItems(5064); } } else { - amount = 0; - } - } - resetBank(); - resetItems(5064); - } - } else if (c.takeAsNote && Item.itemIsNote[c.bankItems[fromSlot]]) { - if (c.bankItemsN[fromSlot] > amount) { - if (addItem(c.bankItems[fromSlot], amount)) { - c.bankItemsN[fromSlot] -= amount; - resetBank(); - resetItems(5064); - } - } else { - if (addItem(c.bankItems[fromSlot], c.bankItemsN[fromSlot])) { - c.bankItems[fromSlot] = 0; - c.bankItemsN[fromSlot] = 0; - resetBank(); - resetItems(5064); - } - } - } else { - c.getPacketSender().sendMessage("This item can't be withdrawn as a note."); - if (Item.itemStackable[c.bankItems[fromSlot] - 1]) { - if (c.bankItemsN[fromSlot] > amount) { - if (addItem(c.bankItems[fromSlot] - 1, amount)) { - c.bankItemsN[fromSlot] -= amount; - resetBank(); - resetItems(5064); + if (addItem(c.bankItems[fromSlot] - 1, + c.bankItemsN[fromSlot])) { + c.bankItems[fromSlot] = 0; + c.bankItemsN[fromSlot] = 0; + resetBank(); + resetItems(5064); + } } } else { - if (addItem(c.bankItems[fromSlot] - 1, - c.bankItemsN[fromSlot])) { - c.bankItems[fromSlot] = 0; - c.bankItemsN[fromSlot] = 0; - resetBank(); - resetItems(5064); - } - } - } else { - while (amount > 0) { - if (c.bankItemsN[fromSlot] > 0) { - if (addItem(c.bankItems[fromSlot] - 1, 1)) { - c.bankItemsN[fromSlot] += -1; - amount--; + while (amount > 0) { + if (c.bankItemsN[fromSlot] > 0) { + if (addItem(c.bankItems[fromSlot] - 1, 1)) { + c.bankItemsN[fromSlot] += -1; + amount--; + } else { + amount = 0; + } } else { amount = 0; } - } else { - amount = 0; } + resetBank(); + resetItems(5064); } - resetBank(); - resetItems(5064); } } + else + { + c.getPacketSender().sendMessage("Can't withdraw more of that item!"); + } } } } diff --git a/2006Redone Server/src/com/rebotted/game/items/impl/RareProtection.java b/2006Redone Server/src/com/rebotted/game/items/impl/RareProtection.java index 60f5791a..d60ff814 100644 --- a/2006Redone Server/src/com/rebotted/game/items/impl/RareProtection.java +++ b/2006Redone Server/src/com/rebotted/game/items/impl/RareProtection.java @@ -9,14 +9,14 @@ import com.rebotted.game.players.Player; public class RareProtection { - public static final boolean RARES = true, CRACKERS = false; + public static final boolean RARES = true, CRACKERS = true; private static final int[] RARE_ITEMS = { 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 962, 963, 1959, 1961, 1989 }; private static final int[] EDIBLE_RARES = { 1959, 1961, 1989 }; public static boolean equipItem(Player c) {// check when wearing, removing for (int element : RARE_ITEMS) { - if (c.wearId == element && c.playerRights < 3) { + if (c.wearId == element && (RARES || CRACKERS)) { c.getPacketSender().sendMessage("You shouldn't have that item!"); int amountToDelete = c.getItemAssistant().getItemCount(element); c.getItemAssistant().deleteItem(element, amountToDelete); @@ -25,10 +25,20 @@ public class RareProtection { } return true; } - + public static boolean removeItemOtherActions(Player player, int itemId) { + for (int element : RARE_ITEMS) { + if (player.getItemAssistant().playerHasItem(element) && (RARES || CRACKERS)) { + player.getPacketSender().sendMessage("You shouldn't have that item!"); + int amountToDelete = player.getItemAssistant().getItemCount(element); + player.getItemAssistant().deleteItem(element, amountToDelete); + return false; + } + } + return true; + } public static boolean removeItem(Player c, int itemId) { for (int element : RARE_ITEMS) { - if (itemId == element && c.playerRights < 3) { + if (itemId == element && (RARES || CRACKERS)) { c.getPacketSender().sendMessage("You shouldn't have that item!"); c.getItemAssistant().deleteEquipment(element, 0); return false; @@ -39,7 +49,7 @@ public class RareProtection { public static boolean hasDupedItem(Player c) {// check on login for (int element : RARE_ITEMS) { - if (c.getItemAssistant().playerHasItem(element) && c.playerRights < 3) { + if (c.getItemAssistant().playerHasItem(element)) { c.getPacketSender().sendMessage("You can't have these items!"); int amountToDelete = c.getItemAssistant().getItemCount(element); c.getItemAssistant().deleteItem(element, amountToDelete); @@ -51,7 +61,7 @@ public class RareProtection { public static boolean eatDupedItem(Player c, int itemId) { for (int element : EDIBLE_RARES) { - if (itemId == element && c.playerRights < 3) { + if (itemId == element && RARES) { c.getPacketSender().sendMessage("You can't eat that item!"); int amountToDelete = c.getItemAssistant().getItemCount(element); c.getItemAssistant().deleteItem(element, amountToDelete); @@ -60,16 +70,4 @@ public class RareProtection { } return true; } - - public static boolean doOtherDupe(Player player, int itemId) { - for (int element : RARE_ITEMS) { - if (player.getItemAssistant().playerHasItem(element) && player.playerRights < 3) { - player.getPacketSender().sendMessage("You shouldnt have that item!"); - int amountToDelete = player.getItemAssistant().getItemCount(element); - player.getItemAssistant().deleteItem(element, amountToDelete); - return false; - } - } - return true; - } } diff --git a/2006Redone Server/src/com/rebotted/game/npcs/drops/NPCDrops.java b/2006Redone Server/src/com/rebotted/game/npcs/drops/NPCDrops.java index 620eace4..80cf71b0 100644 --- a/2006Redone Server/src/com/rebotted/game/npcs/drops/NPCDrops.java +++ b/2006Redone Server/src/com/rebotted/game/npcs/drops/NPCDrops.java @@ -1773,15 +1773,19 @@ public class NPCDrops extends NPCDropsHandler { public static final ItemDrop[] kingblackdragon = { new ItemDrop( i("dragon bones"), 1, ALWAYS ), new ItemDrop( i("black dragonhide"), 1, ALWAYS ), - new ItemDrop( i("rune longsword"), 1, UNCOMMON ), - new ItemDrop( i("rune battleaxe"), 1, UNCOMMON ), new ItemDrop( i("blood rune"), 50, COMMON ), new ItemDrop( i("death rune"), 50, COMMON ), + new ItemDrop( i("iron arrow"), 690, COMMON ), new ItemDrop( i("law rune"), 50, UNCOMMON ), new ItemDrop( i("mithril arrow"), 250, UNCOMMON ), new ItemDrop( i("rune arrow"), 50, UNCOMMON ), new ItemDrop( i("rune sq shield"), 1, UNCOMMON ), new ItemDrop( i("rune platebody"), 1, UNCOMMON ), + new ItemDrop( i("rune longsword"), 1, UNCOMMON ), + new ItemDrop( i("rune battleaxe"), 1, UNCOMMON ), + new ItemDrop( 1319, 1, UNCOMMON ), //Rune 2h sword + new ItemDrop( 1201, 1, UNCOMMON ), //Rune kiteshield + new ItemDrop( 1615, 1, UNCOMMON ), //Dragonstone new ItemDrop( i("dragon med helm"), 1, RARE ), new ItemDrop( 2361, new int[]{1, 4}, UNCOMMON ), new ItemDrop( 2363, new int[]{1, 2}, UNCOMMON ), diff --git a/2006Redone Server/src/com/rebotted/game/objects/ObjectsActions.java b/2006Redone Server/src/com/rebotted/game/objects/ObjectsActions.java index fd61cadf..7f39ff86 100644 --- a/2006Redone Server/src/com/rebotted/game/objects/ObjectsActions.java +++ b/2006Redone Server/src/com/rebotted/game/objects/ObjectsActions.java @@ -62,10 +62,6 @@ public class ObjectsActions { player.faceUpdate(0); player.clickObjectType = 0; player.turnPlayerTo(objectX, objectY); - if (!Region.objectExists(objectType, objectX, objectY, player.heightLevel) && player.playerRights > 1) { - player.getPacketSender().sendMessage("[DEBUG] This object does not exist."); - return; - } if (Webs.webs(player, objectType)) { Webs.slashWeb(player, objectType, objectX, objectY); return; @@ -2558,10 +2554,10 @@ public class ObjectsActions { player.faceUpdate(0); player.clickObjectType = 0; player.turnPlayerTo(obX, obY); - if (!Region.objectExists(objectType, obX, obY, player.heightLevel) && player.playerRights > 1) { - player.getPacketSender().sendMessage("[DEBUG] This object does not exist."); - return; - } + //if (!Region.objectExists(objectType, obX, obY, player.heightLevel) && player.playerRights > 1) { + // player.getPacketSender().sendMessage("[DEBUG] This object does not exist."); + // return; + //} LogCutting.resetFletching(player); switch (objectType) { case 6: @@ -2818,10 +2814,10 @@ public class ObjectsActions { if (player.playerRights == 3) { player.getPacketSender().sendMessage("Object type: " + objectType); } - if (!Region.objectExists(objectType, obX, obY, player.heightLevel) && player.playerRights > 1) { - player.getPacketSender().sendMessage("[DEBUG] This object does not exist."); - return; - } + //if (!Region.objectExists(objectType, obX, obY, player.heightLevel) && player.playerRights > 1) { + // player.getPacketSender().sendMessage("[DEBUG] This object does not exist."); + // return; + //} if (Stalls.isObject(objectType)) { Stalls.attemptStall(player, objectType, obX, obY); return; @@ -2864,10 +2860,10 @@ public class ObjectsActions { if (player.playerRights == 3) { player.getPacketSender().sendMessage("Object type: " + objectType); } - if (!Region.objectExists(objectType, obX, obY, player.heightLevel) && player.playerRights > 1) { - player.getPacketSender().sendMessage("[DEBUG] This object does not exist."); - return; - } + //if (!Region.objectExists(objectType, obX, obY, player.heightLevel) && player.playerRights > 1) { + // player.getPacketSender().sendMessage("[DEBUG] This object does not exist."); + // return; + //} Farming.openGuide(player, player.objectId); switch (objectType) { diff --git a/2006Redone Server/src/com/rebotted/game/players/PlayerAssistant.java b/2006Redone Server/src/com/rebotted/game/players/PlayerAssistant.java index 7efd7860..4129f77e 100644 --- a/2006Redone Server/src/com/rebotted/game/players/PlayerAssistant.java +++ b/2006Redone Server/src/com/rebotted/game/players/PlayerAssistant.java @@ -2458,6 +2458,6 @@ public class PlayerAssistant { } public int totalGold() { - return player.getItemAssistant().getBankQuantitiy(996) + player.getItemAssistant().getItemAmount(995); + return player.getItemAssistant().getBankQuantity(996) + player.getItemAssistant().getItemAmount(995); } } diff --git a/2006Redone Server/src/com/rebotted/net/packets/impl/BankAll.java b/2006Redone Server/src/com/rebotted/net/packets/impl/BankAll.java index 9abe0528..0a8498f8 100644 --- a/2006Redone Server/src/com/rebotted/net/packets/impl/BankAll.java +++ b/2006Redone Server/src/com/rebotted/net/packets/impl/BankAll.java @@ -1,5 +1,6 @@ package com.rebotted.net.packets.impl; +import com.rebotted.GameConstants; import com.rebotted.game.content.random.PartyRoom; import com.rebotted.game.items.GameItem; import com.rebotted.game.items.Item; @@ -74,8 +75,25 @@ public class BankAll implements PacketType { break; case 5382: - player.getItemAssistant().fromBank(player.bankItems[removeSlot], removeSlot, - player.bankItemsN[removeSlot]); + if (player.getItemAssistant().playerHasItem(removeId)) { + for (int i = 0; i <= 27; i++) { + if (removeId == player.playerItems[i] - 1) + { + if ((player.playerItemsN[i] + player.bankItemsN[removeSlot] + 1) < -1) { + player.getPacketSender().sendMessage("Can't withdraw more of that item!"); + break; + } else { + player.getItemAssistant().fromBank(player.bankItems[removeSlot], removeSlot, + player.bankItemsN[removeSlot]); + } + } + } + } + else + { + player.getItemAssistant().fromBank(player.bankItems[removeSlot], removeSlot, + player.bankItemsN[removeSlot]); + } break; case 3322: diff --git a/2006Redone Server/src/com/rebotted/net/packets/impl/BankX2.java b/2006Redone Server/src/com/rebotted/net/packets/impl/BankX2.java index a5a16d2a..98a197f9 100644 --- a/2006Redone Server/src/com/rebotted/net/packets/impl/BankX2.java +++ b/2006Redone Server/src/com/rebotted/net/packets/impl/BankX2.java @@ -33,7 +33,7 @@ public class BankX2 implements PacketType { break; case 5382: - player.getItemAssistant().fromBank(player.bankItems[player.xRemoveSlot], player.xRemoveSlot, Xamount); + player.getItemAssistant().fromBank(player.bankItems[player.xRemoveSlot], player.xRemoveSlot, Xamount); break; case 7423: diff --git a/2006Redone Server/src/com/rebotted/net/packets/impl/ClickNPC.java b/2006Redone Server/src/com/rebotted/net/packets/impl/ClickNPC.java index cecda4a1..171d0c6a 100644 --- a/2006Redone Server/src/com/rebotted/net/packets/impl/ClickNPC.java +++ b/2006Redone Server/src/com/rebotted/net/packets/impl/ClickNPC.java @@ -270,7 +270,6 @@ public class ClickNPC implements PacketType { }, 1); } break; - case SECOND_CLICK: client.npcClickIndex = client.inStream.readUnsignedWordBigEndianA(); client.npcType = NpcHandler.npcs[client.npcClickIndex].npcType; @@ -281,7 +280,7 @@ public class ClickNPC implements PacketType { NpcHandler.npcs[client.npcClickIndex].getY()); NpcHandler.npcs[client.npcClickIndex].facePlayer(client.playerId); client.getNpcs().secondClickNpc(client.npcType); - if (Pickpocket.isNPC(client, client.npcType)) { + if (Pickpocket.isNPC(client, client.npcType) && !((client.underAttackBy > 0 || client.underAttackBy2 > 0))) { Pickpocket.attemptPickpocket(client, client.npcType); return; } diff --git a/2006Redone Server/src/com/rebotted/net/packets/impl/DropItem.java b/2006Redone Server/src/com/rebotted/net/packets/impl/DropItem.java index 4281a503..263f476e 100644 --- a/2006Redone Server/src/com/rebotted/net/packets/impl/DropItem.java +++ b/2006Redone Server/src/com/rebotted/net/packets/impl/DropItem.java @@ -23,7 +23,7 @@ public class DropItem implements PacketType { player.getInStream().readUnsignedByte(); player.getInStream().readUnsignedByte(); int slot = player.getInStream().readUnsignedWordA(); - if (!player.getItemAssistant().playerHasItem(itemId) || !RareProtection.doOtherDupe(player, itemId) || System.currentTimeMillis() - player.alchDelay < 1800 || player.stopPlayerPacket || System.currentTimeMillis() - player.buryDelay < 1800 || !CastleWars.deleteCastleWarsItems(player, itemId)) { + if (!player.getItemAssistant().playerHasItem(itemId) || !RareProtection.removeItemOtherActions(player, itemId) || System.currentTimeMillis() - player.alchDelay < 1800 || player.stopPlayerPacket || System.currentTimeMillis() - player.buryDelay < 1800 || !CastleWars.deleteCastleWarsItems(player, itemId)) { return; } for (LogData logData : LogData.values()) { diff --git a/2006Redone Server/src/com/rebotted/net/packets/impl/ItemOnPlayer.java b/2006Redone Server/src/com/rebotted/net/packets/impl/ItemOnPlayer.java index 5717831b..5bbfb64f 100644 --- a/2006Redone Server/src/com/rebotted/net/packets/impl/ItemOnPlayer.java +++ b/2006Redone Server/src/com/rebotted/net/packets/impl/ItemOnPlayer.java @@ -21,34 +21,36 @@ public class ItemOnPlayer implements PacketType { case 962: Player o = (Player) PlayerHandler.players[playerId]; - if (!RareProtection.CRACKERS && c.playerRights < 3) { + if (RareProtection.CRACKERS) { int delete = c.getItemAssistant().getItemCount(962); c.getItemAssistant().deleteItem(962, delete); c.getPacketSender().sendMessage("You can't do that!"); return; } + c.turnPlayerTo(o.absX, o.absY); + o.turnPlayerTo(c.absX, c.absY); + o.gfx0(176); c.gfx0(176); c.startAnimation(451); + o.startAnimation(451); c.getPacketSender().sendMessage( - "You pull the Christmas Cracker..."); + "You pull the Christmas Cracker..."); o.getPacketSender().sendMessage( - "You pull the Christmas Cracker..."); + c.playerName.toUpperCase() + " need your help... You pull the Christmas Cracker..."); c.getItemAssistant().deleteItem(962, 1); if (Misc.random(3) == 1) { - o.forcedText = "Yay I got the Cracker!"; + o.forcedText = "Yay! I got the Cracker!"; o.forcedChatUpdateRequired = true; o.getItemAssistant().addItem(1038 + Misc.random(5) * 2, 1); } else { - c.forcedText = "Yay I got the Cracker!"; + c.forcedText = "Yay! I got the Cracker!"; c.forcedChatUpdateRequired = true; c.getItemAssistant().addItem(1038 + Misc.random(5) * 2, 1); } - c.turnPlayerTo(o.absX, o.absY); break; default: c.getPacketSender().sendMessage("Nothing interesting happens."); break; } - } } diff --git a/2006Redone Server/src/com/rebotted/net/packets/impl/PickupItem.java b/2006Redone Server/src/com/rebotted/net/packets/impl/PickupItem.java index 30d2603c..2c164799 100644 --- a/2006Redone Server/src/com/rebotted/net/packets/impl/PickupItem.java +++ b/2006Redone Server/src/com/rebotted/net/packets/impl/PickupItem.java @@ -44,7 +44,7 @@ public class PickupItem implements PacketType { if (!CastleWars.deleteCastleWarsItems(player, player.pItemId)) { return; } - if (!RareProtection.doOtherDupe(player, player.pItemId)) { + if (!RareProtection.removeItemOtherActions(player, player.pItemId)) { return; } if (player.pItemY > 9817 && player.pItemY < 9825 && player.pItemX > 3186 && player.pItemX < 3197 || player.pItemX > 3107 && player.pItemX < 3113 && player.pItemY > 3155 && player.pItemY < 3159 && player.heightLevel == 2) { 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 fe459561..9e529304 100644 --- a/2006Redone Server/src/com/rebotted/net/packets/impl/WearItem.java +++ b/2006Redone Server/src/com/rebotted/net/packets/impl/WearItem.java @@ -47,12 +47,10 @@ public class WearItem implements PacketType { player.getPlayerAssistant().emptyPouch(pouch); return; } - - if (player.wearId == 88) { + 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); }