Fix for boots of lightness (#272)

This commit is contained in:
Danial
2019-12-12 22:32:06 +13:00
committed by Daniel Ginovker
parent c891e4741e
commit 8ec8a92d20
4 changed files with 13 additions and 25 deletions
@@ -49,29 +49,18 @@ public class Weight extends ItemDefinitions {
*/ */
public static void updateWeight(Player player) { public static void updateWeight(Player player) {
if (player != null) { if (player != null) {
player.getPacketSender().writeWeight((int) player.weight); player.weight = 0;
// Inventory items // Inventory items
for (int playerItem : player.playerItems) { for (int playerItem : player.playerItems) {
if (playerItem > -1) {// inventory if (playerItem > -1) {// inventory
for (ItemList i1 : GameEngine.itemHandler.ItemList) { calcWeight(player, playerItem, "addItem");
if (i1 != null) {
if (i1.itemId == playerItem) {
calcWeight(player, playerItem, "addItem");
}
}
}
} }
} }
// Equiped items // Equiped items
for (int element : player.playerEquipment) { for (int element : player.playerEquipment) {
if (element > -1) {// equipment if (element > -1) {// equipment
for (ItemList i1 : GameEngine.itemHandler.ItemList) { if (element == 88) player.weight -= 4.5;
if (i1 != null) { else calcWeight(player, element, "addItem");
if (i1.itemId == element) {
calcWeight(player, element, "addItem");
}
}
}
} }
} }
} }
@@ -794,6 +794,7 @@ public class PacketSender {
if (player.getOutStream() == null) return this; if (player.getOutStream() == null) return this;
player.outStream.createFrame(240); player.outStream.createFrame(240);
DecimalFormat twoDForm = new DecimalFormat("#.##"); DecimalFormat twoDForm = new DecimalFormat("#.##");
weight = Math.max(0, weight);
player.outStream.writeWord(Integer.valueOf(twoDForm.format(weight))); player.outStream.writeWord(Integer.valueOf(twoDForm.format(weight)));
return this; return this;
} }
@@ -2,6 +2,7 @@ package com.rebotted.net.packets.impl;
import com.rebotted.game.content.random.PartyRoom; import com.rebotted.game.content.random.PartyRoom;
import com.rebotted.game.content.skills.crafting.JewelryMaking; 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.items.impl.RareProtection;
import com.rebotted.game.players.Player; import com.rebotted.game.players.Player;
import com.rebotted.net.packets.PacketType; import com.rebotted.net.packets.PacketType;
@@ -16,16 +17,14 @@ public class RemoveItem implements PacketType {
int interfaceId = c.getInStream().readUnsignedWordA(); int interfaceId = c.getInStream().readUnsignedWordA();
int removeSlot = c.getInStream().readUnsignedWordA(); int removeSlot = c.getInStream().readUnsignedWordA();
int removeId = 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)) { if (!RareProtection.removeItem(c, removeId)) {
return; return;
} }
c.endCurrentTask(); c.endCurrentTask();
Weight.updateWeight(c);
switch (interfaceId) { switch (interfaceId) {
case 4233: case 4233:
@@ -90,11 +89,11 @@ public class RemoveItem implements PacketType {
case 1121: case 1121:
case 1122: case 1122:
case 1123: case 1123:
c.getSmithing().readInput(c.playerLevel[c.playerSmithing], c.getSmithing().readInput(c.playerLevel[c.playerSmithing], Integer.toString(removeId), c, 1);
Integer.toString(removeId), c, 1);
break; break;
} }
Weight.updateWeight(c);
} }
} }
@@ -1,5 +1,6 @@
package com.rebotted.net.packets.impl; package com.rebotted.net.packets.impl;
import com.rebotted.game.items.Weight;
import com.rebotted.game.items.impl.RareProtection; import com.rebotted.game.items.impl.RareProtection;
import com.rebotted.game.players.Player; import com.rebotted.game.players.Player;
import com.rebotted.net.packets.PacketType; import com.rebotted.net.packets.PacketType;
@@ -14,6 +15,7 @@ public class WearItem implements PacketType {
player.wearId = player.getInStream().readUnsignedWord(); player.wearId = player.getInStream().readUnsignedWord();
player.wearSlot = player.getInStream().readUnsignedWordA(); player.wearSlot = player.getInStream().readUnsignedWordA();
player.interfaceId = player.getInStream().readUnsignedWordA(); player.interfaceId = player.getInStream().readUnsignedWordA();
Weight.updateWeight(player);
if (!RareProtection.equipItem(player)) { if (!RareProtection.equipItem(player)) {
return; return;
} }
@@ -47,16 +49,13 @@ public class WearItem implements PacketType {
player.getPlayerAssistant().emptyPouch(pouch); player.getPlayerAssistant().emptyPouch(pouch);
return; return;
} }
if (player.wearId == 88 && player.playerEquipment[10] != 88) {
player.weight -= 4.5;
player.getPacketSender().writeWeight((int) player.weight);
}
if (player.wearSlot == player.playerHat) { if (player.wearSlot == player.playerHat) {
player.getPacketSender().setConfig(491, 0); player.getPacketSender().setConfig(491, 0);
} }
player.getPlayerAssistant().handleTiara(); player.getPlayerAssistant().handleTiara();
player.getItemAssistant().wearItem(player.wearId, player.wearSlot); player.getItemAssistant().wearItem(player.wearId, player.wearSlot);
Weight.updateWeight(player);
} }
} }