Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Item[] items = new Item[15];
- Item[] cosmetics = player.getEquipment().getCosmeticItems().getItems();
- boolean[] skipLook = new boolean[items.length];
- boolean[] hiddenIndex = player.getEquipment().getHiddenSlots();
- for (int index = 0; index < items.length; index++) {
- Item item = player.getEquipment().isCanDisplayCosmetic() ? cosmetics[index] : null;
- if (item == null)
- item = player.getEquipment().getItems().get(index);
- if (hiddenIndex[index] && player.getEquipment().isCanDisplayCosmetic())
- item = null;
- if (item != null) {
- items[index] = item;
- int skipSlotLook = item.getDefinitions().getEquipType();
- if (skipSlotLook != -1)
- skipLook[skipSlotLook] = true;
- int skipSlotLook2 = item.getDefinitions().getEquipType2();
- if (skipSlotLook2 != -1)
- skipLook[skipSlotLook2] = true;
- }
- }
- for (int index = 0; index < items.length; index++) {
- if (Equipment.DISABLED_SLOTS[index] != 0)
- continue;
- if (items[index] != null && items[index].getDefinitions().equipSlot != -1) {
- if (index == Equipment.SLOT_WEAPON && forcedWeapon != -1)
- stream.writeShort(16384 + forcedWeapon);
- else if (index == Equipment.SLOT_AMULET && forcedAmulet != -1)
- stream.writeShort(16384 + forcedAmulet);
- else if (index == Equipment.SLOT_SHIELD && forcedShield != -1)
- stream.writeShort(16384 + forcedShield);
- else
- stream.writeShort(16384 + items[index].getId());
- continue;
- } else if (items[index] == null) {
- if (index == Equipment.SLOT_WEAPON && forcedWeapon == -1) {
- stream.writeByte(0);
- continue;
- } else if (index == Equipment.SLOT_AMULET && forcedAmulet == -1) {
- stream.writeByte(0);
- continue;
- } else if (index == Equipment.SLOT_SHIELD && forcedShield == -1) {
- stream.writeByte(0);
- continue;
- }
- }
- if (!skipLook[index]) {
- int lookIndex = -1;
- switch (index) {
- case 4:
- lookIndex = 2;
- break;
- case 6:
- lookIndex = 3;
- break;
- case 7:
- lookIndex = 5;
- break;
- case 8:
- lookIndex = 0;
- break;
- case 9:
- lookIndex = 4;
- break;
- case 10:
- lookIndex = 6;
- break;
- case 11:
- lookIndex = 1;
- break;
- }
- if (lookIndex != -1 && lookI[lookIndex] > 0) {
- stream.writeShort(0x100 + lookI[lookIndex]);
- continue;
- }
- }
- stream.writeByte(0);
- }
- OutputStream streamModify = new OutputStream();
- int modifyFlag = 0;
- int slotIndex = -1;
- ItemModify[] modify = generateItemModify(items, cosmetics);
- for (int index = 0; index < modify.length; index++) {
- if (Equipment.DISABLED_SLOTS[index] != 0)
- continue;
- slotIndex++;
- ItemModify im = modify[index];
- if (im == null)
- continue;
- modifyFlag |= 1 << slotIndex;
- int itemFlag = 0;
- OutputStream streamItem = new OutputStream();
- if (im.maleModelId1 != -1 || im.femaleModelId1 != -1) {
- itemFlag |= 0x1;
- streamItem.writeBigSmart(im.maleModelId1);
- streamItem.writeBigSmart(im.femaleModelId1);
- if (im.maleModelId2 != -2 || im.femaleModelId2 != -2) {
- streamItem.writeBigSmart(im.maleModelId2);
- streamItem.writeBigSmart(im.femaleModelId2);
- }
- if (im.maleModelId3 != -2 || im.femaleModelId3 != -2) {
- streamItem.writeBigSmart(im.maleModelId3);
- streamItem.writeBigSmart(im.femaleModelId3);
- }
- }
- if (im.colors != null) {
- itemFlag |= 0x4;
- streamItem.writeShort(0 | 1 << 4 | 2 << 8 | 3 << 12);
- for (int i = 0; i < 4; i++)
- streamItem.writeShort(im.colors[i]);
- }
- if (im.textures != null) {
- itemFlag |= 0x8;
- streamItem.writeByte(0 | 1 << 4);
- for (int i = 0; i < 2; i++)
- streamItem.writeShort(im.textures[i]);
- }
- streamModify.writeByte(itemFlag);
- streamModify.writeBytes(streamItem.getBuffer(), 0, streamItem.getOffset());
- }
- stream.writeShort(modifyFlag);
- stream.writeBytes(streamModify.getBuffer(), 0, streamModify.getOffset());
- }
Advertisement
Add Comment
Please, Sign In to add comment