|
22.02.2011, 16:43 | #1 |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
SMSG_LOOT_RESPONSE из 4.0.6а
Разобрал структуру этого пакета. Парсит его с оффа нормально, без всяких косяков. Сделал интрепретацию его на сервере, проверяю тем же парсером - никаких проблем. Но в игре при попытке облутать моба ничего не происходит. Я уже все перепробывал. Кто в курсе, в 4.0.6а сменилось ещё что-то кроме него?
Пример с офа: Код:
Guid: (High: Unit (0xF130), Entry: 26615, Counter: 3,446,852) LootType: 1 Money: 0 Count: 2 unk: 0 ============================== Counter: 0 itemid: 33549 itemCount: 1 itemModel: 18092 randomSuffix: 1063450304 randomPropertyId: 0 Slot: 0 ============================== Counter: 1 itemid: 43013 itemCount: 1 itemModel: 53859 randomSuffix: 1331885760 randomPropertyId: 0 Slot: 0 Код:
Guid: (High: Unit (0xF130), Entry: 96, Counter: 96,475) LootType: 1 Money: 0 Count: 3 unk: 0 ============================== Counter: 0 itemid: 36804 itemCount: 1 itemModel: 3429 randomSuffix: 0 randomPropertyId: 0 Slot: 0 ============================== Counter: 1 itemid: 34736 itemCount: 1 itemModel: 50873 randomSuffix: 0 randomPropertyId: 0 Slot: 0 ============================== Counter: 2 itemid: 36805 itemCount: 1 itemModel: 26546 randomSuffix: 0 randomPropertyId: 0 Slot: 0 |
23.02.2011, 01:10 | #2 |
Ученый
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
|
Первое что приходит в голуву. Может randomSuffix!=0 должно быть??
|
23.02.2011, 07:18 | #3 |
Пользователь
Регистрация: 04.05.2010
Сообщений: 54
Сказал(а) спасибо: 11
Поблагодарили 13 раз(а) в 11 сообщениях
|
randomSuffix это ид шаблона, по которому выдаются характеристики вещам, на которых написано <random enchantment>, кажется к делу это не имеет отношения.
|
23.02.2011, 10:23 | #4 |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Ну да. Первое что пришло в голову, что размер не правильный при формировании пакета выставил. Но потом это отпало, т.к. ядро динамически буфер для пакета расширяет, и данные отправляет корректно.
Самое странное то, что клиент этот пакет переваривать не захотел. Т.к. использовался инжекторный снифер для проверки, и он не хватает те пакеты, которые клиент не захотел кушать. И само собой этого пакета в снифе не было. Но в world.log он был. Не пойму что может быть не так |
23.02.2011, 13:57 | #5 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Не на то соединение послали (а-ля клиент не пропатчили)
|
23.02.2011, 16:08 | #7 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
а не может ли это быть связано с вашими "магическими" ентри?
у близов время от времени на ентри чтото бывает завязано. потом они переделывают это. но такое бывает. еще у них бывает, что старшая часть гуида должна чему нибудь соответствовать. были времена, когда они ентри юнита клали в старшую часть гуида и без этого ничего толком не работало. в общем попробуйте для начала воспроизвести в точности с оригиналом (снифом), потом будем думать что с этим делать. |
23.02.2011, 16:34 | #8 | |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Цитата:
|
|
24.02.2011, 20:01 | #10 |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Похоже alien прав. Изучил этот RandomSuffix, оказалось что RandomSuffix не может быть равен нулю, или RandomProperty. У меня в базе 45к предметов у которых и то и то равно 0. Скорее всего в этом дело. Решил отпарить с офа, и тут возникла такая проблема:
Код:
UPDATE `item_template` SET `RandomProperty` = 0, `RandomSuffix` = -2048030848 WHERE `entry` = 3770; UPDATE `item_template` SET `RandomProperty` = 0, `RandomSuffix` = 1590782464 WHERE `entry` = 3770; |
24.02.2011, 20:27 | #12 |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Точно Тогда попробую отпарсить пакет SMSG_ITEM_QUERY_SINGLE_RESPONSE
add: А вот это уже более интерестно Код:
UPDATE `item_template` SET `RandomProperty` = 3050354896, `RandomSuffix` = 46 WHERE `entry` = 59230; UPDATE `item_template` SET `RandomProperty` = 2362555344, `RandomSuffix` = 3201349584 WHERE `entry` = 58149; UPDATE `item_template` SET `RandomProperty` = 3151017168, `RandomSuffix` = 3491794897 WHERE `entry` = 43236; UPDATE `item_template` SET `RandomProperty` = 2362555344, `RandomSuffix` = 3201349584 WHERE `entry` = 47499; UPDATE `item_template` SET `RandomProperty` = 3501576320, `RandomSuffix` = 3501510838 WHERE `entry` = 59029; Последний раз редактировалось HuntsMan; 24.02.2011 в 20:49. |
24.02.2011, 21:31 | #13 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
чото вы напутали с этими пропертями и суффиксами. вообще говоря проперти это некое ID, которое вроде даже где то в дбц было в виде вариаций. и грубо говоря это ID от нуля до некоего конечного числа, типа 100 или может 1000, не помню.
а те громадные числа я перевел в hex и оно мне TimeStamp больше напоминает. да и откуда вы взяли рандом проперти поле в SMSG_ITEM_QUERY_SINGLE_RESPONSE, его там от родясь никогда не было. это апдейт поле итема: ITEM_FIELD_RANDOM_PROPERTIES_ID = 59; // 001 - [1] Integer - [001] PUBLIC вот еще есть поле ITEM_FIELD_PROPERTY_SEED, вот тут более вероятно встретить таймстап, кажется это он и есть (не помню уж). но опять же, это А9, а не SMSG_ITEM_QUERY_SINGLE_RESPONSE. покажите дамп всего пакета. но вообще не о том говорим. и да, если апдейт поле цельное (не составные байты или слова), если оно integer и если оно равно нулю, то такое поле не передается в апдейтпакете. это такое правило. нельзя передавать зануленные поля. я чесно говоря потерял нить проблемы, напомните плиз. клиент не воспринимает SMSG_LOOT_RESPONSE, сформированный вами? судя по вашему разобранному представлению этот пакет не менялся со времен царя гороха. вот у меня что: Код:
// лут-лист pkt := TPkt.InitCmd(SMSG_LOOT_RESPONSE); pkt.AddInt64(LootObject.woGuid); // LOOT_TYPE_CORPSE = 1; // LOOT_TYPE_SKINNING = 2; // LOOT_TYPE_FISHING = 3; pkt.AddByte(L.LootType); // тип лута pkt.AddLong(L.Coinage); // деньги pkt.AddByte(count); // сколько итемов в списке count:=0; for i:=1 to MAX_LOOT_ITEMS do if (L.Slot[i].Entry<>0)and(ItemTPL[L.Slot[i].Entry]<>nil) then begin pkt.AddByte(count); // номер итема по порядку, он потом будет фигурировать в лут-пакетах рассылки inc(count); pkt.AddLong(L.Slot[i].Entry); // item_id k:=random(ItemTPL[L.Slot[i].Entry].itMaxStackCount); if k<1 then k:=1; if k>ItemTPL[L.Slot[i].Entry].itMaxStackCount then k:=ItemTPL[L.Slot[i].Entry].itMaxStackCount; pkt.AddLong(k); // item_count pkt.AddLong(ItemTPL[L.Slot[i].Entry].itDisplayInfoID); // item_model pkt.AddLong(L.Slot[i].PropertySEED); // seed pkt.AddLong(L.Slot[i].RandomPropertyID); // RandomPropertyID // 0 - norm // 1 - that item is still being rolled for // 2 - нет опкода, нет сообщения, нельзя взять предмет // 1. статус итема может быть установлен командой "START ROLL" // 2. нужно выставить статус 2, если этот итем >=Trashold, // что бы итем невозможно было просто взять, // а можно передевать только через список плееров у мастерлутера или через розыгрыш need/greed pkt.AddByte(L.Slot[i].Status); end; sender.SockSend(pkt); |
24.02.2011, 21:48 | #14 | |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Ну не знаю. Я строил обработчик пакета SMSG_ITEM_QUERY_SINGLE_RESPONSE по примеру из Кактуса. Клиент такие пакеты понимал нормально. http://pastebin.com/wDGtdqYH
Правда в парсере я его малость поправил, и получилось такое: http://pastebin.com/rcf5xztf Вроде как парсит нормально. По поводу SMSG_LOOT_RESPONSE. Да, трабла именно в нем, но структура помоему соответствует оффу. http://pastebin.com/LSgVzGE4 Есть такая мысль, что близзы поменяли алгоритм формирования randomSuffix, из-за чего клиент его не хочет принимать. Цитата:
Последний раз редактировалось HuntsMan; 24.02.2011 в 21:51. |
|
24.02.2011, 22:14 | #15 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
вот только что сказал, что нет никакого randomSuffix. есть random property id - динамическое поле итема, и есть suffix - статическое поле из респонса (добавлено в 2.0.3). Ну не знаю. Я строил обработчик пакета SMSG_ITEM_QUERY_SINGLE_RESPONSE по примеру из Кактуса. Клиент такие пакеты понимал нормально. http://pastebin.com/wDGtdqYH то, что клиент их нормально понимал означает лишь то, что вы угадали с размерностью данных и числом полей, а не то, что всё в порядке Код:
94. data << pProto->Sheath; 95. data << pProto->RandomProperty; 96. data << pProto->RandomSuffix; 97. data << pProto->ItemSet; RandomSuffix соответственно никакой не Random, а просто Suffix - указатель куда то в дбц на дополнительные фичи итема. это его отличает от "стандартного". на самом деле Extra как бы по задумке было этим разнообразием. но вот в TBC близзы ввели понятие суффикса и вполне возможно поле Extra позднее стало обозначать что то иное. в любом случае, это всё - вполне себе конечные числа в районе 1000-9000. ваши громадные значения клиент не может использовать в качестве ссылки (ID) и не может ничего по ним получить. вот и не хавает он такой невалидный пакет. кстати, где вы взяли такие числа? покажите пакет целиком. и еще, random property id - это и есть suffix, соотвественно выбранный случайным образом (например при луте). на самом деле рандома у близзов никогда никакого не было и нет. но это другая тема. |
24.02.2011, 22:42 | #16 | |||
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Цитата:
Итак, как я понял это дело завязано на 2х dbc: RandPropPoints.dbc (в котором идут параметры рандом статов) и ItemRandomSuffix.dbc (в котором идет энтри, и имя суффикса (из-за названия файла такое название и поля )) Цитата:
Цитата:
Походу где-то что-то упустил |
|||
24.02.2011, 22:59 | #17 | |||
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
Цитата:
ItemRandomSuffix - имеется ввиду, что в этой таблице собраны рандомы суффиксов (еще одно подверждение, что никакого рандома у близов нет, все заранее просчитано). Цитата:
Цитата:
для начала давайте пофиксим размерность пакета и поставим все поля на свои места, если это необходимо - введем новые unk-и. и еще, поля в основном int, а не uint: 11.Allowable Class: 4294967295 12.Allowable Race: 4294967295 эти и подобные поля должны быть равны минус еденице. |
|||
Пользователь сказал cпасибо: | HuntsMan (24.02.2011) |
24.02.2011, 23:07 | #18 | |||
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Цитата:
Цитата:
Цитата:
|
|||
24.02.2011, 23:19 | #19 | ||
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
Цитата:
Цитата:
у меня подозрение, что вы неправильно или вообще не парсите счетчик спеллов итема. но вроде как у спеллов не было счетчика, был у бонусов. покажите дамп пакета. ЗЫ. блин, надо какой то irc что ли... Последний раз редактировалось RomanRom2; 24.02.2011 в 23:23. |
||
24.02.2011, 23:26 | #20 | |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Цитата:
Вот к примеру отпарсенный итем с спеллом: Код:
Entry: 8075 Name: Сотворенный батон Quality: 1 Flags: 2097154 Flags2: 40960 Buy Price: 0 Sell Price: 0 Inventory Type: 0 Allowable Class: -1 Allowable Race: -1 Item Level: 45 Required Level: 35 Required Skill: 0 Required SkillRank: 0 Required Spell: 0 Required Honor Rank: 0 Required City Rank: 0 Required Reputation Faction: 0 Required Reputation Rank: 0 Max Count: 0 Stackable: 20 Container Slots: 0 * Item Mod Type 0: 0 * Item Mod Value 0: 0 * Item Mod Type 1: 0 * Item Mod Value 1: 0 * Item Mod Type 2: 0 * Item Mod Value 2: 0 * Item Mod Type 3: 0 * Item Mod Value 3: 0 * Item Mod Type 4: 0 * Item Mod Value 4: 0 * Item Mod Type 5: 0 * Item Mod Value 5: 0 * Item Mod Type 6: 0 * Item Mod Value 6: 0 * Item Mod Type 7: 0 * Item Mod Value 7: 0 * Item Mod Type 8: 0 * Item Mod Value 8: 0 * Item Mod Type 9: 0 * Item Mod Value 9: 0 Scaling Stat Distribution: 0 Scaling Stat Value: 0 Armor: 0 Delay: 0 Ammo Type: 0 Ranged Mod Range: 0 * Spell ID 1: 1129 * Spell Trigger 1: 0 * Spell Charges 1: 0 * Spell Cooldown 1: 0 * Spell Category 1: 0 * Spell Category Cooldown 1:0 * Spell ID 2: 0 * Spell Trigger 2: 0 * Spell Charges 2: 0 * Spell Cooldown 2: 0 * Spell Category 2: -1 * Spell Category Cooldown 2:0 * Spell ID 3: 0 * Spell Trigger 3: 0 * Spell Charges 3: 0 * Spell Cooldown 3: 0 * Spell Category 3: -1 * Spell Category Cooldown 3:-1 * Spell ID 4: -1 * Spell Trigger 4: -1 * Spell Charges 4: 11 * Spell Cooldown 4: 0 * Spell Category 4: 0 * Spell Category Cooldown 4:0 * Spell ID 5: 0 * Spell Trigger 5: 1000 * Spell Charges 5: -1 * Spell Cooldown 5: -1 * Spell Category 5: -1 * Spell Category Cooldown 5:-1 Bonding: 0 Description: Page Text: 0 Language ID: 0 Page Material: 0 Start Quest: 0 Lock ID: 0 Material: 4294967295 Sheath: 0 Random Property: 0 Random Suffix: 0 Block: 0 Itemset: 0 Max Durability: 0 Area: 0 Map: 0 Bag Family: 0 Totem Category: 0 * Socket Color 1: 0 * Socket Content 1: 0 * Socket Color 2: 0 * Socket Content 2: 0 * Socket Color 3: 0 * Socket Content 3: 0 Socket Bonus: 0 Gem Properties: 0 Required Disenchant Skill: 0 Armor Damage Modifier: 0 Duration: 0 Item Limit Category: 0 Holiday ID: 0 |
|
24.02.2011, 23:27 | #21 |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
И дамп:
Код:
Packet SMSG, SMSG_ITEM_QUERY_SINGLE_RESPONSE (3150), len 564, Flags: None ╔════════╦═════════════════════════════════════════════════╦════════════════╗ ║ OFFSET ║ 0 1 2 3 4 5 6 7 8 9 A B C D E F ║0123456789ABCDEF║ ╠════════╬═════════════════════════════════════════════════╬════════════════╣ ║00000000║ 70 58 37 40 8B 1F 00 00 24 02 00 00 8B 1F 00 00 ║pX7@....$.......║ ║00000010║ 01 00 00 00 02 00 20 00 00 A0 00 00 00 00 00 00 ║...... .........║ ║00000020║ 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF ║................║ ║00000030║ 2D 00 00 00 23 00 00 00 00 00 00 00 00 00 00 00 ║-...#...........║ ║00000040║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000050║ 00 00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 ║................║ ║00000060║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000070║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000080║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000090║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║000000A0║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║000000B0║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║000000C0║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║000000D0║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║000000E0║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║000000F0║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000100║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000110║ 69 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║i...............║ ║00000120║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000130║ 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 ║................║ ║00000140║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000150║ FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ║................║ ║00000160║ 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000170║ 00 00 00 00 E8 03 00 00 FF FF FF FF FF FF FF FF ║................║ ║00000180║ FF FF FF FF FF FF FF FF 00 00 00 00 21 00 D0 A1 ║............!...║ ║00000190║ D0 BE D1 82 D0 B2 D0 BE D1 80 D0 B5 D0 BD D0 BD ║................║ ║000001A0║ D1 8B D0 B9 20 D0 B1 D0 B0 D1 82 D0 BE D0 BD 00 ║.... ...........║ ║000001B0║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║000001C0║ 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF ║................║ ║000001D0║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║000001E0║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║000001F0║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000200║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000210║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000220║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000230║ 4E E5 9B 91 -- -- -- -- -- -- -- -- -- -- -- -- ║N...............║ ╚════════╩═════════════════════════════════════════════════╩════════════════╝ Код:
-- Read 552 bytes, have 614 Entry: 32453 Name: Слезы Звезд Quality: 1 Flags: 2097152 Flags2: 40964 Buy Price: 10000 Sell Price: 125 Inventory Type: 0 Allowable Class: -1 Allowable Race: -1 Item Level: 75 Required Level: 65 Required Skill: 0 Required SkillRank: 0 Required Spell: 0 Required Honor Rank: 0 Required City Rank: 0 Required Reputation Faction: 0 Required Reputation Rank: 0 Max Count: 0 Stackable: 20 Container Slots: 0 * Item Mod Type 0: 0 * Item Mod Value 0: 0 * Item Mod Type 1: 0 * Item Mod Value 1: 0 * Item Mod Type 2: 0 * Item Mod Value 2: 0 * Item Mod Type 3: 0 * Item Mod Value 3: 0 * Item Mod Type 4: 0 * Item Mod Value 4: 0 * Item Mod Type 5: 0 * Item Mod Value 5: 0 * Item Mod Type 6: 0 * Item Mod Value 6: 0 * Item Mod Type 7: 0 * Item Mod Value 7: 0 * Item Mod Type 8: 0 * Item Mod Value 8: 0 * Item Mod Type 9: 0 * Item Mod Value 9: 0 Scaling Stat Distribution: 0 Scaling Stat Value: 0 Armor: 0 Delay: 0 Ammo Type: 0 Ranged Mod Range: 0 * Spell ID 1: 27089 * Spell Trigger 1: 0 * Spell Charges 1: 0 * Spell Cooldown 1: 0 * Spell Category 1: 0 * Spell Category Cooldown 1:0 * Spell ID 2: 0 * Spell Trigger 2: 0 * Spell Charges 2: 0 * Spell Cooldown 2: 0 * Spell Category 2: -1 * Spell Category Cooldown 2:0 * Spell ID 3: 0 * Spell Trigger 3: 0 * Spell Charges 3: 0 * Spell Cooldown 3: 0 * Spell Category 3: -1 * Spell Category Cooldown 3:-1 * Spell ID 4: -1 * Spell Trigger 4: -1 * Spell Charges 4: 59 * Spell Cooldown 4: 0 * Spell Category 4: 0 * Spell Category Cooldown 4:0 * Spell ID 5: 0 * Spell Trigger 5: 1000 * Spell Charges 5: -1 * Spell Cooldown 5: -1 * Spell Category 5: -1 * Spell Category Cooldown 5:-1 Bonding: 0 Description: Page Text: 3050344912 Language ID: 3050340561 Page Material: 3184572112 Start Quest: 3491806928 Lock ID: 3502166196 Material: 3515601329 Sheath: 549376130 Random Property: -1143950128 Random Suffix: 3491794897 Block: 0 Itemset: 3502166194 Max Durability: 3502100661 Area: 3515601341 Map: -2033115003 Bag Family: -1143949872 Totem Category: -1177504304 * Socket Color 1: 46 * Socket Content 1: 0 * Socket Color 2: 0 * Socket Content 2: 0 * Socket Color 3: 0 * Socket Content 3: 196608 Socket Bonus: 0 Gem Properties: 0 Required Disenchant Skill: 0 Armor Damage Modifier: 0 Duration: 0 Item Limit Category: 0 Holiday ID: 0 |
24.02.2011, 23:28 | #22 | |||
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Код:
Packet SMSG, SMSG_ITEM_QUERY_SINGLE_RESPONSE (3150), len 614, Flags: None ╔════════╦═════════════════════════════════════════════════╦════════════════╗ ║ OFFSET ║ 0 1 2 3 4 5 6 7 8 9 A B C D E F ║0123456789ABCDEF║ ╠════════╬═════════════════════════════════════════════════╬════════════════╣ ║00000000║ 70 58 37 40 C5 7E 00 00 56 02 00 00 C5 7E 00 00 ║pX7@.~..V....~..║ ║00000010║ 01 00 00 00 00 00 20 00 04 A0 00 00 10 27 00 00 ║...... ......'..║ ║00000020║ 7D 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF ║}...............║ ║00000030║ 4B 00 00 00 41 00 00 00 00 00 00 00 00 00 00 00 ║K...A...........║ ║00000040║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000050║ 00 00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 ║................║ ║00000060║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000070║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000080║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000090║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║000000A0║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║000000B0║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║000000C0║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║000000D0║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║000000E0║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║000000F0║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000100║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000110║ D1 69 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║.i..............║ ║00000120║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000130║ 00 00 00 00 00 00 00 00 FF FF FF FF 00 00 00 00 ║................║ ║00000140║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000150║ FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ║................║ ║00000160║ 3B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║;...............║ ║00000170║ 00 00 00 00 E8 03 00 00 FF FF FF FF FF FF FF FF ║................║ ║00000180║ FF FF FF FF FF FF FF FF 00 00 00 00 15 00 D0 A1 ║................║ ║00000190║ D0 BB D0 B5 D0 B7 D1 8B 20 D0 97 D0 B2 D0 B5 D0 ║........ .......║ ║000001A0║ B7 D0 B4 00 00 00 00 00 00 00 3D 00 D0 91 D0 B5 ║..........=.....║ ║000001B0║ D1 80 D0 B5 D0 B6 D0 BD D0 BE 20 D0 B4 D0 BE D0 ║.......... .....║ ║000001C0║ B1 D1 8B D1 82 D0 BE 20 D0 B4 D0 BB D1 8F 20 D0 ║....... ...... .║ ║000001D0║ B2 D0 BE D0 B5 D0 BD D0 BD D1 8B D1 85 20 D1 86 ║............. ..║ ║000001E0║ D0 B5 D0 BB D0 B5 D0 B9 2E 00 00 00 00 00 00 00 ║................║ ║000001F0║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 00 ║................║ ║00000200║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000210║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000220║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000230║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000240║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000250║ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ║................║ ║00000260║ 00 00 4E E5 9B 91 -- -- -- -- -- -- -- -- -- -- ║..N.............║ ╚════════╩═════════════════════════════════════════════════╩════════════════╝ Код:
for (i = 0; i < 5; i++) { this.it.SpellList[i].SpellID = gr.ReadInt32(); this.it.SpellList[i].SpellTrigger = gr.ReadInt32(); this.it.SpellList[i].SpellCharges = gr.ReadInt32(); this.it.SpellList[i].SpellCooldown = gr.ReadInt32(); this.it.SpellList[i].SpellCategory = gr.ReadInt32(); this.it.SpellList[i].SpellCategoryCooldown = gr.ReadInt32(); } Цитата:
Цитата:
Цитата:
|
|||
25.02.2011, 00:35 | #23 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
ну что я могу сказать, парсинг правильный. формат правильный.
а вот дамп неправильный. минус поставьте тому сниферу, который это отснифал. поля тут реально съехавшие прямо в дампе. у этого итема один спелл. а, ммм... сейчас обратил внимание, что поля уехавшие и у первого дампа тоже. быть может это просто формат пакета поменялся Добавлено через 35 минут поразбирал дамп итема 32443, начиная со спеллов. по формату видно, что количество полей совпадает. 6 полей на каждый спелл. но содержимое полей заставляет задуматься о том, что дамп явно кривой. видны уехавшие вниз поля данного спелла, а между ними какой то мусор в виде нулей и "-1". Код:
D1 69 00 00 1 m_spellID 00 00 00 00 2 m_spellTrigger 00 00 00 00 3 m_spellCharges 00 00 00 00 4 m_spellCooldown 00 00 00 00 5 m_spellCategory 00 00 00 00 6 m_spellCategoryCooldown 00 00 00 00 1 00 00 00 00 2 00 00 00 00 3 00 00 00 00 4 FF FF FF FF 5 00 00 00 00 6 00 00 00 00 1 00 00 00 00 2 00 00 00 00 3 00 00 00 00 4 FF FF FF FF 5 FF FF FF FF 6 FF FF FF FF 1 FF FF FF FF 2 3B 00 00 00 3 00 00 00 00 4 00 00 00 00 5 00 00 00 00 6 00 00 00 00 1 E8 03 00 00 2 FF FF FF FF 3 FF FF FF FF 4 FF FF FF FF 5 FF FF FF FF 6 00 00 00 00 m_bonding 15 00 D0 A1 D0 BB D0 B5 D0 B7 D1 8B 20 D0 97 D0 B2 D0 B5 D0 B7 D0 B4 00 00 00 00 00 00 00 3D 00 D0 91 D0 B5 D1 80 D0 B5 D0 B6 D0 BD D0 BE 20 D0 B4 D0 BE D0 B1 D1 8B D1 82 D0 BE 20 D0 B4 D0 BB D1 8F 20 D0 B2 D0 BE D0 B5 D0 BD D0 BD D1 8B D1 85 20 D1 86 D0 B5 D0 BB D0 B5 D0 B9 2E 00 00 00 00 00 m_pageText 00 00 00 00 m_languageID 00 00 00 00 m_pageMaterial 00 00 00 00 m_startQuestID 00 00 00 00 m_lockID 03 00 00 00 m_material 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4E E5 9B 91 до тройки, которая является m_material поля совпадают. дальше не парсил. но тем не менее, непонятное значение в последнем интовом поле, это не инт, не флоат, а какой то... "мусорный рандом" еще там ближе к концу должны быть поле extended_cost, равное 1564 и поле req_disenchant_skill, которое равно -1. но в этих полях я не уверен. уверен лишь в том, что значения полей должны быть в дампе, если только эти поля не убрали из пакета. сразу оба. у меня назрел вопрос: откуда и каким образом был сделан снифф? Добавлено через 17 минут не удержался, распарсил концовку. Код:
00 00 00 00 page_text_id 00 00 00 00 page_language_id 00 00 00 00 page_material 00 00 00 00 start_quest 00 00 00 00 lock_id 03 00 00 00 lock_material 00 00 00 00 sheath 00 00 00 00 extra 00 00 00 00 suffix_id 00 00 00 00 block 00 00 00 00 set_id 00 00 00 00 max_duarbility 00 00 00 00 area 00 00 00 00 mab 00 00 00 00 bag_sub_class 00 00 00 00 tool_id 00 00 00 00 sock_id_1 00 00 00 00 sock_unk_1 00 00 00 00 sock_id_2 00 00 00 00 sock_unk_2 00 00 00 00 sock_id_3 00 00 00 00 sock_unk_3 00 00 00 00 sock_bonus 00 00 00 00 gem_prop 00 00 00 00 extended_cost 00 00 00 00 req_arena_rank 00 00 00 00 req_disenchant_skill 00 00 00 00 armor_damage_mod 00 00 00 00 exist_duration 00 00 00 00 item_limit_category 4E E5 9B 91 holiday_id Последний раз редактировалось RomanRom2; 25.02.2011 в 00:20. |
25.02.2011, 05:57 | #24 | |||
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Использую этот инжектор:
Насчет неправильного дампа не уверен, снифер ещё ни разу в плане фрагментации пакетов не подводил Цитата:
Цитата:
|
|||
25.02.2011, 11:20 | #25 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
еще я тут подумал, что раз доверие к сниферу некоторое имеется, что раз другие пакеты дампятся нормально, значит так кардинально сменился формат SMSG_ITEM_QUERY_SINGLE_RESPONSE. значит спеллов там теперь не пять, а один, но полей по нему стало в 5 раз больше. было 6, стало 30. это само по себе не удивительно, такие манипуляции с данными близы проводят иногда. удивляет только то, что полей для одного сраненького спелла у одного сраненького итема стало в 5 раз больше. чем по сути экономии в байтах никакой и не сделали. это всё удивляет.
насчет extended_cost я ж говорю, я не уверен. я уверен только в том, что по количеству полей этот кусок дампа совпал. а значит этот extended_cost передается. ну или если он не передается, то передается дополнительно что то еще. |
25.02.2011, 12:48 | #26 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
HuntsMan у вас неправильно читаются спеллы, на 90% уверен, что еще и статы и сокеты (т.к. код чтения не видел). В 4.0 структура изменилась.
|
25.02.2011, 16:03 | #27 | ||
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Цитата:
Цитата:
Последний раз редактировалось HuntsMan; 25.02.2011 в 16:17. |
||
25.02.2011, 20:59 | #28 | |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
|
|
Пользователь сказал cпасибо: | HuntsMan (25.02.2011) |
25.02.2011, 22:41 | #29 |
Новичок
Регистрация: 21.10.2010
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Топик стартер, а ты проверял, вызывается хэндлер этого пакета в клиенте вообще или нет? Например, сейчас я обнаружил, что при 100% правильной структуре и опкоде пакета SMSG_LIST_INVENTORY её хэндлер не вызывается. Причем не только хэнлдер, клиент этот опкод (в NetClient__Process) вообще не видит. При этом в world.log этот пакет тоже логируется.
Пытаюсь разобраться ps: клиент перманентно пропатчен, однако. |
26.02.2011, 13:52 | #30 |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Да, это заметил. Мб таже фигня что и с пингом было. Пинг тоже не получилось заставить работать под 4.0.3, хотя структура была индентична офу, но клиент втупую не хотел его обрабатывать...
|
28.02.2011, 14:15 | #31 |
WowCore Dev
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
|
итак, проблемы с размерностью и форматом данных, в частности по спеллам, успешно разрешены. чем дело то закончилось?
|
28.02.2011, 14:35 | #32 | |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Вобщем кажись дело в гуиде. Никто не подскажет как его формируют близзы в 4.0.6?)
Цитата:
|
|
28.02.2011, 19:38 | #34 |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
К сожалению дело не в гуиде поправил формирование гуида, но ему все равно
Но зато хоть терь парсер нормально ентри парсить стал Код:
Guid: (High: Unit (0xF130), Entry: 49871, Counter: 252,552) LootType: 1 Money: 0 Count: 2 CurCount: 0 ============================== Index: 0 ItemId: 62328 ItemCount: 1 ItemModelId: 18093 RandomSuffix: 0 RandomPropertyId: 0 Perm: 0 ============================== Index: 1 ItemId: 3300 ItemCount: 1 ItemModelId: 6682 RandomSuffix: 0 RandomPropertyId: 0 Perm: 0 |
28.02.2011, 20:06 | #35 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
Скиньте дамп world.log с этим пакетом. (в любом формате)
|
28.02.2011, 20:36 | #36 |
Ученый
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
|
Код:
<packet date = "1298914451" direction"StoC" opcode = "62348">88DA0300CFC230F1010000000002000078F3000001000000AD46000000000000000000000001E40C0000010000001A1A0000000000000000000000</packet> |
28.02.2011, 23:27 | #37 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
RandomSuffix-а нету, единичку туда попробуйте пошлите или Counter гуида
|