Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Langerz82/cda602cc4d87d197c795e2b4f662541f to your computer and use it in GitHub Desktop.
Save Langerz82/cda602cc4d87d197c795e2b4f662541f to your computer and use it in GitHub Desktop.
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