|
Флудильня Разговоры на любые темы. Мы устаем постоянно работать. Иногда надо где-то немного отдохнуть. Пожалуйста, не надо здесь устраивать бардак. |
|
Опции темы | Поиск в этой теме | Опции просмотра |
16.06.2011, 22:50 | #1 |
Умный
Старожил
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
|
Где в коде посмотреть описание поле data для item_instance?
Не хочу создавать новую тему, но сам не осилил:
Где в коде посмотреть описание поле data для item_instance? Чего туда вообще пишется, что-то не нашёл, где это описано |
16.06.2011, 22:53 | #2 |
Умный
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
|
|
16.06.2011, 23:34 | #4 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Код:
enum EObjectFields { OBJECT_FIELD_GUID = 0x0000, // Size: 2, Type: LONG, Flags: PUBLIC OBJECT_FIELD_TYPE = 0x0002, // Size: 1, Type: INT, Flags: PUBLIC OBJECT_FIELD_ENTRY = 0x0003, // Size: 1, Type: INT, Flags: PUBLIC OBJECT_FIELD_SCALE_X = 0x0004, // Size: 1, Type: FLOAT, Flags: PUBLIC OBJECT_FIELD_PADDING = 0x0005, // Size: 1, Type: INT, Flags: NONE OBJECT_END = 0x0006, }; enum EItemFields { ITEM_FIELD_OWNER = OBJECT_END + 0x0000, // Size: 2, Type: LONG, Flags: PUBLIC ITEM_FIELD_CONTAINED = OBJECT_END + 0x0002, // Size: 2, Type: LONG, Flags: PUBLIC ITEM_FIELD_CREATOR = OBJECT_END + 0x0004, // Size: 2, Type: LONG, Flags: PUBLIC ITEM_FIELD_GIFTCREATOR = OBJECT_END + 0x0006, // Size: 2, Type: LONG, Flags: PUBLIC ITEM_FIELD_STACK_COUNT = OBJECT_END + 0x0008, // Size: 1, Type: INT, Flags: OWNER, ITEM_OWNER ITEM_FIELD_DURATION = OBJECT_END + 0x0009, // Size: 1, Type: INT, Flags: OWNER, ITEM_OWNER ITEM_FIELD_SPELL_CHARGES = OBJECT_END + 0x000A, // Size: 5, Type: INT, Flags: OWNER, ITEM_OWNER ITEM_FIELD_FLAGS = OBJECT_END + 0x000F, // Size: 1, Type: INT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_1_1 = OBJECT_END + 0x0010, // Size: 2, Type: INT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_1_3 = OBJECT_END + 0x0012, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_2_1 = OBJECT_END + 0x0013, // Size: 2, Type: INT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_2_3 = OBJECT_END + 0x0015, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_3_1 = OBJECT_END + 0x0016, // Size: 2, Type: INT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_3_3 = OBJECT_END + 0x0018, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_4_1 = OBJECT_END + 0x0019, // Size: 2, Type: INT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_4_3 = OBJECT_END + 0x001B, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_5_1 = OBJECT_END + 0x001C, // Size: 2, Type: INT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_5_3 = OBJECT_END + 0x001E, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_6_1 = OBJECT_END + 0x001F, // Size: 2, Type: INT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_6_3 = OBJECT_END + 0x0021, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_7_1 = OBJECT_END + 0x0022, // Size: 2, Type: INT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_7_3 = OBJECT_END + 0x0024, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_8_1 = OBJECT_END + 0x0025, // Size: 2, Type: INT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_8_3 = OBJECT_END + 0x0027, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_9_1 = OBJECT_END + 0x0028, // Size: 2, Type: INT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_9_3 = OBJECT_END + 0x002A, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_10_1 = OBJECT_END + 0x002B, // Size: 2, Type: INT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_10_3 = OBJECT_END + 0x002D, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_11_1 = OBJECT_END + 0x002E, // Size: 2, Type: INT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_11_3 = OBJECT_END + 0x0030, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_12_1 = OBJECT_END + 0x0031, // Size: 2, Type: INT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_12_3 = OBJECT_END + 0x0033, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC ITEM_FIELD_PROPERTY_SEED = OBJECT_END + 0x0034, // Size: 1, Type: INT, Flags: PUBLIC ITEM_FIELD_RANDOM_PROPERTIES_ID = OBJECT_END + 0x0035, // Size: 1, Type: INT, Flags: PUBLIC ITEM_FIELD_DURABILITY = OBJECT_END + 0x0036, // Size: 1, Type: INT, Flags: OWNER, ITEM_OWNER ITEM_FIELD_MAXDURABILITY = OBJECT_END + 0x0037, // Size: 1, Type: INT, Flags: OWNER, ITEM_OWNER ITEM_FIELD_CREATE_PLAYED_TIME = OBJECT_END + 0x0038, // Size: 1, Type: INT, Flags: PUBLIC ITEM_FIELD_PAD = OBJECT_END + 0x0039, // Size: 1, Type: INT, Flags: NONE ITEM_END = OBJECT_END + 0x003A, }; |
17.06.2011, 10:25 | #6 |
Ученый
|
Там какие-то смещения есть для эчантов, кажется. Их в updatefields.h нету (или есть, не помню точно).
|
17.06.2011, 11:35 | #7 | |
WowCore Dev
Регистрация: 11.03.2010
Сообщений: 112
Сказал(а) спасибо: 10
Поблагодарили 51 раз(а) в 25 сообщениях
|
0x3A = 58 как бе....
Цитата:
Код:
ITEM_FIELD_ENCHANTMENT_1_1 = OBJECT_END + 0x0010, // Size: 2, Type: INT, Flags: PUBLIC ITEM_FIELD_ENCHANTMENT_1_3 = OBJECT_END + 0x0012, // Size: 1, Type: TWO_SHORT, Flags: PUBLIC |
|
17.06.2011, 11:37 | #8 | |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Цитата:
|
|
17.06.2011, 15:59 | #9 | |
WowCore Dev
Регистрация: 11.03.2010
Сообщений: 112
Сказал(а) спасибо: 10
Поблагодарили 51 раз(а) в 25 сообщениях
|
Цитата:
В энчантах ясно сказано, что по смещению ITEM_FIELD_ENCHANTMENT_1_1 лежи 2 числа типа INT, т.е. 2 32-х битных числа. А по смещению ITEM_FIELD_ENCHANTMENT_1_3 лежит одно число типа TWO_SHORT, т.е. два 16-ти битных числа. То что мангос не использует эти обозначения, не говорит о том, что эти обозначения не играю роли для клиента. Даже если клиент не обращается к этим полям непосредственно, но эти поля говорят о том, как организована передача параметров через апдейтполя. |
|
17.06.2011, 18:18 | #10 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
0x3A + 0x06 = 0x40 = 64 значения в поле data в таблице.
Для наглядности, вот как выглядит массив данных как в памяти, так и в поле data в таблице — я «развернул» массивы для версии 4.1.0: Код:
OBJECT_FIELD_GUID = 0x0000, // Size: 2, Type: Long, Flags: Public OBJECT_FIELD_GUID_HIPART = 0x0001, OBJECT_FIELD_TYPE = 0x0002, // Size: 1, Type: TwoShort, Flags: Public OBJECT_FIELD_ENTRY = 0x0003, // Size: 1, Type: Int, Flags: Public OBJECT_FIELD_SCALE_X = 0x0004, // Size: 1, Type: Float, Flags: Public OBJECT_FIELD_DATA = 0x0005, // Size: 2, Type: Long, Flags: Public OBJECT_FIELD_DATA_HIPART = 0x0006, OBJECT_FIELD_PADDING = 0x0007, // Size: 1, Type: Int, Flags: None //ObjectUpdateFields.End = 0x0008, ITEM_FIELD_OWNER = ObjectUpdateFields.End + 0x0000, // Size: 2, Type: Long, Flags: Public ITEM_FIELD_OWNER_HIPART = ObjectUpdateFields.End + 0x0001, ITEM_FIELD_CONTAINED = ObjectUpdateFields.End + 0x0002, // Size: 2, Type: Long, Flags: Public ITEM_FIELD_CONTAINED_HIPART = ObjectUpdateFields.End + 0x0003, ITEM_FIELD_CREATOR = ObjectUpdateFields.End + 0x0004, // Size: 2, Type: Long, Flags: Public ITEM_FIELD_CREATOR_HIPART = ObjectUpdateFields.End + 0x0005, ITEM_FIELD_GIFTCREATOR = ObjectUpdateFields.End + 0x0006, // Size: 2, Type: Long, Flags: Public ITEM_FIELD_GIFTCREATOR_HIPART = ObjectUpdateFields.End + 0x0007, ITEM_FIELD_STACK_COUNT = ObjectUpdateFields.End + 0x0008, // Size: 1, Type: Int, Flags: OwnerOnly, Unk1 ITEM_FIELD_DURATION = ObjectUpdateFields.End + 0x0009, // Size: 1, Type: Int, Flags: OwnerOnly, Unk1 ITEM_FIELD_SPELL_CHARGES = ObjectUpdateFields.End + 0x000A, // Size: 5, Type: Int, Flags: OwnerOnly, Unk1 ITEM_FIELD_SPELL_CHARGES_2 = ObjectUpdateFields.End + 0x000B, ITEM_FIELD_SPELL_CHARGES_3 = ObjectUpdateFields.End + 0x000C, ITEM_FIELD_SPELL_CHARGES_4 = ObjectUpdateFields.End + 0x000D, ITEM_FIELD_SPELL_CHARGES_5 = ObjectUpdateFields.End + 0x000E, ITEM_FIELD_FLAGS = ObjectUpdateFields.End + 0x000F, // Size: 1, Type: Int, Flags: Public ITEM_FIELD_ENCHANTMENT_1_1 = ObjectUpdateFields.End + 0x0010, // Size: 2, Type: Int, Flags: Public ITEM_FIELD_ENCHANTMENT_1_2 = ObjectUpdateFields.End + 0x0011, ITEM_FIELD_ENCHANTMENT_1_3 = ObjectUpdateFields.End + 0x0012, // Size: 1, Type: TwoShort, Flags: Public ITEM_FIELD_ENCHANTMENT_2_1 = ObjectUpdateFields.End + 0x0013, // Size: 2, Type: Int, Flags: Public ITEM_FIELD_ENCHANTMENT_2_2 = ObjectUpdateFields.End + 0x0014, ITEM_FIELD_ENCHANTMENT_2_3 = ObjectUpdateFields.End + 0x0015, // Size: 1, Type: TwoShort, Flags: Public ITEM_FIELD_ENCHANTMENT_3_1 = ObjectUpdateFields.End + 0x0016, // Size: 2, Type: Int, Flags: Public ITEM_FIELD_ENCHANTMENT_3_2 = ObjectUpdateFields.End + 0x0017, ITEM_FIELD_ENCHANTMENT_3_3 = ObjectUpdateFields.End + 0x0018, // Size: 1, Type: TwoShort, Flags: Public ITEM_FIELD_ENCHANTMENT_4_1 = ObjectUpdateFields.End + 0x0019, // Size: 2, Type: Int, Flags: Public ITEM_FIELD_ENCHANTMENT_4_2 = ObjectUpdateFields.End + 0x001A, ITEM_FIELD_ENCHANTMENT_4_3 = ObjectUpdateFields.End + 0x001B, // Size: 1, Type: TwoShort, Flags: Public ITEM_FIELD_ENCHANTMENT_5_1 = ObjectUpdateFields.End + 0x001C, // Size: 2, Type: Int, Flags: Public ITEM_FIELD_ENCHANTMENT_5_2 = ObjectUpdateFields.End + 0x001D, ITEM_FIELD_ENCHANTMENT_5_3 = ObjectUpdateFields.End + 0x001E, // Size: 1, Type: TwoShort, Flags: Public ITEM_FIELD_ENCHANTMENT_6_1 = ObjectUpdateFields.End + 0x001F, // Size: 2, Type: Int, Flags: Public ITEM_FIELD_ENCHANTMENT_6_2 = ObjectUpdateFields.End + 0x0020, ITEM_FIELD_ENCHANTMENT_6_3 = ObjectUpdateFields.End + 0x0021, // Size: 1, Type: TwoShort, Flags: Public ITEM_FIELD_ENCHANTMENT_7_1 = ObjectUpdateFields.End + 0x0022, // Size: 2, Type: Int, Flags: Public ITEM_FIELD_ENCHANTMENT_7_2 = ObjectUpdateFields.End + 0x0023, ITEM_FIELD_ENCHANTMENT_7_3 = ObjectUpdateFields.End + 0x0024, // Size: 1, Type: TwoShort, Flags: Public ITEM_FIELD_ENCHANTMENT_8_1 = ObjectUpdateFields.End + 0x0025, // Size: 2, Type: Int, Flags: Public ITEM_FIELD_ENCHANTMENT_8_2 = ObjectUpdateFields.End + 0x0026, ITEM_FIELD_ENCHANTMENT_8_3 = ObjectUpdateFields.End + 0x0027, // Size: 1, Type: TwoShort, Flags: Public ITEM_FIELD_ENCHANTMENT_9_1 = ObjectUpdateFields.End + 0x0028, // Size: 2, Type: Int, Flags: Public ITEM_FIELD_ENCHANTMENT_9_2 = ObjectUpdateFields.End + 0x0029, ITEM_FIELD_ENCHANTMENT_9_3 = ObjectUpdateFields.End + 0x002A, // Size: 1, Type: TwoShort, Flags: Public ITEM_FIELD_ENCHANTMENT_10_1 = ObjectUpdateFields.End + 0x002B, // Size: 2, Type: Int, Flags: Public ITEM_FIELD_ENCHANTMENT_10_2 = ObjectUpdateFields.End + 0x002C, ITEM_FIELD_ENCHANTMENT_10_3 = ObjectUpdateFields.End + 0x002D, // Size: 1, Type: TwoShort, Flags: Public ITEM_FIELD_ENCHANTMENT_11_1 = ObjectUpdateFields.End + 0x002E, // Size: 2, Type: Int, Flags: Public ITEM_FIELD_ENCHANTMENT_11_2 = ObjectUpdateFields.End + 0x002F, ITEM_FIELD_ENCHANTMENT_11_3 = ObjectUpdateFields.End + 0x0030, // Size: 1, Type: TwoShort, Flags: Public ITEM_FIELD_ENCHANTMENT_12_1 = ObjectUpdateFields.End + 0x0031, // Size: 2, Type: Int, Flags: Public ITEM_FIELD_ENCHANTMENT_12_2 = ObjectUpdateFields.End + 0x0032, ITEM_FIELD_ENCHANTMENT_12_3 = ObjectUpdateFields.End + 0x0033, // Size: 1, Type: TwoShort, Flags: Public ITEM_FIELD_ENCHANTMENT_13_1 = ObjectUpdateFields.End + 0x0034, // Size: 2, Type: Int, Flags: Public ITEM_FIELD_ENCHANTMENT_13_2 = ObjectUpdateFields.End + 0x0035, ITEM_FIELD_ENCHANTMENT_13_3 = ObjectUpdateFields.End + 0x0036, // Size: 1, Type: TwoShort, Flags: Public ITEM_FIELD_ENCHANTMENT_14_1 = ObjectUpdateFields.End + 0x0037, // Size: 2, Type: Int, Flags: Public ITEM_FIELD_ENCHANTMENT_14_2 = ObjectUpdateFields.End + 0x0038, ITEM_FIELD_ENCHANTMENT_14_3 = ObjectUpdateFields.End + 0x0039, // Size: 1, Type: TwoShort, Flags: Public ITEM_FIELD_PROPERTY_SEED = ObjectUpdateFields.End + 0x003A, // Size: 1, Type: Int, Flags: Public ITEM_FIELD_RANDOM_PROPERTIES_ID = ObjectUpdateFields.End + 0x003B, // Size: 1, Type: Int, Flags: Public ITEM_FIELD_DURABILITY = ObjectUpdateFields.End + 0x003C, // Size: 1, Type: Int, Flags: OwnerOnly, Unk1 ITEM_FIELD_MAXDURABILITY = ObjectUpdateFields.End + 0x003D, // Size: 1, Type: Int, Flags: OwnerOnly, Unk1 ITEM_FIELD_CREATE_PLAYED_TIME = ObjectUpdateFields.End + 0x003E, // Size: 1, Type: Int, Flags: Public ITEM_FIELD_PAD = ObjectUpdateFields.End + 0x003F, // Size: 1, Type: Int, Flags: None Последний раз редактировалось LordJZ; 17.06.2011 в 18:24. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Начинающим разбираться в коде MaNGOS | Wish | Языки программирования | 70 | 24.07.2011 07:18 |
Поле боя | Onfus | Баг-репорты | 1 | 08.12.2010 16:33 |
[10743][patch] Новое поле для spell_bonus_data | Insider42 | Принятые патчи | 6 | 19.11.2010 04:29 |
В каком поле передается SpellPower пета? | rsa | Опкоды, Формулы, Клиент | 14 | 17.09.2010 12:15 |
Увеличение GUIDов в item_instance | Fear | Патчи и наработки | 0 | 14.03.2010 13:06 |