Browse Source

Handler created for equip message.

combat-2
MagicBot 8 months ago
parent
commit
20cb8ef94d
  1. 26
      src/engine/net/client/handlers/TransferItemFromInventoryToEquipHandler.java
  2. 11
      src/engine/objects/CharacterItemManager.java
  3. 16
      src/engine/objects/Item.java
  4. 3
      src/engine/objects/MobLoot.java

26
src/engine/net/client/handlers/TransferItemFromInventoryToEquipHandler.java

@ -43,28 +43,28 @@ public class TransferItemFromInventoryToEquipHandler extends AbstractClientMsgHa @@ -43,28 +43,28 @@ public class TransferItemFromInventoryToEquipHandler extends AbstractClientMsgHa
return true;
}
int uuid = transferMsg.getUUID();
int slot = transferMsg.getSlotNumber();
//System.out.println("loading to slot: " + slot);
int itemUUID = transferMsg.getUUID();
int slotOrdinal = transferMsg.getSlotNumber();
Enum.EquipSlotType equipSlot = Enum.EquipSlotType.values()[slotOrdinal];
Item i = itemManager.getItemByUUID(uuid);
Item item = itemManager.getItemByUUID(itemUUID);
if (i == null) {
if (item == null) {
forceTransferFromEquipToInventory(transferMsg, origin, "Item not found in your item manager");
return true;
}
if (!itemManager.doesCharOwnThisItem(i.getObjectUUID())) {
if (!itemManager.doesCharOwnThisItem(item.getObjectUUID())) {
forceTransferFromEquipToInventory(transferMsg, origin, "You do not own this item");
return true;
}
//dupe check
if (!i.validForInventory(origin, playerCharacter, itemManager))
if (!item.validForInventory(origin, playerCharacter, itemManager))
return true;
if (i.containerType == Enum.ItemContainerType.INVENTORY) {
if (!itemManager.equipItem(i, (byte) slot)) {
if (item.containerType == Enum.ItemContainerType.INVENTORY) {
if (!itemManager.equipItem(item, equipSlot)) {
forceTransferFromEquipToInventory(transferMsg, origin, "Failed to transfer item.");
return true;
}
@ -77,8 +77,8 @@ public class TransferItemFromInventoryToEquipHandler extends AbstractClientMsgHa @@ -77,8 +77,8 @@ public class TransferItemFromInventoryToEquipHandler extends AbstractClientMsgHa
playerCharacter.applyBonuses();
DispatchMessage.dispatchMsgToInterestArea(playerCharacter, transferMsg, DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, false, false);
for (String name : i.getEffects().keySet()) {
Effect eff = i.getEffects().get(name);
for (String name : item.getEffects().keySet()) {
Effect eff = item.getEffects().get(name);
if (eff == null)
return true;
@ -92,8 +92,8 @@ public class TransferItemFromInventoryToEquipHandler extends AbstractClientMsgHa @@ -92,8 +92,8 @@ public class TransferItemFromInventoryToEquipHandler extends AbstractClientMsgHa
pum.setNumTrains(eff.getTrains());
pum.setUnknown05(1);
pum.setUnknown06((byte) 1);
pum.setEffectSourceType(i.getObjectType().ordinal());
pum.setEffectSourceID(i.getObjectUUID());
pum.setEffectSourceType(item.getObjectType().ordinal());
pum.setEffectSourceID(item.getObjectUUID());
pum.setDuration(-1);
DispatchMessage.dispatchMsgToInterestArea(playerCharacter, pum, DispatchChannel.PRIMARY, MBServerStatics.CHARACTER_LOAD_RANGE, false, false);

11
src/engine/objects/CharacterItemManager.java

@ -1266,7 +1266,7 @@ public class CharacterItemManager { @@ -1266,7 +1266,7 @@ public class CharacterItemManager {
return false;
}
public boolean equipItem(Item i, byte slot) {
public boolean equipItem(Item i, Enum.EquipSlotType slot) {
synchronized (this) {
@ -1275,7 +1275,6 @@ public class CharacterItemManager { @@ -1275,7 +1275,6 @@ public class CharacterItemManager {
return false;
}
Enum.EquipSlotType equipSlot = Enum.EquipSlotType.values()[slot];
// Item must be in inventory to equip
if (!this.inventory.contains(i) && this.absCharacter.getObjectType() != GameObjectType.Mob)
@ -1284,11 +1283,11 @@ public class CharacterItemManager { @@ -1284,11 +1283,11 @@ public class CharacterItemManager {
// make sure player can equip item
if (i.getItemBase() == null)
return false;
if (!i.getItemBase().canEquip(equipSlot, this, absCharacter, i) && this.absCharacter.getObjectType() != GameObjectType.Mob)
if (!i.getItemBase().canEquip(slot, this, absCharacter, i) && this.absCharacter.getObjectType() != GameObjectType.Mob)
return false;
// check to see if item is already there.
Item old = this.equipped.get((int) slot);
Item old = this.equipped.get(slot);
if (old != null) {
Logger.error("already equipped");
return false;
@ -1311,11 +1310,11 @@ public class CharacterItemManager { @@ -1311,11 +1310,11 @@ public class CharacterItemManager {
this.remItemFromLists(i);
// add to Equipped
this.equipped.put(Enum.EquipSlotType.values()[slot], i);
this.equipped.put(slot, i);
i.addToCache();
addEquipOrder(slot);
addEquipOrder(slot.ordinal());
//calculateWeights();
}

16
src/engine/objects/Item.java

@ -956,7 +956,7 @@ public class Item extends AbstractWorldObject { @@ -956,7 +956,7 @@ public class Item extends AbstractWorldObject {
return true;
}
protected synchronized boolean equipItem(PlayerCharacter pc, byte slot) {
protected synchronized boolean equipItem(PlayerCharacter pc, Enum.EquipSlotType slot) {
if (!DbManager.ItemQueries.UPDATE_OWNER(this,
pc.getObjectUUID(), //tableID
@ -964,42 +964,42 @@ public class Item extends AbstractWorldObject { @@ -964,42 +964,42 @@ public class Item extends AbstractWorldObject {
true, //isPlayer
false, //isAccount
ItemContainerType.EQUIPPED,
slot)) //Slot
slot.ordinal())) //Slot
return false;
this.zeroItem();
this.ownerID = pc.getObjectUUID();
this.ownerType = OwnerType.PlayerCharacter;
this.containerType = Enum.ItemContainerType.EQUIPPED;
this.equipSlot = EquipSlotType.values()[slot];
this.equipSlot = slot;
return true;
}
protected synchronized boolean equipItem(NPC npc, byte slot) {
protected synchronized boolean equipItem(NPC npc, Enum.EquipSlotType slot) {
if (!DbManager.ItemQueries.UPDATE_OWNER(this,
npc.getObjectUUID(), //UUID
true, //isNPC
false, //isPlayer
false, //isAccount
ItemContainerType.EQUIPPED,
slot)) //Slot
slot.ordinal())) //Slot
return false;
this.zeroItem();
this.ownerID = npc.getObjectUUID();
this.ownerType = OwnerType.Npc;
this.containerType = Enum.ItemContainerType.EQUIPPED;
this.equipSlot = EquipSlotType.values()[slot];
this.equipSlot = slot;
return true;
}
protected synchronized boolean equipItem(Mob npc, byte slot) {
protected synchronized boolean equipItem(Mob npc, Enum.EquipSlotType slot) {
this.zeroItem();
this.ownerID = npc.getObjectUUID();
this.ownerType = OwnerType.Mob;
this.containerType = Enum.ItemContainerType.EQUIPPED;
this.equipSlot = EquipSlotType.values()[slot];
this.equipSlot = slot;
return true;
}

3
src/engine/objects/MobLoot.java

@ -239,7 +239,7 @@ public final class MobLoot extends Item { @@ -239,7 +239,7 @@ public final class MobLoot extends Item {
/**
* Not implemented
*/
@Override
@Deprecated
protected boolean equipItem(NPC npc, byte slot) {
return false;
@ -248,7 +248,6 @@ public final class MobLoot extends Item { @@ -248,7 +248,6 @@ public final class MobLoot extends Item {
/**
* Not implemented
*/
@Override
@Deprecated
protected boolean equipItem(PlayerCharacter pc, byte slot) {
return false;

Loading…
Cancel
Save