Issue #1: I can either be wielding a sword OR a shield, but I can't wear both at the same time. Yes they are going into the correct slots. The issue is in that little code but I can't for the life of me get it.
Issue #2: Fixed.
Issue #1 - itemAssistant.java
Issue #2 - FixedCode:} else if (targetSlot == 5) {
boolean wearing2h = is2handed(getItemName(player.playerEquipment[player.playerWeapon]).toLowerCase(),
player.playerEquipment[player.playerWeapon]);
if (wearing2h) {
toRemove = player.playerEquipment[player.playerWeapon];
toRemoveN = player.playerEquipmentN[player.playerWeapon];
player.playerEquipment[player.playerWeapon] = -1;
player.playerEquipmentN[player.playerWeapon] = 0;
updateSlot(player.playerWeapon);
}
player.playerItems[slot] = toRemove + 1;
player.playerItemsN[slot] = toRemoveN;
player.playerEquipment[targetSlot] = toEquip - 1;
player.playerEquipmentN[targetSlot] = toEquipN;
Full Code For Issue #1
Code:} else if (targetSlot != 5 && targetSlot != 3) {
int remove_slot = getItemSlot(toRemove);
if (toRemove != -1 && remove_slot != -1 && ItemDefinition.forId(toRemove).isStackable()) {
player.playerItems[slot] = 0;
player.playerItemsN[slot] = 0;
player.playerItemsN[remove_slot] += toRemoveN;
} else {
player.playerItems[slot] = toRemove + 1;
player.playerItemsN[slot] = toRemoveN;
}
player.playerEquipment[targetSlot] = toEquip - 1;
player.playerEquipmentN[targetSlot] = toEquipN;
} else if (targetSlot == 5) {
boolean wearing2h = is2handed(getItemName(player.playerEquipment[player.playerWeapon]).toLowerCase(),
player.playerEquipment[player.playerWeapon]);
if (wearing2h) {
toRemove = player.playerEquipment[player.playerWeapon];
toRemoveN = player.playerEquipmentN[player.playerWeapon];
player.playerEquipment[player.playerWeapon] = -1;
player.playerEquipmentN[player.playerWeapon] = 0;
updateSlot(player.playerWeapon);
}
player.playerItems[slot] = toRemove + 1;
player.playerItemsN[slot] = toRemoveN;
player.playerEquipment[targetSlot] = toEquip - 1;
player.playerEquipmentN[targetSlot] = toEquipN;
} else if (targetSlot == 3) {
boolean is2h = is2handed(getItemName(wearID).toLowerCase(), wearID);
boolean wearingShield = player.playerEquipment[player.playerShield] > 0;
boolean wearingWeapon = player.playerEquipment[player.playerWeapon] > 0;
if (is2h) {
if (wearingShield && wearingWeapon) {
if (freeSlots() > 0) {
player.playerItems[slot] = toRemove + 1;
player.playerItemsN[slot] = toRemoveN;
player.playerEquipment[targetSlot] = toEquip - 1;
player.playerEquipmentN[targetSlot] = toEquipN;
removeItem(player.playerShield);
} else {
player.sendGameMessage("You do not have enough inventory space to do this.");
return false;
}
} else if (wearingShield && !wearingWeapon) {
player.playerItems[slot] = player.playerEquipment[player.playerShield] + 1;
player.playerItemsN[slot] = player.playerEquipmentN[player.playerShield];
player.playerEquipment[targetSlot] = toEquip - 1;
player.playerEquipmentN[targetSlot] = toEquipN;
player.playerEquipment[player.playerShield] = -1;
player.playerEquipmentN[player.playerShield] = 0;
updateSlot(player.playerShield);
} else {
int remove_slot = getItemSlot(toRemove);
if (toRemove != -1 && remove_slot != -1 && ItemDefinition.forId(toRemove).isStackable()) {
player.playerItems[slot] = 0;
player.playerItemsN[slot] = 0;
player.playerItemsN[remove_slot] += toRemoveN;
} else {
player.playerItems[slot] = toRemove + 1;
player.playerItemsN[slot] = toRemoveN;
}
player.playerEquipment[targetSlot] = toEquip - 1;
player.playerEquipmentN[targetSlot] = toEquipN;
}
} else {
int remove_slot = getItemSlot(toRemove);
if (toRemove != -1 && remove_slot != -1 && ItemDefinition.forId(toRemove).isStackable()) {
player.playerItems[slot] = 0;
player.playerItemsN[slot] = 0;
player.playerItemsN[remove_slot] += toRemoveN;
} else {
player.playerItems[slot] = toRemove + 1;
player.playerItemsN[slot] = toRemoveN;
}
player.playerEquipment[targetSlot] = toEquip - 1;
player.playerEquipmentN[targetSlot] = toEquipN;
}
}
resetItems(3214);
if (targetSlot == 3) {
if (player.usingSpecial && player.specEffect > 0) {
player.specialDelay = 0;
player.specEffect = 0;
}
player.usingSpecial = false;
addSpecialBar(wearID);
}
if (player.getOutStream() != null && player != null) {
player.getOutStream().putFrameVarShort(34);
int offset = player.getOutStream().offset;
player.getOutStream().putShort(1688);
player.getOutStream().putByte(targetSlot);
player.getOutStream().putShort(wearID + 1);
if (player.playerEquipmentN[targetSlot] > 254) {
player.getOutStream().putByte(255);
player.getOutStream().putInt(player.playerEquipmentN[targetSlot]);
} else {
player.getOutStream().putByte(player.playerEquipmentN[targetSlot]);
}
player.getOutStream().putFrameSizeShort(offset);
player.flushOutStream();
}
EquipmentConstants.sendSoundForEquipSlot(player, slot, wearID);
sendWeapon(player.playerEquipment[player.playerWeapon], getItemName(player.playerEquipment[player.playerWeapon]));
resetBonus();
getBonus();
player.getPA().resetAutoCast();
player.autocasting = false;
writeBonus();
player.getCombat().getPlayerAnimIndex(getItemName(player.playerEquipment[player.playerWeapon]).toLowerCase());
player.getPA().requestUpdates();
return true;
} else {
return false;
}
}