Last active
October 24, 2018 07:27
-
-
Save Langerz82/cda602cc4d87d197c795e2b4f662541f to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git AL-Game/src/com/aionemu/gameserver/model/gameobjects/player/Equipment.java AL-Game/src/com/aionemu/gameserver/model/gameobjects/player/Equipment.java | |
index 36dc026..2b3c5a6 100644 | |
--- AL-Game/src/com/aionemu/gameserver/model/gameobjects/player/Equipment.java | |
+++ AL-Game/src/com/aionemu/gameserver/model/gameobjects/player/Equipment.java | |
@@ -1326,7 +1326,7 @@ public class Equipment { | |
ItemPacketService.updateItemAfterInfoChange(owner, item); | |
equip(slot, item); | |
- PacketSendUtility.broadcastPacket(player, new SM_UPDATE_PLAYER_APPEARANCE(player.getObjectId(), getEquippedForApparence()), true); | |
+ PacketSendUtility.broadcastPacket(player, new SM_UPDATE_PLAYER_APPEARANCE(player, getEquippedForApparence()), true); | |
} | |
}, 5000)); | |
} | |
diff --git AL-Game/src/com/aionemu/gameserver/model/templates/item/actions/DyeAction.java AL-Game/src/com/aionemu/gameserver/model/templates/item/actions/DyeAction.java | |
index 82d070d..3a13d3c 100644 | |
--- AL-Game/src/com/aionemu/gameserver/model/templates/item/actions/DyeAction.java | |
+++ AL-Game/src/com/aionemu/gameserver/model/templates/item/actions/DyeAction.java | |
@@ -82,7 +82,7 @@ public class DyeAction extends AbstractItemAction implements IHouseObjectDyeActi | |
// item is equipped, so need broadcast packet | |
if (player.getEquipment().getEquippedItemByObjId(targetItem.getObjectId()) != null) { | |
- PacketSendUtility.broadcastPacket(player, new SM_UPDATE_PLAYER_APPEARANCE(player.getObjectId(), player.getEquipment().getEquippedForApparence()), true); | |
+ PacketSendUtility.broadcastPacket(player, new SM_UPDATE_PLAYER_APPEARANCE(player, player.getEquipment().getEquippedForApparence()), true); | |
player.getEquipment().setPersistentState(PersistentState.UPDATE_REQUIRED); | |
} // item is not equipped | |
else { | |
diff --git AL-Game/src/com/aionemu/gameserver/network/aion/clientpackets/CM_EQUIPMENT_SETTING_USE.java AL-Game/src/com/aionemu/gameserver/network/aion/clientpackets/CM_EQUIPMENT_SETTING_USE.java | |
index 56363c7..1551dcb 100644 | |
--- AL-Game/src/com/aionemu/gameserver/network/aion/clientpackets/CM_EQUIPMENT_SETTING_USE.java | |
+++ AL-Game/src/com/aionemu/gameserver/network/aion/clientpackets/CM_EQUIPMENT_SETTING_USE.java | |
@@ -67,6 +67,6 @@ public class CM_EQUIPMENT_SETTING_USE extends AionClientPacket { | |
} | |
PacketSendUtility.sendPacket(activePlayer, new SM_SYSTEM_MESSAGE(1404124, new Object[0])); | |
- PacketSendUtility.broadcastPacket(activePlayer, new SM_UPDATE_PLAYER_APPEARANCE(activePlayer.getObjectId(), equipment.getEquippedForApparence()), true); | |
+ PacketSendUtility.broadcastPacket(activePlayer, new SM_UPDATE_PLAYER_APPEARANCE(activePlayer, equipment.getEquippedForApparence()), true); | |
} | |
} | |
diff --git AL-Game/src/com/aionemu/gameserver/network/aion/clientpackets/CM_EQUIP_ITEM.java AL-Game/src/com/aionemu/gameserver/network/aion/clientpackets/CM_EQUIP_ITEM.java | |
index 7fa9c17..60aff35 100644 | |
--- AL-Game/src/com/aionemu/gameserver/network/aion/clientpackets/CM_EQUIP_ITEM.java | |
+++ AL-Game/src/com/aionemu/gameserver/network/aion/clientpackets/CM_EQUIP_ITEM.java | |
@@ -97,7 +97,7 @@ public class CM_EQUIP_ITEM extends AionClientPacket { | |
} | |
if (resultItem != null || action == 2) { | |
- PacketSendUtility.broadcastPacket(activePlayer, new SM_UPDATE_PLAYER_APPEARANCE(activePlayer.getObjectId(), equipment.getEquippedForApparence()), true); | |
+ PacketSendUtility.broadcastPacket(activePlayer, new SM_UPDATE_PLAYER_APPEARANCE(activePlayer, equipment.getEquippedForApparence()), true); | |
} | |
} | |
diff --git a/AL-Game/src/com/aionemu/gameserver/network/aion/serverpackets/SM_UPDATE_PLAYER_APPEARANCE.java b/AL-Game/src/com/aionemu/gameserver/network/aion/serverpackets/SM_UPDATE_PLAYER_APPEARANCE.java | |
index a3789ed..d4c7a97 100644 | |
--- AL-Game/src/com/aionemu/gameserver/network/aion/serverpackets/SM_UPDATE_PLAYER_APPEARANCE.java | |
+++ AL-Game/src/com/aionemu/gameserver/network/aion/serverpackets/SM_UPDATE_PLAYER_APPEARANCE.java | |
@@ -17,6 +17,7 @@ | |
package com.aionemu.gameserver.network.aion.serverpackets; | |
import com.aionemu.gameserver.model.gameobjects.Item; | |
+import com.aionemu.gameserver.model.gameobjects.player.Player; | |
import com.aionemu.gameserver.model.items.GodStone; | |
import com.aionemu.gameserver.model.items.ItemSlot; | |
import com.aionemu.gameserver.network.aion.AionConnection; | |
@@ -29,26 +30,36 @@ import javolution.util.FastList; | |
*/ | |
public class SM_UPDATE_PLAYER_APPEARANCE extends AionServerPacket { | |
- public int playerId; | |
+ public Player player; | |
public int size; | |
public FastList<Item> items; | |
- public SM_UPDATE_PLAYER_APPEARANCE(int playerId, FastList<Item> items) { | |
- this.playerId = playerId; | |
+ public SM_UPDATE_PLAYER_APPEARANCE(Player player, FastList<Item> items) { | |
+ this.player = player; | |
this.items = items; | |
this.size = items.size(); | |
} | |
@Override | |
protected void writeImpl(AionConnection con) { | |
- writeD(playerId); | |
+ writeD(player.getObjectId()); | |
int mask = 0; | |
for (Item item : items) { | |
- if (item.getItemTemplate().isTwoHandWeapon()) { | |
+ if (player.getEquipment().getMainHandWeapon() == item && item.getItemTemplate().isTwoHandWeapon()) { | |
ItemSlot[] slots = ItemSlot.getSlotsFor(item.getEquipmentSlot()); | |
mask |= slots[0].getSlotIdMask(); | |
} | |
+ else if (player.getEquipment().getMainHandWeapon() != null && item.getItemTemplate().isWeapon() && !item.getItemTemplate().isTwoHandWeapon()) | |
+ { | |
+ ItemSlot[] slots = ItemSlot.getSlotsFor(item.getEquipmentSlot()); | |
+ mask |= slots[0].getSlotIdMask(); | |
+ | |
+ } | |
+ else if (player.getEquipment().getOffHandWeapon() != null && item.getItemTemplate().isWeapon() && !item.getItemTemplate().isTwoHandWeapon()) { | |
+ ItemSlot[] slots = ItemSlot.getSlotsFor(item.getEquipmentSlot()); | |
+ mask |= slots[0].getSlotIdMask() << 1; | |
+ } | |
else { | |
mask |= item.getEquipmentSlot(); | |
} | |
diff --git AL-Game/src/com/aionemu/gameserver/services/item/ItemRemodelService.java AL-Game/src/com/aionemu/gameserver/services/item/ItemRemodelService.java | |
index a0dd2fd..95a48cc 100644 | |
--- AL-Game/src/com/aionemu/gameserver/services/item/ItemRemodelService.java | |
+++ AL-Game/src/com/aionemu/gameserver/services/item/ItemRemodelService.java | |
@@ -169,10 +169,10 @@ public class ItemRemodelService { | |
final ItemTemplate oldTemplate = item.getItemSkinTemplate(); | |
item.setItemSkinTemplate(template); | |
- PacketSendUtility.sendPacket(player, new SM_UPDATE_PLAYER_APPEARANCE(player.getObjectId(), player.getEquipment().getEquippedForApparence())); | |
+ PacketSendUtility.sendPacket(player, new SM_UPDATE_PLAYER_APPEARANCE(player, player.getEquipment().getEquippedForApparence())); | |
PacketSendUtility.sendPacket(player, new SM_SYSTEM_MESSAGE(1300483, new DescriptionId(item.getItemTemplate().getNameId()))); | |
- PacketSendUtility.broadcastPacket(player, new SM_UPDATE_PLAYER_APPEARANCE(player.getObjectId(), player.getEquipment().getEquippedItemsWithoutStigma()), true); | |
+ PacketSendUtility.broadcastPacket(player, new SM_UPDATE_PLAYER_APPEARANCE(player, player.getEquipment().getEquippedItemsWithoutStigma()), true); | |
ThreadPoolManager.getInstance().schedule(new Runnable() { | |
@@ -186,8 +186,8 @@ public class ItemRemodelService { | |
@Override | |
public void run() { | |
- PacketSendUtility.sendPacket(player, new SM_UPDATE_PLAYER_APPEARANCE(player.getObjectId(), player.getEquipment().getEquippedForApparence())); | |
- PacketSendUtility.broadcastPacket(player, new SM_UPDATE_PLAYER_APPEARANCE(player.getObjectId(), player.getEquipment().getEquippedItemsWithoutStigma()), true); | |
+ PacketSendUtility.sendPacket(player, new SM_UPDATE_PLAYER_APPEARANCE(player, player.getEquipment().getEquippedForApparence())); | |
+ PacketSendUtility.broadcastPacket(player, new SM_UPDATE_PLAYER_APPEARANCE(player, player.getEquipment().getEquippedItemsWithoutStigma()), true); | |
} | |
}, duration * 1000); | |
} | |
@@ -195,7 +195,7 @@ public class ItemRemodelService { | |
public static void systemRemodelItem(Player player, Item keepItem, ItemTemplate template) { | |
keepItem.setItemSkinTemplate(template); | |
ItemPacketService.updateItemAfterInfoChange(player, keepItem); | |
- PacketSendUtility.sendPacket(player, new SM_UPDATE_PLAYER_APPEARANCE(player.getObjectId(), player.getEquipment().getEquippedForApparence())); | |
+ PacketSendUtility.sendPacket(player, new SM_UPDATE_PLAYER_APPEARANCE(player, player.getEquipment().getEquippedForApparence())); | |
PacketSendUtility.sendPacket(player, new SM_SYSTEM_MESSAGE(1300483, new DescriptionId(keepItem.getItemTemplate().getNameId()))); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment