root/trunk/AE-go_GameServer/src/com/aionemu/gameserver/network/aion/InventoryPacket.java
| 965 | 993 | ||
|---|---|---|---|
46 | writeD(buf, Integer.parseInt(itemTemplate.getDescription())); | 46 | writeD(buf, Integer.parseInt(itemTemplate.getDescription())); |
47 | writeH(buf, 0); | 47 | writeH(buf, 0); |
48 | } | 48 | } |
49 | | 49 | |
50 | /** | 50 | /** |
51 | * All misc items | 51 | * All misc items |
52 | * @param buf | 52 | * @param buf |
... | ... | ||
56 | { | 56 | { |
57 | writeH(buf, 0x16); //length of details | 57 | writeH(buf, 0x16); //length of details |
58 | writeC(buf, 0); | 58 | writeC(buf, 0); |
59 | | 59 | |
60 | if(isQuest) | 60 | if(isQuest) |
61 | { | 61 | { |
62 | writeC(buf, 0x20); | 62 | writeC(buf, 0x20); |
... | ... | ||
66 | writeC(buf, 0x3E); //or can be 0x1E 0x3E 0x20 (quest) | 66 | writeC(buf, 0x3E); //or can be 0x1E 0x3E 0x20 (quest) |
67 | writeC(buf, 0x63); // ? | 67 | writeC(buf, 0x63); // ? |
68 | } | 68 | } |
69 | | 69 | |
70 | | 70 | |
71 | writeD(buf, item.getItemCount()); | 71 | writeD(buf, item.getItemCount()); |
72 | writeD(buf, 0); | 72 | writeD(buf, 0); |
73 | writeD(buf, 0); | 73 | writeD(buf, 0); |
... | ... | ||
76 | writeC(buf, 0); | 76 | writeC(buf, 0); |
77 | writeH(buf, item.getEquipmentSlot()); // not equipable items | 77 | writeH(buf, item.getEquipmentSlot()); // not equipable items |
78 | } | 78 | } |
79 | | 79 | |
80 | /** | 80 | /** |
81 | * | 81 | * |
82 | * @param buf | 82 | * @param buf |
83 | * @param item | 83 | * @param item |
84 | */ | 84 | */ |
85 | protected void writeKinah(ByteBuffer buf, Item item) | 85 | protected void writeKinah(ByteBuffer buf, Item item, boolean isInventory) |
86 | { | 86 | { |
87 | writeH(buf, 0x16); //length of details | 87 | writeH(buf, 0x16); //length of details |
88 | writeC(buf, 0); | 88 | writeC(buf, 0); |
... | ... | ||
95 | writeH(buf, 0); | 95 | writeH(buf, 0); |
96 | writeC(buf, 0); | 96 | writeC(buf, 0); |
97 | writeH(buf, 255); // FF FF equipment | 97 | writeH(buf, 255); // FF FF equipment |
98 | writeC(buf, 0); | 98 | if(isInventory) |
99 | writeC(buf, 0); | ||
99 | } | 100 | } |
100 | | 101 | |
101 | /** | 102 | /** |
102 | * For all weapon. Weapon is identified by weapon_type in xml | 103 | * For all weapon. Weapon is identified by weapon_type in xml |
103 | * | 104 | * |
104 | * @param buf | 105 | * @param buf |
105 | * @param item | 106 | * @param item |
106 | */ | 107 | */ |
107 | protected void writeWeaponInfo(ByteBuffer buf, Item item) | 108 | protected void writeWeaponInfo(ByteBuffer buf, Item item, boolean isInventory) |
108 | { | 109 | { |
109 | int itemSlotId = item.getEquipmentSlot(); | 110 | int itemSlotId = item.getEquipmentSlot(); |
110 | writeH(buf, 0x4B); | 111 | writeH(buf, 0x4B); |
... | ... | ||
117 | writeC(buf, 0); //enchant (1-10) | 118 | writeC(buf, 0); //enchant (1-10) |
118 | writeD(buf, item.getItemTemplate().getItemId()); | 119 | writeD(buf, item.getItemTemplate().getItemId()); |
119 | writeC(buf, 0); | 120 | writeC(buf, 0); |
120 | | 121 | |
121 | writeItemStones(buf, item); | 122 | writeItemStones(buf, item); |
122 | | 123 | |
123 | | 124 | |
124 | writeC(buf, 0); | 125 | writeC(buf, 0); |
125 | writeD(buf, 0); | 126 | writeD(buf, 0); |
126 | writeD(buf, 0); | 127 | writeD(buf, 0); |
127 | | 128 | |
128 | writeD(buf, 0);//unk 1.5.1.9 | 129 | writeD(buf, 0);//unk 1.5.1.9 |
129 | writeC(buf, 0);//unk 1.5.1.9 | 130 | writeC(buf, 0);//unk 1.5.1.9 |
130 | 131 | ||
... | ... | ||
137 | writeH(buf, 0); | 138 | writeH(buf, 0); |
138 | writeC(buf, 0); | 139 | writeC(buf, 0); |
139 | writeH(buf, item.isEquipped() ? 255 : item.getEquipmentSlot()); // FF FF equipment | 140 | writeH(buf, item.isEquipped() ? 255 : item.getEquipmentSlot()); // FF FF equipment |
140 | writeC(buf, 0);//item.isEquipped() ? 1 : 0 | 141 | if(isInventory) |
142 | writeC(buf, 0);//item.isEquipped() ? 1 : 0 | ||
141 | } | 143 | } |
142 | | 144 | |
143 | /** | 145 | /** |
144 | * Writes manastones : 6C - statenum mask, 6H - value | 146 | * Writes manastones : 6C - statenum mask, 6H - value |
145 | * @param buf | 147 | * @param buf |
... | ... | ||
149 | { | 151 | { |
150 | int count = 0; | 152 | int count = 0; |
151 | List<ItemStone> itemStones = item.getItemStones(); | 153 | List<ItemStone> itemStones = item.getItemStones(); |
152 | | 154 | |
153 | if(itemStones != null) | 155 | if(itemStones != null) |
154 | { | 156 | { |
155 | for(ItemStone itemStone : itemStones) | 157 | for(ItemStone itemStone : itemStones) |
156 | { | 158 | { |
157 | if(count == 6) | 159 | if(count == 6) |
158 | break; | 160 | break; |
159 | | 161 | |
160 | StatModifier modifier = itemStone.getFirstModifier(); | 162 | StatModifier modifier = itemStone.getFirstModifier(); |
161 | if(modifier != null) | 163 | if(modifier != null) |
162 | { | 164 | { |
... | ... | ||
170 | { | 172 | { |
171 | if(count == 6) | 173 | if(count == 6) |
172 | break; | 174 | break; |
173 | | 175 | |
174 | StatModifier modifier = itemStone.getFirstModifier(); | 176 | StatModifier modifier = itemStone.getFirstModifier(); |
175 | if(modifier != null) | 177 | if(modifier != null) |
176 | { | 178 | { |
... | ... | ||
184 | { | 186 | { |
185 | writeB(buf, new byte[18]); | 187 | writeB(buf, new byte[18]); |
186 | } | 188 | } |
187 | | 189 | |
188 | //for now max 6 stones - write some junk | 190 | //for now max 6 stones - write some junk |
189 | | 191 | |
190 | } | 192 | } |
191 | | 193 | |
192 | /** | 194 | /** |
193 | * For all armor. Armor is identified by armor_type in xml | 195 | * For all armor. Armor is identified by armor_type in xml |
194 | * @param buf | 196 | * @param buf |
195 | * @param item | 197 | * @param item |
196 | */ | 198 | */ |
197 | protected void writeArmorInfo(ByteBuffer buf, Item item) | 199 | protected void writeArmorInfo(ByteBuffer buf, Item item, boolean isInventory) |
198 | { | 200 | { |
199 | int itemSlotId = item.getEquipmentSlot(); | 201 | int itemSlotId = item.getEquipmentSlot(); |
200 | writeH(buf, 0x4F); | 202 | writeH(buf, 0x4F); |
... | ... | ||
207 | writeH(buf, 0x0B); //? some details separator | 209 | writeH(buf, 0x0B); //? some details separator |
208 | writeC(buf, 0); //enchant (1-10) | 210 | writeC(buf, 0); //enchant (1-10) |
209 | writeD(buf, item.getItemTemplate().getItemId()); | 211 | writeD(buf, item.getItemTemplate().getItemId()); |
210 | | 212 | |
211 | writeC(buf, 0); | 213 | writeC(buf, 0); |
212 | | 214 | |
213 | writeItemStones(buf, item); | 215 | writeItemStones(buf, item); |
214 | | 216 | |
215 | writeC(buf, 0); | 217 | writeC(buf, 0); |
216 | writeD(buf, 0); | 218 | writeD(buf, 0); |
217 | writeD(buf, 0); | 219 | writeD(buf, 0); |
218 | | 220 | |
219 | writeD(buf, 0);//unk 1.5.1.9 | 221 | writeD(buf, 0);//unk 1.5.1.9 |
220 | writeC(buf, 0);//unk 1.5.1.9 | 222 | writeC(buf, 0);//unk 1.5.1.9 |
221 | | 223 | |
222 | writeC(buf, 0x3E); | 224 | writeC(buf, 0x3E); |
223 | writeC(buf, 0x02); | 225 | writeC(buf, 0x02); |
224 | writeD(buf, item.getItemCount()); | 226 | writeD(buf, item.getItemCount()); |
... | ... | ||
228 | writeH(buf, 0); | 230 | writeH(buf, 0); |
229 | writeC(buf, 0); | 231 | writeC(buf, 0); |
230 | writeH(buf, item.isEquipped() ? 255 : item.getEquipmentSlot()); // FF FF equipment | 232 | writeH(buf, item.isEquipped() ? 255 : item.getEquipmentSlot()); // FF FF equipment |
231 | writeC(buf, 1);//item.isEquipped() ? 1 : 0 | 233 | if(isInventory) |
234 | writeC(buf, 1);//item.isEquipped() ? 1 : 0 | ||
232 | } | 235 | } |
233 | } | 236 | } |
Download diff