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) {
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");
}
}
}
@@ -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;
}
@@ -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);
}
}
@@ -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);
}
}